Add utility method to open a trace in the editor using SWTBot only
authorMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Mon, 8 Dec 2014 03:34:46 +0000 (22:34 -0500)
committerMarc-Andre Laperle <marc-andre.laperle@ericsson.com>
Mon, 8 Dec 2014 23:14:13 +0000 (18:14 -0500)
Change-Id: Ia98e7c029b46fdae4489e24ddfc0ee8c41963eb3
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/37715
Tested-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/37764
Reviewed-by: Hudson CI
org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/AbstractImportAndReadSmokeTest.java
org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/ImportAndReadSmokeTest.java
org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/StandardImportAndReadSmokeTest.java
org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/SWTBotUtil.java
org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/table/CallsiteEventsInTableTest.java
org.eclipse.tracecompass.tmf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ui/swtbot/tests/table/CollapseEventsInTableTest.java

index 82280eda86b250ee646a70137096487ca50e98ef..4ef744761196ddca138aa0bc7cc739a2d1d2ecb3 100644 (file)
@@ -20,7 +20,6 @@ import java.util.List;
 
 import org.apache.log4j.Logger;
 import org.apache.log4j.varia.NullAppender;
-import org.eclipse.core.runtime.IPath;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
@@ -43,14 +42,10 @@ import org.eclipse.tracecompass.tmf.ctf.core.event.CtfTmfEvent;
 import org.eclipse.tracecompass.tmf.ctf.core.tests.shared.CtfTmfTestTrace;
 import org.eclipse.tracecompass.tmf.ctf.core.trace.CtfTmfTrace;
 import org.eclipse.tracecompass.tmf.ui.editors.TmfEventsEditor;
-import org.eclipse.tracecompass.tmf.ui.project.model.TmfTracesFolder;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.SWTBotUtil;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.conditions.ConditionHelpers;
 import org.eclipse.tracecompass.tmf.ui.views.histogram.HistogramView;
 import org.eclipse.tracecompass.tmf.ui.views.statistics.TmfStatisticsView;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IEditorReference;
-import org.eclipse.ui.IPageLayout;
 import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.PlatformUI;
@@ -136,70 +131,6 @@ public abstract class AbstractImportAndReadSmokeTest {
         SWTBotUtil.waitForJobs();
     }
 
-    /**
-     * Opens and get the TmfEventsEditor
-     *
-     * @param elementPath
-     *            the trace element path (relative to Traces folder)
-     * @return TmfEventsEditor
-     */
-    protected TmfEventsEditor openEditor(IPath elementPath) {
-        final SWTBotView projectExplorerBot = fBot.viewById(IPageLayout.ID_PROJECT_EXPLORER);
-        projectExplorerBot.setFocus();
-
-        final SWTBotTree tree = fBot.tree();
-        final SWTBotTreeItem treeItem = tree.getTreeItem(getProjectName());
-        treeItem.expand();
-
-        String nodeName = getFullNodeName(treeItem, TmfTracesFolder.TRACES_FOLDER_NAME);
-        fBot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable(nodeName, treeItem));
-        SWTBotTreeItem tracesNode = treeItem.getNode(nodeName);
-        tracesNode.expand();
-
-        SWTBotTreeItem currentNode = tracesNode;
-        for (String segment : elementPath.segments()) {
-            String fullNodeName = getFullNodeName(currentNode, segment);
-            fBot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable(fullNodeName, currentNode));
-            SWTBotTreeItem newNode = currentNode.getNode(fullNodeName);
-            newNode.select();
-            newNode.doubleClick();
-            currentNode = newNode;
-        }
-
-        SWTBotUtil.delay(1000);
-        SWTBotUtil.waitForJobs();
-        final String expectedTitle = elementPath.toString();
-
-        final IEditorPart iep[] = new IEditorPart[1];
-        UIThreadRunnable.syncExec(new VoidResult() {
-            @Override
-            public void run() {
-                IEditorReference[] ieds = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
-                assertNotNull(ieds);
-                iep[0] = null;
-                for (IEditorReference ied : ieds) {
-                    if (ied.getTitle().equals(expectedTitle)) {
-                        iep[0] = ied.getEditor(true);
-                        break;
-                    }
-                }
-            }
-        });
-        assertNotNull(iep[0]);
-        return (TmfEventsEditor) iep[0];
-    }
-
-    private static String getFullNodeName(final SWTBotTreeItem treeItem, String prefix) {
-        List<String> nodes = treeItem.getNodes();
-        String nodeName = "";
-        for (String node : nodes) {
-            if (node.startsWith(prefix)) {
-                nodeName = node;
-            }
-        }
-        return nodeName;
-    }
-
     /**
      * Finishes the wizard
      */
index ab062c12c740da340d19c27dedf8f293cb93b9a3..44d5023fa36c7a9270cf6d08be9940a3705e87fc 100644 (file)
@@ -61,7 +61,7 @@ public class ImportAndReadSmokeTest extends AbstractImportAndReadSmokeTest {
         batchImportSelectTrace();
         importFinish();
 
-        TmfEventsEditor tmfEd = openEditor(new Path(TRACE_NAME));
+        TmfEventsEditor tmfEd = SWTBotUtil.openEditor(fBot, getProjectName(), new Path(TRACE_NAME));
 
         testHistogramView(getViewPart("Histogram"), tmfEd);
         testPropertyView(getViewPart("Properties"));
index 3697752d1b8ab007e337c82c962073fdbbf14f6b..238ea5179b12fe6265c3f467f7a400c9c6e3a38a 100644 (file)
@@ -150,7 +150,7 @@ public class StandardImportAndReadSmokeTest extends AbstractImportAndReadSmokeTe
         importFinish();
 
         checkOptions(options);
-        TmfEventsEditor tmfEd = openEditor(getTraceElementPath(options));
+        TmfEventsEditor tmfEd = SWTBotUtil.openEditor(fBot, getProjectName(), getTraceElementPath(options));
         if (testViews) {
             testViews(tmfEd);
         }
index 7ce4c6468a46d6c408fff8ce50287b55001ba97d..439b7c54aee13b12c8ace9ec0d2fb78d8da0dbc3 100644 (file)
@@ -21,6 +21,7 @@ import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
@@ -41,6 +42,7 @@ import org.eclipse.tracecompass.tmf.ui.editors.TmfEventsEditor;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfOpenTraceHelper;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfProjectRegistry;
 import org.eclipse.tracecompass.tmf.ui.project.model.TmfTraceFolder;
+import org.eclipse.tracecompass.tmf.ui.project.model.TmfTracesFolder;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.conditions.ConditionHelpers;
 import org.eclipse.tracecompass.tmf.ui.views.TracingPerspectiveFactory;
 import org.eclipse.ui.IEditorPart;
@@ -50,6 +52,7 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.WorkbenchException;
 import org.hamcrest.Matcher;
 
+
 /**
  * SWTBot Helper functions
  *
@@ -265,7 +268,7 @@ public abstract class SWTBotUtil {
     }
 
     /**
-     * Opens an editor and sets focus to the editor
+     * Finds an editor and sets focus to the editor
      *
      * @param bot
      *            the workbench bot
@@ -273,7 +276,7 @@ public abstract class SWTBotUtil {
      *            the editor name
      * @return the corresponding SWTBotEditor
      */
-    public static SWTBotEditor openEditor(SWTWorkbenchBot bot, String editorName) {
+    public static SWTBotEditor activateEditor(SWTWorkbenchBot bot, String editorName) {
         Matcher<IEditorReference> matcher = WidgetMatcherFactory.withPartName(editorName);
         final SWTBotEditor editorBot = bot.editor(matcher);
         IEditorPart iep = editorBot.getReference().getEditor(true);
@@ -291,4 +294,72 @@ public abstract class SWTBotUtil {
         assertNotNull(tmfEd);
         return editorBot;
     }
+
+    /**
+     * Opens a trace in an editor and get the TmfEventsEditor
+     *
+     * @param bot
+     *            the workbench bot
+     * @param projectName
+     *            the name of the project that contains the trace
+     * @param elementPath
+     *            the trace element path (relative to Traces folder)
+     * @return TmfEventsEditor the opened editor
+     */
+    public static TmfEventsEditor openEditor(SWTWorkbenchBot bot, String projectName, IPath elementPath) {
+        final SWTBotView projectExplorerBot = bot.viewById(IPageLayout.ID_PROJECT_EXPLORER);
+        projectExplorerBot.setFocus();
+
+        final SWTBotTree tree = bot.tree();
+        final SWTBotTreeItem treeItem = tree.getTreeItem(projectName);
+        treeItem.expand();
+
+        String nodeName = getFullNodeName(treeItem, TmfTracesFolder.TRACES_FOLDER_NAME);
+        bot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable(nodeName, treeItem));
+        SWTBotTreeItem tracesNode = treeItem.getNode(nodeName);
+        tracesNode.expand();
+
+        SWTBotTreeItem currentNode = tracesNode;
+        for (String segment : elementPath.segments()) {
+            String fullNodeName = getFullNodeName(currentNode, segment);
+            bot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable(fullNodeName, currentNode));
+            SWTBotTreeItem newNode = currentNode.getNode(fullNodeName);
+            newNode.select();
+            newNode.doubleClick();
+            currentNode = newNode;
+        }
+
+        SWTBotUtil.delay(1000);
+        SWTBotUtil.waitForJobs();
+        final String expectedTitle = elementPath.toString();
+
+        final IEditorPart iep[] = new IEditorPart[1];
+        UIThreadRunnable.syncExec(new VoidResult() {
+            @Override
+            public void run() {
+                IEditorReference[] ieds = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
+                assertNotNull(ieds);
+                iep[0] = null;
+                for (IEditorReference ied : ieds) {
+                    if (ied.getTitle().equals(expectedTitle)) {
+                        iep[0] = ied.getEditor(true);
+                        break;
+                    }
+                }
+            }
+        });
+        assertNotNull(iep[0]);
+        return (TmfEventsEditor) iep[0];
+    }
+
+    private static String getFullNodeName(final SWTBotTreeItem treeItem, String prefix) {
+        List<String> nodes = treeItem.getNodes();
+        String nodeName = "";
+        for (String node : nodes) {
+            if (node.startsWith(prefix)) {
+                nodeName = node;
+            }
+        }
+        return nodeName;
+    }
 }
index 6e442e955c40bd91fbd1a7458e02e520d52390da..9598ee31d6c81d125a204d7efca14af867412bac 100644 (file)
@@ -152,7 +152,7 @@ public class CallsiteEventsInTableTest {
 
         // Open the actual trace
         SWTBotUtil.openTrace(TRACE_PROJECT_NAME, fTestFile.getAbsolutePath(), CALLSITE_TRACE_TYPE);
-        SWTBotEditor editorBot = SWTBotUtil.openEditor(fBot, fTestFile.getName());
+        SWTBotEditor editorBot = SWTBotUtil.activateEditor(fBot, fTestFile.getName());
 
         SWTBotTable tableBot = editorBot.bot().table();
 
index 4f42f161dfc63c6ed5b2145d01cc004271d180fe..d9d3fc3cda9c803e8958aa6d1d52ddb9562ee5d2 100644 (file)
@@ -128,7 +128,7 @@ public class CollapseEventsInTableTest {
     public void test() {
         SWTBotUtil.createProject(TRACE_PROJECT_NAME);
         SWTBotUtil.openTrace(TRACE_PROJECT_NAME, fTestFile.getAbsolutePath(), COLLAPSE_TRACE_TYPE);
-        SWTBotEditor editorBot = SWTBotUtil.openEditor(fBot, fTestFile.getName());
+        SWTBotEditor editorBot = SWTBotUtil.activateEditor(fBot, fTestFile.getName());
 
         SWTBotTable tableBot = editorBot.bot().table();
 
This page took 0.030824 seconds and 5 git commands to generate.