tmf: Add SWTBot test for the pattern latency table
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests / src / org / eclipse / tracecompass / tmf / analysis / xml / ui / swtbot / tests / latency / PatternLatencyTableViewTest.java
diff --git a/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/swtbot/tests/latency/PatternLatencyTableViewTest.java b/tmf/org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/analysis/xml/ui/swtbot/tests/latency/PatternLatencyTableViewTest.java
new file mode 100644 (file)
index 0000000..c1bbd1e
--- /dev/null
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Ericsson
+ *
+ * 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
+ *******************************************************************************/
+package org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests.latency;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
+import org.eclipse.swtbot.swt.finder.results.Result;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
+import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.latency.PatternLatencyTableView;
+import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.ConditionHelpers;
+import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IViewReference;
+import org.junit.Test;
+
+/**
+ * Test the pattern latency table
+ *
+ * @author Jean-Christian Kouame
+ */
+public class PatternLatencyTableViewTest extends PatternLatencyViewTestBase {
+
+    private static final String COLUMN_HEADER = "Name";
+    private static final String SYSTEM_CALL_PREFIX = "sys_";
+    private static final String VIEW_ID = PatternLatencyTableView.ID;
+    private static final String VIEW_TITLE = "Latency Table";
+    private PatternLatencyTableView fLatencyView;
+    private AbstractSegmentStoreTableViewer fTable;
+
+    /**
+     * Test the latency view data
+     */
+    @Test
+    public void testData() {
+        getTable();
+        SWTBotUtils.waitForJobs();
+        assertNotNull(fTable);
+
+        SWTBotTable tableBot = new SWTBotTable(fTable.getTableViewer().getTable());
+        fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
+        tableBot.header(COLUMN_HEADER).click();
+        fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
+        tableBot.header(COLUMN_HEADER).click();
+        fBot.waitUntil(ConditionHelpers.isTableCellFilled(tableBot, SYSTEM_CALL_PREFIX, 0, 3));
+    }
+
+    /**
+     * Get the table associated to the view
+     */
+    private void getTable() {
+        SWTBotView viewBot = fBot.viewById(VIEW_ID);
+        final IViewReference viewReference = viewBot.getViewReference();
+        IViewPart viewPart = UIThreadRunnable.syncExec(new Result<IViewPart>() {
+            @Override
+            public IViewPart run() {
+                return viewReference.getView(true);
+            }
+        });
+        assertNotNull(viewPart);
+        if (!(viewPart instanceof PatternLatencyTableView)) {
+            fail("Could not instanciate view");
+        }
+        fLatencyView = (PatternLatencyTableView) viewPart;
+        fTable = fLatencyView.getSegmentStoreViewer();
+        assertNotNull(fTable);
+    }
+
+    @Override
+    protected String getViewId() {
+        return VIEW_ID;
+    }
+
+    @Override
+    protected String getViewTitle() {
+        return VIEW_TITLE;
+    }
+}
This page took 0.02787 seconds and 5 git commands to generate.