Automation script for Org profile And More
This commit is contained in:
parent
4579493e3e
commit
b9026fa73c
|
@ -6,14 +6,18 @@
|
|||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="src/test/resources/" kind="src" output="target/test-classes" path="src/test/java">
|
||||
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="src/test/resources"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5">
|
||||
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
/target/
|
|
@ -1,4 +1,5 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
|
|
|
@ -1,5 +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.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.source=1.5
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
|
|
|
@ -30,7 +30,7 @@ public class ContactsPage extends BrowserUtility{
|
|||
@FindBy(how=How.XPATH, using="((//*[contains(@id,'categoryCountry')])//tbody/tr[4]/td[1])")
|
||||
WebElement filterCountry;
|
||||
|
||||
@FindBy(how=How.XPATH, using="//*[@class='defaultProfileIcon ']")
|
||||
@FindBy(how=How.XPATH, using="(//span[@class='record_name'])[1]")
|
||||
WebElement HCPProfile;
|
||||
|
||||
@FindBy(how=How.XPATH, using="//a[@target='_new']")
|
||||
|
@ -177,6 +177,7 @@ public class ContactsPage extends BrowserUtility{
|
|||
|
||||
public void clickOnHCPProfile() {
|
||||
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
|
||||
//HCPProfile.click();
|
||||
try{
|
||||
HCPProfile.click();
|
||||
}
|
||||
|
@ -192,7 +193,13 @@ public class ContactsPage extends BrowserUtility{
|
|||
}
|
||||
|
||||
public void verifyCountryName() {
|
||||
String parent=driver.getWindowHandle();
|
||||
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);
|
||||
/*String parent=driver.getWindowHandle();
|
||||
Set<String> s= driver.getWindowHandles();
|
||||
Iterator<String>I1=s.iterator();
|
||||
while(I1.hasNext()) {
|
||||
|
@ -213,7 +220,7 @@ public class ContactsPage extends BrowserUtility{
|
|||
driver.close();
|
||||
}
|
||||
}
|
||||
driver.switchTo().window(parent);
|
||||
driver.switchTo().window(parent);*/
|
||||
}
|
||||
|
||||
public void clickAddHcp() {
|
||||
|
|
|
@ -259,15 +259,18 @@ public class KOLProfilePage {
|
|||
}
|
||||
|
||||
public void clickReportTab() throws InterruptedException {
|
||||
tabReport.click();
|
||||
Thread.sleep(2000);
|
||||
tabReport.click();
|
||||
|
||||
}
|
||||
|
||||
public void clickChartTab() {
|
||||
public void clickChartTab() throws InterruptedException {
|
||||
Thread.sleep(2000);
|
||||
tabChart.click();
|
||||
}
|
||||
|
||||
public void clickCalendarTab() {
|
||||
public void clickCalendarTab() throws InterruptedException {
|
||||
Thread.sleep(2000);
|
||||
tabCalendar.click();
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
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 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;
|
||||
|
||||
|
||||
|
||||
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\\hp\\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\\hp\\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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -3,6 +3,7 @@ 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.interactions.Actions;
|
||||
|
@ -49,7 +50,35 @@ public class OrganizationPage extends BrowserUtility{
|
|||
@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;
|
||||
|
||||
|
@ -152,4 +181,47 @@ public class OrganizationPage extends BrowserUtility{
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,10 @@
|
|||
package StepDefinitions;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
import org.openqa.selenium.By;
|
||||
|
||||
import PageObjects.ContactsPage;
|
||||
import PageObjects.MyListsPage;
|
||||
import Utilities.BrowserUtility;
|
||||
import Utilities.PropertiesFileReader;
|
||||
import io.cucumber.java.After;
|
||||
import io.cucumber.java.Before;
|
||||
import io.cucumber.java.en.And;
|
||||
import io.cucumber.java.en.Then;
|
||||
import io.cucumber.java.en.When;
|
||||
|
|
|
@ -76,11 +76,11 @@ public class KOLProfileSteps extends BrowserUtility{
|
|||
kolProfilePage.clickReportTab();
|
||||
}
|
||||
@And("user click on Chart tab within the interactions tab")
|
||||
public void userclickonCharttabwithintheinteractionstab() {
|
||||
public void userclickonCharttabwithintheinteractionstab() throws InterruptedException {
|
||||
kolProfilePage.clickChartTab();
|
||||
}
|
||||
@And("user click on Calendar tab within the interactions tab")
|
||||
public void userclickonCalendartabwithintheinteractionstab() {
|
||||
public void userclickonCalendartabwithintheinteractionstab() throws InterruptedException {
|
||||
kolProfilePage.clickCalendarTab();
|
||||
}
|
||||
@And("user click on payments tab within track")
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
package StepDefinitions;
|
||||
|
||||
import PageObjects.MorePage;
|
||||
import Utilities.BrowserUtility;
|
||||
import io.cucumber.java.After;
|
||||
import io.cucumber.java.en.And;
|
||||
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();
|
||||
}
|
||||
}
|
|
@ -86,4 +86,44 @@ public class OrganizationSteps extends BrowserUtility{
|
|||
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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import io.cucumber.junit.CucumberOptions;
|
|||
@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:"},
|
||||
|
||||
monochrome=true, tags="@AddOrg"
|
||||
monochrome=true, tags="@KOLFilter"
|
||||
)
|
||||
|
||||
public class testRunner {
|
||||
|
|
|
@ -6,6 +6,7 @@ import PageObjects.ContactsPage;
|
|||
import PageObjects.HomePage;
|
||||
import PageObjects.KOLProfilePage;
|
||||
import PageObjects.LoginPage;
|
||||
import PageObjects.MorePage;
|
||||
import PageObjects.MyListsPage;
|
||||
import PageObjects.OrganizationPage;
|
||||
|
||||
|
@ -18,6 +19,7 @@ public class PageObjectManager {
|
|||
MyListsPage myListPage;
|
||||
KOLProfilePage kolProfilePage;
|
||||
OrganizationPage organizationPage;
|
||||
MorePage morePage;
|
||||
|
||||
public PageObjectManager(WebDriver driver) {
|
||||
this.driver = driver;
|
||||
|
@ -43,6 +45,8 @@ public class PageObjectManager {
|
|||
return (organizationPage==null) ? organizationPage = new OrganizationPage(driver):organizationPage;
|
||||
}
|
||||
|
||||
|
||||
public MorePage getMorePage() {
|
||||
return (morePage==null) ? morePage = new MorePage(driver):morePage;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
Feature: More tab features verification
|
||||
|
||||
|
||||
Scenario Outline: Verify user can perofrm different actions in Profile request
|
||||
Given user login to hills application with <username> and <password>
|
||||
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 Profile request
|
||||
Given user login to hills application with <username> and <password>
|
||||
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|
|
|
@ -58,3 +58,65 @@ 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 <username> and <password>
|
||||
And user click on Organization tab
|
||||
And user selects All Organizations in Assigned dropdown
|
||||
And user search an Organization name<orgnization>
|
||||
And user navigate within organization
|
||||
And user click on Key People tab
|
||||
And user open and close Add Key People form
|
||||
|
||||
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 <username> and <password>
|
||||
And user click on Organization tab
|
||||
And user selects All Organizations in Assigned dropdown
|
||||
And user search an Organization name<orgnization>
|
||||
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 <username> and <password>
|
||||
And user click on Organization tab
|
||||
And user selects All Organizations in Assigned dropdown
|
||||
And user search an Organization name<orgnization>
|
||||
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 <username> and <password>
|
||||
And user click on Organization tab
|
||||
And user selects All Organizations in Assigned dropdown
|
||||
And user search an Organization name<orgnization>
|
||||
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|
|
|
@ -0,0 +1,7 @@
|
|||
Feature: Reports tab functionality
|
||||
|
||||
Scenario Outline: Verify user can apply country filter to KOL
|
||||
Given user login to hills application with <username> and <password>
|
||||
When user click on Report tab
|
||||
And user export interaction report in Excel
|
||||
And user click on Chart tab within the interactions tab
|
|
@ -1,6 +1,6 @@
|
|||
Feature: Contacts tab functionality
|
||||
|
||||
|
||||
@KOLFilter
|
||||
Scenario Outline: Verify user can apply country filter to KOL
|
||||
Given user login to hills application with <username> and <password>
|
||||
When user clicks contact tab
|
||||
|
|
|
@ -1,26 +0,0 @@
|
|||
Feature: Login functionality check
|
||||
|
||||
|
||||
@ValidTest
|
||||
Scenario Outline: Verify user login with valid credentials
|
||||
Given user login to konector application with <username> and <password>
|
||||
When user click on Discover tab
|
||||
And user filters Speciality as Dermatology
|
||||
And user clicks on Pro
|
||||
|
||||
Examples:
|
||||
|username|password|
|
||||
|kon@test.com|konectarA@51|
|
||||
#|liteuser@test.com|konectarA@51|
|
||||
|
||||
@InvalidTest
|
||||
Scenario Outline: Verify user login with invalid credentials
|
||||
Given User navigates to Konectar Login page
|
||||
When User enter UserName<username> and Password<password>
|
||||
And User click on Sign In button
|
||||
Then Invalid login error message should be shown to user
|
||||
|
||||
Examples:
|
||||
|username|password|
|
||||
|kon@test.com|konectarA@52|
|
||||
#|kone@test.com|konectar@51|
|
|
@ -1,2 +0,0 @@
|
|||
/classes/
|
||||
/test-classes/
|
|
@ -1,257 +0,0 @@
|
|||
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 = $('<tr></tr>').appendTo(tBody);
|
||||
$.each(row.cells, function(index, cell) {
|
||||
var td = $('<td>' + cell + '</td>').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 = $('<tr></tr>').appendTo(parent);
|
||||
$.each(row.cells, function(index, cell) {
|
||||
var td = $('<td>' + cell + '</td>').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 = "<h4>" + name + "</h4>";
|
||||
}
|
||||
if (currentStepIndex == 1) {
|
||||
this.dummyStep();
|
||||
}
|
||||
if (mimeType.match(/^image\//))
|
||||
{
|
||||
currentStep.append(nameHtml + '<img src="' + data + '">');
|
||||
}
|
||||
else if (mimeType.match(/^video\//))
|
||||
{
|
||||
currentStep.append(nameHtml + '<video src="' + data + '" type="' + mimeType + '" autobuffer controls>Your browser doesn\'t support video.</video>');
|
||||
}
|
||||
else if (mimeType.match(/^text\//))
|
||||
{
|
||||
this.write(nameHtml + data);
|
||||
}
|
||||
};
|
||||
|
||||
this.write = function(text) {
|
||||
if (currentStepIndex == 1) {
|
||||
this.dummyStep();
|
||||
}
|
||||
currentStep.append('<pre class="embedded-text">' + text + '</pre>');
|
||||
};
|
||||
|
||||
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 = '<div>\
|
||||
<section class="blockelement" itemscope>\
|
||||
<details open>\
|
||||
<summary class="header">\
|
||||
<span class="keyword" itemprop="keyword">Keyword</span>: <span itemprop="name" class="name">This is the block name</span>\
|
||||
</summary>\
|
||||
<div itemprop="description" class="description">The description goes here</div>\
|
||||
</details>\
|
||||
</section>\
|
||||
\
|
||||
<ol class="steps"></ol>\
|
||||
\
|
||||
<ol>\
|
||||
<li class="step"><div class="header"></div><span class="keyword" itemprop="keyword">Keyword</span><span class="name" itemprop="name">Name</span></li>\
|
||||
</ol>\
|
||||
\
|
||||
<pre class="doc_string"></pre>\
|
||||
\
|
||||
<pre class="error"></pre>\
|
||||
\
|
||||
<table class="data_table">\
|
||||
<tbody>\
|
||||
</tbody>\
|
||||
</table>\
|
||||
\
|
||||
<table class="examples_table">\
|
||||
<thead></thead>\
|
||||
<tbody></tbody>\
|
||||
</table>\
|
||||
\
|
||||
<section class="embed">\
|
||||
<img itemprop="screenshot" class="screenshot" />\
|
||||
</section>\
|
||||
<div class="tags"></div>\
|
||||
<span class="tag"></span>\
|
||||
<div class="comments"></div>\
|
||||
<div class="comment"></div>\
|
||||
<div>';
|
||||
|
||||
if (typeof module !== 'undefined') {
|
||||
module.exports = CucumberHTML;
|
||||
} else if (typeof define !== 'undefined') {
|
||||
define([], function() { return CucumberHTML; });
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Cucumber Features</title>
|
||||
<link href="style.css" rel="stylesheet">
|
||||
<script src="jquery-3.4.1.min.js"></script>
|
||||
<script src="formatter.js"></script>
|
||||
<script src="report.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="cucumber-report"></div>
|
||||
</body>
|
||||
</html>
|
File diff suppressed because one or more lines are too long
|
@ -1,139 +0,0 @@
|
|||
$(document).ready(function() {var formatter = new CucumberHTML.DOMFormatter($('.cucumber-report'));formatter.uri("file:src/test/resources/Features/Organization.feature");
|
||||
formatter.feature({
|
||||
"name": "Organization tab functionality verification",
|
||||
"description": "",
|
||||
"keyword": "Feature"
|
||||
});
|
||||
formatter.scenarioOutline({
|
||||
"name": "Verify user can download organization in excel format",
|
||||
"description": "",
|
||||
"keyword": "Scenario Outline",
|
||||
"tags": [
|
||||
{
|
||||
"name": "@AddOrg"
|
||||
}
|
||||
]
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user login to hills application with \u003cusername\u003e and \u003cpassword\u003e",
|
||||
"keyword": "Given "
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Organization tab",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on New link to add organization",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Save button without adding organization details",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Cancel button in new organization form",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user should be taken to organization home tab",
|
||||
"keyword": "Then "
|
||||
});
|
||||
formatter.examples({
|
||||
"name": "",
|
||||
"description": "",
|
||||
"keyword": "Examples",
|
||||
"rows": [
|
||||
{
|
||||
"cells": [
|
||||
"username",
|
||||
"password"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cells": [
|
||||
"hillmgr",
|
||||
"Ss@hills2"
|
||||
]
|
||||
}
|
||||
]
|
||||
});
|
||||
formatter.scenario({
|
||||
"name": "Verify user can download organization in excel format",
|
||||
"description": "",
|
||||
"keyword": "Scenario Outline",
|
||||
"tags": [
|
||||
{
|
||||
"name": "@AddOrg"
|
||||
}
|
||||
]
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user login to hills application with hillmgr and Ss@hills2",
|
||||
"keyword": "Given "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "HillsCommonSteps.user_login_to_konector_application_with_username_and_password(String,String)"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Organization tab",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "OrganizationSteps.userclickonOrganizationtab()"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on New link to add organization",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "OrganizationSteps.userclickonNewlinktoaddorganization()"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Save button without adding organization details",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "OrganizationSteps.userclickonSavebuttonwithoutaddingorganizationdetails()"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user click on Cancel button in new organization form",
|
||||
"keyword": "And "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "OrganizationSteps.userclickonCancelbuttoninneworganizationform()"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.step({
|
||||
"name": "user should be taken to organization home tab",
|
||||
"keyword": "Then "
|
||||
});
|
||||
formatter.match({
|
||||
"location": "OrganizationSteps.usershouldbetakentoorganizationhometab()"
|
||||
});
|
||||
formatter.result({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.after({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.after({
|
||||
"status": "passed"
|
||||
});
|
||||
formatter.after({
|
||||
"status": "passed"
|
||||
});
|
||||
});
|
|
@ -1,97 +0,0 @@
|
|||
.cucumber-report .body {
|
||||
font-family: Helvetica,Arial,sans-serif;
|
||||
}
|
||||
|
||||
.cucumber-report .keyword {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.cucumber-report .description {
|
||||
font-style: italic;
|
||||
margin-left: 20px;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
.cucumber-report details > 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;
|
||||
}
|
|
@ -1,443 +0,0 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset='UTF-8' />
|
||||
<meta name='description' content='' />
|
||||
<meta name='robots' content='noodp, noydir' />
|
||||
<meta name='viewport' content='width=device-width, initial-scale=1' />
|
||||
<meta id="timeStampFormat" name="timeStampFormat" content='MMM d, yyyy hh:mm:ss a'/>
|
||||
|
||||
<link href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600' rel='stylesheet' type='text/css' />
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
|
||||
<link href='https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/css/extent.css' type='text/css' rel='stylesheet' />
|
||||
|
||||
<title>Extent</title>
|
||||
|
||||
<style type='text/css'>
|
||||
/* json-tree */
|
||||
.jstBracket,.jstComma,.jstValue{white-space:pre-wrap}.jstValue{font-size:10px;font-weight:400;font-family:"Lucida Console",Monaco,monospace}.jstProperty{color:#666;word-wrap:break-word}.jstBool{color:#2525CC}.jstNum{color:#D036D0}.jstNull{color:gray}.jstStr{color:#2DB669}.jstFold:after{content:' -';cursor:pointer}.jstExpand{white-space:normal}.jstExpand:after{content:' +';cursor:pointer}.jstFolded{white-space:normal!important}.jstHiddenBlock{display:none}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
|
||||
<script type="text/javascript">
|
||||
/*! json-tree - v0.2.2 - 2017-09-25, MIT LICENSE */
|
||||
var JSONTree=function(){var n={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},t=0,r=0;this.create=function(n,t){return r+=1,N(u(n,0,!1),{class:"jstValue"})};var e=function(t){return t.replace(/[&<>'"]/g,function(t){return n[t]})},s=function(){return r+"_"+t++},u=function(n,t,r){if(null===n)return f(r?t:0);switch(typeof n){case"boolean":return l(n,r?t:0);case"number":return i(n,r?t:0);case"string":return o(n,r?t:0);default:return n instanceof Array?a(n,t,r):c(n,t,r)}},c=function(n,t,r){var e=s(),u=Object.keys(n).map(function(r){return j(r,n[r],t+1,!0)}).join(m()),c=[g("{",r?t:0,e),N(u,{id:e}),p("}",t)].join("\n");return N(c,{})},a=function(n,t,r){var e=s(),c=n.map(function(n){return u(n,t+1,!0)}).join(m());return[g("[",r?t:0,e),N(c,{id:e}),p("]",t)].join("\n")},o=function(n,t){var r=e(JSON.stringify(n));return N(v(r,t),{class:"jstStr"})},i=function(n,t){return N(v(n,t),{class:"jstNum"})},l=function(n,t){return N(v(n,t),{class:"jstBool"})},f=function(n){return N(v("null",n),{class:"jstNull"})},j=function(n,t,r){var s=v(e(JSON.stringify(n))+": ",r),c=N(u(t,r,!1),{});return N(s+c,{class:"jstProperty"})},m=function(){return N(",\n",{class:"jstComma"})},N=function(n,t){return d("span",t,n)},d=function(n,t,r){return"<"+n+Object.keys(t).map(function(n){return" "+n+'="'+t[n]+'"'}).join("")+">"+r+"</"+n+">"},g=function(n,t,r){return N(v(n,t),{class:"jstBracket"})+N("",{class:"jstFold",onclick:"JSONTree.toggle('"+r+"')"})};this.toggle=function(n){var t=document.getElementById(n),r=t.parentNode,e=t.previousElementSibling;""===t.className?(t.className="jstHiddenBlock",r.className="jstFolded",e.className="jstExpand"):(t.className="",r.className="",e.className="jstFold")};var p=function(n,t){return N(v(n,t),{})},v=function(n,t){return Array(2*t+1).join(" ")+n};return this}();
|
||||
</script>
|
||||
</head>
|
||||
<body class='extent standard default hide-overflow bdd-report'>
|
||||
<div id='theme-selector' alt='Click to toggle theme. To enable by default, use theme configuration.' title='Click to toggle theme. To enable by default, use theme configuration.'>
|
||||
<span><i class='material-icons'>desktop_windows</i></span>
|
||||
</div>
|
||||
<nav>
|
||||
<div class="nav-wrapper">
|
||||
<a href="#!" class="brand-logo black"><img src="https://cdn.rawgit.com/extent-framework/extent-github-cdn/d74480e/commons/img/logo.png"></a>
|
||||
<!-- slideout menu -->
|
||||
<ul id='slide-out' class='side-nav fixed hide-on-med-and-down'>
|
||||
<li class='waves-effect active'><a href='#!' view='test-view' onclick="configureView(0);chartsView('test');"><i class='material-icons'>dashboard</i></a></li>
|
||||
<li class='waves-effect'><a href='#!' view='category-view' onclick="configureView(1)"><i class='material-icons'>label_outline</i></a></li>
|
||||
<li class='waves-effect'><a href='#!' onclick="configureView(-1);chartsView('dashboard');" view='dashboard-view'><i class='material-icons'>track_changes</i></a></li>
|
||||
</ul>
|
||||
<!-- report name -->
|
||||
<span class='report-name'>Automation Report</span>
|
||||
<!-- report headline -->
|
||||
<span class='report-headline'></span>
|
||||
<!-- nav-right -->
|
||||
<ul id='nav-mobile' class='right hide-on-med-and-down nav-right'>
|
||||
<a href='#!'>
|
||||
<span class='label blue darken-3 suite-start-time'>Jul 2, 2021 05:32:53 PM</span>
|
||||
</a>
|
||||
</ul>
|
||||
</div>
|
||||
</nav> <!-- container -->
|
||||
<div class='container'>
|
||||
<div id='test-view' class='view'>
|
||||
<section id='controls'>
|
||||
<div class='controls grey lighten-4'>
|
||||
<!-- test toggle -->
|
||||
<div class='chip transparent'>
|
||||
<a class='dropdown-button tests-toggle' data-activates='tests-toggle' data-constrainwidth='true' data-beloworigin='true' data-hover='true' href='#'>
|
||||
<i class='material-icons'>warning</i> Status
|
||||
</a>
|
||||
<ul id='tests-toggle' class='dropdown-content'>
|
||||
<li status='pass'><a href='#!'>Pass <i class='material-icons green-text'>check_circle</i></a></li>
|
||||
<li class='divider'></li>
|
||||
<li status='clear' clear='true'><a href='#!'>Clear Filters <i class='material-icons'>clear</i></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- test toggle -->
|
||||
<!-- category toggle -->
|
||||
<div class='chip transparent'>
|
||||
<a class='dropdown-button category-toggle' data-activates='category-toggle' data-constrainwidth='false' data-beloworigin='true' data-hover='true' href='#'>
|
||||
<i class='material-icons'>local_offer</i> Category
|
||||
</a>
|
||||
<ul id='category-toggle' class='dropdown-content'>
|
||||
<li><a href='#'>@AddOrg</a></li>
|
||||
<li class='divider'></li>
|
||||
<li class='clear'><a href='#!' clear='true'>Clear Filters</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- category toggle -->
|
||||
<!-- clear filters -->
|
||||
<div class='chip transparent hide'>
|
||||
<a class='' id='clear-filters' alt='Clear Filters' title='Clear Filters'>
|
||||
<i class='material-icons'>close</i> Clear
|
||||
</a>
|
||||
</div>
|
||||
<!-- clear filters -->
|
||||
<!-- enable dashboard -->
|
||||
<div id='toggle-test-view-charts' class='chip transparent'>
|
||||
<a class='pink-text' id='enable-dashboard' alt='Enable Dashboard' title='Enable Dashboard'>
|
||||
<i class='material-icons'>track_changes</i> Dashboard
|
||||
</a>
|
||||
</div>
|
||||
<!-- enable dashboard -->
|
||||
<!-- search -->
|
||||
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
|
||||
<a href="#" class='search-div'>
|
||||
<i class='material-icons'>search</i> Search
|
||||
</a>
|
||||
<div class='input-field left hide'>
|
||||
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search -->
|
||||
</div>
|
||||
</section>
|
||||
<div id='test-view-charts' class='subview-full'>
|
||||
<div id='charts-row' class='row nm-v nm-h'>
|
||||
<div class='col s12 m4 l4 np-h'>
|
||||
<div class='card-panel nm-v'>
|
||||
<div class='left panel-name'>Features</div>
|
||||
<div class='chart-box' style="max-height:94px;">
|
||||
<canvas id='parent-analysis' width='90' height='70'></canvas>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>1</span> feature(s) passed</span>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> feature(s) failed, <span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s12 m4 l4 np-h'>
|
||||
<div class='card-panel nm-v'>
|
||||
<div class='left panel-name'>Scenarios</div>
|
||||
<div class='chart-box' style="max-height:94px;">
|
||||
<canvas id='child-analysis' width='90' height='70'></canvas>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>1</span> scenario(s) passed</span>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> scenario(s) failed,
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped,
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s12 m4 l4 np-h'>
|
||||
<div class='card-panel nm-v'>
|
||||
<div class='left panel-name'>Steps</div>
|
||||
<div class='chart-box' style="max-height:94px;">
|
||||
<canvas id='grandchild-analysis' width='90' height='70'></canvas>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='tooltipped' data-position='top' data-tooltip='100%'><span class='strong'>6</span> step(s) passed</span>
|
||||
</div>
|
||||
<div class='block text-small'>
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> scenario(s) failed,
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> skipped,
|
||||
<span class='strong tooltipped' data-position='top' data-tooltip='0%'>0</span> others
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="timeline-chart" class="row nm-v nm-h">
|
||||
<div class="col s12 m12 l12 np-h">
|
||||
<div class="card-panel">
|
||||
<div class='left panel-name'>Timeline (seconds)</div>
|
||||
<div class="chart-box" style="width:98%;max-height:145px;">
|
||||
<canvas id="timeline" height="120"></canvas>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> <div class='subview-left left'>
|
||||
<div class='view-summary'>
|
||||
<ul id='test-collection' class='test-collection'>
|
||||
<li class='test displayed active has-leaf pass' status='pass' bdd='true' test-id='1'>
|
||||
<div class='test-heading'>
|
||||
<span class='test-name'>Organization tab functionality verification</span>
|
||||
<span class='test-time'>Jul 2, 2021 05:32:55 PM</span>
|
||||
<span class='test-status right pass'>pass</span>
|
||||
</div>
|
||||
<div class='test-content hide'>
|
||||
<div class="sr-filters bdd-filters">
|
||||
<a class="btn-floating waves-effect waves-light pass green" title="pass"><i class='material-icons'>check_circle</i></a>
|
||||
<a class="btn-floating waves-effect waves-light fail red" title="fail"><i class='material-icons'>cancel</i></a>
|
||||
<a class="btn-floating waves-effect waves-light skip blue" title="skip"><i class='material-icons'>redo</i></a>
|
||||
<a class="btn-floating waves-effect waves-light clear grey" title="clear"><i class='material-icons'>clear</i></a>
|
||||
</div>
|
||||
<div class='scenario outline node' test-id='2' status='pass'>
|
||||
<div class='category-list'>
|
||||
<span class='category label'>@AddOrg</span>
|
||||
</div>
|
||||
<span class='duration right label'>0h 0m 25s+968ms</span>
|
||||
<div class="bdd-test">
|
||||
<div class="scenario-name"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span> Scenario Outline: Verify user can download organization in excel format</div>
|
||||
<table class='runtime-table table-striped table'><tr><td>username</td><td>password</td></tr><tr><td>hillmgr</td><td>Ss@hills2</td></tr></table>
|
||||
</div>
|
||||
<ul class='steps'>
|
||||
<li test-id='3' class='node scenario pass' status='pass'>
|
||||
<div class="step-name" title=""><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>Verify user can download organization in excel format</div>
|
||||
<ul class='gc steps'>
|
||||
<li test-id='4' class='gc given pass' status='pass'>
|
||||
<h6 class="step-name" title="HillsCommonSteps.user_login_to_konector_application_with_username_and_password(String,String)"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>Given user login to hills application with hillmgr and Ss@hills2</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
<li test-id='5' class='gc and pass' status='pass'>
|
||||
<h6 class="step-name" title="OrganizationSteps.userclickonOrganizationtab()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user click on Organization tab</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
<li test-id='6' class='gc and pass' status='pass'>
|
||||
<h6 class="step-name" title="OrganizationSteps.userclickonNewlinktoaddorganization()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user click on New link to add organization</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
<li test-id='7' class='gc and pass' status='pass'>
|
||||
<h6 class="step-name" title="OrganizationSteps.userclickonSavebuttonwithoutaddingorganizationdetails()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user click on Save button without adding organization details</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
<li test-id='8' class='gc and pass' status='pass'>
|
||||
<h6 class="step-name" title="OrganizationSteps.userclickonCancelbuttoninneworganizationform()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>And user click on Cancel button in new organization form</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
<li test-id='9' class='gc then pass' status='pass'>
|
||||
<h6 class="step-name" title="OrganizationSteps.usershouldbetakentoorganizationhometab()"><span class='status pass' title='pass'><i class='material-icons'>check_circle</i></span>Then user should be taken to organization home tab</h6>
|
||||
<div class="node-step"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- subview left -->
|
||||
<div class='subview-right left'>
|
||||
<div class='view-summary'>
|
||||
<div id='step-filters' class="right sr-filters">
|
||||
<a class="btn-floating waves-effect waves-light green" status="pass" alt="pass" title="pass"><i class="material-icons">check_circle</i></a>
|
||||
<a class="btn-floating waves-effect waves-light red" status="fail" alt="fail" title="fail"><i class="material-icons">cancel</i></a>
|
||||
<a class="btn-floating waves-effect waves-light red darken-4" status="fatal" alt="fatal" title="fatal"><i class="material-icons">cancel</i></a>
|
||||
<a class="btn-floating waves-effect waves-light pink text-lighten-1" status="error" alt="error" title="error"><i class="material-icons">error</i></a>
|
||||
<a class="btn-floating waves-effect waves-light orange" alt="warning" status="warning" title="warning"><i class="material-icons">warning</i></a>
|
||||
<a class="btn-floating waves-effect waves-light teal" status="skip" alt="skip" title="skip"><i class="material-icons">redo</i></a>
|
||||
<a class="btn-floating waves-effect waves-light grey" status="clear" alt="Clear filters" title="Clear filters"><i class="material-icons">clear</i></a>
|
||||
</div>
|
||||
<h5 class='test-name'></h5>
|
||||
</div>
|
||||
</div>
|
||||
<!-- subview right -->
|
||||
</div>
|
||||
<!-- test view --><div id='category-view' class='view hide'>
|
||||
<section id='controls'>
|
||||
<div class='controls grey lighten-4'>
|
||||
<!-- search -->
|
||||
<div class='chip transparent' alt='Search Tests' title='Search Tests'>
|
||||
<a href="#" class='search-div'>
|
||||
<i class='material-icons'>search</i> Search
|
||||
</a>
|
||||
<div class='input-field left hide'>
|
||||
<input id='search-tests' type='text' class='validate browser-default' placeholder='Search Tests...'>
|
||||
</div>
|
||||
</div>
|
||||
<!-- search -->
|
||||
</div>
|
||||
</section>
|
||||
<div class='subview-left left'>
|
||||
<div class='view-summary'>
|
||||
<ul id='category-collection' class='category-collection'>
|
||||
<li class='category displayed active'>
|
||||
<div class='category-heading'>
|
||||
<span class='category-name'>@AddOrg</span>
|
||||
<span class='category-status right'>
|
||||
<span class='label pass'>2</span>
|
||||
</span>
|
||||
</div>
|
||||
<div class='category-content hide'>
|
||||
<div class='category-status-counts'>
|
||||
<span status="pass" class='label green accent-4 white-text'>Passed: 2</span>
|
||||
|
||||
|
||||
</div>
|
||||
<div class='category-tests'>
|
||||
<table class='bordered table-results'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Timestamp</th>
|
||||
<th>TestName</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Jul 2, 2021 05:32:55 PM</td>
|
||||
<td class='linked' test-id='2'>Verify user can download organization in excel format</td>
|
||||
<td><span class='test-status pass'>pass</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Jul 2, 2021 05:32:55 PM</td>
|
||||
<td class='linked' test-id='3'>Verify user can download organization in excel format</td>
|
||||
<td><span class='test-status pass'>pass</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class='subview-right left'>
|
||||
<div class='view-summary'>
|
||||
<h5 class='category-name'></h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- category view --><!-- exception view --><div id='dashboard-view' class='view hide'>
|
||||
<div class='card-panel transparent np-v'>
|
||||
<h5>Dashboard</h5>
|
||||
|
||||
<div class='row'>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
Features
|
||||
<div class='panel-lead'>1</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
Scenarios
|
||||
<div class='panel-lead'>1</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
Steps
|
||||
<div class='panel-lead'>6</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
Start
|
||||
<div class='panel-lead'>Jul 2, 2021 05:32:53 PM</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
End
|
||||
<div class='panel-lead'>Jul 2, 2021 05:33:22 PM</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s2'>
|
||||
<div class='card-panel r'>
|
||||
Time Taken
|
||||
<div class='panel-lead'>0h 0m 28s+32ms</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='col s6'>
|
||||
<div class='card-panel dashboard-categories'>
|
||||
<span class='right label cyan white-text'>Categories</span><p> </p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Passed</th>
|
||||
<th>Failed</th>
|
||||
<th>Skipped</th>
|
||||
<th>Passed %</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>@AddOrg</td>
|
||||
<td>2</td>
|
||||
<td>0</td>
|
||||
<td>0</td>
|
||||
<td>
|
||||
100%
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- dashboard view -->
|
||||
<!-- testrunner-logs view --> </div>
|
||||
<!-- container -->
|
||||
<script>
|
||||
var statusGroup = {
|
||||
parentCount: 1,
|
||||
passParent: 1,
|
||||
failParent: 0,
|
||||
fatalParent: 0,
|
||||
errorParent: 0,
|
||||
warningParent: 0,
|
||||
skipParent: 0,
|
||||
exceptionsParent: 0,
|
||||
childCount: 1,
|
||||
passChild: 1,
|
||||
failChild: 0,
|
||||
fatalChild: 0,
|
||||
errorChild: 0,
|
||||
warningChild: 0,
|
||||
skipChild: 0,
|
||||
infoChild: 0,
|
||||
debugChild: 0,
|
||||
exceptionsChild: 0,
|
||||
grandChildCount: 6,
|
||||
passGrandChild: 6,
|
||||
failGrandChild: 0,
|
||||
fatalGrandChild: 0,
|
||||
errorGrandChild: 0,
|
||||
warningGrandChild: 0,
|
||||
skipGrandChild: 0,
|
||||
infoGrandChild: 0,
|
||||
debugGrandChild: 0,
|
||||
exceptionsGrandChild: 0,
|
||||
};
|
||||
</script>
|
||||
<script>
|
||||
var timeline = {
|
||||
"Organization tab functionality verification":25.968
|
||||
};
|
||||
</script>
|
||||
|
||||
<script src='https://cdn.jsdelivr.net/gh/extent-framework/extent-github-cdn@ff53917fbbdb5ef820abbbe4d199a6942dc771ff/v3html/js/extent.js' type='text/javascript'></script>
|
||||
<script type='text/javascript'>
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -1,140 +0,0 @@
|
|||
[
|
||||
{
|
||||
"line": 1,
|
||||
"elements": [
|
||||
{
|
||||
"start_timestamp": "2021-07-02T12:02:54.726Z",
|
||||
"line": 58,
|
||||
"name": "Verify user can download organization in excel format",
|
||||
"description": "",
|
||||
"id": "organization-tab-functionality-verification;verify-user-can-download-organization-in-excel-format;;2",
|
||||
"after": [
|
||||
{
|
||||
"result": {
|
||||
"duration": 799692800,
|
||||
"status": "passed"
|
||||
},
|
||||
"match": {
|
||||
"location": "KOLProfileSteps.closeBrowser()"
|
||||
}
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 664000,
|
||||
"status": "passed"
|
||||
},
|
||||
"match": {
|
||||
"location": "OrganizationSteps.closeBrowser()"
|
||||
}
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 10643200,
|
||||
"status": "passed"
|
||||
},
|
||||
"match": {
|
||||
"location": "ContactsTabSteps.closeBrowser()"
|
||||
}
|
||||
}
|
||||
],
|
||||
"type": "scenario",
|
||||
"keyword": "Scenario Outline",
|
||||
"steps": [
|
||||
{
|
||||
"result": {
|
||||
"duration": 14605842500,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 48,
|
||||
"name": "user login to hills application with hillmgr and Ss@hills2",
|
||||
"match": {
|
||||
"arguments": [
|
||||
{
|
||||
"val": "hillmgr",
|
||||
"offset": 37
|
||||
},
|
||||
{
|
||||
"val": "Ss@hills2",
|
||||
"offset": 49
|
||||
}
|
||||
],
|
||||
"location": "HillsCommonSteps.user_login_to_konector_application_with_username_and_password(String,String)"
|
||||
},
|
||||
"keyword": "Given "
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 5742222600,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 49,
|
||||
"name": "user click on Organization tab",
|
||||
"match": {
|
||||
"location": "OrganizationSteps.userclickonOrganizationtab()"
|
||||
},
|
||||
"keyword": "And "
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 736202400,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 50,
|
||||
"name": "user click on New link to add organization",
|
||||
"match": {
|
||||
"location": "OrganizationSteps.userclickonNewlinktoaddorganization()"
|
||||
},
|
||||
"keyword": "And "
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 2161249000,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 51,
|
||||
"name": "user click on Save button without adding organization details",
|
||||
"match": {
|
||||
"location": "OrganizationSteps.userclickonSavebuttonwithoutaddingorganizationdetails()"
|
||||
},
|
||||
"keyword": "And "
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 2868606800,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 52,
|
||||
"name": "user click on Cancel button in new organization form",
|
||||
"match": {
|
||||
"location": "OrganizationSteps.userclickonCancelbuttoninneworganizationform()"
|
||||
},
|
||||
"keyword": "And "
|
||||
},
|
||||
{
|
||||
"result": {
|
||||
"duration": 22876100,
|
||||
"status": "passed"
|
||||
},
|
||||
"line": 53,
|
||||
"name": "user should be taken to organization home tab",
|
||||
"match": {
|
||||
"location": "OrganizationSteps.usershouldbetakentoorganizationhometab()"
|
||||
},
|
||||
"keyword": "Then "
|
||||
}
|
||||
],
|
||||
"tags": [
|
||||
{
|
||||
"name": "@AddOrg"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"name": "Organization tab functionality verification",
|
||||
"description": "",
|
||||
"id": "organization-tab-functionality-verification",
|
||||
"keyword": "Feature",
|
||||
"uri": "file:src/test/resources/Features/Organization.feature",
|
||||
"tags": []
|
||||
}
|
||||
]
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<testsuite failures="0" name="cucumber.runtime.formatter.JUnitFormatter" skipped="0" tests="1" time="27.098506">
|
||||
<testcase classname="Organization tab functionality verification" name="Verify user can download organization in excel format" time="27.098506">
|
||||
<system-out><![CDATA[Given user login to hills application with hillmgr and Ss@hills2............passed
|
||||
And user click on Organization tab..........................................passed
|
||||
And user click on New link to add organization..............................passed
|
||||
And user click on Save button without adding organization details...........passed
|
||||
And user click on Cancel button in new organization form....................passed
|
||||
Then user should be taken to organization home tab..........................passed
|
||||
]]></system-out>
|
||||
</testcase>
|
||||
</testsuite>
|
Loading…
Reference in New Issue