Selenium: cover workspace creation from CentOS stacks by selenium tests (#10255)
parent
f7f0c860b4
commit
14e3048d77
|
|
@ -15,6 +15,6 @@ public class TestBuildConstants {
|
|||
public static final String BUILD_SUCCESS = "[INFO] BUILD SUCCESS";
|
||||
public static final String BUILD_FAILED = "[INFO] BUILD FAILURE";
|
||||
public static final String SERVER_STARTUP_IN = "Server startup in";
|
||||
public static final String LISTENING_AT_ADDRESS_8000 =
|
||||
"Listening for transport dt_socket at address: 8000";
|
||||
public static final String LISTENING_AT_ADDRESS = "Listening for transport dt_socket at address";
|
||||
public static final String LISTENING_AT_ADDRESS_8000 = LISTENING_AT_ADDRESS + ": 8000";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ public interface TestCommandsConstants {
|
|||
String GWT = "gwt";
|
||||
String RUN_COMMAND = "run";
|
||||
String BUILD_COMMAND = "build";
|
||||
String CLEAN_BUILD_COMMAND = "clean build";
|
||||
String DEBUG_COMMAND = "debug";
|
||||
String BUILD_AND_RUN_COMMAND = "build and run";
|
||||
String STOP_TOMCAT_COMMAND = "stop tomcat";
|
||||
|
|
|
|||
|
|
@ -24,9 +24,11 @@ public final class TestIntelligentCommandsConstants {
|
|||
RUN_COMMAND_ITEM("%s:run"),
|
||||
BUILD_COMMAND_ITEM("%s:build"),
|
||||
BUILD_AND_RUN_COMMAND_ITEM("%s:build and run"),
|
||||
BUILD_AND_DEPLOY_COMMAND_ITEM("%s:build and deploy"),
|
||||
STOP_TOMCAT_COMMAND_ITEM("%s:stop tomcat"),
|
||||
RUN_TOMCAT_COMMAND_ITEM("%s:run tomcat"),
|
||||
DEBUG_COMMAND_ITEM("%s:debug");
|
||||
DEBUG_COMMAND_ITEM("%s:debug"),
|
||||
INSTALL_DEPENDENCIES_COMMAND_ITEM("%s:install dependencies");
|
||||
|
||||
private final String itemTemplate;
|
||||
|
||||
|
|
|
|||
|
|
@ -480,6 +480,15 @@ public class Consoles {
|
|||
.click();
|
||||
}
|
||||
|
||||
public void executeCommandFromProcessesArea(
|
||||
String machineName,
|
||||
ContextMenuCommandGoals commandGoal,
|
||||
String commandName,
|
||||
String expectedMessageInConsole) {
|
||||
startCommandFromProcessesArea(machineName, commandGoal, commandName);
|
||||
waitExpectedTextIntoConsole(expectedMessageInConsole);
|
||||
}
|
||||
|
||||
public void startTerminalFromProcessesArea(String machineName) {
|
||||
WebElement machine =
|
||||
redrawDriverWait.until(
|
||||
|
|
|
|||
|
|
@ -76,9 +76,13 @@ public class Ide {
|
|||
}
|
||||
|
||||
public String switchToIdeAndWaitWorkspaceIsReadyToUse() {
|
||||
return switchToIdeAndWaitWorkspaceIsReadyToUse(APPLICATION_START_TIMEOUT_SEC);
|
||||
}
|
||||
|
||||
public String switchToIdeAndWaitWorkspaceIsReadyToUse(int timeoutInSec) {
|
||||
String currentWindow = seleniumWebDriverHelper.switchToIdeFrameAndWaitAvailability();
|
||||
toastLoader.waitToastLoaderAndClickStartButton();
|
||||
waitOpenedWorkspaceIsReadyToUse(APPLICATION_START_TIMEOUT_SEC);
|
||||
waitOpenedWorkspaceIsReadyToUse(timeoutInSec);
|
||||
|
||||
return currentWindow;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.BUILD_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.RUN_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.ANDROID;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromAndroidStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String MOBILE_ANDROID_HELLO_WORLD = "mobile-android-hello-world";
|
||||
private static final String MOBILE_ANDROID_SIMPLE = "mobile-android-simple";
|
||||
|
||||
private List<String> projects =
|
||||
ImmutableList.of(MOBILE_ANDROID_HELLO_WORLD, MOBILE_ANDROID_SIMPLE);
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromAndroidStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(ANDROID, WORKSPACE_NAME, projects);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(MOBILE_ANDROID_HELLO_WORLD);
|
||||
projectExplorer.waitProjectInitialization(MOBILE_ANDROID_SIMPLE);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkMobileAndroidHelloWorldProjectCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
MOBILE_ANDROID_HELLO_WORLD, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
MOBILE_ANDROID_HELLO_WORLD,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(MOBILE_ANDROID_HELLO_WORLD),
|
||||
BUILD_SUCCESS);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkMobileAndroidSimpleProjectCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
MOBILE_ANDROID_SIMPLE,
|
||||
RUN_GOAL,
|
||||
BUILD_COMMAND_ITEM.getItem(MOBILE_ANDROID_SIMPLE),
|
||||
BUILD_SUCCESS);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,44 +11,32 @@
|
|||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.pageobject.ProjectExplorer.FolderTypes.PROJECT_FOLDER;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.BLANK;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.core.webdriver.SeleniumWebDriverHelper;
|
||||
import org.eclipse.che.selenium.pageobject.CodenvyEditor;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.MavenPluginStatusBar;
|
||||
import org.eclipse.che.selenium.pageobject.NotificationsPopupPanel;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.ToastLoader;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.ProjectSourcePage;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.workspaces.Workspaces;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromBlankStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String PROJECT_NAME = "blank-project";
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private CodenvyEditor editor;
|
||||
@Inject private Workspaces workspaces;
|
||||
@Inject private ToastLoader toastLoader;
|
||||
@Inject private NewWorkspace newWorkspace;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private ProjectSourcePage projectSourcePage;
|
||||
@Inject private MavenPluginStatusBar mavenPluginStatusBar;
|
||||
@Inject private NotificationsPopupPanel notificationsPopupPanel;
|
||||
@Inject private SeleniumWebDriverHelper seleniumWebDriverHelper;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
|
|
@ -63,46 +51,18 @@ public class CreateWorkspaceFromBlankStackTest {
|
|||
|
||||
@Test
|
||||
public void createWorkspaceFromBlankStackTest() {
|
||||
createWorkspaceWithProjectFromStack(BLANK, WORKSPACE_NAME, PROJECT_NAME);
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProject(BLANK, WORKSPACE_NAME, PROJECT_NAME);
|
||||
|
||||
switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
waitProjectInitialization(PROJECT_NAME);
|
||||
projectExplorer.waitProjectInitialization(PROJECT_NAME);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkBlankProjectCommands() {
|
||||
projectExplorer.openItemByPath(PROJECT_NAME);
|
||||
projectExplorer.openItemByPath(PROJECT_NAME + "/README.md");
|
||||
editor.waitActive();
|
||||
editor.waitTabIsPresent("README.md");
|
||||
}
|
||||
|
||||
private void createWorkspaceWithProjectFromStack(
|
||||
NewWorkspace.Stack stack, String workspaceName, String projectName) {
|
||||
dashboard.waitDashboardToolbarTitle();
|
||||
dashboard.selectWorkspacesItemOnDashboard();
|
||||
workspaces.clickOnAddWorkspaceBtn();
|
||||
newWorkspace.waitToolbar();
|
||||
|
||||
newWorkspace.clickOnAllStacksTab();
|
||||
newWorkspace.selectStack(stack);
|
||||
newWorkspace.typeWorkspaceName(workspaceName);
|
||||
projectSourcePage.clickOnAddOrImportProjectButton();
|
||||
projectSourcePage.selectSample(projectName);
|
||||
projectSourcePage.clickOnAddProjectButton();
|
||||
|
||||
newWorkspace.clickOnCreateButtonAndOpenInIDE();
|
||||
}
|
||||
|
||||
private void switchToIdeAndWaitWorkspaceIsReadyToUse() {
|
||||
seleniumWebDriverHelper.switchToIdeFrameAndWaitAvailability();
|
||||
toastLoader.waitToastLoaderAndClickStartButton();
|
||||
ide.waitOpenedWorkspaceIsReadyToUse();
|
||||
}
|
||||
|
||||
private void waitProjectInitialization(String projectName) {
|
||||
projectExplorer.waitItem(projectName);
|
||||
notificationsPopupPanel.waitPopupPanelsAreClosed();
|
||||
mavenPluginStatusBar.waitClosingInfoPanel();
|
||||
projectExplorer.waitDefinedTypeOfFolder(projectName, PROJECT_FOLDER);
|
||||
notificationsPopupPanel.waitPopupPanelsAreClosed();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.CENTOS_BLANK;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.CodenvyEditor;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromCentosBlankStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String PROJECT_NAME = "blank-project";
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private CodenvyEditor editor;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWorkspaceFromCentosBlankStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProject(
|
||||
CENTOS_BLANK, WORKSPACE_NAME, PROJECT_NAME);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(PROJECT_NAME);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkBlankProjectCommands() {
|
||||
projectExplorer.openItemByPath(PROJECT_NAME);
|
||||
projectExplorer.openItemByPath(PROJECT_NAME + "/README.md");
|
||||
editor.waitActive();
|
||||
editor.waitTabIsPresent("README.md");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.RUN_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.RUN_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.CENTOS_GO;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromCentosGoStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String DESKTOP_GO_PROJECT = "desktop-go-simple";
|
||||
private static final String WEB_GO_PROJECT = "web-go-simple";
|
||||
|
||||
private List<String> projects = ImmutableList.of(DESKTOP_GO_PROJECT, WEB_GO_PROJECT);
|
||||
private By textOnPreviewPage = By.xpath("//pre[contains(text(),'Hello there')]");
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromCentosGoStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(CENTOS_GO, WORKSPACE_NAME, projects);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(DESKTOP_GO_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(WEB_GO_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkDesktopGoSimpleProjectCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
DESKTOP_GO_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(DESKTOP_GO_PROJECT),
|
||||
"Hello, world. Sqrt(2) = 1.4142135623730951");
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWebGoSimpleProjectCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_GO_PROJECT, RUN_GOAL, RUN_COMMAND, "listening on");
|
||||
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_GO_PROJECT, RUN_GOAL, RUN_COMMAND_ITEM.getItem(WEB_GO_PROJECT), "listening on");
|
||||
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND_ITEM.getItem(WEB_GO_PROJECT));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.INSTALL_DEPENDENCIES_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.RUN_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.CENTOS_NODEJS;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromCentosNodeStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String ANGULAR_PROJECT = "angular-patternfly-starter";
|
||||
private static final String NODE_JS_PROJECT = "nodejs-hello-world";
|
||||
private static final String WEB_NODE_JS_PROJECT = "web-nodejs-simple";
|
||||
|
||||
private List<String> projects =
|
||||
ImmutableList.of(ANGULAR_PROJECT, NODE_JS_PROJECT, WEB_NODE_JS_PROJECT);
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromCentosNodeStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(
|
||||
CENTOS_NODEJS, WORKSPACE_NAME, projects);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(ANGULAR_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(NODE_JS_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(WEB_NODE_JS_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkAngularPatternfyStarterProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//span[text()='UNIFIED MANAGEMENT EXPERIENCE']");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
ANGULAR_PROJECT,
|
||||
BUILD_GOAL,
|
||||
INSTALL_DEPENDENCIES_COMMAND_ITEM.getItem(ANGULAR_PROJECT),
|
||||
"bower_components/font-awesome");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
ANGULAR_PROJECT, RUN_GOAL, RUN_COMMAND_ITEM.getItem(ANGULAR_PROJECT), "Waiting...");
|
||||
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND_ITEM.getItem(ANGULAR_PROJECT));
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkNodejsHelloWorldProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//*[text()='Hello World!']");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
NODE_JS_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(NODE_JS_PROJECT),
|
||||
"Example app listening on port 3000!");
|
||||
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND_ITEM.getItem(NODE_JS_PROJECT));
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWebNodejsSimpleProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//p[text()=' from the Yeoman team']");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_NODE_JS_PROJECT,
|
||||
BUILD_GOAL,
|
||||
INSTALL_DEPENDENCIES_COMMAND_ITEM.getItem(WEB_NODE_JS_PROJECT),
|
||||
"bower_components/angular");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_NODE_JS_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(WEB_NODE_JS_PROJECT),
|
||||
"Started connect web server");
|
||||
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND_ITEM.getItem(WEB_NODE_JS_PROJECT));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.RUN_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.CENTOS_WILDFLY_SWARM;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromCentosWildFlySwarmStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String PROJECT_NAME = "wfswarm-rest-http";
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void createWorkspaceFromCentosWildFlySwarmStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProject(
|
||||
CENTOS_WILDFLY_SWARM, WORKSPACE_NAME, PROJECT_NAME);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(PROJECT_NAME);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWfswarmRestHttpProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//h2[@id='_http_booster']");
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, RUN_GOAL, RUN_COMMAND, "WildFly Swarm is Ready");
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.CEYLON_WITH_JAVA_JAVASCRIPT;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromCeylonWithJavaStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String PROJECT_NAME = "ceylon-hello-world";
|
||||
private static final String MODULE_COMPILED_MESSAGE =
|
||||
"Note: Created module che.ceylon.samples.helloWorld";
|
||||
private static final String MODULE_STARTED_MESSAGE =
|
||||
"Hello World from Ceylon on the following backend : ";
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromCeylonWithJavaStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProject(
|
||||
CEYLON_WITH_JAVA_JAVASCRIPT, WORKSPACE_NAME, PROJECT_NAME);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(PROJECT_NAME);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkCeylonHelloWorldProjectCommands() {
|
||||
// compile and start project on JVM
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, BUILD_GOAL, "compile for JVM", MODULE_COMPILED_MESSAGE);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, RUN_GOAL, "Run on JVM", MODULE_STARTED_MESSAGE + "jvm !");
|
||||
|
||||
// compile and start project on NodeJS
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, BUILD_GOAL, "compile for JS", MODULE_COMPILED_MESSAGE);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, RUN_GOAL, "Run on NodeJS", MODULE_STARTED_MESSAGE + "js !");
|
||||
|
||||
// compile and start project on Dart
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, BUILD_GOAL, "compile for Dart", MODULE_COMPILED_MESSAGE);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
PROJECT_NAME, RUN_GOAL, "Run on Dart", MODULE_STARTED_MESSAGE + "dartvm !");
|
||||
|
||||
// clean all created modules
|
||||
projectExplorer.openItemByPath(PROJECT_NAME);
|
||||
projectExplorer.isItemVisible(PROJECT_NAME + "/modules");
|
||||
projectExplorer.invokeCommandWithContextMenu(BUILD_GOAL, PROJECT_NAME, "clean module");
|
||||
projectExplorer.waitItemIsNotPresentVisibleArea(PROJECT_NAME + "/modules");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,146 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.DEBUG_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.RUN_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.DEBUG_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestTimeoutsConstants.LOADER_TIMEOUT_SEC;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.ECLIPSE_VERTX;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.SeleniumWebDriver;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.core.webdriver.SeleniumWebDriverHelper;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromEclipseVertxStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String HEALTH_CHECKS_BOOSTER_PROJECT = "vertx-health-checks-booster";
|
||||
private static final String HEALTH_HTTP_BOOSTER_PROJECT = "vertx-http-booster";
|
||||
|
||||
private List<String> projects =
|
||||
ImmutableList.of(HEALTH_CHECKS_BOOSTER_PROJECT, HEALTH_HTTP_BOOSTER_PROJECT);
|
||||
private String currentWindow;
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private SeleniumWebDriver seleniumWebDriver;
|
||||
@Inject private SeleniumWebDriverHelper seleniumWebDriverHelper;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromEclipseVertxStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(
|
||||
ECLIPSE_VERTX, WORKSPACE_NAME, projects);
|
||||
|
||||
currentWindow = ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(HEALTH_CHECKS_BOOSTER_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(HEALTH_HTTP_BOOSTER_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkVertxHealthChecksBoosterProjectCommands() {
|
||||
By textOnPreviewPage = By.id("_vert_x_health_check_booster");
|
||||
|
||||
// build and run web application
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
HEALTH_CHECKS_BOOSTER_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
HEALTH_CHECKS_BOOSTER_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND,
|
||||
"[INFO] INFO: Succeeded in deploying verticle");
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
"dev-machine",
|
||||
DEBUG_GOAL,
|
||||
DEBUG_COMMAND,
|
||||
"[INFO] Listening for transport dt_socket at address: 5005");
|
||||
consoles.closeProcessTabWithAskDialog(DEBUG_COMMAND);
|
||||
}
|
||||
|
||||
@Test(priority = 2)
|
||||
public void checkVertxHttpBoosterProjectCommands() {
|
||||
By textOnPreviewPage = By.id("_http_booster");
|
||||
|
||||
// build and run web application
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
HEALTH_HTTP_BOOSTER_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
HEALTH_HTTP_BOOSTER_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND,
|
||||
"[INFO] INFO: Succeeded in deploying verticle");
|
||||
|
||||
// refresh application web page and check visibility of web element on opened page
|
||||
checkApplicationPage(textOnPreviewPage);
|
||||
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
"dev-machine",
|
||||
DEBUG_GOAL,
|
||||
DEBUG_COMMAND,
|
||||
"[INFO] Listening for transport dt_socket at address: 5005");
|
||||
consoles.closeProcessTabWithAskDialog(DEBUG_COMMAND);
|
||||
}
|
||||
|
||||
private void checkApplicationPage(By webElement) {
|
||||
consoles.waitPreviewUrlIsPresent();
|
||||
consoles.waitPreviewUrlIsResponsive(10);
|
||||
consoles.clickOnPreviewUrl();
|
||||
|
||||
seleniumWebDriverHelper.switchToNextWindow(currentWindow);
|
||||
|
||||
seleniumWebDriver.navigate().refresh();
|
||||
seleniumWebDriverHelper.waitVisibility(webElement, LOADER_TIMEOUT_SEC);
|
||||
|
||||
seleniumWebDriver.close();
|
||||
seleniumWebDriver.switchTo().window(currentWindow);
|
||||
seleniumWebDriverHelper.switchToIdeFrameAndWaitAvailability();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,152 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.LISTENING_AT_ADDRESS_8000;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.SERVER_STARTUP_IN;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.BUILD_AND_RUN_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.BUILD_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.DEBUG_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.RUN_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.RUN_TOMCAT_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.STOP_TOMCAT_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.DEBUG_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.JAVA_CENTOS;
|
||||
import static org.openqa.selenium.Keys.ENTER;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.CheTerminal;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromJavaCentosStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String CONSOLE_JAVA_PROJECT = "console-java-simple";
|
||||
private static final String WEB_JAVA_SPRING_PROJECT = "web-java-spring";
|
||||
|
||||
private List<String> projects = ImmutableList.of(CONSOLE_JAVA_PROJECT, WEB_JAVA_SPRING_PROJECT);
|
||||
private By textOnPreviewPage = By.xpath("//span[text()='Enter your name: ']");
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private CheTerminal terminal;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromJavaCentosStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(
|
||||
JAVA_CENTOS, WORKSPACE_NAME, projects);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(CONSOLE_JAVA_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(WEB_JAVA_SPRING_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkConsoleJavaSimpleProjectCommands() {
|
||||
|
||||
// build and run console-java-simple project
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_PROJECT,
|
||||
BUILD_GOAL,
|
||||
BUILD_COMMAND_ITEM.getItem(CONSOLE_JAVA_PROJECT),
|
||||
BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(CONSOLE_JAVA_PROJECT),
|
||||
"Hello World Che!");
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWebJavaSpringProjectCommands() {
|
||||
String tomcatIsRunning = "/bin/bash -c $TOMCAT_HOME/bin/catalina.sh";
|
||||
|
||||
// build web-java-spring project
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
BUILD_GOAL,
|
||||
BUILD_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
BUILD_SUCCESS);
|
||||
|
||||
// build and run web-java-spring project
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
RUN_GOAL,
|
||||
BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
SERVER_STARTUP_IN);
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
consoles.closeProcessTabWithAskDialog(
|
||||
BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT));
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
SERVER_STARTUP_IN);
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
// execute 'stop tomcat' command and check that tomcat process is not running
|
||||
projectExplorer.invokeCommandWithContextMenu(
|
||||
RUN_GOAL,
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
STOP_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT));
|
||||
consoles.selectProcessInProcessConsoleTreeByName("Terminal");
|
||||
terminal.typeIntoTerminal("ps ax");
|
||||
terminal.typeIntoTerminal(ENTER.toString());
|
||||
terminal.waitExpectedTextNotPresentTerminal(tomcatIsRunning);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
DEBUG_GOAL,
|
||||
DEBUG_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
LISTENING_AT_ADDRESS_8000);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.LISTENING_AT_ADDRESS_8000;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.BUILD_AND_DEPLOY_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.BUILD_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.DEBUG_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestIntelligentCommandsConstants.CommandItem.STOP_TOMCAT_COMMAND_ITEM;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.COMMON_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.DEBUG_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.JAVA_MYSQL_CENTOS;
|
||||
import static org.openqa.selenium.Keys.ENTER;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import org.eclipse.che.selenium.core.TestGroup;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.CheTerminal;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
@Test(groups = {TestGroup.DOCKER})
|
||||
public class CreateWorkspaceFromJavaMySqlCentosStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String WEB_JAVA_PROJECT = "web-java-petclinic";
|
||||
private static final String DEV_MACHINE_NAME = "dev-machine";
|
||||
private static final String DB_MACHINE_NAME = "db";
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private CheTerminal terminal;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromJavaMySqlCentosStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProject(
|
||||
JAVA_MYSQL_CENTOS, WORKSPACE_NAME, WEB_JAVA_PROJECT);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(WEB_JAVA_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWebJavaPetclinicProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//h2[text()='Welcome']");
|
||||
String tomcatIsRunning = "$TOMCAT_HOME/bin/catalina.sh";
|
||||
|
||||
projectExplorer.openItemByPath(WEB_JAVA_PROJECT);
|
||||
|
||||
// Select the db machine and perform 'show databases' command
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
DB_MACHINE_NAME, COMMON_GOAL, "show databases", "information_schema");
|
||||
|
||||
// Build and deploy the web application
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
DEV_MACHINE_NAME, COMMON_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
DEV_MACHINE_NAME, BUILD_GOAL, BUILD_COMMAND_ITEM.getItem(WEB_JAVA_PROJECT), BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
DEV_MACHINE_NAME,
|
||||
RUN_GOAL,
|
||||
BUILD_AND_DEPLOY_COMMAND_ITEM.getItem(WEB_JAVA_PROJECT),
|
||||
"Server startup in");
|
||||
|
||||
// Run the application
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
// execute 'stop tomcat' command and check that tomcat process is not running
|
||||
projectExplorer.invokeCommandWithContextMenu(
|
||||
RUN_GOAL,
|
||||
WEB_JAVA_PROJECT,
|
||||
STOP_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_PROJECT),
|
||||
DEV_MACHINE_NAME);
|
||||
consoles.selectProcessInProcessConsoleTreeByName("Terminal");
|
||||
terminal.typeIntoTerminal("ps ax");
|
||||
terminal.typeIntoTerminal(ENTER.toString());
|
||||
terminal.waitExpectedTextNotPresentTerminal(tomcatIsRunning);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
DEV_MACHINE_NAME,
|
||||
DEBUG_GOAL,
|
||||
DEBUG_COMMAND_ITEM.getItem(WEB_JAVA_PROJECT),
|
||||
LISTENING_AT_ADDRESS_8000);
|
||||
}
|
||||
}
|
||||
|
|
@ -45,19 +45,21 @@ import org.testng.annotations.Test;
|
|||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromJavaStackTest {
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String CONSOLE_JAVA_SIMPLE = "console-java-simple";
|
||||
private static final String WEB_JAVA_SPRING = "web-java-spring";
|
||||
|
||||
private List<String> projects = ImmutableList.of(CONSOLE_JAVA_SIMPLE, WEB_JAVA_SPRING);
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String CONSOLE_JAVA_PROJECT = "console-java-simple";
|
||||
private static final String WEB_JAVA_SPRING_PROJECT = "web-java-spring";
|
||||
|
||||
private List<String> projects = ImmutableList.of(CONSOLE_JAVA_PROJECT, WEB_JAVA_SPRING_PROJECT);
|
||||
private By textOnPreviewPage = By.xpath("//span[text()='Enter your name: ']");
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private CheTerminal terminal;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
|
|
@ -77,63 +79,71 @@ public class CreateWorkspaceFromJavaStackTest {
|
|||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse();
|
||||
|
||||
projectExplorer.waitProjectInitialization(CONSOLE_JAVA_SIMPLE);
|
||||
projectExplorer.waitProjectInitialization(WEB_JAVA_SPRING);
|
||||
projectExplorer.waitProjectInitialization(CONSOLE_JAVA_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(WEB_JAVA_SPRING_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkConsoleJavaSimpleCommands() {
|
||||
public void checkConsoleJavaSimpleProjectCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_SIMPLE, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
CONSOLE_JAVA_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_SIMPLE,
|
||||
CONSOLE_JAVA_PROJECT,
|
||||
BUILD_GOAL,
|
||||
BUILD_COMMAND_ITEM.getItem(CONSOLE_JAVA_SIMPLE),
|
||||
BUILD_COMMAND_ITEM.getItem(CONSOLE_JAVA_PROJECT),
|
||||
BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
CONSOLE_JAVA_SIMPLE,
|
||||
CONSOLE_JAVA_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND_ITEM.getItem(CONSOLE_JAVA_SIMPLE),
|
||||
RUN_COMMAND_ITEM.getItem(CONSOLE_JAVA_PROJECT),
|
||||
"Hello World Che!");
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkWebJavaSpringCommands() {
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
public void checkWebJavaSpringProjectCommands() {
|
||||
String tomcatIsRunning = "/bin/bash -c $TOMCAT_HOME/bin/catalina.sh";
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING, BUILD_GOAL, BUILD_COMMAND_ITEM.getItem(WEB_JAVA_SPRING), BUILD_SUCCESS);
|
||||
WEB_JAVA_SPRING_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING,
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
BUILD_GOAL,
|
||||
BUILD_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
RUN_GOAL,
|
||||
BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING),
|
||||
BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
SERVER_STARTUP_IN);
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(By.xpath("//span[text()='Enter your name: ']"));
|
||||
consoles.closeProcessTabWithAskDialog(BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING));
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
consoles.closeProcessTabWithAskDialog(
|
||||
BUILD_AND_RUN_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT));
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING,
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING),
|
||||
RUN_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
SERVER_STARTUP_IN);
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(By.xpath("//span[text()='Enter your name: ']"));
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
|
||||
// execute 'stop tomcat' command and check that tomcat is not running
|
||||
// execute 'stop tomcat' command and check that tomcat process is not running
|
||||
projectExplorer.invokeCommandWithContextMenu(
|
||||
RUN_GOAL, WEB_JAVA_SPRING, STOP_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING));
|
||||
RUN_GOAL,
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
STOP_TOMCAT_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT));
|
||||
consoles.selectProcessInProcessConsoleTreeByName("Terminal");
|
||||
terminal.typeIntoTerminal("ps ax");
|
||||
terminal.typeIntoTerminal(ENTER.toString());
|
||||
terminal.waitExpectedTextNotPresentTerminal("/bin/bash -c $TOMCAT_HOME/bin/catalina.sh");
|
||||
terminal.waitExpectedTextNotPresentTerminal(tomcatIsRunning);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
WEB_JAVA_SPRING,
|
||||
WEB_JAVA_SPRING_PROJECT,
|
||||
DEBUG_GOAL,
|
||||
DEBUG_COMMAND_ITEM.getItem(WEB_JAVA_SPRING),
|
||||
DEBUG_COMMAND_ITEM.getItem(WEB_JAVA_SPRING_PROJECT),
|
||||
LISTENING_AT_ADDRESS_8000);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,124 @@
|
|||
/*
|
||||
* Copyright (c) 2012-2018 Red Hat, Inc.
|
||||
* 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
|
||||
*
|
||||
* Contributors:
|
||||
* Red Hat, Inc. - initial API and implementation
|
||||
*/
|
||||
package org.eclipse.che.selenium.stack;
|
||||
|
||||
import static org.eclipse.che.commons.lang.NameGenerator.generate;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.BUILD_SUCCESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestBuildConstants.LISTENING_AT_ADDRESS;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.CLEAN_BUILD_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.DEBUG_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestCommandsConstants.RUN_COMMAND;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.BUILD_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.DEBUG_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestProjectExplorerContextMenuConstants.ContextMenuCommandGoals.RUN_GOAL;
|
||||
import static org.eclipse.che.selenium.core.constant.TestTimeoutsConstants.APPLICATION_START_TIMEOUT_SEC;
|
||||
import static org.eclipse.che.selenium.pageobject.dashboard.NewWorkspace.Stack.SPRING_BOOT;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.google.inject.Inject;
|
||||
import java.util.List;
|
||||
import org.eclipse.che.selenium.core.client.TestWorkspaceServiceClient;
|
||||
import org.eclipse.che.selenium.core.user.DefaultTestUser;
|
||||
import org.eclipse.che.selenium.pageobject.Consoles;
|
||||
import org.eclipse.che.selenium.pageobject.Ide;
|
||||
import org.eclipse.che.selenium.pageobject.ProjectExplorer;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.CreateWorkspaceHelper;
|
||||
import org.eclipse.che.selenium.pageobject.dashboard.Dashboard;
|
||||
import org.openqa.selenium.By;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
/** @author Skoryk Serhii */
|
||||
public class CreateWorkspaceFromSpringBootStackTest {
|
||||
|
||||
private static final String WORKSPACE_NAME = generate("workspace", 4);
|
||||
private static final String SPRING_BOOT_HEALTH_CHECK_PROJECT = "spring-boot-health-check-booster";
|
||||
private static final String SPRING_BOOT_HTTP_PROJECT = "spring-boot-http-booster";
|
||||
|
||||
private List<String> projects =
|
||||
ImmutableList.of(SPRING_BOOT_HEALTH_CHECK_PROJECT, SPRING_BOOT_HTTP_PROJECT);
|
||||
|
||||
@Inject private Ide ide;
|
||||
@Inject private Consoles consoles;
|
||||
@Inject private Dashboard dashboard;
|
||||
@Inject private DefaultTestUser defaultTestUser;
|
||||
@Inject private ProjectExplorer projectExplorer;
|
||||
@Inject private CreateWorkspaceHelper createWorkspaceHelper;
|
||||
@Inject private TestWorkspaceServiceClient workspaceServiceClient;
|
||||
|
||||
@BeforeClass
|
||||
public void setUp() {
|
||||
dashboard.open();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public void tearDown() throws Exception {
|
||||
workspaceServiceClient.delete(WORKSPACE_NAME, defaultTestUser.getName());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void checkWorkspaceCreationFromSpringBootStack() {
|
||||
createWorkspaceHelper.createWorkspaceFromStackWithProjects(
|
||||
SPRING_BOOT, WORKSPACE_NAME, projects);
|
||||
|
||||
ide.switchToIdeAndWaitWorkspaceIsReadyToUse(APPLICATION_START_TIMEOUT_SEC);
|
||||
|
||||
projectExplorer.waitProjectInitialization(SPRING_BOOT_HEALTH_CHECK_PROJECT);
|
||||
projectExplorer.waitProjectInitialization(SPRING_BOOT_HTTP_PROJECT);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkSpringBootHealthCheckBoosterProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//h2[text()='Health Check Booster']");
|
||||
|
||||
// build and run 'spring-boot-health-check-booster' project
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HEALTH_CHECK_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HEALTH_CHECK_PROJECT, BUILD_GOAL, CLEAN_BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HEALTH_CHECK_PROJECT, RUN_GOAL, RUN_COMMAND, "Started BoosterApplication in");
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
"dev-machine", DEBUG_GOAL, DEBUG_COMMAND, LISTENING_AT_ADDRESS);
|
||||
consoles.closeProcessTabWithAskDialog(DEBUG_COMMAND);
|
||||
}
|
||||
|
||||
@Test(priority = 1)
|
||||
public void checkSpringBooHttpBoosterProjectCommands() {
|
||||
By textOnPreviewPage = By.xpath("//h2[text()='HTTP Booster']");
|
||||
|
||||
// build and run 'spring-boot-http-booster' project
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HTTP_PROJECT, BUILD_GOAL, BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HTTP_PROJECT, BUILD_GOAL, CLEAN_BUILD_COMMAND, BUILD_SUCCESS);
|
||||
|
||||
consoles.executeCommandFromProjectExplorer(
|
||||
SPRING_BOOT_HTTP_PROJECT,
|
||||
RUN_GOAL,
|
||||
RUN_COMMAND,
|
||||
"INFO: Setting the server's publish address to be");
|
||||
consoles.checkWebElementVisibilityAtPreviewPage(textOnPreviewPage);
|
||||
consoles.closeProcessTabWithAskDialog(RUN_COMMAND);
|
||||
|
||||
consoles.executeCommandFromProcessesArea(
|
||||
"dev-machine", DEBUG_GOAL, DEBUG_COMMAND, LISTENING_AT_ADDRESS);
|
||||
consoles.closeProcessTabWithAskDialog(DEBUG_COMMAND);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue