[jboss-svn-commits] JBL Code SVN: r6938 - labs/jbossrules/branches/3.0.x/drools-ide/src/test/java/org/drools/ide/editors/rete
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Oct 19 19:12:02 EDT 2006
Author: ahtik
Date: 2006-10-19 19:12:00 -0400 (Thu, 19 Oct 2006)
New Revision: 6938
Modified:
labs/jbossrules/branches/3.0.x/drools-ide/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
Log:
JBRULES-517: added test for zoom controls with multiple open editors
Modified: labs/jbossrules/branches/3.0.x/drools-ide/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-ide/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java 2006-10-19 23:10:10 UTC (rev 6937)
+++ labs/jbossrules/branches/3.0.x/drools-ide/src/test/java/org/drools/ide/editors/rete/ZoomControlTest.java 2006-10-19 23:12:00 UTC (rev 6938)
@@ -1,21 +1,163 @@
package org.drools.ide.editors.rete;
-import org.drools.ide.editors.DRLRuleEditor2;
+import java.io.InputStream;
+import java.io.StringBufferInputStream;
import junit.framework.TestCase;
+import org.drools.ide.editors.DRLRuleEditor2;
+import org.drools.ide.editors.ZoomInAction2;
+import org.drools.ide.editors.ZoomOutAction2;
+import org.eclipse.core.filebuffers.manipulation.ContainerCreator;
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.gef.ui.actions.ZoomComboContributionItem;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.ide.IDE;
+
public class ZoomControlTest extends TestCase {
+ private IFile fFile1;
+ private IFile fFile2;
+
+ private final static IProgressMonitor NULL_MONITOR= new NullProgressMonitor();
+
+ private static final String ORIGINAL_CONTENT = "package test\nrule \"a\"\nend\nrule \"b\"\nend";
+
public ZoomControlTest(String name) {
super( name );
}
- public void testMultipleEditors() {
- DRLRuleEditor2 editor1 = new DRLRuleEditor2();
- DRLRuleEditor2 editor2 = new DRLRuleEditor2();
+ private String getOriginalContent() {
+ return ORIGINAL_CONTENT;
+ }
+
+ /*
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ IFolder folder = createFolder( "ZoomControlTestProject/multipleEditorTest/" );
+ fFile1 = createFile( folder,
+ "myfile1.drl",
+ getOriginalContent() );
+ fFile2 = createFile( folder,
+ "myfile2.drl",
+ getOriginalContent() );
+ }
+
+ /*
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ deleteProject( "ZoomControlTestProject" );
+ fFile1 = null;
+ fFile2 = null;
+ }
+
+ public void testMultipleEditors() throws PartInitException {
+
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IWorkbenchPage page = workbench.getActiveWorkbenchWindow().getActivePage();
+
+ DRLRuleEditor2 part1 = (DRLRuleEditor2) IDE.openEditor( page,
+ fFile1 );
+ DRLRuleEditor2 part2 = (DRLRuleEditor2) IDE.openEditor( page,
+ fFile2 );
+
+ checkVisibility( part1, part2, false );
+
+ // Editor1 active
+ page.activate( part1 );
+ checkVisibility( part1, part2, false );
+
+ part1.setActivePage( 1 );
+ checkVisibility( part1, part2, true );
+
+ part1.setActivePage( 0 );
+ checkVisibility( part1, part2, false );
- //TODO Implement proper test for multiple pages with zoom controls at rete tree
+ part1.setActivePage( 1 );
+ checkVisibility( part1, part2, true );
+
+ // Editor2 active
+ page.activate( part2 );
+ part2.setActivePage( 0 );
+ checkVisibility( part1, part2, false );
+
+ part2.setActivePage( 1 );
+ checkVisibility( part1, part2, true );
+
+ // Editor1 active
+ page.activate( part1 );
+ checkVisibility( part1, part2, true );
+
+ // Editor2 active
+ page.activate( part2 );
+ checkVisibility( part1, part2, true );
+
+ part2.setActivePage( 0 );
+ checkVisibility( part1, part2, false );
+ // Editor1 active
+ page.activate( part1 );
+ checkVisibility( part1, part2, true );
+ part2.setActivePage( 0 );
+ checkVisibility( part1, part2, false );
+
}
-
+
+ private void checkVisibility(DRLRuleEditor2 part1,
+ DRLRuleEditor2 part2,
+ boolean enabled) {
+ checkVisibility( part1,
+ enabled );
+ checkVisibility( part2,
+ enabled );
+ }
+
+ private void checkVisibility(DRLRuleEditor2 editor,
+ boolean enabled) {
+ ZoomInAction2 zoomIn = (ZoomInAction2) editor.getAdapter( ZoomInAction2.class );
+ ZoomOutAction2 zoomOut = (ZoomOutAction2) editor.getAdapter( ZoomOutAction2.class );
+ ZoomComboContributionItem zitem = (ZoomComboContributionItem) editor.getAdapter( ZoomComboContributionItem.class );
+
+ assertEquals( enabled,
+ zoomIn.isEnabled() );
+ assertEquals( enabled,
+ zoomOut.isEnabled() );
+ assertEquals( enabled,
+ zitem.getZoomManager() != null );
+
+ }
+
+ private IFile createFile(IFolder folder, String name, String contents) throws CoreException {
+ IFile file = folder.getFile(name);
+ InputStream inputStream= new StringBufferInputStream(contents);
+ file.create(inputStream, true, NULL_MONITOR);
+ return file;
+ }
+
+ private IFolder createFolder(String portableFolderPath) throws CoreException {
+ ContainerCreator creator= new ContainerCreator(ResourcesPlugin.getWorkspace(), new Path(portableFolderPath));
+ IContainer container= creator.createContainer(NULL_MONITOR);
+ return (IFolder) container;
+ }
+
+ private void deleteProject(String projectName) throws CoreException {
+ IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();
+ IProject project= root.getProject(projectName);
+ if (project.exists()) project.delete(true, true, NULL_MONITOR);
+ }
+
}
More information about the jboss-svn-commits
mailing list