blob: d37d603b97d443812c6e6b8f9ceb36f56d352a1a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2015 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.grid;
import static org.eclipse.nebula.widgets.grid.GridTestUtil.createGridColumns;
import static org.eclipse.nebula.widgets.grid.GridTestUtil.loadImage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import org.eclipse.nebula.widgets.grid.internal.gridcolumngroupkit.GridColumnGroupLCA;
import org.eclipse.rap.rwt.internal.lifecycle.WidgetLCA;
import org.eclipse.rap.rwt.testfixture.TestContext;
import org.eclipse.rap.rwt.testfixture.internal.Fixture;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.TreeAdapter;
import org.eclipse.swt.events.TreeListener;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@SuppressWarnings( "restriction" )
public class GridColumnGroup_Test {
@Rule
public TestContext context = new TestContext();
private Display display;
private Shell shell;
private Grid grid;
private GridColumnGroup group;
@Before
public void setUp() {
display = new Display();
shell = new Shell( display );
grid = new Grid( shell, SWT.H_SCROLL | SWT.V_SCROLL );
group = new GridColumnGroup( grid, SWT.NONE );
}
@Test
public void testGridColumnGroupCreation() {
assertSame( grid, group.getParent() );
assertSame( group, grid.getColumnGroup( 0 ) );
assertEquals( 0, group.getColumns().length );
}
@Test
public void testDispose() {
group.dispose();
assertTrue( group.isDisposed() );
assertEquals( 0, grid.getColumnGroupCount() );
}
@Test
public void testDispose_DisposeColumns() {
GridColumn[] columns = createGridColumns( group, 2, SWT.NONE );
group.dispose();
assertTrue( columns[ 0 ].isDisposed() );
assertTrue( columns[ 1 ].isDisposed() );
}
@Test
public void testGetExpanded_Initial() {
assertTrue( group.getExpanded() );
}
@Test
public void testSetExpanded() {
group.setExpanded( false );
assertFalse( group.getExpanded() );
}
@Test
public void testAddRemoveTreeListener() {
TreeListener listener = new TreeAdapter() {};
group.addTreeListener( listener );
assertTrue( group.isListening( SWT.Expand ) );
assertTrue( group.isListening( SWT.Collapse ) );
group.removeTreeListener( listener );
assertFalse( group.isListening( SWT.Expand ) );
assertFalse( group.isListening( SWT.Collapse ) );
}
@Test
public void testGetHeaderText_Initial() {
assertEquals( "", group.getText() );
}
@Test
public void testGetHeaderText() {
group.setText( "foo" );
assertEquals( "foo", group.getText() );
}
@Test( expected = IllegalArgumentException.class )
public void testSetHeaderText_NullArgument() {
group.setText( null );
}
@Test
public void testGetHeaderImage_Initial() {
assertNull( group.getImage() );
}
@Test
public void testGetHeaderImage() {
Image image = loadImage( display, Fixture.IMAGE1 );
group.setImage( image );
assertSame( image, group.getImage() );
}
@Test( expected = IllegalArgumentException.class )
public void testSetHeaderImage_DisposedImage() {
Image image = loadImage( display, Fixture.IMAGE1 );
image.dispose();
group.setImage( image );
}
@Test
public void testGetHeaderFont_Initial() {
assertSame( grid.getFont(), group.getHeaderFont() );
}
@Test
public void testGetHeaderFont() {
Font font = new Font( display, "Arial", 20, SWT.BOLD );
group.setHeaderFont( font );
assertSame( font, group.getHeaderFont() );
}
@Test( expected = IllegalArgumentException.class )
public void testSetHeaderFont_DisposedFont() {
Font font = new Font( display, "Arial", 20, SWT.BOLD );
font.dispose();
group.setHeaderFont( font );
}
@Test
public void testGetHeaderWordWrap_Initial() {
assertFalse( group.getHeaderWordWrap() );
}
@Test
public void testGetHeaderWordWrap() {
group.setHeaderWordWrap( true );
assertTrue( group.getHeaderWordWrap() );
}
@Test
public void testGetHeaderWordWrap_invalidatesCachedHeaderHeight() {
grid.getHeaderHeight();
group.setHeaderWordWrap( true );
assertFalse( grid.layoutCache.hasHeaderHeight() );
}
@Test
public void testGetAdapter_LCA() {
assertTrue( group.getAdapter( WidgetLCA.class ) instanceof GridColumnGroupLCA );
assertSame( group.getAdapter( WidgetLCA.class ), group.getAdapter( WidgetLCA.class ) );
}
}