diff options
Diffstat (limited to 'tests/junit')
12 files changed, 249 insertions, 50 deletions
diff --git a/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/META-INF/MANIFEST.MF index c8514a339c6..03d3428ab1a 100644 --- a/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.pde;bundle-version="3.7.0",
org.eclipse.pde.core,
org.eclipse.update.configurator,
- org.junit;bundle-version="4.10.0"
+ org.junit;bundle-version="4.10.0",
+ org.eclipse.papyrus.junit.utils;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.bundles.tests
Bundle-Vendor: %Bundle-Vendor
Bundle-ActivationPolicy: lazy
diff --git a/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/src/org/eclipse/papyrus/bundles/tests/BundlesTests.java b/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/src/org/eclipse/papyrus/bundles/tests/BundlesTests.java index 5b43e68aedb..8d90eb5853f 100644 --- a/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/src/org/eclipse/papyrus/bundles/tests/BundlesTests.java +++ b/tests/junit/plugins/developer/org.eclipse.papyrus.bundles.tests/src/org/eclipse/papyrus/bundles/tests/BundlesTests.java @@ -1,7 +1,7 @@ /*****************************************************************************
* Copyright (c) 2012 CEA LIST.
*
- *
+ *
* 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
@@ -22,8 +22,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern;
import org.eclipse.osgi.util.NLS;
+import org.eclipse.papyrus.junit.utils.TestMode;
import org.eclipse.pde.internal.core.feature.Feature;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -113,6 +115,8 @@ public class BundlesTests { */
@Test
public void importPackage() {
+ Assume.assumeTrue("Usage of importPackage is discouraged", TestMode.isStrict()); //$NON-NLS-1$
+
testManifestProperty(BundleTestsUtils.BUNDLE_IMPORT_PACKAGE, "", true, false); //$NON-NLS-1$
}
@@ -121,6 +125,8 @@ public class BundlesTests { */
@Test
public void reexportDependencies() {
+ Assume.assumeTrue("Usage of reexported dependencies is discouraged", TestMode.isStrict());
+
StringBuffer message = new StringBuffer();
int nb = 0;
for(final Bundle current : BundleTestsUtils.getPapyrusBundles()) {
@@ -139,18 +145,18 @@ public class BundlesTests { if(bundle.contains(";")) { //$NON-NLS-1$
localMessage.append(NLS.bind("\n - {0}", bundle.substring(0, bundle.indexOf(";")))); //$NON-NLS-1$ //$NON-NLS-2$
} else {
- localMessage.append(NLS.bind("\n - {0}", bundle)); //$NON-NLS-1$
+ localMessage.append(NLS.bind("\n - {0}", bundle)); //$NON-NLS-1$
}
}
}
if(localMessage.length() != 0) {
message.append(localMessage);
- message.append("\n");//$NON-NLS-1$
+ message.append("\n");//$NON-NLS-1$
}
}
StringBuffer errorMessage = new StringBuffer();
errorMessage.append(nb);
- errorMessage.append(" problems!");//$NON-NLS-1$
+ errorMessage.append(" problems!");//$NON-NLS-1$
errorMessage.append(message);
Assert.assertTrue(errorMessage.toString(), nb == 0);
}
@@ -416,6 +422,8 @@ public class BundlesTests { */
@Test
public void documentationFileTest() {
+ Assume.assumeTrue("It is a good practice to add a plugin.pdoc file to each plug-in", TestMode.isStrict());
+
String message = null;
int nb = 0;
for(final Bundle bundle : BundleTestsUtils.getPapyrusBundles()) {
@@ -439,8 +447,8 @@ public class BundlesTests { StringBuffer errorMessage = new StringBuffer();
StringBuffer warningMessage = new StringBuffer();
final Collection<String> possibleIds = new ArrayList<String>();
- possibleIds.add("ID");//$NON-NLS-1$
- possibleIds.add("PLUGIN_ID");//$NON-NLS-1$
+ possibleIds.add("ID");//$NON-NLS-1$
+ possibleIds.add("PLUGIN_ID");//$NON-NLS-1$
int nbError = 0;
int nbWarning = 0;
for(final Bundle current : BundleTestsUtils.getPapyrusBundles()) {
@@ -480,10 +488,10 @@ public class BundlesTests { finalErrorMessage.append(nbError);
finalErrorMessage.append(" problems! ");//$NON-NLS-1$
finalErrorMessage.append(errorMessage);
- Assert.assertTrue(finalErrorMessage.toString(), nbError == 0); //$NON-NLS-1$
+ Assert.assertTrue(finalErrorMessage.toString(), nbError == 0);
// Do not fail on warnings
- //Assert.assertTrue(nbWarning + "warning!" + warningMessage, nbWarning == 0);//$NON-NLS-1$
+ //Assert.assertTrue(nbWarning + "warning!" + warningMessage, nbWarning == 0);//$NON-NLS-1$
}
}
diff --git a/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/META-INF/MANIFEST.MF index 915af9d0366..fa967ff57b5 100644 --- a/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/META-INF/MANIFEST.MF @@ -17,7 +17,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.papyrus.infra.emf.appearance;bundle-version="1.0.0",
org.junit;bundle-version="4.10.0",
org.eclipse.papyrus.infra.gmfdiag.common;bundle-version="1.0.0",
- org.eclipse.core.databinding;bundle-version="1.4.1"
+ org.eclipse.core.databinding;bundle-version="1.4.1",
+ org.eclipse.papyrus.junit.utils;bundle-version="1.0.0"
Export-Package: org.eclipse.papyrus.infra.gmfdiag.css.tests,
org.eclipse.papyrus.infra.gmfdiag.css.tests.tests
Bundle-Vendor: Eclipse Modeling Project
diff --git a/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/src/org/eclipse/papyrus/infra/gmfdiag/css/tests/tests/CSSCompartmentsTests.java b/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/src/org/eclipse/papyrus/infra/gmfdiag/css/tests/tests/CSSCompartmentsTests.java index 0f43da39e6d..d2d3e4b59c6 100644 --- a/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/src/org/eclipse/papyrus/infra/gmfdiag/css/tests/tests/CSSCompartmentsTests.java +++ b/tests/junit/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.css.tests/src/org/eclipse/papyrus/infra/gmfdiag/css/tests/tests/CSSCompartmentsTests.java @@ -36,11 +36,12 @@ import org.eclipse.papyrus.infra.gmfdiag.css.helper.CSSHelper; import org.eclipse.papyrus.infra.gmfdiag.css.helper.ResetStyleHelper;
import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
import org.eclipse.papyrus.infra.gmfdiag.css.tests.Activator;
+import org.eclipse.papyrus.junit.utils.TestMode;
import org.eclipse.uml2.uml.NamedElement;
import org.junit.After;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
/**
@@ -111,9 +112,8 @@ public class CSSCompartmentsTests { /* Test Enumeration1 */
@Test
- //Currently fails. The "case insensitive" attributes are not supported by Eclipse E4 CSS
- @Ignore("The 'case insensitive' attributes are not supported by Eclipse E4 CSS")
public void testCaseInsensitiveForEnumeration() {
+ Assume.assumeTrue("The 'case insensitive' attributes are not supported by Eclipse E4 CSS", TestMode.isStrict());
Shape enumeration = findShape("Enumeration1");
BasicCompartment compartment = findCompartment(enumeration, ENUMERATION_LITERAL_COMPARTMENT_TYPE);
@@ -121,7 +121,6 @@ public class CSSCompartmentsTests { }
/* Test Interface 1 and Interface 2 */
- //Currently fails. The interface compartments are not defined in the NotationTypesMap
@Test
public void testAttributeCompartmentForInterface() {
Shape interface1 = findShape("Interface1");
diff --git a/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/TestMode.java b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/TestMode.java new file mode 100644 index 00000000000..1cfcfb95686 --- /dev/null +++ b/tests/junit/plugins/junit/org.eclipse.papyrus.junit.utils/src/org/eclipse/papyrus/junit/utils/TestMode.java @@ -0,0 +1,42 @@ +/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.junit.utils;
+
+
+
+/**
+ * This class is used to configure a test job. In strict mode, all tests are executed.
+ * When the strict mode is disabled, the tests which are known to be failing are ignored.
+ *
+ * This is useful for test-driven development, when tests are implemented before the feature:
+ * we can still have "green builds" (by ignoring these specific tests) and test for non-regression.
+ *
+ * Usage: When a test is known to be failing, add: Assume.assumeTrue("Why the test is disabled", TestMode.isStrict());
+ *
+ * The test will be run only in strict mode, and ignored during non-regression testing
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class TestMode {
+
+ private static boolean strictMode = false;
+
+ public static boolean isStrict() {
+ return strictMode;
+ }
+
+ public static void setStrict(boolean strictMode) {
+ TestMode.strictMode = strictMode;
+ }
+
+}
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/META-INF/MANIFEST.MF b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/META-INF/MANIFEST.MF index 709baa3a4ca..99d55f5daec 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/META-INF/MANIFEST.MF +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/META-INF/MANIFEST.MF @@ -8,7 +8,8 @@ Require-Bundle: org.junit;bundle-version="4.8.1", org.eclipse.ui.workbench;bundle-version="3.103.1",
org.eclipse.ui.ide;bundle-version="3.8.1",
org.eclipse.jface;bundle-version="3.8.101",
- org.eclipse.papyrus.infra.core;bundle-version="1.0.0"
+ org.eclipse.papyrus.infra.core;bundle-version="1.0.0",
+ com.google.guava;bundle-version="11.0.0"
Bundle-Vendor: %providerName
Bundle-Version: 1.0.0.qualifier
Bundle-Name: %pluginName
diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelWizard.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelWizard.java index 2dfa3809df2..e525636b733 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelWizard.java +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateModelWizard.java @@ -1,3 +1,16 @@ +/***************************************************************************** + * Copyright (c) 2013, 2014 LIFL, CEA LIST, 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: + * LIFL - Initial API and implementation + * CEA LIST - Update tests and re-integrate into automation suite + * + *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.wizards; import org.eclipse.papyrus.uml.diagram.profile.CreateProfileModelCommand; @@ -32,7 +45,7 @@ public class TestCreateModelWizard extends TestNewModelWizardBase { @Test public void testDiagramFileExtentionLabel() { - final String expectedExtension = "test.xxx"; + final String expectedExtension = "di"; // the extension is always *.di IWorkbenchWizard wizard = new InitModelWizard() { @Override @@ -48,8 +61,8 @@ public class TestCreateModelWizard extends TestNewModelWizardBase { }; initWizardDialog(wizard); - NewModelFilePage page = (NewModelFilePage)wizard.getPages()[0]; - //assertEquals(expectedExtension, page.getFileExtension()); + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); + assertEquals(expectedExtension, page.getFileExtension()); } @Test @@ -69,9 +82,12 @@ public class TestCreateModelWizard extends TestNewModelWizardBase { }; + // ensure that the dialog would create a profile + settings.saveDefaultDiagramCategory(new String[] {"profile"}); + initWizardDialog(wizard); - // String actual = wizard.getDiagramFileExtension(); - // assertEquals(expectedExtension, actual); + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); + assertEquals(expectedExtension, page.getFileExtension()); } @Test @@ -92,8 +108,8 @@ public class TestCreateModelWizard extends TestNewModelWizardBase { }; initWizardDialog(wizard); - // String actual = wizard.getDiagramFileExtension(); - // assertEquals(expectedExtension, actual); + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); + assertEquals(expectedExtension, page.getFileExtension()); } } diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateSysMLModelWizard.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateSysMLModelWizard.java index 93885ee3d2d..cf8de01ccac 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateSysMLModelWizard.java +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestCreateSysMLModelWizard.java @@ -1,3 +1,16 @@ +/***************************************************************************** + * Copyright (c) 2013, 2014 LIFL, CEA LIST, 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: + * LIFL - Initial API and implementation + * CEA LIST - Update tests and re-integrate into automation suite + * + *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.wizards; import org.eclipse.papyrus.sysml.diagram.common.commands.CreateSysMLModelCommand; @@ -55,8 +68,8 @@ public class TestCreateSysMLModelWizard extends TestNewModelWizardBase { }; initWizardDialog(wizard); - // String actual = wizard.getDiagramFileExtension(); - // assertEquals(expectedExtension, actual); + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); + assertEquals(expectedExtension, page.getFileExtension()); } } diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestInitModelWizard.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestInitModelWizard.java index 620076b8710..fcb9a7c7323 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestInitModelWizard.java +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestInitModelWizard.java @@ -1,6 +1,18 @@ +/***************************************************************************** + * Copyright (c) 2013, 2014 LIFL, CEA LIST, 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: + * LIFL - Initial API and implementation + * CEA LIST - Update tests and re-integrate into automation suite + * + *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.wizards; -import org.eclipse.core.resources.IFile; import org.eclipse.papyrus.uml.diagram.profile.CreateProfileModelCommand; import org.eclipse.papyrus.uml.diagram.wizards.pages.NewModelFilePage; import org.eclipse.papyrus.uml.diagram.wizards.pages.SelectDiagramCategoryPage; @@ -29,13 +41,9 @@ public class TestInitModelWizard extends TestNewModelWizardBase { return new String[]{ "uml" }; } - // @Override - // public String getDiagramFileExtension(String categoryId, String defaultExtension) { - // return "test.uml"; - // } - - protected String getDiagramFileName(IFile domainModel) { - return "test.uml"; + @Override + public String getDiagramFileExtension(String categoryId, String defaultExtension) { + return "uml"; } }; @@ -43,7 +51,7 @@ public class TestInitModelWizard extends TestNewModelWizardBase { @Test public void testDiagramFileExtentionLabel() { - final String expectedExtension = "test.xxx"; + final String expectedExtension = "di"; // the extension is always *.di IWorkbenchWizard wizard = new InitModelWizard() { @Override @@ -51,14 +59,15 @@ public class TestInitModelWizard extends TestNewModelWizardBase { return isCreateFromExistingModel; } - protected String getDiagramFileName(IFile domainModel) { + @Override + public String getDiagramFileExtension(String categoryId, String defaultExtension) { return "tanya"; // arbitrary extension to avoid NPE } }; initWizardDialog(wizard); - NewModelFilePage page = (NewModelFilePage)wizard.getPages()[0]; + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); assertEquals(expectedExtension, page.getFileExtension()); } @@ -73,7 +82,7 @@ public class TestInitModelWizard extends TestNewModelWizardBase { @Test public void testDiagramFileExtenstionForUML() { // 333849 - [Wizard] Init Diagram: Respect file extension of the UML model - final String expectedExtension = "di"; + final String expectedExtension = "di"; // init-from-existing always uses this, even for profiles InitModelWizard wizard = new InitModelWizard() { @Override @@ -82,8 +91,9 @@ public class TestInitModelWizard extends TestNewModelWizardBase { } - protected String getDiagramFileName(IFile domainModel) { - return "tanya"; // arbitrary extension to avoid NPE + @Override + public String getDiagramFileExtension(String categoryId, String defaultExtension) { + return "profile.di"; // arbitrary extension to avoid NPE } @Override @@ -93,9 +103,12 @@ public class TestInitModelWizard extends TestNewModelWizardBase { }; + // ensure that the dialog would create a profile + settings.saveDefaultDiagramCategory(new String[] {"profile"}); + initWizardDialog(wizard); - // String actual = wizard.getDiagramFileExtension(); - // assertEquals(expectedExtension, actual); + NewModelFilePage page = getPage(wizard, NewModelFilePage.class); + assertEquals(expectedExtension, page.getFileExtension()); } diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewModelWizardBase.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewModelWizardBase.java index 7b9ea500023..6346f889d1e 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewModelWizardBase.java +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewModelWizardBase.java @@ -1,30 +1,72 @@ +/***************************************************************************** + * Copyright (c) 2013, 2014 LIFL, CEA LIST, 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: + * LIFL - Initial API and implementation + * CEA LIST - Update tests and re-integrate into automation suite + * + *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.wizards; +import java.io.IOException; +import java.io.StringReader; +import java.io.StringWriter; +import java.util.Arrays; + import junit.framework.TestCase; +import org.eclipse.jface.dialogs.DialogSettings; +import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.layout.PixelConverter; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.jface.wizard.IWizard; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.papyrus.uml.diagram.wizards.pages.SelectStorageProviderPage; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchWizard; +import org.junit.After; import org.junit.Before; +import com.google.common.base.Predicates; +import com.google.common.collect.Iterables; + public abstract class TestNewModelWizardBase extends TestCase { - protected static final IStructuredSelection EMPTY_SELECTION = new StructuredSelection(); + protected static final IStructuredSelection EMPTY_SELECTION = StructuredSelection.EMPTY; + protected SettingsHelper settings; + protected abstract IWorkbenchWizard createWizard(); + private String settingsBackup; + @Override @Before - protected void setUp() throws Exception { + public void setUp() throws Exception { super.setUp(); + + initSettingsHelper(); + } + + @Override + @After + public void tearDown() throws Exception { + try { + restoreDialogSettings(); + } finally { + super.tearDown(); + } } protected IStructuredSelection getSelection() { @@ -61,14 +103,28 @@ public abstract class TestNewModelWizardBase extends TestCase { return Activator.getDefault().getWorkbench(); } + protected <P extends IWizardPage> P getPage(IWizard wizard, Class<P> pageType) { + P result = Iterables.find(Iterables.filter(Arrays.asList(wizard.getPages()), pageType), Predicates.alwaysTrue(), null); + assertNotNull("Did not find page of type " + pageType.getSimpleName(), result); + return result; + } + protected void testOrderOfPages(IWorkbenchWizard wizard, Class<?>[] expectedPages) { + Class<?> optionalInitialPage = SelectStorageProviderPage.class; + IWizardPage next = wizard.getPages()[0]; for(int i = 0; i < expectedPages.length; i++) { String isNullMessageFormat = "page %s expected, but actual is: null"; assertNotNull(String.format(isNullMessageFormat, i), next); - testPageInstanceOf(next, expectedPages[i], i); - + if((optionalInitialPage != null) && (i == 0) && optionalInitialPage.isInstance(next)) { + // we have tested the optional initial page; don't do it again + optionalInitialPage = null; + i--; + } else { + testPageInstanceOf(next, expectedPages[i], i); + } + next = next.getNextPage(); } String noMorePagesExpectedMessageFormat = "page %s is not expected"; @@ -81,5 +137,39 @@ public abstract class TestNewModelWizardBase extends TestCase { assertTrue(String.format(wrongClassFormat, index, next.getClass()), expectedClass.isInstance(next)); } - + private void initSettingsHelper() { + IDialogSettings workbenchSettings = Activator.getDefault().getDialogSettings(); + IDialogSettings settings = workbenchSettings.getSection(CreateModelWizard.NEW_MODEL_SETTINGS); + if(settings == null) { + settings = workbenchSettings.addNewSection(CreateModelWizard.NEW_MODEL_SETTINGS); + } + this.settings = new SettingsHelper(settings); + + StringWriter backupWriter = new StringWriter(); + try { + settings.save(backupWriter); + } catch (IOException e) { + e.printStackTrace(); + fail("Impossible IO exception on string writer: " + e.getLocalizedMessage()); + } + this.settingsBackup = backupWriter.toString(); + } + + private void restoreDialogSettings() { + if(settingsBackup != null) { + IDialogSettings workbenchSettings = Activator.getDefault().getDialogSettings(); + IDialogSettings settings = workbenchSettings.getSection(CreateModelWizard.NEW_MODEL_SETTINGS); + if(settings != null) { + ((DialogSettings)workbenchSettings).removeSection(settings); + settings = workbenchSettings.addNewSection(settings.getName()); + + try { + settings.load(new StringReader(settingsBackup)); + } catch (IOException e) { + e.printStackTrace(); + fail("Impossible IO exception on string read: " + e.getLocalizedMessage()); + } + } + } + } } diff --git a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewProjectWizard.java b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewProjectWizard.java index 065cf35df8f..7e4ffca0b9e 100644 --- a/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewProjectWizard.java +++ b/tests/junit/plugins/uml/diagram/org.eclipse.papyrus.uml.diagram.wizards.tests/test/org/eclipse/papyrus/uml/diagram/wizards/TestNewProjectWizard.java @@ -1,3 +1,16 @@ +/***************************************************************************** + * Copyright (c) 2013, 2014 LIFL, CEA LIST, 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: + * LIFL - Initial API and implementation + * CEA LIST - Update tests and re-integrate into automation suite + * + *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.wizards; import org.eclipse.papyrus.uml.diagram.wizards.pages.SelectDiagramCategoryPage; diff --git a/tests/junit/plugins/uml/tools/org.eclipse.papyrus.uml.tools.tests/src/org/eclipse/papyrus/uml/tools/tests/tests/DependencyManagementTest.java b/tests/junit/plugins/uml/tools/org.eclipse.papyrus.uml.tools.tests/src/org/eclipse/papyrus/uml/tools/tests/tests/DependencyManagementTest.java index 8badbb23d40..36d89cc8e52 100644 --- a/tests/junit/plugins/uml/tools/org.eclipse.papyrus.uml.tools.tests/src/org/eclipse/papyrus/uml/tools/tests/tests/DependencyManagementTest.java +++ b/tests/junit/plugins/uml/tools/org.eclipse.papyrus.uml.tools.tests/src/org/eclipse/papyrus/uml/tools/tests/tests/DependencyManagementTest.java @@ -1,6 +1,6 @@ /*****************************************************************************
* Copyright (c) 2013 CEA LIST.
- *
+ *
* 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
@@ -23,6 +23,7 @@ import org.eclipse.papyrus.infra.emf.resource.DependencyManagementHelper; import org.eclipse.papyrus.junit.utils.ModelUtils;
import org.eclipse.papyrus.junit.utils.PapyrusProjectUtils;
import org.eclipse.papyrus.junit.utils.ProjectUtils;
+import org.eclipse.papyrus.junit.utils.TestMode;
import org.eclipse.papyrus.junit.utils.tests.AbstractEditorTest;
import org.eclipse.papyrus.uml.tools.tests.Activator;
import org.eclipse.uml2.uml.Model;
@@ -31,6 +32,7 @@ import org.eclipse.uml2.uml.Profile; import org.eclipse.uml2.uml.UMLPackage;
import org.eclipse.uml2.uml.util.UMLUtil;
import org.junit.Assert;
+import org.junit.Assume;
import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.Bundle;
@@ -106,12 +108,12 @@ public class DependencyManagementTest extends AbstractEditorTest { }
//Switch from two different versions of a profile
- //Problem: !!Stereotypes are not references!! They are instances. After the switch, the new
+ //Problem: !!Stereotypes are not references!! They are instances. After the switch, the new
//profile is correctly applied, but the applied Stereotypes are the ones from the initial Profile
- //
- //Current state: FAILS
@Test
public void testSwitchProfilesWithStereotypes() throws Exception {
+ Assume.assumeTrue("Bug 408491 is not yet implemented", TestMode.isStrict());
+
IProject project = ProjectUtils.createProject("dependencyManagement.switchProfiles");
PapyrusProjectUtils.copyPapyrusModel(project, getBundle(), getSourcePath(), "profiles/model");
PapyrusProjectUtils.copyPapyrusModel(project, getBundle(), getSourcePath(), "profiles/p1/profile1.profile");
@@ -143,7 +145,7 @@ public class DependencyManagementTest extends AbstractEditorTest { });
- //After the transformation, stereotypes from the target profile must be applied
+ //After the transformation, stereotypes from the target profile must be applied
checkAppliedProfileAndStereotypes(modelSet, rootModel, targetProfileURI);
//Save, reload, and check again
|