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