Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

require_relative '../../../globalized'
include Globalized

describe "[Story #JRNL-2488: Personal Contacts - Edit/Delete/Nav]", :broken => true, :regression => true do

before(:all) do
@ENTRY_FORM_1 = [
"* required field",
"",
"* First Name:",
"50 character maximum",
"* Last Name:",
"50 character maximum",
"Relationship:",
"Primary Phone:",
"Enter 10 digits",
"Primary Phone Type:",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Email:",
"100 character maximum",
"Address",
"Country:",
"Address Line 1:",
"100 character maximum",
"Address Line 2:",
"100 character maximum",
"City:",
"50 character maximum",
"State:",
"ZIP/Postal Code:",
"10 character maximum",
"Note:",
"250 character maximum",
"250 characters left",
"Save Delete Cancel"
]

@ENTRY_FORM_2 = [
"* required field",
"",
"* First Name:",
"50 character maximum",
"* Last Name:",
"50 character maximum",
"Relationship:",
"Primary Phone:",
"Enter 10 digits",
"Primary Phone Type:",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Other Phone:",
"Enter 10 digits",
"Other Phone Type:",
" Delete",
"Email:",
"100 character maximum",
"Address",
"Country:",
"Address Line 1:",
"100 character maximum",
"Address Line 2:",
"100 character maximum",
"City:",
"50 character maximum",
"State/Province:",
"50 character maximum",
"ZIP/Postal Code:",
"10 character maximum",
"Note:",
"250 character maximum",
"250 characters left",
"Save Delete Cancel"
]

initializeConfigurations(BASE_URL)
resetCollection("contacts", "personalprofiledb", "personalContacts")
initializeAllObjects

@common.loginEndsOnLandingPage("zztest.patient01","patient01, zztest");

expect(@main.getFooterText()).to eq("Logged in as patient01, zztest");

@main.clickNavMenu()
!45.times{ break if (@navMenu.getNavMenuHeading() == "App Options"); sleep 1 }

@navMenu.clickContacts()
!45.times{ break if (@contacts.getSecondaryHeader() == "Contacts"); sleep 1 }
expect(@contacts.getSecondaryHeader()).to eq("Contacts")

@contacts.clickPersonalContacts()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(11)

@contactCountBeforeDelete = retreiveAllDocumentsInCollection("contacts", "personalprofiledb").length()
end

after(:all) do
quitDriver()
end

describe "AC JRNL-1908|TC JRNL-1746: When the user selects a Personal Contacts entry from the table view" do

it "the system displays the Personal Contact record in the Detail screen in Edit mode" do
clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

### It is not in the AC to check for the back button but I believe the addition of the back button is a universal change.
# expect(@personalContacts.isBackButtonVisible()).to eq(true)
# expect(@personalContacts.getBackButtonAltText()).to eq("Return to Personal Contacts table view")
end

it "All values previously saved are visible" do
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::FIRST_NAME)).to eq("Randy")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("Carlton")
expect(@personalContacts.getSelectBoxText(PersonalContacts::RELATIONSHIP)).to eq("Family")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::PRIMARY_PHONE)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::PRIMARY_PHONE_TYPE)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_1)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_1)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::EMAIL)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::COUNTRY)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_1)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_2)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::CITY)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::STATE_PROVINCE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ZIP_POSTAL_CODE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::NOTE)).to eq("")
expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("250 characters left")
end

describe "All fields displayed in the Add mode are available in the Edit mode" do

it "Detail screen - Country != US" do
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)

@personalContacts.click(:css, PersonalContacts::ADD_PHONE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)

@personalContacts.click(:css, PersonalContacts::ADD_PHONE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)

@personalContacts.click(:css, PersonalContacts::ADD_PHONE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(true)

@form = @personalContacts.stripSelectTextFromScreen(
@personalContacts.getScreenContent().split("\n"),
['relationship', 'primaryPhoneType', 'otherPhoneType1', 'otherPhoneType2', 'otherPhoneType3', 'otherPhoneType4', 'addressCountry']
)

@ENTRY_FORM_2.each_with_index do | expectedScreenRow, i |
expect(@form[i]).to eq(expectedScreenRow)
end

relationships = ["Select", "Family", "Friend", "Support", "Lawyer", "Co-Worker", "Other"]

@personalContacts.getElements(:css, PersonalContacts::RELATIONSHIP + " option").each_with_index do | content, i |
expect(content.text()).to eq(relationships[i])
end

phoneTypes = ["Select", "Mobile", "Home", "Work", "Fax"]

@personalContacts.getElements(:css, PersonalContacts::OTHER_PHONE_TYPE_1 + " option").each_with_index do | content, i |
expect(content.text()).to eq(phoneTypes[i])
end

@personalContacts.getElements(:css, PersonalContacts::OTHER_PHONE_TYPE_2 + " option").each_with_index do | content, i |
expect(content.text()).to eq(phoneTypes[i])
end

@personalContacts.getElements(:css, PersonalContacts::OTHER_PHONE_TYPE_3 + " option").each_with_index do | content, i |
expect(content.text()).to eq(phoneTypes[i])
end

@personalContacts.getElements(:css, PersonalContacts::OTHER_PHONE_TYPE_4 + " option").each_with_index do | content, i |
expect(content.text()).to eq(phoneTypes[i])
end
end

it "Required" do
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::FIRST_NAME)).to eq(true)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::LAST_NAME)).to eq(true)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::RELATIONSHIP)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::PRIMARY_PHONE)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::PRIMARY_PHONE_TYPE)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_1)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_TYPE_1)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_2)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_3)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::EMAIL)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::COUNTRY)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::ADDRESS_LINE_1)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::ADDRESS_LINE_2)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::CITY)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::STATE_PROVINCE)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::ZIP_POSTAL_CODE)).to eq(false)
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::NOTE)).to eq(false)

@personalContacts.setSelectBoxValue(PersonalContacts::COUNTRY, "United States")
expect(@personalContacts.isElementVisible(:css, PersonalContacts::STATE_PROVINCE)).to eq(false)
expect(@personalContacts.isElementVisible(:css, PersonalContacts::STATE)).to eq(true)
expect(@personalContacts.getSelectBoxText(PersonalContacts::STATE)).to eq("Select")
expect(@personalContacts.isFieldRequired(:css, PersonalContacts::STATE)).to eq(false)
end

it "Detail screen - Country = US" do
@form = @personalContacts.stripSelectTextFromScreen(
@personalContacts.getScreenContent().split("\n"),
['relationship', 'primaryPhoneType', 'otherPhoneType1', 'otherPhoneType2', 'otherPhoneType3', 'otherPhoneType4', 'addressCountry', 'addressStateAbbreviation']
)

@ENTRY_FORM_1.each_with_index do | expectedScreenRow, i |
expect(@form[i]).to eq(expectedScreenRow)
end

@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_1_DELETE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)

@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_1_DELETE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(true)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)

@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_1_DELETE)

expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_1_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_2)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_2_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_3)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_3_DELETE)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_TYPE_4)).to eq(false)
expect(@personalContacts.is_element_present(:css, PersonalContacts::OTHER_PHONE_4_DELETE)).to eq(false)
end

it "Error Messages" do
expectedValidationSummaryHeader = "The following errors were found:"

@personalContacts.setInput(PersonalContacts::FIRST_NAME, "")
@personalContacts.setInput(PersonalContacts::LAST_NAME, "")
@personalContacts.setPhoneInput(PersonalContacts::PRIMARY_PHONE, "10")
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_1, "10")

@personalContacts.clickSaveButton()

!45.times{ break if (@error.getValidationSummaryHeader("entryForm") == expectedValidationSummaryHeader); sleep 1 }
expect(@error.getValidationSummaryHeader("entryForm")).to eq(expectedValidationSummaryHeader)
expect(@error.isErrorMessageDisplayed("entryForm", "First Name field is required.")).to eq(true)
expect(@error.isErrorMessageDisplayed("entryForm", "Last Name field is required.")).to eq(true)
expect(@error.isErrorMessageDisplayed("entryForm", "Primary Phone must be formatted (###) ###-####.")).to eq(true)
expect(@error.isErrorMessageDisplayed("entryForm", "Other Phone must be formatted (###) ###-####.")).to eq(true)
end

end

describe "Standard Edit functions are available" do

it "Cancel - When a user selects Cancel, no updates are made to the record and the user is shown the table view with the focus placed on the header" do
expect(@personalContacts.isCancelButtonVisible()).to eq(true)

@personalContacts.clickCancelButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(11)

clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.getTextFromInput(:css, PersonalContacts::FIRST_NAME)).to eq("Randy")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("Carlton")
expect(@personalContacts.getSelectBoxText(PersonalContacts::RELATIONSHIP)).to eq("Family")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::PRIMARY_PHONE)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::PRIMARY_PHONE_TYPE)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_1)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_1)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::EMAIL)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::COUNTRY)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_1)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_2)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::CITY)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::STATE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ZIP_POSTAL_CODE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::NOTE)).to eq("")
expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("250 characters left")
end

it "Delete" do
expect(@personalContacts.isDeleteButtonVisible()).to eq(true)

@personalContacts.clickDeleteButton()
!45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
expect(@modal.getConfirmationHeading()).to eq("Confirmation")
expect(@modal.getConfirmationMessage()).to eq("Are you sure you want to remove this entry? Select YES to remove the entry or NO to return to the entry screen.")
expect(@modal.getConfirmButtonText()).to eq("Yes")
expect(@modal.getCancelButtonText()).to eq("No")

@modal.clickNoButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)
!10.times{ break if (getFocusedElementText().include?("Delete")); sleep 1 }
expect(@personalContacts.getFocusedElementText()).to eq("Delete")

@personalContacts.clickCancelButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(11)

clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

@personalContacts.clickDeleteButton()
!45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
expect(@modal.getConfirmationHeading()).to eq("Confirmation")
expect(@modal.getConfirmationMessage()).to eq("Are you sure you want to remove this entry? Select YES to remove the entry or NO to return to the entry screen.")
expect(@modal.getConfirmButtonText()).to eq("Yes")
expect(@modal.getCancelButtonText()).to eq("No")

@modal.clickYesButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(10)

expect(retreiveAllDocumentsInCollection("contacts", "personalprofiledb").length()).to eq(@contactCountBeforeDelete)
end

describe "Save - When a user selects Save the system saves the record and the user is returned to the table view, with the focus on the header. Updates made to the record are visible in the table, if included in that view" do

it "max" do
clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.isSaveButtonVisible()).to eq(true)

@personalContacts.setInput(PersonalContacts::FIRST_NAME, "()*&^%$@!?><.,:;{}[]ABCDEFGHIJKLMNopqrstuvwxyz1234567890")
@personalContacts.setInput(PersonalContacts::LAST_NAME, "ABCDEFGHIJKLMNopqrstuvwxyz1234567890()*&^%$@!?><.,:;{}[]")
@personalContacts.setSelectBoxValue(PersonalContacts::RELATIONSHIP, "Lawyer")
@personalContacts.setPhoneInput(PersonalContacts::PRIMARY_PHONE, "123a456b7890")
@personalContacts.setSelectBoxValue(PersonalContacts::PRIMARY_PHONE_TYPE, "Home")
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_1, "c098765b4321d")
@personalContacts.setSelectBoxValue(PersonalContacts::OTHER_PHONE_TYPE_1, "Mobile")
@personalContacts.click(:css, PersonalContacts::ADD_PHONE)
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_2, "1a0s2d9f3g8h4j7i5o6")
@personalContacts.setSelectBoxValue(PersonalContacts::OTHER_PHONE_TYPE_2, "Work")
@personalContacts.click(:css, PersonalContacts::ADD_PHONE)
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_3, "0?987612!345")
@personalContacts.setSelectBoxValue(PersonalContacts::OTHER_PHONE_TYPE_3, "Fax")
@personalContacts.click(:css, PersonalContacts::ADD_PHONE)
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_4, "678-901-2345")
@personalContacts.setSelectBoxValue(PersonalContacts::OTHER_PHONE_TYPE_4, "Mobile")
@personalContacts.setInput(PersonalContacts::EMAIL, "my.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@agilex.com")
@personalContacts.setSelectBoxValue(PersonalContacts::COUNTRY, "Serbia")
@personalContacts.setInput(PersonalContacts::ADDRESS_LINE_1, "100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St ")
@personalContacts.setInput(PersonalContacts::ADDRESS_LINE_2, "Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 ")
@personalContacts.setInput(PersonalContacts::CITY, "SerbiniaSerbiniaSerbiniaSerbiniaSerbiniaSerbiniaSerbinia")
@personalContacts.setInput(PersonalContacts::STATE_PROVINCE, "SerbistateSerbistateSerbistateSerbistateSerbistateSerbistate")
@personalContacts.setInput(PersonalContacts::ZIP_POSTAL_CODE, "1a4561a4561a456")
@personalContacts.setInput(PersonalContacts::NOTE, "None of this info is real. None of this info is real. None of this info is real.")

expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("170 characters left")

@personalContacts.setInput(PersonalContacts::NOTE, "None of this info is real. None of this info is real. None of this info is real.None of this info is real. None of this info is real. None of this info is real.None of this info is real. None of this info is real. None of this info is real. None of this info is real.")

expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("0 characters left")

@personalContacts.clickSaveButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(10)

clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.getTextFromInput(:css, PersonalContacts::FIRST_NAME)).to eq("()*&^%$@!?><.,:;{}[]ABCDEFGHIJKLMNopqrstuvwxyz1234")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::FIRST_NAME).length()).to eq(50)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("ABCDEFGHIJKLMNopqrstuvwxyz1234567890()*&^%$@!?><.,")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME).length()).to eq(50)
expect(@personalContacts.getSelectBoxText(PersonalContacts::RELATIONSHIP)).to eq("Lawyer")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::PRIMARY_PHONE)).to eq("(123) 456-7890")
expect(@personalContacts.getSelectBoxText(PersonalContacts::PRIMARY_PHONE_TYPE)).to eq("Home")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_1)).to eq("(098) 765-4321")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_1)).to eq("Mobile")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_2)).to eq("(102) 938-4756")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_2)).to eq("Work")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_3)).to eq("(098) 761-2345")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_3)).to eq("Fax")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_4)).to eq("(678) 901-2345")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_4)).to eq("Mobile")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::EMAIL)).to eq("my.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@agilex.commy.name@ag")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::EMAIL).length()).to eq(100)
expect(@personalContacts.getSelectBoxText(PersonalContacts::COUNTRY)).to eq("Serbia")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_1)).to eq("100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 100 1st St 1")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_1).length()).to eq(100)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_2)).to eq("Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suite 8 Suit")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_2).length()).to eq(100)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::CITY)).to eq("SerbiniaSerbiniaSerbiniaSerbiniaSerbiniaSerbiniaSe")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::CITY).length()).to eq(50)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::STATE_PROVINCE)).to eq("SerbistateSerbistateSerbistateSerbistateSerbistate")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::STATE_PROVINCE).length()).to eq(50)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ZIP_POSTAL_CODE)).to eq("1a4561a456")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ZIP_POSTAL_CODE).length()).to eq(10)
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::NOTE)).to eq("None of this info is real. None of this info is real. None of this info is real.None of this info is real. None of this info is real. None of this info is real.None of this info is real. None of this info is real. None of this info is real. None of t")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::NOTE).length()).to eq(250)
expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("0 characters left")
end

it "min" do
@personalContacts.setInput(PersonalContacts::FIRST_NAME, "B")
@personalContacts.setInput(PersonalContacts::LAST_NAME, "A")
@personalContacts.setSelectBoxValue(PersonalContacts::RELATIONSHIP, "Select")
@personalContacts.setPhoneInput(PersonalContacts::PRIMARY_PHONE, "")
@personalContacts.setSelectBoxValue(PersonalContacts::PRIMARY_PHONE_TYPE, "Select")
@personalContacts.setPhoneInput(PersonalContacts::OTHER_PHONE_1, "")
@personalContacts.setSelectBoxValue(PersonalContacts::OTHER_PHONE_TYPE_1, "Select")
@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_4_DELETE)
@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_3_DELETE)
@personalContacts.click(:css, PersonalContacts::OTHER_PHONE_2_DELETE)
@personalContacts.setInput(PersonalContacts::EMAIL, "")
@personalContacts.setSelectBoxValue(PersonalContacts::COUNTRY, "Select")
@personalContacts.setInput(PersonalContacts::ADDRESS_LINE_1, "")
@personalContacts.setInput(PersonalContacts::ADDRESS_LINE_2, "")
@personalContacts.setInput(PersonalContacts::CITY, "")
@personalContacts.setInput(PersonalContacts::STATE_PROVINCE, "")
@personalContacts.setInput(PersonalContacts::ZIP_POSTAL_CODE, "")
@personalContacts.setInput(PersonalContacts::NOTE, "")

@personalContacts.clickSaveButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(10)

clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.getTextFromInput(:css, PersonalContacts::FIRST_NAME)).to eq("B")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("A")
expect(@personalContacts.getSelectBoxText(PersonalContacts::RELATIONSHIP)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::PRIMARY_PHONE)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::PRIMARY_PHONE_TYPE)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::OTHER_PHONE_1)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::OTHER_PHONE_TYPE_1)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::EMAIL)).to eq("")
expect(@personalContacts.getSelectBoxText(PersonalContacts::COUNTRY)).to eq("Select")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_1)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ADDRESS_LINE_2)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::CITY)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::STATE_PROVINCE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::ZIP_POSTAL_CODE)).to eq("")
expect(@personalContacts.getTextFromInput(:css, PersonalContacts::NOTE)).to eq("")
expect(@personalContacts.getTextForElement(:css, PersonalContacts::NOTE_CHARACTER_COUNT)).to eq("250 characters left")

@personalContacts.clickCancelButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(10)
end

end

end

describe "AC JRNL-1907|TC JRNL-1745: Navigation Without Saving" do

it "If the user tries to navigate away from a detail record where a field has been updated without saving, the user is prompted to confirm that they want to leave the record without saving via a modal" do
clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("A")
@personalContacts.setInput(PersonalContacts::LAST_NAME, "XYZ")

@contacts.clickPersonalContacts()
!45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
expect(@modal.getConfirmationHeading()).to eq("Confirmation")
expect(@modal.getConfirmationMessage()).to eq("You have not saved your changes. You may continue without saving or return to the entry screen.")
expect(@modal.getConfirmButtonText()).to eq("Continue")
expect(@modal.getCancelButtonText()).to eq("Return")

@modal.clickReturnButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

@contacts.clickPersonalContacts()
!45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
expect(@modal.getConfirmationHeading()).to eq("Confirmation")
expect(@modal.getConfirmationMessage()).to eq("You have not saved your changes. You may continue without saving or return to the entry screen.")
expect(@modal.getConfirmButtonText()).to eq("Continue")
expect(@modal.getCancelButtonText()).to eq("Return")

@modal.clickContinueButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)

expect(getCount()).to eq(10)

clickNthRow(1)
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)

expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("A")
end

it "Back button" do
# @personalContacts.setInput(PersonalContacts::LAST_NAME, "XYZ")
#
# @personalContacts.clickBackButton()
# !45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
# expect(@modal.getConfirmationHeading()).to eq("Confirmation")
# expect(@modal.getConfirmationMessage()).to eq("You have not saved your changes. You may continue without saving or return to the entry screen.")
# expect(@modal.getConfirmButtonText()).to eq("Continue")
# expect(@modal.getCancelButtonText()).to eq("Return")
#
# @modal.clickReturnButton()
# !45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
# expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)
#
# @personalContacts.clickBackButton()
# !45.times{ break if (@modal.getConfirmationHeading() == "Confirmation"); sleep 1 }
# expect(@modal.getConfirmationHeading()).to eq("Confirmation")
# expect(@modal.getConfirmationMessage()).to eq("You have not saved your changes. You may continue without saving or return to the entry screen.")
# expect(@modal.getConfirmButtonText()).to eq("Continue")
# expect(@modal.getCancelButtonText()).to eq("Return")
#
# @modal.clickContinueButton()
# !45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
# expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)
#
# expect(getCount()).to eq(10)
#
# clickNthRow(1)
# !45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::EDIT_HEADER); sleep 1 }
# expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::EDIT_HEADER)
#
# expect(@personalContacts.getTextFromInput(:css, PersonalContacts::LAST_NAME)).to eq("A")

@personalContacts.clickCancelButton()
!45.times{ break if (@personalContacts.getPrimaryHeader() == PersonalContacts::HEADER); sleep 1 }
expect(@personalContacts.getPrimaryHeader()).to eq(PersonalContacts::HEADER)
end

end

end

end