diff options
author | Christian W. Damus | 2016-07-15 22:29:34 +0000 |
---|---|---|
committer | Christian W. Damus | 2016-07-16 12:37:06 +0000 |
commit | 86cfd7f722ea4f8f45a683024f50af247b8373af (patch) | |
tree | 633d0998f807cfcbb6c6ec0a262252bae108957c /tests/junit/extraplugins | |
parent | 2fb82a8d63e5d5954e77c74f765731bc61ce0eb8 (diff) | |
download | org.eclipse.papyrus-86cfd7f722ea4f8f45a683024f50af247b8373af.tar.gz org.eclipse.papyrus-86cfd7f722ea4f8f45a683024f50af247b8373af.tar.xz org.eclipse.papyrus-86cfd7f722ea4f8f45a683024f50af247b8373af.zip |
Bug 461980: [Model Import] Structure diagram has wrong size
https://bugs.eclipse.org/bugs/show_bug.cgi?id=461980
Add a hook in the diagram transformation to set the default size of
the frame, if any, if it has any defaults. Implement this hook for
composite structure diagrams.
(cherry-picked from streams/2.0-maintenance)
Change-Id: I4ba9d3932468f6b19361ba77907452d230481d23
Diffstat (limited to 'tests/junit/extraplugins')
8 files changed, 174 insertions, 17 deletions
diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.classpath b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.classpath index 2d1a4302f04..eca7bdba8f0 100644 --- a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.classpath +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.classpath @@ -1,7 +1,7 @@ -<?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/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?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.8"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> + <classpathentry kind="src" path="src"/> + <classpathentry kind="output" path="bin"/> +</classpath> diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.settings/org.eclipse.jdt.core.prefs b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.settings/org.eclipse.jdt.core.prefs index 4759947300a..62a08f4494d 100644 --- a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.settings/org.eclipse.jdt.core.prefs +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/.settings/org.eclipse.jdt.core.prefs @@ -1,10 +1,10 @@ eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/META-INF/MANIFEST.MF b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/META-INF/MANIFEST.MF index e620ddc57b7..627e66a792e 100644 --- a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/META-INF/MANIFEST.MF +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/META-INF/MANIFEST.MF @@ -32,7 +32,8 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.gef,
org.eclipse.papyrus.uml.extensionpoints;bundle-version="1.2.0",
org.eclipse.papyrus.junit.framework;bundle-version="1.2.0",
- org.eclipse.papyrus.infra.ui;bundle-version="1.2.0"
+ org.eclipse.papyrus.infra.ui;bundle-version="1.2.0",
+ org.eclipse.papyrus.uml.diagram.composite;bundle-version="2.0.0"
Export-Package: org.eclipse.papyrus.migration.rsa.tests,
org.eclipse.papyrus.migration.rsa.tests.qvt
Bundle-Vendor: Eclipse Modeling Project
@@ -42,4 +43,4 @@ Bundle-Name: Model import migration Tests (Incubation) Bundle-ManifestVersion: 2
Bundle-Activator: org.eclipse.papyrus.migration.rsa.tests.Activator
Bundle-SymbolicName: org.eclipse.papyrus.migration.rsa.tests;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/resources/bug461980/CompositeStructureDiagram.emx b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/resources/bug461980/CompositeStructureDiagram.emx new file mode 100644 index 00000000000..a3419ed2f40 --- /dev/null +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/resources/bug461980/CompositeStructureDiagram.emx @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--xtools2_universal_type_manager--> +<!--Rational Software Architect RealTime Edition 9.1.2--> +<?com.ibm.xtools.emf.core.signature <signature id="com.ibm.xtools.mmi.ui.signatures.diagram" version="7.0.0"><feature description="" name="Rational Modeling Platform (com.ibm.xtools.rmp)" url="" version="7.0.0"/></signature>?> +<?com.ibm.xtools.emf.core.signature <signature id="com.ibm.xtools.uml.msl.model" version="7.0.0"><feature description="" name="com.ibm.xtools.ruml.feature" url="" version="7.0.0"/></signature>?> +<uml:Package xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmlns:umlnotation="http://www.ibm.com/xtools/1.5.3/Umlnotation" xmi:id="_ih-8ckm2EeaTgb5ZZIM8Jg" name="CompositeStructureDiagram"> + <eAnnotations xmi:id="_ih-8c0m2EeaTgb5ZZIM8Jg" source="uml2.diagrams"/> + <packagedElement xmi:type="uml:Class" xmi:id="_leeiwEm2EeaTgb5ZZIM8Jg" name="Class1"> + <eAnnotations xmi:id="_lfOwsEm2EeaTgb5ZZIM8Jg" source="uml2.diagrams"> + <contents xmi:type="umlnotation:UMLDiagram" xmi:id="_lfOwsUm2EeaTgb5ZZIM8Jg" type="Structure" element="_leeiwEm2EeaTgb5ZZIM8Jg" name="StructureDiagram1" measurementUnit="Himetric"> + <children xmi:type="umlnotation:UMLShape" xmi:id="_lfOwskm2EeaTgb5ZZIM8Jg" type="StructureDiagramFrame" element="_leeiwEm2EeaTgb5ZZIM8Jg" fontName="Segoe UI" fontHeight="8" transparency="0" lineColor="14263149" lineWidth="1" showStereotype="Label"> + <children xmi:type="umlnotation:UMLShapeCompartment" xmi:id="_lfOws0m2EeaTgb5ZZIM8Jg" type="StructureCompartment"/> + <children xmi:type="notation:BasicDecorationNode" xmi:id="_lfOwtEm2EeaTgb5ZZIM8Jg" type="Name"/> + <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lfOwtUm2EeaTgb5ZZIM8Jg" x="793" y="793"/> + </children> + </contents> + </eAnnotations> + </packagedElement> + <profileApplication xmi:id="_ih-8dkm2EeaTgb5ZZIM8Jg"> + <eAnnotations xmi:id="_ih-8d0m2EeaTgb5ZZIM8Jg" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/> + </eAnnotations> + <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/> + </profileApplication> + <profileApplication xmi:id="_ih-8eEm2EeaTgb5ZZIM8Jg"> + <eAnnotations xmi:id="_ih-8eUm2EeaTgb5ZZIM8Jg" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML2_MSL_PROFILES/Default.epx#_fNwoAAqoEd6-N_NOT9vsCA?Default/Default?"/> + </eAnnotations> + <appliedProfile href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default?"/> + </profileApplication> + <profileApplication xmi:id="_ih-8ekm2EeaTgb5ZZIM8Jg"> + <eAnnotations xmi:id="_ih-8e0m2EeaTgb5ZZIM8Jg" source="http://www.eclipse.org/uml2/2.0.0/UML"> + <references xmi:type="ecore:EPackage" href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_4OVBUD0TEeKt-L0gyEptgQ?Deployment/Deployment?"/> + </eAnnotations> + <appliedProfile href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment?"/> + </profileApplication> +</uml:Package> diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/AllTests.java b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/AllTests.java index 4e18eae4798..c48ef2b4980 100644 --- a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/AllTests.java +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/AllTests.java @@ -9,7 +9,7 @@ * Contributors:
* Thibault Le Ouay (Sherpa Engineering) t.leouay@sherpa-eng.com - Initial API and implementation
* Camille Letavernier (CEA LIST) camille.letavernier@cea.fr
- * Christian W. Damus - bug 496439
+ * Christian W. Damus - bugs 496439, 461980
*****************************************************************************/
package org.eclipse.papyrus.migration.rsa.tests;
@@ -19,6 +19,7 @@ import org.eclipse.papyrus.migration.rsa.tests.qvt.ImportDiagramTest; import org.eclipse.papyrus.migration.rsa.tests.qvt.ImportModelsTest;
import org.eclipse.papyrus.migration.rsa.tests.qvt.ImportProfilesTest;
import org.eclipse.papyrus.migration.rsa.tests.qvt.TracesTest;
+import org.eclipse.papyrus.migration.rsa.tests.regression.RegressionTests;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@@ -29,7 +30,9 @@ import org.junit.runners.Suite.SuiteClasses; @SuiteClasses({
ImportDiagramTest.class, ImportModelsTest.class, BatchImportTest.class, ImportProfilesTest.class,
TracesTest.class,
- ThreadSafeResourceSetTest.class })
+ ThreadSafeResourceSetTest.class,
+ RegressionTests.class,
+})
public class AllTests {
// Test suite
}
diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/qvt/AbstractTransformationTest.java b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/qvt/AbstractTransformationTest.java index 27fe81b3db7..e2507af0b31 100644 --- a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/qvt/AbstractTransformationTest.java +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/qvt/AbstractTransformationTest.java @@ -8,7 +8,7 @@ * * Contributors: * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation - * Christian W. Damus - bug 496439 + * Christian W. Damus - bugs 496439, 461980 *****************************************************************************/ package org.eclipse.papyrus.migration.rsa.tests.qvt; @@ -17,6 +17,8 @@ import java.util.Collection; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; @@ -25,10 +27,14 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.util.EcoreUtil; +import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.papyrus.infra.core.resource.ModelSet; import org.eclipse.papyrus.infra.core.utils.ServiceUtils; +import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForEObject; +import org.eclipse.papyrus.infra.gmfdiag.common.model.NotationUtils; import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor; import org.eclipse.papyrus.junit.framework.classification.tests.AbstractPapyrusTest; +import org.eclipse.papyrus.junit.utils.DisplayUtils; import org.eclipse.papyrus.junit.utils.rules.HouseKeeper; import org.eclipse.papyrus.migration.rsa.RSAToPapyrusParameters.Config; import org.eclipse.papyrus.migration.rsa.RSAToPapyrusParameters.RSAToPapyrusParametersFactory; @@ -99,7 +105,7 @@ public class AbstractTransformationTest extends AbstractPapyrusTest { } - protected void simpleImport(String modelToImportPath, String[] additionalResourcesPath) throws Exception { + protected void simpleImport(String modelToImportPath, String... additionalResourcesPath) throws Exception { simpleImport(modelToImportPath, additionalResourcesPath, false); } @@ -111,10 +117,28 @@ public class AbstractTransformationTest extends AbstractPapyrusTest { rootPackage = (Package) umlModel.getResource().getContents().get(0); } + protected Diagram openDiagram(String name) throws Exception { + List<Diagram> diagrams = getDiagrams(); + Diagram result = diagrams.stream() + .filter(d -> name.equals(d.getName())) + .findAny() + .orElseThrow(AssertionError::new); + ServiceUtilsForEObject.getInstance().getIPageManager(result).openPage(result); + DisplayUtils.flushEventLoop(); + return result; + } + + protected List<Diagram> getDiagrams() throws Exception { + ModelSet modelSet = ServiceUtils.getInstance().getModelSet(editor.getServicesRegistry()); + return StreamSupport.stream(NotationUtils.getAllNotations(modelSet).spliterator(), false) + .filter(Diagram.class::isInstance).map(Diagram.class::cast) + .collect(Collectors.toList()); + } + protected void batchImport(String[] modelsToImportPath, String[] additionalResourcesPath) throws Exception { mainModelFiles = new IFile[modelsToImportPath.length]; - List<URI> urisToImport = new LinkedList<URI>(); + List<URI> urisToImport = new LinkedList<>(); int i = 0; for (String mainModelPath : modelsToImportPath) { diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/RegressionTests.java b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/RegressionTests.java new file mode 100644 index 00000000000..58748706b11 --- /dev/null +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/RegressionTests.java @@ -0,0 +1,30 @@ +/***************************************************************************** + * Copyright (c) 2016 Christian W. Damus 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: + * Christian W. Damus - Initial API and implementation + * + *****************************************************************************/ +package org.eclipse.papyrus.migration.rsa.tests.regression; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + + + +/** + * Suite of specific bug regression tests. + */ +@RunWith(Suite.class) +@SuiteClasses({ + StructureDiagramTest.class, +}) +public class RegressionTests { + // All is specified in annotations +} diff --git a/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/StructureDiagramTest.java b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/StructureDiagramTest.java new file mode 100644 index 00000000000..ed89f33b913 --- /dev/null +++ b/tests/junit/extraplugins/migration/org.eclipse.papyrus.migration.rsa.tests/src/org/eclipse/papyrus/migration/rsa/tests/regression/StructureDiagramTest.java @@ -0,0 +1,62 @@ +/***************************************************************************** + * Copyright (c) 2016 Christian W. Damus 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: + * Christian W. Damus - Initial API and implementation + * + *****************************************************************************/ + +package org.eclipse.papyrus.migration.rsa.tests.regression; + +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; + +import org.eclipse.gmf.runtime.diagram.core.util.ViewUtil; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.gmf.runtime.notation.Node; +import org.eclipse.gmf.runtime.notation.Size; +import org.eclipse.gmf.runtime.notation.View; +import org.eclipse.papyrus.migration.rsa.tests.qvt.AbstractTransformationTest; +import org.eclipse.papyrus.uml.diagram.composite.edit.parts.ClassCompositeEditPart; +import org.junit.Test; + +/** + * Specific regression tests for bugs in the import of structure diagrams. + */ +public class StructureDiagramTest extends AbstractTransformationTest { + + /** + * Initializes me. + */ + public StructureDiagramTest() { + super(); + } + + /** + * @see <a href="http://eclip.se/461980">bug 461980</a> + */ + @Test + public void defaultFrameSize_bug461980() throws Exception { + simpleImport("resources/bug461980/CompositeStructureDiagram.emx"); + + openEditor(); + + // Need to open the diagram to convert the visual IDs to modern notation for assertions + Diagram diagram = openDiagram("StructureDiagram1"); + + View frameView = ViewUtil.getChildBySemanticHint(diagram, ClassCompositeEditPart.VISUAL_ID); + assertThat(frameView, instanceOf(Node.class)); + + Node frame = (Node) frameView; + assertThat(frame.getLayoutConstraint(), instanceOf(Size.class)); + Size size = (Size) frame.getLayoutConstraint(); + assertThat(size.getWidth(), is(600)); + assertThat(size.getHeight(), is(400)); + } +} |