+ /**
+ * Test the filter
+ */
+ @Test
+ public void testFilter() {
+ /* change window range to 1 ms */
+ TmfTimeRange range = new TmfTimeRange(START_TIME, START_TIME.normalize(1000000L, ITmfTimestamp.NANOSECOND_SCALE));
+ TmfSignalManager.dispatchSignal(new TmfWindowRangeUpdatedSignal(this, range));
+ timeGraphIsReadyCondition(new TmfTimeRange(START_TIME, START_TIME));
+
+ SWTBotToolbarButton filterButton = fViewBot.toolbarButton("Show View Filters");
+ filterButton.click();
+ fBot.waitUntil(org.eclipse.swtbot.swt.finder.waits.Conditions.shellIsActive("Filter"));
+ SWTBot bot = fBot.activeShell().bot();
+ SWTBotTree treeBot = bot.tree();
+ TreeCheckedCounter treeCheckCounter = new TreeCheckedCounter(treeBot);
+ // get how many items there are
+ Integer checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals("default", 226, checked.intValue());
+ // test "uncheck all button"
+ bot.button(UNCHECK_ALL).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(0, checked.intValue());
+ // test check active
+ bot.button(CHECK_ACTIVE).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(CHECK_ACTIVE, 69, checked.intValue());
+ // test check all
+ bot.button(CHECK_ALL).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(CHECK_ALL, 226, checked.intValue());
+ // test uncheck inactive
+ bot.button(UNCHECK_INACTIVE).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(UNCHECK_INACTIVE, 69, checked.intValue());
+ // test check selected
+ treeBot.getTreeItem(LttngTraceGenerator.getName()).select("gnuplot");
+ bot.button(UNCHECK_ALL).click();
+ bot.button(CHECK_SELECTED).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(CHECK_SELECTED, 2, checked.intValue());
+ // test check subtree
+ bot.button(UNCHECK_ALL).click();
+ bot.button(CHECK_SUBTREE).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(CHECK_SUBTREE, 2, checked.intValue());
+ // test uncheck selected
+ bot.button(CHECK_ALL).click();
+ bot.button(UNCHECK_SELECTED).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(UNCHECK_SELECTED, 225, checked.intValue());
+ // test uncheck subtree
+ bot.button(CHECK_ALL).click();
+ bot.button(UNCHECK_SUBTREE).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(UNCHECK_SELECTED, 225, checked.intValue());
+ // test filter
+ bot.button(UNCHECK_ALL).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals(0, checked.intValue());
+ bot.text().setText("half-life 3");
+ SWTBotTreeItem treeItem = treeBot.getTreeItem(LttngTraceGenerator.getName());
+ treeItem.rowCount();
+ fBot.waitUntil(ConditionHelpers.treeItemCount(treeItem, 25));
+ bot.button(CHECK_ALL).click();
+ checked = UIThreadRunnable.syncExec(treeCheckCounter);
+ assertEquals("Filtered", 26, checked.intValue());
+ bot.button("OK").click();
+ treeBot = fViewBot.bot().tree();
+ treeItem = treeBot.getTreeItem(LttngTraceGenerator.getName());
+ for (int i = 0; i < 25; i++) {
+ assertEquals("Filtered Control flow view", "Half-life 3", treeItem.cell(i, 0));
+ }
+ }
+