/* * Copyright (c) 2005-2014, 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.esb.ui.test.proxyadmin; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; 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.esb.integration.common.ui.page.LoginPage; import org.wso2.esb.integration.common.utils.ESBIntegrationUITest; import java.util.List; import java.util.concurrent.TimeUnit; public class ESBJAVA_2841TestCase extends ESBIntegrationUITest { private WebDriver driver; @BeforeClass(alwaysRun = true) public void setUp() throws Exception { super.init(); loadESBConfigurationFromClasspath("artifacts/ESB/synapseconfig/proxyadmin/log_with_custom_property.xml"); driver = BrowserManager.getWebDriver(); driver.get(getLoginURL()); TimeUnit.SECONDS.sleep(2); } @Test(groups = "wso2.esb", description = "verify log mediator can be accessed via mgmt console with custom properties") public void addLogMediatorCustomProperty() throws Exception { LoginPage logPage = new LoginPage(driver); logPage.loginAs(userInfo.getUserName(), userInfo.getPassword()); //Click on API view driver.findElement(By.linkText("List")).click(); //Reading the table of APIs WebElement table = driver.findElement(By.id("sgTable")); //getting all the rows List<WebElement> allRows = table.findElements(By.tagName("tr")); outerLoop: for (WebElement row : allRows) { List<WebElement> cells = row.findElements(By.tagName("nobr")); //Selecting the LogMediatorProxy service for (WebElement proxyService : cells) { if (proxyService.getText().equals("LogMediatorProxy")) { //go to Edit -> Design view row.findElement(By.linkText("Design View")).click(); driver.findElement(By.id("nextBtn")).click(); //clicking the edit button of in sequence driver.findElement(By.id("inAnonAddEdit")).click(); //look for the log mediator WebElement logMediator = driver.findElement(By.linkText("Log")); logMediator.click(); TimeUnit.SECONDS.sleep(1); // look for the 'Add Property' link driver.findElement(By.linkText("Add Property")).click(); // specify the name for the custom property driver.findElement(By.xpath("//*[@id=\"propertyName0\"]")).sendKeys("testProperty"); // specify the value for the custom property driver.findElement(By.xpath("//*[@id=\"propertyValue0\"]")).sendKeys("testValue"); // add the property driver.findElement(By.xpath("//*[@id=\"mediator-editor-form\"]/table/tbody/tr/td[1]/input[4]")).click(); TimeUnit.SECONDS.sleep(1); // check if loading the log mediator editor works now logMediator.click(); //checking the log mediator editor is successfully loaded String logMediatorEditorText = driver.findElement(By.xpath("//*[@id=\"mediator-editor-form\"]/div/table/tbody/tr[1]/td/h2")).getText(); Assert.assertEquals(logMediatorEditorText, "Log Mediator", "Log mediator editor did not load properly"); /*** * need to check with error message without the patch */ TimeUnit.SECONDS.sleep(1); break outerLoop; } } } TimeUnit.SECONDS.sleep(2); } @AfterClass(alwaysRun = true) public void tearDown() throws Exception { driver.close(); super.cleanup(); } }