Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEsteban Dugueperoux2015-10-27 15:48:09 +0000
committerEsteban DUGUEPEROUX2015-11-09 16:34:13 +0000
commit5e82f5a1f1d77e353c3c6bbd6e86d5e5497f3cb5 (patch)
treeb1eb97378a55c8c8f8d6bc8e42f87426f25b6844
parenta10c65ef20fb531528154b740b94c2adb746db9d (diff)
downloadorg.eclipse.sirius-5e82f5a1f1d77e353c3c6bbd6e86d5e5497f3cb5.tar.gz
org.eclipse.sirius-5e82f5a1f1d77e353c3c6bbd6e86d5e5497f3cb5.tar.xz
org.eclipse.sirius-5e82f5a1f1d77e353c3c6bbd6e86d5e5497f3cb5.zip
[480203] Add test to reveal the problem
- Add PropertyViewOnModelExplorerSelectionWithLockedObjectTest SWTBot test to reveal the problem. Bug: 480203 Change-Id: If2d285b10b7ce261bb19a9b1b144e83260012cc9 Signed-off-by: Esteban Dugueperoux <esteban.dugueperoux@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/modelexplorer/PropertyViewOnModelExplorerSelectionWithLockedObjectTest.java143
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java14
2 files changed, 152 insertions, 5 deletions
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/modelexplorer/PropertyViewOnModelExplorerSelectionWithLockedObjectTest.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/modelexplorer/PropertyViewOnModelExplorerSelectionWithLockedObjectTest.java
new file mode 100644
index 0000000000..178b41b7d3
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/modelexplorer/PropertyViewOnModelExplorerSelectionWithLockedObjectTest.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.swtbot.modelexplorer;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.sirius.ecore.extender.business.api.accessor.ExtenderConstants;
+import org.eclipse.sirius.ecore.extender.business.api.permission.IPermissionProvider;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.DefaultPermissionProvider;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.PermissionProviderDescriptor;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.PermissionService;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.ReadOnlyPermissionAuthority;
+import org.eclipse.sirius.ecore.extender.business.internal.permission.descriptors.StandalonePermissionProviderDescriptor;
+import org.eclipse.sirius.tests.swtbot.Activator;
+import org.eclipse.sirius.tests.swtbot.support.api.AbstractSiriusSwtBotGefTestCase;
+import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
+import org.eclipse.sirius.ui.tools.api.views.modelexplorerview.IModelExplorerView;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.eclipse.gef.finder.matchers.IsInstanceOf;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.utils.TableRow;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+
+/**
+ * Test the use of property view on ModelExplorerView {@link EObject} selection
+ * for locked object.
+ *
+ * @see <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=480203">Bug
+ * 480203</a>
+ * @author <a href="mailto:esteban.dugueperoux@obeo.fr">Esteban Dugueperoux</a>
+ */
+public class PropertyViewOnModelExplorerSelectionWithLockedObjectTest extends AbstractSiriusSwtBotGefTestCase {
+
+ private static final String SEMANTIC_RESOURCE_NAME = "VP-3832.ecore";
+
+ private static final String REPRESENTATIONS_RESOURCE_NAME = "VP-3832.aird";
+
+ private static final String PATH = "data/unit/VP-3832/";
+
+ private UIResource sessionAirdResource;
+
+ private SWTBot modelExplorerViewBot;
+
+ private SWTBot propertyViewBot;
+
+ private PermissionProviderDescriptor permissionProviderDescriptor;
+
+ @Override
+ protected void onSetUpBeforeClosingWelcomePage() throws Exception {
+ copyFileToTestProject(Activator.PLUGIN_ID, PATH, SEMANTIC_RESOURCE_NAME, REPRESENTATIONS_RESOURCE_NAME);
+ }
+
+ @Override
+ protected void onSetUpAfterOpeningDesignerPerspective() throws Exception {
+ ReadOnlyPermissionAuthority readOnlyPermissionAuthority = new ReadOnlyPermissionAuthority();
+ readOnlyPermissionAuthority.activate();
+ IPermissionProvider permissionProvider = new DefaultPermissionProvider(readOnlyPermissionAuthority);
+ permissionProviderDescriptor = new StandalonePermissionProviderDescriptor("org.eclipse.sirius.tests.swtbot.lockModelExplorerPermissionAuthorityProvider", ExtenderConstants.HIGHEST_PRIORITY,
+ permissionProvider);
+ PermissionService.addExtension(permissionProviderDescriptor);
+
+ sessionAirdResource = new UIResource(designerProject, REPRESENTATIONS_RESOURCE_NAME);
+ localSession = designerPerspective.openSessionFromFile(sessionAirdResource, true);
+
+ SWTBotView modelExplorerView = bot.viewById(IModelExplorerView.ID);
+ modelExplorerView.setFocus();
+ modelExplorerViewBot = modelExplorerView.bot();
+
+ SWTBotView propertyView = bot.viewById("org.eclipse.ui.views.PropertySheet");
+ propertyView.setFocus();
+ propertyViewBot = propertyView.bot();
+ }
+
+ /**
+ * Test the display and the edition of properties in properties view on
+ * ModelExplorerView EObject selection.
+ */
+ public void testPropertyViewEditionOnModelExplorerViewSelectionForLockedObject() {
+ // Check that properties view display something on treeItem selection of
+ // semantic resource treeItem
+ SWTBotTreeItem projectTreeItemBot = modelExplorerViewBot.tree().expandNode(getProjectName(), true);
+ SWTBotTreeItem representationsResourceTreeItemBot = projectTreeItemBot.getNode(REPRESENTATIONS_RESOURCE_NAME);
+ SWTBotTreeItem semanticResourceTreeItemBot = representationsResourceTreeItemBot.getNode(1);
+ semanticResourceTreeItemBot.select();
+ assertEmptyPropertiesView(true);
+ SWTBotTreeItem rootEPackageTreeItemBot = semanticResourceTreeItemBot.getNode(0);
+ rootEPackageTreeItemBot.select();
+ assertEmptyPropertiesView(false);
+ SWTBotTreeItem packageEntitiesRepTreeItemBot = rootEPackageTreeItemBot.getNode(0);
+ packageEntitiesRepTreeItemBot.select();
+ assertEmptyPropertiesView(true);
+ SWTBotTreeItem newEClass1TreeItemBot = rootEPackageTreeItemBot.getNode("NewEClass1");
+ newEClass1TreeItemBot.select();
+ assertEmptyPropertiesView(false);
+
+ // Check that properties of semantic element named "NewEClass1" are
+ // editable
+ TableRow row = propertyViewBot.tree().getTreeItem("Name").select().doubleClick().row();
+ String currentName = row.get(1);
+ String newName = "renamedEClass";
+ try {
+ propertyViewBot.text().setText(newName);
+ fail("Property should not be editable");
+ } catch (WidgetNotFoundException e) {
+
+ }
+ newEClass1TreeItemBot.select();
+ assertEquals("The semantic element should have its name unchanged", currentName, newEClass1TreeItemBot.getText());
+
+ PermissionService.removeExtension(permissionProviderDescriptor);
+ }
+
+ private void assertEmptyPropertiesView(boolean emptyPropertiesView) {
+ List<Tree> findedTrees = propertyViewBot.getFinder().findControls(IsInstanceOf.instanceOf(Tree.class));
+ boolean result = findedTrees.isEmpty() || (!findedTrees.isEmpty() && !propertyViewBot.tree().hasItems());
+ if (emptyPropertiesView) {
+ assertTrue("The properties view is expected to be empty.", result);
+ } else {
+ assertFalse("The properties view is not expected to be empty.", result);
+ }
+ }
+
+ @Override
+ public void tearDown() throws Exception {
+ PermissionService.removeExtension(permissionProviderDescriptor);
+ permissionProviderDescriptor = null;
+ propertyViewBot = null;
+ modelExplorerViewBot = null;
+ sessionAirdResource = null;
+ super.tearDown();
+ }
+}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
index fc8560ca42..c12bb399db 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/suite/AllTestSuite.java
@@ -10,11 +10,6 @@
*******************************************************************************/
package org.eclipse.sirius.tests.swtbot.suite;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-import junit.textui.TestRunner;
-
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.common.util.WrappedException;
import org.eclipse.emf.ecore.resource.Resource;
@@ -55,6 +50,8 @@ import org.eclipse.sirius.tests.swtbot.modelexplorer.LockedModelExplorerTest;
import org.eclipse.sirius.tests.swtbot.modelexplorer.ModelExplorerFilterTests;
import org.eclipse.sirius.tests.swtbot.modelexplorer.ProjectDependenciesTest;
import org.eclipse.sirius.tests.swtbot.modelexplorer.ProjectsConcurrentCloseTest;
+import org.eclipse.sirius.tests.swtbot.modelexplorer.PropertyViewOnModelExplorerSelectionTests;
+import org.eclipse.sirius.tests.swtbot.modelexplorer.PropertyViewOnModelExplorerSelectionWithLockedObjectTest;
import org.eclipse.sirius.tests.swtbot.modelexplorer.RepresentationVisibilityAfterSessionReloadTest;
import org.eclipse.sirius.tests.swtbot.tabbar.LockedTabBarTest;
import org.eclipse.sirius.tests.swtbot.tabbar.NotInvisibleTabBarTest;
@@ -66,6 +63,11 @@ import org.eclipse.sirius.tests.swtbot.uml.CopyPasteLayoutOfPortsWithConflictWit
import org.eclipse.sirius.tests.swtbot.uml.PortLocationAfterDragAndDropOnDiagramTest;
import org.eclipse.sirius.tests.swtbot.uml.PortLocationAfterDragAndDropTest;
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
/**
* All SWTBot tests.
*
@@ -344,6 +346,8 @@ public class AllTestSuite extends TestCase {
suite.addTestSuite(ModelExplorerFilterTests.class);
suite.addTestSuite(ProjectDependenciesTest.class);
suite.addTestSuite(ProjectsConcurrentCloseTest.class);
+ suite.addTestSuite(PropertyViewOnModelExplorerSelectionWithLockedObjectTest.class);
+ suite.addTestSuite(PropertyViewOnModelExplorerSelectionTests.class);
suite.addTestSuite(ContextualMenuTest.class);
suite.addTestSuite(BracketEdgeTests.class);
suite.addTestSuite(EdgeCopyPasteLayoutTest.class);

Back to the top