Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // FinishCheckInPage.swift
- // HHonorsUITests
- //
- // Created by Olena Ratelle on 6/18/19.
- // Copyright © 2019 Hilton. All rights reserved.
- //
- import Foundation
- import XCTest
- @testable import HiltonTestingLibrary
- class FinishCheckInPage: FinishCheckInPageProtocol {
- var okButtonPredicate = NSPredicate(format: "label contains 'OK'")
- var roomDescriptionTxtPredicate = NSPredicate(format: "label contains 'Room 609, Non smoking, 2 DOUBLE BEDS'")
- var subjectToChangeTxtPredicate = NSPredicate(format: "label contains 'Room number subject to change.'")
- var arrivalTimeTxtPredicate = NSPredicate(format: "label contains 'Arrival Time'")
- var ccDisclaimerPredicate = NSPredicate(format: "label contains 'We authorize your card when you get to the hotel.'")
- var disabilityAssistanceTxtPredicate = NSPredicate(format: "label contains 'Disability assistance needed'")
- var disabilityDisaclaimerPredicate = NSPredicate(format: "label contains 'In the event of an emergency, I or someone in my party requires special evacuation assistance by emergency response personnel due to a disability.'")
- var eliteHHonorsMessageTxtPredicate = NSPredicate(format: "label contains 'do our best to upgrade you when you arrive.'")
- // Navigation Bar
- var navBar: XCUIElement {return app.navigationBars["Finish check-in"]}
- //Buttons
- var backButton: XCUIElement {return app.buttons["Back"]}
- var cancelButton: XCUIElement {return app.buttons["Cancel"]}
- var changeButton: XCUIElement {return app.otherElements.buttons.element(boundBy: 2)}
- var completeCheckIn: XCUIElement { return app.buttons["COMPLETE CHECK-IN"]}
- var checkInForUpgrade: XCUIElement { return app.buttons["CHECK IN FOR UPGRADE"]}
- var checkInTermsButton: XCUIElement { return app.buttons["UIA_CheckInTermsButton"]}
- var ccFieldButton: XCUIElement { return app.otherElements.buttons.element(boundBy: 5)}
- var okButton: XCUIElement {return app.otherElements.buttons["OK"]}
- //Static Text
- var okButtonTxt: XCUIElement { return app.staticTexts.matching(okButtonPredicate).firstMatch}
- var roomDescriptionTxt: XCUIElement { return app.staticTexts.matching(roomDescriptionTxtPredicate).firstMatch}
- var roomNmuberTxt: XCUIElement {return app.staticTexts["UIA_RoomNameLabel"]}
- var roomTypeTxt: XCUIElement { return app.staticTexts["UIA_RoomDescriptionLabel"]}
- var subjectToChangeTxt: XCUIElement { return app.staticTexts.matching(subjectToChangeTxtPredicate).firstMatch}
- var arrivalTimeTxt: XCUIElement { return app.staticTexts.matching(subjectToChangeTxtPredicate).firstMatch}
- var ccDisclaimer: XCUIElement { return app.buttons.matching(ccDisclaimerPredicate).firstMatch}
- var disabilityAssistanceTxt: XCUIElement { return app.staticTexts.matching(disabilityAssistanceTxtPredicate).firstMatch}
- var disabilityDisaclaimer: XCUIElement { return app.staticTexts.matching(disabilityDisaclaimerPredicate).firstMatch}
- var eliteHHonorsMessageTxt: XCUIElement { return app.staticTexts.matching(eliteHHonorsMessageTxtPredicate).firstMatch}
- var upsellChargeTxt: XCUIElement { return app.staticTexts["UIA_UpsellChargeLabel"]}
- var upsellTaxesTxt: XCUIElement { return app.staticTexts["UIA_UpsellTaxesLabel"]}
- //Images
- var nonSmokingImage: XCUIElement {return app.images["UIA_NonSmokingIcon"]}
- var arrivalTimeImage: XCUIElement {return app.images["icon_arrival_time"]}
- var upsellImage: XCUIElement { return app.images["UIA_UpsellIcon"]}
- //Links
- var privacyLink: XCUIElement {return app.textViews.links["privacy"].firstMatch}
- //Switches
- var disabilityToggle: XCUIElement {return app.switches.element(boundBy: 0)}
- //--------------------------------------
- // MARK: - UI Functions
- //--------------------------------------
- func isShowing() -> Bool {
- sleep(2)
- return navBarDisplayed()
- && backBtnHittable()
- && cancelBtnHittable()
- // && okButtonLabelDisplayed()
- && nonSmokingImageDisplayed()
- && subjectToChangeTxtDisplayed()
- && disabilityAssistanceTxtDisplayed()
- && disabilityDisclaimerDisplayed()
- }
- func navBarDisplayed() -> Bool {
- return navBar.visible
- }
- func backBtnHittable() -> Bool {
- return backButton.isHittable
- }
- func cancelBtnHittable() -> Bool {
- return cancelButton.isHittable
- }
- func okButtonHittable() -> Bool {
- return okButton.isHittable
- }
- func okButtonLabelDisplayed() -> Bool {
- return okButtonTxt.visible
- }
- func roomDescriptionLabelDisplayed() -> Bool {
- return roomDescriptionTxt.visible
- }
- func roomNmuberLabel() -> String {
- return roomNmuberTxt.label
- }
- func roomTypeLabel() -> String {
- return roomTypeTxt.label
- }
- func nonSmokingImageDisplayed() -> Bool {
- return nonSmokingImage.visible
- }
- func upsellImageDisplayed() -> Bool {
- return upsellImage.visible
- }
- func subjectToChangeTxtDisplayed() -> Bool {
- return subjectToChangeTxt.visible
- }
- func upsellChargeLabel() -> String {
- return upsellChargeTxt.label
- }
- func upsellTaxesLabel() -> String {
- return upsellTaxesTxt.label
- }
- func arrivalTimeImageDisplayed() -> Bool {
- return arrivalTimeImage.isOnScreen
- }
- func arrivalTimeTxtDisplayed() -> Bool {
- return arrivalTimeTxt.visible
- }
- func ccDisclaimerDisplayed() -> Bool {
- return ccDisclaimer.exists
- }
- func disabilityAssistanceTxtDisplayed() -> Bool {
- return disabilityAssistanceTxt.visible
- }
- func disabilityDisclaimerDisplayed() -> Bool {
- return disabilityDisaclaimer.visible
- }
- func privacyLinkVisiable() -> Bool {
- return privacyLink.isHittable
- }
- func completeCheckInHittable() -> Bool {
- return completeCheckIn.isHittable
- }
- func checkInForUpgradeHittable() -> Bool {
- return checkInForUpgrade.isHittable
- }
- func changeBtnDisplayed() -> Bool {
- return changeButton.visible
- && changeButton.isHittable
- }
- func eliteHHonorsMessageTxttDisplayed() -> Bool {
- return eliteHHonorsMessageTxt.visible
- }
- func disabilityToggleEnabled() -> Bool {
- return disabilityToggle.isEnabled
- }
- //--------------------------------------
- // MARK: - UI Navigation Functions
- //--------------------------------------
- func tapOkBtn() -> FinishCheckInPageProtocol {
- if okButtonLabelDisplayed(){
- okButton.tap()
- }
- return FinishCheckInPage()
- }
- func tapCheckInTermsButton() {
- checkInTermsButton.tap()
- }
- func tapCompleteCheckInBtn() -> DigitalKeyWelcomePageProtocol {
- if completeCheckInHittable(){
- completeCheckIn.tap()
- }
- return DigitalKeyWelcomePage()
- }
- func tapCheckInForUpgradeBtn() -> DigitalKeyWelcomePageProtocol {
- if checkInForUpgradeHittable(){
- checkInForUpgrade.tap()
- }
- return DigitalKeyWelcomePage()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement