import org.eclipse.osgi.util.NLS;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotToolbarButton;
SWTBotTree treeBot = bot.tree();
bot.button(UNCHECK_ALL).click();
- TreeCheckedCounter treeCheckCounter = new TreeCheckedCounter(treeBot);
- Integer checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals("default", 0, checked.intValue());
+ int checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("default", 0, checked);
// select root nodes and their children
checkFilterTreeItems(bot, treeBot, SYSTEMD_PROCESS_NAME);
SWTBotTreeItem item = SWTBotUtils.getTreeItem(bot, treeBot, TRACE_NAME, process);
item.select();
bot.button(CHECK_SUBTREE).click();
- TreeCheckedCounter treeCheckCounter = new TreeCheckedCounter(treeBot);
- UIThreadRunnable.syncExec(treeCheckCounter);
+ SWTBotUtils.getTreeCheckedItemCount(treeBot);
}
private static void testProcessSorting(final SWTBotTree tree, final SWTBotTimeGraph timeGraph) {
import org.eclipse.swt.SWT;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.keyboard.Keyboard;
import org.eclipse.swtbot.swt.finder.keyboard.KeyboardFactory;
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());
+ int checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("default", 226, checked);
// test "uncheck all button"
bot.button(UNCHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(0, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
// test check active
bot.button(CHECK_ACTIVE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_ACTIVE, 69, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_ACTIVE, 69, checked);
// test check all
bot.button(CHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_ALL, 226, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_ALL, 226, checked);
// test uncheck inactive
bot.button(UNCHECK_INACTIVE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(UNCHECK_INACTIVE, 69, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_INACTIVE, 69, checked);
// 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());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_SELECTED, 2, checked);
// test check subtree
bot.button(UNCHECK_ALL).click();
bot.button(CHECK_SUBTREE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_SUBTREE, 2, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_SUBTREE, 2, checked);
// test uncheck selected
bot.button(CHECK_ALL).click();
bot.button(UNCHECK_SELECTED).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(UNCHECK_SELECTED, 225, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_SELECTED, 225, checked);
// test uncheck subtree
bot.button(CHECK_ALL).click();
bot.button(UNCHECK_SUBTREE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(UNCHECK_SELECTED, 225, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_SELECTED, 225, checked);
// test filter
bot.button(UNCHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(0, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
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());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("Filtered", 26, checked);
bot.button("OK").click();
SWTBotTimeGraph timeGraph = new SWTBotTimeGraph(getViewBot().bot());
SWTBotTimeGraphEntry traceEntry = timeGraph.getEntry(LttngTraceGenerator.getName());
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
-import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
-import org.eclipse.swtbot.swt.finder.results.Result;
import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.eclipse.tracecompass.ctf.core.tests.shared.LttngTraceGenerator;
import org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared.SWTBotUtils;
import org.eclipse.tracecompass.tmf.ui.tests.shared.WaitUtils;
fBot.closeAllEditors();
SWTBotUtils.closeSecondaryShells(fBot);
}
-
- /**
- * Class to check number of checked items
- */
- static final class TreeCheckedCounter implements Result<Integer> {
- private final SWTBotTree fTreeBot;
-
- TreeCheckedCounter(SWTBotTree treeBot) {
- fTreeBot = treeBot;
- }
-
- @Override
- public Integer run() {
- int checked = 0;
- for (TreeItem item : fTreeBot.widget.getItems()) {
- checked += getChecked(item);
- }
- return checked;
- }
-
- private int getChecked(TreeItem item) {
- int total = 0;
- if (item.getChecked()) {
- total++;
- }
- for (TreeItem child : item.getItems()) {
- total += getChecked(child);
- }
- return total;
- }
- }
}
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", 26, checked.intValue());
+ int checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("default", 26, checked);
// test "uncheck all button"
bot.button(UNCHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(0, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
// test check all
bot.button(CHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_ALL, 26, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_ALL, 26, checked);
// test uncheck inactive
treeBot.getTreeItem(LttngTraceGenerator.getName()).select("CPU 1");
bot.button(UNCHECK_ALL).click();
bot.button(CHECK_SELECTED).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_SELECTED, 2, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_SELECTED, 2, checked);
// test check subtree
bot.button(UNCHECK_ALL).click();
bot.button(CHECK_SUBTREE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(CHECK_SUBTREE, 2, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_SUBTREE, 2, checked);
// test uncheck selected
bot.button(CHECK_ALL).click();
bot.button(UNCHECK_SELECTED).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(UNCHECK_SELECTED, 25, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_SELECTED, 25, checked);
// test uncheck subtree
bot.button(CHECK_ALL).click();
bot.button(UNCHECK_SUBTREE).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(UNCHECK_SELECTED, 25, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_SELECTED, 25, checked);
// test filter
bot.button(UNCHECK_ALL).click();
- checked = UIThreadRunnable.syncExec(treeCheckCounter);
- assertEquals(0, checked.intValue());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
bot.text().setText("CPU 2");
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());
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("Filtered", 26, checked);
bot.button("OK").click();
}
org.eclipse.tracecompass.tmf.ui.swtbot.tests.perf.views,
org.eclipse.tracecompass.tmf.ui.swtbot.tests.perspectives;x-internal:=true,
org.eclipse.tracecompass.tmf.ui.swtbot.tests.shared,
+ org.eclipse.tracecompass.tmf.ui.swtbot.tests.tracetype.preferences,
org.eclipse.tracecompass.tmf.ui.swtbot.tests.viewers.events;x-internal:=true,
org.eclipse.tracecompass.tmf.ui.swtbot.tests.wizards;x-internal:=true
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.matchers.WidgetMatcherFactory;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable;
import org.eclipse.swtbot.swt.finder.keyboard.Keyboard;
import org.eclipse.swtbot.swt.finder.keyboard.Keystrokes;
+import org.eclipse.swtbot.swt.finder.results.IntResult;
import org.eclipse.swtbot.swt.finder.results.Result;
import org.eclipse.swtbot.swt.finder.results.VoidResult;
import org.eclipse.swtbot.swt.finder.utils.MessageFormat;
fail(e.getMessage());
}
}
+
+ /**
+ * Get the number of checked items of a tree
+ *
+ * @param tree
+ * The tree bot
+ * @return The number of checked items
+ */
+ public static int getTreeCheckedItemCount(SWTBotTree tree) {
+ return UIThreadRunnable.syncExec(new IntResult() {
+
+ @Override
+ public Integer run() {
+ int checked = 0;
+ for (TreeItem item : tree.widget.getItems()) {
+ checked += getChecked(item);
+ }
+ return checked;
+ }
+
+ private int getChecked(TreeItem item) {
+ int total = 0;
+ if (item.getChecked()) {
+ total++;
+ }
+ for (TreeItem child : item.getItems()) {
+ total += getChecked(child);
+ }
+ return total;
+ }
+ });
+ }
}
--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2017 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.ui.swtbot.tests.tracetype.preferences;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.junit.Assume.assumeTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.List;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.Logger;
+import org.apache.log4j.SimpleLayout;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences;
+import org.eclipse.swtbot.swt.finder.waits.Conditions;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCombo;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.tracecompass.tmf.core.project.model.TmfTraceType;
+import org.eclipse.tracecompass.tmf.core.tests.TmfCoreTestPlugin;
+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.tests.shared.WaitUtils;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * SWTBot test for the trace type preference page
+ *
+ * @author Jean-Christian Kouame
+ *
+ */
+@RunWith(SWTBotJunit4ClassRunner.class)
+public class TraceTypePreferencePageTest {
+
+ private static final @NonNull String CHECK_SELECTED = "Check selected";
+ private static final @NonNull String CHECK_ALL = "Check all";
+ private static final @NonNull String UNCHECK_SELECTED = "Uncheck selected";
+ private static final @NonNull String UNCHECK_ALL = "Uncheck all";
+ /** The Log4j logger instance. */
+ private static final Logger fLogger = Logger.getRootLogger();
+ private static final String TRACE_PATH = "testfiles/syslog_collapse";
+
+ /** LTTng kernel trace type */
+ protected static final String KERNEL_TRACE_TYPE = "org.eclipse.linuxtools.lttng2.kernel.tracetype";
+ /** LTTng kernel perspective */
+ protected static final String KERNEL_PERSPECTIVE_ID = "org.eclipse.linuxtools.lttng2.kernel.ui.perspective";
+ /** Default project name */
+ protected static final String TRACE_PROJECT_NAME = "test";
+
+ private static SWTWorkbenchBot fBot;
+
+ /**
+ * Before Class
+ */
+ @BeforeClass
+ public static void beforeClass() {
+ SWTBotUtils.initialize();
+
+ /* set up for swtbot */
+ SWTBotPreferences.TIMEOUT = 20000; /* 20 second timeout */
+ SWTBotPreferences.KEYBOARD_LAYOUT = "EN_US";
+ fLogger.removeAllAppenders();
+ fLogger.addAppender(new ConsoleAppender(new SimpleLayout(), ConsoleAppender.SYSTEM_OUT));
+ fBot = new SWTWorkbenchBot();
+ SWTBotUtils.closeView("welcome", fBot);
+ /* Switch perspectives */
+ SWTBotUtils.switchToTracingPerspective();
+ /* Create the trace project */
+ SWTBotUtils.createProject(TRACE_PROJECT_NAME);
+ /* Finish waiting for eclipse to load */
+ WaitUtils.waitForJobs();
+
+ /* set up test trace */
+ setUpTrace();
+
+ }
+
+ private static void setUpTrace() {
+ URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(TRACE_PATH), null);
+ URI uri;
+ try {
+ uri = FileLocator.toFileURL(location).toURI();
+ File testFile = new File(uri);
+ SWTBotUtils.openTrace(TRACE_PROJECT_NAME, testFile.getAbsolutePath(), KERNEL_TRACE_TYPE);
+ assertNotNull(testFile);
+ assumeTrue(testFile.exists());
+ } catch (URISyntaxException | IOException e) {
+ fail("Failed to open the trace");
+ }
+ }
+
+ /**
+ * Before method to reset the preference values
+ */
+ @Before
+ public void before() {
+ setTraceTypePreferences(CHECK_ALL);
+ }
+
+ /**
+ * After Class
+ */
+ @AfterClass
+ public static void afterClass() {
+ SWTBotUtils.deleteProject(TRACE_PROJECT_NAME, fBot);
+ fBot.closeAllEditors();
+ fLogger.removeAllAppenders();
+ }
+
+ /**
+ * Test the filter
+ */
+ @Test
+ public void testPreferencePage() {
+ openTraceTypePreferences();
+ SWTBot bot = fBot.activeShell().bot();
+ SWTBotTree treeBot = bot.tree(1);
+ //get default count
+ bot.button(CHECK_ALL).click();
+ int defaultCount = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ // test "uncheck all button"
+ bot.button(UNCHECK_ALL).click();
+ int checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
+ // test check all
+ bot.button(CHECK_ALL).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_ALL, defaultCount, checked);
+ // test check selected
+ treeBot.getTreeItem("Custom XML").select();
+ bot.button(UNCHECK_ALL).click();
+ bot.button(CHECK_SELECTED).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(CHECK_SELECTED, 2, checked);
+ // test uncheck selected
+ bot.button(CHECK_ALL).click();
+ bot.button(UNCHECK_SELECTED).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(UNCHECK_SELECTED, defaultCount - 2, checked);
+ // test filter
+ bot.button(UNCHECK_ALL).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals(0, checked);
+ bot.text(1).setText("Custom XML");
+ WaitUtils.waitUntil(tree -> tree.visibleRowCount() == 2, treeBot, "Visible row count: Default expected 2, but actual value is " + treeBot.visibleRowCount());
+ assertEquals("Filtered no checked", 0, checked);
+ bot.button(CHECK_ALL).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("Filtered check all", 2, checked);
+ bot.text(1).setText("");
+ WaitUtils.waitUntil(tree -> tree.visibleRowCount() == defaultCount, treeBot, "Visible row count: Default expected " + defaultCount +", but actual value is " + treeBot.visibleRowCount());
+ bot.button(CHECK_ALL).click();
+ checked = SWTBotUtils.getTreeCheckedItemCount(treeBot);
+ assertEquals("Filtered removed all check", defaultCount, checked);
+ bot.button("Apply").click();
+ bot.button("OK").click();
+ }
+
+ /**
+ * Test the select trace type menu
+ */
+ @Test
+ public void testSelectTraceType() {
+ List<String> menuItems = getSelectTraceTypeMenuItems();
+ String categories[] = new String[] {
+ "Custom Text",
+ "Custom XML",
+ "Test trace",
+ "",
+ "Manage Custom Parsers..."
+ };
+ assertArrayEquals("Test all categories enabled", categories, menuItems.toArray());
+
+ //Change the preference values and test the 'Select Trace Type...' options
+ setTraceTypePreferences(UNCHECK_ALL, "Custom Text");
+ menuItems = getSelectTraceTypeMenuItems();
+ categories = new String[] {
+ "Custom Text",
+ "Test trace",
+ "",
+ "Manage Custom Parsers..."
+ };
+ assertArrayEquals("Test 1 category enabled", categories, menuItems.toArray());
+
+ setTraceTypePreferences(CHECK_ALL);
+ }
+
+ /**
+ * Test the import trace's trace type combo
+ */
+ @Test
+ public void testImportTraceTypeOptions() {
+ int defaultCount = TmfTraceType.getAvailableTraceTypes().length;
+
+ setTraceTypePreferences(UNCHECK_ALL, "Custom Text", "testtxtextension");
+ String[] traceTypeComboItems = getTraceTypeComboItems();
+ String[] availableTraceTypes = new String[] {
+ "<Automatic Detection>",
+ "Custom Text : testtxtextension"
+ };
+ assertArrayEquals("Test one trace type enabled", availableTraceTypes, traceTypeComboItems);
+
+ setTraceTypePreferences(CHECK_ALL);
+ traceTypeComboItems = getTraceTypeComboItems();
+ assertEquals("Test all trace type enabled", defaultCount + 1, traceTypeComboItems.length);
+ }
+
+ private static void setTraceTypePreferences(@NonNull String button, @NonNull String... pathToCheck) {
+ openTraceTypePreferences();
+ SWTBot bot = fBot.activeShell().bot();
+ SWTBotTree treeBot = bot.tree(1);
+ if (!button.isEmpty()) {
+ bot.button(button).click();
+ }
+
+ if (pathToCheck.length > 0) {
+ SWTBotTreeItem treeItem = treeBot.expandNode(pathToCheck);
+ assertNotNull("Tree item not null", treeItem);
+ treeItem.select();
+ bot.button(CHECK_SELECTED).click();
+ }
+ bot.button("Apply").click();
+ bot.button("OK").click();
+ }
+
+ private static List<String> getSelectTraceTypeMenuItems() {
+ SWTBotTreeItem tracesFolder = SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME);
+ tracesFolder.expand();
+ SWTBotTreeItem trace = tracesFolder.getNode("syslog_collapse");
+ trace.select();
+ List<String> menuItems = trace.contextMenu().menu("Select Trace Type...").menuItems();
+ return menuItems;
+ }
+
+ private static void openTraceTypePreferences() {
+ SWTBotShell preferencesShell = SWTBotUtils.openPreferences(fBot);
+ SWTBot bot = preferencesShell.bot();
+ SWTBotTree tree = bot.tree(0);
+ SWTBotTreeItem treeNode = tree.getTreeItem("Tracing");
+ treeNode.select();
+ treeNode.expand();
+ bot.waitUntil(ConditionHelpers.IsTreeChildNodeAvailable("Trace Types", treeNode));
+ treeNode = treeNode.getNode("Trace Types");
+ treeNode.select();
+ }
+
+ private static String[] getTraceTypeComboItems() {
+ SWTBotTreeItem tracesFolder = SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME);
+ SWTBotMenu menu = tracesFolder.contextMenu().menu("Import...");
+ menu.click();
+ fBot.waitUntil(Conditions.shellIsActive("Trace Import"));
+ SWTBot bot = fBot.activeShell().bot();
+ SWTBotCombo combo = bot.comboBox(2);
+ String[] items = combo.items();
+ bot.button("Cancel").click();
+ return items;
+ }
+}