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
-<?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
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
-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
@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
/**\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
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
@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
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
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
--- /dev/null
+/**\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
*/\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
\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
* 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
+++ /dev/null
-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
+++ /dev/null
-/**\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
--- /dev/null
+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
--- /dev/null
+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
--- /dev/null
+/**\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
--- /dev/null
+/**\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
--- /dev/null
+/**\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
--- /dev/null
+/**\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
--- /dev/null
+/**\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