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 'rubygems'
require 'selenium-webdriver'

require_relative "../module/DriverUtility"
require_relative "main"


class Nav_menu
include DriverUtility
MILITARY_OCCUPATIONAL_HISTORY_BTN = ".btn.btn-default.military-occupational-history"
NAV_ORDER = ["Home","MyProfile", "MyStory", "MyMedical", "PersonalTrackers", "MyReminders", "Notifications", "Contacts", "Assessments", "Images and Documents", "Health Report"]

NAV = {
"NavMenu" => {
"reference" => "use main.rb"
},
"PersonalTrackers" => {
"dependsOn" => "NavMenu",
"navButton" => "#PersonalTrackers"
},
"BloodPressureandPulse" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.blood-pressure-and-pulse"
},
"DailyEvents" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.daily-events"
},
"Diet" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.diet"
},
"Exercise" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.exercise"
},
"Glucose" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.glucose-self-tested"
},
"Lipids" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.cholesterol-lipid"
},
"Height" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.height"
},
"Mood" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.mood"
},
"Pain" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.pain"
},
"Respiration" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.respiration"
},
"Sleep" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.sleep"
},
"Stress" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.stress"
},
"Temperature" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.temperature"
},
"Weight" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.weight"
},
#MyMedical dependencies
"MyMedical" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyMedical"
},
"Diagnoses" => {
"dependsOn" => "MyMedical",
"navButton" => "button.diagnoses"
},
"Surgeries" => {
"dependsOn" => "MyMedical",
"navButton" => "button.surgeries"
},
"MMedications" => {
"dependsOn" => "MyMedical",
"navButton" => "button.medications"
},
"Allergies" => {
"dependsOn" => "MyMedical",
"navButton" => "button.allergies"
},
"Hospitalizations" => {
"dependsOn" => "MyMedical",
"navButton" => "button.hospitalizations"
},
"PregnancyHistory" => {
"dependsOn" => "MyMedical",
"navButton" => "button.pregnancy-history"
},
"FamilyHistory" => {
"dependsOn" => "MyMedical",
"navButton" => "button.family-history"
},
"SymptomDiary" => {
"dependsOn" => "MyMedical",
"navButton" => "button.symptom-diary"
},
"PlanYourAppointment" => {
"dependsOn" => "MyMedical",
"navButton" => "button.plan-your-appointment"
},
#Contacts dependencies- JRNL-2492
"Contacts" => {
"dependsOn" => "NavMenu",
"navButton" => "#Contacts"
},
"ProviderContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.provider-contacts"
},
"FacilityContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.facility-contacts"
},
"HealthCareContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.healthcare-contacts"
},
"InsuranceContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.insurance-contacts"
},
"PersonalContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.personal-contacts"
},
"CommunicationsLog" => {
"dependsOn" => "Contacts",
"navButton" => "button.communications-log"
},
#MyStory dependencies
"MyStory" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyStory"
},
"Summary" => {
"dependsOn" => "MyStory",
"navButton" => "button.summary"
},
"PersonalValues" => {
"dependsOn" => "MyStory",
"navButton" => "button.personal-values"
},
"Assessment" => {
"dependsOn" => "MyStory",
"navButton" => "button.assessment"
},
"Reflections" => {
"dependsOn" => "MyStory",
"navButton" => "button.reflections"
},
"Learn" => {
"dependsOn" => "MyStory",
"navButton" => "button.learn"
},
"Goals" => {
"dependsOn" => "MyStory",
"navButton" => "button.goals"
},
#MyReminders dependencies
"MyReminders" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyReminders"
},
"Appointments" => {
"dependsOn" => "MyReminders",
"navButton" => "button.appointments"
},
"Medications" => {
"dependsOn" => "MyReminders",
"navButton" => "button.medications"
},
"PreventiveServices" => {
"dependsOn" => "MyReminders",
"navButton" => "button.preventive-services"
},
"Other" => {
"dependsOn" => "MyReminders",
"navButton" => "button.other"
},
"Notifications" => {
"dependsOn" => "NavMenu",
"navButton" => "#Notifications"
},
"AllNotifications" => {
"dependsOn" => "Notifications",
"navButton" => "button.all-notifications"
},
"MyVAHealthApp" => {
"dependsOn" => "Notifications",
"navButton" => "button.my-va-health-app-notices"
},
"VAHealthMessages" => {
"dependsOn" => "Notifications",
"navButton" => "button.va-health-messages"
},
"Assessments" => {
"dependsOn" => "NavMenu",
"navButton" => "#Assessments"
},
"Home" => {
"dependsOn" => "NavMenu",
"navButton" => "#Home"
},
#MyProfile dependencies
"MyProfile" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyProfile"
},
"MyContactInformation" => {
"dependsOn" => "MyProfile",
"navButton" => "button.my-contact-information"
},
"OccupationalHistory" => {
"dependsOn" => "MyProfile",
"navButton" => "button.military-occupational-history"
},
"ImagesDocuments" => {
"dependsOn" => "NavMenu",
"navButton" => "#ImagesandDocuments"
},
"All" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.all"
},
"Medical" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.medical"
},
"Military" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.military"
},
"IMGOther" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.other"
},
"HealthReport" => {
"dependsOn" => "NavMenu",
"navButton" => "#HealthReport"
},

}


def initialize(driver)
@driver = driver
@main = Main.new(driver)
end

def getNavMenuHeading()
navMenuHeading = getTextForElement(:css, "div[snap-drawer='left'] div h2:nth-of-type(2)")
return navMenuHeading
end

def getMyStoryButtonText
return getTextForElement(:css, NAV["MyStory"]["navButton"])
end

def getCommunicationLogButtonText
return getTextForElement(:css, NAV["CommunicationsLog"]["navButton"] )
end

def getContactsButtonText
return getTextForElement(:css, NAV["Contacts"]["navButton"] )
end

def getAssessmentButtonText
return getTextForElement(:css, NAV["Assessments"]["navButton"] )
end

def getFamilyHistoryButtonText
return getTextForElement(:css, NAV["FamilyHistory"]["navButton"] )
end

def getImagesDocumentsButtonText
return getTextForElement(:css, NAV["ImagesDocuments"]["navButton"] )
end

def getNthOptionName(number)
getTextForElement(:css, "ul.panel-menulist li:nth-child(" + number.to_s + ") button")
end

def isDailyEventsButtonVisible()
return isNavVisible("DailyEvents")
end

def isCommunicationLogButtonVisible()
return isNavVisible("CommunicationsLog")
end

def isAssessmentButtonVisible()
return isNavVisible("Assessments")
end

def isMoodButtonVisible()
return isNavVisible("Mood")
end

def isDietButtonVisible()
return isNavVisible("Diet")
end

def isNotificationsButtonVisible()
return isNavVisible("Notifications")
end

def isMyMedicalButtonVisible()
getTextForElement(:css, "ul.panel-menulist li:nth-child(4) button ")
end

def isFamilyHistoryButtonVisible()
return isNavVisible("FamilyHistory")
end

def isImagesDocumentButtonVisible()
return isNavVisible("ImagesDocuments")
end

def isAllButtonVisible()
return isNavVisible("All")
end

def isMedicalButtonVisible()
return isNavVisible("Medical")
end

def isMilitaryButtonVisible()
return isNavVisible("Military")
end

def isIMGOtherButtonVisible()
return isNavVisible("IMGOther")
end


#JRNL-2492
def isContactsButtonVisible()
return isNavVisible("Contacts")
end

def isMyStoryButtonVisible()
return isNavVisible("MyStory")
end

def isThisNavButtonVisible(number)
return getTextForElement(:css, "ul.panel-menulist li:nth-child(" + number.to_s + ") button")
end

def clickMilitaryOccupationalHistory()
waitForPageToFinishLoading
click(:css, MILITARY_OCCUPATIONAL_HISTORY_BTN)
end

def clickAssessmentBtn
navigate("Assessments")
end

def clickNotifications()
waitForPageToFinishLoading
navigate("Notifications")
end

def clickAllNotifications()
navigate("AllNotifications")
end

def clickMyVAHealthApp()
navigate("MyVAHealthApp")
end

def clickVAHealthMessages()
navigate("VAHealthMessages")
end

def clickReminders()
waitForPageToFinishLoading
navigate("MyReminders")
end

def clickMyMedical()
navigate("MyMedical")
end

#JRNL-2492
def clickContacts()
waitForPageToFinishLoading
navigate("Contacts")
end

def clickHealthCareContacts()
navigate("HealthCareContacts")
end

def clickInsuranceContacts()
navigate("InsuranceContacts")
end

def clickPersonalContacts()
navigate("PersonalContacts")
end

def clickCommunicationsLog()
navigate("CommunicationsLog")
end

def clickMyStory()
waitForPageToFinishLoading
navigate("MyStory")
end

def clickHome()
navigate("Home")
end

def clickSummary()
navigate("Summary")
end

def clickHealthReport()
waitForPageToFinishLoading
navigate("HealthReport")
end

def clickPersonalValues()
navigate("PersonalValues")
end

def clickAssessment()
navigate("Assessment")
end

def clickReflections()
navigate("Reflections")
end

def clickLearn()
navigate("Learn")
end

def clickGoals()
navigate("Goals")
end

def clickDiagnoses()
navigate("Diagnoses")
end

def clickSurgeries()
navigate("Surgeries")
end

def clickHospitalizations()
navigate("Hospitalizations")
end

def clickPregnancyHistory()
navigate("PregnancyHistory")
end

def clickFamilyHistory()
navigate("FamilyHistory")
end

#Personal Trackers
def clickPersonalTrackers()
#navigate("PersonalTrackers")
@driver.find_element(:id, "PersonalTrackers").click
end

def clickSleep()
navigate("Sleep")
end

def clickBPAndPulse()
navigate("BloodPressureandPulse")
end

def clickDailyEvents()
waitForPageToFinishLoading
navigate("DailyEvents")
end

def clickDiet()
navigate("Diet")
end

def clickExercise()
navigate("Exercise")
end

def clickGlucose()
navigate("Glucose")
end

def clickHeight()
navigate("Height")
end

def clickMood()
navigate("Mood")
end

def clickPain()
navigate("Pain")
end

def clickRespiration()
navigate("Respiration")
end

def clickTemperature()
navigate("Temperature")
end

def clickWeight()
navigate("Weight")
end

def clickAppointments()
navigate("Appointments")
end

def clickMedications()
navigate("Medications")
end

def clickPreventiveServices()
navigate("PreventiveServices")
end

def clickOther()
waitForPageToFinishLoading
navigate("Other")
end

def clickMyProfile()
navigate("MyProfile")
end

def clickImagesDocuments()
navigate("ImagesDocuments")
end

def clickAll()
waitForPageToFinishLoading
navigate("All")
end

def clickMedical()
waitForPageToFinishLoading
navigate("Medical")
end

def clickMilitary()
waitForPageToFinishLoading
navigate("Military")
end

def clickIMGOther()
waitForPageToFinishLoading
navigate("IMGOther")
end

#SHEERI DID IT!!!

def getParentNav(nav)
return NAV[nav]["dependsOn"]
end

def getAllSectionNav(feature)
sections = Array.new()

NAV.each { | key, value |
if(value["dependsOn"] == feature)
sections.push(key)
end
}

return sections
end

def getAllFeatureNav()
features = Array.new()

NAV.each { | key, value |
if(value["dependsOn"] == "NavMenu")
features.push(key)
end
}

return features
end

def getTextForButton(nav)
return getTextForElement(:css, NAV[nav]["navButton"] )
end

#Use this function if it the buttons are on either under App Options or under all other sub-groups
def isNavVisible(nav)
begin
element = @driver.find_element(:css, NAV[nav]["navButton"])
return element.displayed?
rescue Exception=>e
return false
end
end

def navigate(nav)

clickChain = [];
clickChain.push(nav)

while NAV[clickChain[0]]["dependsOn"] != nil

if(isNavVisible(clickChain[0]))
break;
end
clickChain.unshift(NAV[clickChain[0]]["dependsOn"])
end

if(clickChain[0] == "NavMenu")
puts "Opening Nav Button"
if(getNavMenuHeading() != "App Options")
puts "Clicking Nav Button"
@main.clickNavMenu()
waitForPageToFinishLoading
end
#!45.times{ break if (getNavMenuHeading() == "App Options"); sleep 0.2 }
clickChain.delete("NavMenu")
end

#for i in 0..clickChain.length - 1
#!45.times { break if (isNavVisible(clickChain[i])); sleep 0.2 }
#waitForPageToFinishLoading
# click(:css, NAV[clickChain[i]]["navButton"]);
# #@driver.find_element(:xpath, "//button[@alt-text='Navigation Menu']").click
# waitForPageToFinishLoading
#end

end

def getNthSubFeatureName(number)
return getTextForElement(:css, "div.secondary-content div:nth-of-type(2) ul li:nth-of-type(" + number.to_s + ") ")
end

def getSubFeatureCount()
return getElements(:css, "div.secondary-content div:nth-of-type(2) ul li").length
end

def getNoMenuItemsMessage()
return getTextForElement(:css, "div.no-results-message")
end

end















































############################################################################ ORIGINAL CODE ################################################################
###########################################################################################################################################################
=begin


require 'rubygems'
require 'selenium-webdriver'

require_relative "../module/DriverUtility"
require_relative "main"


class Nav_menu
include DriverUtility
MILITARY_OCCUPATIONAL_HISTORY_BTN = ".btn.btn-default.military-occupational-history"
NAV_ORDER = ["Home","MyProfile", "MyStory", "MyMedical", "PersonalTrackers", "MyReminders", "Notifications", "Contacts", "Assessments", "Images and Documents", "Health Report"]

NAV = {
"NavMenu" => {
"reference" => "use main.rb"
},
"PersonalTrackers" => {
"dependsOn" => "NavMenu",
"navButton" => "#PersonalTrackers"
},
"BloodPressureandPulse" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.blood-pressure-and-pulse"
},
"DailyEvents" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.daily-events"
},
"Diet" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.diet"
},
"Exercise" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.exercise"
},
"Glucose" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.glucose-self-tested"
},
"Lipids" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.cholesterol-lipid"
},
"Height" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.height"
},
"Mood" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.mood"
},
"Pain" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.pain"
},
"Respiration" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.respiration"
},
"Sleep" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.sleep"
},
"Stress" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.stress"
},
"Temperature" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.temperature"
},
"Weight" => {
"dependsOn" => "PersonalTrackers",
"navButton" => "button.weight"
},
#MyMedical dependencies
"MyMedical" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyMedical"
},
"Diagnoses" => {
"dependsOn" => "MyMedical",
"navButton" => "button.diagnoses"
},
"Surgeries" => {
"dependsOn" => "MyMedical",
"navButton" => "button.surgeries"
},
"MMedications" => {
"dependsOn" => "MyMedical",
"navButton" => "button.medications"
},
"Allergies" => {
"dependsOn" => "MyMedical",
"navButton" => "button.allergies"
},
"Hospitalizations" => {
"dependsOn" => "MyMedical",
"navButton" => "button.hospitalizations"
},
"PregnancyHistory" => {
"dependsOn" => "MyMedical",
"navButton" => "button.pregnancy-history"
},
"FamilyHistory" => {
"dependsOn" => "MyMedical",
"navButton" => "button.family-history"
},
"SymptomDiary" => {
"dependsOn" => "MyMedical",
"navButton" => "button.symptom-diary"
},
"PlanYourAppointment" => {
"dependsOn" => "MyMedical",
"navButton" => "button.plan-your-appointment"
},
#Contacts dependencies- JRNL-2492
"Contacts" => {
"dependsOn" => "NavMenu",
"navButton" => "#Contacts"
},
"ProviderContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.provider-contacts"
},
"FacilityContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.facility-contacts"
},
"HealthCareContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.healthcare-contacts"
},
"InsuranceContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.insurance-contacts"
},
"PersonalContacts" => {
"dependsOn" => "Contacts",
"navButton" => "button.personal-contacts"
},
"CommunicationsLog" => {
"dependsOn" => "Contacts",
"navButton" => "button.communications-log"
},
#MyStory dependencies
"MyStory" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyStory"
},
"Summary" => {
"dependsOn" => "MyStory",
"navButton" => "button.summary"
},
"PersonalValues" => {
"dependsOn" => "MyStory",
"navButton" => "button.personal-values"
},
"Assessment" => {
"dependsOn" => "MyStory",
"navButton" => "button.assessment"
},
"Reflections" => {
"dependsOn" => "MyStory",
"navButton" => "button.reflections"
},
"Learn" => {
"dependsOn" => "MyStory",
"navButton" => "button.learn"
},
"Goals" => {
"dependsOn" => "MyStory",
"navButton" => "button.goals"
},
#MyReminders dependencies
"MyReminders" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyReminders"
},
"Appointments" => {
"dependsOn" => "MyReminders",
"navButton" => "button.appointments"
},
"Medications" => {
"dependsOn" => "MyReminders",
"navButton" => "button.medications"
},
"PreventiveServices" => {
"dependsOn" => "MyReminders",
"navButton" => "button.preventive-services"
},
"Other" => {
"dependsOn" => "MyReminders",
"navButton" => "button.other"
},
"Notifications" => {
"dependsOn" => "NavMenu",
"navButton" => "#Notifications"
},
"AllNotifications" => {
"dependsOn" => "Notifications",
"navButton" => "button.all-notifications"
},
"MyVAHealthApp" => {
"dependsOn" => "Notifications",
"navButton" => "button.my-va-health-app-notices"
},
"VAHealthMessages" => {
"dependsOn" => "Notifications",
"navButton" => "button.va-health-messages"
},
"Assessments" => {
"dependsOn" => "NavMenu",
"navButton" => "#Assessments"
},
"Home" => {
"dependsOn" => "NavMenu",
"navButton" => "#Home"
},
#MyProfile dependencies
"MyProfile" => {
"dependsOn" => "NavMenu",
"navButton" => "#MyProfile"
},
"MyContactInformation" => {
"dependsOn" => "MyProfile",
"navButton" => "button.my-contact-information"
},
"OccupationalHistory" => {
"dependsOn" => "MyProfile",
"navButton" => "button.military-occupational-history"
},
"ImagesDocuments" => {
"dependsOn" => "NavMenu",
"navButton" => "#ImagesandDocuments"
},
"All" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.all"
},
"Medical" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.medical"
},
"Military" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.military"
},
"IMGOther" => {
"dependsOn" => "ImagesDocuments",
"navButton" => "button.other"
},
"HealthReport" => {
"dependsOn" => "NavMenu",
"navButton" => "#HealthReport"
},

}


def initialize(driver)
@driver = driver
@main = Main.new(driver)
end

def getNavMenuHeading()
navMenuHeading = getTextForElement(:css, "div[snap-drawer='left'] div h2:nth-of-type(2)")
return navMenuHeading
end

def getMyStoryButtonText
return getTextForElement(:css, NAV["MyStory"]["navButton"])
end

def getCommunicationLogButtonText
return getTextForElement(:css, NAV["CommunicationsLog"]["navButton"] )
end

def getContactsButtonText
return getTextForElement(:css, NAV["Contacts"]["navButton"] )
end

def getAssessmentButtonText
return getTextForElement(:css, NAV["Assessments"]["navButton"] )
end

def getFamilyHistoryButtonText
return getTextForElement(:css, NAV["FamilyHistory"]["navButton"] )
end

def getImagesDocumentsButtonText
return getTextForElement(:css, NAV["ImagesDocuments"]["navButton"] )
end

def getNthOptionName(number)
getTextForElement(:css, "ul.panel-menulist li:nth-child(" + number.to_s + ") button")
end

def isDailyEventsButtonVisible()
return isNavVisible("DailyEvents")
end

def isCommunicationLogButtonVisible()
return isNavVisible("CommunicationsLog")
end

def isAssessmentButtonVisible()
return isNavVisible("Assessments")
end

def isMoodButtonVisible()
return isNavVisible("Mood")
end

def isDietButtonVisible()
return isNavVisible("Diet")
end

def isNotificationsButtonVisible()
return isNavVisible("Notifications")
end

def isMyMedicalButtonVisible()
getTextForElement(:css, "ul.panel-menulist li:nth-child(4) button ")
end

def isFamilyHistoryButtonVisible()
return isNavVisible("FamilyHistory")
end

def isImagesDocumentButtonVisible()
return isNavVisible("ImagesDocuments")
end

def isAllButtonVisible()
return isNavVisible("All")
end

def isMedicalButtonVisible()
return isNavVisible("Medical")
end

def isMilitaryButtonVisible()
return isNavVisible("Military")
end

def isIMGOtherButtonVisible()
return isNavVisible("IMGOther")
end


#JRNL-2492
def isContactsButtonVisible()
return isNavVisible("Contacts")
end

def isMyStoryButtonVisible()
return isNavVisible("MyStory")
end

def isThisNavButtonVisible(number)
return getTextForElement(:css, "ul.panel-menulist li:nth-child(" + number.to_s + ") button")
end

def clickMilitaryOccupationalHistory()
waitForPageToFinishLoading
click(:css, MILITARY_OCCUPATIONAL_HISTORY_BTN)
end

def clickAssessmentBtn
navigate("Assessments")
end

def clickNotifications()
waitForPageToFinishLoading
navigate("Notifications")
end

def clickAllNotifications()
navigate("AllNotifications")
end

def clickMyVAHealthApp()
navigate("MyVAHealthApp")
end

def clickVAHealthMessages()
navigate("VAHealthMessages")
end

def clickReminders()
waitForPageToFinishLoading
navigate("MyReminders")
end

def clickMyMedical()
navigate("MyMedical")
end

#JRNL-2492
def clickContacts()
waitForPageToFinishLoading
navigate("Contacts")
end

def clickHealthCareContacts()
navigate("HealthCareContacts")
end

def clickInsuranceContacts()
navigate("InsuranceContacts")
end

def clickPersonalContacts()
navigate("PersonalContacts")
end

def clickCommunicationsLog()
navigate("CommunicationsLog")
end

def clickMyStory()
waitForPageToFinishLoading
navigate("MyStory")
end

def clickHome()
navigate("Home")
end

def clickSummary()
navigate("Summary")
end

def clickHealthReport()
waitForPageToFinishLoading
navigate("HealthReport")
end

def clickPersonalValues()
navigate("PersonalValues")
end

def clickAssessment()
navigate("Assessment")
end

def clickReflections()
navigate("Reflections")
end

def clickLearn()
navigate("Learn")
end

def clickGoals()
navigate("Goals")
end

def clickDiagnoses()
navigate("Diagnoses")
end

def clickSurgeries()
navigate("Surgeries")
end

def clickHospitalizations()
navigate("Hospitalizations")
end

def clickPregnancyHistory()
navigate("PregnancyHistory")
end

def clickFamilyHistory()
navigate("FamilyHistory")
end

#Personal Trackers
def clickPersonalTrackers()
navigate("PersonalTrackers")
end

def clickSleep()
navigate("Sleep")
end

def clickBPAndPulse()
navigate("BloodPressureandPulse")
end

def clickDailyEvents()
waitForPageToFinishLoading
navigate("DailyEvents")
end

def clickDiet()
navigate("Diet")
end

def clickExercise()
navigate("Exercise")
end

def clickGlucose()
navigate("Glucose")
end

def clickHeight()
navigate("Height")
end

def clickMood()
navigate("Mood")
end

def clickPain()
navigate("Pain")
end

def clickRespiration()
navigate("Respiration")
end

def clickTemperature()
navigate("Temperature")
end

def clickWeight()
navigate("Weight")
end

def clickAppointments()
navigate("Appointments")
end

def clickMedications()
navigate("Medications")
end

def clickPreventiveServices()
navigate("PreventiveServices")
end

def clickOther()
waitForPageToFinishLoading
navigate("Other")
end

def clickMyProfile()
navigate("MyProfile")
end

def clickImagesDocuments()
navigate("ImagesDocuments")
end

def clickAll()
waitForPageToFinishLoading
navigate("All")
end

def clickMedical()
waitForPageToFinishLoading
navigate("Medical")
end

def clickMilitary()
waitForPageToFinishLoading
navigate("Military")
end

def clickIMGOther()
waitForPageToFinishLoading
navigate("IMGOther")
end

#SHEERI DID IT!!!

def getParentNav(nav)
return NAV[nav]["dependsOn"]
end

def getAllSectionNav(feature)
sections = Array.new()

NAV.each { | key, value |
if(value["dependsOn"] == feature)
sections.push(key)
end
}

return sections
end

def getAllFeatureNav()
features = Array.new()

NAV.each { | key, value |
if(value["dependsOn"] == "NavMenu")
features.push(key)
end
}

return features
end

def getTextForButton(nav)
return getTextForElement(:css, NAV[nav]["navButton"] )
end

#Use this function if it the buttons are on either under App Options or under all other sub-groups
def isNavVisible(nav)
begin
element = @driver.find_element(:css, NAV[nav]["navButton"])
return element.displayed?
rescue Exception=>e
return false
end
end

def navigate(nav)

clickChain = [];
clickChain.push(nav)

while NAV[clickChain[0]]["dependsOn"] != nil

if(isNavVisible(clickChain[0]))
break;
end
clickChain.unshift(NAV[clickChain[0]]["dependsOn"])
end

if(clickChain[0] == "NavMenu")
puts "Opening Nav Button"
if(getNavMenuHeading() != "App Options")
puts "Clicking Nav Button"
@main.clickNavMenu()
end
!45.times{ break if (getNavMenuHeading() == "App Options"); sleep 0.2 }
clickChain.delete("NavMenu")
end

for i in 0..clickChain.length - 1
!45.times { break if (isNavVisible(clickChain[i])); sleep 0.2 }
waitForPageToFinishLoading
click(:css, NAV[clickChain[i]]["navButton"]);
end

end

def getNthSubFeatureName(number)
return getTextForElement(:css, "div.secondary-content div:nth-of-type(2) ul li:nth-of-type(" + number.to_s + ") ")
end

def getSubFeatureCount()
return getElements(:css, "div.secondary-content div:nth-of-type(2) ul li").length
end

def getNoMenuItemsMessage()
return getTextForElement(:css, "div.no-results-message")
end

end
=end