From: cmjaun <cm...@us...> - 2005-05-26 15:43:01
|
Update of /cvsroot/abbot/abbot.swt.eclipse/src/abbot/swt/eclipse/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16224/src/abbot/swt/eclipse/tests Added Files: DriveHTMLWizard.java Log Message: Initial commit --- NEW FILE: DriveHTMLWizard.java --- /* DriveHTMLWizard.java * Created on May 25, 2005 * * This test class will drive the new HTML Wizard * */ package abbot.swt.eclipse.tests; import org.eclipse.core.runtime.CoreException; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.PlatformUI; import abbot.finder.matchers.swt.ClassMultiMatcher; import abbot.finder.matchers.swt.TextMatcher; import abbot.finder.swt.BasicFinder; import abbot.finder.swt.MultipleWidgetsFoundException; import abbot.finder.swt.TestHierarchy; import abbot.finder.swt.WidgetNotFoundException; import abbot.swt.eclipse.utils.InvokeNewWizard; import abbot.swt.eclipse.utils.PreferenceUtils; import abbot.swt.eclipse.utils.Utils; import abbot.tester.swt.ButtonTester; import abbot.tester.swt.TextTester; import abbot.tester.swt.WidgetTester; import junit.framework.TestCase; /* * @author Chris Jaun */ public class DriveHTMLWizard extends TestCase { // Display.getDefault() gets Test Collector, so stash the workbench's Display protected static Display display = null; // Testers used by test method final static TextTester textTester = (TextTester) WidgetTester.getTester(Text.class); final static ButtonTester buttonTester = (ButtonTester) WidgetTester.getTester(Button.class); // this method drives the wizard using abbot public static void testDriveHTMLWizard(String pageName, Shell parentShell) throws CoreException, InterruptedException, Exception { // store the project name and server path in a final variable so that they can be used within a thread final String pageNameText = pageName; display = parentShell.getDisplay(); // set confirm perspective switch and confirm enablment to false so that runtime workbench can // switch perspectives without asking user for confirmation PreferenceUtils.setConfirmPerspectiveSwitch(false, PlatformUI.getPreferenceStore()); PreferenceUtils.setConfirmEnablement(false, PlatformUI.getPreferenceStore()); // create a BasicFinder based on the given hierachy final TestHierarchy hierarchy = new TestHierarchy(display); final BasicFinder finder = new BasicFinder(hierarchy); // drive the new HTML Wizard final Thread driveWizard = new Thread() { public void run() { try { // wait for the new wizard to open WidgetTester.waitForShellShowing("New HTML Page"); System.out.println("Found New HTML Page Wizard shell"); Shell ourShell = (Shell) (finder.find(new TextMatcher("New HTML Page"))); //$NON-NLS-1$ // find the finish button Button finishButton = (Button) (finder.find(new TextMatcher(TestsStrings.getString("finish.text")))); //$NON-NLS-1$ // find the project name label used to locate the text fields in a composite final Label pageLabel = (Label)(finder.find(new TextMatcher("File na&me:"))); //$NON-NLS-1$ // new thread to help find the text fields display.syncExec(new Runnable() { public void run() { // get the composite to search for text fields Composite dataArea = (Composite) pageLabel.getParent(); try { // find the two text fields and fill in their values: int is index of the widget Text nameText = (Text) finder.find(dataArea, new ClassMultiMatcher(Text.class, 1)); System.out.println(TestsStrings.getString("project.name.entry")); //$NON-NLS-1$ textTester.actionEnterText(nameText, pageNameText); //$NON-NLS-1$ System.out.println(TestsStrings.getString("23")); //$NON-NLS-1$ } catch (WidgetNotFoundException e) { e.printStackTrace(); fail(TestsStrings.getString("notFound.error")); //$NON-NLS-1$ } catch (MultipleWidgetsFoundException e) { e.printStackTrace(); fail(TestsStrings.getString("multipleFound.error")); //$NON-NLS-1$ } } }); // press finish button buttonTester.actionClick(finishButton); } catch (WidgetNotFoundException e) { e.printStackTrace(); fail(TestsStrings.getString("notFound.error")); //$NON-NLS-1$ } catch (MultipleWidgetsFoundException e) { e.printStackTrace(); fail(TestsStrings.getString("multipleFound.error")); //$NON-NLS-1$ } } }; // open the new Dynamic Web Project wizard driveWizard.start(); InvokeNewWizard.invoke("Web/HTML", parentShell); Utils.safeJoin(driveWizard); } } |