Reorganized the test classes
authorn.hoffmann <n.hoffmann@localhost>
Thu, 6 Oct 2011 11:40:25 +0000 (11:40 +0000)
committern.hoffmann <n.hoffmann@localhost>
Thu, 6 Oct 2011 11:40:25 +0000 (11:40 +0000)
17 files changed:
.gitattributes
eu.etaxonomy.taxeditor.test/.classpath
eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/application/menu/general/NewMenuTest.java [moved from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewMenuTest.java with 73% similarity]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/contextmenu/ClassificationTest.java [moved from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ClassificationTest.java with 72% similarity]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/AbstractEditorTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ContextMenuHelper.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/LoginTest.java [deleted file]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewTaxonWizardTest.java [deleted file]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/SwtBotUtils.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/LoginDialogTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/NameSelectionElementTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElementTest.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonSelectionElementTest.java [new file with mode: 0644]

index 29b16e4e571dd2f8d4ae5d00ba764304203b9473..cc8c8fd5fed728c7d189a22d81e32b2240a685ca 100644 (file)
@@ -1323,12 +1323,18 @@ eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF -text
 eu.etaxonomy.taxeditor.test/build.properties -text
 eu.etaxonomy.taxeditor.test/ide/eclipse/EDITor[!!-~]Tests.launch -text
 eu.etaxonomy.taxeditor.test/src/main/resources/log4j.xml -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/application/menu/general/NewMenuTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/contextmenu/ClassificationTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/AbstractEditorTest.java -text
-eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ClassificationTest.java -text
 eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ContextMenuHelper.java -text
-eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/LoginTest.java -text
-eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewMenuTest.java -text
-eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewTaxonWizardTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/SwtBotUtils.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/LoginDialogTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/NameSelectionElementTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElementTest.java -text
+eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonSelectionElementTest.java -text
 eu.etaxonomy.taxeditor/.classpath -text
 eu.etaxonomy.taxeditor/.project -text
 eu.etaxonomy.taxeditor/deploy_nightly.sh -text
index 9926b70920a432995af59da9b8c956efc10c764d..c5d344b0e488c1d59c92c4cbc81803ef7fc2b4af 100644 (file)
@@ -1,8 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
-       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-       <classpathentry kind="src" path="src/test/java"/>
-       <classpathentry kind="src" path="src/main/resources"/>
-       <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>\r
+       <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
+       <classpathentry kind="src" path="src/test/java"/>\r
+       <classpathentry kind="src" path="src/main/resources"/>\r
+       <classpathentry kind="src" path="src_/"/>\r
+       <classpathentry kind="output" path="bin"/>\r
+</classpath>\r
index 73df11ab284ef8f2202306935dab84db49e0b45e..998796316fce075ec22522ec00caa05432ac854d 100644 (file)
@@ -14,5 +14,13 @@ Require-Bundle: org.apache.log4j,
  org.eclipse.swtbot.junit4_x,
  org.hamcrest,
  org.eclipse.ui.ide,
- org.junit4
+ org.junit4,
+ eu.etaxonomy.taxeditor.application;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.bulkeditor;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.cdmlib;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.editor;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.help;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.navigation;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.printpublisher;bundle-version="3.0.6",
+ eu.etaxonomy.taxeditor.store;bundle-version="3.0.6"
 Eclipse-RegisterBuddy: org.apache.log4j
similarity index 73%
rename from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewMenuTest.java
rename to eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/application/menu/general/NewMenuTest.java
index cb49f1f043fe81d3fced8a82497d2deb4edcb6cd..0dc9065267426971ed1f9a6f79b42a9dd61050a6 100644 (file)
@@ -1,10 +1,12 @@
-package eu.etaxonomy.taxeditor.test;\r
+package eu.etaxonomy.taxeditor.application.menu.general;\r
 \r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
 import org.junit.Test;\r
 \r
+import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
+\r
 /**\r
- * Open all new menus\r
+ * Open all "General -> New" menus\r
  * \r
  * @author n.hoffmann\r
  *\r
@@ -14,48 +16,48 @@ public class NewMenuTest extends AbstractEditorTest {
        @Test\r
        public void canOpenNewWizardForTaxon(){\r
                openNewWizardFor("Taxon");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
 \r
        @Test\r
        public void canOpenNewWizardForReference(){\r
                openNewWizardFor("Reference");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
        \r
        @Test\r
        public void canOpenNewWizardForName(){\r
                openNewWizardFor("Name");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
        \r
        @Test\r
        public void canOpenNewWizardForTeam(){\r
                openNewWizardFor("Team");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
        \r
        @Test\r
        public void canOpenNewWizardForPerson(){\r
                openNewWizardFor("Person");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
        @Test\r
        public void canOpenNewWizardForSpecimen(){\r
                openNewWizardFor("Specimen");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
        \r
        \r
        @Test\r
        public void canOpenNewWizardForClassification(){\r
                openNewWizardFor("Classification");\r
-               cancel();\r
+               utils.cancel();\r
        }\r
 \r
        private void openNewWizardFor(String entity) {\r
similarity index 72%
rename from eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/ClassificationTest.java
rename to eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/navigation/navigator/contextmenu/ClassificationTest.java
index d73aa5bcc5a54f068f031f866e175f3da5ae426a..6d4dac58c945cd11c6a03da2b499e8f444c74bdd 100644 (file)
@@ -1,7 +1,7 @@
 /**\r
  * \r
  */\r
-package eu.etaxonomy.taxeditor.test;\r
+package eu.etaxonomy.taxeditor.navigation.navigator.contextmenu;\r
 \r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;\r
@@ -9,6 +9,9 @@ import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
 import org.junit.Before;\r
 import org.junit.Test;\r
 \r
+import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
+import eu.etaxonomy.taxeditor.test.ContextMenuHelper;\r
+\r
 /**\r
  * @author n.hoffmann\r
  *\r
@@ -21,8 +24,8 @@ public class ClassificationTest extends AbstractEditorTest {
        @Before\r
        public void setup() {\r
                super.setup();\r
-               navigatorView = view("Taxon Navigator");\r
-               tree = tree(navigatorView.getWidget());\r
+               navigatorView = utils.view("Taxon Navigator");\r
+               tree = utils.tree(navigatorView.getWidget());\r
        }\r
        \r
        @Test\r
@@ -30,7 +33,7 @@ public class ClassificationTest extends AbstractEditorTest {
                tree.select(0);\r
                ContextMenuHelper.clickContextMenu(tree, "Delete");\r
                bot.waitUntil(Conditions.shellIsActive("Confirm Deletion"));\r
-               bot.button("OK").click();\r
+               utils.ok();\r
        }\r
        \r
        @Test\r
@@ -39,6 +42,6 @@ public class ClassificationTest extends AbstractEditorTest {
                ContextMenuHelper.clickContextMenu(tree, "New", "Classification");\r
                bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
                bot.textWithLabel("Label").setText("Classification");\r
-               bot.button("Finish").click();\r
+               utils.finish();\r
        }\r
 }\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/newWizard/NewTaxonWizardTest.java
new file mode 100644 (file)
index 0000000..1c09585
--- /dev/null
@@ -0,0 +1,55 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.newWizard;\r
+\r
+import junit.framework.Assert;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;\r
+import org.junit.Test;\r
+\r
+import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public class NewTaxonWizardTest extends AbstractEditorTest {\r
+\r
+       @Override\r
+       public void setup() {\r
+               super.setup();\r
+               bot.menu("General").menu("New").menu("Taxon").click();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+       }\r
+       \r
+       @Test\r
+       public void unalteredDialogCanNotBefinished() {\r
+               boolean finishIsEnabled = bot.button("Finish").isEnabled();\r
+               Assert.assertEquals(false, finishIsEnabled);\r
+               utils.cancel();\r
+       }\r
+       \r
+       @Test\r
+       public void canCreateNewTaxonMinimal(){\r
+               utils.openFilteredSelection(0, "Choose a Classification");\r
+\r
+               SWTBotButton okButton = bot.button(1);\r
+               bot.text(0).setText("?");\r
+               bot.waitUntil(Conditions.widgetIsEnabled(okButton));\r
+               utils.ok();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+               String newTaxonName = "Test taxon Smartbert";\r
+               bot.textWithLabel("New Taxon").setText(newTaxonName);\r
+               bot.waitUntil(Conditions.widgetIsEnabled(bot.button("Finish")));\r
+               utils.finish();\r
+               \r
+//             bot.waitUntil(Conditions.waitForEditor(WithPartId.withPartId(MultiPageTaxonEditor.ID)));\r
+//             Assert.assertEquals(newTaxonName, bot.activeEditor().getTitle());\r
+       }\r
+       \r
+       \r
+\r
+       \r
+}\r
index f6da7727e270ae6a867c1058ab4c74b2aedf9c90..78a24ab76e8d9819c9f9ab75e063755b84fc4751 100644 (file)
@@ -3,19 +3,10 @@
  */\r
 package eu.etaxonomy.taxeditor.test;\r
 \r
-import java.util.List;\r
-\r
-import org.eclipse.swt.widgets.Tree;\r
-import org.eclipse.swt.widgets.Widget;\r
 import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;\r
-import org.eclipse.swtbot.eclipse.finder.matchers.WidgetMatcherFactory;\r
 import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;\r
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;\r
-import org.eclipse.swtbot.swt.finder.finders.ChildrenControlFinder;\r
 import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;\r
 import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;\r
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;\r
 import org.junit.Before;\r
 import org.junit.runner.RunWith;\r
 \r
@@ -28,48 +19,34 @@ public abstract class AbstractEditorTest {
        \r
        protected SWTWorkbenchBot bot;\r
        \r
+       public SwtBotUtils utils;\r
+       \r
        @Before\r
        public void setup() {\r
                bot = new SWTWorkbenchBot();\r
                SWTBotPreferences.TIMEOUT = 300000;\r
+               utils = new SwtBotUtils(bot);\r
+               \r
+               // unfortunately swt bot is not available at the time this is set up\r
+//             if("Choose a nomenclatural code".equals(getActiveShellHeadline())){\r
+//                     ok();\r
+//                     bot.waitUntil(Conditions.shellIsActive("Nomenclatural code set"));\r
+//                     ok();\r
+//             }\r
                \r
-               String activeText = bot.activeShell().getText();\r
-               if(activeText.equals("Connecting to datasource: cdm")){\r
-                       bot.waitUntil(Conditions.shellIsActive("Login"));\r
-                       bot.button("Cancel").click();\r
+               if("Connecting to datasource: cdm".equals(utils.getActiveShellHeadline())){\r
+                       performLogin();\r
                }\r
        }\r
-\r
-       \r
-       /**\r
-        * @return\r
-        * @throws WidgetNotFoundException\r
-        */\r
-       public SWTBotTree tree(Widget widget) throws WidgetNotFoundException {\r
-               List<Tree> controls = new ChildrenControlFinder(widget).findControls(WidgetMatcherFactory.widgetOfType(Tree.class));\r
-               if (controls.isEmpty())\r
-                       throw new WidgetNotFoundException("Could not find any tree");\r
-               SWTBotTree tree = new SWTBotTree((Tree) controls.get(0));\r
-               return tree;\r
-       }\r
-\r
-       /**\r
-        * @return\r
-        * @throws WidgetNotFoundException\r
-        */\r
-       public SWTBotView view(String title) throws WidgetNotFoundException {\r
-               return bot.viewByTitle(title);\r
-       }\r
        \r
-       public void cancel() {\r
-               clickButton("Cancel");\r
+       private void performLogin(){\r
+               bot.waitUntil(Conditions.shellIsActive("Login"));\r
+               bot.textWithLabel("Username").setText("admin");\r
+               bot.textWithLabel("Password").setText("00000");\r
+               bot.button("OK").click();\r
        }\r
        \r
-       public void ok() {\r
-               clickButton("OK");\r
-       }\r
+\r
        \r
-       public void clickButton(String label) {\r
-               bot.button(label).click();\r
-       }\r
+\r
 }\r
index 37371d05ce14176faaac19f572ba515ac0f17567..8fe523c707fe7aea274ea6b68fbdf176a2fefaf7 100644 (file)
@@ -24,9 +24,9 @@ public class ContextMenuHelper {
         * Clicks the context menu matching the text.\r
         *\r
         * @param text\r
-        * the text on the context menu.\r
+        *              the text on the context menu.\r
         * @throws WidgetNotFoundException\r
-        * if the widget is not found.\r
+        *              if the widget is not found.\r
         */\r
        public static void clickContextMenu(final AbstractSWTBot<?> bot,\r
                        final String... texts) {\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/LoginTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/LoginTest.java
deleted file mode 100644 (file)
index e9ac066..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-package eu.etaxonomy.taxeditor.test;\r
-\r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
-import org.junit.Test;\r
-\r
-\r
-public class LoginTest extends AbstractEditorTest{\r
-               \r
-       @Test\r
-       public void canLoginAsAdmin() throws Exception {\r
-               bot.menu("General").menu("Login").click();\r
-               bot.waitUntil(Conditions.shellIsActive("Login"));\r
-               bot.textWithLabel("Username").setText("admin");\r
-               bot.textWithLabel("Password").setText("0000");\r
-               bot.button("Cancel").click();\r
-       }\r
-       \r
-}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewTaxonWizardTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/NewTaxonWizardTest.java
deleted file mode 100644 (file)
index 7fc285c..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/**\r
- * \r
- */\r
-package eu.etaxonomy.taxeditor.test;\r
-\r
-import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
-import org.junit.After;\r
-import org.junit.Ignore;\r
-import org.junit.Test;\r
-\r
-/**\r
- * @author n.hoffmann\r
- *\r
- */\r
-public class NewTaxonWizardTest extends AbstractEditorTest {\r
-\r
-       @Override\r
-       public void setup() {\r
-               super.setup();\r
-               bot.menu("General").menu("New").menu("Taxon").click();\r
-               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
-       }\r
-       \r
-       @Ignore\r
-       @Test\r
-       public void canSelectClassification() {\r
-               bot.button("Browse existing").click();\r
-               bot.waitUntil(Conditions.shellIsActive("Choose a Classification"));\r
-       }\r
-       \r
-       @After\r
-       public void tearDown() {\r
-               clickButton("Finish");\r
-       }\r
-}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/SwtBotUtils.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/test/SwtBotUtils.java
new file mode 100644 (file)
index 0000000..b2d7c45
--- /dev/null
@@ -0,0 +1,83 @@
+package eu.etaxonomy.taxeditor.test;\r
+\r
+import java.util.List;\r
+\r
+import org.eclipse.osgi.internal.loader.FilteredSourcePackage;\r
+import org.eclipse.swt.widgets.Tree;\r
+import org.eclipse.swt.widgets.Widget;\r
+import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;\r
+import org.eclipse.swtbot.eclipse.finder.matchers.WidgetMatcherFactory;\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;\r
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;\r
+import org.eclipse.swtbot.swt.finder.finders.ChildrenControlFinder;\r
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotButton;\r
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;\r
+\r
+public class SwtBotUtils {\r
+       \r
+       private SWTWorkbenchBot bot;\r
+       \r
+       public SwtBotUtils(SWTWorkbenchBot bot) {\r
+               this.bot = bot;\r
+       }\r
+       \r
+       /**\r
+        * @return\r
+        * @throws WidgetNotFoundException\r
+        */\r
+       public SWTBotTree tree(Widget widget) throws WidgetNotFoundException {\r
+               List<Tree> controls = new ChildrenControlFinder(widget).findControls(WidgetMatcherFactory.widgetOfType(Tree.class));\r
+               if (controls.isEmpty())\r
+                       throw new WidgetNotFoundException("Could not find any tree");\r
+               SWTBotTree tree = new SWTBotTree((Tree) controls.get(0));\r
+               return tree;\r
+       }\r
+       \r
+       /**\r
+        * \r
+        * @param index the index of the SelectionElement\r
+        * @param dialogName the title of the expected dialog\r
+        */\r
+       public void openFilteredSelection(int index, String dialogName){\r
+               SWTBotButton existing = bot.buttonWithTooltip("Browse existing", index);\r
+               existing.click();\r
+               bot.waitUntil(Conditions.shellIsActive(dialogName));\r
+       }\r
+\r
+       /**\r
+        * @return\r
+        * @throws WidgetNotFoundException\r
+        */\r
+       public SWTBotView view(String title) throws WidgetNotFoundException {\r
+               return getBot().viewByTitle(title);\r
+       }\r
+       \r
+       public void cancel() {\r
+               clickButton("Cancel");\r
+       }\r
+       \r
+       public void ok() {\r
+               clickButton("OK");\r
+       }\r
+       \r
+       public void finish() {\r
+               clickButton("Finish");\r
+       }\r
+       \r
+       public void clickButton(String label) {\r
+               getBot().button(label).click();\r
+       }\r
+       \r
+       public String getActiveShellHeadline(){\r
+               return getBot().activeShell().getText();\r
+       }\r
+\r
+       public SWTWorkbenchBot getBot() {\r
+               return bot;\r
+       }\r
+\r
+       public void setBot(SWTWorkbenchBot bot) {\r
+               this.bot = bot;\r
+       }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/LoginDialogTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/LoginDialogTest.java
new file mode 100644 (file)
index 0000000..2905ba5
--- /dev/null
@@ -0,0 +1,27 @@
+package eu.etaxonomy.taxeditor.ui.dialogs;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Test;\r
+\r
+import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
+\r
+\r
+public class LoginDialogTest extends AbstractEditorTest{\r
+               \r
+       @Test\r
+       public void canLoginAsAdmin() throws Exception {\r
+               bot.menu("General").menu("Login").click();\r
+               bot.waitUntil(Conditions.shellIsActive("Login"));\r
+               bot.textWithLabel("Username").setText("admin");\r
+               bot.textWithLabel("Password").setText("00000");\r
+               utils.ok();\r
+       }\r
+       \r
+       @Test\r
+       public void canCancelLogin() throws Exception {\r
+               bot.menu("General").menu("Login").click();\r
+               bot.waitUntil(Conditions.shellIsActive("Login"));\r
+               utils.cancel();\r
+       }\r
+       \r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/AbstractSelectionElementTest.java
new file mode 100644 (file)
index 0000000..adccccf
--- /dev/null
@@ -0,0 +1,27 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.ui.selection;\r
+\r
+import org.junit.After;\r
+\r
+import eu.etaxonomy.taxeditor.test.AbstractEditorTest;\r
+\r
+/**\r
+ * This test will only test the selection element itself. The test may have to start other \r
+ * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * should be handled by different tests.\r
+ * \r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public abstract class AbstractSelectionElementTest extends AbstractEditorTest{\r
+\r
+       \r
+\r
+       @After\r
+       public void tearDown() {\r
+               utils.cancel();\r
+       }\r
+       \r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/ClassificationSelectionElementTest.java
new file mode 100644 (file)
index 0000000..245f934
--- /dev/null
@@ -0,0 +1,30 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.ui.selection;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Test;\r
+\r
+/**\r
+ * This test will only test the selection element itself. The test may have to start other \r
+ * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * should be handled by different tests.\r
+ * \r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public class ClassificationSelectionElementTest extends AbstractSelectionElementTest{\r
+       @Override\r
+       public void setup() {\r
+               super.setup();\r
+               bot.menu("General").menu("New").menu("Taxon").click();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+       }\r
+       \r
+       @Test\r
+       public void canSelectClassification() {\r
+               utils.openFilteredSelection(0, "Choose a Classification");\r
+               utils.cancel();\r
+       }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/NameSelectionElementTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/NameSelectionElementTest.java
new file mode 100644 (file)
index 0000000..a8b653c
--- /dev/null
@@ -0,0 +1,26 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.ui.selection;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Test;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public class NameSelectionElementTest extends AbstractSelectionElementTest {\r
+       @Override\r
+       public void setup() {\r
+               super.setup();\r
+               bot.menu("General").menu("New").menu("Taxon").click();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+       }\r
+       \r
+       @Test\r
+       public void canSelectName() {\r
+               utils.openFilteredSelection(3, "Choose a name");\r
+               utils.cancel();\r
+       }\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElementTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonNodeSelectionElementTest.java
new file mode 100644 (file)
index 0000000..2b29c87
--- /dev/null
@@ -0,0 +1,27 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.ui.selection;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Test;\r
+\r
+/**\r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public class TaxonNodeSelectionElementTest extends AbstractSelectionElementTest {\r
+       @Override\r
+       public void setup() {\r
+               super.setup();\r
+               bot.menu("General").menu("New").menu("Taxon").click();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+       }\r
+       \r
+       @Test\r
+       public void canSelectTaxon() {\r
+               utils.openFilteredSelection(1, "Select parent taxon");\r
+               utils.cancel();\r
+       }\r
+       \r
+}\r
diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonSelectionElementTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/selection/TaxonSelectionElementTest.java
new file mode 100644 (file)
index 0000000..af84076
--- /dev/null
@@ -0,0 +1,30 @@
+/**\r
+ * \r
+ */\r
+package eu.etaxonomy.taxeditor.ui.selection;\r
+\r
+import org.eclipse.swtbot.eclipse.finder.waits.Conditions;\r
+import org.junit.Test;\r
+\r
+/**\r
+ * This test will only test the selection element itself. The test may have to start other \r
+ * dialogs open windows before to get at the selection element. Any errors on the way \r
+ * should be handled by different tests.\r
+ * \r
+ * @author n.hoffmann\r
+ *\r
+ */\r
+public class TaxonSelectionElementTest extends AbstractSelectionElementTest {\r
+       @Override\r
+       public void setup() {\r
+               super.setup();\r
+               bot.menu("General").menu("New").menu("Taxon").click();\r
+               bot.waitUntil(Conditions.shellIsActive("New Entity"));\r
+       }\r
+       \r
+       @Test\r
+       public void canSelectTaxon() {\r
+               utils.openFilteredSelection(2, "Choose a taxon");\r
+               utils.cancel();\r
+       }\r
+}\r