Merge branch 'master' of https://github.com/wso2/product-iots
commit
e04be13e52
@ -0,0 +1,31 @@
|
||||
package org.wso2.iot.integration.ui.pages.error;
|
||||
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.openqa.selenium.support.ui.ExpectedConditions;
|
||||
import org.openqa.selenium.support.ui.WebDriverWait;
|
||||
import org.wso2.iot.integration.ui.pages.UIElementMapper;
|
||||
import org.wso2.iot.integration.ui.pages.UIUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
public class IOTErrorPage {
|
||||
|
||||
private WebDriver driver;
|
||||
private UIElementMapper uiElementMapper;
|
||||
private boolean isErrorPage = true;
|
||||
|
||||
public IOTErrorPage (WebDriver driver) throws IOException {
|
||||
this.driver = driver;
|
||||
this.uiElementMapper = UIElementMapper.getInstance();
|
||||
WebDriverWait webDriverWait = new WebDriverWait(driver, UIUtils.webDriverTimeOut);
|
||||
|
||||
if (!webDriverWait.until(ExpectedConditions.titleContains(uiElementMapper.getElement("cdmf.error.page")))) {
|
||||
isErrorPage = false;
|
||||
throw new IllegalStateException("This is not the Error page");
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isErrorPresent() {
|
||||
return this.isErrorPage;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package org.wso2.carbon.iot.integration.web.ui.test.error;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import org.openqa.selenium.WebDriver;
|
||||
import org.testng.annotations.AfterClass;
|
||||
import org.testng.annotations.BeforeClass;
|
||||
import org.testng.annotations.Test;
|
||||
import org.wso2.carbon.automation.extensions.selenium.BrowserManager;
|
||||
import org.wso2.carbon.iot.integration.web.ui.test.common.Constants;
|
||||
import org.wso2.carbon.iot.integration.web.ui.test.common.IOTIntegrationUIBaseTestCase;
|
||||
import org.wso2.iot.integration.ui.pages.error.IOTErrorPage;
|
||||
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
import java.io.IOException;
|
||||
|
||||
public class InitialErrorTest extends IOTIntegrationUIBaseTestCase{
|
||||
|
||||
private WebDriver driver;
|
||||
|
||||
@BeforeClass(alwaysRun = true)
|
||||
public void setup() throws XPathExpressionException, XMLStreamException, IOException {
|
||||
super.init();
|
||||
driver = BrowserManager.getWebDriver();
|
||||
driver.get(getWebAppURL() + Constants.IOT_LOGIN_PATH);
|
||||
}
|
||||
|
||||
@Test(description = "Test for initial login error.")
|
||||
public void ErrorPageTest() throws IOException {
|
||||
IOTErrorPage errorPage = new IOTErrorPage(driver);
|
||||
Assert.assertTrue(errorPage.isErrorPresent());
|
||||
}
|
||||
|
||||
@AfterClass(alwaysRun = true)
|
||||
public void tearDown(){
|
||||
driver.quit();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
|
||||
/**
|
||||
* Test Automation server extension to start the DAS.
|
||||
* This will set the carbon_home to {carbonHome}/core and port offset : 2
|
||||
*/
|
||||
public class AnalyticsServerExtension extends ExecutionListenerExtension {
|
||||
|
||||
private CustomTestServerManager serverManager;
|
||||
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||
private String executionEnvironment;
|
||||
private AutomationContext automationContext;
|
||||
|
||||
|
||||
@Override
|
||||
public void initiate() throws AutomationFrameworkException {
|
||||
try {
|
||||
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "2");
|
||||
}
|
||||
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||
executionEnvironment =
|
||||
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||
|
||||
} catch (XPathExpressionException e) {
|
||||
handleException("Error while initiating test environment", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionStart() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
String carbonHome = serverManager.startServer("analytics");
|
||||
log.info(carbonHome);
|
||||
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to start carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
serverManager.stopServer();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to stop carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleException(String msg, Exception e) {
|
||||
log.error(msg, e);
|
||||
throw new RuntimeException(msg, e);
|
||||
}
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
|
||||
/**
|
||||
* Test Automation server extension to start the Broker.
|
||||
* This will set the carbon_home to {carbonHome}/core and port offset : 3
|
||||
*/
|
||||
public class BrokerServerExtension extends ExecutionListenerExtension {
|
||||
|
||||
private CustomTestServerManager serverManager;
|
||||
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||
private String executionEnvironment;
|
||||
private AutomationContext automationContext;
|
||||
|
||||
|
||||
@Override
|
||||
public void initiate() throws AutomationFrameworkException {
|
||||
try {
|
||||
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "3");
|
||||
}
|
||||
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||
executionEnvironment =
|
||||
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||
|
||||
} catch (XPathExpressionException e) {
|
||||
handleException("Error while initiating test environment", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionStart() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
String carbonHome = serverManager.startServer("broker");
|
||||
log.info(carbonHome);
|
||||
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to start carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
serverManager.stopServer();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to stop carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleException(String msg, Exception e) {
|
||||
log.error(msg, e);
|
||||
throw new RuntimeException(msg, e);
|
||||
}
|
||||
}
|
@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright (c) 2005-2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.automation.engine.FrameworkConstants;
|
||||
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager;
|
||||
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class CustomTestServerManager {
|
||||
protected CarbonServerManager carbonServer;
|
||||
protected String carbonZip;
|
||||
protected int portOffset;
|
||||
protected Map<String, String> commandMap = new HashMap<String, String>();
|
||||
private static final Log log = LogFactory.getLog(CustomTestServerManager.class);
|
||||
protected String carbonHome;
|
||||
|
||||
public CustomTestServerManager(AutomationContext context) {
|
||||
carbonServer = new CarbonServerManager(context);
|
||||
}
|
||||
|
||||
public CustomTestServerManager(AutomationContext context, String carbonZip) {
|
||||
carbonServer = new CarbonServerManager(context);
|
||||
this.carbonZip = carbonZip;
|
||||
}
|
||||
|
||||
public CustomTestServerManager(AutomationContext context, int portOffset) {
|
||||
carbonServer = new CarbonServerManager(context);
|
||||
this.portOffset = portOffset;
|
||||
commandMap.put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, String.valueOf(portOffset));
|
||||
}
|
||||
|
||||
public CustomTestServerManager(AutomationContext context, String carbonZip,
|
||||
Map<String, String> commandMap) {
|
||||
carbonServer = new CarbonServerManager(context);
|
||||
this.carbonZip = carbonZip;
|
||||
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
|
||||
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
|
||||
} else {
|
||||
throw new IllegalArgumentException("portOffset value must be set in command list");
|
||||
}
|
||||
this.commandMap = commandMap;
|
||||
}
|
||||
|
||||
public String getCarbonZip() {
|
||||
return carbonZip;
|
||||
}
|
||||
|
||||
public String getCarbonHome() {
|
||||
return carbonHome;
|
||||
}
|
||||
|
||||
public int getPortOffset() {
|
||||
return portOffset;
|
||||
}
|
||||
|
||||
public void configureServer() throws AutomationFrameworkException {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public Map<String, String> getCommands() {
|
||||
return commandMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called for starting a Carbon server in preparation for execution of a
|
||||
* TestSuite
|
||||
* <p/>
|
||||
* Add the @BeforeSuite TestNG annotation in the method overriding this method
|
||||
* @param server : The server which needs to be start.
|
||||
* @return The CARBON_HOME
|
||||
* @throws java.io.IOException If an error occurs while copying the deployment artifacts into the
|
||||
* Carbon server
|
||||
*/
|
||||
public String startServer(String server)
|
||||
throws AutomationFrameworkException, IOException, XPathExpressionException {
|
||||
if(carbonHome == null) {
|
||||
if (carbonZip == null) {
|
||||
carbonZip = System.getProperty(FrameworkConstants.SYSTEM_PROPERTY_CARBON_ZIP_LOCATION);
|
||||
}
|
||||
if (carbonZip == null) {
|
||||
throw new IllegalArgumentException("carbon zip file cannot find in the given location");
|
||||
}
|
||||
carbonHome = carbonServer.setUpCarbonHome(carbonZip) + "/" + server;
|
||||
configureServer();
|
||||
}
|
||||
log.info("Carbon Home - " + carbonHome );
|
||||
if (commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) != null) {
|
||||
this.portOffset = Integer.parseInt(commandMap.get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND));
|
||||
} else {
|
||||
this.portOffset = 0;
|
||||
}
|
||||
carbonServer.startServerUsingCarbonHome(carbonHome, commandMap);
|
||||
return carbonHome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Restarting server already started by the method startServer
|
||||
* @throws AutomationFrameworkException
|
||||
*/
|
||||
public void restartGracefully() throws AutomationFrameworkException {
|
||||
if(carbonHome == null) {
|
||||
throw new AutomationFrameworkException("No Running Server found to restart. " +
|
||||
"Please make sure whether server is started");
|
||||
}
|
||||
carbonServer.restartGracefully();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called for stopping a Carbon server
|
||||
* <p/>
|
||||
* Add the @AfterSuite annotation in the method overriding this method
|
||||
*
|
||||
* @throws AutomationFrameworkException If an error occurs while shutting down the server
|
||||
*/
|
||||
public void stopServer() throws AutomationFrameworkException {
|
||||
carbonServer.serverShutdown(portOffset);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||
*
|
||||
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||
* Version 2.0 (the "License"); you may not use this file except
|
||||
* in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
package org.wso2.carbon.iot.integration.web.ui.test.extension;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.wso2.carbon.automation.engine.annotations.ExecutionEnvironment;
|
||||
import org.wso2.carbon.automation.engine.context.AutomationContext;
|
||||
import org.wso2.carbon.automation.engine.context.ContextXpathConstants;
|
||||
import org.wso2.carbon.automation.engine.context.TestUserMode;
|
||||
import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException;
|
||||
import org.wso2.carbon.automation.engine.extensions.ExecutionListenerExtension;
|
||||
import org.wso2.carbon.automation.extensions.ExtensionConstants;
|
||||
import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerExtension;
|
||||
|
||||
import javax.xml.xpath.XPathExpressionException;
|
||||
|
||||
/**
|
||||
* Test Automation server extension to start the IOT core.
|
||||
* This will set the carbon_home to {carbonHome}/core and port offset : 0
|
||||
*/
|
||||
public class IOTServerExtension extends ExecutionListenerExtension {
|
||||
|
||||
private CustomTestServerManager serverManager;
|
||||
private static final Log log = LogFactory.getLog(CarbonServerExtension.class);
|
||||
private String executionEnvironment;
|
||||
private AutomationContext automationContext;
|
||||
|
||||
|
||||
@Override
|
||||
public void initiate() throws AutomationFrameworkException {
|
||||
try {
|
||||
automationContext = new AutomationContext("IOT", TestUserMode.SUPER_TENANT_USER);
|
||||
if(getParameters().get(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND) == null) {
|
||||
getParameters().put(ExtensionConstants.SERVER_STARTUP_PORT_OFFSET_COMMAND, "0");
|
||||
}
|
||||
serverManager = new CustomTestServerManager(getAutomationContext(), null, getParameters());
|
||||
executionEnvironment =
|
||||
automationContext.getConfigurationValue(ContextXpathConstants.EXECUTION_ENVIRONMENT);
|
||||
|
||||
} catch (XPathExpressionException e) {
|
||||
handleException("Error while initiating test environment", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionStart() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
String carbonHome = serverManager.startServer("core");
|
||||
log.info(carbonHome);
|
||||
System.setProperty(ExtensionConstants.CARBON_HOME, carbonHome);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to start carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExecutionFinish() throws AutomationFrameworkException {
|
||||
try {
|
||||
if (executionEnvironment.equalsIgnoreCase(ExecutionEnvironment.STANDALONE.name())) {
|
||||
serverManager.stopServer();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
handleException("Fail to stop carbon server ", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleException(String msg, Exception e) {
|
||||
log.error(msg, e);
|
||||
throw new RuntimeException(msg, e);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue