Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added drivers/chromedriver.exe
Binary file not shown.
10 changes: 7 additions & 3 deletions src/main/java/com/orasi/bluesource/EmployeePage.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.orasi.web.webelements.Checkbox;
import com.orasi.web.webelements.Element;
import com.orasi.web.webelements.Label;
import com.orasi.web.webelements.Listbox;
import com.orasi.web.webelements.Textbox;
import com.orasi.web.webelements.Webtable;
import com.orasi.web.webelements.impl.internal.ElementFactory;
Expand All @@ -17,9 +18,9 @@ public class EmployeePage {
/**Page Elements**/
@FindBy(xpath = "//tr[1]//a[@class='glyphicon glyphicon-pencil']") Button btnEditFirstProject;
@FindBy(xpath = "//div[@id='panel_body_1']//table") Webtable tblProjectInfo;
@FindBy(xpath = "//button[@data-target='#modal_1']") Button btnEditGeneral;
@FindBy(xpath = "//div//a[contains(text(),'Deactivate Employee')]") Button btnDeactivateEmployee;
@FindBy(xpath = "//div[@class='panel-heading']//a[contains(text(),'Deactivate')]") Button btnDeactivate;
@FindBy(xpath = "//*[@id=\'accordion\']/div/div[7]/button") Button btnEditGeneral;
@FindBy(partialLinkText = "Deactivate Employee") Button btnDeactivateEmployee;
@FindBy(partialLinkText = "Deactivate") Button btnDeactivate;

/**Constructor**/
public EmployeePage(OrasiDriver driver){
Expand Down Expand Up @@ -59,15 +60,18 @@ public boolean verifyStartDate(String strStartDate, String strProject) {
}

public void editGeneralInfo() {
btnEditGeneral.syncVisible(3, true);
btnEditGeneral.click();

}

public void clickDeactivateEmployee() {
btnDeactivateEmployee.syncVisible(2, true);
btnDeactivateEmployee.click();
}

public void clickDeactivate(){
btnDeactivateEmployee.syncVisible(2, true);
btnDeactivate.click();
}

Expand Down
10 changes: 6 additions & 4 deletions src/main/java/com/orasi/bluesource/Employees.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,10 @@ public void employeeSearch(String strSearch){
* @author Paul
*/
public void clickAddEmployee() {
btnAdd.syncEnabled(5,true);
btnAdd.click();
btnAdd.syncVisible(2,true);
btnAdd.syncEnabled(2,true);
btnAdd.syncInFrame(2,true);
btnAdd.click();
}

/**
Expand Down Expand Up @@ -309,7 +311,7 @@ public boolean checkAccountPermissionOption(String strOption) {
catch (OptionNotInListboxException e){
return false;
}

}

}
9 changes: 6 additions & 3 deletions src/main/java/com/orasi/bluesource/Header.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,12 @@ else if (accountBool == false)
* @author Paul
*/
public void navigateEmployees() {
MessageCenter messageCenter = new MessageCenter(driver);
messageCenter.closeMessageCenter();
lnkEmployees.click();
lnkEmployees.syncVisible(2,true);
// MessageCenter messageCenter = new MessageCenter(driver);
// messageCenter.closeMessageCenter();
lnkEmployees.syncVisible(2,true);
lnkEmployees.syncInFrame(2,true);
lnkEmployees.click();
}

public void navigateProjectEmployees() {
Expand Down
47 changes: 47 additions & 0 deletions src/main/java/com/orasi/bluesource/LoginPage.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.util.ResourceBundle;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.support.FindBy;

import com.orasi.utils.Constants;
Expand Down Expand Up @@ -30,6 +32,9 @@ public class LoginPage {
@FindBy(xpath = "//img[@class = 'img-responsive brand']") private Element elmLogo;
@FindBy(xpath ="(//table[@class='table'])[3]") private Webtable wtbDetails;
@FindBy(xpath = "//*[@id='content']/div[2]/div/h3") private Label lblBadLogin;
@FindBy(xpath = "//*[@id='time-entry-table']/tbody/tr[2]/td[1]/span/span[1]/span/span[2]") private Button btnTimesheetDropdown;
@FindBy(xpath = "/html/body/span/span/span[1]/input") private Textbox txtTimesheetDropdown;
@FindBy(xpath = "//*[@id='employee_reported_times___date_hours_hours']") private Webtable wtHoursTable;

/**Constructor**/
public LoginPage(OrasiDriver driver){
Expand Down Expand Up @@ -103,4 +108,46 @@ public void invalid_login()
System.out.println("User not logged in or found.. \n" + "Output from the current page: " + innerText);
}

/**
* This method determines if the hours entered into the timesheet are shown
* @return boolean - If the input hours and displayed hours match
* @author Andrew McGrail
*/
public boolean checkTimesheetHours() {
String whatWeSet=null;
String whatIsShown=null;
boolean answer=true;

for(int i=1;i<7;i++) {
whatWeSet = driver.findTextbox(By.xpath("(//*[@id='employee_reported_times___date_hours_hours'])["+i+"]")).getText();
whatIsShown=driver.findLabel(By.xpath("//tr[6]/td["+(i+1)+"]")).getText();
if(!(whatWeSet.equals(whatIsShown)))
answer=false;
}
return answer;
}

/**
* This method sets the "Non-billable type" for the Current Timesheet
* @param type - The non-billable type
* @author Andrew McGrail
*/
public void setTimesheetDropdown(String type) {
txtTimesheetDropdown.sendKeys(type+Keys.RETURN);
}

/**
* This method sets the hours for the timesheet
* @author Andrew McGrail
*/
public void setTimesheetHours() {
for(int i=1;i<8;i++) {
driver.findTextbox(By.xpath("(//*[@id='employee_reported_times___date_hours_hours'])["+i+"]")).set(String.valueOf(i*2));
}
}

public void clickTimesheetDropdown() {
btnTimesheetDropdown.syncVisible(2,true);
btnTimesheetDropdown.click();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/**
* Test for Issue 859 - Add Daily Total Hours on Time Report Screen
* Fills in an employees timesheet and checks the page updates reflecting that
* @author Andrew McGrail
*/

package com.bluesource;

import org.testng.ITestContext;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

import com.orasi.bluesource.Header;
import com.orasi.bluesource.LoginPage;
import com.orasi.utils.TestReporter;
import com.orasi.web.WebBaseTest;

public class AddDailyTotalHoursOnTimeReportScreen extends WebBaseTest {

@BeforeMethod
@Parameters({ "runLocation", "browserUnderTest", "browserVersion",
"operatingSystem", "environment" })
public void setup(@Optional String runLocation, String browserUnderTest,
String browserVersion, String operatingSystem, String environment) {
setApplicationUnderTest("BLUESOURCE");
setBrowserUnderTest(browserUnderTest);
setBrowserVersion(browserVersion);
setOperatingSystem(operatingSystem);
setRunLocation(runLocation);
setEnvironment(environment);
setThreadDriver(true);
testStart("");
}

@AfterMethod
public void close(ITestContext testResults){
endTest("TestAlert", testResults);
}

@Test
public void testAddDailyTotalHoursOnTimeReportScreen() {
Header header = new Header(getDriver());
LoginPage loginPage = new LoginPage(getDriver());

// Step 1 Open browser.
// Step 2 Navigate to http://10.238.243.127
// Step 3 Input valid username into the 'Username' textbox of employee that has an open timesheet (not submitted).
// Step 4 Input valid password into the 'Password' textbox.
// Step 5 Click the 'Login' button or press Enter.
loginPage.LoginWithCredentials("this test", "123");
TestReporter.logStep("Successfully logged into BlueSource");
// Step 6 Enter time for various days including other rows such as bench or training.
loginPage.clickTimesheetDropdown();
loginPage.setTimesheetDropdown("Onboarding");
loginPage.setTimesheetHours();
TestReporter.logStep("Hours have been set in the timesheet");
// Step 7 Verify the daily totals display on the timesheet at the bottom.
TestReporter.assertTrue(loginPage.checkTimesheetHours(), "Verifying the hours entered in the timesheet appear below it.");
// Step 8 Click 'Logout' button.
header.navigateLogout();
TestReporter.logStep("Successfully logged out of BlueSource");
}
}
Binary file added src/test/resources/drivers/chromedriver.exe
Binary file not shown.
2 changes: 1 addition & 1 deletion src/test/resources/sandbox.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

<test name="In Progress test" parallel="methods" thread-count="20">
<classes>
<class name="com.bluesource.accounts.CreateAccount" />
<class name="com.bluesource.AddDailyTotalHoursOnTimeReportScreen" />
</classes>
</test>

Expand Down