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-1742: Symptom - Edit/Delete/Nav]", :broken => true, :regression => true do

before(:all) do

initializeConfigurations(BASE_URL)
resetCollection("symptoms", "medicalhistorydb", "symptom")

initializeAllObjects

@common.loginEndsOnLandingPage("zztest.patient05","patient05, zztest")

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

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

@navMenu.clickMyMedical()
!45.times{ break if (getSecondaryHeader() == "My Medical"); sleep 1 }
expect(getSecondaryHeader()).to eq("My Medical")

@mymedical.clickSymptom()
!45.times{ break if (getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(getPrimaryHeader()).to eq(Symptom::HEADER)

@symptomFilter.setInput(Symptom_Filter::FROM_DATE, "01/01/1990")
@symptomFilter.setInput(Symptom_Filter::TO_DATE, "11/10/2014")

@symptomFilter.clickFilterBtn()
!10.times{ break if (@symptomFilter.getFocusedElementText().include?(Symptom::HEADER)); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

@numberOfRecords = 8

expect(getCount()).to eq(@numberOfRecords)

@SymptomFirstCount = retreiveAllDocumentsInCollection("symptoms", "medicalhistorydb").length
end

# after(:all) do
# quitDriver()
# end

describe "AC JRNL-1732|TC JRNL-1578: When the user selects a Symptom entry from the table view" do

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

it "All values previously field values saved are visible" do
expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("12:00 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("12")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("5")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("Test Trigger")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("238 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("Test Treatment")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("236 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("Test Response")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("237 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("241 characters left")
end

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

it "Required" do
expect(@symptom.isFieldRequired(:css, Symptom::DESCRIPTION)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::SYMPTOM_DATE)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::SYMPTOM_TIME)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::TRIGGER)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::TREATMENT)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::RESPONSE)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::NOTES)).to eq(false)
end

it "Disabled" do
expect(@symptom.isThisElementDisabled(:css, Symptom::DESCRIPTION)).to eq(true)
end

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

@symptom.setInput(Symptom::SYMPTOM_DATE, "")
@symptom.setInput(Symptom::SYMPTOM_TIME, "")

@symptom.clickSaveButton()
!45.times{ break if (@error.getValidationSummaryHeader("form") == expectedValidationSummaryHeader); sleep 1 }
expect(@error.getValidationSummaryHeader("form")).to eq(expectedValidationSummaryHeader)
expect(@error.isErrorMessageDisplayed("form", "Symptom Name field is required.")).to eq(false)
expect(@error.isErrorMessageDisplayed("form", "Date field is required.")).to eq(true)
expect(@error.isErrorMessageDisplayed("form", "Time field is required.")).to eq(true)

@symptom.setInput(Symptom::SYMPTOM_DATE, "11/01")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
expect(@time_picker.areMinutesIn5MinIntervals()).to eq(false)
@time_picker.setTimeFromGUI(8, "05", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }

@symptom.clickSaveButton()
!45.times{ break if (@error.getValidationSummaryHeader("form") == expectedValidationSummaryHeader); sleep 1 }
expect(@error.getValidationSummaryHeader("form")).to eq(expectedValidationSummaryHeader)
expect(@error.isErrorMessageDisplayed("form", "Symptom Name field is required.")).to eq(false)
expect(@error.isErrorMessageDisplayed("form", "Date must be formatted MM/DD/YYYY.")).to eq(true)
expect(@error.isErrorMessageDisplayed("form", "Time field is required.")).to eq(false)
end

end

describe "AC JRNL-1731|TC JRNL-1571:: 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(@symptom.isCancelButtonVisible()).to eq(true)

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

expect(getCount()).to eq(@numberOfRecords)

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

expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("12:00 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("12")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("5")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("Test Trigger")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("238 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("Test Treatment")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("236 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("Test Response")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("237 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("241 characters left")

expect(@symptom.isCancelButtonVisible()).to eq(true)

@symptom.clickCancelButton()
!60.times{ break if (@symptom.getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

expect(getCount()).to eq(@numberOfRecords)
end

it "Cancel after one field update" do
clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")

@symptom.setInput(Symptom::NOTES, "Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)

clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
end

it "Update" do
@symptom.setInput(Symptom::NOTES, "Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)

clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css,Symptom::NOTES)).to eq("Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)
end

it "Delete" do
clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css,Symptom::NOTES)).to eq("Wheezing")

expect(@symptom.isDeleteButtonVisible()).to eq(true)

@symptom.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 (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
!10.times{ break if (getFocusedElementText().include?("Delete")); sleep 1 }
expect(@symptom.getFocusedElementText()).to eq("Delete")

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

expect(getCount()).to eq(@numberOfRecords)

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

@symptom.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 (@symptom.getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

expect(getCount()).to eq(@numberOfRecords - 1)

expect(retreiveAllDocumentsInCollection("symptoms", "medicalhistorydb").length()).to eq(@SymptomFirstCount)
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 (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)

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

@symptom.setInput(Symptom::SYMPTOM_DATE, "01/01/2014")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
@time_picker.setTimeFromGUI(9, "01", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }

@symptom.setInput(Symptom::TRIGGER, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::TREATMENT, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::RESPONSE, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::NOTES, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("0 characters left")

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

expect(getCount()).to eq(@numberOfRecords -1)
end

it "min" do
clickNthRow(1)
@symptom.setInput(Symptom::SYMPTOM_DATE, "01/01/2014")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
@time_picker.setTimeFromGUI(9, "01", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }
@symptom.setSelectBoxValue(Symptom::DURATION_HOURS, "Select")
@symptom.setSelectBoxValue(Symptom::DURATION_MINUTES, "Select")
@symptom.setInput(Symptom::TRIGGER, "")
@symptom.setInput(Symptom::TREATMENT, "")
@symptom.setInput(Symptom::RESPONSE, "")
@symptom.setInput(Symptom::NOTES, "")

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

expect(getCount()).to eq(@numberOfRecords - 1)

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

expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Crying")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("09:01 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("0")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("Select")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("")

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

expect(getCount()).to eq(@numberOfRecords - 1)
end

end

end

end

end





























































############################################################################ ORIGINAL CODE ################################################################
###########################################################################################################################################################
=begin
require_relative '../../../globalized'
include Globalized

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

before(:all) do

initializeConfigurations(BASE_URL)
resetCollection("symptoms", "medicalhistorydb", "symptom")

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 }
expect(@navMenu.getNavMenuHeading()).to eq("App Options")

@navMenu.clickMyMedical()
!45.times{ break if (getSecondaryHeader() == "My Medical"); sleep 1 }
expect(getSecondaryHeader()).to eq("My Medical")

@mymedical.clickSymptom()
!45.times{ break if (getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(getPrimaryHeader()).to eq(Symptom::HEADER)

@symptomFilter.setInput(Symptom_Filter::FROM_DATE, "01/01/1990")
@symptomFilter.setInput(Symptom_Filter::TO_DATE, "11/10/2014")

@symptomFilter.clickFilterBtn()
!10.times{ break if (@symptomFilter.getFocusedElementText().include?(Symptom::HEADER)); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

@numberOfRecords = 8

expect(getCount()).to eq(@numberOfRecords)

@SymptomFirstCount = retreiveAllDocumentsInCollection("symptoms", "medicalhistorydb").length
end

after(:all) do
quitDriver()
end

describe "AC JRNL-1732|TC JRNL-1578: When the user selects a Symptom entry from the table view" do

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

it "All values previously field values saved are visible" do
expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("12:00 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("12")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("5")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("Test Trigger")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("238 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("Test Treatment")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("236 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("Test Response")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("237 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("241 characters left")
end

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

it "Required" do
expect(@symptom.isFieldRequired(:css, Symptom::DESCRIPTION)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::SYMPTOM_DATE)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::SYMPTOM_TIME)).to eq(true)
expect(@symptom.isFieldRequired(:css, Symptom::TRIGGER)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::TREATMENT)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::RESPONSE)).to eq(false)
expect(@symptom.isFieldRequired(:css, Symptom::NOTES)).to eq(false)
end

it "Disabled" do
expect(@symptom.isThisElementDisabled(:css, Symptom::DESCRIPTION)).to eq(true)
end

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

@symptom.setInput(Symptom::SYMPTOM_DATE, "")
@symptom.setInput(Symptom::SYMPTOM_TIME, "")

@symptom.clickSaveButton()
!45.times{ break if (@error.getValidationSummaryHeader("form") == expectedValidationSummaryHeader); sleep 1 }
expect(@error.getValidationSummaryHeader("form")).to eq(expectedValidationSummaryHeader)
expect(@error.isErrorMessageDisplayed("form", "Symptom Name field is required.")).to eq(false)
expect(@error.isErrorMessageDisplayed("form", "Date field is required.")).to eq(true)
expect(@error.isErrorMessageDisplayed("form", "Time field is required.")).to eq(true)

@symptom.setInput(Symptom::SYMPTOM_DATE, "11/01")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
expect(@time_picker.areMinutesIn5MinIntervals()).to eq(false)
@time_picker.setTimeFromGUI(8, "05", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }

@symptom.clickSaveButton()
!45.times{ break if (@error.getValidationSummaryHeader("form") == expectedValidationSummaryHeader); sleep 1 }
expect(@error.getValidationSummaryHeader("form")).to eq(expectedValidationSummaryHeader)
expect(@error.isErrorMessageDisplayed("form", "Symptom Name field is required.")).to eq(false)
expect(@error.isErrorMessageDisplayed("form", "Date must be formatted MM/DD/YYYY.")).to eq(true)
expect(@error.isErrorMessageDisplayed("form", "Time field is required.")).to eq(false)
end

end

describe "AC JRNL-1731|TC JRNL-1571:: 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(@symptom.isCancelButtonVisible()).to eq(true)

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

expect(getCount()).to eq(@numberOfRecords)

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

expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("12:00 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("12")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("5")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("Test Trigger")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("238 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("Test Treatment")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("236 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("Test Response")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("237 characters left")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("241 characters left")

expect(@symptom.isCancelButtonVisible()).to eq(true)

@symptom.clickCancelButton()
!60.times{ break if (@symptom.getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

expect(getCount()).to eq(@numberOfRecords)
end

it "Cancel after one field update" do
clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Coughing")

@symptom.setInput(Symptom::NOTES, "Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)

clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("Test Note")
end

it "Update" do
@symptom.setInput(Symptom::NOTES, "Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)

clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css,Symptom::NOTES)).to eq("Wheezing")

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

expect(getCount()).to eq(@numberOfRecords)
end

it "Delete" do
clickNthRow(1)
!45.times{ break if (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
expect(@symptom.getTextFromInput(:css,Symptom::NOTES)).to eq("Wheezing")

expect(@symptom.isDeleteButtonVisible()).to eq(true)

@symptom.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 (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)
!10.times{ break if (getFocusedElementText().include?("Delete")); sleep 1 }
expect(@symptom.getFocusedElementText()).to eq("Delete")

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

expect(getCount()).to eq(@numberOfRecords)

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

@symptom.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 (@symptom.getPrimaryHeader() == Symptom::HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::HEADER)

expect(getCount()).to eq(@numberOfRecords - 1)

expect(retreiveAllDocumentsInCollection("symptoms", "medicalhistorydb").length()).to eq(@SymptomFirstCount)
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 (@symptom.getPrimaryHeader() == Symptom::EDIT_HEADER); sleep 1 }
expect(@symptom.getPrimaryHeader()).to eq(Symptom::EDIT_HEADER)

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

@symptom.setInput(Symptom::SYMPTOM_DATE, "01/01/2014")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
@time_picker.setTimeFromGUI(9, "01", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }

@symptom.setInput(Symptom::TRIGGER, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::TRIGGER_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::TREATMENT, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::TREATMENT_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::RESPONSE, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::RESPONSE_CHARACTER_COUNTER)).to eq("0 characters left")
@symptom.setInput(Symptom::NOTES, "This field value is deliberately set to be longer than length of two hundred and fifty characters. The field should truncate the string after the maximum number of characters is reached and display the first substring of this entire string. ")
expect(@symptom.getTextForElement(:css, Symptom::NOTES_CHARACTER_COUNTER)).to eq("0 characters left")

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

expect(getCount()).to eq(@numberOfRecords -1)
end

it "min" do
clickNthRow(1)
@symptom.setInput(Symptom::SYMPTOM_DATE, "01/01/2014")
@time_picker.clickTimePickerButton()
!45.times{ break if (@driver.find_element(:id, "set-button").displayed?); sleep 1 }
@time_picker.setTimeFromGUI(9, "01", "AM")
!45.times{ break if (is_element_present(:id, "set-button") == false); sleep 1 }
@symptom.setSelectBoxValue(Symptom::DURATION_HOURS, "Select")
@symptom.setSelectBoxValue(Symptom::DURATION_MINUTES, "Select")
@symptom.setInput(Symptom::TRIGGER, "")
@symptom.setInput(Symptom::TREATMENT, "")
@symptom.setInput(Symptom::RESPONSE, "")
@symptom.setInput(Symptom::NOTES, "")

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

expect(getCount()).to eq(@numberOfRecords - 1)

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

expect(@symptom.getTextFromInput(:css, Symptom::DESCRIPTION)).to eq("Crying")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_DATE)).to eq("01/01/2014")
expect(@symptom.getTextFromInput(:css, Symptom::SYMPTOM_TIME)).to eq("09:01 AM")
expect(@symptom.getSelectBoxText(Symptom::DURATION_MINUTES)).to eq("0")
expect(@symptom.getSelectBoxText(Symptom::DURATION_HOURS)).to eq("Select")
expect(@symptom.getTextFromInput(:css, Symptom::TRIGGER)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::TREATMENT)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::RESPONSE)).to eq("")
expect(@symptom.getTextFromInput(:css, Symptom::NOTES)).to eq("")

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

expect(getCount()).to eq(@numberOfRecords - 1)
end

end

end

end

end
=end