blob: 61372e8a89844107337f480f189e52811a6ee239 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 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.rap.interactiondesign.tests;
import java.util.List;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.internal.provisional.action.ICoolBarManager2;
import org.eclipse.jface.internal.provisional.action.IToolBarContributionItem;
import org.eclipse.jface.internal.provisional.action.IToolBarManager2;
import org.eclipse.rap.interactiondesign.tests.impl.ConfigurableStackImpl;
import org.eclipse.rap.interactiondesign.tests.impl.PresentationFactoryImpl;
import org.eclipse.rap.junit.RAPTestCase;
import org.eclipse.rap.ui.interactiondesign.IWindowComposer;
import org.eclipse.rap.ui.interactiondesign.PresentationFactory;
import org.eclipse.rap.ui.interactiondesign.internal.ConfigurableStackProxy;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.DefaultStackPresentationSite;
import org.eclipse.ui.internal.WorkbenchWindow;
import org.eclipse.ui.presentations.IPresentablePart;
import org.eclipse.ui.presentations.IStackPresentationSite;
import org.eclipse.ui.presentations.StackPresentation;
public class PresentationFactoryTest extends RAPTestCase {
private IStackPresentationSite site = new DefaultStackPresentationSite() {
public IPresentablePart getSelectedPart() {
return null;
}
public boolean isPartMoveable( IPresentablePart toMove ) {
return false;
}
public boolean isStackMoveable() {
return false;
}
public void close( IPresentablePart[] toClose ) {
}
public void flushLayout() {
}
public IPresentablePart[] getPartList() {
return null;
}
public String getProperty( String id ) {
return null;
}
};
private PresentationFactory factory;
protected void setUp() throws Exception {
if( factory == null ) {
factory = getPresentationFactory();
}
}
public void testBrandingPresentationFactoryCoupling() {
assertTrue( factory instanceof PresentationFactoryImpl );
}
public void testCreateViewPresentation() {
Composite comp = getParentForStackPresentation();
StackPresentation stackPresentation
= factory.createViewPresentation( comp, site );
String expectedName = stackPresentation.getClass().getName();
String actualName
= "org.eclipse.rap.ui.interactiondesign.internal.ConfigurableStackProxy";
assertEquals( expectedName, actualName);
}
public void testCreateStandaloneViewPresentation() {
Composite comp = getParentForStackPresentation();
StackPresentation stackPresentation
= factory.createStandaloneViewPresentation( comp, site, false );
String expectedName = stackPresentation.getClass().getName();
String actualName
= "org.eclipse.rap.ui.interactiondesign.internal.ConfigurableStackProxy";
assertEquals( expectedName, actualName);
}
public void testCreateEditorPresentation() {
Composite comp = getParentForStackPresentation();
StackPresentation stackPresentation
= factory.createEditorPresentation( comp, site );
String expectedName = stackPresentation.getClass().getName();
String actualName
= "org.eclipse.rap.ui.interactiondesign.internal.ConfigurableStackProxy";
assertEquals( expectedName, actualName);
}
public void testCreateCoolBarManager() {
ICoolBarManager2 manager = factory.createCoolBarManager();
assertTrue( manager instanceof ICoolBarManager2 );
}
public void testCreateMenuManager() {
MenuManager manager = factory.createMenuBarManager();
assertTrue( manager instanceof MenuManager );
}
public void testCreatePartMenuManager() {
MenuManager manager = factory.createPartMenuManager();
assertTrue( manager instanceof MenuManager );
}
public void testToolbarCreation() {
IToolBarManager2 manager = factory.createToolBarManager();
assertTrue( manager instanceof IToolBarManager2 );
IToolBarContributionItem item
= factory.createToolBarContributionItem( manager, "" );
assertTrue( item instanceof IToolBarContributionItem );
}
public void testCreateViewToolBarManager() {
IToolBarManager2 manager = factory.createViewToolBarManager();
assertTrue( manager instanceof IToolBarManager2 );
}
public void testCreateWindowComposer() {
IWindowComposer composer = factory.createWindowComposer();
assertTrue( composer instanceof IWindowComposer );
}
public void testWindowComposer() {
IWindowComposer composer = factory.createWindowComposer();
Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
Composite parent = composer.createWindowContents( shell, null );
assertNotNull( parent );
}
public void testStackPresentationPartCoupling() {
Object adapter = factory.getAdapter( StackPresentation.class );
assertTrue( adapter instanceof List );
List proxyList = ( List ) adapter;
assertTrue( proxyList.size() > 0 );
boolean found = false;
for( int i = 0; i < proxyList.size() && !found; i++ ) {
Object element = proxyList.get( i );
assertTrue( element instanceof ConfigurableStackProxy );
ConfigurableStackProxy proxy = ( ConfigurableStackProxy ) element;
if( proxy.getCurrentStackPresentation()
instanceof ConfigurableStackImpl ) {
found = true;
}
}
assertTrue( found );
}
private Composite getParentForStackPresentation() {
Shell shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
Composite comp = new Composite( shell, SWT.NONE );
return comp;
}
public static PresentationFactory getPresentationFactory() {
IWorkbenchWindow workbenchWindow
= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
WorkbenchWindow window = ( WorkbenchWindow ) workbenchWindow;
PresentationFactory factory = window.getConfigurablePresentationFactory();
return factory;
}
}