forked from community/product-iots
This commit adds testcases to test UI functionalities of adding a simple android policy and viewing it from the user interface.application-manager-new
parent
7f2f03608a
commit
8a84c2d6e3
@ -0,0 +1,85 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, 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.policy;
|
||||||
|
|
||||||
|
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.UIElementMapper;
|
||||||
|
import org.wso2.iot.integration.ui.pages.UIUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class PolicyAddPage {
|
||||||
|
|
||||||
|
private WebDriver driver;
|
||||||
|
private UIElementMapper uiElementMapper;
|
||||||
|
|
||||||
|
public PolicyAddPage(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.policy.add.page")))) {
|
||||||
|
throw new IllegalStateException("This is not the Add Group page");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds an android policy.
|
||||||
|
*
|
||||||
|
* @param name name of the policy
|
||||||
|
* @param description description of the policy
|
||||||
|
* @return {@link PolicyPage}
|
||||||
|
* @throws IOException If error occurred when adding a policy
|
||||||
|
*/
|
||||||
|
public PolicyPage addAndroidSamplePolicy(String name, String description) throws IOException {
|
||||||
|
WebElement androidPolicyCreateButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.add.android.policy.xpath")));
|
||||||
|
androidPolicyCreateButton.click();
|
||||||
|
WebElement androidPasscodePolicy = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.passcode.policy.button")));
|
||||||
|
androidPasscodePolicy.click();
|
||||||
|
WebElement androidPasscodePolicyEnableButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.passcode.policy.enable.button")));
|
||||||
|
androidPasscodePolicyEnableButton.click();
|
||||||
|
WebElement androidPolicyConfigContinueButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.policy.configuration.continue.button")));
|
||||||
|
androidPolicyConfigContinueButton.click();
|
||||||
|
WebElement androidPolicyAssignGroupsContinueButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.assignGroups.continue.button")));
|
||||||
|
androidPolicyAssignGroupsContinueButton.click();
|
||||||
|
WebElement androidPolicyNameInput = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.name.input")));
|
||||||
|
WebElement androidPolicyDescriptionInput = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.description.input")));
|
||||||
|
WebElement androidPolicyPublishButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.android.publish.button")));
|
||||||
|
|
||||||
|
androidPolicyNameInput.sendKeys(name);
|
||||||
|
androidPolicyDescriptionInput.sendKeys(description);
|
||||||
|
androidPolicyPublishButton.click();
|
||||||
|
|
||||||
|
return new PolicyPage(driver);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, 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.policy;
|
||||||
|
|
||||||
|
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.UIElementMapper;
|
||||||
|
import org.wso2.iot.integration.ui.pages.UIUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class PolicyPage {
|
||||||
|
|
||||||
|
private WebDriver driver;
|
||||||
|
private UIElementMapper uiElementMapper;
|
||||||
|
|
||||||
|
public PolicyPage(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.policy.page")))) {
|
||||||
|
throw new IllegalStateException("This is not the Policy page");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to go to the add policy page, by clicking the Add policy button.
|
||||||
|
* @return {@link PolicyAddPage} add policy page
|
||||||
|
*/
|
||||||
|
public PolicyAddPage addNewPolicy() throws IOException {
|
||||||
|
WebElement addPolicyButton = driver.findElement(By.xpath(
|
||||||
|
uiElementMapper.getElement("iot.policy.add.button.xpath")));
|
||||||
|
addPolicyButton.click();
|
||||||
|
return new PolicyAddPage(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to go to the view policy page, by clicking a policy
|
||||||
|
* @return {@link PolicyViewPage} view policy page
|
||||||
|
* @throws IOException If unable to navigate to view policy page
|
||||||
|
*/
|
||||||
|
public PolicyViewPage viewPolicy() throws IOException {
|
||||||
|
WebElement policyViewIcon = driver.findElement(By.xpath(uiElementMapper.getElement("iot.policy.view.icon")));
|
||||||
|
policyViewIcon.click();
|
||||||
|
return new PolicyViewPage(driver);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, 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.policy;
|
||||||
|
|
||||||
|
import org.openqa.selenium.By;
|
||||||
|
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 PolicyViewPage {
|
||||||
|
|
||||||
|
private WebDriver driver;
|
||||||
|
private UIElementMapper uiElementMapper;
|
||||||
|
|
||||||
|
public PolicyViewPage(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.policy.view.page")))) {
|
||||||
|
throw new IllegalStateException("This is not the Add Group page");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests if the policy is viewable
|
||||||
|
* @return {@code true} if policy is viewable
|
||||||
|
*/
|
||||||
|
public boolean isPolicyViewable() {
|
||||||
|
return driver.findElements(By.xpath(uiElementMapper.getElement("iot.policy.view.passcode.element"))).size()
|
||||||
|
!= 0;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2018, 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.policy;
|
||||||
|
|
||||||
|
import org.openqa.selenium.WebDriver;
|
||||||
|
import org.testng.Assert;
|
||||||
|
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.IOTIntegrationUIBaseTestCase;
|
||||||
|
import org.wso2.carbon.iot.integration.web.ui.test.common.LoginUtils;
|
||||||
|
import org.wso2.iot.integration.ui.pages.home.IOTAdminDashboard;
|
||||||
|
import org.wso2.iot.integration.ui.pages.policy.PolicyAddPage;
|
||||||
|
import org.wso2.iot.integration.ui.pages.policy.PolicyPage;
|
||||||
|
import org.wso2.iot.integration.ui.pages.policy.PolicyViewPage;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class PolicyTest extends IOTIntegrationUIBaseTestCase {
|
||||||
|
|
||||||
|
private WebDriver driver;
|
||||||
|
private IOTAdminDashboard adminDashboard;
|
||||||
|
|
||||||
|
@BeforeClass(alwaysRun = true)
|
||||||
|
public void setup() throws Exception {
|
||||||
|
super.init();
|
||||||
|
driver = BrowserManager.getWebDriver();
|
||||||
|
LoginUtils.login(driver, automationContext, getWebAppURL());
|
||||||
|
adminDashboard = new IOTAdminDashboard(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Test for adding a new policy.")
|
||||||
|
public void addNewPolicyTest() throws IOException {
|
||||||
|
PolicyPage policyPage = adminDashboard.getPolicyManagementPage();
|
||||||
|
PolicyAddPage policyAddPage = policyPage.addNewPolicy();
|
||||||
|
policyAddPage.addAndroidSamplePolicy("TestPolicy", "This is a sample policy");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(description = "Test for adding a new policy.", dependsOnMethods = "addNewPolicyTest")
|
||||||
|
public void policyViewTest() throws IOException {
|
||||||
|
PolicyPage policyPage = adminDashboard.getPolicyManagementPage();
|
||||||
|
PolicyViewPage policyViewPage = policyPage.viewPolicy();
|
||||||
|
Assert.assertTrue(policyViewPage.isPolicyViewable());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue