From a7fb4d90abdd02afe07097ce9aaa28ed6fe0d38a Mon Sep 17 00:00:00 2001 From: Ondrej Dockal Date: Thu, 19 Jul 2018 09:53:28 +0200 Subject: [PATCH] Issue #1936 Upgrade JavaProjectWizard parts Signed-off-by: Ondrej Dockal modified: plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/wizard/MavenProjectWizardArtifactPage.java --- .../jdt/ui/wizards/JavaProjectWizard.java | 50 ++++++ .../wizards/NewJavaProjectWizardPageOne.java | 34 +++- .../wizards/NewJavaProjectWizardPageTwo.java | 71 ++++++++ .../jdt/ui/wizards/NewModuleInfoDialog.java | 42 +++++ .../ui/preferences/MavenPreferencePage.java | 1 - .../MavenProjectWizardArtifactPage.java | 1 - .../RSENewConnectionWizardSelectionPage.java | 1 - .../reddeer/jface/wizard/WizardDialog.java | 2 +- .../test/core/resources/MavenProjectTest.java | 1 - .../test/jdt/ui/AbstractResourceTest.java | 1 - .../jdt/{ => ui/wizards}/EnumWizardTest.java | 2 +- .../jdt/ui/wizards/JavaProjectWizardTest.java | 165 ++++++++++++++++++ .../preferences/MavenPreferencePageTest.java | 3 +- .../test/ui/console/ConsoleViewTest.java | 23 ++- 14 files changed, 386 insertions(+), 11 deletions(-) create mode 100644 plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java create mode 100644 plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewModuleInfoDialog.java rename tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/{ => ui/wizards}/EnumWizardTest.java (96%) create mode 100644 tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/JavaProjectWizardTest.java diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/JavaProjectWizard.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/JavaProjectWizard.java index 30c760799e..1e555e5f0f 100644 --- a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/JavaProjectWizard.java +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/JavaProjectWizard.java @@ -11,7 +11,16 @@ *******************************************************************************/ package org.eclipse.reddeer.eclipse.jdt.ui.wizards; +import org.eclipse.reddeer.common.wait.TimePeriod; +import org.eclipse.reddeer.common.wait.WaitUntil; +import org.eclipse.reddeer.common.wait.WaitWhile; import org.eclipse.reddeer.eclipse.selectionwizard.NewMenuWizard; +import org.eclipse.reddeer.jface.condition.WindowIsAvailable; +import org.eclipse.reddeer.swt.api.Button; +import org.eclipse.reddeer.swt.condition.ShellIsAvailable; +import org.eclipse.reddeer.swt.impl.button.FinishButton; +import org.eclipse.reddeer.swt.impl.shell.DefaultShell; +import org.eclipse.reddeer.workbench.core.condition.JobIsRunning; /** * Wizard dialog for creating new Java project. @@ -25,4 +34,45 @@ public JavaProjectWizard() { super("New Java Project", "Java", "Java Project"); } + @Override + public void finish(TimePeriod timeout) { + finish(timeout, false, ""); + } + + public void finish(boolean createModule, String moduleName) { + finish(TimePeriod.LONG, createModule, moduleName); + } + + /** + * Click the finish button in wizard dialog and deal with module-info.java file dialog + * @param timeout + * @param createModule + * @param moduleName + */ + public void finish(TimePeriod timeout, boolean createModule, String moduleName) { + checkShell(); + log.info("Finish wizard"); + + Button button = new FinishButton(this); + button.click(); + + ShellIsAvailable moduleShell = new ShellIsAvailable("New module-info.java"); + new WaitUntil(moduleShell, TimePeriod.MEDIUM, false); + if (moduleShell.getResult() != null) { + NewModuleInfoDialog moduleDialog = new NewModuleInfoDialog(new DefaultShell(moduleShell.getResult())); + if (createModule) { + if (moduleName != null && !moduleName.isEmpty()) { + moduleDialog.setModuleName(moduleName); + } + moduleDialog.create(); + } else { + moduleDialog.dontCreate(); + } + new WaitWhile(moduleShell, TimePeriod.DEFAULT); + } + + new WaitWhile(new WindowIsAvailable(this), timeout); + new WaitWhile(new JobIsRunning(), timeout); + } + } diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageOne.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageOne.java index b55c3a18c9..946726b936 100644 --- a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageOne.java +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageOne.java @@ -14,6 +14,8 @@ import org.eclipse.reddeer.core.reference.ReferencedComposite; import org.eclipse.reddeer.jface.wizard.WizardPage; import org.eclipse.reddeer.swt.impl.button.CheckBox; +import org.eclipse.reddeer.swt.impl.button.RadioButton; +import org.eclipse.reddeer.swt.impl.combo.DefaultCombo; import org.eclipse.reddeer.swt.impl.text.LabeledText; /** @@ -45,7 +47,7 @@ public NewJavaProjectWizardPageOne setProjectName(String projectName) { * Sets whether to use default location. * * @param check - * Indicates whether to use dafualt location + * Indicates whether to use default location */ public NewJavaProjectWizardPageOne useDefaultLocation(boolean check) { CheckBox box = new CheckBox(this, "Use default location"); @@ -66,5 +68,35 @@ public NewJavaProjectWizardPageOne setLocation(String location) { text.setText(location); return this; } + + /** + * Sets whether to use project specific JRE + * @param env + * String representation of specific JRE to use + * @return + * this page object + */ + public NewJavaProjectWizardPageOne useProjectSpecificJRE(String env) { + log.debug("Setting active button 'Use a project specific JRE'"); + new RadioButton(referencedComposite, "Use a project specific JRE: ").toggle(true); + log.debug("Selecting '" + env + "'"); + new DefaultCombo(referencedComposite, 0).setSelection(env); + return this; + } + + /** + * Sets whether to use execution JRE environment + * @param env + * String representation of specific JRE to use + * @return + * this page object + */ + public NewJavaProjectWizardPageOne useExecutionEnvironmentJRE(String env) { + log.debug("Setting active button 'Use an execution environment JRE'"); + new RadioButton(referencedComposite, "Use an execution environment JRE:").toggle(true); + log.debug("Selecting '" + env + "'"); + new DefaultCombo(referencedComposite, 0).setSelection(env); + return this; + } } diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java new file mode 100644 index 0000000000..a8b23da962 --- /dev/null +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewJavaProjectWizardPageTwo.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * Copyright (c) 2018 Red Hat, Inc and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc - initial API and implementation + *******************************************************************************/ +package org.eclipse.reddeer.eclipse.jdt.ui.wizards; + +import org.eclipse.reddeer.core.reference.ReferencedComposite; +import org.eclipse.reddeer.jface.wizard.WizardPage; +import org.eclipse.reddeer.swt.impl.button.CheckBox; +import org.eclipse.reddeer.swt.impl.text.LabeledText; + +/** + * New Java Project wizard page number two + * @author odockal + * + */ +public class NewJavaProjectWizardPageTwo extends WizardPage { + + public NewJavaProjectWizardPageTwo(ReferencedComposite referencedComposite) { + super(referencedComposite); + } + + /** + * Sets whether to create module-info.java file + * @param check + * Indicates whether to create module-info.java file + * @return + */ + public NewJavaProjectWizardPageTwo createModuleInfoFile(boolean check) { + CheckBox box = new CheckBox(this, "Create module-info.java file"); + log.debug("Setting 'Create module-info.java file' to " + check); + box.toggle(check); + return this; + } + + /** + * Sets whether to allow output folder for source folders + * @param check + * Indicates whether to allow output folder for source folders + * @return + * this object + */ + public NewJavaProjectWizardPageTwo allowOutputFoldersForSourceFolders(boolean check) { + CheckBox box = new CheckBox(this, "Allow output folders for source folders"); + log.debug("Setting 'Allow output folders for source folders' to " + check); + box.toggle(check); + return this; + } + + /** + * Sets default output folder location + * @param location + * Default output folder location + * @return + * this object + */ + public NewJavaProjectWizardPageTwo setDefaultOutputFolder(String location) { + log.debug("Setting 'Default output folder' to '" + location + "'"); + LabeledText text = new LabeledText(this, "Default output folder:"); + text.setText(location); + return this; + } + +} diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewModuleInfoDialog.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewModuleInfoDialog.java new file mode 100644 index 0000000000..9af85fede3 --- /dev/null +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/jdt/ui/wizards/NewModuleInfoDialog.java @@ -0,0 +1,42 @@ +package org.eclipse.reddeer.eclipse.jdt.ui.wizards; + +import org.eclipse.reddeer.jface.dialogs.TitleAreaDialog; +import org.eclipse.reddeer.swt.api.Shell; +import org.eclipse.reddeer.swt.impl.button.PushButton; +import org.eclipse.reddeer.swt.impl.text.LabeledText; +import org.hamcrest.Matcher; + +/** + * New Module info java file dialog + * @author odockal + * + */ +public class NewModuleInfoDialog extends TitleAreaDialog { + + public NewModuleInfoDialog(Shell shell) { + super(shell); + } + + public NewModuleInfoDialog(String text) { + super(text); + } + + public NewModuleInfoDialog(Matcher... matchers) { + super(matchers); + } + + public void setModuleName(String name) { + log.debug("Setting module name to '" + name + "'"); + new LabeledText("Module name:").setText(name); + } + + public void dontCreate() { + log.debug("Don't create module-info.java file"); + new PushButton("Don't Create").click(); + } + + public void create() { + log.debug("Creating module-info.java file"); + new PushButton("Create").click(); + } +} diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/preferences/MavenPreferencePage.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/preferences/MavenPreferencePage.java index 75faae370c..357bf9b6ba 100644 --- a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/preferences/MavenPreferencePage.java +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/preferences/MavenPreferencePage.java @@ -17,7 +17,6 @@ import org.eclipse.reddeer.swt.impl.button.CheckBox; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; -import org.hamcrest.core.IsEqual; /** * Class represents Maven preference page diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/wizard/MavenProjectWizardArtifactPage.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/wizard/MavenProjectWizardArtifactPage.java index d176f2c675..1395fdbe73 100644 --- a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/wizard/MavenProjectWizardArtifactPage.java +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/m2e/core/ui/wizard/MavenProjectWizardArtifactPage.java @@ -12,7 +12,6 @@ package org.eclipse.reddeer.eclipse.m2e.core.ui.wizard; import org.eclipse.reddeer.core.reference.ReferencedComposite; -import org.eclipse.reddeer.jface.wizard.WizardDialog; import org.eclipse.reddeer.jface.wizard.WizardPage; import org.eclipse.reddeer.swt.impl.combo.LabeledCombo; import org.eclipse.reddeer.swt.impl.group.DefaultGroup; diff --git a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/rse/ui/wizards/newconnection/RSENewConnectionWizardSelectionPage.java b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/rse/ui/wizards/newconnection/RSENewConnectionWizardSelectionPage.java index af0fecc9ad..5e88c2b813 100644 --- a/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/rse/ui/wizards/newconnection/RSENewConnectionWizardSelectionPage.java +++ b/plugins/org.eclipse.reddeer.eclipse/src/org/eclipse/reddeer/eclipse/rse/ui/wizards/newconnection/RSENewConnectionWizardSelectionPage.java @@ -12,7 +12,6 @@ package org.eclipse.reddeer.eclipse.rse.ui.wizards.newconnection; import org.eclipse.reddeer.core.reference.ReferencedComposite; -import org.eclipse.reddeer.jface.wizard.WizardDialog; import org.eclipse.reddeer.jface.wizard.WizardPage; import org.eclipse.reddeer.swt.impl.tree.DefaultTree; import org.eclipse.reddeer.swt.impl.tree.DefaultTreeItem; diff --git a/plugins/org.eclipse.reddeer.jface/src/org/eclipse/reddeer/jface/wizard/WizardDialog.java b/plugins/org.eclipse.reddeer.jface/src/org/eclipse/reddeer/jface/wizard/WizardDialog.java index 09e3f95c8a..18286b2dcc 100644 --- a/plugins/org.eclipse.reddeer.jface/src/org/eclipse/reddeer/jface/wizard/WizardDialog.java +++ b/plugins/org.eclipse.reddeer.jface/src/org/eclipse/reddeer/jface/wizard/WizardDialog.java @@ -35,7 +35,7 @@ * @since 0.6 * */ -public class WizardDialog extends TitleAreaDialog{ +public class WizardDialog extends TitleAreaDialog { protected final Logger log = Logger.getLogger(this.getClass()); diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/core/resources/MavenProjectTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/core/resources/MavenProjectTest.java index 0e857dbc97..78e465654a 100644 --- a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/core/resources/MavenProjectTest.java +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/core/resources/MavenProjectTest.java @@ -17,7 +17,6 @@ import org.eclipse.reddeer.eclipse.m2e.core.ui.wizard.MavenProjectWizard; import org.eclipse.reddeer.eclipse.m2e.core.ui.wizard.MavenProjectWizardArchetypeParametersPage; import org.eclipse.reddeer.eclipse.m2e.core.ui.wizard.MavenProjectWizardPage; -import org.eclipse.reddeer.eclipse.test.debug.core.DebuggerTest; import org.eclipse.reddeer.eclipse.ui.navigator.resources.ProjectExplorer; import org.eclipse.reddeer.junit.runner.RedDeerSuite; import org.eclipse.reddeer.swt.api.TreeItem; diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/AbstractResourceTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/AbstractResourceTest.java index 1060ac4cfd..e6dfe07699 100644 --- a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/AbstractResourceTest.java +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/AbstractResourceTest.java @@ -26,7 +26,6 @@ import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewClassCreationWizard; import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewClassWizardPage; import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewJavaProjectWizardPageOne; -import org.eclipse.reddeer.eclipse.ui.console.ConsoleView; import org.eclipse.reddeer.eclipse.ui.dialogs.WizardNewFileCreationPage; import org.eclipse.reddeer.eclipse.ui.navigator.resources.AbstractExplorer; import org.eclipse.reddeer.eclipse.ui.perspectives.JavaPerspective; diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/EnumWizardTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/EnumWizardTest.java similarity index 96% rename from tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/EnumWizardTest.java rename to tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/EnumWizardTest.java index 9c1e453908..dafa87b929 100644 --- a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/EnumWizardTest.java +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/EnumWizardTest.java @@ -9,7 +9,7 @@ * Contributors: * Red Hat, Inc - initial API and implementation *******************************************************************************/ -package org.eclipse.reddeer.eclipse.test.jdt; +package org.eclipse.reddeer.eclipse.test.jdt.ui.wizards; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/JavaProjectWizardTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/JavaProjectWizardTest.java new file mode 100644 index 0000000000..557cc7866b --- /dev/null +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/jdt/ui/wizards/JavaProjectWizardTest.java @@ -0,0 +1,165 @@ +/******************************************************************************* + * Copyright (c) 2017 Red Hat, Inc and others. + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0. + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Red Hat, Inc - initial API and implementation + *******************************************************************************/ +package org.eclipse.reddeer.eclipse.test.jdt.ui.wizards; + +import static org.junit.Assert.assertTrue; + +import org.eclipse.reddeer.common.exception.WaitTimeoutExpiredException; +import org.eclipse.reddeer.eclipse.jdt.ui.wizards.JavaProjectWizard; +import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewJavaProjectWizardPageOne; +import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewJavaProjectWizardPageTwo; +import org.eclipse.reddeer.eclipse.ui.navigator.resources.ProjectExplorer; +import org.eclipse.reddeer.junit.runner.RedDeerSuite; +import org.eclipse.reddeer.requirements.cleanworkspace.CleanWorkspaceRequirement.CleanWorkspace; +import org.eclipse.reddeer.swt.impl.button.RadioButton; +import org.eclipse.reddeer.swt.impl.combo.DefaultCombo; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Test class for Java Project Wizard page objects + * @author odockal + * + */ +@CleanWorkspace +@RunWith(RedDeerSuite.class) +public class JavaProjectWizardTest { + + public static final String JAVA_PROJECT = "SimpleJavaProject"; + public static final String JAVA_MODULE_NAME = "simplejavaproject"; + public static final String JAVA_MODULE_INFO = "module-info.java"; + public static String DEFAULT_JAVA; + + @BeforeClass + public static void findOutJavaVersionUsed() { + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + new NewJavaProjectWizardPageOne(dialog); + new RadioButton(dialog, "Use an execution environment JRE:").toggle(true); + DEFAULT_JAVA = new DefaultCombo(dialog, 0).getSelection(); + dialog.cancel(); + } + + + @After + public void cleanUp() { + ProjectExplorer explorer = new ProjectExplorer(); + explorer.open(); + + explorer.deleteAllProjects(true); + } + + @AfterClass + public static void cleanUpClass() { + // setting another jre in test will keep its value through other tests + // causing build errors + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + NewJavaProjectWizardPageOne pageOne = new NewJavaProjectWizardPageOne(dialog); + pageOne.useExecutionEnvironmentJRE(DEFAULT_JAVA); + dialog.cancel(); + } + + @Test + public void testJavaProjectWizard() { + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + NewJavaProjectWizardPageOne pageOne = new NewJavaProjectWizardPageOne(dialog); + pageOne.setProjectName(JAVA_PROJECT); + pageOne.useDefaultLocation(true); + + dialog.next(); + + NewJavaProjectWizardPageTwo pageTwo = new NewJavaProjectWizardPageTwo(dialog); + pageTwo.allowOutputFoldersForSourceFolders(true); + + dialog.finish(); + + ProjectExplorer explorer = new ProjectExplorer(); + explorer.open(); + + assertTrue(explorer.containsProject(JAVA_PROJECT)); + } + + @Test + public void testJavaProjectWizardCreateInfoModule() { + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + NewJavaProjectWizardPageOne pageOne = new NewJavaProjectWizardPageOne(dialog); + pageOne.setProjectName(JAVA_PROJECT); + pageOne.useExecutionEnvironmentJRE("JavaSE-9"); + + dialog.next(); + + NewJavaProjectWizardPageTwo pageTwo = new NewJavaProjectWizardPageTwo(dialog); + pageTwo.createModuleInfoFile(true); + + dialog.finish(true, JAVA_MODULE_NAME); + + ProjectExplorer explorer = new ProjectExplorer(); + explorer.open(); + + assertTrue(explorer.containsProject(JAVA_PROJECT)); + assertTrue(explorer.getProject(JAVA_PROJECT).containsResource("src", JAVA_MODULE_INFO, JAVA_MODULE_NAME)); + } + + @Test + public void testJavaProjectWizardCreateInfoModuleDefaultName() { + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + NewJavaProjectWizardPageOne pageOne = new NewJavaProjectWizardPageOne(dialog); + pageOne.setProjectName(JAVA_PROJECT); + pageOne.useExecutionEnvironmentJRE("JavaSE-10"); + + dialog.next(); + + NewJavaProjectWizardPageTwo pageTwo = new NewJavaProjectWizardPageTwo(dialog); + pageTwo.createModuleInfoFile(true); + + dialog.finish(); + + ProjectExplorer explorer = new ProjectExplorer(); + explorer.open(); + + assertTrue(explorer.containsProject(JAVA_PROJECT)); + assertTrue(!explorer.getProject(JAVA_PROJECT).containsResource("src", JAVA_MODULE_INFO, JAVA_PROJECT)); + } + + @Test + public void testJavaProjectWizardDisabledModuleInfoCheckbox() { + JavaProjectWizard dialog = new JavaProjectWizard(); + dialog.open(); + + NewJavaProjectWizardPageOne pageOne = new NewJavaProjectWizardPageOne(dialog); + pageOne.setProjectName(JAVA_PROJECT); + pageOne.useExecutionEnvironmentJRE("JavaSE-1.8"); + + dialog.next(); + + NewJavaProjectWizardPageTwo pageTwo = new NewJavaProjectWizardPageTwo(dialog); + try { + pageTwo.createModuleInfoFile(true); + } catch (WaitTimeoutExpiredException exc) { + // exception expected + } + + dialog.finish(); + } +} diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/m2e/core/ui/preferences/MavenPreferencePageTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/m2e/core/ui/preferences/MavenPreferencePageTest.java index a5dfa0d98c..904c41f731 100644 --- a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/m2e/core/ui/preferences/MavenPreferencePageTest.java +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/m2e/core/ui/preferences/MavenPreferencePageTest.java @@ -14,10 +14,9 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import org.eclipse.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog; import org.eclipse.reddeer.eclipse.m2e.core.ui.preferences.MavenPreferencePage; import org.eclipse.reddeer.junit.runner.RedDeerSuite; -import org.eclipse.reddeer.swt.exception.SWTLayerException; +import org.eclipse.reddeer.workbench.ui.dialogs.WorkbenchPreferenceDialog; import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/ui/console/ConsoleViewTest.java b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/ui/console/ConsoleViewTest.java index f35bd7ecec..88f8a3bb01 100644 --- a/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/ui/console/ConsoleViewTest.java +++ b/tests/org.eclipse.reddeer.eclipse.test/src/org/eclipse/reddeer/eclipse/test/ui/console/ConsoleViewTest.java @@ -18,6 +18,8 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; +import java.util.List; + import org.eclipse.reddeer.common.matcher.RegexMatcher; import org.eclipse.reddeer.common.wait.AbstractWait; import org.eclipse.reddeer.common.wait.GroupWait; @@ -37,8 +39,13 @@ import org.eclipse.reddeer.eclipse.jdt.ui.wizards.NewJavaProjectWizardPageOne; import org.eclipse.reddeer.eclipse.ui.console.ConsoleView; import org.eclipse.reddeer.eclipse.ui.perspectives.JavaPerspective; +import org.eclipse.reddeer.eclipse.ui.problems.Problem; +import org.eclipse.reddeer.eclipse.ui.views.markers.ProblemsView; +import org.eclipse.reddeer.eclipse.ui.views.markers.ProblemsView.ProblemType; import org.eclipse.reddeer.eclipse.utils.DeleteUtils; import org.eclipse.reddeer.junit.runner.RedDeerSuite; +import org.eclipse.reddeer.junit.screenshot.CaptureScreenshotException; +import org.eclipse.reddeer.junit.screenshot.ScreenshotCapturer; import org.eclipse.reddeer.requirements.openperspective.OpenPerspectiveRequirement.OpenPerspective; import org.eclipse.reddeer.swt.api.Menu; import org.eclipse.reddeer.swt.api.MenuItem; @@ -53,7 +60,6 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -278,6 +284,21 @@ private static void createJavaClass(String name, String text) { } private static void runTestClass(String name) { + ProblemsView view = new ProblemsView(); + view.open(); + List problems = view.getProblems(ProblemType.ALL); + if (!problems.isEmpty()) { + System.out.println("### There are problems in problems view"); + for (Problem problem : problems) { + System.out.println(problem.getProblemType() + " " + problem.getResource() + " " + problem.getDescription()); + } + } + try { + ScreenshotCapturer.getInstance().captureScreenshot("Problems" + ConsoleViewTest.class.getName()); + } catch (CaptureScreenshotException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } PackageExplorerPart explorer = new PackageExplorerPart(); explorer.open(); explorer.getProject(TEST_PROJECT_NAME).getProjectItem("src", "test", name + ".java").select();