/*- | |
* ============LICENSE_START======================================================= | |
* OSAM | |
* ================================================================================ | |
* Copyright (C) 2018 AT&T | |
* ================================================================================ | |
* Licensed 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. | |
* ============LICENSE_END========================================================= | |
*/ | |
package org.onap.ecomp.vid.selenium; | |
import org.testng.annotations.AfterClass; | |
import org.testng.annotations.AfterMethod; | |
import org.testng.annotations.AfterSuite; | |
import org.testng.annotations.BeforeClass; | |
import org.testng.annotations.BeforeMethod; | |
import org.testng.annotations.BeforeSuite; | |
import org.testng.annotations.BeforeTest; | |
import org.testng.annotations.Test; | |
import org.openqa.selenium.By; | |
import org.openqa.selenium.WebDriver; | |
import org.openqa.selenium.WebElement; | |
import org.openqa.selenium.firefox.FirefoxDriver; | |
import org.openqa.selenium.ie.InternetExplorerDriver; | |
import org.openqa.selenium.support.ui.Select; | |
import java.io.FileInputStream; | |
import java.io.IOException; | |
import java.io.InputStream; | |
import java.util.List; | |
import java.util.Properties; | |
import java.util.concurrent.TimeUnit; | |
import org.apache.log4j.Logger; | |
import org.testng.Assert; | |
import org.testng.asserts.*; | |
public class FirstClass { | |
WebElement loginButton; | |
/** The eg. */ | |
String eg; | |
/** The login. */ | |
WebElement login; | |
/** The pwd. */ | |
WebElement pwd; | |
/** The log. */ | |
Logger log; | |
/** The errormessage. */ | |
WebElement errormessage; | |
/** The driver. */ | |
WebDriver driver=new FirefoxDriver(); | |
/** The config prop. */ | |
private final Properties configProp = new Properties(); | |
/** | |
* Instantiates a new first class. | |
*/ | |
private FirstClass() { | |
// TODO Auto-generated constructor stub | |
// | |
try{ | |
// InputStream input =this.getClass().getClassLoader().getResourceAsStream("objectmap.properties"); | |
//FileInputStream input1 = new FileInputStream("objectmap.properties"); | |
InputStream input =new FileInputStream("objectconfig.properties"); | |
System.out.println("Read all properties from file"); | |
configProp.load(input); | |
System.out.println("Read all properties from file completed"); | |
} | |
catch(IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
/* | |
@BeforeClass | |
public void setUp() { | |
System.out.println("*******************"); | |
System.out.println("launching IE browser"); | |
System.setProperty("webdriver.ie.driver", driverPath+"IEDriverServer.exe"); | |
driver = new InternetExplorerDriver(); | |
driver.findElement(By.className()); | |
driver.manage().window().maximize(); | |
login = driver.findElement(By.xpath("//input[@class='fn-ebz-text ng-pristine ng-valid']")); | |
pwd = driver.findElement(By.xpath("//input[@class='span3 ng-pristine ng-valid']")); | |
loginButton = driver.findElement(By.id("loginBtn")); | |
} | |
*/ | |
/** | |
* Sets the up. | |
*/ | |
// TODO Auto-generated method stub | |
@BeforeClass | |
public void setUp() | |
{ | |
//WebDriver driver=new FirefoxDriver(); | |
log = Logger.getLogger(FirstClass.class.getName()); | |
// Get url | |
driver.get(configProp.getProperty("baseURL")); | |
driver.manage().window().maximize(); | |
login = driver.findElement(By.xpath(configProp.getProperty("login"))); | |
pwd = driver.findElement(By.xpath(configProp.getProperty("pwd"))); | |
loginButton = driver.findElement(By.id(configProp.getProperty("loginButton"))); | |
} | |
/** | |
* Empty username password. | |
*/ | |
@Test(priority=1) | |
public void emptyUsernamePassword() | |
{ | |
//User Name and Password field is empty | |
log.info("-----VID-11 TC-8----Username and password empty"); | |
loginButton.click(); | |
errormessage=driver.findElement(By.xpath("//*[@id='errorInfo']/span")); | |
String errmsg= errormessage.getText(); | |
//System.out.println("Error message is"+errmsg); | |
//String expected = "Invaild username or password, Please try again"; | |
//Assert.assertEquals(errmsg,expected); | |
Boolean str = driver.getPageSource().contains("Invalid username or password, Please try again"); | |
System.out.println(driver.getPageSource().contains("Invalid username or password, Please try again")); | |
if(str==true) | |
{ | |
log.info("Error message validated"); | |
log.info("VID-11 TC-8 PASSED"); | |
}else | |
log.error("Failed validation"); | |
} | |
/** | |
* Invalid user name. | |
*/ | |
@Test(priority=2) | |
public void invalidUserName() | |
{ | |
log.info("-----VID-11 TC-6----Invalid Username and Valid Password"); | |
login.sendKeys("xxx"); | |
pwd.sendKeys("abc123"); | |
loginButton.click(); | |
try { | |
Thread.sleep(5000); | |
} catch (InterruptedException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
String errmsg= errormessage.getText(); | |
String expected = "Invalid username or password, Please try again"; | |
Assert.assertEquals(errmsg,expected); | |
//Boolean str1 = driver.getPageSource().contains("Invalid username or password, Please try again"); | |
//System.out.print(str1); | |
log.info("VID-11 TC-6 PASSED"); | |
} | |
/** | |
* Invalid password. | |
*/ | |
@Test(priority=3) | |
public void invalidPassword() | |
{ | |
log.info("-----VID-11 TC-7----Valid Username and Invalid Password"); | |
// Valid user name and Invalid password. | |
login.clear(); | |
pwd.clear(); | |
login.sendKeys("testuser"); | |
pwd.sendKeys("xxx"); | |
loginButton.click(); | |
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); | |
String errmsg= errormessage.getText(); | |
String expected = "Invalid username or password, Please try again"; | |
Assert.assertEquals(errmsg,expected); | |
//Boolean str2 = driver.getPageSource().contains("Invaild username or password, Please try again"); | |
//System.out.print(str2); | |
log.info("VID-11 TC-7 PASSED"); | |
} | |
/** | |
* Login successful. | |
*/ | |
@Test(priority=4) | |
public void loginSuccessful() | |
{ | |
log.info("-----VID-11 TC-1----Valid Username and Valid Password"); | |
//Login with valid user name and password. | |
login.clear(); | |
login.sendKeys("su"); | |
pwd.clear(); | |
pwd.sendKeys("fusion"); | |
loginButton.click(); | |
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); | |
try { | |
Thread.sleep(6000); | |
} catch (InterruptedException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
Assert.assertTrue(driver.getPageSource().contains("Search Existing Service Instances")); | |
log.info("VID-11 TC-1 PASSED"); | |
} | |
/** | |
* Verify home page elements left pane. | |
*/ | |
@Test(priority=5) | |
public void verifyHomePageElementsLeftPane() | |
{ | |
log.info("VID-10 TC 1 "); | |
//VID Home | |
log.info("VID 11 TC-2"); | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[1]/a/span")).isDisplayed(); | |
//Create New Service Instance | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[2]/a/span")).isDisplayed(); | |
//Browse Service Type | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[3]/a/span")).isDisplayed(); | |
//View Log | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[4]/a/span")).isDisplayed(); | |
//Profile | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[5]/a/span")).isDisplayed(); | |
//Admin | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[6]/a/span")).isDisplayed(); | |
//Logout | |
driver.findElement(By.xpath("html/body/div[1]/div[1]/div/div/div[2]/div/div/div[1]/div/div/accordion/div/div[7]/a/span")).isDisplayed(); | |
//Infrastructure Subscriber Name | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[1]/td[1]/div/label")).isDisplayed(); | |
//Infrastructure Subscriber Name Select Drop down | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[1]/td[2]/div/select")).isDisplayed(); | |
//Infrastructure Service Type | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[2]/td[1]/div/label")).isDisplayed(); | |
//Infrastructure Service Type Select Drop down | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[2]/td[2]/div/select")).isDisplayed(); | |
//Submit button | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[3]/td/div/button")).isDisplayed(); | |
//Login Snippet Icon | |
driver.findElement(By.xpath(".//*[@class='icon-user-small login-snippet-icon']")).isDisplayed(); | |
//String bodyText = driver.findElement(By.tagName("body")).getText(); | |
//Assert.assertTrue("Text not found!", bodyText.contains("Search Existing Service Instances")); | |
//Assert.IsTrue(driver.getPageSource.Contains("Search Existing Service Instances")); | |
log.info("VID-12 TC-1"); | |
Assert.assertTrue(driver.getPageSource().contains("Search Existing Service Instances")); | |
Assert.assertTrue(driver.getPageSource().contains("Please search by the Subscriber name or Service Type from below:")); | |
log.info("VID-12 TC-1 PASSED"); | |
log.info("VID-10 TC 1 PASSED"); | |
log.info("VID-11 TC-2 PASSED"); | |
} | |
/** | |
* Disabled submit button. | |
*/ | |
@Test(priority=6) | |
public void disabledSubmitButton() | |
{ | |
log.info("VID-12 TC-13"); | |
//Assert submit button disabled. | |
Assert.assertFalse(driver.findElement(By.xpath(configProp.getProperty("submitButton"))).isEnabled()); | |
log.info("VID-12 TC-13 PASSED"); | |
} | |
/** | |
* Default list box value. | |
*/ | |
@Test(priority=7) | |
public void defaultListBoxValue() | |
{ | |
log.info("VID-12 TC-2"); | |
//WebElement subscribername =driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[1]/td[2]/div/select")); | |
Select oSelect = new Select(driver.findElement(By.xpath(configProp.getProperty("subscriberNameDropDown")))); | |
Select iSelect = new Select(driver.findElement(By.xpath(configProp.getProperty("serviceTypeDropDown")))); | |
WebElement ielement=iSelect.getFirstSelectedOption(); | |
WebElement oelement=oSelect.getFirstSelectedOption(); | |
String defaultsubscribername=oelement.getText(); | |
String defaultservicetype=ielement.getText(); | |
Assert.assertEquals(defaultsubscribername,"Select Subscriber Name"); | |
Assert.assertEquals(defaultservicetype,"Select Service Type"); | |
//Verify Select Subscriber Name isDisplayed. | |
//driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[1]/td[2]/div/select/option[1]")).isSelected(); | |
//Verify Select Service Type isDisplayed. | |
//driver.findElement(By.xpath(".//*[@id='mContent']/div/div/table/tbody/tr[2]/td[2]/div/select/option[1]")).isSelected(); | |
log.info("VID-12 TC-2 PASSED"); | |
} | |
/** | |
* Select subscriber name drop down. | |
* | |
* @throws InterruptedException the interrupted exception | |
*/ | |
@Test(priority=8) | |
public void selectSubscriberNameDropDown() throws InterruptedException | |
{ | |
log.info("------------------VID-10 TC-2,VID-12 TC-11, VID-12 TC-9, VID 12 TC-10,VID-12 TC-6, VID 12 TC-5--------------------"); | |
driver.findElement(By.xpath(configProp.getProperty("subscriberNameDropDown"))); | |
driver.findElement(By.xpath(configProp.getProperty("serviceTypeDropDown"))); | |
Thread.sleep(5000); | |
//Infrastructure Subscriber Name | |
Select oSelect = new Select(driver.findElement(By.xpath(configProp.getProperty("subscriberNameDropDown")))); | |
List <WebElement> elementCount = oSelect.getOptions(); | |
log.info("Select Element Count of Service Name"); | |
System.out.println(elementCount.size()); | |
//Verifying getInfrastructureSubscribersList | |
log.info("VID-29 TC-1"); | |
Assert.assertTrue(elementCount.size()>0); | |
log.info("VID-29 TC-1 PASSED"); | |
oSelect.selectByIndex(2); | |
String selectedOption = new Select(driver.findElement(By.xpath(configProp.getProperty("subscriberNameDropDown")))).getFirstSelectedOption().getText(); | |
System.out.println("Service Name selected is " +selectedOption); | |
log.info("VID-10 TC-2 PASSED"); | |
//Submit button is clicked | |
driver.findElement(By.xpath(configProp.getProperty("submitButton"))).click(); | |
//Verify whether the page header is displayed "Selected Subscriber's Service Instance Details:" | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/div/h1")).isDisplayed(); | |
//Assert.assertTrue(driver.getPageSource().contains("Selected Subscriber's Service Instance Details:")) | |
//Verify whether the page header is displayed "Global Customer ID" | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/div/div/table/thead/tr/th[2]/div")).isDisplayed(); | |
Assert.assertTrue(driver.getPageSource().contains("Global Customer ID")); | |
Assert.assertTrue(driver.getPageSource().contains("Subscriber Name")); | |
Assert.assertTrue(driver.getPageSource().contains("Service Type")); | |
Assert.assertTrue(driver.getPageSource().contains("Service Instance ID")); | |
log.info("VID-12 TC-5 PASSED"); | |
log.info("VID-12 TC-11 PASSED"); | |
WebElement serviceinstancetable =driver.findElement(By.xpath("//table[@class='tablesorter tablesorter-default ng-isolate-scope']")); | |
List<WebElement> rows_table = serviceinstancetable.findElements(By.tagName("tr")); | |
//To calculate no of rows In table. | |
int rows_count = rows_table.size(); | |
//Loop will execute till the last row of table. | |
for (int row=0; row<rows_count; row++){ | |
//To locate columns(cells) of that specific row. | |
List<WebElement> Columns_row = rows_table.get(row).findElements(By.tagName("td")); | |
//To calculate no of columns(cells) In that specific row. | |
int columns_count = Columns_row.size(); | |
//System.out.println("Number of cells In Row "+row+" are "+columns_count); | |
//Loop will execute till the last cell of that specific row. | |
for (int column=0; column<columns_count; column++){ | |
//To retrieve text from that specific cell. | |
String celtext = Columns_row.get(column).getText(); | |
//System.out.println("Cell Value Of row number "+row+" and column number "+column+" Is "+celtext); | |
//log.info("Testing Get column and row value"); | |
List <WebElement> exx= rows_table.get(1).findElements(By.tagName("td")); | |
eg=Columns_row.get(2).getText(); | |
// System.out.println("Cell value of row 1 and column 2 is" +eg); | |
} | |
} | |
//Verify View/Edit isDisplayed and Click | |
driver.findElement(By.xpath("//a[@alt='View/Edit']")).isDisplayed(); | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/div/div/table/tbody/tr[1]/td[1]/div/a")).click(); | |
log.info("User clicked View/Edit"); | |
//Verify the Subscriber Name displayed. | |
String header= driver.findElement(By.xpath("//h1[@class='heading1 ng-binding']")).getText(); | |
//System.out.println(header); | |
if(header.contains(eg)) | |
{ | |
System.out.println("Header contains the subscriber name"); | |
}else | |
System.out.println("Header does not contain the subscriber name"); | |
Assert.assertTrue(driver.getPageSource().contains("PerfTest Subscriber00020021")); | |
log.info("VID-12 TC-6 PASSED"); | |
driver.navigate().back(); | |
//Cancel button isDisplayed | |
driver.findElement(By.xpath("//button[@class='button button--small button--primary']")).isDisplayed(); | |
log.info("VID-12 TC-9 PASSED"); | |
//Cancel button is clicked | |
driver.findElement(By.xpath("//button[@class='button button--small button--primary']")).click(); | |
log.info("Cancel button is clicked"); | |
//Verifying VID Home page is displayed | |
Assert.assertTrue(driver.getPageSource().contains("Search Existing Service Instances")); | |
log.info("VID-12 TC-10 PASSED"); | |
} | |
/** | |
* Refresh subscriber name. | |
*/ | |
@Test(priority=9) | |
public void refreshSubscriberName() | |
{ | |
log.info("VID-10 TC-4"); | |
driver.findElement(By.xpath(configProp.getProperty("refreshButtonSubscriberName"))).isDisplayed(); | |
log.info("VID-10 TC-4 PASSED"); | |
} | |
/** | |
* Select subscriber type drop down. | |
* | |
* @throws InterruptedException the interrupted exception | |
*/ | |
@Test(priority=9) | |
public void selectSubscriberTypeDropDown() throws InterruptedException | |
{ | |
Thread.sleep(5000); | |
log.info("------------------VID-10 TC-3, VID-12 TC-12,--------------------"); | |
//Infrastructure Subscriber Type | |
Select iSelect = new Select(driver.findElement(By.xpath(configProp.getProperty("serviceTypeDropDown")))); | |
List <WebElement> ielementCount = iSelect.getOptions(); | |
log.info("Select Element Count of Service type"); | |
System.out.println(ielementCount.size()); | |
iSelect.selectByIndex(1); | |
log.info("VID-10 TC-3 PASSED"); | |
//Submit button is clicked | |
driver.findElement(By.xpath(configProp.getProperty("submitButton"))).click(); | |
//Verify whether the page header is displayed "Selected Subscriber's Service Instance Details:" | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/div/h1")).isDisplayed(); | |
//Assert.assertTrue(driver.getPageSource().contains("Selected Subscriber's Service Instance Details:")) | |
log.info("Page Header: Selected Subscriber's Service Instance Details"); | |
//Verify whether the page header is displayed "Global Customer ID" | |
driver.findElement(By.xpath(".//*[@id='mContent']/div/div/div/div/table/thead/tr/th[2]/div")).isDisplayed(); | |
//Assert.assertTrue(driver.getPageSource().contains("Global Customer ID")); | |
log.info("Table is displayed"); | |
log.info("VID-12 TC-12 PASSED"); | |
} | |
/** | |
* Logout under profile. | |
*/ | |
@Test(priority=10) | |
public void logoutUnderProfile() | |
{ | |
log.info("-----------VID-11 TC-5---------------------"); | |
//driver.findElement(By.partialLinkText("Click here to login")).click(); | |
//driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); | |
driver.findElement(By.xpath(".//*[@class='icon-user-small login-snippet-icon']")).click(); | |
driver.findElement(By.xpath(".//*[@id='reg-logout-div']/a")).click(); | |
//Validate that the user has logged out of VID. Displays "Portal" | |
Assert.assertTrue(driver.getPageSource().contains("Portal")); | |
log.info("VID-11 TC-5 PASSED"); | |
} | |
/** | |
* Tear down. | |
*/ | |
@AfterClass | |
public void tearDown() | |
{ | |
driver.close(); | |
} | |
} | |