From 2bf81e283f7007d32753e041885de149432c7da4 Mon Sep 17 00:00:00 2001 From: Matthew Khouzam Date: Tue, 18 Oct 2016 13:41:15 -0400 Subject: [PATCH] lttng.swtbot: Add cfv toolbar order test This is a very simple test to make sure that the toolbar items are all displayed/enabled. Change-Id: If6639280ebd1c31a30ed02784e2dc3a3f0db2a3b Signed-off-by: Matthew Khouzam Reviewed-on: https://git.eclipse.org/r/83467 Reviewed-by: Genevieve Bastien Tested-by: Genevieve Bastien Reviewed-by: Hudson CI Reviewed-by: Jonathan Rajotte Julien --- .../ui/swtbot/tests/ControlFlowViewTest.java | 57 +++++++++++++++++-- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/kernel/ui/swtbot/tests/ControlFlowViewTest.java b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/kernel/ui/swtbot/tests/ControlFlowViewTest.java index 1ce0a6cb48..f8655d702f 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/kernel/ui/swtbot/tests/ControlFlowViewTest.java +++ b/lttng/org.eclipse.tracecompass.lttng2.kernel.ui.swtbot.tests/src/org/eclipse/tracecompass/lttng2/kernel/ui/swtbot/tests/ControlFlowViewTest.java @@ -16,6 +16,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import java.util.ArrayList; +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; @@ -56,6 +60,7 @@ import org.junit.runner.RunWith; @RunWith(SWTBotJunit4ClassRunner.class) public class ControlFlowViewTest extends KernelTestBase { + private static final String SEPARATOR = ""; private static final String CHECK_SELECTED = "Check selected"; private static final String CHECK_ALL = "Check all"; private static final String CHECK_SUBTREE = "Check subtree"; @@ -65,7 +70,6 @@ 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_STATE_CHANGE = "Select Previous State Change"; @@ -87,6 +91,32 @@ public class ControlFlowViewTest extends KernelTestBase { private SWTBotView fViewBot; + /** + * Get the legend text values in order (override if you subclass the test) + * + * @return the legend text values in order + */ + protected List getLegendValues() { + String[] labelValues = { "UNKNOWN", "WAIT_UNKNOWN", "WAIT_BLOCKED", "WAIT_FOR_CPU", "USERMODE", "SYSCALL", "INTERRUPTED" }; + return Arrays.asList(labelValues); + } + + /** + * Get the tool bar tool tip text values in order (override if you subclass the test) + * + * @return the tool bar tool tip text values in order + */ + protected List getToolbarTooltips() { + String[] tooltipsArray = { "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" }; + return Arrays.asList(tooltipsArray); + } + /** * Before Test */ @@ -111,7 +141,8 @@ public class ControlFlowViewTest extends KernelTestBase { } /** - * Test tool bar buttons "Select Next State Change" and "Select Previous State Change" + * Test tool bar buttons "Select Next State Change" and "Select Previous + * State Change" */ @Test public void testToolBarSelectNextPreviousStateChange() { @@ -221,20 +252,36 @@ public class ControlFlowViewTest extends KernelTestBase { assertTrue(TmfTraceManager.getInstance().getCurrentTraceContext().getWindowRange().contains(START_TIME)); } + /** + * Test toolbar button order and that all buttons are enabled and visible + */ + @Test + public void testToolbar() { + List buttons = fViewBot.getToolbarButtons(); + List tooltipsExpected = getToolbarTooltips(); + List tooltips = new ArrayList<>(); + for (SWTBotToolbarButton button : buttons) { + tooltips.add(button.getToolTipText()); + assertTrue(button.getText() + " enabled", button.isEnabled()); + assertTrue(button.getText() + " visible", button.isVisible()); + } + assertEquals(tooltipsExpected, tooltips); + } + /** * Test the legend content */ @Test public void testLegend() { - String[] labelValues = { "UNKNOWN", "WAIT_UNKNOWN", "WAIT_BLOCKED", "WAIT_FOR_CPU", "USERMODE", "SYSCALL", "INTERRUPTED" }; + List labelValues = getLegendValues(); 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++) { + for (int i = 1; i <= labelValues.size(); i++) { SWTBotLabel label = bot.label(i); assertNotNull(label); - assertEquals(labelValues[i - 1], label.getText()); + assertEquals(labelValues.get(i - 1), label.getText()); } bot.button("OK").click(); } -- 2.34.1