From 17d840e993350cd2b3bc6b83f2feee0511a0eebb Mon Sep 17 00:00:00 2001 From: Sergey Skorik Date: Tue, 27 Feb 2018 17:01:06 +0200 Subject: [PATCH] Selenium: remove project state checking after workspace restarting from ProjectStateAfterRefreshTest test (#8930) --- .../ProjectStateAfterRefreshTest.java | 53 +++++----------- ...ProjectStateAfterWorkspaceRestartTest.java | 62 +++++++++++-------- 2 files changed, 49 insertions(+), 66 deletions(-) diff --git a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterRefreshTest.java b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterRefreshTest.java index ff85324f33..b68ece8720 100644 --- a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterRefreshTest.java +++ b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterRefreshTest.java @@ -10,8 +10,7 @@ */ package org.eclipse.che.selenium.workspaces; -import static org.eclipse.che.selenium.core.constant.TestMenuCommandsConstants.Workspace.STOP_WORKSPACE; -import static org.eclipse.che.selenium.core.constant.TestMenuCommandsConstants.Workspace.WORKSPACE; +import static org.eclipse.che.selenium.core.project.ProjectTemplates.MAVEN_SPRING; import static org.testng.Assert.fail; import com.google.inject.Inject; @@ -20,14 +19,11 @@ import java.nio.file.Paths; import org.eclipse.che.commons.lang.NameGenerator; import org.eclipse.che.selenium.core.SeleniumWebDriver; import org.eclipse.che.selenium.core.client.TestProjectServiceClient; -import org.eclipse.che.selenium.core.project.ProjectTemplates; import org.eclipse.che.selenium.core.workspace.TestWorkspace; import org.eclipse.che.selenium.pageobject.CodenvyEditor; import org.eclipse.che.selenium.pageobject.Consoles; import org.eclipse.che.selenium.pageobject.Ide; -import org.eclipse.che.selenium.pageobject.Menu; import org.eclipse.che.selenium.pageobject.ProjectExplorer; -import org.eclipse.che.selenium.pageobject.ToastLoader; import org.openqa.selenium.TimeoutException; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -42,8 +38,6 @@ public class ProjectStateAfterRefreshTest { @Inject private Consoles consoles; @Inject private CodenvyEditor editor; @Inject private TestProjectServiceClient testProjectServiceClient; - @Inject private Menu menu; - @Inject private ToastLoader toastLoader; @Inject private SeleniumWebDriver seleniumWebDriver; @BeforeClass @@ -51,42 +45,22 @@ public class ProjectStateAfterRefreshTest { URL resource = ProjectStateAfterRefreshTest.this.getClass().getResource("/projects/guess-project"); testProjectServiceClient.importProject( - workspace.getId(), - Paths.get(resource.toURI()), - PROJECT_NAME, - ProjectTemplates.MAVEN_SPRING); + workspace.getId(), Paths.get(resource.toURI()), PROJECT_NAME, MAVEN_SPRING); ide.open(workspace); } @Test - public void checkRestoreStateOfProjectAfterRefreshTest() throws Exception { + public void checkRestoreStateOfProjectAfterRefreshTest() { ide.waitOpenedWorkspaceIsReadyToUse(); projectExplorer.waitItem(PROJECT_NAME); projectExplorer.quickExpandWithJavaScript(); - consoles.closeProcessesArea(); + openFilesInEditor(); checkFilesAreOpened(); + seleniumWebDriver.navigate().refresh(); - try { - checkFilesAreOpened(); - } catch (TimeoutException ex) { - // Remove try-catch block after issue has been resolved - fail("Known issue https://github.com/eclipse/che/issues/7551"); - } - editor.closeAllTabsByContextMenu(); - } - - @Test(priority = 1) - public void checkRestoreStateAfterStoppingWorkspaceTest() throws Exception { - // check state project without snapshot - projectExplorer.waitProjectExplorer(); - projectExplorer.quickExpandWithJavaScript(); - openFilesInEditor(); - menu.runCommand(WORKSPACE, STOP_WORKSPACE); - toastLoader.waitToastLoaderIsOpen(); - toastLoader.waitExpectedTextInToastLoader("Workspace is not running"); - toastLoader.clickOnStartButton(); - projectExplorer.waitProjectExplorer(); + ide.waitOpenedWorkspaceIsReadyToUse(); + projectExplorer.waitItem(PROJECT_NAME); try { checkFilesAreOpened(); @@ -98,23 +72,23 @@ public class ProjectStateAfterRefreshTest { editor.closeAllTabsByContextMenu(); } - @Test(priority = 2) - public void checkRestoreStateOfProjectIfPomXmlFileOpened() throws Exception { - projectExplorer.waitProjectExplorer(); + @Test + public void checkRestoreStateOfProjectIfPomXmlFileOpened() { + ide.waitOpenedWorkspaceIsReadyToUse(); projectExplorer.waitItem(PROJECT_NAME); projectExplorer.selectItem(PROJECT_NAME); projectExplorer.quickExpandWithJavaScript(); + projectExplorer.waitItem(PROJECT_NAME + "/pom.xml"); projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF"); projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF/jsp"); projectExplorer.openItemByPath(PROJECT_NAME + "/pom.xml"); editor.waitActive(); - projectExplorer.waitProjectExplorer(); seleniumWebDriver.navigate().refresh(); - - projectExplorer.waitProjectExplorer(); + ide.waitOpenedWorkspaceIsReadyToUse(); projectExplorer.waitItem(PROJECT_NAME); + try { editor.waitTabIsPresent("qa-spring-sample"); } catch (TimeoutException ex) { @@ -124,6 +98,7 @@ public class ProjectStateAfterRefreshTest { projectExplorer.waitItem(PROJECT_NAME + "/pom.xml"); projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF"); projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF/jsp"); + editor.closeAllTabsByContextMenu(); } diff --git a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterWorkspaceRestartTest.java b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterWorkspaceRestartTest.java index 5707a88518..8cf1e0af6e 100644 --- a/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterWorkspaceRestartTest.java +++ b/selenium/che-selenium-test/src/test/java/org/eclipse/che/selenium/workspaces/ProjectStateAfterWorkspaceRestartTest.java @@ -13,6 +13,7 @@ package org.eclipse.che.selenium.workspaces; import static org.eclipse.che.selenium.core.constant.TestMenuCommandsConstants.Workspace.STOP_WORKSPACE; import static org.eclipse.che.selenium.core.constant.TestMenuCommandsConstants.Workspace.WORKSPACE; import static org.eclipse.che.selenium.core.project.ProjectTemplates.MAVEN_SPRING; +import static org.testng.Assert.fail; import com.google.inject.Inject; import java.net.URL; @@ -23,10 +24,10 @@ import org.eclipse.che.selenium.core.workspace.TestWorkspace; import org.eclipse.che.selenium.pageobject.CodenvyEditor; import org.eclipse.che.selenium.pageobject.Consoles; import org.eclipse.che.selenium.pageobject.Ide; -import org.eclipse.che.selenium.pageobject.Loader; import org.eclipse.che.selenium.pageobject.Menu; import org.eclipse.che.selenium.pageobject.ProjectExplorer; import org.eclipse.che.selenium.pageobject.ToastLoader; +import org.openqa.selenium.TimeoutException; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -35,12 +36,10 @@ public class ProjectStateAfterWorkspaceRestartTest { private static final String PROJECT_NAME = NameGenerator.generate("project", 4); private static final String EXP_TEXT_NOT_PRESENT = "@Override\n" + " public ModelAndView handleRequest"; - private boolean passedState = false; @Inject private TestWorkspace workspace; @Inject private Ide ide; @Inject private ProjectExplorer projectExplorer; - @Inject private Loader loader; @Inject private Consoles consoles; @Inject private ToastLoader toastLoader; @Inject private Menu menu; @@ -60,46 +59,55 @@ public class ProjectStateAfterWorkspaceRestartTest { @Test public void checkProjectAfterStopStartWs() { - // create workspace from dashboard ide.waitOpenedWorkspaceIsReadyToUse(); - projectExplorer.waitItem(PROJECT_NAME); - projectExplorer.selectItem(PROJECT_NAME); projectExplorer.quickExpandWithJavaScript(); - projectExplorer.openItemByPath(PROJECT_NAME + "/src/main/webapp/index.jsp"); - editor.waitActive(); - projectExplorer.openItemByPath( - PROJECT_NAME + "/src/main/java/org/eclipse/qa/examples/AppController.java"); - editor.waitActive(); - loader.waitOnClosed(); + + openFilesInEditor(); // stop and start workspace menu.runCommand(WORKSPACE, STOP_WORKSPACE); - loader.waitOnClosed(); toastLoader.waitToastLoaderIsOpen(); toastLoader.waitExpectedTextInToastLoader("Workspace is not running"); - loader.waitOnClosed(); consoles.closeProcessesArea(); editor.waitTabIsNotPresent("AppController"); editor.waitTabIsNotPresent("index.jsp"); - projectExplorer.waitProjectExplorer(); projectExplorer.waitDisappearItemByPath(PROJECT_NAME); - toastLoader.waitExpectedTextInToastLoader("Workspace is not running"); - toastLoader.clickOnStartButton(); - // check state of the project + toastLoader.clickOnStartButton(); ide.waitOpenedWorkspaceIsReadyToUse(); - toastLoader.waitToastLoaderIsClosed(); - loader.waitOnClosed(); - projectExplorer.waitItem(PROJECT_NAME); - projectExplorer.waitItem(PROJECT_NAME + "/src/main/java/org/eclipse/qa/examples"); - editor.waitTabIsPresent("AppController"); - editor.waitTabIsPresent("index.jsp"); - projectExplorer.waitItem( - PROJECT_NAME + "/src/main/java/org/eclipse/qa/examples/AppController.java"); - projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/index.jsp"); + + try { + // check state of the project + checkFilesAreOpened(); + } catch (TimeoutException ex) { + // Remove try-catch block after issue has been resolved + fail("Known issue https://github.com/eclipse/che/issues/7551"); + } + projectExplorer.openItemByPath(PROJECT_NAME + "/README.md"); editor.waitActive(); editor.waitTextNotPresentIntoEditor(EXP_TEXT_NOT_PRESENT); editor.waitTextIntoEditor("Developer Workspace"); } + + private void openFilesInEditor() { + projectExplorer.openItemByPath(PROJECT_NAME + "/src/main/webapp/index.jsp"); + editor.waitActive(); + projectExplorer.openItemByPath( + PROJECT_NAME + "/src/main/java/org/eclipse/qa/examples/AppController.java"); + editor.waitActive(); + projectExplorer.openItemByPath(PROJECT_NAME + "/pom.xml"); + editor.waitActive(); + } + + private void checkFilesAreOpened() { + projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF"); + projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/WEB-INF/jsp"); + projectExplorer.waitItem(PROJECT_NAME + "/src/main/webapp/index.jsp"); + projectExplorer.waitItem( + PROJECT_NAME + "/src/main/java/org/eclipse/qa/examples/AppController.java"); + editor.waitTabIsPresent("index.jsp"); + editor.waitTabIsPresent("AppController"); + editor.waitTabIsPresent("qa-spring-sample"); + } }