/******************************************************************************* * Copyright (c) 2014 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 com.eclipsesource.tabris.internal; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.verify; import java.io.Serializable; import org.eclipse.rap.json.JsonObject; import org.eclipse.rap.rwt.RWT; import org.eclipse.rap.rwt.internal.lifecycle.WidgetUtil; import org.eclipse.rap.rwt.internal.remote.ConnectionImpl; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.Widget; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import com.eclipsesource.tabris.test.util.TabrisEnvironment; @SuppressWarnings("restriction") public class TableItemHeightServiceTest { @Rule public TabrisEnvironment environment = new TabrisEnvironment(); private Table table; private Tree tree; private JsonObject parameters; private TableItemHeightService itemHeightService; @Before public void setUp() { Display display = new Display(); Shell shell = new Shell( display ); table = new Table( shell, SWT.NONE ); tree = new Tree(shell, SWT.NONE); parameters = new JsonObject(); itemHeightService = new TableItemHeightService(); } @Test public void testIsSerializable() { assertTrue( Serializable.class.isAssignableFrom( TableItemHeightService.class ) ); } @Test public void testServiceCreated() { ConnectionImpl connection = ( ConnectionImpl )RWT.getUISession().getConnection(); verify( connection ).createServiceObject( Constants.GRID_ITEM_HEIGHT_SETTER ); } @Test public void testSetTableItemHeight() { parameters.set( "target", WidgetUtil.getId( table ) ); parameters.set( "itemHeight", 45 ); itemHeightService.handleCall( "setItemHeight", parameters ); assertEquals( Integer.valueOf( 45 ), table.getData( "org.eclipse.rap.rwt.customItemHeight" ) ); } @Test public void testSetTreeItemHeight() { parameters.set( "target", WidgetUtil.getId( tree ) ); parameters.set( "itemHeight", 47 ); itemHeightService.handleCall( "setItemHeight", parameters ); assertEquals( Integer.valueOf( 47 ), tree.getData( "org.eclipse.rap.rwt.customItemHeight" ) ); } @Test public void setItemHeightDisposedWidget() { parameters.set( "target", WidgetUtil.getId( tree ) ); parameters.set( "itemHeight", 47 ); tree.dispose(); itemHeightService.handleCall( "setItemHeight", parameters ); // Just making sure we don't throw a Widget Disposed Exception } @Test public void testFindWidget() { Widget result = itemHeightService.findWidget( WidgetUtil.getId( table ) ); assertSame( table, result ); } @Test public void testCannotFindWidget() { Widget result = itemHeightService.findWidget( "bar" ); assertNull( result ); } }