Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Barbin2019-04-12 09:28:40 +0000
committerFlorian Barbin2019-04-12 09:28:40 +0000
commit32443373e5e8481c7a512a715d0e0afa7355e64e (patch)
tree276bbaa0d0c8e0e2d12906024fa2e1a618f962df
parentcce80738bb99b7a8d6f34dbe8010570daaf4e961 (diff)
downloadorg.eclipse.sirius-32443373e5e8481c7a512a715d0e0afa7355e64e.tar.gz
org.eclipse.sirius-32443373e5e8481c7a512a715d0e0afa7355e64e.tar.xz
org.eclipse.sirius-32443373e5e8481c7a512a715d0e0afa7355e64e.zip
[545853] Fix selection tests.
Since the selection can be asynchronous, this commit modifies those tests to wait for the selection. Bug: 545853 Change-Id: I8a7d010f1d215223be3ee6a84510cb3df371675d Signed-off-by: Florian Barbin <florian.barbin@obeo.fr>
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot.support/src/org/eclipse/sirius/tests/swtbot/support/api/condition/SelectionCountCondition.java53
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/table/CreatedDLinesSelectionTests.java39
-rw-r--r--plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/tree/CreatedDTreeItemsSelectionTests.java47
3 files changed, 112 insertions, 27 deletions
diff --git a/plugins/org.eclipse.sirius.tests.swtbot.support/src/org/eclipse/sirius/tests/swtbot/support/api/condition/SelectionCountCondition.java b/plugins/org.eclipse.sirius.tests.swtbot.support/src/org/eclipse/sirius/tests/swtbot/support/api/condition/SelectionCountCondition.java
new file mode 100644
index 0000000000..c1175d1d6d
--- /dev/null
+++ b/plugins/org.eclipse.sirius.tests.swtbot.support/src/org/eclipse/sirius/tests/swtbot/support/api/condition/SelectionCountCondition.java
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * Copyright (c) 2019 THALES GLOBAL SERVICES
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.tests.swtbot.support.api.condition;
+
+import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+
+/**
+ * A Condition to wait for the expected number of selected elements.
+ *
+ * @author fbarbin
+ *
+ */
+public class SelectionCountCondition extends DefaultCondition {
+
+ private SWTBotTree swtBotTree;
+
+ private int expected;
+
+ /**
+ * Default constructor.
+ *
+ * @param swtBotTree
+ * the {@link SWTBotTree}.
+ * @param expected
+ * the expected selection count.
+ */
+ public SelectionCountCondition(SWTBotTree swtBotTree, int expected) {
+ this.swtBotTree = swtBotTree;
+ this.expected = expected;
+ }
+
+ @Override
+ public boolean test() throws Exception {
+ return swtBotTree.selectionCount() == expected;
+ }
+
+ @Override
+ public String getFailureMessage() {
+ return "Wrong selection count";
+ }
+
+}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/table/CreatedDLinesSelectionTests.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/table/CreatedDLinesSelectionTests.java
index c9ec2ed5a8..d9b98c0428 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/table/CreatedDLinesSelectionTests.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/table/CreatedDLinesSelectionTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 Obeo.
+ * Copyright (c) 2015, 2019 Obeo.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -27,6 +27,7 @@ import org.eclipse.sirius.table.ui.tools.api.editor.DTableEditor;
import org.eclipse.sirius.tests.swtbot.Activator;
import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
import org.eclipse.sirius.tests.swtbot.support.api.business.UITreeRepresentation;
+import org.eclipse.sirius.tests.swtbot.support.api.condition.SelectionCountCondition;
import org.eclipse.sirius.tests.swtbot.support.utils.SWTBotUtils;
import org.eclipse.sirius.tests.swtbot.tree.AbstractTreeSiriusSWTBotGefTestCase;
import org.eclipse.sirius.tests.unit.diagram.modeler.ecore.EcoreModeler;
@@ -82,8 +83,11 @@ public class CreatedDLinesSelectionTests extends AbstractTreeSiriusSWTBotGefTest
*/
public void testCreatedDTreeItemSelection() {
SWTBotTree swtBotTree = tableEditorBot.bot().tree();
- int selectionCount = swtBotTree.selectionCount();
- assertEquals("Selection should be empty at the beginning", 0, selectionCount);
+ {
+ // Selection should be empty at the beginning
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(3, swtBotTree.visibleRowCount());
TransactionalEditingDomain domain = localSession.getOpenedSession().getTransactionalEditingDomain();
@@ -94,9 +98,11 @@ public class CreatedDLinesSelectionTests extends AbstractTreeSiriusSWTBotGefTest
domain.getCommandStack().execute(addEPackageCmd);
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- String assertMessage = "After a EPackage creation we should have one DLine selected";
- assertEquals(assertMessage, 1, selectionCount);
+ {
+ // After a EPackage creation we should have one DLine selected
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 1);
+ bot.waitUntil(countCondition);
+ }
assertEquals(subEPackage1.getName(), swtBotTree.selection().get(0, 0));
assertEquals(4, swtBotTree.visibleRowCount());
@@ -121,8 +127,11 @@ public class CreatedDLinesSelectionTests extends AbstractTreeSiriusSWTBotGefTest
domain.getCommandStack().execute(addEPackageCmd);
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("After a EPackage creation containing contents we should have 1 DLine selected", 1, selectionCount);
+ {
+ // After a EPackage creation containing contents we should have 1 DLine selected
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 1);
+ bot.waitUntil(countCondition);
+ }
assertEquals(subEPackage2.getName(), swtBotTree.selection().get(0, 0));
assertEquals(Iterators.size(ePackage.eAllContents()) - 1, swtBotTree.visibleRowCount());
@@ -131,15 +140,21 @@ public class CreatedDLinesSelectionTests extends AbstractTreeSiriusSWTBotGefTest
domain.getCommandStack().execute(removeRootCmd);
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("As tree is empty the selection count should be 0", 0, selectionCount);
+ {
+ // As tree is empty the selection count should be 0
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(0, swtBotTree.visibleRowCount());
undo(localSession.getOpenedSession());
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("An deletion undo should trigger selection", 0, selectionCount);
+ {
+ // A deletion undo should trigger selection
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(Iterators.size(ePackage.eAllContents()) - 1, swtBotTree.visibleRowCount());
}
diff --git a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/tree/CreatedDTreeItemsSelectionTests.java b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/tree/CreatedDTreeItemsSelectionTests.java
index 197221a575..cad649d28e 100644
--- a/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/tree/CreatedDTreeItemsSelectionTests.java
+++ b/plugins/org.eclipse.sirius.tests.swtbot/src/org/eclipse/sirius/tests/swtbot/tree/CreatedDTreeItemsSelectionTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015 Obeo.
+ * Copyright (c) 2015, 2019 Obeo.
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
@@ -24,6 +24,7 @@ import org.eclipse.sirius.business.api.preferences.SiriusPreferencesKeys;
import org.eclipse.sirius.tests.swtbot.Activator;
import org.eclipse.sirius.tests.swtbot.support.api.business.UIResource;
import org.eclipse.sirius.tests.swtbot.support.api.business.UITreeRepresentation;
+import org.eclipse.sirius.tests.swtbot.support.api.condition.SelectionCountCondition;
import org.eclipse.sirius.tests.swtbot.support.api.condition.TreeChildrenNumberCondition;
import org.eclipse.sirius.tests.swtbot.support.api.condition.TreeItemAvailableCondition;
import org.eclipse.sirius.tests.swtbot.support.api.condition.TreeItemExpanded;
@@ -86,16 +87,21 @@ public class CreatedDTreeItemsSelectionTests extends AbstractTreeSiriusSWTBotGef
*/
public void testCreatedDTreeItemSelection() {
SWTBotTree swtBotTree = treeEditorBot.bot().tree();
- int selectionCount = swtBotTree.selectionCount();
- assertEquals("Selection should be empty at the beginning", 0, selectionCount);
- assertEquals(2, swtBotTree.visibleRowCount());
+ {
+ // Selection should be empty at the beginning
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
SWTBotTreeItem expandedBotTreeItem = swtBotTree.expandNode("new EClass 1");
bot.waitUntil(new TreeItemExpanded(expandedBotTreeItem, expandedBotTreeItem.getText()));
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("Selection should be empty at the beginning", 0, selectionCount);
+ {
+ // Selection should be empty at the beginning
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(4, swtBotTree.visibleRowCount());
TransactionalEditingDomain domain = localSession.getOpenedSession().getTransactionalEditingDomain();
@@ -106,9 +112,11 @@ public class CreatedDTreeItemsSelectionTests extends AbstractTreeSiriusSWTBotGef
domain.getCommandStack().execute(addEPackageCmd);
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- String assertMessage = "After a EPackage creation we should have one DTreeItem selected";
- assertEquals(assertMessage, 1, selectionCount);
+ {
+ // After a EPackage creation we should have one DTreeItem selected
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 1);
+ bot.waitUntil(countCondition);
+ }
assertEquals(subEPackage1.getName(), swtBotTree.selection().get(0, 0));
assertEquals(5, swtBotTree.visibleRowCount());
@@ -134,8 +142,11 @@ public class CreatedDTreeItemsSelectionTests extends AbstractTreeSiriusSWTBotGef
bot.waitUntil(new TreeItemAvailableCondition(swtBotTree, subEPackage2.getName(), true));
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("After a EPackage creation containing contents we should have 1 DTreeItem selected", 1, selectionCount);
+ {
+ // After a EPackage creation containing contents we should have 1 DTreeItem selected
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 1);
+ bot.waitUntil(countCondition);
+ }
assertEquals(subEPackage2.getName(), swtBotTree.selection().get(0, 0));
assertEquals(Iterators.size(ePackage.eAllContents()), swtBotTree.visibleRowCount());
@@ -145,15 +156,21 @@ public class CreatedDTreeItemsSelectionTests extends AbstractTreeSiriusSWTBotGef
bot.waitUntil(new TreeChildrenNumberCondition(swtBotTree, 0));
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("As tree is empty the selection count should be 0", 0, selectionCount);
+ {
+ // As tree is empty the selection count should be 0
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(0, swtBotTree.visibleRowCount());
undo(localSession.getOpenedSession());
SWTBotUtils.waitAllUiEvents();
- selectionCount = swtBotTree.selectionCount();
- assertEquals("An deletion undo should trigger selection", 0, selectionCount);
+ {
+ // An deletion undo should trigger selection
+ SelectionCountCondition countCondition = new SelectionCountCondition(swtBotTree, 0);
+ bot.waitUntil(countCondition);
+ }
assertEquals(Iterators.size(ePackage.eAllContents()), swtBotTree.visibleRowCount());
}

Back to the top