blob: b1db197c4ef2786fdd3f2fc4bbb5998b0f13917a [file] [log] [blame]
/*-
* ============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();
}
}