lttng.swtbot: Add resources view swtbot tests
[deliverable/tracecompass.git] / lttng / org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests / src / org / eclipse / tracecompass / lttng2 / kernel / ui / swtbot / tests / ControlFlowViewTest.java
index 0a5a77fc830020143befd6d578daeb0b0315592f..f17395aba0932ab92f1b343a9abfece7590f6f6c 100644 (file)
 package org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import java.util.Arrays;
+import java.util.List;
+
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.swt.SWT;
 import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
@@ -27,11 +29,10 @@ import org.eclipse.swtbot.swt.finder.keyboard.KeyboardFactory;
 import org.eclipse.swtbot.swt.finder.keyboard.Keystrokes;
 import org.eclipse.swtbot.swt.finder.matchers.WidgetOfType;
 import org.eclipse.swtbot.swt.finder.results.VoidResult;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotLabel;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
 import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.eclipse.tracecompass.ctf.core.tests.shared.LttngKernelTraceGenerator;
+import org.eclipse.tracecompass.ctf.core.tests.shared.LttngTraceGenerator;
 import org.eclipse.tracecompass.tmf.core.signal.TmfSelectionRangeUpdatedSignal;
 import org.eclipse.tracecompass.tmf.core.signal.TmfSignalManager;
 import org.eclipse.tracecompass.tmf.core.signal.TmfWindowRangeUpdatedSignal;
@@ -40,6 +41,7 @@ import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
 import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
 import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager;
 import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
+import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
 import org.eclipse.tracecompass.tmf.ui.views.timegraph.AbstractTimeGraphView;
 import org.eclipse.tracecompass.tmf.ui.widgets.timegraph.widgets.TimeGraphControl;
 import org.eclipse.ui.IWorkbenchPart;
@@ -53,7 +55,7 @@ import org.junit.runner.RunWith;
  * @author Patrick Tasse
  */
 @RunWith(SWTBotJunit4ClassRunner.class)
-public class ControlFlowViewTest extends KernelTestBase {
+public class ControlFlowViewTest extends KernelTimeGraphViewTestBase {
 
     private static final String CHECK_SELECTED = "Check selected";
     private static final String CHECK_ALL = "Check all";
@@ -64,11 +66,10 @@ public class ControlFlowViewTest extends KernelTestBase {
     private static final String UNCHECK_SUBTREE = "Uncheck subtree";
     private static final String UNCHECK_INACTIVE = "Uncheck Inactive";
 
-
     private static final String FOLLOW_CPU_BACKWARD = "Follow CPU Backward";
     private static final String FOLLOW_CPU_FORWARD = "Follow CPU Forward";
-    private static final String SELECT_PREVIOUS_EVENT = "Select Previous Event";
-    private static final String SELECT_NEXT_EVENT = "Select Next Event";
+    private static final String SELECT_PREVIOUS_STATE_CHANGE = "Select Previous State Change";
+    private static final String SELECT_NEXT_STATE_CHANGE = "Select Next State Change";
     private static final String SELECT_NEXT_PROCESS = "Select Next Process";
     private static final Keyboard KEYBOARD = KeyboardFactory.getSWTKeyboard();
     private static final @NonNull ITmfTimestamp START_TIME = TmfTimestamp.fromNanos(1368000272650993664L);
@@ -86,6 +87,27 @@ public class ControlFlowViewTest extends KernelTestBase {
 
     private SWTBotView fViewBot;
 
+    @Override
+    protected SWTBotView getViewBot() {
+        return fViewBot;
+    }
+
+    @Override
+    protected List<String> getLegendValues() {
+        return Arrays.asList("UNKNOWN", "WAIT_UNKNOWN", "WAIT_BLOCKED", "WAIT_FOR_CPU", "USERMODE", "SYSCALL", "INTERRUPTED");
+    }
+
+    @Override
+    protected List<String> getToolbarTooltips() {
+        return Arrays.asList("Align Views", "Optimize", SEPARATOR,
+                "Show View Filters", "Show Legend", SEPARATOR,
+                "Reset the Time Scale to Default", "Select Previous State Change", "Select Next State Change", SEPARATOR,
+                "Add Bookmark...", "Previous Marker", "Next Marker", SEPARATOR,
+                "Select Previous Process", "Select Next Process", "Zoom In", "Zoom Out", SEPARATOR,
+                "Hide Arrows", "Follow CPU Backward", "Follow CPU Forward",
+                "Go to previous event of the selected thread", "Go to next event of the selected thread" );
+    }
+
     /**
      * Before Test
      */
@@ -110,14 +132,15 @@ public class ControlFlowViewTest extends KernelTestBase {
     }
 
     /**
-     * Test tool bar buttons "Select Next Event" and "Select Previous Event"
+     * Test tool bar buttons "Select Next State Change" and "Select Previous
+     * State Change"
      */
     @Test
-    public void testToolBarSelectNextPreviousEvent() {
-        testNextPreviousEvent(() -> fViewBot.toolbarButton(SELECT_NEXT_EVENT).click(),
-                () -> fViewBot.toolbarButton(SELECT_NEXT_EVENT).click(SWT.SHIFT),
-                () -> fViewBot.toolbarButton(SELECT_PREVIOUS_EVENT).click(),
-                () -> fViewBot.toolbarButton(SELECT_PREVIOUS_EVENT).click(SWT.SHIFT));
+    public void testToolBarSelectNextPreviousStateChange() {
+        testNextPreviousEvent(() -> fViewBot.toolbarButton(SELECT_NEXT_STATE_CHANGE).click(),
+                () -> fViewBot.toolbarButton(SELECT_NEXT_STATE_CHANGE).click(SWT.SHIFT),
+                () -> fViewBot.toolbarButton(SELECT_PREVIOUS_STATE_CHANGE).click(),
+                () -> fViewBot.toolbarButton(SELECT_PREVIOUS_STATE_CHANGE).click(SWT.SHIFT));
     }
 
     private void testNextPreviousEvent(Runnable selectNext, Runnable shiftSelectNext, Runnable selectPrevious, Runnable shiftSelectPrevious) {
@@ -131,8 +154,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         timeGraphIsReadyCondition(new TmfTimeRange(START_TIME, START_TIME));
 
         /* select first item */
-        final SWTBotTree tree = fViewBot.bot().tree();
-        tree.pressShortcut(Keystrokes.HOME);
+        SWTBotUtils.pressShortcutGoToTreeTop(KEYBOARD);
         fViewBot.toolbarButton(SELECT_NEXT_PROCESS).click();
 
         /* set focus on time graph */
@@ -144,7 +166,7 @@ public class ControlFlowViewTest extends KernelTestBase {
             }
         });
 
-        /* click "Select Next Event" 3 times */
+        /* click "Select Next State Change" 3 times */
         selectNext.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME1, TID1_TIME1));
         selectNext.run();
@@ -154,7 +176,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME3, TID1_TIME3)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME3));
 
-        /* shift-click "Select Next Event" 3 times */
+        /* shift-click "Select Next State Change" 3 times */
         shiftSelectNext.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME3, TID1_TIME4));
         shiftSelectNext.run();
@@ -164,7 +186,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME3, TID1_TIME6)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME6));
 
-        /* shift-click "Select Previous Event" 4 times */
+        /* shift-click "Select Previous State Change" 4 times */
         shiftSelectPrevious.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME3, TID1_TIME5));
         shiftSelectPrevious.run();
@@ -176,7 +198,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME3, TID1_TIME2)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME2));
 
-        /* click "Select Next Event" 2 times */
+        /* click "Select Next State Change" 2 times */
         selectNext.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME3, TID1_TIME3));
         selectNext.run();
@@ -184,7 +206,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME4, TID1_TIME4)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME4));
 
-        /* shift-click "Select Previous Event" 3 times */
+        /* shift-click "Select Previous State Change" 3 times */
         shiftSelectPrevious.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME4, TID1_TIME3));
         shiftSelectPrevious.run();
@@ -194,7 +216,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME4, TID1_TIME1)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME1));
 
-        /* shift-click "Select Next Event" 4 times */
+        /* shift-click "Select Next State Change" 4 times */
         shiftSelectNext.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME4, TID1_TIME2));
         shiftSelectNext.run();
@@ -206,7 +228,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         fBot.waitUntil(ConditionHelpers.selectionRange(new TmfTimeRange(TID1_TIME4, TID1_TIME5)));
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(TID1_TIME5));
 
-        /* click "Select Previous Event" 5 times */
+        /* click "Select Previous State Change" 5 times */
         selectPrevious.run();
         timeGraphIsReadyCondition(new TmfTimeRange(TID1_TIME4, TID1_TIME4));
         selectPrevious.run();
@@ -221,24 +243,6 @@ public class ControlFlowViewTest extends KernelTestBase {
         assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(START_TIME));
     }
 
-    /**
-     * Test the legend content
-     */
-    @Test
-    public void testLegend() {
-        String[] labelValues = { "UNKNOWN", "WAIT_UNKNOWN", "WAIT_BLOCKED", "WAIT_FOR_CPU", "USERMODE", "SYSCALL", "INTERRUPTED" };
-        SWTBotToolbarButton legendButton = fViewBot.toolbarButton("Show Legend");
-        legendButton.click();
-        fBot.waitUntil(org.eclipse.swtbot.swt.finder.waits.Conditions.shellIsActive("States Transition Visualizer"));
-        SWTBot bot = fBot.activeShell().bot();
-        for (int i = 1; i < 8; i++) {
-            SWTBotLabel label = bot.label(i);
-            assertNotNull(label);
-            assertEquals(labelValues[i - 1], label.getText());
-        }
-        bot.button("OK").click();
-    }
-
     /**
      * Test the filter
      */
@@ -275,7 +279,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         checked = UIThreadRunnable.syncExec(treeCheckCounter);
         assertEquals(UNCHECK_INACTIVE, 69, checked.intValue());
         // test check selected
-        treeBot.getTreeItem(LttngKernelTraceGenerator.getName()).select("gnuplot");
+        treeBot.getTreeItem(LttngTraceGenerator.getName()).select("gnuplot");
         bot.button(UNCHECK_ALL).click();
         bot.button(CHECK_SELECTED).click();
         checked = UIThreadRunnable.syncExec(treeCheckCounter);
@@ -300,7 +304,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         checked = UIThreadRunnable.syncExec(treeCheckCounter);
         assertEquals(0, checked.intValue());
         bot.text().setText("half-life 3");
-        SWTBotTreeItem treeItem = treeBot.getTreeItem(LttngKernelTraceGenerator.getName());
+        SWTBotTreeItem treeItem = treeBot.getTreeItem(LttngTraceGenerator.getName());
         treeItem.rowCount();
         fBot.waitUntil(ConditionHelpers.treeItemCount(treeItem, 25));
         bot.button(CHECK_ALL).click();
@@ -308,7 +312,7 @@ public class ControlFlowViewTest extends KernelTestBase {
         assertEquals("Filtered", 26, checked.intValue());
         bot.button("OK").click();
         treeBot = fViewBot.bot().tree();
-        treeItem = treeBot.getTreeItem(LttngKernelTraceGenerator.getName());
+        treeItem = treeBot.getTreeItem(LttngTraceGenerator.getName());
         for (int i = 0; i < 25; i++) {
             assertEquals("Filtered Control flow view", "Half-life 3", treeItem.cell(i, 0));
         }
@@ -330,7 +334,7 @@ public class ControlFlowViewTest extends KernelTestBase {
 
         /* select first item */
         final SWTBotTree tree = fViewBot.bot().tree();
-        tree.pressShortcut(Keystrokes.HOME);
+        SWTBotUtils.pressShortcutGoToTreeTop(KEYBOARD);
         fViewBot.toolbarButton(SELECT_NEXT_PROCESS).click();
 
         /* set focus on time graph */
This page took 0.028781 seconds and 5 git commands to generate.