@sap_oss/wdio-qmate-service 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (625) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.yml +33 -0
  3. package/.reuse/dep5 +29 -0
  4. package/LICENSE +201 -0
  5. package/LICENSES/Apache-2.0.txt +73 -0
  6. package/README.md +20 -0
  7. package/docs/contact.md +10 -0
  8. package/docs/doc.md +5188 -0
  9. package/docs/gettingStarted/selectors.md +168 -0
  10. package/docs/gettingStarted/setup.md +8 -0
  11. package/docs/index.md +14 -0
  12. package/docs/style/custom.css +24 -0
  13. package/lib/index.d.ts +1 -0
  14. package/lib/index.js +171 -0
  15. package/lib/index.js.map +1 -0
  16. package/lib/reuse/authenticator/authConfig.d.ts +54 -0
  17. package/lib/reuse/authenticator/authConfig.js +55 -0
  18. package/lib/reuse/authenticator/authConfig.js.map +1 -0
  19. package/lib/reuse/authenticator/authHandler.d.ts +6 -0
  20. package/lib/reuse/authenticator/authHandler.js +37 -0
  21. package/lib/reuse/authenticator/authHandler.js.map +1 -0
  22. package/lib/reuse/authenticator/basicUrlAuthenticator.d.ts +2 -0
  23. package/lib/reuse/authenticator/basicUrlAuthenticator.js +36 -0
  24. package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -0
  25. package/lib/reuse/authenticator/customAuthenticator.d.ts +2 -0
  26. package/lib/reuse/authenticator/customAuthenticator.js +60 -0
  27. package/lib/reuse/authenticator/customAuthenticator.js.map +1 -0
  28. package/lib/reuse/authenticator/formAuthenticator.d.ts +2 -0
  29. package/lib/reuse/authenticator/formAuthenticator.js +57 -0
  30. package/lib/reuse/authenticator/formAuthenticator.js.map +1 -0
  31. package/lib/reuse/authenticator/plainAuthenticator.d.ts +2 -0
  32. package/lib/reuse/authenticator/plainAuthenticator.js +20 -0
  33. package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -0
  34. package/lib/reuse/data/authenticators.json +16 -0
  35. package/lib/reuse/helper/clientsideUI5scripts.d.ts +1 -0
  36. package/lib/reuse/helper/clientsideUI5scripts.js +388 -0
  37. package/lib/reuse/helper/clientsideUI5scripts.js.map +1 -0
  38. package/lib/reuse/helper/jsDocGen.d.ts +1 -0
  39. package/lib/reuse/helper/jsDocGen.js +45 -0
  40. package/lib/reuse/helper/jsDocGen.js.map +1 -0
  41. package/lib/reuse/index.d.ts +5 -0
  42. package/lib/reuse/index.js +89 -0
  43. package/lib/reuse/index.js.map +1 -0
  44. package/lib/reuse/modules/common/Common.d.ts +12 -0
  45. package/lib/reuse/modules/common/Common.js +21 -0
  46. package/lib/reuse/modules/common/Common.js.map +1 -0
  47. package/lib/reuse/modules/common/assertion.d.ts +65 -0
  48. package/lib/reuse/modules/common/assertion.js +91 -0
  49. package/lib/reuse/modules/common/assertion.js.map +1 -0
  50. package/lib/reuse/modules/common/constants/date.constants.d.ts +8 -0
  51. package/lib/reuse/modules/common/constants/date.constants.js +13 -0
  52. package/lib/reuse/modules/common/constants/date.constants.js.map +1 -0
  53. package/lib/reuse/modules/common/constants/userInteraction.constants.d.ts +9 -0
  54. package/lib/reuse/modules/common/constants/userInteraction.constants.js +14 -0
  55. package/lib/reuse/modules/common/constants/userInteraction.constants.js.map +1 -0
  56. package/lib/reuse/modules/common/date.d.ts +84 -0
  57. package/lib/reuse/modules/common/date.js +164 -0
  58. package/lib/reuse/modules/common/date.js.map +1 -0
  59. package/lib/reuse/modules/common/navigation.d.ts +26 -0
  60. package/lib/reuse/modules/common/navigation.js +56 -0
  61. package/lib/reuse/modules/common/navigation.js.map +1 -0
  62. package/lib/reuse/modules/common/types/date.types.d.ts +2 -0
  63. package/lib/reuse/modules/common/types/date.types.js +3 -0
  64. package/lib/reuse/modules/common/types/date.types.js.map +1 -0
  65. package/lib/reuse/modules/common/userInteraction.d.ts +104 -0
  66. package/lib/reuse/modules/common/userInteraction.js +199 -0
  67. package/lib/reuse/modules/common/userInteraction.js.map +1 -0
  68. package/lib/reuse/modules/nonUi5/NonUi5.d.ts +12 -0
  69. package/lib/reuse/modules/nonUi5/NonUi5.js +21 -0
  70. package/lib/reuse/modules/nonUi5/NonUi5.js.map +1 -0
  71. package/lib/reuse/modules/nonUi5/assertion.d.ts +62 -0
  72. package/lib/reuse/modules/nonUi5/assertion.js +127 -0
  73. package/lib/reuse/modules/nonUi5/assertion.js.map +1 -0
  74. package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.d.ts +6 -0
  75. package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js +11 -0
  76. package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js.map +1 -0
  77. package/lib/reuse/modules/nonUi5/element.d.ts +286 -0
  78. package/lib/reuse/modules/nonUi5/element.js +639 -0
  79. package/lib/reuse/modules/nonUi5/element.js.map +1 -0
  80. package/lib/reuse/modules/nonUi5/navigation.d.ts +17 -0
  81. package/lib/reuse/modules/nonUi5/navigation.js +44 -0
  82. package/lib/reuse/modules/nonUi5/navigation.js.map +1 -0
  83. package/lib/reuse/modules/nonUi5/userInteraction.d.ts +170 -0
  84. package/lib/reuse/modules/nonUi5/userInteraction.js +415 -0
  85. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -0
  86. package/lib/reuse/modules/service/Service.d.ts +8 -0
  87. package/lib/reuse/modules/service/Service.js +17 -0
  88. package/lib/reuse/modules/service/Service.js.map +1 -0
  89. package/lib/reuse/modules/service/odata.d.ts +177 -0
  90. package/lib/reuse/modules/service/odata.js +347 -0
  91. package/lib/reuse/modules/service/odata.js.map +1 -0
  92. package/lib/reuse/modules/service/rest.d.ts +66 -0
  93. package/lib/reuse/modules/service/rest.js +168 -0
  94. package/lib/reuse/modules/service/rest.js.map +1 -0
  95. package/lib/reuse/modules/service/soap.d.ts +0 -0
  96. package/lib/reuse/modules/service/soap.js +2 -0
  97. package/lib/reuse/modules/service/soap.js.map +1 -0
  98. package/lib/reuse/modules/ui5/Ui5.d.ts +34 -0
  99. package/lib/reuse/modules/ui5/Ui5.js +41 -0
  100. package/lib/reuse/modules/ui5/Ui5.js.map +1 -0
  101. package/lib/reuse/modules/ui5/assertion.d.ts +183 -0
  102. package/lib/reuse/modules/ui5/assertion.js +493 -0
  103. package/lib/reuse/modules/ui5/assertion.js.map +1 -0
  104. package/lib/reuse/modules/ui5/confirmationDialog.d.ts +86 -0
  105. package/lib/reuse/modules/ui5/confirmationDialog.js +145 -0
  106. package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -0
  107. package/lib/reuse/modules/ui5/constants/mockserver.constants.d.ts +4 -0
  108. package/lib/reuse/modules/ui5/constants/mockserver.constants.js +9 -0
  109. package/lib/reuse/modules/ui5/constants/mockserver.constants.js.map +1 -0
  110. package/lib/reuse/modules/ui5/control.d.ts +84 -0
  111. package/lib/reuse/modules/ui5/control.js +132 -0
  112. package/lib/reuse/modules/ui5/control.js.map +1 -0
  113. package/lib/reuse/modules/ui5/date.d.ts +48 -0
  114. package/lib/reuse/modules/ui5/date.js +153 -0
  115. package/lib/reuse/modules/ui5/date.js.map +1 -0
  116. package/lib/reuse/modules/ui5/element.d.ts +160 -0
  117. package/lib/reuse/modules/ui5/element.js +349 -0
  118. package/lib/reuse/modules/ui5/element.js.map +1 -0
  119. package/lib/reuse/modules/ui5/errorDialog.d.ts +39 -0
  120. package/lib/reuse/modules/ui5/errorDialog.js +65 -0
  121. package/lib/reuse/modules/ui5/errorDialog.js.map +1 -0
  122. package/lib/reuse/modules/ui5/footerBar.d.ts +153 -0
  123. package/lib/reuse/modules/ui5/footerBar.js +240 -0
  124. package/lib/reuse/modules/ui5/footerBar.js.map +1 -0
  125. package/lib/reuse/modules/ui5/mockserver.d.ts +154 -0
  126. package/lib/reuse/modules/ui5/mockserver.js +665 -0
  127. package/lib/reuse/modules/ui5/mockserver.js.map +1 -0
  128. package/lib/reuse/modules/ui5/navigation.d.ts +103 -0
  129. package/lib/reuse/modules/ui5/navigation.js +275 -0
  130. package/lib/reuse/modules/ui5/navigation.js.map +1 -0
  131. package/lib/reuse/modules/ui5/navigationBar.d.ts +48 -0
  132. package/lib/reuse/modules/ui5/navigationBar.js +141 -0
  133. package/lib/reuse/modules/ui5/navigationBar.js.map +1 -0
  134. package/lib/reuse/modules/ui5/qunit.d.ts +17 -0
  135. package/lib/reuse/modules/ui5/qunit.js +52 -0
  136. package/lib/reuse/modules/ui5/qunit.js.map +1 -0
  137. package/lib/reuse/modules/ui5/session.d.ts +117 -0
  138. package/lib/reuse/modules/ui5/session.js +374 -0
  139. package/lib/reuse/modules/ui5/session.js.map +1 -0
  140. package/lib/reuse/modules/ui5/table.d.ts +61 -0
  141. package/lib/reuse/modules/ui5/table.js +188 -0
  142. package/lib/reuse/modules/ui5/table.js.map +1 -0
  143. package/lib/reuse/modules/ui5/types/mockserver.types.d.ts +2 -0
  144. package/lib/reuse/modules/ui5/types/mockserver.types.js +3 -0
  145. package/lib/reuse/modules/ui5/types/mockserver.types.js.map +1 -0
  146. package/lib/reuse/modules/ui5/userInteraction.d.ts +304 -0
  147. package/lib/reuse/modules/ui5/userInteraction.js +690 -0
  148. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -0
  149. package/lib/reuse/modules/util/Util.d.ts +22 -0
  150. package/lib/reuse/modules/util/Util.js +27 -0
  151. package/lib/reuse/modules/util/Util.js.map +1 -0
  152. package/lib/reuse/modules/util/browser.d.ts +167 -0
  153. package/lib/reuse/modules/util/browser.js +367 -0
  154. package/lib/reuse/modules/util/browser.js.map +1 -0
  155. package/lib/reuse/modules/util/console.d.ts +56 -0
  156. package/lib/reuse/modules/util/console.js +152 -0
  157. package/lib/reuse/modules/util/console.js.map +1 -0
  158. package/lib/reuse/modules/util/constants/formatter.constants.d.ts +11 -0
  159. package/lib/reuse/modules/util/constants/formatter.constants.js +16 -0
  160. package/lib/reuse/modules/util/constants/formatter.constants.js.map +1 -0
  161. package/lib/reuse/modules/util/data.d.ts +36 -0
  162. package/lib/reuse/modules/util/data.js +87 -0
  163. package/lib/reuse/modules/util/data.js.map +1 -0
  164. package/lib/reuse/modules/util/file.d.ts +55 -0
  165. package/lib/reuse/modules/util/file.js +159 -0
  166. package/lib/reuse/modules/util/file.js.map +1 -0
  167. package/lib/reuse/modules/util/formatter.d.ts +90 -0
  168. package/lib/reuse/modules/util/formatter.js +210 -0
  169. package/lib/reuse/modules/util/formatter.js.map +1 -0
  170. package/lib/reuse/modules/util/function.d.ts +48 -0
  171. package/lib/reuse/modules/util/function.js +161 -0
  172. package/lib/reuse/modules/util/function.js.map +1 -0
  173. package/lib/reuse/modules/util/system.d.ts +17 -0
  174. package/lib/reuse/modules/util/system.js +58 -0
  175. package/lib/reuse/modules/util/system.js.map +1 -0
  176. package/lib/reuse/modules/util/types/formatter.types.d.ts +2 -0
  177. package/lib/reuse/modules/util/types/formatter.types.js +3 -0
  178. package/lib/reuse/modules/util/types/formatter.types.js.map +1 -0
  179. package/lib/scripts/clientsideUI5scripts.d.ts +1 -0
  180. package/lib/scripts/clientsideUI5scripts.js +315 -0
  181. package/lib/scripts/clientsideUI5scripts.js.map +1 -0
  182. package/lib/scripts/dataExchange/dataExchange.d.ts +1 -0
  183. package/lib/scripts/dataExchange/dataExchange.js +224 -0
  184. package/lib/scripts/dataExchange/dataExchange.js.map +1 -0
  185. package/lib/scripts/dataExchange/dataExchangeUtil.d.ts +63 -0
  186. package/lib/scripts/dataExchange/dataExchangeUtil.js +211 -0
  187. package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -0
  188. package/lib/scripts/hooks/after.d.ts +8 -0
  189. package/lib/scripts/hooks/after.js +30 -0
  190. package/lib/scripts/hooks/after.js.map +1 -0
  191. package/lib/scripts/hooks/before.d.ts +8 -0
  192. package/lib/scripts/hooks/before.js +38 -0
  193. package/lib/scripts/hooks/before.js.map +1 -0
  194. package/lib/scripts/hooks/beforeSession.d.ts +8 -0
  195. package/lib/scripts/hooks/beforeSession.js +37 -0
  196. package/lib/scripts/hooks/beforeSession.js.map +1 -0
  197. package/lib/scripts/hooks/onComplete.d.ts +9 -0
  198. package/lib/scripts/hooks/onComplete.js +31 -0
  199. package/lib/scripts/hooks/onComplete.js.map +1 -0
  200. package/lib/scripts/hooks/onPrepare.d.ts +6 -0
  201. package/lib/scripts/hooks/onPrepare.js +36 -0
  202. package/lib/scripts/hooks/onPrepare.js.map +1 -0
  203. package/lib/scripts/hooks/utils/addLocatorCommands.d.ts +2 -0
  204. package/lib/scripts/hooks/utils/addLocatorCommands.js +193 -0
  205. package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -0
  206. package/lib/scripts/hooks/utils/browserLog.d.ts +2 -0
  207. package/lib/scripts/hooks/utils/browserLog.js +39 -0
  208. package/lib/scripts/hooks/utils/browserLog.js.map +1 -0
  209. package/lib/scripts/hooks/utils/dataExchangeCommands.d.ts +9 -0
  210. package/lib/scripts/hooks/utils/dataExchangeCommands.js +46 -0
  211. package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -0
  212. package/lib/scripts/hooks/utils/decryption.d.ts +13 -0
  213. package/lib/scripts/hooks/utils/decryption.js +90 -0
  214. package/lib/scripts/hooks/utils/decryption.js.map +1 -0
  215. package/lib/scripts/hooks/utils/lib.d.ts +4 -0
  216. package/lib/scripts/hooks/utils/lib.js +330 -0
  217. package/lib/scripts/hooks/utils/lib.js.map +1 -0
  218. package/lib/scripts/hooks/utils/locatorCommands.d.ts +10 -0
  219. package/lib/scripts/hooks/utils/locatorCommands.js +216 -0
  220. package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -0
  221. package/lib/scripts/locators/qmateLocator.d.ts +1 -0
  222. package/lib/scripts/locators/qmateLocator.js +1384 -0
  223. package/lib/scripts/locators/qmateLocator.js.map +1 -0
  224. package/lib/scripts/locators/uiveri5Locator.d.ts +1 -0
  225. package/lib/scripts/locators/uiveri5Locator.js +21 -0
  226. package/lib/scripts/locators/uiveri5Locator.js.map +1 -0
  227. package/mkdocs.yml +53 -0
  228. package/package.json +152 -0
  229. package/test/.eslintrc.yml +6 -0
  230. package/test/authenticator/package.json +13 -0
  231. package/test/authenticator/staticLogin/configCustom.js +22 -0
  232. package/test/authenticator/staticLogin/configCustomViaConfig.js +20 -0
  233. package/test/authenticator/staticLogin/configFiori.js +19 -0
  234. package/test/authenticator/staticLogin/configPlain.js +17 -0
  235. package/test/authenticator/staticLogin/configSapCloud.js +18 -0
  236. package/test/authenticator/staticLogin/html/custom.html +10 -0
  237. package/test/authenticator/staticLogin/html/fiori.html +10 -0
  238. package/test/authenticator/staticLogin/html/home.html +7 -0
  239. package/test/authenticator/staticLogin/html/sapCloud.html +10 -0
  240. package/test/authenticator/staticLogin/specs/custom.spec.js +6 -0
  241. package/test/authenticator/staticLogin/specs/customViaConfig.spec.js +10 -0
  242. package/test/authenticator/staticLogin/specs/fiori.spec.js +6 -0
  243. package/test/authenticator/staticLogin/specs/plain.spec.js +64 -0
  244. package/test/authenticator/staticLogin/specs/sapCloud.spec.js +6 -0
  245. package/test/authenticator/staticLogin/staticServerConfig.js +20 -0
  246. package/test/authenticator/systemLogin/configCustom.js +26 -0
  247. package/test/authenticator/systemLogin/configFiori.js +24 -0
  248. package/test/authenticator/systemLogin/configPlain.js +22 -0
  249. package/test/authenticator/systemLogin/configSapCloud.js +24 -0
  250. package/test/authenticator/systemLogin/specs/custom.spec.js +13 -0
  251. package/test/authenticator/systemLogin/specs/fiori.spec.js +12 -0
  252. package/test/authenticator/systemLogin/specs/plain.spec.js +21 -0
  253. package/test/authenticator/systemLogin/specs/sapCloud.spec.js +13 -0
  254. package/test/core/README.md +17 -0
  255. package/test/core/dataExchange/config.export.js +56 -0
  256. package/test/core/dataExchange/config.import.js +47 -0
  257. package/test/core/dataExchange/config.js +52 -0
  258. package/test/core/dataExchange/config.parallel.group.js +61 -0
  259. package/test/core/dataExchange/config.parallel.js +58 -0
  260. package/test/core/dataExchange/data/another/folder/data/anotherFolder/dummy1.txt +0 -0
  261. package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/Limit-Purchase-Order.json +29 -0
  262. package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/ServicePurchaseOrder.2Items.json +67 -0
  263. package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchaseRequisition_HI.json +31 -0
  264. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/LimitPurchaseOrder.json +29 -0
  265. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderItems.json +58 -0
  266. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderWithScheduline.json +27 -0
  267. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServiceAndMaterialPurchaseOrder.json +65 -0
  268. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder.json +39 -0
  269. package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder2Items.json +67 -0
  270. package/test/core/dataExchange/data/my/folder/data/qs9/data.json +5 -0
  271. package/test/core/dataExchange/data/my/folder/data/qs9/dummy1.txt +0 -0
  272. package/test/core/dataExchange/data/my/folder/data/qs9/dummy2.txt +0 -0
  273. package/test/core/dataExchange/data/my/folder/data/qs9/empty.json +0 -0
  274. package/test/core/dataExchange/data/my/folder/data/qs9/purchaseRequisition.json +31 -0
  275. package/test/core/dataExchange/data/my/folder/data/qs9/supplierInvoice.json +17 -0
  276. package/test/core/dataExchange/data/my/folder/data/qs9/webUser.json +6 -0
  277. package/test/core/dataExchange/data/ui/moreDataFolder/anotherUser.json +6 -0
  278. package/test/core/dataExchange/data/ui/user.json +6 -0
  279. package/test/core/dataExchange/data/ui/webUser.json +6 -0
  280. package/test/core/dataExchange/specs/export.fast.spec.js +48 -0
  281. package/test/core/dataExchange/specs/export.slow.spec.js +50 -0
  282. package/test/core/dataExchange/specs/export.spec.js +103 -0
  283. package/test/core/dataExchange/specs/import.spec.js +144 -0
  284. package/test/core/dataExchange/specs/importExport.spec.js +196 -0
  285. package/test/core/dataExchange/utils.js +160 -0
  286. package/test/core/functional/README.md +30 -0
  287. package/test/core/functional/chaining/chaining.test.js +137 -0
  288. package/test/core/functional/chaining/test.conf.js +31 -0
  289. package/test/core/functional/locators/ancestorProperties.test.js +99 -0
  290. package/test/core/functional/locators/childProperties.test.js +40 -0
  291. package/test/core/functional/locators/descendantProperties.test.js +107 -0
  292. package/test/core/functional/locators/domProperties.test.js +60 -0
  293. package/test/core/functional/locators/elementProperties.test.js +114 -0
  294. package/test/core/functional/locators/mixedProperties.test.js +170 -0
  295. package/test/core/functional/locators/parentProperties.test.js +47 -0
  296. package/test/core/functional/locators/siblingProperties.test.js +120 -0
  297. package/test/core/functional/locators/test.locator.conf.js +38 -0
  298. package/test/core/functional/locators/utils.js +6 -0
  299. package/test/core/functional/nativeBrowser/runInBrowser.test.js +111 -0
  300. package/test/core/functional/nativeBrowser/test.conf.js +31 -0
  301. package/test/core/functional/nonUi5/basic.test.js +10 -0
  302. package/test/core/functional/nonUi5/getWithDomElement.test.js +51 -0
  303. package/test/core/functional/nonUi5/getWithDomElements.test.js +141 -0
  304. package/test/core/functional/nonUi5/test.conf.js +32 -0
  305. package/test/core/functional/ui5Properties/getAggregations.test.js +102 -0
  306. package/test/core/functional/ui5Properties/getAssociations.test.js +24 -0
  307. package/test/core/functional/ui5Properties/getBindingInfos.test.js +71 -0
  308. package/test/core/functional/ui5Properties/getProperties.test.js +226 -0
  309. package/test/core/functional/ui5Properties/test.conf.js +16 -0
  310. package/test/core/functional/uiveri5/sample.test.js +61 -0
  311. package/test/core/functional/uiveri5/test.conf.js +31 -0
  312. package/test/core/package-lock.json +0 -0
  313. package/test/core/package.json +12 -0
  314. package/test/core/testIntegration/config.js +17 -0
  315. package/test/core/testIntegration/configMultiCombo.js +17 -0
  316. package/test/core/testIntegration/configTable.js +18 -0
  317. package/test/core/testIntegration/filters1.spec.js +1849 -0
  318. package/test/core/testIntegration/multicombobox.spec.js +134 -0
  319. package/test/core/testIntegration/table.spec.js +80 -0
  320. package/test/helper/configurations/base.conf.js +43 -0
  321. package/test/helper/configurations/chrome.conf.js +47 -0
  322. package/test/helper/configurations/chrome.headless.conf.js +45 -0
  323. package/test/helper/configurations/sauce.labs.conf.js +37 -0
  324. package/test/helper/configurations/sauce.labs.tunnel.conf.js +39 -0
  325. package/test/helper/sleeper.js +19 -0
  326. package/test/helper/utils.js +15 -0
  327. package/test/helper/website/buttons.html +85 -0
  328. package/test/helper/website/checkBox.html +83 -0
  329. package/test/helper/website/dragAndDropFailing.html +83 -0
  330. package/test/helper/website/dragAndDropWdioExample.html +41 -0
  331. package/test/helper/website/dropdown.html +78 -0
  332. package/test/helper/website/forms.html +82 -0
  333. package/test/helper/website/hiddenAndVisible.html +60 -0
  334. package/test/helper/website/main.css +36 -0
  335. package/test/helper/website/scrollPage.html +261 -0
  336. package/test/helper/website/style.css +52 -0
  337. package/test/helper/website/tables.html +140 -0
  338. package/test/helper/website/waitForElements.html +73 -0
  339. package/test/reuse/common/assertion/expectDefined.spec.js +11 -0
  340. package/test/reuse/common/assertion/expectEqual.spec.js +52 -0
  341. package/test/reuse/common/assertion/expectFalse.spec.js +9 -0
  342. package/test/reuse/common/assertion/expectTrue.spec.js +9 -0
  343. package/test/reuse/common/assertion/expectUndefined.spec.js +11 -0
  344. package/test/reuse/common/assertion/expectUnequal.spec.js +25 -0
  345. package/test/reuse/common/assertion/expectUrlToBe.spec.js +27 -0
  346. package/test/reuse/common/assertion/test.assertion.conf.js +59 -0
  347. package/test/reuse/common/date/calculate.spec.js +163 -0
  348. package/test/reuse/common/date/getNextMonth.spec.js +105 -0
  349. package/test/reuse/common/date/getNextYear.spec.js +72 -0
  350. package/test/reuse/common/date/getPreviousMonth.spec.js +71 -0
  351. package/test/reuse/common/date/getPreviousYear.spec.js +72 -0
  352. package/test/reuse/common/date/getSpecific.spec.js +63 -0
  353. package/test/reuse/common/date/getToday.spec.js +78 -0
  354. package/test/reuse/common/date/getTomorrow.spec.js +72 -0
  355. package/test/reuse/common/date/test.date.conf.js +19 -0
  356. package/test/reuse/common/date/utils.js +6 -0
  357. package/test/reuse/common/navigation/navigateToUrl.spec.js +28 -0
  358. package/test/reuse/common/navigation/navigateToUrlAndRetry.spec.js +27 -0
  359. package/test/reuse/common/navigation/test.navigation.conf.js +25 -0
  360. package/test/reuse/common/userInteraction/clearAndFillActive.spec.js +100 -0
  361. package/test/reuse/common/userInteraction/clearAndFillActiveAndRetry.spec.js +106 -0
  362. package/test/reuse/common/userInteraction/fillActive.spec.js +230 -0
  363. package/test/reuse/common/userInteraction/fillActiveAndRetry.spec.js +172 -0
  364. package/test/reuse/common/userInteraction/pressKey.spec.js +105 -0
  365. package/test/reuse/common/userInteraction/test.userInteraction.conf.js +53 -0
  366. package/test/reuse/nonUi5/assertion/expectAttributeToBe.spec.js +45 -0
  367. package/test/reuse/nonUi5/assertion/expectAttributeToContain.spec.js +43 -0
  368. package/test/reuse/nonUi5/assertion/expectToBeNotVisible.spec.js +37 -0
  369. package/test/reuse/nonUi5/assertion/expectToBeVisible.spec.js +63 -0
  370. package/test/reuse/nonUi5/assertion/expectValueToBe.spec.js +25 -0
  371. package/test/reuse/nonUi5/assertion/test.assertion.conf.js +60 -0
  372. package/test/reuse/nonUi5/assertion/test.assertion.sauceLabs.conf.js +64 -0
  373. package/test/reuse/nonUi5/element/getAllDisplayed.spec.js +39 -0
  374. package/test/reuse/nonUi5/element/getAttributeValue.spec.js +58 -0
  375. package/test/reuse/nonUi5/element/getByChild.spec.js +70 -0
  376. package/test/reuse/nonUi5/element/getByClass.spec.js +64 -0
  377. package/test/reuse/nonUi5/element/getByCss.spec.js +65 -0
  378. package/test/reuse/nonUi5/element/getByCssContainingText.spec.js +83 -0
  379. package/test/reuse/nonUi5/element/getById.spec.js +35 -0
  380. package/test/reuse/nonUi5/element/getByName.spec.js +30 -0
  381. package/test/reuse/nonUi5/element/getByParent.spec.js +71 -0
  382. package/test/reuse/nonUi5/element/getByXPath.spec.js +30 -0
  383. package/test/reuse/nonUi5/element/getValue.spec.js +51 -0
  384. package/test/reuse/nonUi5/element/highlight.spec.js +18 -0
  385. package/test/reuse/nonUi5/element/isPresent.spec.js +39 -0
  386. package/test/reuse/nonUi5/element/isPresentByCss.spec.js +73 -0
  387. package/test/reuse/nonUi5/element/isPresentByXPath.spec.js +31 -0
  388. package/test/reuse/nonUi5/element/setInnerHTML.spec.js +23 -0
  389. package/test/reuse/nonUi5/element/test.element.conf.js +55 -0
  390. package/test/reuse/nonUi5/element/test.element.sauceLabs.conf.js +58 -0
  391. package/test/reuse/nonUi5/element/waitForAll.spec.js +24 -0
  392. package/test/reuse/nonUi5/element/waitToBeClickable.spec.js +24 -0
  393. package/test/reuse/nonUi5/element/waitToBePresent.spec.js +32 -0
  394. package/test/reuse/nonUi5/element/waitToBeVisible.spec.js +36 -0
  395. package/test/reuse/nonUi5/navigation/navigateToApplication.spec.js +13 -0
  396. package/test/reuse/nonUi5/navigation/test.navigation.conf.js +14 -0
  397. package/test/reuse/nonUi5/userInteraction/checkAttributeAndValue.spec.js +135 -0
  398. package/test/reuse/nonUi5/userInteraction/clear.spec.js +43 -0
  399. package/test/reuse/nonUi5/userInteraction/clearAndFill.spec.js +51 -0
  400. package/test/reuse/nonUi5/userInteraction/clearAndFillAndRetry.spec.js +58 -0
  401. package/test/reuse/nonUi5/userInteraction/clearAndRetry.spec.js +43 -0
  402. package/test/reuse/nonUi5/userInteraction/click.spec.js +60 -0
  403. package/test/reuse/nonUi5/userInteraction/clickAndRetry.spec.js +60 -0
  404. package/test/reuse/nonUi5/userInteraction/clickElementInSvg.spec.js +24 -0
  405. package/test/reuse/nonUi5/userInteraction/doubleClick.spec.js +22 -0
  406. package/test/reuse/nonUi5/userInteraction/dragAndDrop.spec.js +40 -0
  407. package/test/reuse/nonUi5/userInteraction/fill.spec.js +37 -0
  408. package/test/reuse/nonUi5/userInteraction/fillAndRetry.spec.js +39 -0
  409. package/test/reuse/nonUi5/userInteraction/mouseOverElement.spec.js +36 -0
  410. package/test/reuse/nonUi5/userInteraction/moveCursorAndClick.spec.js +24 -0
  411. package/test/reuse/nonUi5/userInteraction/rightClick.spec.js +13 -0
  412. package/test/reuse/nonUi5/userInteraction/scrollToElement.spec.js +35 -0
  413. package/test/reuse/nonUi5/userInteraction/test.userInteraction.conf.js +72 -0
  414. package/test/reuse/nonUi5/userInteraction/test.userInteraction.sauceLabs.conf.js +78 -0
  415. package/test/reuse/service/rest/db.json +8 -0
  416. package/test/reuse/service/rest/delete.spec.js +20 -0
  417. package/test/reuse/service/rest/get.spec.js +19 -0
  418. package/test/reuse/service/rest/init.spec.js +35 -0
  419. package/test/reuse/service/rest/patch.spec.js +29 -0
  420. package/test/reuse/service/rest/post.spec.js +37 -0
  421. package/test/reuse/service/rest/test.rest.conf.js +18 -0
  422. package/test/reuse/ui5/assertion/expectAttributeToBe.spec.js +106 -0
  423. package/test/reuse/ui5/assertion/expectAttributeToContain.spec.js +78 -0
  424. package/test/reuse/ui5/assertion/expectBindingContextPathToBe.spec.js +103 -0
  425. package/test/reuse/ui5/assertion/expectBindingPathToBe.spec.js +164 -0
  426. package/test/reuse/ui5/assertion/expectMessageToastTextToBe.spec.js +43 -0
  427. package/test/reuse/ui5/assertion/expectTextToBe.spec.js +39 -0
  428. package/test/reuse/ui5/assertion/expectToBeEnabled.spec.js +90 -0
  429. package/test/reuse/ui5/assertion/expectToBeNotEnabled.spec.js +62 -0
  430. package/test/reuse/ui5/assertion/expectToBeNotVisible.spec.js +52 -0
  431. package/test/reuse/ui5/assertion/expectToBeVisible.spec.js +69 -0
  432. package/test/reuse/ui5/assertion/expectToBeVisibleInViewport.spec.js +49 -0
  433. package/test/reuse/ui5/assertion/expectValidationError.spec.js +54 -0
  434. package/test/reuse/ui5/assertion/expectValidationSuccess.spec.js +53 -0
  435. package/test/reuse/ui5/assertion/expectValueToBe.spec.js +57 -0
  436. package/test/reuse/ui5/assertion/expectValueToBeDefined.spec.js +35 -0
  437. package/test/reuse/ui5/assertion/test.assertion.conf.js +28 -0
  438. package/test/reuse/ui5/assertion/test.assertion.sauceLab.conf.js +37 -0
  439. package/test/reuse/ui5/confirmationDialog/clickCancel.spec.js +88 -0
  440. package/test/reuse/ui5/confirmationDialog/clickCreate.spec.js +3 -0
  441. package/test/reuse/ui5/confirmationDialog/clickDelete.spec.js +89 -0
  442. package/test/reuse/ui5/confirmationDialog/clickNo.spec.js +96 -0
  443. package/test/reuse/ui5/confirmationDialog/clickOk.spec.js +66 -0
  444. package/test/reuse/ui5/confirmationDialog/clickRevokeApproval.spec.js +3 -0
  445. package/test/reuse/ui5/confirmationDialog/clickYes.spec.js +70 -0
  446. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +20 -0
  447. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.sauceLab.conf.js +29 -0
  448. package/test/reuse/ui5/control/execute.spec.js +29 -0
  449. package/test/reuse/ui5/control/getAggregationProperty.spec.js +29 -0
  450. package/test/reuse/ui5/control/getAssociationProperty.spec.js +1 -0
  451. package/test/reuse/ui5/control/getBindingContextPathProperty.spec.js +30 -0
  452. package/test/reuse/ui5/control/getProperty.spec.js +30 -0
  453. package/test/reuse/ui5/control/getPropertyBinding.spec.js +30 -0
  454. package/test/reuse/ui5/control/test.control.conf.js +19 -0
  455. package/test/reuse/ui5/control/test.control.sauceLab.conf.js +30 -0
  456. package/test/reuse/ui5/date/fillRange.spec.js +53 -0
  457. package/test/reuse/ui5/date/pick.spec.js +136 -0
  458. package/test/reuse/ui5/date/pickRange.spec.js +143 -0
  459. package/test/reuse/ui5/date/test.date.conf.js +14 -0
  460. package/test/reuse/ui5/date/test.date.sauceLab.conf.js +26 -0
  461. package/test/reuse/ui5/element/getAllDisplayed.spec.js +71 -0
  462. package/test/reuse/ui5/element/getBindingValue.spec.js +78 -0
  463. package/test/reuse/ui5/element/getByChild.spec.js +124 -0
  464. package/test/reuse/ui5/element/getByParent.spec.js +134 -0
  465. package/test/reuse/ui5/element/getByText.spec.js +67 -0
  466. package/test/reuse/ui5/element/getDisplayed.spec.js +82 -0
  467. package/test/reuse/ui5/element/getId.spec.js +72 -0
  468. package/test/reuse/ui5/element/getPropertyValue.spec.js +91 -0
  469. package/test/reuse/ui5/element/highlight.spec.js +46 -0
  470. package/test/reuse/ui5/element/isVisible.spec.js +68 -0
  471. package/test/reuse/ui5/element/test.element.conf.js +22 -0
  472. package/test/reuse/ui5/element/test.element.sauceLab.conf.js +33 -0
  473. package/test/reuse/ui5/errorDialog/clickClose.spec.js +31 -0
  474. package/test/reuse/ui5/errorDialog/expectToBeVisible.spec.js +30 -0
  475. package/test/reuse/ui5/errorDialog/test.errorDialog.conf.js +13 -0
  476. package/test/reuse/ui5/errorDialog/test.errorDialog.sauceLab.conf.js +26 -0
  477. package/test/reuse/ui5/formatter/addRemoveLeadingZeros.spec.js +18 -0
  478. package/test/reuse/ui5/formatter/extractNumberFromString.spec.js +34 -0
  479. package/test/reuse/ui5/formatter/formatDate.spec.js +103 -0
  480. package/test/reuse/ui5/formatter/test.formatter.conf.js +14 -0
  481. package/test/reuse/ui5/formatter/test.formatter.sauceLab.conf.js +24 -0
  482. package/test/reuse/ui5/mockserver_qunit/Component.js +23 -0
  483. package/test/reuse/ui5/mockserver_qunit/LICENSE.txt +957 -0
  484. package/test/reuse/ui5/mockserver_qunit/NOTICE.txt +1 -0
  485. package/test/reuse/ui5/mockserver_qunit/controller/App.controller.js +37 -0
  486. package/test/reuse/ui5/mockserver_qunit/controller/BaseController.js +30 -0
  487. package/test/reuse/ui5/mockserver_qunit/controller/Home.controller.js +27 -0
  488. package/test/reuse/ui5/mockserver_qunit/controller/NotFound.controller.js +34 -0
  489. package/test/reuse/ui5/mockserver_qunit/controller/employee/Employee.controller.js +64 -0
  490. package/test/reuse/ui5/mockserver_qunit/controller/employee/EmployeeList.controller.js +22 -0
  491. package/test/reuse/ui5/mockserver_qunit/controller/employee/Resume.controller.js +83 -0
  492. package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverview.controller.js +11 -0
  493. package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverviewContent.controller.js +192 -0
  494. package/test/reuse/ui5/mockserver_qunit/i18n/i18n.properties +42 -0
  495. package/test/reuse/ui5/mockserver_qunit/index.html +21 -0
  496. package/test/reuse/ui5/mockserver_qunit/initMockServer.js +16 -0
  497. package/test/reuse/ui5/mockserver_qunit/localService/metadata.xml +61 -0
  498. package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Employees.json +155 -0
  499. package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Resumes.json +65 -0
  500. package/test/reuse/ui5/mockserver_qunit/localService/mockserver.js +146 -0
  501. package/test/reuse/ui5/mockserver_qunit/localService/mockserverLoadAllData.js +75 -0
  502. package/test/reuse/ui5/mockserver_qunit/manifest.json +169 -0
  503. package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServer.html +63 -0
  504. package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServerAllData.html +68 -0
  505. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/config.js +92 -0
  506. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/qunitExecution/specs/runQUnitTests.spec.js +14 -0
  507. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/data/setup.json +11 -0
  508. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/specs/testDisplayNotFound.spec.js +71 -0
  509. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Employees.json +204 -0
  510. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Resumes.json +114 -0
  511. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/setup.json +11 -0
  512. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/testShowEmployeeList.json +1 -0
  513. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/specs/testShowEmployeeList.spec.js +118 -0
  514. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/constants.js +25 -0
  515. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockDataMapper.js +23 -0
  516. package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockHelper.js +222 -0
  517. package/test/reuse/ui5/mockserver_qunit/test/unit/allTests.js +6 -0
  518. package/test/reuse/ui5/mockserver_qunit/test/unit/unitTests.qunit.html +38 -0
  519. package/test/reuse/ui5/mockserver_qunit/test/unit/utils/Conversions.js +13 -0
  520. package/test/reuse/ui5/mockserver_qunit/view/App.view.xml +9 -0
  521. package/test/reuse/ui5/mockserver_qunit/view/Home.view.xml +12 -0
  522. package/test/reuse/ui5/mockserver_qunit/view/NotFound.view.xml +11 -0
  523. package/test/reuse/ui5/mockserver_qunit/view/employee/Employee.view.xml +52 -0
  524. package/test/reuse/ui5/mockserver_qunit/view/employee/EmployeeList.view.xml +24 -0
  525. package/test/reuse/ui5/mockserver_qunit/view/employee/Resume.view.xml +35 -0
  526. package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeHobbies.view.xml +3 -0
  527. package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeNotes.view.xml +3 -0
  528. package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeProjects.view.xml +3 -0
  529. package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverview.view.xml +13 -0
  530. package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewContent.view.xml +43 -0
  531. package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewTop.view.xml +3 -0
  532. package/test/reuse/ui5/navigation/closePopups.spec.js +16 -0
  533. package/test/reuse/ui5/navigation/expectUnsupportedNavigationPopup.spec.js +81 -0
  534. package/test/reuse/ui5/navigation/navigateToApplication.spec.js +148 -0
  535. package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +153 -0
  536. package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParams.spec.js +63 -0
  537. package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParamsAndRetry.spec.js +64 -0
  538. package/test/reuse/ui5/navigation/navigateToSystemAndApplication.spec.js +45 -0
  539. package/test/reuse/ui5/navigation/navigateToSystemAndApplicationAndRetry.spec.js +43 -0
  540. package/test/reuse/ui5/navigation/test.navigation.conf.js +17 -0
  541. package/test/reuse/ui5/navigation/test.navigation.sauceLab.conf.js +33 -0
  542. package/test/reuse/ui5/navigation/test.navigation.static.conf.js +34 -0
  543. package/test/reuse/ui5/navigation/test.navigation.static.sauceLab.conf.js +41 -0
  544. package/test/reuse/ui5/navigation/website/main.css +36 -0
  545. package/test/reuse/ui5/navigation/website/main.html +50 -0
  546. package/test/reuse/ui5/navigationBar/clickBack.spec.js +38 -0
  547. package/test/reuse/ui5/navigationBar/clickUserIcon.spec.js +36 -0
  548. package/test/reuse/ui5/navigationBar/expectPageTitle.spec.js +22 -0
  549. package/test/reuse/ui5/navigationBar/expectShellHeader.spec.js +22 -0
  550. package/test/reuse/ui5/navigationBar/test.navigationBar.conf.js +17 -0
  551. package/test/reuse/ui5/navigationBar/test.navigationBar.sauceLab.conf.js +28 -0
  552. package/test/reuse/ui5/session/login.spec.js +78 -0
  553. package/test/reuse/ui5/session/loginFiori.spec.js +52 -0
  554. package/test/reuse/ui5/session/loginSapCloud.spec.js +51 -0
  555. package/test/reuse/ui5/session/logout.spec.js +48 -0
  556. package/test/reuse/ui5/session/switchUser.spec.js +48 -0
  557. package/test/reuse/ui5/session/test.session.conf.js +20 -0
  558. package/test/reuse/ui5/session/test.session.sauceLab.conf.js +29 -0
  559. package/test/reuse/ui5/table/clickSettingsButton.spec.js +58 -0
  560. package/test/reuse/ui5/table/sortColumnAscending.spec.js +84 -0
  561. package/test/reuse/ui5/table/sortColumnDescending.spec.js +84 -0
  562. package/test/reuse/ui5/table/test.table.conf.js +14 -0
  563. package/test/reuse/ui5/table/test.table.sauceLab.conf.js +25 -0
  564. package/test/reuse/ui5/table/test.table.sauceLab.tunnel.conf.js +25 -0
  565. package/test/reuse/ui5/userInteraction/clear.spec.js +75 -0
  566. package/test/reuse/ui5/userInteraction/clearAndFill.spec.js +157 -0
  567. package/test/reuse/ui5/userInteraction/clearAndFillAndRetry.spec.js +132 -0
  568. package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInput.spec.js +73 -0
  569. package/test/reuse/ui5/userInteraction/clearAndRetry.spec.js +57 -0
  570. package/test/reuse/ui5/userInteraction/click.spec.js +73 -0
  571. package/test/reuse/ui5/userInteraction/clickAndRetry.spec.js +52 -0
  572. package/test/reuse/ui5/userInteraction/clickSelectArrow.spec.js +87 -0
  573. package/test/reuse/ui5/userInteraction/clickSelectArrowAndRetry.spec.js +147 -0
  574. package/test/reuse/ui5/userInteraction/clickTab.spec.js +59 -0
  575. package/test/reuse/ui5/userInteraction/doubleClick.spec.js +73 -0
  576. package/test/reuse/ui5/userInteraction/dragAndDrop.spec.js +34 -0
  577. package/test/reuse/ui5/userInteraction/fill.spec.js +114 -0
  578. package/test/reuse/ui5/userInteraction/fillAndRetry.spec.js +120 -0
  579. package/test/reuse/ui5/userInteraction/mouseOverElement.spec.js +55 -0
  580. package/test/reuse/ui5/userInteraction/openF4Help.spec.js +56 -0
  581. package/test/reuse/ui5/userInteraction/rightClick.spec.js +72 -0
  582. package/test/reuse/ui5/userInteraction/scrollToElement.spec.js +89 -0
  583. package/test/reuse/ui5/userInteraction/searchFor.spec.js +155 -0
  584. package/test/reuse/ui5/userInteraction/selectBox.spec.js +128 -0
  585. package/test/reuse/ui5/userInteraction/selectCombobox.spec.js +115 -0
  586. package/test/reuse/ui5/userInteraction/selectMultiComboBox.spec.js +155 -0
  587. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +35 -0
  588. package/test/reuse/ui5/userInteraction/test.userInteraction.sauceLab.conf.js +46 -0
  589. package/test/reuse/util/browser/back.spec.js +32 -0
  590. package/test/reuse/util/browser/clearBrowser.spec.js +35 -0
  591. package/test/reuse/util/browser/executeScript.spec.js +49 -0
  592. package/test/reuse/util/browser/getBaseUrl.spec.js +13 -0
  593. package/test/reuse/util/browser/getBrowserName.spec.js +18 -0
  594. package/test/reuse/util/browser/getCurrentUrl.spec.js +34 -0
  595. package/test/reuse/util/browser/getCurrentWindow.spec.js +42 -0
  596. package/test/reuse/util/browser/getUI5Version.spec.js +31 -0
  597. package/test/reuse/util/browser/logCurrentUrl.spec.js +23 -0
  598. package/test/reuse/util/browser/refresh.spec.js +52 -0
  599. package/test/reuse/util/browser/setBaseUrl.spec.js +13 -0
  600. package/test/reuse/util/browser/switchToDefaultContent.spec.js +34 -0
  601. package/test/reuse/util/browser/switchToIframe.spec.js +29 -0
  602. package/test/reuse/util/browser/switchToNewWindow.spec.js +142 -0
  603. package/test/reuse/util/browser/switchToWindow.spec.js +57 -0
  604. package/test/reuse/util/browser/test.browser.conf.js +27 -0
  605. package/test/reuse/util/data/data/test.json +3 -0
  606. package/test/reuse/util/data/data/test.secure.json +11 -0
  607. package/test/reuse/util/data/decrypt.spec.js +15 -0
  608. package/test/reuse/util/data/getData.spec.js +15 -0
  609. package/test/reuse/util/data/getSecureData.spec.js +57 -0
  610. package/test/reuse/util/data/test.data.conf.js +22 -0
  611. package/test/reuse/util/file/file.spec.js +90 -0
  612. package/test/reuse/util/file/pdfParser.spec.js +55 -0
  613. package/test/reuse/util/file/test.file.conf.js +15 -0
  614. package/test/reuse/util/file/testFiles/sample.pdf +198 -0
  615. package/test/reuse/util/file/testFiles/test.txt +5 -0
  616. package/test/reuse/util/file/testFiles/test2.txt +2 -0
  617. package/test/reuse/util/formatter/addRemoveLeadingZeros.spec.js +38 -0
  618. package/test/reuse/util/formatter/extractNumberFromString.spec.js +67 -0
  619. package/test/reuse/util/formatter/formatDate.spec.js +150 -0
  620. package/test/reuse/util/formatter/sliceStringAfter.spec.js +62 -0
  621. package/test/reuse/util/formatter/sliceStringAt.spec.js +62 -0
  622. package/test/reuse/util/formatter/stringifyJSON.spec.js +24 -0
  623. package/test/reuse/util/formatter/test.formatter.conf.js +20 -0
  624. package/test/reuse/util/formatter/trimString.spec.js +37 -0
  625. package/tsconfig.json +26 -0
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.QUnit = void 0;
13
+ /**
14
+ * @class qunit
15
+ * @memberof ui5
16
+ */
17
+ class QUnit {
18
+ constructor() {
19
+ this.clientsidescripts = require("../../helper/clientsideUI5scripts");
20
+ }
21
+ /**
22
+ * @function executeTests
23
+ * @memberOf ui5.qunit
24
+ * @description Executes QUnit & OPA5 tests. Qmate acts like a runner.
25
+ * @param {String} path - Relative path to the QUnit/OPA5 html file.
26
+ * @example await ui5.qunit.executeTests("path/to/qunit.html");
27
+ */
28
+ executeTests(path) {
29
+ return __awaiter(this, void 0, void 0, function* () {
30
+ const url = yield browser.getUrl();
31
+ if (url.indexOf("4431") !== -1) {
32
+ yield browser.navigateTo(`http://localhost:4431/${path}`);
33
+ }
34
+ else {
35
+ yield browser.navigateTo(`http://localhost:34005/${path}`);
36
+ }
37
+ // Note: cannot use "null" as a first argument for "clientsidescripts.waitForAngular" due to browser.executeAsync error:
38
+ // "Error: Malformed type for "args" parameter of command executeAsyncScript
39
+ // Expected: (string|object|number|boolean|undefined)[]
40
+ // Actual: (null,number)[]"
41
+ yield browser.executeAsync(this.clientsidescripts.waitForAngular, undefined, 10);
42
+ const execRes = yield browser.executeAsync(this.clientsidescripts.execQUnits, {});
43
+ if (!execRes)
44
+ throw new Error("QUnit tests failed, see log message for more details.");
45
+ });
46
+ }
47
+ ;
48
+ }
49
+ exports.QUnit = QUnit;
50
+ ;
51
+ exports.default = new QUnit();
52
+ //# sourceMappingURL=qunit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qunit.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/qunit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AACb;;;GAGG;AACH,MAAa,KAAK;IAAlB;QAEU,sBAAiB,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAyB3E,CAAC;IAvBC;;;;;;OAMG;IACG,YAAY,CAAE,IAAY;;YAC9B,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC9B,MAAM,OAAO,CAAC,UAAU,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;aAC3D;iBAAM;gBACL,MAAM,OAAO,CAAC,UAAU,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;aAC5D;YACD,wHAAwH;YACxH,4EAA4E;YAC5E,uDAAuD;YACvD,2BAA2B;YAC3B,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YACjF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACzF,CAAC;KAAA;IAAA,CAAC;CAEH;AA3BD,sBA2BC;AAAA,CAAC;AACF,kBAAe,IAAI,KAAK,EAAE,CAAC"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @class session
3
+ * @memberof ui5
4
+ */
5
+ export declare class Session {
6
+ /**
7
+ * @function login
8
+ * @memberOf ui5.session
9
+ * @description Login with specific username and password. This function works for both fiori and sap-cloud login.
10
+ * @param {String} username - The username.
11
+ * @param {String} [password="Welcome1!"] - The password.
12
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
13
+ * @param {Number} [timeout=30000] - The timeout to wait (ms).
14
+ * @example await ui5.session.login("PURCHASER");
15
+ * @example await ui5.session.login("JOHN_DOE", "abc123!", true);
16
+ */
17
+ login(username: string, password?: string, verify?: boolean, timeout?: string | number): Promise<true | undefined>;
18
+ /**
19
+ * @function loginFiori
20
+ * @memberOf ui5.session
21
+ * @description Login with fioriForm and specific username and password.
22
+ * @param {String} username - The username.
23
+ * @param {String} [password="Welcome1!"] - The password.
24
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
25
+ * @example await ui5.session.loginFiori("john", "abc123!");
26
+ */
27
+ loginFiori(username: string, password?: string, verify?: boolean): Promise<void>;
28
+ /**
29
+ * @function loginSapCloud
30
+ * @memberOf ui5.session
31
+ * @description Login with sapCloud form and specific username and password.
32
+ * @param {String} username - The username.
33
+ * @param {String} [password="Welcome1!"] - The password.
34
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
35
+ * @example await ui5.session.loginSapCloud("john", "abc123!");
36
+ */
37
+ loginSapCloud(username: string, password?: string, verify?: boolean): Promise<void>;
38
+ /**
39
+ * @function loginCustom
40
+ * @memberOf ui5.session
41
+ * @description Login with custom form and specific username and password.
42
+ * @param {String} username - The username.
43
+ * @param {String} [password="Welcome1!"] - The password.
44
+ * @param {String} usernameFieldSelector - The CSS selector of the username field.
45
+ * @param {String} passwordFieldSelector - The CSS selector of the password field.
46
+ * @param {String} logonButtonSelector - The CSS selector of the login button.
47
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
48
+ * @example await ui5.session.loginCustom("JOHN_DOE", "abc123!", "#username", #password, "#logon");
49
+ */
50
+ loginCustom(username: string, password: string | undefined, usernameFieldSelector: string, passwordFieldSelector: string, logonButtonSelector: string, verify?: boolean): Promise<void>;
51
+ /**
52
+ * @function loginCustomViaConfig
53
+ * @memberOf ui5.session
54
+ * @description Login with specific username and password. The selectors will be taken from the config.
55
+ * @param {String} username - The username. Can be specified in spec or config. If specified in both credentials will be taken from config.
56
+ * @param {String} [password="Welcome1!" - The password. Can be specified in spec or config. If specified in both credentials will be taken from config.
57
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
58
+ * @example // config - SAMPLE 1
59
+ auth: {
60
+ formType: 'plain',
61
+ usernameFieldSelector: "#USERNAME_BLOCK input",
62
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
63
+ logonButtonSelector: "#LOGIN_LINK"
64
+ },
65
+ // spec
66
+ await ui5.session.loginCustomViaConfig("JOHN_DOE", "abc123!");
67
+
68
+
69
+ // config - SAMPLE 2
70
+ auth: {
71
+ formType: "plain",
72
+ username: "PURCH_EXT",
73
+ password: "Welcome1!",
74
+ usernameFieldSelector: "#USERNAME_BLOCK input",
75
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
76
+ logonButtonSelector: "#LOGIN_LINK"
77
+ },
78
+ // spec
79
+ await ui5.session.loginCustomViaConfig();
80
+ */
81
+ loginCustomViaConfig(username: string, password?: string, verify?: boolean): Promise<void>;
82
+ /**
83
+ * @function logout
84
+ * @memberOf ui5.session
85
+ * @description Logs the user out.
86
+ * @param {Boolean} [verify="true"] - Specifies if the function will check the logout text after logging out.
87
+ * Set this to false if the system does not show the text after logging out.
88
+ * @example await ui5.session.logout();
89
+ */
90
+ logout(verify?: boolean): Promise<true | undefined>;
91
+ /**
92
+ * @function switchUser
93
+ * @memberOf ui5.session
94
+ * @description switches the user according to the passed username and password.
95
+ * @param {String} username - The username.
96
+ * @param {String} [password="Welcome1!"] - The password.
97
+ * @param {Object} [authenticator] - The login form type. Set to null to use generic login.
98
+ * @param {Number} [wait=10000] - The waiting time between logout and login (ms).
99
+ * @example await ui5.session.switchUser("PURCHASER");
100
+ * @example const authenticator = ui5.authenticators.fioriForm;
101
+ * await ui5.session.switchUser("PURCHASER", "Welcome1!", authenticator, 30000);
102
+ */
103
+ switchUser(username: string, password: string | undefined, authenticator: any, wait?: number): Promise<void>;
104
+ /**
105
+ * @function expectLogoutText
106
+ * @memberOf ui5.session
107
+ * @description Expects the logout text after logout to be "You have been logged off.
108
+ * This is essential for chaining scripts, so that no static browser sleep in the spec itself is required anymore.
109
+ * @example await ui5.session.expectLogoutText();
110
+ */
111
+ expectLogoutText(): Promise<void>;
112
+ private _loginWithUsernameAndPassword;
113
+ private _clickSignOut;
114
+ private _checkForErrors;
115
+ }
116
+ declare const _default: Session;
117
+ export default _default;
@@ -0,0 +1,374 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Session = void 0;
13
+ /**
14
+ * @class session
15
+ * @memberof ui5
16
+ */
17
+ class Session {
18
+ // =================================== LOGIN ===================================
19
+ /**
20
+ * @function login
21
+ * @memberOf ui5.session
22
+ * @description Login with specific username and password. This function works for both fiori and sap-cloud login.
23
+ * @param {String} username - The username.
24
+ * @param {String} [password="Welcome1!"] - The password.
25
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
26
+ * @param {Number} [timeout=30000] - The timeout to wait (ms).
27
+ * @example await ui5.session.login("PURCHASER");
28
+ * @example await ui5.session.login("JOHN_DOE", "abc123!", true);
29
+ */
30
+ login(username, password = "Welcome1!", verify = false, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ if (browser.config && browser.config.params &&
33
+ browser.config.params.auth && browser.config.params.auth.formType === "skip") {
34
+ util.console.warn("Login is skipped since 'formType' is set to 'skip'");
35
+ return true;
36
+ }
37
+ if (!username) {
38
+ throw new Error("Please provide a valid username.");
39
+ }
40
+ let authenticator;
41
+ let messageSelector;
42
+ try {
43
+ yield browser.waitUntil(function () {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ try {
46
+ const fioriFormId = ui5.authenticators.fioriForm.formId;
47
+ const elem = yield nonUi5.element.getByCss(fioriFormId, 0, 7500);
48
+ yield nonUi5.element.isVisible(elem);
49
+ authenticator = ui5.authenticators.fioriForm;
50
+ messageSelector = ui5.authenticators.fioriForm.messageSelector;
51
+ return true;
52
+ }
53
+ catch (e) {
54
+ // continue
55
+ }
56
+ try {
57
+ const sapCloudFormId = ui5.authenticators.sapCloudForm.formId;
58
+ const elem = yield nonUi5.element.getByCss(sapCloudFormId, 0, 7500);
59
+ yield nonUi5.element.isVisible(elem);
60
+ authenticator = ui5.authenticators.sapCloudForm;
61
+ messageSelector = ui5.authenticators.sapCloudForm.messageSelector;
62
+ return true;
63
+ }
64
+ catch (e) {
65
+ return false;
66
+ }
67
+ });
68
+ }, timeout);
69
+ }
70
+ catch (error) {
71
+ throw new Error("login failed. Could not find the login page within the given time. \n" + error);
72
+ }
73
+ yield this._loginWithUsernameAndPassword(username, password, authenticator, verify, messageSelector);
74
+ });
75
+ }
76
+ ;
77
+ /**
78
+ * @function loginFiori
79
+ * @memberOf ui5.session
80
+ * @description Login with fioriForm and specific username and password.
81
+ * @param {String} username - The username.
82
+ * @param {String} [password="Welcome1!"] - The password.
83
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
84
+ * @example await ui5.session.loginFiori("john", "abc123!");
85
+ */
86
+ loginFiori(username, password = "Welcome1!", verify = false) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ if (!username) {
89
+ throw new Error("Please provide a valid username.");
90
+ }
91
+ try {
92
+ const authenticator = ui5.authenticators.fioriForm;
93
+ const messageSelector = ui5.authenticators.fioriForm.messageSelector;
94
+ return yield this._loginWithUsernameAndPassword(username, password, authenticator, verify, messageSelector);
95
+ }
96
+ catch (error) {
97
+ throw new Error(`Function 'loginFiori' failed: ${error}`);
98
+ }
99
+ });
100
+ }
101
+ ;
102
+ /**
103
+ * @function loginSapCloud
104
+ * @memberOf ui5.session
105
+ * @description Login with sapCloud form and specific username and password.
106
+ * @param {String} username - The username.
107
+ * @param {String} [password="Welcome1!"] - The password.
108
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
109
+ * @example await ui5.session.loginSapCloud("john", "abc123!");
110
+ */
111
+ loginSapCloud(username, password = "Welcome1!", verify = false) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ if (!username) {
114
+ throw new Error("Please provide a valid username.");
115
+ }
116
+ try {
117
+ const authenticator = yield ui5.authenticators.sapCloudForm;
118
+ const messageSelector = ui5.authenticators.sapCloudForm.messageSelector;
119
+ return yield this._loginWithUsernameAndPassword(username, password, authenticator, verify, messageSelector);
120
+ }
121
+ catch (error) {
122
+ throw new Error(`Function 'loginSapCloud' failed: ${error}`);
123
+ }
124
+ });
125
+ }
126
+ ;
127
+ /**
128
+ * @function loginCustom
129
+ * @memberOf ui5.session
130
+ * @description Login with custom form and specific username and password.
131
+ * @param {String} username - The username.
132
+ * @param {String} [password="Welcome1!"] - The password.
133
+ * @param {String} usernameFieldSelector - The CSS selector of the username field.
134
+ * @param {String} passwordFieldSelector - The CSS selector of the password field.
135
+ * @param {String} logonButtonSelector - The CSS selector of the login button.
136
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
137
+ * @example await ui5.session.loginCustom("JOHN_DOE", "abc123!", "#username", #password, "#logon");
138
+ */
139
+ loginCustom(username, password = "Welcome1!", usernameFieldSelector, passwordFieldSelector, logonButtonSelector, verify = false) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ if (!username) {
142
+ throw new Error("Please provide a valid username.");
143
+ }
144
+ try {
145
+ const authenticator = {
146
+ "usernameFieldSelector": usernameFieldSelector,
147
+ "passwordFieldSelector": passwordFieldSelector,
148
+ "logonButtonSelector": logonButtonSelector
149
+ };
150
+ return yield this._loginWithUsernameAndPassword(username, password, authenticator, verify);
151
+ }
152
+ catch (error) {
153
+ throw new Error(`Function 'loginCustom' failed: ${error}`);
154
+ }
155
+ });
156
+ }
157
+ ;
158
+ /**
159
+ * @function loginCustomViaConfig
160
+ * @memberOf ui5.session
161
+ * @description Login with specific username and password. The selectors will be taken from the config.
162
+ * @param {String} username - The username. Can be specified in spec or config. If specified in both credentials will be taken from config.
163
+ * @param {String} [password="Welcome1!" - The password. Can be specified in spec or config. If specified in both credentials will be taken from config.
164
+ * @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
165
+ * @example // config - SAMPLE 1
166
+ auth: {
167
+ formType: 'plain',
168
+ usernameFieldSelector: "#USERNAME_BLOCK input",
169
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
170
+ logonButtonSelector: "#LOGIN_LINK"
171
+ },
172
+ // spec
173
+ await ui5.session.loginCustomViaConfig("JOHN_DOE", "abc123!");
174
+
175
+
176
+ // config - SAMPLE 2
177
+ auth: {
178
+ formType: "plain",
179
+ username: "PURCH_EXT",
180
+ password: "Welcome1!",
181
+ usernameFieldSelector: "#USERNAME_BLOCK input",
182
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
183
+ logonButtonSelector: "#LOGIN_LINK"
184
+ },
185
+ // spec
186
+ await ui5.session.loginCustomViaConfig();
187
+ */
188
+ loginCustomViaConfig(username, password = "Welcome1!", verify = false) {
189
+ return __awaiter(this, void 0, void 0, function* () {
190
+ try {
191
+ const baseUrl = browser.config.baseUrl;
192
+ yield browser.navigateTo(baseUrl);
193
+ if (browser.config.params &&
194
+ browser.config.params.auth &&
195
+ browser.config.params.auth.username &&
196
+ browser.config.params.auth.password) {
197
+ username = browser.config.params.auth.username;
198
+ password = browser.config.params.auth.password;
199
+ // @ts-ignore
200
+ util.console.info("\x1b[33m%s\x1b[0m", "Login credentials will be taken from config.");
201
+ }
202
+ else if (!username && !password) {
203
+ throw new Error("Username or password is missing. Check your parameters or config file.");
204
+ }
205
+ }
206
+ catch (error) {
207
+ throw new Error("Function 'loginCustomViaConfig' failed: Please maintain the credentials in your config or spec.: " + error);
208
+ }
209
+ try {
210
+ const authenticator = {
211
+ "usernameFieldSelector": browser.config.params.auth.usernameFieldSelector,
212
+ "passwordFieldSelector": browser.config.params.auth.passwordFieldSelector,
213
+ "logonButtonSelector": browser.config.params.auth.logonButtonSelector
214
+ };
215
+ return yield this._loginWithUsernameAndPassword(username, password, authenticator, verify);
216
+ }
217
+ catch (error) {
218
+ throw new Error("Function 'loginCustomViaConfig' failed. Please maintain the auth values in your config.");
219
+ }
220
+ });
221
+ }
222
+ ;
223
+ // =================================== LOGOUT / SWITCH ===================================
224
+ /**
225
+ * @function logout
226
+ * @memberOf ui5.session
227
+ * @description Logs the user out.
228
+ * @param {Boolean} [verify="true"] - Specifies if the function will check the logout text after logging out.
229
+ * Set this to false if the system does not show the text after logging out.
230
+ * @example await ui5.session.logout();
231
+ */
232
+ logout(verify = true) {
233
+ return __awaiter(this, void 0, void 0, function* () {
234
+ if (browser.config && browser.config.params &&
235
+ browser.config.params.auth && browser.config.params.auth.formType === "skip") {
236
+ console.warn("Logout is skipped.");
237
+ yield browser.reloadSession(); // Clean cache
238
+ return true;
239
+ }
240
+ yield ui5.navigationBar.clickUserIcon();
241
+ yield this._clickSignOut();
242
+ yield ui5.confirmationDialog.clickOk();
243
+ if (verify) {
244
+ yield ui5.session.expectLogoutText();
245
+ }
246
+ });
247
+ }
248
+ ;
249
+ /**
250
+ * @function switchUser
251
+ * @memberOf ui5.session
252
+ * @description switches the user according to the passed username and password.
253
+ * @param {String} username - The username.
254
+ * @param {String} [password="Welcome1!"] - The password.
255
+ * @param {Object} [authenticator] - The login form type. Set to null to use generic login.
256
+ * @param {Number} [wait=10000] - The waiting time between logout and login (ms).
257
+ * @example await ui5.session.switchUser("PURCHASER");
258
+ * @example const authenticator = ui5.authenticators.fioriForm;
259
+ * await ui5.session.switchUser("PURCHASER", "Welcome1!", authenticator, 30000);
260
+ */
261
+ switchUser(username, password = "Welcome1!", authenticator, wait = 10000) {
262
+ return __awaiter(this, void 0, void 0, function* () {
263
+ yield this.logout();
264
+ yield util.browser.sleep(wait);
265
+ yield browser.navigateTo(browser.config.baseUrl);
266
+ if (!authenticator) {
267
+ this.login(username, password);
268
+ }
269
+ else {
270
+ yield this._loginWithUsernameAndPassword(username, password, authenticator);
271
+ }
272
+ });
273
+ }
274
+ ;
275
+ // =================================== ASSERTION ===================================
276
+ /**
277
+ * @function expectLogoutText
278
+ * @memberOf ui5.session
279
+ * @description Expects the logout text after logout to be "You have been logged off.
280
+ * This is essential for chaining scripts, so that no static browser sleep in the spec itself is required anymore.
281
+ * @example await ui5.session.expectLogoutText();
282
+ */
283
+ expectLogoutText() {
284
+ return __awaiter(this, void 0, void 0, function* () {
285
+ const elem = yield nonUi5.element.getById("msgText");
286
+ yield nonUi5.assertion.expectToBeVisible(elem);
287
+ });
288
+ }
289
+ ;
290
+ // =================================== HELPER ===================================
291
+ _loginWithUsernameAndPassword(username, password = "Welcome1!", authenticator = ui5.authenticators.fioriForm, verify = false, messageSelector) {
292
+ return __awaiter(this, void 0, void 0, function* () {
293
+ let usernameField = null;
294
+ let passwordField = null;
295
+ let logonField = null;
296
+ try {
297
+ yield browser.waitUntil(function () {
298
+ return __awaiter(this, void 0, void 0, function* () {
299
+ usernameField = yield $(authenticator.usernameFieldSelector);
300
+ passwordField = yield $(authenticator.passwordFieldSelector);
301
+ logonField = yield $(authenticator.logonButtonSelector);
302
+ return (yield usernameField.isDisplayedInViewport()) &&
303
+ (yield passwordField.isDisplayedInViewport()) &&
304
+ (
305
+ // eslint-disable-next-line no-return-await
306
+ yield logonField.isDisplayedInViewport());
307
+ });
308
+ }, {
309
+ timeout: 30000,
310
+ timeoutMsg: "Login failed: Login page with the given authenticator not present."
311
+ });
312
+ // @ts-ignore
313
+ yield usernameField.setValue(username);
314
+ // @ts-ignore
315
+ yield passwordField.setValue(password);
316
+ // @ts-ignore
317
+ yield logonField.click();
318
+ }
319
+ catch (error) {
320
+ throw new Error(`Login failed: Please check if you are already logged in or if the system is down \n. ${error}`);
321
+ }
322
+ if (messageSelector) {
323
+ yield this._checkForErrors(messageSelector);
324
+ }
325
+ if (verify) {
326
+ yield ui5.navigationBar.expectShellHeader();
327
+ }
328
+ try {
329
+ yield util.browser.logUI5Version();
330
+ }
331
+ catch (error) {
332
+ if (error instanceof Error) {
333
+ util.console.warn(error.toString());
334
+ }
335
+ }
336
+ });
337
+ }
338
+ _clickSignOut() {
339
+ return __awaiter(this, void 0, void 0, function* () {
340
+ const selector = {
341
+ "elementProperties": {
342
+ "metadata": "sap.m.StandardListItem",
343
+ "mProperties": {
344
+ "id": "*logoutBtn"
345
+ }
346
+ }
347
+ };
348
+ yield ui5.userInteraction.scrollToElement(selector);
349
+ return ui5.userInteraction.click(selector);
350
+ });
351
+ }
352
+ _checkForErrors(messageSelector) {
353
+ return __awaiter(this, void 0, void 0, function* () {
354
+ let uiErrorMessagesFound = false;
355
+ let messageText;
356
+ try {
357
+ const messageDiv = yield nonUi5.element.getByCss(messageSelector, 0, 3000);
358
+ // @ts-ignore
359
+ messageText = yield nonUi5.element.getValue(messageDiv, "text");
360
+ uiErrorMessagesFound = true;
361
+ }
362
+ catch (e) {
363
+ // no error messages found in login
364
+ }
365
+ if (uiErrorMessagesFound) {
366
+ throw new Error(`Login failed: "${messageText}"`);
367
+ }
368
+ });
369
+ }
370
+ }
371
+ exports.Session = Session;
372
+ ;
373
+ exports.default = new Session();
374
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @class table
3
+ * @memberof ui5
4
+ */
5
+ export declare class Table {
6
+ /**
7
+ * @function sortColumnAscending
8
+ * @memberOf ui5.table
9
+ * @description Sorts the given column "Ascending".
10
+ * @param {String} columnName - The name of the column to sort.
11
+ * @param {Object} [tableSelector] - The selector describing the table element (in case there are more then one).
12
+ * @example await ui5.table.sortColumnAscending("Supplier");
13
+ * @example const glAccountItemsTable = {
14
+ * "elementProperties": {
15
+ * "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
16
+ * "metadata": "sap.m.Table",
17
+ * "id": "*idS2P.MM.MSI.TableGLAccountItems"
18
+ * }
19
+ * };
20
+ * await ui5.table.sortColumnAscending("Amount", glAccountItemsTable);
21
+ */
22
+ sortColumnAscending(columnName: string, tableSelector: any): Promise<void>;
23
+ /**
24
+ * @function sortColumnDescending
25
+ * @memberOf ui5.table
26
+ * @description Sorts the given column "Descending".
27
+ * @param {String} columnName The name of the column to sort.
28
+ * @param {Object} [tableSelector] - The selector describing the table element (in case there are more then one).
29
+ * @example await ui5.table.sortColumnDescending("Supplier");
30
+ * @example const glAccountItemsTable = {
31
+ * "elementProperties": {
32
+ * "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
33
+ * "metadata": "sap.m.Table",
34
+ * "id": "*idS2P.MM.MSI.TableGLAccountItems"
35
+ * }
36
+ * };
37
+ * await ui5.table.sortColumnDescending("Amount", glAccountItemsTable);
38
+ */
39
+ sortColumnDescending(columnName: string, tableSelector: any): Promise<void>;
40
+ /**
41
+ * @function clickSettingsButton
42
+ * @memberOf ui5.table
43
+ * @description Opens the user Settings.
44
+ * @param {Object} [tableSelector] - The selector describing the table element (in case there are more then one).
45
+ * @example await ui5.table.clickSettingsButton();
46
+ * @example const glAccountItemsTable = {
47
+ * "elementProperties": {
48
+ * "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
49
+ * "metadata": "sap.m.Table",
50
+ * "id": "*idS2P.MM.MSI.TableGLAccountItems"
51
+ * }
52
+ * };
53
+ * await ui5.table.clickSettingsButton(glAccountItemsTable);
54
+ */
55
+ clickSettingsButton(tableSelector: any): Promise<void>;
56
+ private _clickColumn;
57
+ private _getSortIndicatorValue;
58
+ private _prepareAncestorSelector;
59
+ }
60
+ declare const _default: Table;
61
+ export default _default;