diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/DevicesPage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/DevicesPage.java new file mode 100644 index 00000000..00130d36 --- /dev/null +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/DevicesPage.java @@ -0,0 +1,25 @@ +package org.wso2.iot.integration.ui.pages.devices; + +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.UIConstants; +import org.wso2.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class DevicesPage { + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public DevicesPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + + WebDriverWait webDriverWait = new WebDriverWait(driver, UIConstants.webDriverTimeOut); + if (!webDriverWait.until(ExpectedConditions.titleContains("Device Management | IoT Server"))) { + throw new IllegalStateException("This is not the Device Management page"); + } + } + +} diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/EnrollDevicePage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/EnrollDevicePage.java new file mode 100644 index 00000000..eccb26a2 --- /dev/null +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/devices/EnrollDevicePage.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2016, 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.iot.integration.ui.pages.devices; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; +import org.wso2.iot.integration.ui.pages.UIConstants; +import org.wso2.iot.integration.ui.pages.UIElementMapper; +import org.wso2.iot.integration.ui.pages.samples.ConnectedCupDeviceTypeViewPage; + +import java.io.IOException; + +/** + * Device Enrollment page for new user + */ +public class EnrollDevicePage { + private static final Log log = LogFactory.getLog(EnrollDevicePage.class); + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public EnrollDevicePage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + + WebDriverWait webDriverWait = new WebDriverWait(driver, UIConstants.webDriverTimeOut); + if (!webDriverWait.until(ExpectedConditions.titleContains("Device Types | IoT Server"))) { + throw new IllegalStateException("This is not the Device Enrollment page"); + } + } + + public boolean isInstalled(String name) { + + return driver.findElement(By.id("#" + name.toLowerCase())) != null; + +// WebElement sample = null; +// try { +// sample = driver.findElement(By.id("#"+name.toLowerCase())); +// } catch (NoSuchElementException e){ +// log.error("No element found for id: " + name); +// } +// return sample != null; + } + + public ConnectedCupDeviceTypeViewPage gotoConnectedCupDeviceTypeViewPage() throws IOException { + WebElement tryBtn = driver.findElement(By.id(uiElementMapper.getElement("iot.sample.connectedcup.try.btn.id"))); + tryBtn.click(); + return new ConnectedCupDeviceTypeViewPage(driver); + } +} diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTAdminDashboard.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTAdminDashboard.java index cb6bed01..e448c786 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTAdminDashboard.java +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTAdminDashboard.java @@ -23,6 +23,8 @@ import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.wso2.iot.integration.ui.pages.UIElementMapper; +import org.wso2.iot.integration.ui.pages.devices.DevicesPage; +import org.wso2.iot.integration.ui.pages.devices.EnrollDevicePage; import org.wso2.iot.integration.ui.pages.groups.DeviceAddGroupPage; import org.wso2.iot.integration.ui.pages.groups.DeviceGroupsPage; import org.wso2.iot.integration.ui.pages.login.LoginPage; @@ -93,5 +95,15 @@ public class IOTAdminDashboard { return new UserListingPage(driver); } + public EnrollDevicePage enrollNewDevice() throws IOException { + driver.findElement(By.xpath(uiElementMapper.getElement("iot.admin.device.addBtn.xpath"))).click(); + return new EnrollDevicePage(driver); + } + + public DevicesPage viewDevices() throws IOException { + driver.findElement(By.xpath(uiElementMapper.getElement("iot.admin.device.viewBtn.xpath"))).click(); + return new DevicesPage(driver); + } + //ToDo : Need to add device and policy methods } diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTHomePage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTHomePage.java index ba0861b6..b8697a94 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTHomePage.java +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/home/IOTHomePage.java @@ -24,7 +24,7 @@ import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.wso2.iot.integration.ui.pages.UIConstants; import org.wso2.iot.integration.ui.pages.UIElementMapper; -import org.wso2.iot.integration.ui.pages.enroll.EnrollDevicePage; +import org.wso2.iot.integration.ui.pages.devices.EnrollDevicePage; import org.wso2.iot.integration.ui.pages.groups.DeviceAddGroupPage; import org.wso2.iot.integration.ui.pages.login.LoginPage; diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceTypeViewPage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceTypeViewPage.java new file mode 100644 index 00000000..c0a169a6 --- /dev/null +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceTypeViewPage.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2016, 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.iot.integration.ui.pages.samples; + + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.wso2.iot.integration.ui.pages.UIElementMapper; + +import java.io.IOException; + +public class ConnectedCupDeviceTypeViewPage { + private WebDriver driver; + private UIElementMapper uiElementMapper; + + public ConnectedCupDeviceTypeViewPage(WebDriver driver) throws IOException { + this.driver = driver; + this.uiElementMapper = UIElementMapper.getInstance(); + +// WebDriverWait webDriverWait = new WebDriverWait(driver, UIConstants.webDriverTimeOut); + if (driver.findElement(By.xpath( + uiElementMapper.getElement("iot.sample.connectedcup.page.title"))).getText(). + contains("Connected Cup")) { + throw new IllegalStateException("This is not the Connected cup device type view page"); + } + } + + public void enrollDevice(String name) { + WebElement createInstanceBtn = driver.findElement(By.xpath( + uiElementMapper.getElement("iot.sample.connectedcup.createInstanceBtn.xpath"))); + createInstanceBtn.click(); + WebElement nameField = driver.findElement(By.xpath( + uiElementMapper.getElement("iot.sample.connectedcup.createInstance.nameField.xpath"))); + WebElement createButton = driver.findElement(By.xpath( + uiElementMapper.getElement("iot.sample.connectedcup.createInstance.downloadBtn.xpath"))); + nameField.sendKeys(name); + createButton.click(); + } +} diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/enroll/EnrollDevicePage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceViewPage.java similarity index 50% rename from modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/enroll/EnrollDevicePage.java rename to modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceViewPage.java index 0b6b793a..4391fa64 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/enroll/EnrollDevicePage.java +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/samples/ConnectedCupDeviceViewPage.java @@ -15,25 +15,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.wso2.iot.integration.ui.pages.enroll; +package org.wso2.iot.integration.ui.pages.samples; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.openqa.selenium.WebDriver; -import org.wso2.iot.integration.ui.pages.UIElementMapper; -import java.io.IOException; +public class ConnectedCupDeviceViewPage { -/** - * Device Enrollment page for new user - */ -public class EnrollDevicePage { - private static final Log log = LogFactory.getLog(EnrollDevicePage.class); - private WebDriver driver; - private UIElementMapper uiElementMapper; - - public EnrollDevicePage(WebDriver driver) throws IOException { - this.driver = driver; - this.uiElementMapper = UIElementMapper.getInstance(); - } } diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/AddUserPage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/AddUserPage.java index 94d6fc16..21291fad 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/AddUserPage.java +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/AddUserPage.java @@ -72,8 +72,8 @@ public class AddUserPage { emailField.sendKeys(email); WebDriverWait wait = new WebDriverWait(driver, UIConstants.webDriverTimeOut); - wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( - uiElementMapper.getElement("iot.admin.addUser.add.btn.xpath")))); +// wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath( +// uiElementMapper.getElement("iot.admin.addUser.add.btn.xpath")))); driver.findElement(By.xpath(uiElementMapper.getElement("iot.admin.addUser.add.btn.xpath"))).click(); diff --git a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/UserListingPage.java b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/UserListingPage.java index 19d115b5..25d63364 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/UserListingPage.java +++ b/modules/integration/tests-common/web-ui-pages/src/main/java/org/wso2/iot/integration/ui/pages/uesr/UserListingPage.java @@ -42,7 +42,7 @@ public class UserListingPage { /** * @return After deleting a user, returns back to the user listing page. */ - public UserListingPage deleteUser() throws IOException { + public UserListingPage deleteUser() throws IOException, InterruptedException { WebElement deleteBtn = driver.findElement(By.xpath( uiElementMapper.getElement("iot.admin.deleteUser.btn.xpath"))); @@ -55,9 +55,9 @@ public class UserListingPage { wait.until(ExpectedConditions.visibilityOf(deleteConfirmationBtn)); deleteConfirmationBtn.click(); + Thread.sleep(UIConstants.threadTimeout); WebElement deleteSuccessBtn = driver.findElement( By.xpath(uiElementMapper.getElement("iot.admin.deleteUser.success.link.xpath"))); - wait.until(ExpectedConditions.visibilityOf(deleteSuccessBtn)); deleteSuccessBtn.click(); return new UserListingPage(driver); diff --git a/modules/integration/tests-common/web-ui-pages/src/main/resources/mapper.properties b/modules/integration/tests-common/web-ui-pages/src/main/resources/mapper.properties index 51e7a1a7..e1851b2e 100644 --- a/modules/integration/tests-common/web-ui-pages/src/main/resources/mapper.properties +++ b/modules/integration/tests-common/web-ui-pages/src/main/resources/mapper.properties @@ -69,6 +69,10 @@ iot.user.register.email.error=email-error iot.user.register.password.error=password-error iot.user.register.confirmPassword.error=password_confirmation-error +# Admin dashboard Device ----------------------------------------------------------------------------------------------- +iot.admin.device.viewBtn.xpath=//a[@href='/devicemgt/devices'] +iot.admin.device.addBtn.xpath=//a[@href='/devicemgt/device/enroll'] + # Incorrect login Credentials ------------------------------------------------------------------------------------------ iot.user.login.username.error=username-error iot.user.login.password.error=password-error @@ -78,7 +82,7 @@ iot.user.login.shortPassword=password-error iot.dashboard.device.div.xpath=/html/body/div[3]/div[7]/div[1]/div/div/div[1] -#Grouping --------------------------------------------------------------- +#Grouping -------------------------------------------------------------------------------------------------------------- iot.device.group.addButton.xpath=/html/body/div[3]/div[2]/div[1]/div[2]/div/div/div[2]/div[2]/span[2]/a[2] iot.device.group.viewButton.xpath=/html/body/div[3]/div[2]/div[1]/div[2]/div/div/div[2]/div[2]/span[2]/a[1] @@ -119,16 +123,25 @@ iot.admin.deleteUser.success.link.xpath=//a[@id="remove-user-success-link"] iot.admin.addUser.formError.xpath=//*[@id="user-create-error-msg"] -#----- User view page heading ---------------------------------------- +#----- User view page heading ------------------------------------------------------------------------------------------ iot.user.view.page.heading.xpath=/html/body/div[3]/div[1]/div/label -#----- Editing a user------------------------------------------------- +#----- Editing a user--------------------------------------------------------------------------------------------------- iot.admin.viewUser.btn.xpath=//*[@id="user1"]/td[5]/a[1]/span[1]/i[2] iot.admin.editUser.btn.xpath=//*[@id="userEditBtn"] iot.admin.editUser.edit.btn.xpath=//*[@id="add-user-btn"] +#---------------------------Testing the samples ------------------------------------------------------------------------ +iot.sample.connectedcup.id=#connectedcup +iot.sample.connectedcup.try.btn.id=#connectedcup +iot.sample.connectedcup.createInstanceBtn.xpath=/html/body/div[5]/div/div/div[2]/div[1]/div[4]/a[2] +iot.sample.connectedcup.createInstance.nameField.xpath=//*[@id="downloadForm"]/div[1]/div/input[1] +iot.sample.connectedcup.createInstance.downloadBtn.xpath=//*[@id="downloadForm"]/div[2]/a + +iot.try.devices.div.classname=//div[@class='try-device-container'] +iot.try.device.text.xpath=//p[contains(@class,'try-device-text')] #----------------------------------------------------------------------------------------------------------------------- #iot.user.delete.button=//*[@id="inosh"]/td[5]/a[3] #iot.user.delete.button.confirm=remove-user-yes-link diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleEnrollmentTest.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleEnrollmentTest.java new file mode 100644 index 00000000..2a923bfe --- /dev/null +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleEnrollmentTest.java @@ -0,0 +1,7 @@ +package org.wso2.carbon.iot.integration.web.ui.test.samples; + +/** + * Created by menaka on 2/29/16. + */ +public class SampleEnrollmentTest { +} diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationTest.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationTest.java index 863f6075..438e67b5 100644 --- a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationTest.java +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationTest.java @@ -20,11 +20,16 @@ package org.wso2.carbon.iot.integration.web.ui.test.samples; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.testng.Assert; +import org.wso2.carbon.logging.view.stub.LogViewerLogViewerException; +import org.wso2.carbon.logging.view.stub.types.carbon.LogEvent; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import org.wso2.carbon.authenticator.stub.LoginAuthenticationExceptionException; import org.wso2.carbon.automation.engine.exceptions.AutomationFrameworkException; -import org.wso2.carbon.automation.extensions.servers.carbonserver.CarbonServerManager; +import org.wso2.carbon.integration.common.admin.client.LogViewerClient; +import org.wso2.carbon.integration.common.utils.exceptions.AutomationUtilException; +import org.wso2.carbon.integration.common.utils.mgt.ServerConfigurationManager; import org.wso2.iot.integration.ui.pages.IOTIntegrationUIBaseTestCase; import javax.xml.stream.XMLStreamException; @@ -34,6 +39,8 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.net.MalformedURLException; +import java.rmi.RemoteException; import java.util.Properties; @@ -53,15 +60,18 @@ public class SampleInstallationTest extends IOTIntegrationUIBaseTestCase { private Properties properties = System.getProperties(); private String carbonHome = properties.getProperty("carbon.home"); private String[] cmdArray; + private LogViewerClient logViewerClient; @BeforeClass(alwaysRun = true) - public void setup() throws XPathExpressionException, XMLStreamException, IOException, AutomationFrameworkException { + public void setup() throws XPathExpressionException, XMLStreamException, IOException, AutomationFrameworkException, + LoginAuthenticationExceptionException { super.init(); + logViewerClient = new LogViewerClient(getBackendURL(), getSessionCookie(automationContext)); } - @Test(description = "Verify the sample build process") + @Test(groups = {"iot.sample"}, description = "Verify the sample build process") public void sampleBuildTest() throws IOException { - String connectedCupDir = carbonHome + File.pathSeparator + "samples" + File.pathSeparator + "connectedcup"; + String connectedCupDir = carbonHome + File.separator + "samples" + File.separator + "connectedcup"; log.info("Connected cup Sample: " + connectedCupDir); File dir = new File(connectedCupDir); try { @@ -69,7 +79,6 @@ public class SampleInstallationTest extends IOTIntegrationUIBaseTestCase { log.info("Executing maven clean install --------------------------------"); cmdArray = new String[]{"cmd.exe", "/c", "mvn clean install"}; tempProcess = Runtime.getRuntime().exec(cmdArray, null, dir); - } else { log.info("Executing maven clean install --------------------------------"); cmdArray = new String[]{"mvn", "clean", "install"}; @@ -85,7 +94,8 @@ public class SampleInstallationTest extends IOTIntegrationUIBaseTestCase { } } - @Test(description = "Verify the sample installation process", dependsOnMethods = {"sampleBuildTest"}) + @Test(groups = {"iot.sample"}, description = "Verify the sample installation process", dependsOnMethods = + {"sampleBuildTest"}) public void sampleInstallationTest() throws IOException { log.info("CARBON_HOME: " + System.getProperty("carbon.home")); @@ -108,21 +118,33 @@ public class SampleInstallationTest extends IOTIntegrationUIBaseTestCase { } } - @Test(description = "Test restarting the server", dependsOnMethods = {"sampleInstallationTest"}) + @Test(groups = {"iot.sample"}, description = "Test restarting the server", dependsOnMethods = + {"sampleInstallationTest"}) public void serverRestartTest() { - CarbonServerManager serverManager = new CarbonServerManager(automationContext); + ServerConfigurationManager serverManager; + LogEvent[] events; + String msg = "Mgt Console URL : https://10.100.4.7:9443/carbon/"; try { + serverManager = new ServerConfigurationManager(automationContext); serverManager.restartGracefully(); - } catch (AutomationFrameworkException e) { - log.error("Restart failed...."); + + events = logViewerClient.getAllRemoteSystemLogs(); + Assert.assertTrue(waitForRestart(events, msg)); + } catch (AutomationUtilException | XPathExpressionException | MalformedURLException e) { + log.error("Restart failed due to : " + e.getLocalizedMessage()); + } catch (RemoteException | LogViewerLogViewerException e) { + log.error("Cannot get server log due to : " + e.getLocalizedMessage()); } } @AfterClass(alwaysRun = true) public void tearDown() throws Exception { + if (tempProcess != null) { + tempProcess.destroy(); + } } - public boolean waitForMessage(InputStream inputStream, String message) throws IOException { + private boolean waitForMessage(InputStream inputStream, String message) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)); String line; boolean status = false; @@ -134,4 +156,12 @@ public class SampleInstallationTest extends IOTIntegrationUIBaseTestCase { } return status; } + + private boolean waitForRestart(LogEvent[] events, String msg) { + for (LogEvent event : events) { + if (event.getMessage().contains(msg)) + return true; + } + return false; + } } diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationVerification.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationVerification.java new file mode 100644 index 00000000..9dcfdda8 --- /dev/null +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/samples/SampleInstallationVerification.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2016, 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.samples; + +import org.openqa.selenium.WebDriver; +import org.testng.Assert; +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.LoginUtils; +import org.wso2.iot.integration.ui.pages.IOTIntegrationUIBaseTestCase; +import org.wso2.iot.integration.ui.pages.devices.EnrollDevicePage; +import org.wso2.iot.integration.ui.pages.home.IOTAdminDashboard; +import org.wso2.iot.integration.ui.pages.samples.ConnectedCupDeviceTypeViewPage; + +import javax.xml.stream.XMLStreamException; +import javax.xml.xpath.XPathExpressionException; +import java.io.IOException; + +public class SampleInstallationVerification extends IOTIntegrationUIBaseTestCase { + + private WebDriver driver; + private EnrollDevicePage enrollDevicePage; + private IOTAdminDashboard adminDashboard; + + @BeforeClass(alwaysRun = true) + public void setup() throws XPathExpressionException, XMLStreamException, IOException { + super.init(); + driver = BrowserManager.getWebDriver(); + LoginUtils.login(driver, automationContext, getWebAppURL()); + adminDashboard = new IOTAdminDashboard(driver); + } + + @Test(description = "Verify the sample is available in Virtual devices section.") + public void installationVerificationTest() throws IOException { + enrollDevicePage = adminDashboard.enrollNewDevice(); + Assert.assertTrue(enrollDevicePage.isInstalled("ConnectedCup")); +// Assert.assertTrue(enrollDevicePage.isInstalled("Virtual Fire Alarm")); + } + + @Test(description = "Verify the installation of UI components.", dependsOnMethods = + {"installationVerificationTest"}) + public void verifyNavigationToDeviceTypeView() throws IOException { + ConnectedCupDeviceTypeViewPage connectedCupDeviceTypeViewPage = enrollDevicePage.gotoConnectedCupDeviceTypeViewPage(); + } + + @AfterClass(alwaysRun = true) + public void teardown() { + driver.quit(); + } +} diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/TestAdminFunctions.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/AdminFunctionsTest.java similarity index 97% rename from modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/TestAdminFunctions.java rename to modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/AdminFunctionsTest.java index a85bbba4..99e19c15 100644 --- a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/TestAdminFunctions.java +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/AdminFunctionsTest.java @@ -38,7 +38,7 @@ import java.io.IOException; * - Create a new User * - Delete a user */ -public class TestAdminFunctions extends IOTIntegrationUIBaseTestCase { +public class AdminFunctionsTest extends IOTIntegrationUIBaseTestCase { private WebDriver driver; diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/NewUserRegistrationTest.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/NewUserRegistrationTest.java index ceab744d..728a2e08 100644 --- a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/NewUserRegistrationTest.java +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/NewUserRegistrationTest.java @@ -50,10 +50,10 @@ public class NewUserRegistrationTest extends IOTIntegrationUIBaseTestCase { @Test(description = "Verify new User registration") public void userRegisterTest() throws IOException { - LoginPage loginPage = new LoginPage(driver); + LoginPage login = new LoginPage(driver); uiElementMapper = UIElementMapper.getInstance(); - NewUserRegisterPage registerTest = loginPage.registerNewUser(); - loginPage = registerTest.registerUser( + NewUserRegisterPage registerTest = login.registerNewUser(); + LoginPage loginPage = registerTest.registerUser( uiElementMapper.getElement("iot.user.add.firstname"), uiElementMapper.getElement("iot.user.add.lastname"), uiElementMapper.getElement("iot.user.add.email"), diff --git a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTests.java b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTest.java similarity index 97% rename from modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTests.java rename to modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTest.java index 04905b71..79d87d94 100644 --- a/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTests.java +++ b/modules/integration/tests-iot-web-ui/src/test/java/org/wso2/carbon/iot/integration/web/ui/test/user/RegistrationFormValidationTest.java @@ -40,7 +40,7 @@ import java.io.IOException; * - Non matching passwords * - Password, username length */ -public class RegistrationFormValidationTests extends IOTIntegrationUIBaseTestCase { +public class RegistrationFormValidationTest extends IOTIntegrationUIBaseTestCase { private WebDriver driver; private UIElementMapper uiElementMapper; private NewUserRegisterPage registerPage; @@ -99,7 +99,7 @@ public class RegistrationFormValidationTests extends IOTIntegrationUIBaseTestCas @Test(description = "Test for password length") public void passwordLengthTest() { - registerPage.validateForm("user", "user", "user@wso2.com", "user1", "passw", "passw"); + registerPage.validateForm("user", "user", "user@wso2.com", "user1", "pass", "pass"); Assert.assertEquals(driver.findElement(By.id( uiElementMapper.getElement("iot.user.register.password.error"))).getText(), "Password should be between 5 and 30 characters."); @@ -109,6 +109,4 @@ public class RegistrationFormValidationTests extends IOTIntegrationUIBaseTestCas public void tearDown() { driver.quit(); } - - } diff --git a/modules/integration/tests-iot-web-ui/src/test/resources/testng.xml b/modules/integration/tests-iot-web-ui/src/test/resources/testng.xml index 1fab1b80..abee28b8 100644 --- a/modules/integration/tests-iot-web-ui/src/test/resources/testng.xml +++ b/modules/integration/tests-iot-web-ui/src/test/resources/testng.xml @@ -27,15 +27,16 @@ - - - - - - - - + + + + + + + + + diff --git a/pom.xml b/pom.xml index 7f2cb1c2..7ea6c2fa 100644 --- a/pom.xml +++ b/pom.xml @@ -282,10 +282,6 @@ org.wso2.carbon.commons org.wso2.carbon.user.mgt.stub - - org.wso2.carbon.commons - org.wso2.carbon.logging.view.stub - org.wso2.carbon.commons org.wso2.carbon.ndatasource.stub