From: Marc-Andre Laperle Date: Wed, 26 Oct 2016 15:01:45 +0000 (-0400) Subject: releng: ProjectExplorer tests stability improvement X-Git-Url: http://git.efficios.com/?p=deliverable%2Ftracecompass.git;a=commitdiff_plain;h=e4af2e9935d3cef9964a4476c88f1198e130cbcf releng: ProjectExplorer tests stability improvement Resuse code for testing events editor. It contains a workaround for loss of focus that was not applied in one of the classes. Change-Id: I68b70013060c23daad88cb13abf20c511032f057 Signed-off-by: Marc-Andre Laperle Reviewed-on: https://git.eclipse.org/r/83944 Reviewed-by: Matthew Khouzam Reviewed-by: Hudson CI --- diff --git a/ctf/org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/SWTBotImportWizardUtils.java b/ctf/org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/SWTBotImportWizardUtils.java index 4f571f8812..4ce2e3dd09 100644 --- a/ctf/org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/SWTBotImportWizardUtils.java +++ b/ctf/org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests/src/org/eclipse/tracecompass/tmf/ctf/ui/swtbot/tests/SWTBotImportWizardUtils.java @@ -247,10 +247,10 @@ public final class SWTBotImportWizardUtils { return; } - SWTBotTable table = editor.bot().table(); bot.waitUntil(new DefaultCondition() { @Override public boolean test() throws Exception { + SWTBotTable table = editor.bot().table(); return table.rowCount() > 1; } @@ -259,17 +259,20 @@ public final class SWTBotImportWizardUtils { return "No items in table"; } }); + SWTBotTable table = editor.bot().table(); // Select first event (skip filter/search row) table.getTableItem(1).select(); editor.bot().waitUntil(new DefaultCondition() { @Override public boolean test() throws Exception { - boolean ret = table.selection().rowCount() == 1 && table.selection().get(0).toString().contains(firstEventStr); + // Get the table again since it can get re-created + SWTBotTable curTable = editor.bot().table(); + boolean ret = curTable.selection().rowCount() == 1 && curTable.selection().get(0).toString().contains(firstEventStr); if (!ret) { // FIXME: Not sure why, sometimes the first select() ends up // selecting an empty item. Retry selecting here. - table.getTableItem(1).select(); + curTable.getTableItem(1).select(); } return ret; } diff --git a/releng/org.eclipse.tracecompass.alltests/META-INF/MANIFEST.MF b/releng/org.eclipse.tracecompass.alltests/META-INF/MANIFEST.MF index d37856544e..e3953783eb 100644 --- a/releng/org.eclipse.tracecompass.alltests/META-INF/MANIFEST.MF +++ b/releng/org.eclipse.tracecompass.alltests/META-INF/MANIFEST.MF @@ -41,7 +41,8 @@ Require-Bundle: org.junit;bundle-version="4.0.0", org.eclipse.tracecompass.tmf.remote.core.tests, org.eclipse.tracecompass.tmf.remote.ui.tests, org.eclipse.tracecompass.tmf.remote.ui.swtbot.tests, - org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests + org.eclipse.tracecompass.tmf.analysis.xml.ui.swtbot.tests, + org.eclipse.tracecompass.integration.swtbot.tests Export-Package: org.eclipse.tracecompass.alltests;x-internal:=true, org.eclipse.tracecompass.alltests.perf;x-internal:=true, org.eclipse.tracecompass.alltests.swtbot;x-internal:=true diff --git a/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTraceActionsTest.java b/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTraceActionsTest.java index 675d0a5795..672dff9afd 100644 --- a/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTraceActionsTest.java +++ b/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTraceActionsTest.java @@ -23,7 +23,6 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Path; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; -import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor; import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; @@ -32,11 +31,11 @@ import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; import org.eclipse.swtbot.swt.finder.waits.Conditions; import org.eclipse.swtbot.swt.finder.waits.DefaultCondition; import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; -import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable; import org.eclipse.swtbot.swt.finder.widgets.SWTBotText; import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem; import org.eclipse.tracecompass.tmf.core.parsers.custom.CustomTxtTraceDefinition; import org.eclipse.tracecompass.tmf.core.trace.TmfTraceManager; +import org.eclipse.tracecompass.tmf.ctf.ui.swtbot.tests.SWTBotImportWizardUtils; 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; @@ -167,7 +166,7 @@ public class ProjectExplorerTraceActionsTest { SWTBotTreeItem traceItem = SWTBotUtils.getTraceProjectItem(fBot, SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME), TRACE_NAME); traceItem.contextMenu().menu("Open").click(); - testEventsTable(TRACE_NAME); + SWTBotImportWizardUtils.testEventsTable(fBot, TRACE_NAME, CUSTOM_TEXT_LOG.getNbEvents(), CUSTOM_TEXT_LOG.getFirstEventTimestamp()); testStatisticsView(); fBot.closeAllEditors(); } @@ -192,7 +191,7 @@ public class ProjectExplorerTraceActionsTest { fBot.closeAllEditors(); SWTBotTreeItem copiedItem = SWTBotUtils.getTraceProjectItem(fBot, SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME), RENAMED_TRACE_NAME); copiedItem.contextMenu().menu("Open").click(); - testEventsTable(RENAMED_TRACE_NAME); + SWTBotImportWizardUtils.testEventsTable(fBot, RENAMED_TRACE_NAME, CUSTOM_TEXT_LOG.getNbEvents(), CUSTOM_TEXT_LOG.getFirstEventTimestamp()); fBot.closeAllEditors(); SWTBotUtils.clearTracesFolderUI(fBot, TRACE_PROJECT_NAME); } @@ -223,7 +222,7 @@ public class ProjectExplorerTraceActionsTest { SWTBotTreeItem copiedItem = SWTBotUtils.getTraceProjectItem(fBot, SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME), RENAMED_TRACE_NAME); copiedItem.contextMenu().menu("Open").click(); - testEventsTable(RENAMED_TRACE_NAME); + SWTBotImportWizardUtils.testEventsTable(fBot, RENAMED_TRACE_NAME, CUSTOM_TEXT_LOG.getNbEvents(), CUSTOM_TEXT_LOG.getFirstEventTimestamp()); fBot.closeAllEditors(); SWTBotUtils.clearTracesFolderUI(fBot, TRACE_PROJECT_NAME); } @@ -273,7 +272,7 @@ public class ProjectExplorerTraceActionsTest { traceItem.select(); fBot.activeShell().pressShortcut(Keystrokes.CR); - testEventsTable(TRACE_NAME); + SWTBotImportWizardUtils.testEventsTable(fBot, TRACE_NAME, CUSTOM_TEXT_LOG.getNbEvents(), CUSTOM_TEXT_LOG.getFirstEventTimestamp()); testStatisticsView(); fBot.closeAllEditors(); } @@ -320,7 +319,7 @@ public class ProjectExplorerTraceActionsTest { SWTBotTreeItem traceItem = SWTBotUtils.getTraceProjectItem(fBot, SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME), TRACE_NAME); traceItem.doubleClick(); - testEventsTable(TRACE_NAME); + SWTBotImportWizardUtils.testEventsTable(fBot, TRACE_NAME, CUSTOM_TEXT_LOG.getNbEvents(), CUSTOM_TEXT_LOG.getFirstEventTimestamp()); testStatisticsView(); fBot.closeAllEditors(); } @@ -367,38 +366,6 @@ public class ProjectExplorerTraceActionsTest { fBot.waitUntil(Conditions.shellCloses(shell)); } - private static void testEventsTable(String editorName) { - SWTBotEditor editor = SWTBotUtils.activeEventsEditor(fBot, editorName); - fBot.waitUntil(ConditionHelpers.numberOfEventsInTrace(TmfTraceManager.getInstance().getActiveTrace(), CUSTOM_TEXT_LOG.getNbEvents())); - - SWTBotTable table = editor.bot().table(); - fBot.waitUntil(new DefaultCondition() { - @Override - public boolean test() throws Exception { - return table.rowCount() > 1; - } - - @Override - public String getFailureMessage() { - return "No items in table"; - } - }); - // Select first event (skip filter/search row) - table.getTableItem(1).select(); - - editor.bot().waitUntil(new DefaultCondition() { - @Override - public boolean test() throws Exception { - return table.selection().rowCount() == 1 && table.selection().get(0).toString().contains(CUSTOM_TEXT_LOG.getFirstEventTimestamp()); - } - - @Override - public String getFailureMessage() { - return "First event not selected"; - } - }); - } - private static void testStatisticsView() { SWTBotUtils.openView(TmfStatisticsView.ID); SWTBotView view = fBot.viewById(TmfStatisticsView.ID); diff --git a/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTracesFolderTest.java b/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTracesFolderTest.java index 82fdcf1da4..fcf543775f 100644 --- a/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTracesFolderTest.java +++ b/releng/org.eclipse.tracecompass.integration.swtbot.tests/src/org/eclipse/tracecompass/integration/swtbot/tests/projectexplorer/ProjectExplorerTracesFolderTest.java @@ -176,6 +176,7 @@ public class ProjectExplorerTracesFolderTest { /* Finish waiting for eclipse to load */ WaitUtils.waitForJobs(); SWTBotUtils.createProject(TRACE_PROJECT_NAME); + importCustomParsers(); } /** @@ -196,7 +197,7 @@ public class ProjectExplorerTracesFolderTest { SWTBotUtils.closeSecondaryShells(fBot); } - private static void test3_00Preparation() { + private static void importCustomParsers() { // FIXME: We can't use Manage Custom Parsers > Import because it uses a native dialog. We'll still check that they show up in the dialog CustomTxtTraceDefinition[] txtDefinitions = CustomTxtTraceDefinition.loadAll(getPath("customParsers/ExampleCustomTxtParser.xml")); txtDefinitions[0].save(); @@ -230,8 +231,6 @@ public class ProjectExplorerTracesFolderTest { */ @Test public void test3_01ContextMenuPresence() { - test3_00Preparation(); - SWTBotTreeItem traceItem = SWTBotUtils.selectTracesFolder(fBot, TRACE_PROJECT_NAME); final List EXPECTED_MENU_LABELS = ImmutableList.of(