< prev index next >

application/uitests/org.openjdk.jmc.flightrecorder.uitest/src/test/java/org/openjdk/jmc/flightrecorder/uitest/JfrThreadsPageTest.java

Print this page

        

@@ -39,42 +39,84 @@
 import org.openjdk.jmc.test.jemmy.MCJemmyTestBase;
 import org.openjdk.jmc.test.jemmy.MCUITestRule;
 import org.openjdk.jmc.test.jemmy.misc.wrappers.MCChartCanvas;
 import org.openjdk.jmc.test.jemmy.misc.wrappers.JfrNavigator;
 import org.openjdk.jmc.test.jemmy.misc.wrappers.JfrUi;
+import org.openjdk.jmc.test.jemmy.misc.wrappers.MCButton;
 import org.openjdk.jmc.test.jemmy.misc.wrappers.MCMenu;
 import org.openjdk.jmc.test.jemmy.misc.wrappers.MCTable;
+import org.openjdk.jmc.test.jemmy.misc.wrappers.MCText;
+import org.openjdk.jmc.test.jemmy.misc.wrappers.MCToolBar;
+import org.openjdk.jmc.ui.UIPlugin;
 
 public class JfrThreadsPageTest extends MCJemmyTestBase {
 
         private static final String PLAIN_JFR = "plain_recording.jfr";
         private static final String TABLE_COLUMN_HEADER = "Thread";
+        private static final String OK_BUTTON = "OK";
+        private static final String RESET_BUTTON = "Reset";
+        private static final String FILTER_BUTTON = "Filter";
+        private static final String START_TIME = "08:06:19:489";
+        private static final String NEW_START_TIME = "08:06:19:500";
+        private static final String DEFAULT_ZOOM = "100.00 %";
         private static final String HIDE_THREAD = org.openjdk.jmc.flightrecorder.ui.messages.internal.Messages.ThreadsPage_HIDE_THREAD_ACTION;
         private static final String RESET_CHART = org.openjdk.jmc.flightrecorder.ui.messages.internal.Messages.ThreadsPage_RESET_CHART_TO_SELECTION_ACTION;
+        private static final String TABLE_TOOLTIP = org.openjdk.jmc.flightrecorder.ui.messages.internal.Messages.ThreadsPage_VIEW_THREAD_DETAILS;
+        private static final String TABLE_SHELL_TEXT = org.openjdk.jmc.flightrecorder.ui.messages.internal.Messages.ThreadsPage_TABLE_POPUP_TITLE;
 
         private static MCChartCanvas chartCanvas;
         private static MCTable threadsTable;
 
         @Rule
         public MCUITestRule testRule = new MCUITestRule(verboseRuleOutput) {
                 @Override
                 public void before() {
                         JfrUi.openJfr(materialize("jfr", PLAIN_JFR, JfrThreadsPageTest.class));
                         JfrNavigator.selectTab(JfrUi.Tabs.THREADS);
-                        threadsTable = MCTable.getByColumnHeader(TABLE_COLUMN_HEADER);
                         chartCanvas = MCChartCanvas.getChartCanvas();
                 }
 
                 @Override
                 public void after() {
                         MCMenu.closeActiveEditor();
                 }
         };
 
         @Test
+        public void testResetButtons() {
+                MCText StartTimeField = MCText.getByText(START_TIME);
+                MCText zoomDisplay = MCText.getByText(DEFAULT_ZOOM);
+                MCButton filterBtn = MCButton.getByLabel(FILTER_BUTTON);
+                MCButton resetBtn = MCButton.getByLabel(RESET_BUTTON);
+                MCButton scaleToFitBtn = MCButton.getByImage(
+                                UIPlugin.getDefault().getImage(UIPlugin.ICON_FA_SCALE_TO_FIT));
+
+                StartTimeField.setText(NEW_START_TIME);
+                filterBtn.click();
+                Assert.assertNotEquals(START_TIME, StartTimeField.getText());
+                Assert.assertNotEquals(zoomDisplay.getText(), DEFAULT_ZOOM);
+
+                resetBtn.click();
+                Assert.assertEquals(START_TIME, StartTimeField.getText());
+                Assert.assertEquals(zoomDisplay.getText(), DEFAULT_ZOOM);
+
+                StartTimeField.setText(NEW_START_TIME);
+                filterBtn.click();
+                Assert.assertNotEquals(START_TIME, StartTimeField.getText());
+                Assert.assertNotEquals(zoomDisplay.getText(), DEFAULT_ZOOM);
+
+                scaleToFitBtn.click();
+                Assert.assertEquals(zoomDisplay.getText(), DEFAULT_ZOOM);
+                Assert.assertEquals(START_TIME, StartTimeField.getText());
+        }
+
+        @Test
         public void testMenuItemEnablement() {
+                openThreadsTable();
                 final int numThreads = threadsTable.getItemCount();
+                closeThreadsTable();
+
                 Assert.assertTrue(numThreads > 0);
 
                 Assert.assertFalse(chartCanvas.isContextMenuItemEnabled(RESET_CHART));
                 Assert.assertTrue(chartCanvas.isContextMenuItemEnabled(HIDE_THREAD));
 

@@ -90,17 +132,23 @@
         }
 
         @Test
         public void testHideAllThreads() {
                 final int numSelection = 7;
+
+                openThreadsTable();
                 final int numThreads = threadsTable.getItemCount();
+                closeThreadsTable();
+
                 Assert.assertTrue(numThreads > 0 && numThreads >= numSelection);
                 Assert.assertTrue(chartCanvas.isContextMenuItemEnabled(HIDE_THREAD));
                 Assert.assertFalse(chartCanvas.isContextMenuItemEnabled(RESET_CHART));
 
+                openThreadsTable();
                 // Select a limited number of threads in the chart using the table
                 threadsTable.selectItems(0, numSelection - 1);
+                closeThreadsTable();
 
                 // Hide all the threads from the chart
                 for (int i = 0; i < numSelection; i++) {
                         chartCanvas.clickContextMenuItem(HIDE_THREAD);
                 }

@@ -113,7 +161,43 @@
 
                 // Verify the menu item isEnabled values are back to their default values
                 Assert.assertTrue(chartCanvas.isContextMenuItemEnabled(HIDE_THREAD));
                 Assert.assertFalse(chartCanvas.isContextMenuItemEnabled(RESET_CHART));
         }
-}
 
+        @Test
+        public void testPopupTableSelection() {
+                openThreadsTable();
+                final int numSelection = 7;
+                final int numThreads = threadsTable.getItemCount();
+                Assert.assertTrue(numThreads > 0 && numThreads >= numSelection);
+
+                threadsTable.selectItems(0, numSelection - 1);
+                int originalSelection = threadsTable.getSelectionCount();
+                Assert.assertEquals(numSelection, originalSelection);
+                closeThreadsTable();
+
+                openThreadsTable();
+                int newSelection = threadsTable.getSelectionCount();
+                Assert.assertEquals(newSelection, originalSelection);
+                closeThreadsTable();
+        }
+
+        private void openThreadsTable() {
+                if (threadsTable == null) {
+                        MCToolBar.focusMc();
+                        MCToolBar tb = MCToolBar.getByToolTip(TABLE_TOOLTIP);
+                        tb.clickToolItem(TABLE_TOOLTIP);
+                        threadsTable = MCTable.getByColumnHeader(TABLE_SHELL_TEXT, TABLE_COLUMN_HEADER);
+                }
+        }
+
+        private void closeThreadsTable() {
+                if (threadsTable != null) {
+                        MCButton okButton = MCButton.getByLabel(TABLE_SHELL_TEXT, OK_BUTTON);
+                        okButton.click();
+                        threadsTable = null;
+                        MCToolBar.focusMc();
+                }
+        }
+
+}
< prev index next >