Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.16 KB | None | 0 0
  1. //
  2. // FinishCheckInPage.swift
  3. // HHonorsUITests
  4. //
  5. // Created by Olena Ratelle on 6/18/19.
  6. // Copyright © 2019 Hilton. All rights reserved.
  7. //
  8.  
  9.  
  10. import Foundation
  11. import XCTest
  12. @testable import HiltonTestingLibrary
  13.  
  14. class FinishCheckInPage: FinishCheckInPageProtocol {
  15.  
  16.  
  17. var okButtonPredicate = NSPredicate(format: "label contains 'OK'")
  18. var roomDescriptionTxtPredicate = NSPredicate(format: "label contains 'Room 609, Non smoking, 2 DOUBLE BEDS'")
  19. var subjectToChangeTxtPredicate = NSPredicate(format: "label contains 'Room number subject to change.'")
  20. var arrivalTimeTxtPredicate = NSPredicate(format: "label contains 'Arrival Time'")
  21. var ccDisclaimerPredicate = NSPredicate(format: "label contains 'We authorize your card when you get to the hotel.'")
  22. var disabilityAssistanceTxtPredicate = NSPredicate(format: "label contains 'Disability assistance needed'")
  23. 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.'")
  24. var eliteHHonorsMessageTxtPredicate = NSPredicate(format: "label contains 'do our best to upgrade you when you arrive.'")
  25.  
  26. // Navigation Bar
  27. var navBar: XCUIElement {return app.navigationBars["Finish check-in"]}
  28.  
  29. //Buttons
  30. var backButton: XCUIElement {return app.buttons["Back"]}
  31. var cancelButton: XCUIElement {return app.buttons["Cancel"]}
  32. var changeButton: XCUIElement {return app.otherElements.buttons.element(boundBy: 2)}
  33. var completeCheckIn: XCUIElement { return app.buttons["COMPLETE CHECK-IN"]}
  34. var checkInForUpgrade: XCUIElement { return app.buttons["CHECK IN FOR UPGRADE"]}
  35. var checkInTermsButton: XCUIElement { return app.buttons["UIA_CheckInTermsButton"]}
  36. var ccFieldButton: XCUIElement { return app.otherElements.buttons.element(boundBy: 5)}
  37.  
  38. var okButton: XCUIElement {return app.otherElements.buttons["OK"]}
  39.  
  40.  
  41. //Static Text
  42. var okButtonTxt: XCUIElement { return app.staticTexts.matching(okButtonPredicate).firstMatch}
  43. var roomDescriptionTxt: XCUIElement { return app.staticTexts.matching(roomDescriptionTxtPredicate).firstMatch}
  44. var roomNmuberTxt: XCUIElement {return app.staticTexts["UIA_RoomNameLabel"]}
  45. var roomTypeTxt: XCUIElement { return app.staticTexts["UIA_RoomDescriptionLabel"]}
  46. var subjectToChangeTxt: XCUIElement { return app.staticTexts.matching(subjectToChangeTxtPredicate).firstMatch}
  47. var arrivalTimeTxt: XCUIElement { return app.staticTexts.matching(subjectToChangeTxtPredicate).firstMatch}
  48. var ccDisclaimer: XCUIElement { return app.buttons.matching(ccDisclaimerPredicate).firstMatch}
  49. var disabilityAssistanceTxt: XCUIElement { return app.staticTexts.matching(disabilityAssistanceTxtPredicate).firstMatch}
  50. var disabilityDisaclaimer: XCUIElement { return app.staticTexts.matching(disabilityDisaclaimerPredicate).firstMatch}
  51. var eliteHHonorsMessageTxt: XCUIElement { return app.staticTexts.matching(eliteHHonorsMessageTxtPredicate).firstMatch}
  52. var upsellChargeTxt: XCUIElement { return app.staticTexts["UIA_UpsellChargeLabel"]}
  53. var upsellTaxesTxt: XCUIElement { return app.staticTexts["UIA_UpsellTaxesLabel"]}
  54.  
  55. //Images
  56. var nonSmokingImage: XCUIElement {return app.images["UIA_NonSmokingIcon"]}
  57. var arrivalTimeImage: XCUIElement {return app.images["icon_arrival_time"]}
  58. var upsellImage: XCUIElement { return app.images["UIA_UpsellIcon"]}
  59.  
  60. //Links
  61. var privacyLink: XCUIElement {return app.textViews.links["privacy"].firstMatch}
  62.  
  63. //Switches
  64. var disabilityToggle: XCUIElement {return app.switches.element(boundBy: 0)}
  65.  
  66. //--------------------------------------
  67. // MARK: - UI Functions
  68. //--------------------------------------
  69. func isShowing() -> Bool {
  70. sleep(2)
  71. return navBarDisplayed()
  72. && backBtnHittable()
  73. && cancelBtnHittable()
  74. // && okButtonLabelDisplayed()
  75. && nonSmokingImageDisplayed()
  76. && subjectToChangeTxtDisplayed()
  77. && disabilityAssistanceTxtDisplayed()
  78. && disabilityDisclaimerDisplayed()
  79.  
  80. }
  81.  
  82. func navBarDisplayed() -> Bool {
  83. return navBar.visible
  84. }
  85.  
  86. func backBtnHittable() -> Bool {
  87. return backButton.isHittable
  88. }
  89.  
  90. func cancelBtnHittable() -> Bool {
  91. return cancelButton.isHittable
  92. }
  93.  
  94. func okButtonHittable() -> Bool {
  95. return okButton.isHittable
  96. }
  97.  
  98. func okButtonLabelDisplayed() -> Bool {
  99. return okButtonTxt.visible
  100. }
  101.  
  102. func roomDescriptionLabelDisplayed() -> Bool {
  103. return roomDescriptionTxt.visible
  104. }
  105.  
  106. func roomNmuberLabel() -> String {
  107. return roomNmuberTxt.label
  108. }
  109.  
  110. func roomTypeLabel() -> String {
  111. return roomTypeTxt.label
  112. }
  113.  
  114. func nonSmokingImageDisplayed() -> Bool {
  115. return nonSmokingImage.visible
  116. }
  117.  
  118. func upsellImageDisplayed() -> Bool {
  119. return upsellImage.visible
  120. }
  121.  
  122. func subjectToChangeTxtDisplayed() -> Bool {
  123. return subjectToChangeTxt.visible
  124. }
  125.  
  126. func upsellChargeLabel() -> String {
  127. return upsellChargeTxt.label
  128. }
  129.  
  130. func upsellTaxesLabel() -> String {
  131. return upsellTaxesTxt.label
  132. }
  133.  
  134. func arrivalTimeImageDisplayed() -> Bool {
  135. return arrivalTimeImage.isOnScreen
  136. }
  137.  
  138. func arrivalTimeTxtDisplayed() -> Bool {
  139. return arrivalTimeTxt.visible
  140. }
  141.  
  142. func ccDisclaimerDisplayed() -> Bool {
  143. return ccDisclaimer.exists
  144. }
  145.  
  146. func disabilityAssistanceTxtDisplayed() -> Bool {
  147. return disabilityAssistanceTxt.visible
  148. }
  149.  
  150. func disabilityDisclaimerDisplayed() -> Bool {
  151. return disabilityDisaclaimer.visible
  152. }
  153.  
  154. func privacyLinkVisiable() -> Bool {
  155. return privacyLink.isHittable
  156. }
  157.  
  158.  
  159. func completeCheckInHittable() -> Bool {
  160. return completeCheckIn.isHittable
  161. }
  162.  
  163. func checkInForUpgradeHittable() -> Bool {
  164. return checkInForUpgrade.isHittable
  165. }
  166. func changeBtnDisplayed() -> Bool {
  167. return changeButton.visible
  168. && changeButton.isHittable
  169. }
  170.  
  171. func eliteHHonorsMessageTxttDisplayed() -> Bool {
  172. return eliteHHonorsMessageTxt.visible
  173. }
  174.  
  175. func disabilityToggleEnabled() -> Bool {
  176. return disabilityToggle.isEnabled
  177. }
  178.  
  179.  
  180. //--------------------------------------
  181. // MARK: - UI Navigation Functions
  182. //--------------------------------------
  183.  
  184. func tapOkBtn() -> FinishCheckInPageProtocol {
  185. if okButtonLabelDisplayed(){
  186. okButton.tap()
  187. }
  188. return FinishCheckInPage()
  189. }
  190.  
  191. func tapCheckInTermsButton() {
  192. checkInTermsButton.tap()
  193. }
  194.  
  195. func tapCompleteCheckInBtn() -> DigitalKeyWelcomePageProtocol {
  196. if completeCheckInHittable(){
  197. completeCheckIn.tap()
  198. }
  199. return DigitalKeyWelcomePage()
  200. }
  201.  
  202. func tapCheckInForUpgradeBtn() -> DigitalKeyWelcomePageProtocol {
  203. if checkInForUpgradeHittable(){
  204. checkInForUpgrade.tap()
  205. }
  206. return DigitalKeyWelcomePage()
  207. }
  208.  
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement