diff --git a/Hills_With_Cucumber/.classpath b/Hills_With_Cucumber/.classpath new file mode 100644 index 0000000..8a37db5 --- /dev/null +++ b/Hills_With_Cucumber/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Hills_With_Cucumber/.project b/Hills_With_Cucumber/.project new file mode 100644 index 0000000..faec735 --- /dev/null +++ b/Hills_With_Cucumber/.project @@ -0,0 +1,23 @@ + + + Hills_With_Cucumber + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/Hills_With_Cucumber/.settings/org.eclipse.jdt.core.prefs b/Hills_With_Cucumber/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..abec6ca --- /dev/null +++ b/Hills_With_Cucumber/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/Hills_With_Cucumber/.settings/org.eclipse.m2e.core.prefs b/Hills_With_Cucumber/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/Hills_With_Cucumber/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/Hills_With_Cucumber/Drivers/chromedriver/chromedriver.exe b/Hills_With_Cucumber/Drivers/chromedriver/chromedriver.exe new file mode 100644 index 0000000..e12a854 Binary files /dev/null and b/Hills_With_Cucumber/Drivers/chromedriver/chromedriver.exe differ diff --git a/Hills_With_Cucumber/Drivers/geckodriver/geckodriver.exe b/Hills_With_Cucumber/Drivers/geckodriver/geckodriver.exe new file mode 100644 index 0000000..a010476 Binary files /dev/null and b/Hills_With_Cucumber/Drivers/geckodriver/geckodriver.exe differ diff --git a/Hills_With_Cucumber/Resources/browser-config.properties b/Hills_With_Cucumber/Resources/browser-config.properties new file mode 100644 index 0000000..a291841 --- /dev/null +++ b/Hills_With_Cucumber/Resources/browser-config.properties @@ -0,0 +1,2 @@ +browser.baseURL=https://testcolpal.aisselkolm.com/hills_staging/login +browser.name=chrome \ No newline at end of file diff --git a/Hills_With_Cucumber/pom.xml b/Hills_With_Cucumber/pom.xml new file mode 100644 index 0000000..0f4f492 --- /dev/null +++ b/Hills_With_Cucumber/pom.xml @@ -0,0 +1,170 @@ + + 4.0.0 + Hills_With_Cucumber + Hills_With_Cucumber + 0.0.1-SNAPSHOT + jar + + + Maven + http://maven.apache.org + + + UTF-8 + + + + + jitpack.io + https://jitpack.io + + + + + + junit + junit + 3.8.1 + test + + + + + + com.github.ralfstuckert.pdfbox-layout + pdfbox2-layout + 0.8.6 + + + + + + + org.testng + testng + 6.14.3 + test + + + + com.apple + AppleJavaExtensions + 1.4 + + + + + io.cucumber + cucumber-java8 + 4.8.1 + + + + + + io.cucumber + cucumber-junit + 4.8.1 + test + + + + + org.seleniumhq.selenium + selenium-java + 3.141.59 + + + + + + com.aventstack + extentreports-cucumber4-adapter + 1.0.12 + + + io.cucumber + cucumber-java + + + o.cucumber + cucumber-core + + + + + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.19.1 + + true + + + + net.masterthought + maven-cucumber-reporting + 5.0.0 + + + execution + verify + + generate + + + maven + + false + + target/cucumber-reports/advanced-reports + + target/cucmber-reports/cucumber.json + ${project.build.directory}/jsonReports + + + **/*.json + + + ${project.build.directory}/classifications + + + sample.properties + other.properties + + false + + false + + false + + false + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + 1.8 + 1.8 + + + + + + + + + diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/ContactsPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/ContactsPage.java new file mode 100644 index 0000000..61ac0a8 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/ContactsPage.java @@ -0,0 +1,400 @@ +package PageObjects; +import java.io.File; +import java.util.Iterator; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import org.openqa.selenium.By; +import org.openqa.selenium.StaleElementReferenceException; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.Select; +import org.openqa.selenium.support.ui.WebDriverWait; + +import Utilities.BrowserUtility; + +public class ContactsPage extends BrowserUtility{ + + +@FindBy(how=How.XPATH, using="//div[@class='navLinkMyKolsIn sprite_iconSet']") +WebElement tabContacts; + + +@FindBy(how=How.XPATH, using="((//*[contains(@id,'categoryCountry')])//tbody/tr[4]/td[1])") +WebElement filterCountry; + +@FindBy(how=How.XPATH, using="(//span[@class='record_name'])[1]") +WebElement HCPProfile; + +@FindBy(how=How.XPATH, using="//a[@target='_new']") +WebElement lnkViewProfile; + +@FindBy(how=How.XPATH, using="//p[contains(text(),'Australia') or contains(text(),'India')]") +WebElement txtHcpCountry; + +@FindBy(how=How.XPATH, using="//a[@class='addHcpIcon']") +WebElement addHcp; + +@FindBy(how=How.XPATH, using="//select[@name='salutation']") +WebElement drpSalutation; + +@FindBy(how=How.XPATH, using="//select[@name='country_id']") +WebElement drpCountry; + +@FindBy(how=How.XPATH, using="//select[@name='lang_id']") +WebElement drpLanguage; + +@FindBy(how=How.XPATH, using="//input[@name='first_name']") +WebElement txtFirstName; + +@FindBy(how=How.XPATH, using="//input[@name='last_name']") +WebElement txtLastName; + +@FindBy(how=How.XPATH, using="//input[@name='email']") +WebElement txtEmail; + +@FindBy(how=How.ID, using="save_data") +WebElement btnSave; + +@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[2]/label[1]") +WebElement msgSalutationMandatory; + +@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[4]/label[1]") +WebElement msgFirstNameMandatory; + +@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[6]/label[1]") +WebElement msgLastNameMandatory; + +@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[2]/label[1]") +WebElement msgEmailMandatory; + +@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[4]/label[1]") +WebElement msgCountryMandatory; + +@FindBy(how=How.XPATH, using="//tbody/tr[3]/td[1]/a[3]") +WebElement btnCancel; + +@FindBy(how=How.XPATH, using="//tbody/tr[@id='kol3609']/td[1]/input[2]") +WebElement cbxKOL; + +@FindBy(how=How.XPATH, using="//div[@class='pdfExportIcon sprite_iconSet']") +WebElement lnkPDFExport; + +@FindBy(how=How.XPATH, using="//input[@name='full_profile']") +WebElement cbxFullProfile; + +@FindBy(how=How.XPATH, using="//input[@id='next']") +WebElement btnExport; + +@FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']") +WebElement lnkExcelExport; + +@FindBy(how=How.XPATH, using="//span[contains(text(),'My Contacts')]") +WebElement drpAssigned; + +@FindBy(how=How.XPATH, using="//div[@class='assignProfileIcon sprite_iconSet']") +WebElement lnkAssign; + +@FindBy(how=How.XPATH, using="//input[@value='Select Users']") +WebElement drpUser; + +@FindBy(how=How.XPATH, using="//input[@value='Assign']") +WebElement btnAssign; + +@FindBy(how=How.XPATH, using="//li[@id='viewType_chzn_o_1']") +WebElement selectAllContacts; + +@FindBy(how=How.XPATH, using="//div[@id='emailIcon']") +WebElement lnkEmail; + +@FindBy(how=How.XPATH, using="//textarea[@id='to']") +WebElement txtAreaTo; + +@FindBy(how=How.XPATH, using="//input[@id='sendEmail']") +WebElement btnSend; + +@FindBy(how=How.XPATH, using="//div[@class='createListIcon sprite_iconSet']") +WebElement lnkList; + +@FindBy(how=How.XPATH, using="//select[@name='category_id']") +WebElement drpCategory; +//option[@id='catCss'] + +@FindBy(how=How.XPATH, using="//tbody/tr[2]/td[1]/p[1]/input[1]") +WebElement txtAreaAddNewCategory; + +@FindBy(how=How.XPATH, using="//select[@id='list_id']") +WebElement drpList; + +//option[@id='css1'] + +@FindBy(how=How.XPATH, using="//tbody/tr[4]/td[1]/p[1]/input[1]") +WebElement txtAreaListName; + +@FindBy(how=How.XPATH, using="//input[@id='saveKolList']") +WebElement btnSaveKOLList; + +@FindBy(how=How.XPATH, using="//input[@id='searchKeyword']") +WebElement txtAreaSearchKOL; + +@FindBy(how=How.XPATH, using="//label[@class='kolName']") +WebElement lnkKOLName; + +@FindBy(how=How.XPATH, using="//input[@id='unassignMeButton']") +WebElement btnUnAssign; + +@FindBy(how=How.XPATH, using="//body/div[35]/div[1]/a[1]/span[1]") +WebElement iconCancel; + + + + + +WebDriver driver; +String text; + +public ContactsPage(WebDriver driver) { + this.driver=driver; + PageFactory.initElements(driver, this); +} + + +public void clickContactTab() { + //Thread.sleep(3000); + tabContacts.click(); +} + +public void filterCountryName() throws InterruptedException { + Thread.sleep(3000); + filterCountry.click(); + text=filterCountry.getText(); + System.out.println("Country Name"+" "+text+" "+"filtering in Refine By section"); + +} + +public void clickOnHCPProfile() { + driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); + //HCPProfile.click(); + try{ + HCPProfile.click(); + } + catch(StaleElementReferenceException e) + { + HCPProfile.click(); + } +} + +public void clickViewProfile() throws InterruptedException { + Thread.sleep(2000); + lnkViewProfile.click(); +} + +public void verifyCountryName() { + driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); + + String string = txtHcpCountry.getText(); + String[] parts = string.split(","); + String part = parts[1]; + String countryName=part.trim(); + System.out.println("Country Name displayed in bussiness card is"+" " +countryName); + if(countryName.equalsIgnoreCase(text)) { + System.out.println("HCP filter is successful"); + }else { + System.out.println("HCP filter is not successful"); + } + /*String parent=driver.getWindowHandle(); + Set s= driver.getWindowHandles(); + IteratorI1=s.iterator(); + while(I1.hasNext()) { + String child=I1.next(); + if(!parent.equals(child)) { + driver.switchTo().window(child); + + String string = txtHcpCountry.getText(); + String[] parts = string.split(","); + String part = parts[1]; + String countryName=part.trim(); + System.out.println("Country Name displayed in bussiness card is"+" " +countryName); + if(countryName.equalsIgnoreCase(text)) { + System.out.println("HCP filter is successful"); + }else { + System.out.println("HCP filter is not successful"); + } + driver.close(); + } + } + driver.switchTo().window(parent);*/ +} + +public void clickAddHcp() { + addHcp.click(); +} + +public void clickSaveButton() throws InterruptedException { + btnSave.click(); + Thread.sleep(3000); + +} +public void verifyErrorMessageShownForMandatoryFields() { + String msgSalutation=msgSalutationMandatory.getText(); + String msgFirstName=msgFirstNameMandatory.getText(); + String msgLastName=msgLastNameMandatory.getText(); + String msgEmail=msgEmailMandatory.getText(); + String msgCountry=msgCountryMandatory.getText(); + + if(msgSalutation.equalsIgnoreCase("Required")&&msgFirstName.equalsIgnoreCase("Required")&&msgLastName.equalsIgnoreCase("Required")&&msgEmail.equalsIgnoreCase("Required")&&msgCountry.equalsIgnoreCase("Required")) + { + System.out.println("Passed: Mandatory fields are shown as Required"); + }else { + System.out.println("Failed: Mandatory fields are not shown as Required"); + } +} + +public void clickCancelButton() { + btnCancel.click(); +} +public void verifyUserNavigationToContacts() { + String ContactsPageTitle=driver.getCurrentUrl(); + if(ContactsPageTitle.equalsIgnoreCase("https://testcolpal.aisselkolm.com/hills_staging/kols/list_kols_client_view")) + { + System.out.println("Passed: User is successfully navigated to contacts page on click of cancel button in add KOL page"); + }else { + System.out.println("Passed: User is not successfully navigated to contacts page on click of cancel button in add KOL page"); + } +} +public void selectAKOL() { + try{ + cbxKOL.click(); + } + catch(StaleElementReferenceException e) + { + cbxKOL.click(); + } +} +public void clickOnPDFLink() { + lnkPDFExport.click(); + +} +public void verifyPDFFileDownload() throws InterruptedException { + Thread.sleep(3000); + File f1=new File("C:\\Users\\hp\\Downloads\\Adam Critsin.pdf"); + if(f1.exists()) { + System.out.println("KOL details downloaded as PDF file"); + f1.delete(); + } +} + +public void clickOnExcelLink() { + lnkExcelExport.click(); +} + +public void selectFullProfile() throws InterruptedException { + Thread.sleep(2000); + cbxFullProfile.click(); +} + +public void clickExportButton() { + btnExport.click(); +} + +public void verifyExcelFileDownload() throws InterruptedException { + Thread.sleep(3000); + iconCancel.click(); + File f1=new File("C:\\Users\\hp\\Downloads\\KTL_profiles.xlsx"); + if(f1.exists()) { + System.out.println("KOL Full profile exported as Excel file"); + f1.delete(); + } +} + +public void selectAllContacts() throws InterruptedException { + drpAssigned.click(); + Thread.sleep(2000); + Actions act = new Actions(driver); + act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_1']"))).click().build().perform(); + Thread.sleep(2000); + //drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click(); + /*try{ + drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click(); + System.out.println("Clicked on All contacts"); + } + catch(StaleElementReferenceException e) + { + drpAssigned.findElement(By.xpath("//li[@id='viewType_chzn_o_1']")).click(); + System.out.println("Clicked on All contantcs failed"); + }*/ + +} + +public void clickAssignLink() { + lnkAssign.click(); +} + +public void selectUser() throws InterruptedException { + //Thread.sleep(2000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@value='Select Users']"))).click(); + drpUser.findElement(By.xpath("//li[@id='users_chzn_o_1']")).click(); + +} + +public void clickAssignButton() throws InterruptedException { + btnAssign.click(); + Thread.sleep(2000); +} + +public void clickEmailLink() throws InterruptedException { + lnkEmail.click(); + Thread.sleep(1000); +} + +public void enterToEmail(String email) throws InterruptedException { + Thread.sleep(1000); + txtAreaTo.sendKeys(email); + Thread.sleep(1000); +} + +public void clickSendButton() throws InterruptedException { + btnSend.click(); + Thread.sleep(6000); +} + +public void clickListLink() { + + lnkList.click(); +} + +public void selectAddNewCategory() throws InterruptedException { + Thread.sleep(2000); + Select category=new Select(drpCategory); + category.selectByVisibleText("Add New Category"); + txtAreaAddNewCategory.sendKeys("Rocky"); +} + +public void selectAddNewList() { + Select listName=new Select(drpList); + listName.selectByVisibleText("Add New List Name"); + txtAreaListName.sendKeys("Sam"); +} + +public void clickListSaveButton() throws InterruptedException { + btnSaveKOLList.click(); + Thread.sleep(2000); + +} +public void clickOnKOLName(String KOLName) throws InterruptedException { + txtAreaSearchKOL.sendKeys(KOLName); + Thread.sleep(2000); + lnkKOLName.click(); +} + +public void clickUnAssignButton() throws InterruptedException { + Thread.sleep(2000); + btnUnAssign.click(); + +} +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/HomePage.java b/Hills_With_Cucumber/src/test/java/PageObjects/HomePage.java new file mode 100644 index 0000000..aa13d99 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/HomePage.java @@ -0,0 +1,42 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import Utilities.BrowserUtility; + +public class HomePage extends BrowserUtility +{ + + @FindBy(how=How.XPATH, using="(//a[@class='show-all-link'])[1]") + WebElement LinkShowMore; + + @FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[2]/div[2]/div[2]/div[2]/a[1]/span[1]") + WebElement RaShowMore; + + @FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[3]/div[1]/div[1]/div[1]/form[1]/div[5]/input[1]") + WebElement ViewAllNews; + WebDriver driver; + public HomePage(WebDriver driver) + { + this.driver=driver; + PageFactory.initElements(driver,this); + + } + public void clickshowmorelink() throws InterruptedException + { + Thread.sleep(7000); + LinkShowMore.click(); + + } + public void clickrashowmorelink() + { + RaShowMore.click(); + } + public void clickallnewslink() + { + ViewAllNews.click(); + } +} diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/KOLProfilePage.java b/Hills_With_Cucumber/src/test/java/PageObjects/KOLProfilePage.java new file mode 100644 index 0000000..859c2a6 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/KOLProfilePage.java @@ -0,0 +1,407 @@ +package PageObjects; + +import java.io.File; +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +public class KOLProfilePage { + @FindBy(how=How.XPATH, using="//textarea[@id='user-note']") + WebElement txtAreaUserNote; + + @FindBy(how=How.XPATH, using="//button[@id='saveBtn']") + WebElement btnSave; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Training')]") + WebElement lnkAddTraining; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Honors and Awards')]") + WebElement lnkAddHonorsAndAwards; + + @FindBy(how=How.XPATH, using="//body/div[35]/div[1]/a[1]/span[1]") + WebElement iconCancel; + + @FindBy(how=How.XPATH, using="//a[@id='detailsForHint']") + WebElement tabDetails; + + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Location')]") + WebElement lnkAddLocation; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Phone')]") + WebElement lnkAddPhone; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Staff')]") + WebElement lnkAddStaff; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Email')]") + WebElement lnkAddEmail; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Assign')]") + WebElement lnkAddAssign; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[19]") + WebElement iconCancelLocation; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[20]") + WebElement iconCancelPhoneNumber; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[21]") + WebElement iconCancelStaff; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[22]") + WebElement iconCancelEmail; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[24]") + WebElement iconCancelAssign; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Track')]") + WebElement tabTrack; + + @FindBy(how=How.XPATH, using="//a[@data-original-title='Export Interaction Detail into Excel format']") + WebElement exportIntractions; + + @FindBy(how=How.XPATH, using="//a[@id='report']") + WebElement tabReport; + + @FindBy(how=How.XPATH, using="//a[@id='chart']") + WebElement tabChart; + +@FindBy(how=How.XPATH, using="//a[@id='calender']") +WebElement tabCalendar; + +@FindBy(how=How.XPATH, using="//a[@id='payementType']") +WebElement tabPaymentType; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Payment')]") +WebElement lnkAddPayment; + +@FindBy(how=How.XPATH, using="//input[@value='Cancel']") +WebElement btnCancel; + +@FindBy(how=How.XPATH, using="//a[@id='conratctType']") +WebElement tabContract; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Contract')]") +WebElement lnkAddContract; + +@FindBy(how=How.XPATH, using="//body/div[23]/div[1]/a[1]/span[1]") +WebElement iconCancelContract; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Affiliations')]") +WebElement tabAffiliation; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Add Affiliation')]") +WebElement lnkAddAffiliation; + +@FindBy(how=How.XPATH, using="//body/div[20]/div[1]/a[1]/span[1]") +WebElement iconCancelAffiliation; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Reports Org')]") +WebElement tabReportOrg; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Reports Eng')]") +WebElement tabReportEng; + +@FindBy(how=How.XPATH, using="//tbody/tr[1]/td[4]/a[1]") +WebElement tabEvents; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Add New Event')]") +WebElement lnkAddNewEvent; + +@FindBy(how=How.XPATH, using="//body/div[25]/div[1]/a[1]/span[1]") +WebElement iconCancelEvent; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Events Charts')]") +WebElement tabEventsCharts; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Publications')]") +WebElement tabPublications; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Add New Publication')]") +WebElement lnkAddNewPublication; + +@FindBy(how=How.XPATH, using="//body/div[25]/div[1]/a[1]/span[1]") +WebElement iconCancelPublication; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Pubs Charts')]") +WebElement tabPubsCharts; + +@FindBy(how=How.XPATH, using="//a[@data-original-title='Export All Affilations Details into Excel format']") +WebElement exportAffiliation; + +@FindBy(how=How.XPATH, using="//a[@data-original-title='Export Events Details into Excel format']") +WebElement exportEvents; + +@FindBy(how=How.XPATH, using="//a[@data-original-title='Export Publications Details into Excel format']") +WebElement exportPublications; + + + +WebDriver driver; + +public KOLProfilePage(WebDriver driver) { + this.driver=driver; + PageFactory.initElements(driver, this); +} + +public void addUserNotes(String usernote) { + txtAreaUserNote.sendKeys(usernote); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@id='saveBtn']"))).click(); + +} + +public void openAndCloseAddTraining() throws InterruptedException { + lnkAddTraining.click(); + //Thread.sleep(4000); + WebDriverWait wait=new WebDriverWait(driver, 20); + Thread.sleep(1000); + wait.until(ExpectedConditions.visibilityOf(iconCancel)).click(); + //iconCancel.click(); + +} + +public void openAndCloseAddHonorsAndAwards() throws InterruptedException{ + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript("window.scrollBy(0,500)"); + Thread.sleep(1500); + lnkAddHonorsAndAwards.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancel)).click(); + //Thread.sleep(1000); + //iconCancel.click(); + + /*WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//body/div[34]/div[1]/a[1]/span[1]"))).click(); + + Actions act = new Actions(driver); + act.moveToElement(iconCancel).click().build().perform();*/ + //WebElement elementToClick = driver.findElement(By.xpath("//body/div[34]/div[1]/a[1]/span[1]")); + //((JavascriptExecutor)driver).executeScript("window.scrollTo(0,"+elementToClick.getLocation().y+")"); + //elementToClick.click(); + //driver.navigate().refresh(); + //Thread.sleep(2000); + //driver.switchTo().alert().dismiss(); +} + +public void clickDetailsTab() { + tabDetails.click(); +} + +public void openAndCloseAddLocation() throws InterruptedException { + Thread.sleep(2000); + lnkAddLocation.click(); + Thread.sleep(4000); + //WebDriverWait wait=new WebDriverWait(driver, 20); + //wait.until(ExpectedConditions.visibilityOf(iconCancelLocation)).click(); + iconCancelLocation.click(); +} + +public void openAndCloseAddPhone() throws InterruptedException { + lnkAddPhone.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelPhoneNumber)).click(); + //iconCancelPhoneNumber.click(); +} + +public void openAndCloseAddStaff() throws InterruptedException { + lnkAddStaff.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelStaff)).click(); + //iconCancelStaff.click(); +} + +public void openAndCloseAddEmail() throws InterruptedException { + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript("window.scrollBy(0,1000)"); + Thread.sleep(1000); + lnkAddEmail.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelEmail)).click(); + + //Thread.sleep(2000); + + //iconCancelEmail.click(); +} + +public void openAndCloseAddAssign() throws InterruptedException { + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript("window.scrollBy(0,1000)"); + lnkAddAssign.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelAssign)).click(); + //Thread.sleep(2000); + //iconCancelAssign.click(); + +} + +public void clickTrackTab() { + tabTrack.click(); +} + +public void exportInteractions() throws InterruptedException { + exportIntractions.click(); + Thread.sleep(1000); + File f1=new File("C:\\Users\\hp\\Downloads\\"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("Interactions_")) { + f.delete(); + System.out.println("Interaction details are exported successfully"); + } + } + +} + +public void clickReportTab() throws InterruptedException { + Thread.sleep(2000); + tabReport.click(); + +} + +public void clickChartTab() throws InterruptedException { + Thread.sleep(2000); + tabChart.click(); +} + +public void clickCalendarTab() throws InterruptedException { + Thread.sleep(2000); + tabCalendar.click(); +} + +public void clickPaymentTab() throws InterruptedException { + tabPaymentType.click(); + Thread.sleep(2000); +} + +public void addAndCloseAddPayment() throws InterruptedException { + lnkAddPayment.click(); + Thread.sleep(2000); + btnCancel.click(); + +} + +public void clickContractTab() throws InterruptedException { + tabContract.click(); + Thread.sleep(2000); +} + +public void addAndCloseAddContract() throws InterruptedException { + lnkAddContract.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelContract)).click(); + //iconCancelContract.click(); +} + +public void clickAffiliationTab() { + tabAffiliation.click(); +} + +public void openAndCloseAddAffiliation() throws InterruptedException { + Thread.sleep(2000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[contains(text(),'Add Affiliation')]"))).click(); + //lnkAddAffiliation.click(); + Thread.sleep(2000); + iconCancelAffiliation.click(); +} + +public void clickReportsOrgTab() throws InterruptedException { + tabReportOrg.click(); + Thread.sleep(1000); +} + +public void clickReportEngTab() throws InterruptedException { + tabReportEng.click(); + Thread.sleep(1000); +} + +public void clickEventTab() { + tabEvents.click(); +} + +public void openAndCloseAddNewEvent() throws InterruptedException { + Thread.sleep(1000); + lnkAddNewEvent.click(); + //WebDriverWait wait=new WebDriverWait(driver, 20); + //wait.until(ExpectedConditions.visibilityOf(iconCancelEvent)).click(); + Thread.sleep(7000); + iconCancelEvent.click(); +} + +public void clickTabEventsCharts() throws InterruptedException { + tabEventsCharts.click(); + Thread.sleep(1500); +} + +public void clickPublicationsTab() { + tabPublications.click(); +} + +public void openAndCloseAddNewPublication() throws InterruptedException { + Thread.sleep(1500); + lnkAddNewPublication.click(); + Thread.sleep(1000); + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOf(iconCancelPublication)).click(); + //Thread.sleep(2000); + //iconCancelPublication.click(); +} + +public void clickPubsCharts() throws InterruptedException { + tabPubsCharts.click(); + Thread.sleep(1500); +} + +public void exportAffiliations() throws InterruptedException { + exportAffiliation.click(); + Thread.sleep(1000); + File f1=new File("C:\\Users\\hp\\Downloads\\"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("Ktl_affiliations_")) { + f.delete(); + System.out.println("Affiliation details are exported successfully"); + } + } + +} +public void exportEvents() throws InterruptedException { + Thread.sleep(1000); + exportEvents.click(); + Thread.sleep(1000); + File f1=new File("C:\\Users\\hp\\Downloads\\"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("Ktl_events_")) { + f.delete(); + System.out.println("Event details are exported successfully"); + } + } + +} + +public void exportPublications() throws InterruptedException { + Thread.sleep(1000); + exportPublications.click(); + Thread.sleep(1000); + File f1=new File("C:\\Users\\hp\\Downloads\\"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("Ktl_publications_")) { + f.delete(); + System.out.println("Publication details are exported successfully"); + } + } + +} +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/LoginPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/LoginPage.java new file mode 100644 index 0000000..6df75bd --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/LoginPage.java @@ -0,0 +1,76 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; + +import Utilities.BrowserUtility; + +public class LoginPage extends BrowserUtility +{ + +@FindBy(how=How.ID, using="userName") +WebElement txtUsername; + +@FindBy(how=How.ID, using="passwordText") +WebElement txtPassword; + +@FindBy(how=How.ID, using="loginBtn") +WebElement btnLogin; + +@FindBy(how=How.XPATH, using="//div[@class='navLinkHome sprite_iconSet activeIcon']") +WebElement tabHome; +//WebDriver driver; + +@FindBy(how=How.XPATH, using="//td[contains(text(),'Invalid username or password')]") +WebElement invalidLogin; + + +public LoginPage(WebDriver driver) +{ + + this.driver=driver; + PageFactory.initElements(driver,this); +} + + +public void enterUsername(String username) +{ + txtUsername.sendKeys(username); +// txtPassword.sendKeys("Ss"); + +} + +public void enterPassword(String password) +{ + txtPassword.sendKeys(password); +// txtPassword.sendKeys("Ss"); + +} + +public void clickLoginButton() +{ + + btnLogin.click(); +} +public void verifyHomeTab() +{ + + if(tabHome.isDisplayed()) + { + System.out.println("Hills login is successfully"); + } + else + { + System.out.println("Hills login is not successfully"); + } +} +public void verifyInvalidLogin() +{ + + System.out.println("Invalid username or password"); +} +} + diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/MorePage.java b/Hills_With_Cucumber/src/test/java/PageObjects/MorePage.java new file mode 100644 index 0000000..32e0f7e --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/MorePage.java @@ -0,0 +1,320 @@ +package PageObjects; + +import java.io.File; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.Select; + +import Utilities.BrowserUtility; + +public class MorePage extends BrowserUtility{ + @FindBy(how=How.XPATH, using="//div[@class='dropdown sprite_iconSet']") + WebElement tabMore; + + @FindBy(how=How.XPATH, using="//div[@class='kolRequestIcon sprite_iconSet']") + WebElement lnkProfileRequest; + + @FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo']") + WebElement exportPendingApprovals; + + @FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']") + WebElement exportProfileRequests; + + @FindBy(how=How.XPATH, using="//div[@class='orgRequestIcon sprite_iconSet']") + WebElement lnkOrgProfileRequest; + + @FindBy(how=How.XPATH, using="//span[contains(text(),'Recent Activity')]") + WebElement lnkRecentActivity; + + @FindBy(how=How.XPATH, using="//input[@id='influenceKolNameOutside']") + WebElement txtAreaKTLName; + + @FindBy(how=How.XPATH, using="//input[@id='submit']") + WebElement btnSubmit; + + @FindBy(how=How.XPATH, using="//select[@id='category-list']") + WebElement drpCategoryList; + + @FindBy(how=How.XPATH, using="//label[@class='kolName']") + WebElement KolName; + + @FindBy(how=How.XPATH, using="//div[@class='notifications sprite_iconSet']") + WebElement lnkNotifications; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add New')]") + WebElement lnkAddNew; + + @FindBy(how=How.XPATH, using="//input[@value='Cancel']") + WebElement btnCancel; + + @FindBy(how=How.XPATH, using="//div[@class='medIntel sprite_iconSet']") + WebElement lnkMedia; + + @FindBy(how=How.XPATH, using="//input[@id='datepicker1']") + WebElement fromDate; + + @FindBy(how=How.XPATH, using="//input[@id='submit_date']") + WebElement btnGo; + + @FindBy(how=How.XPATH, using="//span[contains(text(),'Social Media')]") + WebElement lnkSocialMedia; + + @FindBy(how=How.XPATH, using="//span[contains(text(),'Upcoming Events')]") + WebElement lnkUpcomingEvents; + + @FindBy(how=How.XPATH, using="(//a[@class='tooltipLink'])[3]") + WebElement helperEventSnapshot; + + @FindBy(how=How.XPATH, using="//button[contains(text(),'Back')]") + WebElement btnBack; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Calendar')]") + WebElement tabCalendar; + + @FindBy(how=How.XPATH, using="//button[contains(text(),'Day')]") + WebElement tabDay; + + @FindBy(how=How.XPATH, using="(//a[@class='inbox-icon'])[2]") + WebElement lnkInbox; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Accounts')]") + WebElement lnkAccounts; + + @FindBy(how=How.XPATH, using=" //a[contains(text(),'Profile')]") + WebElement lnkProfile; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Templates')]") + WebElement lnkTemplates; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Unsubscribed List')]") + WebElement lnkUnsubscribedList; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Bounced List')]") + WebElement lnkBouncedList; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Mail Merge Statistics')]") + WebElement lnkMailMergeStatistics; + + @FindBy(how=How.XPATH, using="//span[contains(text(),'Mailbox')]") + WebElement lnkMailBox; + + @FindBy(how=How.XPATH, using="//a[@class='draft-icon']") + WebElement lnkDraft; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Map')]") + WebElement tabMap; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Sent')]") + WebElement lnkSent; + + @FindBy(how=How.XPATH, using="(//a[@class='inbox-icon'])[3]") + WebElement lnkBounced; + + @FindBy(how=How.XPATH, using="(//a[@class='outbox-icon'])[1]") + WebElement lnkOutBox; + + @FindBy(how=How.XPATH, using="//input[@id='backToFolders']") + WebElement btnBackToFolder; + + @FindBy(how=How.XPATH, using="//a[@id='uploadDocumentGranted']") + WebElement lnkUploadDoc; + + @FindBy(how=How.XPATH, using="//span[contains(text(),'Documents')]") + WebElement lnkDocuments; + + @FindBy(how=How.XPATH, using="//select[@id='doc_sort_type']") + WebElement drpSortBy; + + @FindBy(how=How.XPATH, using="(//label[@class='folderName'])[1]") + WebElement lnkFolder; + + @FindBy(how=How.XPATH, using="(//input[@value='Cancel'])[1]") + WebElement lnkCancel; + + + + +WebDriver driver; + + public MorePage(WebDriver driver) { + this.driver=driver; + PageFactory.initElements(driver, this); + } + + public void clickMoreTab() { + tabMore.click(); + } + + public void clickProfileRequestLink() { + lnkProfileRequest.click(); + } + + public void exportPendingApprovalsInExcel() throws InterruptedException { + Thread.sleep(2000); + exportPendingApprovals.click(); + Thread.sleep(1500); + File f1=new File("C:\\Users\\Sadashiva\\Downloads"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("my_pending_approvals")||f.getName().startsWith("MyPendingApprovals")) { + f.delete(); + System.out.println("Pending approvals are exported successfully"); + } + } + } + + public void exportProfileRequestsInExcel() throws InterruptedException { + Thread.sleep(2000); + exportProfileRequests.click(); + Thread.sleep(1500); + File f1=new File("C:\\Users\\Sadashiva\\Downloads"); + for(File f:f1.listFiles()) { + if (f.getName().startsWith("AllProfileRequests")) { + f.delete(); + System.out.println("All profile requests are exported successfully"); + } + } + } + + public void clickOrgProfileRequest() { + lnkOrgProfileRequest.click(); + } + + public void clickRecentActivityLink() { + lnkRecentActivity.click(); + } + + public void enterKOLName(String KOLName) throws InterruptedException { + txtAreaKTLName.sendKeys(KOLName); + Thread.sleep(2500); + KolName.click(); + } + + public void selectCategoryOption(String category) throws InterruptedException { + Thread.sleep(1500); + Select categoryName = new Select(drpCategoryList); + Thread.sleep(1500); + categoryName.selectByVisibleText(category); + } + + public void clickSubmitButton() throws InterruptedException { + btnSubmit.click(); + Thread.sleep(4000); + } + + public void clickNotificationLink() throws InterruptedException { + lnkNotifications.click(); + Thread.sleep(1500); + } + + public void clickAddNewNotificationLink() throws InterruptedException { + lnkAddNew.click(); + Thread.sleep(1500); + btnCancel.click(); + } + + public void clickMediaLink() { + lnkMedia.click(); + } + + public void enterFromDate(String date) throws InterruptedException { + Thread.sleep(2000); + fromDate.clear(); + fromDate.sendKeys(date); + btnGo.click(); + Thread.sleep(3000); + } + + public void clickSocialMedia() { + lnkSocialMedia.click(); + } + + public void clickUpComingEventsLink() throws InterruptedException { + lnkUpcomingEvents.click(); + Thread.sleep(2000); + } + + public void clickEventSnapshot() throws InterruptedException { + helperEventSnapshot.click(); + Thread.sleep(2000); + btnBack.click(); + Thread.sleep(1000); + } + + public void clickCalendarTab() throws InterruptedException { + + tabCalendar.click(); + Thread.sleep(2000); + tabDay.click(); + Thread.sleep(1000); + } + + public void clickMapTab() { + tabMap.click(); + } + +public void clickOnMailBoxLink() throws InterruptedException { + Thread.sleep(1000); + lnkMailBox.click(); + Thread.sleep(1000); +} + +public void clickMailsOptions() throws InterruptedException { + lnkInbox.click(); + Thread.sleep(1000); + lnkDraft.click(); + Thread.sleep(1000); + lnkOutBox.click(); + Thread.sleep(1000); + lnkSent.click(); + Thread.sleep(1000); + lnkBounced.click(); + Thread.sleep(1000); + +} + +public void clickSettingsOptions() throws InterruptedException { + lnkAccounts.click(); + Thread.sleep(1000); + lnkProfile.click(); + Thread.sleep(1000); + lnkTemplates.click(); + Thread.sleep(1000); +} + +public void clickMiscellaneousOptions() throws InterruptedException { + lnkUnsubscribedList.click(); + Thread.sleep(1000); + lnkBouncedList.click(); + Thread.sleep(1000); + lnkMailMergeStatistics.click(); + Thread.sleep(1000); + +} + +public void clickDocumentLink() { + + lnkDocuments.click(); +} + +public void sortDocumentsAndClickFolder(String sort) throws InterruptedException { + Thread.sleep(1000); + //drpSortBy.click(); + Select doc = new Select(drpSortBy); + doc.selectByVisibleText(sort); + Thread.sleep(1000); + lnkFolder.click(); +} + +public void clickUploadDocumentLink() throws InterruptedException { + Thread.sleep(1000); + lnkUploadDoc.click(); + Thread.sleep(1000); + lnkCancel.click(); + Thread.sleep(1000); + btnBackToFolder.click(); +} +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/MyLists.java b/Hills_With_Cucumber/src/test/java/PageObjects/MyLists.java new file mode 100644 index 0000000..f88f6dc --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/MyLists.java @@ -0,0 +1,72 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; + +public class MyLists +{ + WebDriver driver; + @FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[5]/a[1]/div[1]") + WebElement MyListTabClick; + + @FindBy(how=How.XPATH, using="(//input[@id='listKols'])[1]") + WebElement SelectKol; + + @FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet']//a") + WebElement ExportExcel; + + @FindBy(how=How.XPATH, using="(//input[@id='next'])[1]") + WebElement NextExport; + + + + @FindBy(how=How.XPATH, using="//form[@id='kolPdfExport']//a") + WebElement Exportpdf; + + @FindBy(how=How.XPATH, using="//a[.='Manage List']") + WebElement ManageList; + + @FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']") + WebElement AddCategory; + + @FindBy(how=How.XPATH, using="//input[@id='categoryName']") + WebElement CategoryName; + + public MyLists(WebDriver driver) + { + this.driver=driver; + PageFactory.initElements(driver,this); + } + public void list1() + { + MyListTabClick.click(); + } + + public void listexportexcel() + { + SelectKol.click(); + ExportExcel.click(); + NextExport.click(); + } + + public void listpdf() + { + SelectKol.click(); + Exportpdf.click(); + } + + public void managelistclick() + { + ManageList.click(); + } + + public void addcategory(String category) + { + AddCategory.click(); + CategoryName.sendKeys(category); + + } +} diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/MyListsPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/MyListsPage.java new file mode 100644 index 0000000..61d7a50 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/MyListsPage.java @@ -0,0 +1,68 @@ +package PageObjects; + +import org.openqa.selenium.By; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; + +import Utilities.BrowserUtility; + +public class MyListsPage extends BrowserUtility { + +@FindBy(how=How.XPATH, using="//div[@class='navLinkMyLists sprite_iconSet']") +WebElement tabMyLists; + +@FindBy(how=How.XPATH, using="//a[contains(text(),'Manage List')]") +WebElement tabManageList; + +@FindBy(how=How.XPATH, using="//tbody/tr[@id='8']/td[4]/div[2]/a[1]") +WebElement deleteCategory; + +@FindBy(how=How.XPATH, using="//input[@id='popup_ok']") +WebElement btnOK; + +@FindBy(how=How.XPATH, using="//td[contains(text(),'Rocky')]") +WebElement selectCategory; + +@FindBy(how=How.XPATH, using="//a[@onclick='deleteListName(567);']") +WebElement deleteListName; + + +WebDriver driver; + +public MyListsPage(WebDriver driver) { + this.driver=driver; + PageFactory.initElements(driver, this); +} + +public void clickMyListTab() { + tabMyLists.click(); +} + +public void clickManageList() { + tabManageList.click(); +} + +public void deleteCategory() { + deleteCategory.click(); + btnOK.click(); +} + +public void selectCategory() throws InterruptedException { + selectCategory.click(); + Thread.sleep(2000); +} + +public void deleteList() { + WebDriverWait wait=new WebDriverWait(driver, 20); + wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("((//*[contains(@id,'listNamesByCategoryResultSet')])//tbody/tr[2]/td[4]/div[2])"))).click(); + btnOK.click(); + //deleteListName.click(); +} + + +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/NetworkMapsPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/NetworkMapsPage.java new file mode 100644 index 0000000..571462b --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/NetworkMapsPage.java @@ -0,0 +1,71 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; + +import Utilities.BrowserUtility; + +public class NetworkMapsPage extends BrowserUtility +{ + WebDriver driver; + @FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[6]/a[1]/div[1]") + WebElement NetworkMapsTabClick; + + @FindBy(how=How.XPATH, using="//tr[@class='regionType254']//td[1]") + WebElement GlobalRegionClick; + + @FindBy(how=How.XPATH, using="//input[@id='degreeAff']") + WebElement AffClick; + @FindBy(how=How.XPATH, using="//input[@id='degreeEvent']") + WebElement EventClick; + @FindBy(how=How.XPATH, using="//input[@id='degreePub']") + WebElement PubsClick; + @FindBy(how=How.XPATH, using="//input[@value='Reload']") + WebElement ReloadClick; + @FindBy(how=How.XPATH, using="//a[contains(text(),'Hide Sidebar')]") + WebElement Hidesidebar; + @FindBy(how=How.XPATH, using="//a[contains(text(),'Show Sidebar')]") + WebElement Showsidebar; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'KTL Geo Network')]") + WebElement GeoNetworkMapsTabClick; + + public NetworkMapsPage(WebDriver driver) + { + this.driver=driver; + PageFactory.initElements(driver,this); + } + public void networkmap() + { + NetworkMapsTabClick.click(); + } + + public void globalregion() + { + GlobalRegionClick.click(); + } + + public void allcheckbox() + { + AffClick.click(); + EventClick.click(); + PubsClick.click(); + ReloadClick.click(); + } + + public void sidebar() throws InterruptedException + { + Hidesidebar.click(); + Thread.sleep(4000); + Showsidebar.click(); + } + + public void geonetworkmap() + { + GeoNetworkMapsTabClick.click(); + } + +} diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/OrganizationPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/OrganizationPage.java new file mode 100644 index 0000000..3983fe7 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/OrganizationPage.java @@ -0,0 +1,245 @@ +package PageObjects; + +import java.io.File; + +import org.openqa.selenium.By; +import org.openqa.selenium.JavascriptExecutor; +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; +import Utilities.BrowserUtility; + +public class OrganizationPage extends BrowserUtility{ + @FindBy(how=How.XPATH, using="//div[@class='navLinkOrg sprite_iconSet']") + WebElement tabOrganization; + + @FindBy(how=How.XPATH, using="((//*[contains(@id,'categoryCountry')])//tbody/tr[2]/td[1])") + WebElement lnkfilterCountry; + + @FindBy(how=How.XPATH, using="(//img[@class='defaultOrgIcon'])[1]") + WebElement lnkOrganizationProfileSnapShot; + + @FindBy(how=How.XPATH, using="//input[@id='orgName']") + WebElement txtAreaOrganizationName; + + @FindBy(how=How.XPATH, using="//input[@id='list']") + WebElement cbxOrganization; + + @FindBy(how=How.XPATH, using="//tbody/tr/td/p[3]") + WebElement txtCountry; + + @FindBy(how=How.XPATH, using="//div[@id='viewType_chzn']") + WebElement drpOrganization; + + @FindBy(how=How.XPATH, using="(//div[@class='autocompleteHeading'])[1]") + WebElement selectOrganization; + + @FindBy(how=How.XPATH, using="//div[@id='organizationExport']") + WebElement exportOrgExcel; + + @FindBy(how=How.XPATH, using="//a[@class='addOrgIcon']") + WebElement lnkNewAddOrg; + + @FindBy(how=How.XPATH, using="//input[@type='submit']") + WebElement btnSave; + + @FindBy(how=How.XPATH, using="//input[@type='button']") + WebElement btnCancel; + + @FindBy(how=How.XPATH, using="//span[@class='record_name']") + WebElement lnkOrgName; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Key People')]") + WebElement tabKeyPeople; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Key People')]") + WebElement lnkAddKeyPeople; + + @FindBy(how=How.XPATH, using="//body/div[15]/div[1]/a[1]/span[1]") + WebElement iconCancelAddKeyPeople; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Affiliate Orgs')]") + WebElement tabAffiliateOrg; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Add Affiliate')]") + WebElement lnkAddAffiliate; + + @FindBy(how=How.XPATH, using="//body/div[24]/div[1]/a[1]/span[1]") + WebElement iconCancelAddAffiliate; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Org Network')]") + WebElement tabOrgNetwork; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'KTLs')]") + WebElement tabKTLs; + + @FindBy(how=How.XPATH, using="//a[@href='#tabs-3']") + WebElement tabOrgNetworkKeyPeople; + + String filteredCountry; + +WebDriver driver; +public OrganizationPage(WebDriver driver) { + this.driver = driver; + PageFactory.initElements(driver, this); +} + + + +public void clickOrganizationTab() { + tabOrganization.click(); +} + +public void clickCountryFilter() throws InterruptedException { + Thread.sleep(2000); + /*try { + lnkfilterCountry.click(); + filteredCountry=lnkfilterCountry.getText(); + System.out.println("Country Name"+" "+filteredCountry+" "+"filtering in Refine By section"); + + Thread.sleep(2000); + }catch(Exception e) { + System.out.println("Catch" +e); + }*/ + lnkfilterCountry.click(); + filteredCountry=lnkfilterCountry.getText(); + System.out.println("Country Name"+" "+filteredCountry+" "+"filtering in Refine By section"); + + Thread.sleep(2000); +} + +public void verifyCountryFilter() throws InterruptedException { + lnkOrganizationProfileSnapShot.click(); + Thread.sleep(2000); + String country=txtCountry.getText(); + System.out.println("Country Name displayed in Organization profile Snapshot is"+" " +country); + if(country.equalsIgnoreCase(filteredCountry)) { + System.out.println("Organizations are displayed based on Country filter"); + }else{ + System.out.println("Organizations are not displayed based on Country filter"); + } +} + +public void selectAnOrganization() { + cbxOrganization.click(); +} + +public void selectAllOrganization() throws InterruptedException { + Thread.sleep(2000); + drpOrganization.click(); + Actions act = new Actions(driver); + act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_1']"))).click().build().perform(); + Thread.sleep(2000); +} + +public void searchOrganization(String organization) throws InterruptedException { + txtAreaOrganizationName.sendKeys(organization); + Thread.sleep(3000); + selectOrganization.click(); + Thread.sleep(2000); +} +public void selectMyOrganization() throws InterruptedException { + drpOrganization.click(); + Thread.sleep(2000); + Actions act = new Actions(driver); + act.moveToElement(driver.findElement(By.xpath("//li[@id='viewType_chzn_o_0']"))).click().build().perform(); + Thread.sleep(2000); +} + public void clickExportButton() { + exportOrgExcel.click(); + } + + public void verifyExcelFileDownload() throws InterruptedException { + Thread.sleep(3000); + + File f1=new File("C:\\Users\\hp\\Downloads\\"); + /*if(f1.exists()) { + System.out.println("Organization is exported in Excel format"); + f1.delete(); + }*/ + for(File f:f1.listFiles()) { + if (f.getName().startsWith("Organization_")) { + f.delete(); + System.out.println("Organization details are exported successfully"); + } + } + } + + public void clickNewLinkToAddOrganization() { + lnkNewAddOrg.click(); + } + + public void clickSaveButton() throws InterruptedException { + btnSave.click(); + Thread.sleep(2000); + + } + + public void clickCancelButton() throws InterruptedException { + btnCancel.click(); + Thread.sleep(2000); + } + + public void verifyUserNavigation() { + String OrgURL=driver.getCurrentUrl(); + if(OrgURL.equalsIgnoreCase("https://testcolpal.aisselkolm.com/hills_staging/organizations/list_organizations_client_view")) { + System.out.println("User successfully navigated back to Organization"); + }else { + System.out.println("User is not successfully navigated back to Organization"); + } + } + + public void navigateWithinOrganization() { + lnkOrgName.click(); + } + + public void clickKeyPeopleTab() throws InterruptedException { + tabKeyPeople.click(); + Thread.sleep(2500); + } + + public void openAndCloseAddKeyPeopleForm() throws InterruptedException { + lnkAddKeyPeople.click(); + Thread.sleep(1500); + iconCancelAddKeyPeople.click(); + } + + public void clickAffiliateOrgTab() { + tabAffiliateOrg.click(); + } + + public void openAndCloseAddKeyAffiliateForm() throws InterruptedException { + Thread.sleep(1500); + lnkAddAffiliate.click(); + Thread.sleep(2000); + iconCancelAddAffiliate.click(); + } + + public void clickOrgNetworkTab() { + tabOrgNetwork.click(); + } + + public void clickKTLsTab() throws InterruptedException { + Thread.sleep(2000); + JavascriptExecutor js = (JavascriptExecutor) driver; + js.executeScript("window.scrollBy(0,1000)"); + tabKTLs.click(); + } + + public void clickOrgNetworkKeyPeopleTab() throws InterruptedException { + Thread.sleep(1000); + tabOrgNetworkKeyPeople.click(); + Thread.sleep(1000); + } + + public void oneMethod() { + + + } +} + diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/ReportsPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/ReportsPage.java new file mode 100644 index 0000000..599462b --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/ReportsPage.java @@ -0,0 +1,135 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; + +import Utilities.BrowserUtility; + +public class ReportsPage extends BrowserUtility +{ + WebDriver driver; + @FindBy(how=How.LINK_TEXT, using="Reports") + WebElement ReportsTabClick; + + @FindBy(how=How.XPATH, using="//tbody/tr[1]/td[1]/div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/a[1]") + WebElement ExportExcel; + + @FindBy(how=How.XPATH, using="//a[@class='chzn-single']//div//b") + WebElement InteractiontypeDropdown; + + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_1']") + WebElement InteractiontypeDropdown1; + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_2']") + WebElement InteractiontypeDropdown2; + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_3']") + WebElement InteractiontypeDropdown3; + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_4']") + WebElement InteractiontypeDropdown4; + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_5']") + WebElement InteractiontypeDropdown5; + + @FindBy(how=How.XPATH, using="//a[text()='Activity']") + WebElement ActivityClick; + + @FindBy(how=How.XPATH, using="//a[text()='Profile Score']") + WebElement ProfileScoreClick; + + @FindBy(how=How.XPATH, using="//a[text()='Events']") + WebElement EventsClick; + + @FindBy(how=How.XPATH, using="//span[text()='Events By Type']") + WebElement EventsbyType; + + @FindBy(how=How.XPATH, using="//li[@id='chartType_chzn_o_0']") + WebElement EventsByTimeline; + + @FindBy(how=How.XPATH, using="//tr[@class='country254']//td[1]") + WebElement Refinebycountry; + + + @FindBy(how=How.XPATH, using="//a[text()='Affiliations']") + WebElement AffiliationsClick; + + @FindBy(how=How.XPATH, using="//a[text()='Publications']") + WebElement PubsClick; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Segmentation')]") + WebElement SegmentationClick; + + @FindBy(how=How.XPATH, using="//tbody/tr[1]/td[8]/a[1]") + WebElement BudgetTrackerClick; + + + public ReportsPage(WebDriver driver) + { + this.driver=driver; + PageFactory.initElements(driver,this); + } + public void reportstab() + { + ReportsTabClick.click(); + } + + public void exportexcel() + { + ExportExcel.click(); + } + + public void interactiontypes() + { + InteractiontypeDropdown.click(); + InteractiontypeDropdown1.click(); + InteractiontypeDropdown2.click(); + InteractiontypeDropdown3.click(); + InteractiontypeDropdown4.click(); + InteractiontypeDropdown5.click(); + + } + public void activity() + { + ActivityClick.click(); + } + + public void profilescore() + { + ProfileScoreClick.click(); + } + + public void events() + { + EventsClick.click(); + Refinebycountry.click(); + } + + public void events2() + { + EventsbyType.click(); + EventsByTimeline.click(); + + } + + public void affiliations() + { + AffiliationsClick.click(); + } + + public void publications() + { + PubsClick.click(); + } + + public void segmentation() + { + SegmentationClick.click(); + } + + public void budgettracker() + { + BudgetTrackerClick.click(); + } + + +} diff --git a/Hills_With_Cucumber/src/test/java/PageObjects/TrackPage.java b/Hills_With_Cucumber/src/test/java/PageObjects/TrackPage.java new file mode 100644 index 0000000..274dd19 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/PageObjects/TrackPage.java @@ -0,0 +1,118 @@ +package PageObjects; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.How; +import org.openqa.selenium.support.PageFactory; + +public class TrackPage +{ + WebDriver driver; + @FindBy(how=How.XPATH, using="//body/div[@id='wrapper']/div[@id='header']/div[1]/ul[2]/li[4]/a[1]/div[1]") + WebElement TrackTabClick; + + @FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo tooltop-left']//a[@href='#']") + WebElement ExportExcel; + + @FindBy(how=How.XPATH, using="//a[@id='report']") + WebElement ReportSubTab; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Chart')]") + WebElement ChartSubTab; + + @FindBy(how=How.XPATH, using="//a[@id='calender']") + WebElement CalendarSubTab; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Payments')]") + WebElement PaymentsSubTab; + + @FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']") + WebElement AddPayments; + + @FindBy(how=How.XPATH, using="//a[contains(text(),'Contracts')]") + WebElement ContractsSubTab; + + @FindBy(how=How.XPATH, using="//a[@class='NewBlueButton NewAddIcon newAddButton label-blue']") + WebElement AddContracts; + + @FindBy(how=How.XPATH, using="(//span[@class='ui-icon ui-icon-closethick'])[15]") + WebElement CloseContracts; + + @FindBy(how=How.XPATH, using="(//a[contains(text(),'Plan')])[1]") + WebElement PlanClick; + + @FindBy(how=How.XPATH, using="//div[@class='excelExportIcon sprite_iconSet tooltip-demo tooltop-left']//a") + WebElement ObjExportExcel; + + + @FindBy(how=How.XPATH, using="(//a[contains(text(),'Plan')])[2]") + WebElement PlansClick; + + public TrackPage(WebDriver driver) + { + this.driver=driver; + PageFactory.initElements(driver,this); + } + public void tracktab() + { + TrackTabClick.click(); + } + public void exportexcel() + { + ExportExcel.click(); + } + + public void reportsubtab() + { + ReportSubTab.click(); + } + + public void chartsubtab() + { + ChartSubTab.click(); + } + + public void calendarsubtab() + { + CalendarSubTab.click(); + } + + public void paymentssubtab() + { + PaymentsSubTab.click(); + } + + public void addpayments() + { + AddPayments.click(); + } + + public void contractssubtab() + { + ContractsSubTab.click(); + } + + public void addcontract() throws InterruptedException + { + AddContracts.click(); + Thread.sleep(6000); + CloseContracts.click(); + Thread.sleep(6000); + } + + public void plansubtab() + { + PlanClick.click(); + } + + public void obejectiveexportexcel() + { + ObjExportExcel.click(); + } + + public void planssubtab() + { + PlansClick.click(); + } +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/ContactsTabSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/ContactsTabSteps.java new file mode 100644 index 0000000..06bc21a --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/ContactsTabSteps.java @@ -0,0 +1,196 @@ +package StepDefinitions; + +import PageObjects.ContactsPage; +import PageObjects.MyLists; +import PageObjects.MyListsPage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.And; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class ContactsTabSteps extends BrowserUtility{ + //ContactsPage contactsPage=pageObjectManager.getContactsPage(); + + PageObjectManager pageObjectManager=new PageObjectManager(driver); + ContactsPage contactsPage=pageObjectManager.getContactsPage(); + MyListsPage myListPage=pageObjectManager.getMyListsPage(); + //contactsPage=pageObjectManager.getContactsPage(); + + /* @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + }*/ + +@And("user clicks on country filter in the contacts tab") +public void user_clicks_on_country_filter_in_the_contacts_tab() throws InterruptedException{ + //pageObjectManager = new PageObjectManager(driver); + + contactsPage.filterCountryName(); + +} + +@Then("user should display with filtered HCP's based country filter") +public void user_should_display_with_filtered_HCPs_based_on_country_filter() throws InterruptedException{ + contactsPage.clickOnHCPProfile(); + //contactsPage.clickViewProfile(); + contactsPage.verifyCountryName(); + +} + + + +@And("user click on New icon to add KOL") +public void user_click_on_New_icon_to_add_KOL(){ + contactsPage.clickAddHcp(); +} + +@And("user click on Save button without adding details in add KOL page") +public void user_click_on_Save_button_without_adding_details_in_add_KOL_page() throws InterruptedException{ + contactsPage.clickSaveButton(); + +} + +@Then("Required error message shown to user for mandatory fields") +public void Required_error_message_shown_to_user_for_mandatory_fields() { + contactsPage.verifyErrorMessageShownForMandatoryFields(); +} + +@When("user clicks on Cancel button in add KOL page") +public void user_clicks_on_Cancel_button_in_add_KOL_page(){ + contactsPage.clickCancelButton(); +} + +@And("user should be taken to contacts page") +public void user_should_be_taken_to_contacts_page(){ + contactsPage.verifyUserNavigationToContacts(); +} + +@And("select a KOL by clicking on checkbox") +public void select_a_KOL_by_clicking_on_checkbox() { + contactsPage.selectAKOL(); +} + +@And("user click on PDF to download details of KOL") +public void user_click_on_PDF_to_download_details_of_KOL() { + contactsPage.clickOnPDFLink(); +} + +@Then("PDF should get download") +public void PDF_should_get_download() throws InterruptedException { + contactsPage.verifyPDFFileDownload(); +} +@And("user click on Excel to download details of KOL") +public void user_click_on_Excel_to_download_details_of_KOL() { + contactsPage.clickOnExcelLink(); +} +@And("user selects Full profile checkbox") +public void user_selects_Full_profile_checkbox() throws InterruptedException { + contactsPage.selectFullProfile(); +} +@And("user click on Export button") +public void user_clicks_on_Export_button() { + contactsPage.clickExportButton(); +} +@Then("KOL full profile Excel downloaded") +public void KOL_full_profile_Excel_downloaded() throws InterruptedException { + contactsPage.verifyExcelFileDownload(); +} + +@And("user selects All Contacts in Assigned dropdown") +public void user_selects_All_Contacts_in_Assigned_dropdown() throws InterruptedException { + contactsPage.selectAllContacts(); +} + +@And("user click on Assign link") +public void user_click_on_Assign_link() { + contactsPage.clickAssignLink(); +} + +@And("user select Hill Manager to assign") +public void user_select_Hill_Manager_to_assign() throws InterruptedException { + contactsPage.selectUser(); +} + +@And("user click on Assign button") +public void user_click_on_Assign_button() throws InterruptedException { + contactsPage.clickAssignButton(); +} + +@Then("KOL should get assign to Hill Manager") +public void KOL_should_get_assign_to_Hill_Manager() { + System.out.println("Passed: KOL is successfully assigned to Hill Manager"); +} + +@And ("user click on Email link") +public void user_click_on_Email_link() throws InterruptedException { + contactsPage.clickEmailLink(); +} + +@And ("user enter to email(.+)") +public void user_enter_to_email(String email) throws InterruptedException { + contactsPage.enterToEmail(email); +} + +@And ("user click on send button") +public void user_click_on_send_button() throws InterruptedException { + contactsPage.clickSendButton(); +} + +@Then ("KOL profile emailed successfully") +public void KOL_profilr_emailed_successfully() { + System.out.println("Passed: KOL profile succesfully sent to an Email"); +} + +@And("user click on List icon link") +public void user_click_on_List_icon_link() { + contactsPage.clickListLink(); +} + +@And("user add new category and list name") +public void user_add_new_category_and_list_name() throws InterruptedException{ + contactsPage.selectAddNewCategory(); + contactsPage.selectAddNewList(); +} + +@And("user click on Save button") +public void user_click_on_Save_button() throws InterruptedException { + contactsPage.clickListSaveButton(); +} + @And("user navigates to MyLists tab") + public void user_navigates_to_MyLists_tab() { + // myListPage=pageObjectManager.getMyListsPage(); + myListPage.clickMyListTab(); + + } + + @And("user click on Manage List tab") + public void user_click_on_Manage_Lists_tab() { + myListPage.clickManageList(); + } + + @And("user select category to be deleted") + public void user_select_category_to_be_deleted() throws InterruptedException { + myListPage.selectCategory(); + } + + @And("user delete the list name") + public void user_delete_the_list_name() { + myListPage.deleteList(); + } + + @And("user delete the category created") + public void user_delete_the_category_created() { + myListPage.deleteCategory(); + } + + @And("user click on Unassign button") + public void user_click_on_Unassign_button() throws InterruptedException { + contactsPage.clickUnAssignButton(); + } +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/HillsLoginSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/HillsLoginSteps.java new file mode 100644 index 0000000..c53d51d --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/HillsLoginSteps.java @@ -0,0 +1,32 @@ +package StepDefinitions; + +import java.util.Properties; +import org.openqa.selenium.WebDriver; + +import PageObjects.LoginPage; +import Utilities.BrowserUtility; +import Utilities.PropertiesFileReader; +import io.cucumber.java.en.Given; +import manager.PageObjectManager; + +public class HillsLoginSteps +{ + PageObjectManager pageObjectManager; + PropertiesFileReader obj = new PropertiesFileReader(); + WebDriver driver; + LoginPage login; + + @Given("^user login to hills application with (.+) and (.+)$") + public void user_login_to_hills_application_with_username_and_password(String username, String password) throws InterruptedException { + + Properties properties=obj.getProperty(); + driver=BrowserUtility.OpenBrowser(driver, properties.getProperty("browser.name"), properties.getProperty("browser.baseURL")); + pageObjectManager=new PageObjectManager(driver); + login=pageObjectManager.getLoginPage(); + login.enterUsername(username); + login.enterPassword(password); + login.clickLoginButton(); + // driver.close(); + } + +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/HomeTabSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/HomeTabSteps.java new file mode 100644 index 0000000..3ae799d --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/HomeTabSteps.java @@ -0,0 +1,85 @@ +package StepDefinitions; + +import java.util.Properties; + +import org.openqa.selenium.WebDriver; + +import PageObjects.HomePage; +import PageObjects.LoginPage; +import Utilities.BrowserUtility; +import Utilities.PropertiesFileReader; +import io.cucumber.java.After; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class HomeTabSteps extends BrowserUtility +{ + HomePage home; + PageObjectManager pageObjectManager; + + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + +// @Given("^user login to hills application with and $") +// public void user_login_to_hills_application_with and () +// { +// System.err.println("Verified summary show more link"); +// } + + @Given("^user is on home tab$") + public void user_is_on_home_tab() + { + pageObjectManager=new PageObjectManager(driver); + home=pageObjectManager.getHomePage(); + System.err.println("Verified summary show more link"); + + } + + @When("^user clicks on showmore link in summary section$") + public void user_clicks_on_showmore_link_in_summary_section() throws InterruptedException + { + // pageObjectManager=new PageObjectManager(driver); + // home=pageObjectManager.getHomePage(); + home.clickshowmorelink(); + Thread.sleep(5000); + driver.navigate().back(); + } + + @Then("^User should land on contact listing page$") + public void User_should_land_on_contact_listing_page() throws InterruptedException + { + // home.clickshowmorelink(); + System.err.println("Verified"); + } + + @When("^user clicks on showmore link in recent activity section$") + public void user_clicks_on_showmore_link_in_recent_activity_section() throws InterruptedException + { + home.clickrashowmorelink(); + Thread.sleep(5000); + driver.navigate().back(); + } + @When("^user clicks on view all news button in home page$") + public void userclicksonviewallnewsbuttoninhomepage() throws InterruptedException + { + home.clickallnewslink(); + Thread.sleep(5000); + driver.navigate().back(); + } + + @Then("^User should land on media main page$") + public void User_should_land_on_media_main_page() + { + System.err.println("Verified"); + } + + +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/KOLProfileSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/KOLProfileSteps.java new file mode 100644 index 0000000..379c21e --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/KOLProfileSteps.java @@ -0,0 +1,163 @@ +package StepDefinitions; + +import PageObjects.KOLProfilePage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.And; +import manager.PageObjectManager; + +public class KOLProfileSteps extends BrowserUtility{ + +PageObjectManager pageObjectManager=new PageObjectManager(driver); +KOLProfilePage kolProfilePage=pageObjectManager.getKOLProfilePage(); + +@After +public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; +} + +@And("user add user notes(.+)") +public void user_add_user_notes(String usernote) { + kolProfilePage.addUserNotes(usernote); +} +@And("user click on add training and close the pop-up") +public void user_click_on_add_training_and_close_the_popup() throws InterruptedException{ + kolProfilePage.openAndCloseAddTraining(); +} +@And("user click on add Honors and Rewards and close the pop-up") +public void user_click_on_add_Honors_and_Rewards_and_close_the_popup()throws InterruptedException{ + kolProfilePage.openAndCloseAddHonorsAndAwards(); +} +@And("user navigated to details tab") +public void user_navigated_to_details_tab() { + kolProfilePage.clickDetailsTab(); +} + + +@And("user click on Add location and close the popup") +public void userclickonAddlocationandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddLocation(); +} + + +@And("user click on Add phone and close the popup") +public void userclickonAddphoneandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddPhone(); +} + +@And("user click on Add staff and close the popup") +public void userclickonAddstaffandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddStaff(); +} + +@And("user click on Add email and close the popup") +public void userclickonAddemailandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddEmail(); +} + +@And("user click on Add assign and close the popup") +public void userclickonAddassignandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddAssign(); +} +@And("user click on Track tab") +public void userclickonTracktab() { + kolProfilePage.clickTrackTab(); +} +@And("user export interactions") +public void userexportinteractions() throws InterruptedException { + kolProfilePage.exportInteractions(); +} +@And("user click on Report tab within the interactions tab") +public void userclickonReporttabwithintheinteractionstab() throws InterruptedException { + kolProfilePage.clickReportTab(); +} +@And("user click on Chart tab within the interactions tab") +public void userclickonCharttabwithintheinteractionstab() throws InterruptedException { + kolProfilePage.clickChartTab(); +} +@And("user click on Calendar tab within the interactions tab") +public void userclickonCalendartabwithintheinteractionstab() throws InterruptedException { + kolProfilePage.clickCalendarTab(); +} +@And("user click on payments tab within track") +public void userclickonpaymentstabwithintrack() throws InterruptedException { + kolProfilePage.clickPaymentTab(); +} +@And("user click on Add payment and close the popup") +public void userclickonAddpaymentandclosethepopup() throws InterruptedException { + kolProfilePage.addAndCloseAddPayment(); +} +@And("user click on Add contract and close the popup") +public void userclickonAddcontractandclosethepopup() throws InterruptedException { + kolProfilePage.clickContractTab(); + kolProfilePage.addAndCloseAddContract(); +} +@And("user click on Affiliation tab") +public void userclickonAffiliationtab() { + kolProfilePage.clickAffiliationTab(); +} + +@And("user click on Add affiliation and close the popup") +public void userclickonAddaffiliationandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddAffiliation(); +} + +@And("user click on Reports org tab") +public void userclickonReportsorgtab() throws InterruptedException { + kolProfilePage.clickReportsOrgTab(); +} + +@And("user click on Reports eng tab") +public void userclickonReportsengtab() throws InterruptedException { + kolProfilePage.clickReportEngTab(); +} + +@And("user click on Events tab") +public void userclickonEventstab() { + kolProfilePage.clickEventTab(); +} + +@And("user click on Add New Event and close the popup") +public void userclickonAddNewEventandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddNewEvent(); +} + +@And("user click on Events Charts tab") +public void userclickonEventsChartstab() throws InterruptedException { + kolProfilePage.clickTabEventsCharts(); +} + +@And("user click on Publications tab") +public void userclickonPublicationstab() { + kolProfilePage.clickPublicationsTab(); +} + +@And("user click on Add New Publication and close the popup") +public void userclickonAddNewPublicationandclosethepopup() throws InterruptedException { + kolProfilePage.openAndCloseAddNewPublication(); +} + +@And("user click on Pubs Charts tab") +public void userclickonPubsChartstab() throws InterruptedException { + kolProfilePage.clickPubsCharts(); +} + +@And("user export all Affiliations in Excel") +public void userexportallAffiliationsinExcel() throws InterruptedException { + kolProfilePage.exportAffiliations(); +} + +@And("user export all Events in Excel") +public void userexportallEventsinExcel() throws InterruptedException { + kolProfilePage.exportEvents(); + +} +@And("user export all Publications in Excel") +public void userexportallPublicationsinExcel() throws InterruptedException { + kolProfilePage.exportPublications(); +} +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/MoreSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/MoreSteps.java new file mode 100644 index 0000000..43d36be --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/MoreSteps.java @@ -0,0 +1,157 @@ +package StepDefinitions; + +import PageObjects.MorePage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.And; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class MoreSteps extends BrowserUtility{ + + + PageObjectManager pageObjectManager=new PageObjectManager(driver); + MorePage morePage=pageObjectManager.getMorePage(); + + + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + + @When("user click on More tab") + public void userclickonMoretab() { + morePage.clickMoreTab(); + } + + @And("user click on Profile request link") + public void userclickonProfilerequestlink() { + morePage.clickProfileRequestLink(); + } + + @And("user exports pending approvals in Excel") + public void userexportspendingapprovalsinExcel() throws InterruptedException { + morePage.exportPendingApprovalsInExcel(); + } + + @And("user exports all profile request in Excel") + public void userexportsallprofilerequestinExcel() throws InterruptedException { + morePage.exportProfileRequestsInExcel(); + } + + @And("user click on Org profile request link") + public void userclickonOrgprofilerequestlink() { + morePage.clickOrgProfileRequest(); + } + + @And("user exports all organization request in Excel") + public void userexportsallorganizationrequestinExcel() throws InterruptedException { + morePage.exportProfileRequestsInExcel(); + } + + @And("user click on Recent Activity link") + public void userclickonRecentActivitylink() { + morePage.clickRecentActivityLink(); + } + + @And("user enter (.+) and submit") + public void userenterKOLNameandsubmit(String KOLName) throws InterruptedException { + morePage.enterKOLName(KOLName); + } + + @And("user filter category(.+)") + public void userfiltercategory(String category) throws InterruptedException { + morePage.selectCategoryOption(category); + } + + @Then("only filtered KOL activities should be shown") + public void onlyfilteredKOLactivitiesshouldbeshown() { + System.out.println("Passed: Only filtered recent activities are shown"); + } + + @And("user click on Notifications link") + public void userclickonNotificationslink() throws InterruptedException { + morePage.clickNotificationLink(); + } + + @And("user open and Close Add new notification form") + public void useropenandCloseAddnewnotificationform() throws InterruptedException { + morePage.clickAddNewNotificationLink(); + + } + + @And("user click on Media link") + public void userclickonMedialink() { + morePage.clickMediaLink(); + } + + @And("user filter media based on from date (.+)") + public void userfiltermediabasedonfromdate(String date) throws InterruptedException { + morePage.enterFromDate(date); + } + + @And("user click on Social Media link") + public void userclickonSocialMedialink() { + morePage.clickSocialMedia(); + } + + @And("user click on Up coming events link") + public void userclickonUpcomingeventslink() throws InterruptedException { + morePage.clickUpComingEventsLink(); + } + + @And("user click on event snapshot") + public void userclickoneventsnapshot() throws InterruptedException { + morePage.clickEventSnapshot(); + } + + @And("user click on calendar tab and filter events by day") + public void userclickoncalendartabandeventsbyfilterday() throws InterruptedException { + morePage.clickCalendarTab(); + } + + @And("user click on Map tab") + public void userclickonMaptab() { + morePage.clickMapTab(); + } + + @And("user click on MailBox link") + public void userclickonMailBoxlink() throws InterruptedException { + morePage.clickOnMailBoxLink(); + } + + @And("user click on different Mail options") + public void userclickondifferentMailoptions() throws InterruptedException { + morePage.clickMailsOptions(); + } + + @And("user click on different Setting options") + public void userclickondifferentSettingoptions() throws InterruptedException { + morePage.clickSettingsOptions(); + } + + @And("user click on different Miscellaneous options") + public void userclickondifferentMiscellaneousoptions() throws InterruptedException { + morePage.clickMiscellaneousOptions(); + } + + @And("user click on Document link") + public void userclickonDocumentlink() { + morePage.clickDocumentLink(); + } + + @And("user sort document (.+) and click on folder") + public void usersortdocumentandclickonfolder(String sort) throws InterruptedException { + morePage.sortDocumentsAndClickFolder(sort); + } + + @And("user open and close Upload doc window") + public void useropenandcloseUploaddocwindow() throws InterruptedException { + morePage.clickUploadDocumentLink(); + } +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/MyListsSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/MyListsSteps.java new file mode 100644 index 0000000..b606095 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/MyListsSteps.java @@ -0,0 +1,87 @@ +package StepDefinitions; + +import PageObjects.MyLists; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class MyListsSteps extends BrowserUtility +{ + + MyLists lists; + PageObjectManager pageObjectManager; + + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + +// @After +// public void close() +// { +// driver.quit(); +// } + + @Given("^user is on mylists tab$") + public void user_is_on_mylists_tab() + { + pageObjectManager=new PageObjectManager(driver); + lists=pageObjectManager.getMyLists(); + lists.list1(); + System.err.println("click on Mylists tab"); + } + + @When("^user clicks on mylists tab$") + public void user_clicks_on_mylists_tab() throws InterruptedException + { + System.err.println("click on Mylists tab"); + Thread.sleep(6000); + } + + @Then("^default should show public lists tab$") + public void default_should_show_public_lists_tab() + { + System.err.println("default should show public lists tab"); + } + + @When("^user clicks on export excel icon$") + public void user_clicks_on_export_excel_icon() + { + lists.listexportexcel(); + System.err.println("Export excel"); + } + + @Then("^selected kols details should download$") + public void selected_kols_details_should_download() + { + System.err.println("downloaded"); + } + + @When("^user clicks on export pdf icon$") + public void user_clicks_on_export_pdf_icon() + { + lists.listpdf(); + System.err.println("Export excel"); + } + + @When("^user clicks on manage list subtab$") + public void user_clicks_on_manage_list_subtab() + { + lists.managelistclick(); + System.err.println("Manage List click"); + } + + @Then("^user clicks on add category(.+)$") + public void user_clicks_on_add_category(String category) + { + lists.addcategory(category); + System.err.println("Add category"); + } +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/NetworkMapsSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/NetworkMapsSteps.java new file mode 100644 index 0000000..d85de14 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/NetworkMapsSteps.java @@ -0,0 +1,144 @@ +package StepDefinitions; + +import PageObjects.NetworkMapsPage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class NetworkMapsSteps extends BrowserUtility +{ + NetworkMapsPage networmMap; + PageObjectManager pageObjectManager; + + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + +// @After +// public void close() +// { +// driver.quit(); +// } + + @Given("^user clicks on network maps tab$") + public void user_clicks_on_network_maps_tab() + { + pageObjectManager=new PageObjectManager(driver); + networmMap=pageObjectManager.getNetworkMapsTab(); + networmMap.networkmap(); + System.err.println("click on Network map tab"); + } + + @When("^network map page should load$") + public void network_map_page_should_load() throws InterruptedException + { + Thread.sleep(6000); + System.err.println("click on Network map loaded successfully"); + } + + @Then("^User should show network map connections$") + public void User_should_show_network_map_connections() + { + System.err.println("User should show network map connections"); + } + + + + + @When("^user clicks on refine by global region section$") + public void user_clicks_on_refine_by_global_region_section() throws InterruptedException + { + networmMap.globalregion(); + Thread.sleep(6000); + System.err.println("global region section"); + } + + + + @When("^user clicks on Affiliations Events Pubs checkboxs$") + public void user_clicks_on_Affiliations_Events_Pubs_checkboxs() throws InterruptedException + { + networmMap.allcheckbox(); + Thread.sleep(6000); + System.err.println("all checkbox"); + } + + @When("^user clicks on Hide Sidebar Show Sidebar$") + public void user_clicks_on_Hide_Sidebar_Show_Sidebar() throws InterruptedException + { + networmMap.sidebar(); + Thread.sleep(6000); + + } + + + + @Given("^user clicks on network maps2 tab$") + public void user_clicks_on_network_maps2_tab() + { + pageObjectManager=new PageObjectManager(driver); + networmMap=pageObjectManager.getNetworkMapsTab(); + networmMap.networkmap(); + networmMap.geonetworkmap(); + System.err.println("click on Geo Network map tab"); + } + + +// @Given("^user clicks on geo network maps tab$") +// public void user_clicks_on_geo_network_maps_tab() +// { +// networmMap.geonetworkmap(); +// System.err.println("click on geo Network map tab"); +// } + + @When("^geo network map page should load$") + public void geo_network_map_page_should_load() throws InterruptedException + { + Thread.sleep(6000); + System.err.println("click on Network map loaded successfully"); + } + + @Then("^User should show geo network map connections$") + public void User_should_show_geo_network_map_connections() + { + System.err.println("User should show network map connections"); + } + + + + + @When("^user clicks on geo refine by global region section$") + public void user_clicks_on_geo_refine_by_global_region_section() throws InterruptedException + { + networmMap.globalregion(); + Thread.sleep(6000); + System.err.println("global region section"); + } + + + + @When("^user clicks on geo Affiliations Events Pubs checkboxs$") + public void user_clicks_on_geo_Affiliations_Events_Pubs_checkboxs() throws InterruptedException + { + networmMap.allcheckbox(); + Thread.sleep(6000); + System.err.println("all checkbox"); + } + + @When("^user clicks on geo Hide Sidebar Show Sidebar$") + public void user_clicks_on_geo_Hide_Sidebar_Show_Sidebar() throws InterruptedException + { + networmMap.sidebar(); + Thread.sleep(6000); + + } + +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/OrganizationSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/OrganizationSteps.java new file mode 100644 index 0000000..7632cf7 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/OrganizationSteps.java @@ -0,0 +1,168 @@ +package StepDefinitions; + +import org.openqa.selenium.OutputType; +import org.openqa.selenium.TakesScreenshot; +import PageObjects.OrganizationPage; +import Utilities.BrowserUtility; +import io.cucumber.core.api.Scenario; +import io.cucumber.java.After; +import io.cucumber.java.en.And; +import io.cucumber.java.en.Then; +import manager.PageObjectManager; + +public class OrganizationSteps extends BrowserUtility{ + + PageObjectManager pageObjectManager=new PageObjectManager(driver); + OrganizationPage organizationPage=pageObjectManager.getOrganizationPage(); + + + @After + public void takeScreenshotOnFailure(Scenario scenario) { + + if (scenario.isFailed()) { + TakesScreenshot ts = (TakesScreenshot) driver; + byte[] src = ts.getScreenshotAs(OutputType.BYTES); + scenario.embed(src, "image/png", "screenshot"); + } + } + + @And("user click on Organization tab") + public void userclickonOrganizationtab() throws InterruptedException { + /* ExtentTest logInfo=null; + try { + test = extent.createTest(Feature.class, "Organization tab functionality verification"); + test = test.createNode(Scenario.class, "Verify user can perform multiple actions in Organization tab"); + logInfo = test.createNode(new GherkinKeyword("Given"),"user click on Organization tab"); + organizationPage.clickOrganizationTab(); + logInfo.pass("clicked on Organization"); + + }catch(AssertionError | Exception e) { + testStepHandle("FAIL", logInfo, e); + }/ + organizationPage.clickOrganizationTab(); + + + } + + @And("user clicks on country filter in the Organization tab") + public void userclicksoncountryfilterintheOrganizationtab() throws InterruptedException { + / ExtentTest logInfo=null; + try { + + logInfo = test.createNode(new GherkinKeyword("And"),"user clicks on country filter in the Organization tab"); + organizationPage.clickCountryFilter(); + logInfo.pass("clicked on Country filter"); + + }catch(AssertionError | Exception e) { + testStepHandle("FAIL", logInfo, e); + } + logInfo.pass("clicked on Country filter");/ + organizationPage.clickCountryFilter(); + } + + @Then("user should display with filtered KOLs based country filter") + public void usershoulddisplaywithfilteredKOLsbasedcountryfilter() throws InterruptedException { + / ExtentTest logInfo=null; + try { + + logInfo = test.createNode(new GherkinKeyword("Then"),"user clicks on country filter in the Organization tab"); + organizationPage.verifyCountryFilter(); + logInfo.pass("KOL's filtered based on country"); + + }catch(AssertionError | Exception e) { + testStepHandle("FAIL", logInfo, e); + }*/ + organizationPage.verifyCountryFilter(); + } + + @And("user select a Organization by clicking checkbox") + public void userselectaOrganizationbyclickingcheckbox() { + organizationPage.selectAnOrganization(); + } + + @And("user selects All Organizations in Assigned dropdown") + public void userselectsAllOrganizationsinAssigneddropdown() throws InterruptedException { + organizationPage.selectAllOrganization(); + } + + @Then("Organization should get unassign from Hill Manager") + public void OrganizationshouldgetunassignfromHillManager() { + System.out.println("Passed: Organization successfully unassigned From Hill Manager"); + } + + @And("user search an Organization name(.+)") + public void usersearchanOrganizationname(String organization) throws InterruptedException { + organizationPage.searchOrganization(organization); + } + + @And("user selects My Organizations in Assigned dropdown") + public void userselectsMyOrganizationsinAssigneddropdown() throws InterruptedException { + organizationPage.selectMyOrganization(); + } + + @And("user click on Excel to export organization") + public void userclickonExceltoexportorganization() throws InterruptedException { + organizationPage.clickExportButton(); + organizationPage.verifyExcelFileDownload(); + } + + @And("user click on New link to add organization") + public void userclickonNewlinktoaddorganization() { + organizationPage.clickNewLinkToAddOrganization(); + } + + @And("user click on Save button without adding organization details") + public void userclickonSavebuttonwithoutaddingorganizationdetails() throws InterruptedException { + organizationPage.clickSaveButton(); + } + + @And("user click on Cancel button in new organization form") + public void userclickonCancelbuttoninneworganizationform() throws InterruptedException { + organizationPage.clickCancelButton(); + } + + @Then("user should be taken to organization home tab") + public void usershouldbetakentoorganizationhometab() { + organizationPage.verifyUserNavigation(); + } + + @And("user navigate within organization") + public void usernavigatewithinorganization() { + organizationPage.navigateWithinOrganization(); + } + + @And("user click on Key People tab") + public void userclickonKeyPeopletab() throws InterruptedException { + organizationPage.clickKeyPeopleTab(); + } + + @And("user open and close Add Key People form") + public void useropenandcloseAddKeyPeopleform() throws InterruptedException { + organizationPage.openAndCloseAddKeyPeopleForm(); + } + + @And("user click on Affiliate Org tab") + public void userclickonAffiliateOrgtab() { + organizationPage.clickAffiliateOrgTab(); + } + + @And("user click on Add affiliate and close the popup") + public void userclickonAddaffiliateandclosethepopup() throws InterruptedException { + organizationPage.openAndCloseAddKeyAffiliateForm(); + } + + @And("user click on Org Network tab") + public void userclickonOrgNetworktab() { + organizationPage.clickOrgNetworkTab(); + } + + @And("user click on KTL's tab within Org network tab") + public void userclickonKTLstabwithinOrgnetworktab () throws InterruptedException{ + organizationPage.clickKTLsTab(); + } + @And("user click on KeyPeople tab within Org network tab") + public void userclickonKeyPeopletabwithinOrgnetworktab() throws InterruptedException { + organizationPage.clickOrgNetworkKeyPeopleTab(); + } + +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/ReportsSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/ReportsSteps.java new file mode 100644 index 0000000..e54e334 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/ReportsSteps.java @@ -0,0 +1,148 @@ +package StepDefinitions; + +import PageObjects.ReportsPage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.And; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class ReportsSteps extends BrowserUtility +{ + ReportsPage reports; + PageObjectManager pageObjectManager; + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + + +// @After +// public void close() +// { +// driver.quit(); +// } + + @Given("^user is on reports tab$") + public void user_is_on_reports_tab() + { + pageObjectManager=new PageObjectManager(driver); + reports=pageObjectManager.getReports(); + reports.reportstab(); + System.err.println("click on REports tab"); + } + + @When("^user clicks on reports tab$") + public void user_clicks_on_reports_tab() throws InterruptedException + { + Thread.sleep(6000); + } + + @Then("^default interaction listing page shoud show$") + public void default_interaction_listing_page_shoud_show() + { + System.err.println("downloaded"); + } + @When("^user clicks on export excel icon2$") + public void user_clicks_on_export_excel_icon2() throws InterruptedException + { + Thread.sleep(6000); + reports.exportexcel(); + + } + + @When("^user clicks on interaction type dropdown$") + public void user_clicks_on_interaction_type_dropdown() throws InterruptedException + { + Thread.sleep(6000); + reports.interactiontypes(); + } + + @And("^user clicks on monthly by interaction type$") + public void user_clicks_on_monthly_by_interaction_type() throws InterruptedException + { + Thread.sleep(6000); + + } + + @And("^user clicks on monthly by business segment$") + public void user_clicks_on_monthly_by_business_segment() throws InterruptedException + { + Thread.sleep(6000); + + } + + @And("^user clicks on monthly by category$") + public void user_clicks_on_monthly_by_category() throws InterruptedException + { + Thread.sleep(6000); + + } + + @And("^user clicks on monthly by contact type$") + public void user_clicks_on_monthly_by_contact_type() throws InterruptedException + { + Thread.sleep(6000); + + } + + @And("^user clicks on monthly by topic$") + public void user_clicks_on_monthly_by_topic() throws InterruptedException + { + Thread.sleep(6000); + + } + + @When("^user clicks on activity subtab$") + public void user_clicks_on_activity_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.activity(); + } + + @When("^user clicks on profile score subtab$") + public void user_clicks_on_profile_score_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.profilescore(); + } + + @When("^user clicks on events subtab$") + public void user_clicks_on_events_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.events(); + } + @When("^user clicks on affiliations subtab$") + public void user_clicks_on_affiliations_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.affiliations(); + } + @When("^user clicks on publications subtab$") + public void user_clicks_on_publications_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.publications(); + } + + @When("^user clicks on segmentation subtab$") + public void user_clicks_on_segmentation_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.segmentation(); + } + + @When("^user clicks on budget tracker subtab$") + public void user_clicks_on_budget_tracker_subtab() throws InterruptedException + { + Thread.sleep(6000); + reports.budgettracker(); + } +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/TrackTabSteps.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/TrackTabSteps.java new file mode 100644 index 0000000..83e9a0f --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/TrackTabSteps.java @@ -0,0 +1,175 @@ +package StepDefinitions; + +import org.junit.AfterClass; +import org.openqa.selenium.WebDriver; + +import PageObjects.TrackPage; +import Utilities.BrowserUtility; +import io.cucumber.java.After; +import io.cucumber.java.en.Given; +import io.cucumber.java.en.Then; +import io.cucumber.java.en.When; +import manager.PageObjectManager; + +public class TrackTabSteps extends BrowserUtility +{ + + TrackPage track; + PageObjectManager pageObjectManager; + +// @After +// public void close() +// { +// driver.quit(); +// } + + + @After + public static void closeBrowser() throws Exception{ + if (driver == null) { + return; + } + driver.quit(); + driver = null; + } + @Given("^user is on Track tab$") + public void user_is_on_Track_tab() + { + pageObjectManager=new PageObjectManager(driver); + track=pageObjectManager.getTrackTab(); + track.tracktab(); + System.err.println("click on track tab"); + } + + @When("^user clicks on export excel icon in interaction grid$") + public void user_clicks_on_export_excel_icon_in_interaction_grid() throws InterruptedException + { + track.exportexcel(); + Thread.sleep(6000); + } + + @Then("^User should download interactions details$") + public void User_should_download_interaction_details() + { + System.err.println("downloaded"); + } + + @When("^user clicks on report sutab$") + public void user_clicks_on_report_sutab() throws InterruptedException + { + track.reportsubtab(); + Thread.sleep(6000); + } + + @Then("^User should show interaction report$") + public void User_should_show_interaction_report() + { + System.err.println("Verified"); + } + @When("^user clicks on chart sutab$") + public void user_clicks_on_chart_sutab() throws InterruptedException + { + track.chartsubtab(); + Thread.sleep(6000); + } + + @Then("^User should show interactions chart$") + public void User_should_show_interactions_chart () + { + System.err.println("Verified"); + } + + @When("^user clicks on calendar sutab$") + public void user_clicks_on_calendar_sutab() throws InterruptedException + { + track.calendarsubtab(); + Thread.sleep(6000); + } + + @Then("^User should show interactions in calendar$") + public void User_should_show_interactions_in_calendar() + { + System.err.println("Verified"); + } + + @When("^user clicks on payments tab$") + public void user_clicks_on_payments_tab() throws InterruptedException + { + track.paymentssubtab(); + Thread.sleep(6000); + } + + @Then("^User should show payment details$") + public void User_should_show_payment_details() + { + System.err.println("Verified"); + } + + @Given("^user is on payments tab$") + public void user_is_on_payments_tab() + { + + System.err.println("click on payments tab"); + } + + + + @When("^user clicks on add payment button$") + public void user_clicks_on_add_payment_button() throws InterruptedException + { + track.addpayments(); + Thread.sleep(6000); + } + + @Then("^user should show add payment form$") + public void user_should_show_add_payment_form() + { + System.err.println("Verified"); + } + + + @When("^user clicks on contracts tab$") + public void user_clicks_on_contracts_tab() throws InterruptedException + { + track.contractssubtab(); + } + + + @When("^user clicks on add contracts button$") + public void user_clicks_on_add_contracts_button() throws InterruptedException + { + track.addcontract(); + } + + @Then("^User should show contracts details$") + public void Usershouldshowcontractsdetails() + { + + } + + @Then("^user should show add contracts form$") + public void user_should_show_add_contracts_form() + { + System.err.println("Verified"); + } + + @When("^user clicks on plan subtab$") + public void user_clicks_on_plan_subtab() throws InterruptedException + { + track.plansubtab(); + } + + @When("^user clicks on objective export excel$") + public void user_clicks_on_objective_export_excel() throws InterruptedException + { + track.obejectiveexportexcel(); + } + + @When("^user clicks on plans subtab$") + public void user_clicks_on_plans_subtab() throws InterruptedException + { + track.planssubtab(); + } + + +} diff --git a/Hills_With_Cucumber/src/test/java/StepDefinitions/testRunner.java b/Hills_With_Cucumber/src/test/java/StepDefinitions/testRunner.java new file mode 100644 index 0000000..18104c5 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/StepDefinitions/testRunner.java @@ -0,0 +1,28 @@ +package StepDefinitions; + +import org.junit.AfterClass; +import org.junit.runner.RunWith; + +import Utilities.BrowserUtility; +import io.cucumber.junit.Cucumber; +import io.cucumber.junit.CucumberOptions; + +@RunWith(Cucumber.class) +@CucumberOptions(features="src\\test\\resources\\Features", glue= {"StepDefinitions"}, +plugin= {"pretty", "html:target/cucumber-html.report","json:target/cucumber-reports/cucumber.json","junit:target/cucumber-reports/cucumber.xml","com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"}, +tags="@moretab" , monochrome=true + + ) +public class testRunner extends BrowserUtility +{ + +// @AfterClass +// public static void closeBrowser() throws Exception{ +// if (driver == null) { +// return; +// } +// driver.quit(); +// driver = null; +// } +} + diff --git a/Hills_With_Cucumber/src/test/java/Utilities/BrowserUtility.java b/Hills_With_Cucumber/src/test/java/Utilities/BrowserUtility.java new file mode 100644 index 0000000..a262999 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/Utilities/BrowserUtility.java @@ -0,0 +1,36 @@ +package Utilities; + +import java.util.concurrent.TimeUnit; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.chrome.ChromeDriver; +import org.openqa.selenium.firefox.FirefoxDriver; + +public class BrowserUtility{ + public static WebDriver driver; + public static WebDriver OpenBrowser(WebDriver driver,String browserName,String url) throws InterruptedException + { + if(browserName.equalsIgnoreCase("Chrome")) + { + //C:\\Users\\hp\\eclipse-workspace\\com.testautomation.konectar\\Drivers\\chromedriver.exe + System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+"/Drivers/chromedriver/chromedriver.exe"); + driver=new ChromeDriver(); + driver.manage().window().maximize(); + driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); + driver.get(url); + return driver; + } + else if(browserName.equalsIgnoreCase("firefox")) { + System.setProperty("webdriver.gecko.driver", System.getProperty("user.dir")+"/Drivers/geckodriver/geckodriver.exe"); + driver=new FirefoxDriver(); + driver.manage().window().maximize(); + driver.get(url); + return driver; + } + + return null; + +} + +} + diff --git a/Hills_With_Cucumber/src/test/java/Utilities/PropertiesFileReader.java b/Hills_With_Cucumber/src/test/java/Utilities/PropertiesFileReader.java new file mode 100644 index 0000000..1c936f6 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/Utilities/PropertiesFileReader.java @@ -0,0 +1,22 @@ +package Utilities; + +import java.io.FileInputStream; +import java.util.Properties; + +public class PropertiesFileReader { + + public Properties getProperty() { + { + FileInputStream inputStream=null; + Properties properties = new Properties(); + try { + properties.load(new FileInputStream("resources/browser-config.properties")); + }catch(Exception e) { + System.out.println("Exception:"+e); + } + return properties; + } + + } + +} \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/java/manager/PageObjectManager.java b/Hills_With_Cucumber/src/test/java/manager/PageObjectManager.java new file mode 100644 index 0000000..d2ca382 --- /dev/null +++ b/Hills_With_Cucumber/src/test/java/manager/PageObjectManager.java @@ -0,0 +1,84 @@ +package manager; + +import org.openqa.selenium.WebDriver; + +import PageObjects.ContactsPage; +import PageObjects.HomePage; +import PageObjects.KOLProfilePage; +import PageObjects.MyLists; +import PageObjects.MyListsPage; +import PageObjects.NetworkMapsPage; +import PageObjects.OrganizationPage; +import PageObjects.ReportsPage; +import PageObjects.TrackPage; +import PageObjects.LoginPage; +import PageObjects.MorePage; + + +public class PageObjectManager +{ + public WebDriver driver; + LoginPage loginPage; + HomePage homePage; + TrackPage trackTab; + NetworkMapsPage networmMap; + MyLists lists; + MyListsPage myListspage; + ReportsPage reports; + ContactsPage contactsPage; + KOLProfilePage kolProfilePage; + OrganizationPage organizationPage; + MorePage morePage; + + public PageObjectManager(WebDriver driver) + { + this.driver = driver; + } + + public LoginPage getLoginPage() { + return (loginPage==null) ? loginPage = new LoginPage(driver):loginPage; + } + public HomePage getHomePage() { + return (homePage==null) ? homePage = new HomePage(driver):homePage; + } + + public TrackPage getTrackTab() { + return (trackTab==null) ? trackTab = new TrackPage(driver):trackTab; + } + + public NetworkMapsPage getNetworkMapsTab() + { + return (networmMap==null) ? networmMap = new NetworkMapsPage(driver):networmMap; + } + + public MyLists getMyLists() + { + return (lists==null) ? lists = new MyLists(driver):lists; + } + + public ReportsPage getReports() + { + return (reports==null) ? reports = new ReportsPage(driver):reports; + } + + public ContactsPage getContactsPage() { + return (contactsPage==null) ? contactsPage = new ContactsPage(driver):contactsPage; + } + + public KOLProfilePage getKOLProfilePage() { + return (kolProfilePage==null) ? kolProfilePage = new KOLProfilePage(driver):kolProfilePage; + } + + public OrganizationPage getOrganizationPage() { + return (organizationPage==null) ? organizationPage = new OrganizationPage(driver):organizationPage; + } + + public MorePage getMorePage() { + return (morePage==null) ? morePage = new MorePage(driver):morePage; + } + + public MyListsPage getMyListsPage() + { + return (myListspage==null) ? myListspage = new MyListsPage(driver):myListspage; + } +} diff --git a/Hills_With_Cucumber/src/test/resources/Features/Contacts.feature b/Hills_With_Cucumber/src/test/resources/Features/Contacts.feature new file mode 100644 index 0000000..c25b092 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/Contacts.feature @@ -0,0 +1,124 @@ +Feature: Contacts tab functionality + +@KOLFilter +Scenario Outline: Verify user can apply country filter to KOL +Given user login to hills application with and +When user clicks contact tab +And user clicks on country filter in the contacts tab +Then user should display with filtered HCP's based country filter + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@AddKOL +Scenario Outline: Verify error message display for mandatory fields in Add new KOL +Given user login to hills application with and +When user clicks contact tab +And user click on New icon to add KOL +And user click on Save button without adding details in add KOL page +Then Required error message shown to user for mandatory fields +When user clicks on Cancel button in add KOL page +Then user should be taken to contacts page + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@File +Scenario Outline: Verify user can download KOL PDF profile +Given user login to hills application with and +When user clicks contact tab +And select a KOL by clicking on checkbox +And user click on PDF to download details of KOL +Then PDF should get download + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@ExcelFile +Scenario Outline: Verify user can download KOL full profile as a Excel +Given user login to hills application with and +When user clicks contact tab +And select a KOL by clicking on checkbox +And user click on Excel to download details of KOL +And user selects Full profile checkbox +And user click on Export button +Then KOL full profile Excel downloaded + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@Assign +Scenario Outline: Verify user can unassign and assign Hill Manager to KOL +Given user login to hills application with and +When user clicks contact tab +And select a KOL by clicking on checkbox +And user click on Assign link +And user click on Unassign button +And user selects All Contacts in Assigned dropdown +And select a KOL by clicking on checkbox +And user click on Assign link +And user select Hill Manager to assign +And user click on Assign button +Then KOL should get assign to Hill Manager + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@Email +Scenario Outline: Verify user can send KOL profile in a Mail +Given user login to hills application with and +When user clicks contact tab +And select a KOL by clicking on checkbox +And user click on Email link +And user enter to email +And user click on send button +Then KOL profile emailed successfully + +Examples: +|username|password|email| +|hillmgr|Ss@hills2|test@test.com| + +@List +Scenario Outline: Verify user can create KOL list and delete list +Given user login to hills application with and +When user clicks contact tab +And select a KOL by clicking on checkbox +And user click on List icon link +And user add new category and list name +And user click on Save button +And user navigates to MyLists tab +And user click on Manage List tab +And user select category to be deleted +And user delete the list name +And user delete the category created + +Examples: +|username|password|email| +|hillmgr|Ss@hills2|test@test.com| + +#Scenario Outline: Verify user can assign new KOL + +#Given user login to hills application with and + +#When user clicks contact tab + +#And user click on New icon to assign KOL + +#And user add KOL and and + +#And user select and and + +#And user click on save button + +#Then user should get success message + +#Examples: + +#|username|password|firstname|lastname|email |salutation|country|language| + +#|hillmgr|Ss@hills1|Andrew |Tylor |andrew@gmail.com| | | | \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/HillsLogin.feature b/Hills_With_Cucumber/src/test/resources/Features/HillsLogin.feature new file mode 100644 index 0000000..ac89200 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/HillsLogin.feature @@ -0,0 +1,9 @@ +Feature: Login functionality + +@LoginTest +Scenario Outline: User Login to hills Application +Given user login to hills application with and + +Examples: + |username|password| + |hillmgr|Ss@hills2| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/HomeTab.feature b/Hills_With_Cucumber/src/test/resources/Features/HomeTab.feature new file mode 100644 index 0000000..3f16b2a --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/HomeTab.feature @@ -0,0 +1,32 @@ +Feature: Hometab clicks verification + + +Scenario Outline: User verify showmore page in summary section +Given user login to hills application with and +Given user is on home tab +When user clicks on showmore link in summary section +Then User should land on contact listing page + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify showmore page in recent activity section +Given user login to hills application with and +Given user is on home tab +When user clicks on showmore link in recent activity section +Then User should land on Recent activity main page + + Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify view all news page in home page +Given user login to hills application with and +Given user is on home tab +When user clicks on view all news button in home page +Then User should land on media main page + + Examples: + |username|password| + |hillmgr|Ss@hills2| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/KOLProfile.feature b/Hills_With_Cucumber/src/test/resources/Features/KOLProfile.feature new file mode 100644 index 0000000..8cde0ba --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/KOLProfile.feature @@ -0,0 +1,93 @@ +Feature: KOL Profile functionality verification + +@ProfileActions +Scenario Outline: Verify the user can perform different actions within profile summary +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user add user notes +And user click on add training and close the pop-up +And user click on add Honors and Rewards and close the pop-up + +#Provide complete KOL Name in example section. Partial KOL Name search may fail the script +Examples: +|username|password|KOLName |usernote| +|hillmgr|Ss@hills2|Andry M Jackson|Testing| + +@ProfileDetails +Scenario Outline: Verify the user can perform different actions within details tab +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user navigated to details tab +And user click on Add location and close the popup +And user click on Add phone and close the popup +And user click on Add staff and close the popup +And user click on Add email and close the popup +And user click on Add assign and close the popup + +#Provide complete KOL Name in example section. Partial KOL Name search may fail the script +Examples: +|username|password|KOLName | +|hillmgr|Ss@hills2|Andry M Jackson| + +@Track +Scenario Outline: Verify the user can perform different actions within track tab +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user click on Track tab +And user export interactions +And user click on Report tab within the interactions tab +And user click on Chart tab within the interactions tab +And user click on Calendar tab within the interactions tab +And user click on payments tab within track +And user click on Add payment and close the popup +And user click on Add contract and close the popup + +Examples: +|username|password|KOLName | +|hillmgr|Ss@hills2|Andry M Jackson| + +@Affiliation +Scenario Outline: Verify the user can perform different actions within affiliation tab +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user click on Affiliation tab +And user click on Add affiliation and close the popup +And user export all Affiliations in Excel +And user click on Reports org tab +And user click on Reports eng tab + +Examples: +|username|password|KOLName | +|hillmgr|Ss@hills2|Andry M Jackson| + +@Events +Scenario Outline: Verify the user can perform different actions within affiliation tab +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user click on Events tab +And user click on Add New Event and close the popup +And user export all Events in Excel +And user click on Events Charts tab + +Examples: +|username|password|KOLName | +|hillmgr|Ss@hills2|Andry M Jackson| + +@Publications +Scenario Outline: Verify the user can perform different actions within affiliation tab +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user click on Publications tab +And user click on Add New Publication and close the popup +And user export all Publications in Excel +And user click on Pubs Charts tab + +Examples: +|username|password|KOLName | +|hillmgr|Ss@hills2|Andry M Jackson| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/More.feature b/Hills_With_Cucumber/src/test/resources/Features/More.feature new file mode 100644 index 0000000..dca5c96 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/More.feature @@ -0,0 +1,93 @@ +Feature: More tab features verification +@moretab +Scenario Outline: Verify user can perofrm different actions in Profile request +Given user login to hills application with and +When user click on More tab +And user click on Profile request link +And user exports pending approvals in Excel +And user exports all profile request in Excel + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +Scenario Outline: Verify user can perofrm different actions in Org Profile request +Given user login to hills application with and +When user click on More tab +And user click on Org profile request link +And user exports pending approvals in Excel +And user exports all organization request in Excel + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@Recent +Scenario Outline: Verify user can perofrm different actions in Recent Activity +Given user login to hills application with and +When user click on More tab +And user click on Recent Activity link +And user enter and submit +And user filter category +Then only filtered KOL activities should be shown + +Examples: +|username|password|KOLName |category| +|hillmgr|Ss@hills2|Adam Critsin |Interactions| + +@Notify +Scenario Outline: Verify user can perofrm different actions in Notifications +Given user login to hills application with and +When user click on More tab +And user click on Notifications link +And user open and Close Add new notification form + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +Scenario Outline: Verify user can perofrm different actions in Media and Social Media +Given user login to hills application with and +When user click on More tab +And user click on Media link +And user filter media based on from date +When user click on More tab +And user click on Social Media link + +Examples: +|username|password|date | +|hillmgr|Ss@hills2|12/12/2020| + +Scenario Outline: Verify user can perofrm different actions in Upcoming Events +Given user login to hills application with and +When user click on More tab +And user click on Up coming events link +And user click on event snapshot +And user click on calendar tab and filter events by day +And user click on Map tab +Examples: +|username|password| +|hillmgr|Ss@hills2| + +Scenario Outline: Verify user can perofrm different actions in Mail Box +Given user login to hills application with and +When user click on More tab +And user click on MailBox link +And user click on different Mail options +And user click on different Setting options +And user click on different Miscellaneous options + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +Scenario Outline: Verify user can perofrm different actions in Documents +Given user login to hills application with and +When user click on More tab +And user click on Document link +And user sort document and click on folder +And user open and close Upload doc window + +Examples: +|username|password|KOLName |sort | +|hillmgr|Ss@hills2|Adam Critsin |Date (Latest)| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/MyListsTab.feature b/Hills_With_Cucumber/src/test/resources/Features/MyListsTab.feature new file mode 100644 index 0000000..4f52fbb --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/MyListsTab.feature @@ -0,0 +1,52 @@ +Feature: MyListstab clicks verification + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on mylists tab +Then default should show public lists tab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on export excel icon +Then selected kols details should download + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on export pdf icon + + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on manage list subtab + + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on manage list subtab +Then user clicks on add category + + +Examples: + |username|password|category| + |hillmgr|Ss@hills2|Test Category3| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/NetworkMapsTab.feature b/Hills_With_Cucumber/src/test/resources/Features/NetworkMapsTab.feature new file mode 100644 index 0000000..c12fa2e --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/NetworkMapsTab.feature @@ -0,0 +1,86 @@ +Feature: NetworkMapstab clicks verification + + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps tab +When network map page should load +Then User should show network map connections +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps tab +When user clicks on refine by global region section + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps tab +When user clicks on Affiliations Events Pubs checkboxs + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps tab +When user clicks on Hide Sidebar Show Sidebar + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps2 tab +When network map page should load + +Examples: + |username|password| + |hillmgr|Ss@hills2| +@geonm +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps2 tab +When geo network map page should load +Then User should show geo network map connections +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on geo network maps tab +When user clicks on geo refine by global region section + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on geo network maps tab +When user clicks on geo Affiliations Events Pubs checkboxs + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on geo network maps tab +When user clicks on geo Hide Sidebar Show Sidebar + +Examples: + |username|password| + |hillmgr|Ss@hills2| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/Organization.feature b/Hills_With_Cucumber/src/test/resources/Features/Organization.feature new file mode 100644 index 0000000..adf0252 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/Organization.feature @@ -0,0 +1,142 @@ +Feature: Organization tab functionality verification + +@Org123 +Scenario Outline: Verify user can perform multiple actions in Organization tab +Given user login to hills application with and +And user click on Organization tab +And user clicks on country filter in the Organization tab +Then user should display with filtered KOLs based country filter + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@AddOrg +Scenario Outline: Verify user can perform multiple actions in Organization tab +Given user login to hills application with and +And user click on Organization tab +And user click on New link to add organization +And user click on Save button without adding organization details +And user click on Cancel button in new organization form + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@AssignOrg +Scenario Outline: Verify user can assign and unassign Organization to KOL +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user select a Organization by clicking checkbox +And user click on Assign link +And user select Hill Manager to assign +And user click on Assign button +And user selects My Organizations in Assigned dropdown +And user select a Organization by clicking checkbox +And user click on Assign link +And user click on Unassign button +Then Organization should get unassign from Hill Manager + +#Provide complete organization name in example section organization +Examples: +|username|password|orgnization| +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@exportexcelorg +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user select a Organization by clicking checkbox +And user click on Excel to export organization + +#Provide complete organization name in example section organization +Examples: +|username|password|orgnization| +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@AddOrg +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user click on New link to add organization +And user click on Save button without adding organization details +And user click on Cancel button in new organization form +Then user should be taken to organization home tab + +Examples: +|username|password| +|hillmgr|Ss@hills2| + +@KeyPeople +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user navigate within organization +And user click on Key People tab +And user open and close Add Key People form +And user click on Track tab +And user click on Report tab within the interactions tab +And user click on Chart tab within the interactions tab +And user click on Calendar tab within the interactions tab +And user click on Add contract and close the popup +And user click on Affiliate Org tab +And user click on Add affiliate and close the popup +And user click on Org Network tab +And user click on KTL's tab within Org network tab +And user click on KeyPeople tab within Org network tab + +Examples: +|username|password|orgnization| +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@OrgTrack +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user navigate within organization +And user click on Track tab +And user click on Report tab within the interactions tab +And user click on Chart tab within the interactions tab +And user click on Calendar tab within the interactions tab +And user click on Add contract and close the popup + +Examples: +|username|password|orgnization | +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@AffiliateOrg +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user navigate within organization +And user click on Affiliate Org tab +And user click on Add affiliate and close the popup + +Examples: +|username|password|orgnization | +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@OrgNetwork +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user navigate within organization +And user click on Org Network tab +And user click on KTL's tab within Org network tab +And user click on KeyPeople tab within Org network tab + +Examples: +|username|password|orgnization | +|hillmgr|Ss@hills2|4 Paws Veterinary Care| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/Reports.feature b/Hills_With_Cucumber/src/test/resources/Features/Reports.feature new file mode 100644 index 0000000..c3c8bbf --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/Reports.feature @@ -0,0 +1,98 @@ +Feature: Reportstab clicks verification + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on reports tab +Then default interaction listing page shoud show +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on export excel icon2 + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on interaction type dropdown +And user clicks on monthly by interaction type +And user clicks on monthly by business segment +And user clicks on monthly by category +And user clicks on monthly by contact type +And user clicks on monthly by topic + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on activity subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on profile score subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on events subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on affiliations subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on publications subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on segmentation subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on budget tracker subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/Features/TrackTab.feature b/Hills_With_Cucumber/src/test/resources/Features/TrackTab.feature new file mode 100644 index 0000000..b50625c --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/Features/TrackTab.feature @@ -0,0 +1,103 @@ +Feature: Tracktab clicks verification + +Scenario Outline: User verify Interaction listing page +Given user login to hills application with and +Given user is on Track tab +When user clicks on export excel icon in interaction grid +Then User should download interactions details +Examples: + |username|password| + |hillmgr|Ss@hills2| +@trackone +Scenario Outline: User verify report subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on report sutab +Then User should show interaction report + +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify chart subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on chart sutab +Then User should show interactions chart + +Examples: + |username|password| + |hillmgr|Ss@hills2| +Scenario Outline: User verify calendar subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on calendar sutab +Then User should show interactions in calendar + +Examples: + |username|password| + |hillmgr|Ss@hills2| +Scenario Outline: User verify payments tab +Given user login to hills application with and +Given user is on Track tab +When user clicks on payments tab +Then User should show payment details +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify add payments feature +Given user login to hills application with and +Given user is on payments tab +When user clicks on add payment button +Then user should show add payment form + +Examples: + |username|password| + |hillmgr|Ss@hills2| +@conTest +Scenario Outline: User verify contracts tab +Given user login to hills application with and +Given user is on Track tab +When user clicks on contracts tab +When user clicks on add contracts button +Then User should show contracts details + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + +Scenario Outline: User verify add contracts feature +Given user login to hills application with and +Given user is on Track tab +When user clicks on add contracts button +Then user should show add contracts form +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify plan subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on plan subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| +Scenario Outline: User verify plan subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on objective export excel +Examples: + |username|password| + |hillmgr|Ss@hills2| + +Scenario Outline: User verify plan subtab +Given user login to hills application with and +Given user is on Track tab +When user clicks on plans subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Contacts.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Contacts.feature new file mode 100644 index 0000000..6f4900f --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Contacts.feature @@ -0,0 +1,60 @@ +Feature: Contacts tab functionality + +@Contacts +Scenario Outline: Verify user can apply country filter to KOL +Given user login to hills application with and +When user clicks contact tab + +#And user clicks on country filter in the contacts tab + +#Then user should display with filtered HCP's based country filter + +#When user clicks contact tab +And user click on New icon to add KOL +And user click on Save button without adding details in add KOL page +Then Required error message shown to user for mandatory fields +When user clicks on Cancel button in add KOL page +Then user should be taken to contacts page +And select a KOL by clicking on checkbox +And user click on PDF to download details of KOL +Then PDF should get download + +#And select a KOL by clicking on checkbox +And user click on Excel to download details of KOL +And user selects Full profile checkbox +And user click on Export button +Then KOL full profile Excel downloaded + +#And select a KOL by clicking on checkbox +And user click on Assign link +And user click on Unassign button +And user selects All Contacts in Assigned dropdown +And select a KOL by clicking on checkbox +And user click on Assign link +And user select Hill Manager to assign +And user click on Assign button +Then KOL should get assign to Hill Manager + +#And select a KOL by clicking on checkbox +And user click on Email link +And user enter to email +And user click on send button +Then KOL profile emailed successfully + +#And select a KOL by clicking on checkbox +And user click on List icon link +And user add new category and list name +And user click on Save button +And user navigates to MyLists tab +And user click on Manage List tab +And user select category to be deleted +And user delete the list name +And user delete the category created +When user clicks contact tab +And user clicks on country filter in the contacts tab +Then user should display with filtered HCP's based country filter + +Examples: +|username|password|email| +|hillmgr|Ss@hills2|test@test.com| + diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HillsLogin.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HillsLogin.feature new file mode 100644 index 0000000..ac89200 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HillsLogin.feature @@ -0,0 +1,9 @@ +Feature: Login functionality + +@LoginTest +Scenario Outline: User Login to hills Application +Given user login to hills application with and + +Examples: + |username|password| + |hillmgr|Ss@hills2| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HomeTab.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HomeTab.feature new file mode 100644 index 0000000..c662ed3 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/HomeTab.feature @@ -0,0 +1,20 @@ +Feature: Hometab clicks verification + + +Scenario Outline: User verify showmore page in summary section +Given user login to hills application with and +Given user is on home tab +When user clicks on showmore link in summary section +Then User should land on contact listing page +When user clicks on showmore link in recent activity section +When user clicks on view all news button in home page +Then User should land on media main page + + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/KOLProfile.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/KOLProfile.feature new file mode 100644 index 0000000..13e0a94 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/KOLProfile.feature @@ -0,0 +1,44 @@ +Feature: KOL Profile functionality verification + +@WithinProfile +Scenario Outline: Verify the user can go to KOL profile from contacts page +Given user login to hills application with and +When user clicks contact tab +And user search and click on +And user add user notes +And user click on add training and close the pop-up +And user click on add Honors and Rewards and close the pop-up +And user navigated to details tab +And user click on Add location and close the popup +And user click on Add phone and close the popup +And user click on Add staff and close the popup +And user click on Add email and close the popup +And user click on Add assign and close the popup +And user click on Track tab +And user export interactions +And user click on Report tab within the interactions tab +And user click on Chart tab within the interactions tab +And user click on Calendar tab within the interactions tab +And user click on payments tab within track +And user click on Add payment and close the popup +And user click on Add contract and close the popup +And user click on Affiliation tab +And user click on Add affiliation and close the popup +And user export all Affiliations in Excel +And user click on Reports org tab +And user click on Reports eng tab +And user click on Events tab + +#And user click on Add New Event and close the popup +And user export all Events in Excel +And user click on Events Charts tab +And user click on Publications tab +And user click on Add New Publication and close the popup +And user export all Publications in Excel +And user click on Pubs Charts tab + +#Provide complete KOL Name in example section. Partial KOL Name search may fail the script +Examples: +|username|password|KOLName|usernote| +|hillmgr|Ss@hills2|Andry M Jackson|Testing| + diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/More.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/More.feature new file mode 100644 index 0000000..a328f93 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/More.feature @@ -0,0 +1,44 @@ +Feature: More tab features verification + +@more +Scenario Outline: Verify user can perofrm different actions in Profile request +Given user login to hills application with and +When user click on More tab +And user click on Profile request link +And user exports pending approvals in Excel +And user exports all profile request in Excel +When user click on More tab +And user click on Org profile request link +And user exports pending approvals in Excel +And user exports all organization request in Excel +When user click on More tab +And user click on Recent Activity link +And user enter and submit +And user filter category +Then only filtered KOL activities should be shown +When user click on More tab +And user click on Notifications link +And user open and Close Add new notification form +When user click on More tab +And user click on Media link +And user filter media based on from date +When user click on More tab +And user click on Social Media link +When user click on More tab +And user click on Up coming events link +And user click on event snapshot +And user click on calendar tab and filter events by day +And user click on Map tab +When user click on More tab +And user click on MailBox link +And user click on different Mail options +And user click on different Setting options +And user click on different Miscellaneous options +When user click on More tab +And user click on Document link +And user sort document and click on folder +And user open and close Upload doc window + +Examples: +|username|password|KOLName |category |date |sort| +|hillmgr|Ss@hills2|Adam Critsin |Interactions|12/12/2020|Date (Latest)| \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/MyListsTab.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/MyListsTab.feature new file mode 100644 index 0000000..13a5fb9 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/MyListsTab.feature @@ -0,0 +1,24 @@ +Feature: MyListstab clicks verification + +Scenario Outline: User verify MyLists page +Given user login to hills application with and +Given user is on mylists tab +When user clicks on mylists tab +Then default should show public lists tab +When user clicks on export excel icon +Then selected kols details should download +When user clicks on export pdf icon +When user clicks on manage list subtab + +Then user clicks on add category + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + + + + \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/NetworkMapsTab.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/NetworkMapsTab.feature new file mode 100644 index 0000000..9ed16d6 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/NetworkMapsTab.feature @@ -0,0 +1,36 @@ +Feature: NetworkMapstab clicks verification + + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps tab +When network map page should load +Then User should show network map connections +When user clicks on refine by global region section +When user clicks on Affiliations Events Pubs checkboxs +When user clicks on Hide Sidebar Show Sidebar +Examples: + |username|password| + |hillmgr|Ss@hills2| + + +Scenario Outline: User verify Network Maps page +Given user login to hills application with and +Given user clicks on network maps2 tab +When network map page should load +When geo network map page should load +Then User should show geo network map connections + +When user clicks on geo refine by global region section +When user clicks on geo Affiliations Events Pubs checkboxs +When user clicks on geo Hide Sidebar Show Sidebar + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + + + diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Organization.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Organization.feature new file mode 100644 index 0000000..80b7b08 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Organization.feature @@ -0,0 +1,56 @@ +Feature: Organization tab functionality verification + +@Org +Scenario Outline: Verify user can perform multiple actions in Organization tab +Given user login to hills application with and +And user click on Organization tab +And user clicks on country filter in the Organization tab +Then user should display with filtered KOLs based country filter +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user select a Organization by clicking checkbox +And user click on Assign link +And user select Hill Manager to assign +And user click on Assign button +And user selects My Organizations in Assigned dropdown +And user select a Organization by clicking checkbox +And user click on Assign link +And user click on Unassign button +Then Organization should get unassign from Hill Manager +And user click on New link to add organization +And user click on Save button without adding organization details +And user click on Cancel button in new organization form +And user selects All Organizations in Assigned dropdown +And user search an Organization name +Then user should be taken to organization home tab +And user select a Organization by clicking checkbox +And user click on Excel to export organization + +Examples: +|username|password|orgnization| +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + +@WithinOrg +Scenario Outline: Verify user can download organization in excel format +Given user login to hills application with and +And user click on Organization tab +And user selects All Organizations in Assigned dropdown +And user search an Organization name +And user navigate within organization +And user click on Key People tab +And user open and close Add Key People form +And user click on Track tab +And user click on Report tab within the interactions tab +And user click on Chart tab within the interactions tab +And user click on Calendar tab within the interactions tab +And user click on Add contract and close the popup +And user click on Affiliate Org tab +And user click on Add affiliate and close the popup +And user click on Org Network tab +And user click on KTL's tab within Org network tab +And user click on KeyPeople tab within Org network tab + +Examples: +|username|password|orgnization| +|hillmgr|Ss@hills2|4 Paws Veterinary Care| + diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Reports.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Reports.feature new file mode 100644 index 0000000..92fa870 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/Reports.feature @@ -0,0 +1,40 @@ +Feature: Reportstab clicks verification + +Scenario Outline: User verify Reports tab +Given user login to hills application with and +Given user is on reports tab +When user clicks on reports tab +Then default interaction listing page shoud show +When user clicks on export excel icon2 + +When user clicks on interaction type dropdown +And user clicks on monthly by interaction type + +And user clicks on monthly by business segment + +And user clicks on monthly by category +And user clicks on monthly by contact type +And user clicks on monthly by topic + +When user clicks on activity subtab +When user clicks on profile score subtab +When user clicks on events subtab +When user clicks on affiliations subtab +When user clicks on publications subtab +When user clicks on segmentation subtab +When user clicks on budget tracker subtab + +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + + + + + + + + \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/FeaturesSuite/TrackTab.feature b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/TrackTab.feature new file mode 100644 index 0000000..789f356 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/FeaturesSuite/TrackTab.feature @@ -0,0 +1,48 @@ +Feature: Tracktab clicks verification + + +Scenario Outline: User verify Interaction listing page +Given user login to hills application with and +Given user is on Track tab +When user clicks on export excel icon in interaction grid +Then User should download interactions details +When user clicks on report sutab +Then User should show interaction report +When user clicks on chart sutab +Then User should show interactions chart +When user clicks on calendar sutab +Then User should show interactions in calendar + +When user clicks on payments tab +Then User should show payment details +Given user is on payments tab +When user clicks on add payment button +Then user should show add payment form +Given user is on Track tab +When user clicks on contracts tab +When user clicks on add contracts button +Then User should show contracts details +When user clicks on add contracts button +Then user should show add contracts form +When user clicks on plan subtab +When user clicks on objective export excel +When user clicks on plans subtab +Examples: + |username|password| + |hillmgr|Ss@hills2| + + + + + + + + + + + + + + + + diff --git a/Hills_With_Cucumber/src/test/resources/extent-config.xml b/Hills_With_Cucumber/src/test/resources/extent-config.xml new file mode 100644 index 0000000..3a21ab1 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/extent-config.xml @@ -0,0 +1,43 @@ + + + + + + + standard + + + + UTF-8 + + + + https + + + Extent + + + Automation Report + + + + bottom + + + + + + + + + + + + \ No newline at end of file diff --git a/Hills_With_Cucumber/src/test/resources/extent.properties b/Hills_With_Cucumber/src/test/resources/extent.properties new file mode 100644 index 0000000..82d78c5 --- /dev/null +++ b/Hills_With_Cucumber/src/test/resources/extent.properties @@ -0,0 +1,3 @@ +extent.reporter.html.start=true +extent.reporter.html.config=src/test/resources/extent-config.xml +extent.reporter.html.out=target/cucumber-reports/advanced-reports/extentreports/extent.html \ No newline at end of file diff --git a/Hills_With_Cucumber/target/.gitignore b/Hills_With_Cucumber/target/.gitignore new file mode 100644 index 0000000..4569837 --- /dev/null +++ b/Hills_With_Cucumber/target/.gitignore @@ -0,0 +1,2 @@ +/classes/ +/test-classes/ diff --git a/Hills_With_Cucumber/target/HtmlReports/formatter.js b/Hills_With_Cucumber/target/HtmlReports/formatter.js new file mode 100644 index 0000000..ef2ed8d --- /dev/null +++ b/Hills_With_Cucumber/target/HtmlReports/formatter.js @@ -0,0 +1,257 @@ +var CucumberHTML = {}; + +CucumberHTML.DOMFormatter = function(rootNode) { + var currentUri; + var currentFeature; + var currentElement; + var currentSteps; + + var currentStepIndex; + var currentStep; + var $templates = $(CucumberHTML.templates); + + this.uri = function(uri) { + currentUri = uri; + }; + + this.feature = function(feature) { + currentFeature = blockElement(rootNode, feature, 'feature'); + }; + + this.background = function(background) { + currentElement = featureElement(background, 'background'); + currentStepIndex = 1; + }; + + this.scenario = function(scenario) { + currentElement = featureElement(scenario, 'scenario'); + currentStepIndex = 1; + }; + + this.scenarioOutline = function(scenarioOutline) { + currentElement = featureElement(scenarioOutline, 'scenario_outline'); + currentStepIndex = 1; + }; + + this.step = function(step) { + var stepElement = $('.step', $templates).clone(); + stepElement.appendTo(currentSteps); + populate(stepElement, step, 'step'); + + if (step.doc_string) { + docString = $('.doc_string', $templates).clone(); + docString.appendTo(stepElement); + // TODO: use a syntax highlighter based on the content_type + docString.text(step.doc_string.value); + } + if (step.rows) { + dataTable = $('.data_table', $templates).clone(); + dataTable.appendTo(stepElement); + var tBody = dataTable.find('tbody'); + $.each(step.rows, function(index, row) { + var tr = $('').appendTo(tBody); + $.each(row.cells, function(index, cell) { + var td = $('' + cell + '').appendTo(tBody); + }); + }); + } + }; + + this.examples = function(examples) { + var examplesElement = blockElement(currentElement.children('details'), examples, 'examples'); + var examplesTable = $('.examples_table', $templates).clone(); + examplesTable.appendTo(examplesElement.children('details')); + + $.each(examples.rows, function(index, row) { + var parent = index == 0 ? examplesTable.find('thead') : examplesTable.find('tbody'); + var tr = $('').appendTo(parent); + $.each(row.cells, function(index, cell) { + var td = $('' + cell + '').appendTo(tr); + }); + }); + }; + + this.match = function(match) { + currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')'); + currentStepIndex++; + }; + + this.result = function(result) { + currentStep.addClass(result.status); + if (result.error_message != '') { + populateStepError(currentStep, result.error_message); + } + currentElement.addClass(result.status); + var isLastStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')').length == 0; + if (isLastStep) { + if (currentSteps.find('.failed').length == 0) { + // No failed steps. Collapse it. + currentElement.find('details').prop('open', false); + } else { + currentElement.find('details').attr('open', 'open'); + } + } + }; + + this.embedding = function(mimeType, data, name) { + var nameHtml; + if (!name) { + nameHtml = ""; + } else { + nameHtml = "

" + name + "

"; + } + if (currentStepIndex == 1) { + this.dummyStep(); + } + if (mimeType.match(/^image\//)) + { + currentStep.append(nameHtml + ''); + } + else if (mimeType.match(/^video\//)) + { + currentStep.append(nameHtml + ''); + } + else if (mimeType.match(/^text\//)) + { + this.write(nameHtml + data); + } + }; + + this.write = function(text) { + if (currentStepIndex == 1) { + this.dummyStep(); + } + currentStep.append('
' + text + '
'); + }; + + this.before = function(before) { + this.handleHookResult(before); + }; + + this.after = function(after) { + this.handleHookResult(after); + }; + + this.beforestep = function(beforestep) { + this.handleHookResult(beforestep); + }; + + this.afterstep = function(afterstep) { + this.handleHookResult(afterstep); + }; + + this.handleHookResult = function(hook) { + if (hook.status != 'passed' && hook.error_message != '') { + this.dummyStep(); + currentStep.addClass(hook.status); + currentElement.addClass(hook.status); + populateStepError(currentStep, hook.error_message); + } + }; + + this.dummyStep = function() { + var stepElement = $('.step', $templates).clone(); + stepElement.appendTo(currentSteps); + populate(stepElement, {keyword: '', name: ''}, 'step'); + currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')'); + currentStepIndex++; + }; + + function featureElement(statement, itemtype) { + var e = blockElement(currentFeature.children('details'), statement, itemtype); + + currentSteps = $('.steps', $templates).clone(); + currentSteps.appendTo(e.children('details')); + + return e; + } + + function blockElement(parent, statement, itemtype) { + var e = $('.blockelement', $templates).clone(); + e.appendTo(parent); + return populate(e, statement, itemtype); + } + + function populate(e, statement, itemtype) { + populateTags(e, statement.tags); + populateComments(e, statement.comments); + e.find('.keyword').text(statement.keyword); + e.find('.name').text(statement.name); + e.find('.description').text(statement.description); + e.attr('itemtype', 'http://cukes.info/microformat/' + itemtype); + e.addClass(itemtype); + return e; + } + + function populateComments(e, comments) { + if (comments !== undefined) { + var commentsNode = $('.comments', $templates).clone().prependTo(e.find('.header')); + $.each(comments, function(index, comment) { + var commentNode = $('.comment', $templates).clone().appendTo(commentsNode); + commentNode.text(comment.value); + }); + } + } + + function populateTags(e, tags) { + if (tags !== undefined) { + var tagsNode = $('.tags', $templates).clone().prependTo(e.find('.header')); + $.each(tags, function(index, tag) { + var tagNode = $('.tag', $templates).clone().appendTo(tagsNode); + tagNode.text(tag.name); + }); + } + } + + function populateStepError(e, error) { + if (error !== undefined) { + errorNode = $('.error', $templates).clone().appendTo(e); + errorNode.text(error); + } + } +}; + +CucumberHTML.templates = '
\ +
\ +
\ + \ + Keyword: This is the block name\ + \ +
The description goes here
\ +
\ +
\ +\ +
    \ +\ +
      \ +
    1. KeywordName
    2. \ +
    \ +\ +
    \
    +\
    +  
    \
    +\
    +  \
    +    \
    +    \
    +  
    \ +\ + \ + \ + \ +
    \ +\ +
    \ + \ +
    \ +
    \ + \ +
    \ +
    \ +
    '; + +if (typeof module !== 'undefined') { + module.exports = CucumberHTML; +} else if (typeof define !== 'undefined') { + define([], function() { return CucumberHTML; }); +} diff --git a/Hills_With_Cucumber/target/HtmlReports/index.html b/Hills_With_Cucumber/target/HtmlReports/index.html new file mode 100644 index 0000000..982462d --- /dev/null +++ b/Hills_With_Cucumber/target/HtmlReports/index.html @@ -0,0 +1,14 @@ + + + + + Cucumber Features + + + + + + +
    + + diff --git a/Hills_With_Cucumber/target/HtmlReports/jquery-3.4.1.min.js b/Hills_With_Cucumber/target/HtmlReports/jquery-3.4.1.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/Hills_With_Cucumber/target/HtmlReports/jquery-3.4.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0 section { + margin-left: 20px; +} + +.cucumber-report ol.steps { + list-style-type: none; + margin-top: 0; + margin-bottom: 0; +} + +.cucumber-report .step .embedded-text { + background: #dddddd; +} + +.cucumber-report .doc_string { + margin: 0 0 0 20px; +} + +.cucumber-report table { + border-collapse: collapse; + border: 1px; + border-style: solid; +} + +.cucumber-report td, .cucumber-report th { + border: 1px; + border-style: solid; + padding-left: 4px; + padding-right: 4px; +} + +.cucumber-report table { + margin-left: 20px; +} + +.cucumber-report thead { + background-color: #C0C0C0; +} + +.cucumber-report .passed { + background-color: #C5D88A; +} + +.cucumber-report .undefined, .cucumber-report .pending { + background-color: #EAEC2D; +} + +.cucumber-report .skipped { + background-color: #2DEAEC; +} + +.cucumber-report .failed { + background-color: #D88A8A; +} + +.cucumber-report .tags { + display: inline; +} + +.cucumber-report .tag { + margin-right: 0.25em; + color: #246ac1; +} + +.cucumber-report .comments { + display: inline; +} + +.cucumber-report .comment { + margin: 0; + padding: 0; +} + +.cucumber-report .error { + margin: .2em .75em; + padding: .2em; + border: 1px solid #900; + background-color: #EDBBBB; +} + +#cucumber-templates { + display: none; +} diff --git a/Hills_With_Cucumber/target/JSONReports/report.json b/Hills_With_Cucumber/target/JSONReports/report.json new file mode 100644 index 0000000..b297fad --- /dev/null +++ b/Hills_With_Cucumber/target/JSONReports/report.json @@ -0,0 +1,112 @@ +[ + { + "line": 1, + "elements": [ + { + "start_timestamp": "2021-06-21T12:31:58.682Z", + "line": 11, + "name": "Verify valid login credentials", + "description": "", + "id": "hills-login-functionality;verify-valid-login-credentials;;2", + "type": "scenario", + "keyword": "Scenario Outline", + "steps": [ + { + "result": { + "status": "undefined" + }, + "line": 4, + "name": "user navigate to hills login page", + "match": {}, + "keyword": "Given " + }, + { + "result": { + "status": "undefined" + }, + "line": 5, + "name": "user enters usernamehillmgr and passwordSs@hills1", + "match": {}, + "keyword": "When " + }, + { + "result": { + "status": "undefined" + }, + "line": 6, + "name": "user clicks on sign in button", + "match": {}, + "keyword": "And " + }, + { + "result": { + "status": "undefined" + }, + "line": 7, + "name": "user shold be login to hills application", + "match": {}, + "keyword": "Then " + } + ] + }, + { + "start_timestamp": "2021-06-21T12:31:58.803Z", + "line": 22, + "name": "Verify Invalid login credentials", + "description": "", + "id": "hills-login-functionality;verify-invalid-login-credentials;;2", + "type": "scenario", + "keyword": "Scenario Outline", + "steps": [ + { + "result": { + "status": "undefined" + }, + "line": 15, + "name": "user navigate to hills login page", + "match": {}, + "keyword": "Given " + }, + { + "result": { + "status": "undefined" + }, + "line": 16, + "name": "user enters usernamehillmgr and passwordRR@his1", + "match": {}, + "keyword": "When " + }, + { + "result": { + "status": "undefined" + }, + "line": 17, + "name": "user clicks on sign in button", + "match": {}, + "keyword": "And " + }, + { + "result": { + "status": "undefined" + }, + "line": 18, + "name": "user shold not be login to hills application", + "match": {}, + "keyword": "Then " + } + ], + "tags": [ + { + "name": "@Invalidtest" + } + ] + } + ], + "name": "hills login functionality", + "description": "", + "id": "hills-login-functionality", + "keyword": "Feature", + "uri": "file:src/test/resources/Features/HillsLogin.feature", + "tags": [] + } +] \ No newline at end of file diff --git a/Hills_With_Cucumber/target/JUnitReports/reports.xml b/Hills_With_Cucumber/target/JUnitReports/reports.xml new file mode 100644 index 0000000..4be8272 --- /dev/null +++ b/Hills_With_Cucumber/target/JUnitReports/reports.xml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/Hills_With_Cucumber/target/cucumber-html.report/formatter.js b/Hills_With_Cucumber/target/cucumber-html.report/formatter.js new file mode 100644 index 0000000..ef2ed8d --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-html.report/formatter.js @@ -0,0 +1,257 @@ +var CucumberHTML = {}; + +CucumberHTML.DOMFormatter = function(rootNode) { + var currentUri; + var currentFeature; + var currentElement; + var currentSteps; + + var currentStepIndex; + var currentStep; + var $templates = $(CucumberHTML.templates); + + this.uri = function(uri) { + currentUri = uri; + }; + + this.feature = function(feature) { + currentFeature = blockElement(rootNode, feature, 'feature'); + }; + + this.background = function(background) { + currentElement = featureElement(background, 'background'); + currentStepIndex = 1; + }; + + this.scenario = function(scenario) { + currentElement = featureElement(scenario, 'scenario'); + currentStepIndex = 1; + }; + + this.scenarioOutline = function(scenarioOutline) { + currentElement = featureElement(scenarioOutline, 'scenario_outline'); + currentStepIndex = 1; + }; + + this.step = function(step) { + var stepElement = $('.step', $templates).clone(); + stepElement.appendTo(currentSteps); + populate(stepElement, step, 'step'); + + if (step.doc_string) { + docString = $('.doc_string', $templates).clone(); + docString.appendTo(stepElement); + // TODO: use a syntax highlighter based on the content_type + docString.text(step.doc_string.value); + } + if (step.rows) { + dataTable = $('.data_table', $templates).clone(); + dataTable.appendTo(stepElement); + var tBody = dataTable.find('tbody'); + $.each(step.rows, function(index, row) { + var tr = $('').appendTo(tBody); + $.each(row.cells, function(index, cell) { + var td = $('' + cell + '').appendTo(tBody); + }); + }); + } + }; + + this.examples = function(examples) { + var examplesElement = blockElement(currentElement.children('details'), examples, 'examples'); + var examplesTable = $('.examples_table', $templates).clone(); + examplesTable.appendTo(examplesElement.children('details')); + + $.each(examples.rows, function(index, row) { + var parent = index == 0 ? examplesTable.find('thead') : examplesTable.find('tbody'); + var tr = $('').appendTo(parent); + $.each(row.cells, function(index, cell) { + var td = $('' + cell + '').appendTo(tr); + }); + }); + }; + + this.match = function(match) { + currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')'); + currentStepIndex++; + }; + + this.result = function(result) { + currentStep.addClass(result.status); + if (result.error_message != '') { + populateStepError(currentStep, result.error_message); + } + currentElement.addClass(result.status); + var isLastStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')').length == 0; + if (isLastStep) { + if (currentSteps.find('.failed').length == 0) { + // No failed steps. Collapse it. + currentElement.find('details').prop('open', false); + } else { + currentElement.find('details').attr('open', 'open'); + } + } + }; + + this.embedding = function(mimeType, data, name) { + var nameHtml; + if (!name) { + nameHtml = ""; + } else { + nameHtml = "

    " + name + "

    "; + } + if (currentStepIndex == 1) { + this.dummyStep(); + } + if (mimeType.match(/^image\//)) + { + currentStep.append(nameHtml + ''); + } + else if (mimeType.match(/^video\//)) + { + currentStep.append(nameHtml + ''); + } + else if (mimeType.match(/^text\//)) + { + this.write(nameHtml + data); + } + }; + + this.write = function(text) { + if (currentStepIndex == 1) { + this.dummyStep(); + } + currentStep.append('
    ' + text + '
    '); + }; + + this.before = function(before) { + this.handleHookResult(before); + }; + + this.after = function(after) { + this.handleHookResult(after); + }; + + this.beforestep = function(beforestep) { + this.handleHookResult(beforestep); + }; + + this.afterstep = function(afterstep) { + this.handleHookResult(afterstep); + }; + + this.handleHookResult = function(hook) { + if (hook.status != 'passed' && hook.error_message != '') { + this.dummyStep(); + currentStep.addClass(hook.status); + currentElement.addClass(hook.status); + populateStepError(currentStep, hook.error_message); + } + }; + + this.dummyStep = function() { + var stepElement = $('.step', $templates).clone(); + stepElement.appendTo(currentSteps); + populate(stepElement, {keyword: '', name: ''}, 'step'); + currentStep = currentSteps.find('li:nth-child(' + currentStepIndex + ')'); + currentStepIndex++; + }; + + function featureElement(statement, itemtype) { + var e = blockElement(currentFeature.children('details'), statement, itemtype); + + currentSteps = $('.steps', $templates).clone(); + currentSteps.appendTo(e.children('details')); + + return e; + } + + function blockElement(parent, statement, itemtype) { + var e = $('.blockelement', $templates).clone(); + e.appendTo(parent); + return populate(e, statement, itemtype); + } + + function populate(e, statement, itemtype) { + populateTags(e, statement.tags); + populateComments(e, statement.comments); + e.find('.keyword').text(statement.keyword); + e.find('.name').text(statement.name); + e.find('.description').text(statement.description); + e.attr('itemtype', 'http://cukes.info/microformat/' + itemtype); + e.addClass(itemtype); + return e; + } + + function populateComments(e, comments) { + if (comments !== undefined) { + var commentsNode = $('.comments', $templates).clone().prependTo(e.find('.header')); + $.each(comments, function(index, comment) { + var commentNode = $('.comment', $templates).clone().appendTo(commentsNode); + commentNode.text(comment.value); + }); + } + } + + function populateTags(e, tags) { + if (tags !== undefined) { + var tagsNode = $('.tags', $templates).clone().prependTo(e.find('.header')); + $.each(tags, function(index, tag) { + var tagNode = $('.tag', $templates).clone().appendTo(tagsNode); + tagNode.text(tag.name); + }); + } + } + + function populateStepError(e, error) { + if (error !== undefined) { + errorNode = $('.error', $templates).clone().appendTo(e); + errorNode.text(error); + } + } +}; + +CucumberHTML.templates = '
    \ +
    \ +
    \ + \ + Keyword: This is the block name\ + \ +
    The description goes here
    \ +
    \ +
    \ +\ +
      \ +\ +
        \ +
      1. KeywordName
      2. \ +
      \ +\ +
      \
      +\
      +  
      \
      +\
      +  \
      +    \
      +    \
      +  
      \ +\ + \ + \ + \ +
      \ +\ +
      \ + \ +
      \ +
      \ + \ +
      \ +
      \ +
      '; + +if (typeof module !== 'undefined') { + module.exports = CucumberHTML; +} else if (typeof define !== 'undefined') { + define([], function() { return CucumberHTML; }); +} diff --git a/Hills_With_Cucumber/target/cucumber-html.report/index.html b/Hills_With_Cucumber/target/cucumber-html.report/index.html new file mode 100644 index 0000000..982462d --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-html.report/index.html @@ -0,0 +1,14 @@ + + + + + Cucumber Features + + + + + + +
      + + diff --git a/Hills_With_Cucumber/target/cucumber-html.report/jquery-3.4.1.min.js b/Hills_With_Cucumber/target/cucumber-html.report/jquery-3.4.1.min.js new file mode 100644 index 0000000..a1c07fd --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-html.report/jquery-3.4.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0 section { + margin-left: 20px; +} + +.cucumber-report ol.steps { + list-style-type: none; + margin-top: 0; + margin-bottom: 0; +} + +.cucumber-report .step .embedded-text { + background: #dddddd; +} + +.cucumber-report .doc_string { + margin: 0 0 0 20px; +} + +.cucumber-report table { + border-collapse: collapse; + border: 1px; + border-style: solid; +} + +.cucumber-report td, .cucumber-report th { + border: 1px; + border-style: solid; + padding-left: 4px; + padding-right: 4px; +} + +.cucumber-report table { + margin-left: 20px; +} + +.cucumber-report thead { + background-color: #C0C0C0; +} + +.cucumber-report .passed { + background-color: #C5D88A; +} + +.cucumber-report .undefined, .cucumber-report .pending { + background-color: #EAEC2D; +} + +.cucumber-report .skipped { + background-color: #2DEAEC; +} + +.cucumber-report .failed { + background-color: #D88A8A; +} + +.cucumber-report .tags { + display: inline; +} + +.cucumber-report .tag { + margin-right: 0.25em; + color: #246ac1; +} + +.cucumber-report .comments { + display: inline; +} + +.cucumber-report .comment { + margin: 0; + padding: 0; +} + +.cucumber-report .error { + margin: .2em .75em; + padding: .2em; + border: 1px solid #900; + background-color: #EDBBBB; +} + +#cucumber-templates { + display: none; +} diff --git a/Hills_With_Cucumber/target/cucumber-reports/advanced-reports/extentreports/extent.html b/Hills_With_Cucumber/target/cucumber-reports/advanced-reports/extentreports/extent.html new file mode 100644 index 0000000..f31098a --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-reports/advanced-reports/extentreports/extent.html @@ -0,0 +1,439 @@ + + + + + + + + + + + + + + + + + + + + + + + + Extent + + + + + + +
      + desktop_windows +
      + +
      +
      +
      + +
      +
      +
      +
      +
      +
      Features
      +
      + +
      +
      + 1 feature(s) passed +
      +
      + 0 feature(s) failed, 0 skipped +
      +
      +
      +
      +
      +
      Scenarios
      +
      + +
      +
      + 1 scenario(s) passed +
      +
      + 0 scenario(s) failed, + 0 skipped, + 0 others +
      +
      +
      +
      +
      +
      Steps
      +
      + +
      +
      + 5 step(s) passed +
      +
      + 0 scenario(s) failed, + 0 skipped, + 0 others +
      +
      +
      +
      +
      +
      +
      +
      Timeline (seconds)
      +
      + +
      +
      +
      +
      +
      +
      +
        +
      • +
        + More tab features verification + Jul 9, 2021 01:15:59 PM + pass +
        +
        + +
        +
        + @moretab +
        + 0h 0m 41s+379ms +
        +
        check_circle Scenario Outline: Verify user can perofrm different actions in Profile request
        +
        usernamepassword
        hillmgrSs@hills2
        +
        +
          +
        • +
          check_circleVerify user can perofrm different actions in Profile request
          +
            +
          • +
            check_circleGiven user login to hills application with hillmgr and Ss@hills2
            +
            +
          • +
          • +
            check_circleWhen user click on More tab
            +
            +
          • +
          • +
            check_circleAnd user click on Profile request link
            +
            +
          • +
          • +
            check_circleAnd user exports pending approvals in Excel
            +
            +
          • +
          • +
            check_circleAnd user exports all profile request in Excel
            +
            +
          • +
          +
        • +
        +
        +
        +
      • +
      +
      +
      + +
      +
      + +
      +
      +
      + +
      +
      +
      +
      + + + +
      +
      +
      +
      +
        +
      • +
        + @moretab + + 2 + +
        +
        +
        + Passed: 2 + + +
        +
        + + + + + + + + + + + + + + + + + + + + +
        TimestampTestNameStatus
        Jul 9, 2021 01:15:59 PMVerify user can perofrm different actions in Profile requestpass
        Jul 9, 2021 01:15:59 PMVerify user can perofrm different actions in Profile requestpass
        +
        +
        +
      • +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      Dashboard
      + +
      +
      +
      + Features +
      1
      +
      +
      +
      +
      + Scenarios +
      1
      +
      +
      +
      +
      + Steps +
      5
      +
      +
      +
      +
      + Start +
      Jul 9, 2021 01:15:58 PM
      +
      +
      +
      +
      + End +
      Jul 9, 2021 01:16:43 PM
      +
      +
      +
      +
      + Time Taken +
      0h 0m 44s+949ms
      +
      +
      +
      +
      + Categories

       

      + + + + + + + + + + + + + + + + +
      NamePassedFailedSkippedPassed %
      @moretab200 + 100% +
      +
      +
      +
      +
      +
      + +
      + + + + + + + + \ No newline at end of file diff --git a/Hills_With_Cucumber/target/cucumber-reports/cucumber.json b/Hills_With_Cucumber/target/cucumber-reports/cucumber.json new file mode 100644 index 0000000..22b7524 --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-reports/cucumber.json @@ -0,0 +1,173 @@ +[ + { + "line": 1, + "elements": [ + { + "start_timestamp": "2021-07-09T07:45:59.535Z", + "line": 12, + "name": "Verify user can perofrm different actions in Profile request", + "description": "", + "id": "more-tab-features-verification;verify-user-can-perofrm-different-actions-in-profile-request;;2", + "after": [ + { + "result": { + "duration": 1520522800, + "status": "passed" + }, + "match": { + "location": "ReportsSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 508700, + "status": "passed" + }, + "match": { + "location": "MoreSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 349400, + "status": "passed" + }, + "match": { + "location": "NetworkMapsSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 477800, + "status": "passed" + }, + "match": { + "location": "TrackTabSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 49438400, + "status": "passed" + }, + "match": { + "location": "OrganizationSteps.takeScreenshotOnFailure(Scenario)" + } + }, + { + "result": { + "duration": 393600, + "status": "passed" + }, + "match": { + "location": "MyListsSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 22590700, + "status": "passed" + }, + "match": { + "location": "KOLProfileSteps.closeBrowser()" + } + }, + { + "result": { + "duration": 358200, + "status": "passed" + }, + "match": { + "location": "HomeTabSteps.closeBrowser()" + } + } + ], + "type": "scenario", + "keyword": "Scenario Outline", + "steps": [ + { + "result": { + "duration": 27920182800, + "status": "passed" + }, + "line": 4, + "name": "user login to hills application with hillmgr and Ss@hills2", + "match": { + "arguments": [ + { + "val": "hillmgr", + "offset": 37 + }, + { + "val": "Ss@hills2", + "offset": 49 + } + ], + "location": "HillsLoginSteps.user_login_to_hills_application_with_username_and_password(String,String)" + }, + "keyword": "Given " + }, + { + "result": { + "duration": 381562500, + "status": "passed" + }, + "line": 5, + "name": "user click on More tab", + "match": { + "location": "MoreSteps.userclickonMoretab()" + }, + "keyword": "When " + }, + { + "result": { + "duration": 4985892300, + "status": "passed" + }, + "line": 6, + "name": "user click on Profile request link", + "match": { + "location": "MoreSteps.userclickonProfilerequestlink()" + }, + "keyword": "And " + }, + { + "result": { + "duration": 4245328600, + "status": "passed" + }, + "line": 7, + "name": "user exports pending approvals in Excel", + "match": { + "location": "MoreSteps.userexportspendingapprovalsinExcel()" + }, + "keyword": "And " + }, + { + "result": { + "duration": 4019424300, + "status": "passed" + }, + "line": 8, + "name": "user exports all profile request in Excel", + "match": { + "location": "MoreSteps.userexportsallprofilerequestinExcel()" + }, + "keyword": "And " + } + ], + "tags": [ + { + "name": "@moretab" + } + ] + } + ], + "name": "More tab features verification", + "description": "", + "id": "more-tab-features-verification", + "keyword": "Feature", + "uri": "file:src/test/resources/Features/More.feature", + "tags": [] + } +] \ No newline at end of file diff --git a/Hills_With_Cucumber/target/cucumber-reports/cucumber.xml b/Hills_With_Cucumber/target/cucumber-reports/cucumber.xml new file mode 100644 index 0000000..7eee7b8 --- /dev/null +++ b/Hills_With_Cucumber/target/cucumber-reports/cucumber.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..8c45368 --- /dev/null +++ b/Hills_With_Cucumber/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,3 @@ +F:\Selenium\Hills_With_Cucumber\src\test\java\Stepdefinition\testRunner.java +F:\Selenium\Hills_With_Cucumber\src\test\java\PageFactory\loginPage.java +F:\Selenium\Hills_With_Cucumber\src\test\java\Stepdefinition\Loginsteps.java