| /******************************************************************************* |
| * Copyright (c) 2000, 2006 IBM Corporation 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: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.swt.tests.junit; |
| |
| import java.util.Vector; |
| |
| import junit.framework.*; |
| import junit.textui.*; |
| |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.events.*; |
| import org.eclipse.swt.graphics.*; |
| import org.eclipse.swt.layout.FillLayout; |
| import org.eclipse.swt.widgets.*; |
| |
| /** |
| * Automated Test Suite for class org.eclipse.swt.widgets.Shell |
| * |
| * @see org.eclipse.swt.widgets.Shell |
| */ |
| public class Test_org_eclipse_swt_widgets_Shell extends Test_org_eclipse_swt_widgets_Decorations { |
| |
| public Test_org_eclipse_swt_widgets_Shell(String name) { |
| super(name); |
| } |
| |
| public static void main(String[] args) { |
| TestRunner.run(suite()); |
| } |
| |
| protected void setUp() { |
| super.setUp(); |
| testShell = new Shell(shell, SWT.NULL); |
| setWidget(shell); |
| assertTrue(testShell.getParent() == shell); |
| } |
| |
| protected void tearDown() { |
| super.tearDown(); |
| } |
| |
| public void test_Constructor() { |
| Shell newShell = new Shell(); |
| assertNotNull("a: ", newShell.getDisplay()); |
| newShell.dispose(); |
| } |
| |
| public void test_ConstructorI() { |
| /* this should test various combinations of STYLE bits, for now just test individual bits */ |
| int[] cases = {SWT.NO_TRIM, SWT.RESIZE, SWT.TITLE, SWT.CLOSE, SWT.MENU, SWT.MIN, SWT.BORDER, |
| SWT.CLIP_CHILDREN, SWT.CLIP_SIBLINGS, SWT.ON_TOP, SWT.FLAT, SWT.SMOOTH}; |
| Shell newShell; |
| for (int i = 0; i < cases.length; i++) { |
| newShell = new Shell(cases[i]); |
| assertTrue("a " +i, newShell.getDisplay() == shell.getDisplay()); |
| newShell.dispose(); |
| } |
| } |
| |
| public void test_ConstructorLorg_eclipse_swt_widgets_Display() { |
| Display display = shell.getDisplay(); |
| Shell newShell = new Shell(display); |
| assertTrue("a: ", newShell.getDisplay() == display); |
| newShell.dispose(); |
| } |
| |
| public void test_ConstructorLorg_eclipse_swt_widgets_DisplayI() { |
| int[] cases = {SWT.NO_TRIM, SWT.RESIZE, SWT.TITLE, SWT.CLOSE, SWT.MENU, SWT.MIN, SWT.BORDER, |
| SWT.CLIP_CHILDREN, SWT.CLIP_SIBLINGS, SWT.ON_TOP, SWT.FLAT, SWT.SMOOTH}; |
| Shell newShell; |
| Display display = shell.getDisplay(); |
| for (int i = 0; i < cases.length; i++) { |
| newShell = new Shell(display, cases[i]); |
| assertTrue("a " +i, newShell.getDisplay() == shell.getDisplay()); |
| newShell.dispose(); |
| } |
| } |
| |
| public void test_ConstructorLorg_eclipse_swt_widgets_Shell() { |
| Shell newShell = new Shell(shell); |
| assertTrue("a: ", newShell.getParent() == shell); |
| newShell.dispose(); |
| } |
| |
| public void test_ConstructorLorg_eclipse_swt_widgets_ShellI() { |
| /* this should test various combinations of STYLE bits, for now just test individual bits */ |
| int[] cases = {SWT.NO_TRIM, SWT.RESIZE, SWT.TITLE, SWT.CLOSE, SWT.MENU, SWT.MIN, SWT.BORDER, |
| SWT.CLIP_CHILDREN, SWT.CLIP_SIBLINGS, SWT.ON_TOP, SWT.FLAT, SWT.SMOOTH}; |
| Shell newShell; |
| for (int i = 0; i < cases.length; i++) { |
| newShell = new Shell(shell, cases[i]); |
| assertTrue("a " +i, newShell.getParent() == shell); |
| newShell.dispose(); |
| } |
| } |
| |
| public void test_addShellListenerLorg_eclipse_swt_events_ShellListener() { |
| listenerCalled = false; |
| boolean exceptionThrown = false; |
| ShellListener listener = new ShellListener() { |
| public void shellActivated(ShellEvent e) { |
| listenerCalled = true; |
| } |
| public void shellClosed(ShellEvent e) { |
| } |
| public void shellDeactivated(ShellEvent e) { |
| } |
| public void shellDeiconified(ShellEvent e) { |
| } |
| public void shellIconified(ShellEvent e) { |
| } |
| }; |
| try { |
| shell.addShellListener(null); |
| } |
| catch (IllegalArgumentException e) { |
| exceptionThrown = true; |
| } |
| assertTrue("Expected exception not thrown", exceptionThrown); |
| exceptionThrown = false; |
| shell.addShellListener(listener); |
| shell.forceActive(); |
| /* can't assume listener is synchronously called when forceActive returned */ |
| /* assertTrue(":a:", listenerCalled == true); */ |
| |
| listenerCalled = false; |
| shell.removeShellListener(listener); |
| shell.forceActive(); |
| /* can't assume listener is synchronously called when forceActive returned */ |
| /* assertTrue(":b:", listenerCalled == false); */ |
| try { |
| shell.removeShellListener(null); |
| } |
| catch (IllegalArgumentException e) { |
| exceptionThrown = true; |
| } |
| assertTrue("Expected exception not thrown", exceptionThrown); |
| } |
| |
| public void test_close() { |
| |
| // bogus line that 'enabled' gpfs |
| // Shell newShell = new Shell(); |
| testShell.setBounds(20,30,200, 200); |
| testShell.open(); |
| testShell.close(); |
| shell.setBounds(20,30,200, 200); |
| shell.open(); |
| } |
| |
| public void test_dispose() { |
| Shell newShell = new Shell(); |
| newShell.dispose(); |
| } |
| |
| public void test_forceActive() { |
| shell.forceActive(); |
| /* can't assume listener is synchronously called when forceActive returned */ |
| /* assertTrue(":a:", shell.getDisplay().getActiveShell() == shell); */ |
| } |
| |
| public void test_getBounds() { |
| // tested in test_setBoundsIIII and test_setBoundsLorg_eclipse_swt_graphics_Rectangle |
| } |
| |
| public void test_getEnabled() { |
| assertTrue(":a0:", shell.getEnabled()); |
| shell.setEnabled(false); |
| assertTrue(":a:", !shell.getEnabled()); |
| shell.setEnabled(true); |
| assertTrue(":b:", shell.getEnabled()); |
| } |
| |
| public void test_getImeInputMode() { |
| int mode = shell.getImeInputMode(); |
| assertTrue(":a:", mode >= 0); |
| } |
| |
| public void test_getLocation() { |
| shell.setLocation(10,15); |
| assertTrue(":a:", shell.getLocation().x == 10); |
| assertTrue(":b:", shell.getLocation().y == 15); |
| } |
| |
| public void test_getRegion() { |
| // tested in test_setRegion() |
| } |
| |
| public void test_getShell() { |
| assertTrue(":a:", shell.getShell()==shell); |
| Shell shell_1 = new Shell(shell); |
| assertTrue(":b:", shell_1.getShell()== shell_1); |
| shell_1.dispose(); |
| } |
| |
| public void test_getShells() { |
| int num = shell.getShells().length; |
| assertTrue(":a:", num == 1); |
| Shell shell_1 = new Shell(shell); |
| num = shell.getShells().length; |
| assertTrue(":a:", num == 2); |
| shell_1.dispose(); |
| } |
| |
| public void test_isEnabled() { |
| assertTrue(":a:", shell.isEnabled()); |
| shell.setEnabled(false); |
| assertTrue(":b:", !shell.isEnabled()); |
| if (fCheckBogusTestCases) |
| assertTrue(":b1:", !testShell.isEnabled()); |
| shell.setEnabled(true); |
| assertTrue(":c:", shell.isEnabled()); |
| assertTrue(":a:", testShell.isEnabled()); |
| testShell.setEnabled(false); |
| assertTrue(":b:", !testShell.isEnabled()); |
| testShell.setEnabled(true); |
| assertTrue(":c:", testShell.isEnabled()); |
| } |
| |
| public void test_open() { |
| shell.open(); |
| } |
| |
| |
| public void test_removeShellListenerLorg_eclipse_swt_events_ShellListener() { |
| // tested in removeShellListener method |
| } |
| |
| public void test_setActive() { |
| /* Create shell2 and make it active. */ |
| Shell shell2 = new Shell(); |
| shell2.open(); |
| |
| /* Test setActive for visible shell. */ |
| shell.setVisible(true); |
| shell.setActive(); |
| assertTrue("visible shell was not made active", shell.getDisplay().getActiveShell() == shell); |
| |
| /* Test setActive for visible dialog shell. */ |
| shell2.setActive(); |
| testShell.setVisible(true); |
| testShell.setActive(); |
| assertTrue("visible dialog shell was not made active", testShell.getDisplay().getActiveShell() == testShell); |
| |
| /* Test setActive for non-visible shell. */ |
| shell2.setActive(); |
| shell.setVisible(false); |
| shell.setActive(); |
| assertTrue("non-visible shell was made active", shell.getDisplay().getActiveShell() != shell); |
| |
| /* Test setActive for non-visible dialog shell. */ |
| shell2.setActive(); |
| testShell.setVisible(false); |
| testShell.setActive(); |
| assertTrue("non-visible dialog shell was made active", testShell.getDisplay().getActiveShell() != testShell); |
| |
| shell2.dispose(); |
| } |
| |
| public void test_setEnabledZ() { |
| // tested in getEnabled method |
| } |
| |
| public void test_setImeInputModeI() { |
| shell.setImeInputMode(SWT.NONE); |
| assertTrue(":a:", shell.getImeInputMode() == SWT.NONE); |
| } |
| |
| public void test_setRegionLorg_eclipse_swt_graphics_Region() { |
| warnUnimpl("Test test_setRegionLorg_eclipse_swt_graphics_Region not written"); |
| } |
| |
| public void test_setVisibleZ() { |
| shell.setVisible(false); |
| assertTrue(":a:", !shell.isVisible()); |
| shell.setVisible(true); |
| assertTrue(":b:", shell.isVisible()); |
| } |
| |
| public void test_win32_newLorg_eclipse_swt_widgets_DisplayI() { |
| warnUnimpl("Test test_win32_newLorg_eclipse_swt_widgets_DisplayI not written"); |
| } |
| |
| public static Test suite() { |
| TestSuite suite = new TestSuite(); |
| java.util.Vector methodNames = methodNames(); |
| java.util.Enumeration e = methodNames.elements(); |
| while (e.hasMoreElements()) { |
| suite.addTest(new Test_org_eclipse_swt_widgets_Shell((String)e.nextElement())); |
| } |
| return suite; |
| } |
| public static java.util.Vector methodNames() { |
| java.util.Vector methodNames = new java.util.Vector(); |
| //these must be run before the shell tests because of pr 79504 |
| methodNames.addElement("test_consistency_Iconify"); |
| methodNames.addElement("test_consistency_Close"); |
| methodNames.addElement("test_consistency_Dispose"); |
| methodNames.addElement("test_consistency_Open"); |
| methodNames.addAll(Test_org_eclipse_swt_widgets_Decorations.methodNames()); // add superclass method names |
| |
| methodNames.addElement("test_Constructor"); |
| methodNames.addElement("test_ConstructorI"); |
| methodNames.addElement("test_ConstructorLorg_eclipse_swt_widgets_Display"); |
| methodNames.addElement("test_ConstructorLorg_eclipse_swt_widgets_DisplayI"); |
| methodNames.addElement("test_ConstructorLorg_eclipse_swt_widgets_Shell"); |
| methodNames.addElement("test_ConstructorLorg_eclipse_swt_widgets_ShellI"); |
| methodNames.addElement("test_addShellListenerLorg_eclipse_swt_events_ShellListener"); |
| methodNames.addElement("test_close"); |
| methodNames.addElement("test_dispose"); |
| methodNames.addElement("test_forceActive"); |
| methodNames.addElement("test_getBounds"); |
| methodNames.addElement("test_getEnabled"); |
| methodNames.addElement("test_getImeInputMode"); |
| methodNames.addElement("test_getLocation"); |
| methodNames.addElement("test_getRegion"); |
| methodNames.addElement("test_getShell"); |
| methodNames.addElement("test_getShells"); |
| methodNames.addElement("test_isEnabled"); |
| methodNames.addElement("test_open"); |
| methodNames.addElement("test_removeShellListenerLorg_eclipse_swt_events_ShellListener"); |
| methodNames.addElement("test_setActive"); |
| methodNames.addElement("test_setEnabledZ"); |
| methodNames.addElement("test_setImeInputModeI"); |
| methodNames.addElement("test_setRegionLorg_eclipse_swt_graphics_Region"); |
| methodNames.addElement("test_setVisibleZ"); |
| methodNames.addElement("test_win32_newLorg_eclipse_swt_widgets_DisplayI"); |
| return methodNames; |
| } |
| protected void runTest() throws Throwable { |
| if (getName().equals("test_Constructor")) test_Constructor(); |
| else if (getName().equals("test_ConstructorI")) test_ConstructorI(); |
| else if (getName().equals("test_ConstructorLorg_eclipse_swt_widgets_Display")) test_ConstructorLorg_eclipse_swt_widgets_Display(); |
| else if (getName().equals("test_ConstructorLorg_eclipse_swt_widgets_DisplayI")) test_ConstructorLorg_eclipse_swt_widgets_DisplayI(); |
| else if (getName().equals("test_ConstructorLorg_eclipse_swt_widgets_Shell")) test_ConstructorLorg_eclipse_swt_widgets_Shell(); |
| else if (getName().equals("test_ConstructorLorg_eclipse_swt_widgets_ShellI")) test_ConstructorLorg_eclipse_swt_widgets_ShellI(); |
| else if (getName().equals("test_addShellListenerLorg_eclipse_swt_events_ShellListener")) test_addShellListenerLorg_eclipse_swt_events_ShellListener(); |
| else if (getName().equals("test_close")) test_close(); |
| else if (getName().equals("test_dispose")) test_dispose(); |
| else if (getName().equals("test_forceActive")) test_forceActive(); |
| else if (getName().equals("test_getBounds")) test_getBounds(); |
| else if (getName().equals("test_getEnabled")) test_getEnabled(); |
| else if (getName().equals("test_getImeInputMode")) test_getImeInputMode(); |
| else if (getName().equals("test_getLocation")) test_getLocation(); |
| else if (getName().equals("test_getRegion")) test_getRegion(); |
| else if (getName().equals("test_getShell")) test_getShell(); |
| else if (getName().equals("test_getShells")) test_getShells(); |
| else if (getName().equals("test_isEnabled")) test_isEnabled(); |
| else if (getName().equals("test_open")) test_open(); |
| else if (getName().equals("test_removeShellListenerLorg_eclipse_swt_events_ShellListener")) test_removeShellListenerLorg_eclipse_swt_events_ShellListener(); |
| else if (getName().equals("test_setActive")) test_setActive(); |
| else if (getName().equals("test_setEnabledZ")) test_setEnabledZ(); |
| else if (getName().equals("test_setImeInputModeI")) test_setImeInputModeI(); |
| else if (getName().equals("test_setRegionLorg_eclipse_swt_graphics_Region")) test_setRegionLorg_eclipse_swt_graphics_Region(); |
| else if (getName().equals("test_setVisibleZ")) test_setVisibleZ(); |
| else if (getName().equals("test_win32_newLorg_eclipse_swt_widgets_DisplayI")) test_win32_newLorg_eclipse_swt_widgets_DisplayI(); |
| else if (getName().equals("test_consistency_Iconify")) test_consistency_Iconify(); |
| else if (getName().equals("test_consistency_Close")) test_consistency_Close(); |
| else if (getName().equals("test_consistency_Dispose")) test_consistency_Dispose(); |
| else if (getName().equals("test_consistency_Open")) test_consistency_Open(); |
| else super.runTest(); |
| } |
| |
| /* custom */ |
| public void test_getParent () { |
| // overriding Control.test_getParent |
| assertTrue(shell.getParent()==null); |
| assertTrue(testShell.getParent() == shell); |
| } |
| |
| public void test_getStyle() { |
| // overriding Widget.test_getStyle |
| assertTrue("testShell not modeless", (testShell.getStyle () & SWT.MODELESS) == SWT.MODELESS); |
| int[] cases = {SWT.MODELESS, SWT.PRIMARY_MODAL, SWT.APPLICATION_MODAL, SWT.SYSTEM_MODAL}; |
| for (int i = 0; i < cases.length; i++) { |
| Shell testShell2 = new Shell(shell, cases[i]); |
| assertTrue("shell " + i, (testShell2.getStyle () & cases[i]) == cases[i]); |
| testShell2.dispose(); |
| } |
| } |
| |
| public void test_isVisible() { |
| // overriding Control.test_isVisible |
| testShell.setVisible(true); |
| assertTrue(testShell.isVisible()); |
| shell.setVisible(true); |
| assertTrue(shell.isVisible()); |
| |
| testShell.setVisible(true); |
| shell.setVisible(true); |
| assertTrue("shell.isVisible() a:", shell.isVisible()); |
| shell.setVisible(false); |
| assertTrue("shell.isVisible() b:", !shell.isVisible()); |
| if (fCheckBogusTestCases) |
| assertTrue("testShell.isVisible() c:", !testShell.isVisible()); |
| } |
| |
| public void test_setBoundsIIII() { |
| // overridden from Control because Shells have a minimum size |
| } |
| |
| public void test_setBoundsLorg_eclipse_swt_graphics_Rectangle() { |
| // overridden from Control because Shells have a minimum size |
| // /* windows */ |
| // /* note that there is a minimum size for a shell, this test will fail if p1.x < 112 or p1.y < 27 */ |
| // /* note that there is a maximum size for a shell, this test will fail if p1.x > 1292 or p1.y > 1036 */ |
| // if (SwtJunit.isWindows) { |
| // Point p1 = new Point(112, 27); |
| // Rectangle r1 = new Rectangle(20, 30, p1.x, p1.y); |
| // Rectangle r2; |
| // for (int i = 0; i < 11; i++) { |
| // testShell.setBounds(r1); |
| // r2 = testShell.getBounds(); |
| // assert("child shell iteration " + i + " set=" + r1 + " get=" + r2, r1.equals(r2)); |
| // r1.width += 100; |
| // r1.height += 100; |
| // } |
| // r1 = new Rectangle(20, 30, p1.x, p1.y); |
| // for (int i = 0; i < 11; i++) { |
| // shell.setBounds(r1); |
| // r2 = shell.getBounds(); |
| // assert("parent shell iteration " + i + " set=" + r1 + " get=" + r2, r1.equals(r2)); |
| // r1.width += 100; |
| // r1.height += 100; |
| // } |
| // } |
| // /* motif */ |
| // /* note that there is a minimum size for a shell, this test will fail if p1.x < 112 or p1.y < 27 */ |
| // /* note that there is a maximum size for a shell, this test will fail if p1.x > 1292 or p1.y > 1036 */ |
| // if (SwtJunit.isMotif) { |
| // Point p1 = new Point(15,35); |
| // Rectangle r1 = new Rectangle(20, 30, p1.x, p1.y); |
| // Rectangle r2; |
| // |
| // for (int i = 0; i < 15; i++) { |
| // testShell.setBounds(r1); |
| // r2 = testShell.getBounds(); |
| // assert("child shell iteration " + i + " set=" + r1 + " get=" + r2, r1.equals(r2)); |
| // r1.width += 100; |
| // r1.height += 100; |
| // } |
| // r1 = new Rectangle(50, 50, p1.x, p1.y); |
| // for (int i = 0; i < 11; i++) { |
| // shell.setBounds(r1); |
| // r2 = shell.getBounds(); |
| // assert("parent shell iteration " + i + " set=" + r1 + " get=" + r2, r1.equals(r2)); |
| // r1.width += 100; |
| // r1.height += 100; |
| // } |
| // } |
| } |
| public void test_setRegion() { |
| Region region = new Region(); |
| region.add(new Rectangle(10, 20, 100, 200)); |
| // test shell without style SWT.NO_TRIM |
| assertTrue(":a:", shell.getRegion() == null); |
| shell.setRegion(region); |
| assertTrue(":b:", shell.getRegion() == null); |
| shell.setRegion(null); |
| assertTrue(":c:", shell.getRegion() == null); |
| // test shell with style SWT.NO_TRIM |
| Display display = shell.getDisplay(); |
| Shell shell2 = new Shell(display, SWT.NO_TRIM); |
| assertTrue(":d:", shell2.getRegion() == null); |
| shell2.setRegion(region); |
| assertTrue(":e:", shell2.getRegion().handle == region.handle); |
| region.dispose(); |
| assertTrue(":f:", shell2.getRegion().isDisposed()); |
| shell2.setRegion(null); |
| assertTrue(":g:", shell2.getRegion() == null); |
| } |
| public void test_setSizeII() { |
| /* windows */ |
| /* note that there is a minimum size for a shell, this test will fail if p1.x < 112 or p1.y < 27 */ |
| /* note that there is a maximum size for a shell, this test will fail if p1.x > 1292 or p1.y > 1036 */ |
| if (SwtJunit.isWindows) { |
| Point newSize = new Point(112, 27); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize.x, newSize.y); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x += 100; |
| newSize.y += 100; |
| } |
| newSize = new Point(1292, 1036); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize.x, newSize.y); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x -= 100; |
| newSize.y -= 100; |
| } |
| } |
| |
| /* motif */ |
| /* note that there is a minimum size for a shell, this test will fail if p1.x < ?? or p1.y < ?? */ |
| /* note that there is a maximum size for a shell, this test will fail if p1.x > ?? or p1.y > ?? */ |
| if (SwtJunit.isMotif) { |
| Point newSize = new Point(2, 2); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize.x, newSize.y); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x += 100; |
| newSize.y += 100; |
| } |
| newSize = new Point(1600, 1600); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize.x, newSize.y); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x -= 100; |
| newSize.y -= 100; |
| } |
| } |
| } |
| |
| public void test_setSizeLorg_eclipse_swt_graphics_Point() { |
| /* windows */ |
| /* note that there is a minimum size for a shell, this test will fail if p1.x < 112 or p1.y < 27 */ |
| /* note that there is a maximum size for a shell, this test will fail if p1.x > 1292 or p1.y > 1036 */ |
| if (SwtJunit.isWindows) { |
| Point newSize = new Point(112, 27); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x += 100; |
| newSize.y += 100; |
| } |
| newSize = new Point(1292, 1036); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x -= 100; |
| newSize.y -= 100; |
| } |
| } |
| |
| /* motif */ |
| /* note that there is a minimum size for a shell, this test will fail if p1.x < ?? or p1.y < ?? */ |
| /* note that there is a maximum size for a shell, this test will fail if p1.x > ?? or p1.y > ?? */ |
| if (SwtJunit.isMotif) { |
| Point newSize = new Point(2, 2); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x += 100; |
| newSize.y += 100; |
| } |
| newSize = new Point(1600, 1600); |
| for (int i = 0; i < 10; i++) { |
| testShell.setSize(newSize); |
| assertEquals(newSize, testShell.getSize()); |
| newSize.x -= 100; |
| newSize.y -= 100; |
| } |
| } |
| } |
| |
| Shell testShell; |
| |
| private void createShell() { |
| tearDown(); |
| shell = new Shell(); |
| testShell = new Shell(shell, SWT.DIALOG_TRIM | SWT.MIN); |
| testShell.setSize(100,300); |
| testShell.setText("Shell"); |
| testShell.setLayout(new FillLayout()); |
| setWidget(testShell); |
| |
| } |
| |
| public void test_consistency_Open() { |
| if (fTestConsistency) { |
| createShell(); |
| final Display display = shell.getDisplay(); |
| Vector events = new Vector(); |
| String[] temp = hookExpectedEvents(testShell, getTestName(), events); |
| shell.pack(); |
| shell.open(); |
| testShell.pack(); |
| testShell.open(); |
| new Thread() { |
| public void run() { |
| display.asyncExec(new Thread() { |
| public void run() { |
| shell.dispose(); |
| } |
| }); |
| }}.start(); |
| |
| while(!shell.isDisposed()) { |
| if(!display.readAndDispatch()) display.sleep(); |
| } |
| setUp(); |
| String[] results = new String[events.size()]; |
| events.copyInto(results); |
| assertEquals(getTestName() + " event ordering", temp, results); |
| } |
| } |
| |
| public void test_consistency_Iconify() { |
| createShell(); |
| consistencyEvent(1, 0, 0, 0, ConsistencyUtility.SHELL_ICONIFY, null, false); |
| } |
| |
| public void test_consistency_Close() { |
| createShell(); |
| consistencyPrePackShell(); |
| if(!SwtJunit.isCarbon) |
| consistencyEvent(0, SWT.ALT, 0, SWT.F4, ConsistencyUtility.DOUBLE_KEY_PRESS); |
| else |
| consistencyEvent(10, 10, 1, 0, ConsistencyUtility.MOUSE_CLICK); |
| createShell(); |
| } |
| |
| public void test_consistency_Dispose() { |
| createShell(); |
| |
| final Button button = new Button(testShell, SWT.PUSH); |
| button.setText("dispose"); |
| button.addSelectionListener( new SelectionAdapter() { |
| public void widgetSelected(SelectionEvent se) { |
| button.dispose(); |
| testShell.dispose(); |
| } |
| }); |
| Vector events = new Vector(); |
| consistencyPrePackShell(testShell); |
| Point pt = button.getLocation(); |
| consistencyEvent(pt.x, pt.y, 1, 0, ConsistencyUtility.MOUSE_CLICK, events); |
| createShell(); |
| } |
| } |