Package com.eclipsesource.tabris.internal.ui

Source Code of com.eclipsesource.tabris.internal.ui.UIDescriptorTest

/*******************************************************************************
* Copyright (c) 2013 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.ui;

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 static org.mockito.Mockito.mock;

import java.io.Serializable;
import java.util.List;

import org.eclipse.rap.rwt.client.WebClient;
import org.junit.Rule;
import org.junit.Test;

import com.eclipsesource.tabris.TabrisClient;
import com.eclipsesource.tabris.internal.ui.web.WebRendererFactory;
import com.eclipsesource.tabris.test.util.TabrisEnvironment;
import com.eclipsesource.tabris.ui.ActionListener;
import com.eclipsesource.tabris.ui.TransitionListener;


public class UIDescriptorTest {

  @Rule
  public TabrisEnvironment environment = new TabrisEnvironment();

  @Test
  public void testIsSerializable() {
    assertTrue( Serializable.class.isAssignableFrom( UIDescriptor.class ) );
  }

  @Test( expected = IllegalStateException.class )
  public void testFailsAddingPageDescriptorTwice() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    PageDescriptor descriptor = createDescriptor( "foo" );

    uiDescriptor.add( descriptor );
    uiDescriptor.add( descriptor );
  }

  @Test
  public void testAddsPageDescriptor() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    PageDescriptor descriptor = createDescriptor( "foo" );

    uiDescriptor.add( descriptor );

    assertSame( descriptor, uiDescriptor.getPageDescriptor( "foo" ) );
  }

  @Test
  public void testRemovesPageDescriptor() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    PageDescriptor descriptor = createDescriptor( "foo" );
    uiDescriptor.add( descriptor );

    uiDescriptor.removePageDescriptor( "foo" );

    assertNull( uiDescriptor.getPageDescriptor( "foo" ) );
  }

  private PageDescriptor createDescriptor( String id ) {
    return new PageDescriptor( id, TestPage.class );
  }

  @Test
  public void testAddsAction() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionDescriptor descriptor = new ActionDescriptor( "foo", new TestAction() );

    uiDescriptor.add( descriptor );

    assertSame( descriptor, uiDescriptor.getActionDescriptor( "foo" ) );
  }

  @Test
  public void testRemovesAction() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionDescriptor descriptor = new ActionDescriptor( "foo", new TestAction());
    uiDescriptor.add( descriptor );

    uiDescriptor.removeAction( "foo" );

    assertNull( uiDescriptor.getActionDescriptor( "foo" ) );
  }

  @Test
  public void testAddsTransistionListener() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    TransitionListener listener = mock( TransitionListener.class );

    uiDescriptor.addTransitionListener( listener );

    List<TransitionListener> transitionListeners = uiDescriptor.getTransitionListeners();
    assertTrue( transitionListeners.contains( listener ) );
  }

  @Test
  public void testRemovesTransistionListener() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    TransitionListener listener = mock( TransitionListener.class );
    uiDescriptor.addTransitionListener( listener );

    uiDescriptor.removeTransitionListener( listener );

    List<TransitionListener> transitionListeners = uiDescriptor.getTransitionListeners();
    assertFalse( transitionListeners.contains( listener ) );
  }

  @Test
  public void testAddsActionListener() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionListener listener = mock( ActionListener.class );

    uiDescriptor.addActionListener( listener );

    List<ActionListener> actionListeners = uiDescriptor.getActionListeners();
    assertTrue( actionListeners.contains( listener ) );
  }

  @Test
  public void testRemovesActionListener() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionListener listener = mock( ActionListener.class );
    uiDescriptor.addActionListener( listener );

    uiDescriptor.removeActionListener( listener );

    List<ActionListener> actionListeners = uiDescriptor.getActionListeners();
    assertFalse( actionListeners.contains( listener ) );
  }

  @Test
  public void testGetGlobalActions() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionDescriptor descriptor = new ActionDescriptor( "foo", new TestAction() );

    uiDescriptor.add( descriptor );

    List<ActionDescriptor> actions = uiDescriptor.getGlobalActions();
    assertEquals( 1, actions.size() );
    assertSame( descriptor, actions.get( 0 ) );
  }

  @Test( expected = IllegalStateException.class )
  public void testAddsActionTwiceFails() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    ActionDescriptor descriptor = new ActionDescriptor( "foo", new TestAction() );

    uiDescriptor.add( descriptor );
    uiDescriptor.add( descriptor );
  }

  @Test
  public void testGetRootPagesReturnsOnlyRootPages() {
    UIDescriptor uiDescriptor = new UIDescriptor();
    PageDescriptor descriptor1 = createDescriptor( "foo1", true );
    PageDescriptor descriptor2 = createDescriptor( "foo2", false );
    PageDescriptor descriptor3 = createDescriptor( "foo3", true );

    uiDescriptor.add( descriptor1 );
    uiDescriptor.add( descriptor2 );
    uiDescriptor.add( descriptor3 );

    List<PageDescriptor> rootPages = uiDescriptor.getRootPages();
    assertEquals( 2, rootPages.size() );
    assertSame( descriptor1, rootPages.get( 0 ) );
    assertSame( descriptor3, rootPages.get( 1 ) );
  }

  @Test
  public void testGetRendererFactory_tabris() {
    environment.setClient( mock( TabrisClient.class ) );
    UIDescriptor uiDescriptor = new UIDescriptor();

    assertTrue( uiDescriptor.getRendererFactory() instanceof RemoteRendererFactory );
  }

  @Test
  public void testGetRendererFactory_web() {
    environment.setClient( mock( WebClient.class ) );
    UIDescriptor uiDescriptor = new UIDescriptor();

    assertTrue( uiDescriptor.getRendererFactory() instanceof WebRendererFactory );
  }

  private PageDescriptor createDescriptor( String id, boolean isRoot ) {
    return new PageDescriptor( id, TestPage.class ).setTopLevel( isRoot );
  }
}
TOP

Related Classes of com.eclipsesource.tabris.internal.ui.UIDescriptorTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.