@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,118 @@
1
+ /**
2
+ * Utility class used by application developers to add reuse methods that can be used throughout the tests
3
+ */
4
+ const mockHelper = require("../../utils/mockHelper.js");
5
+ /**
6
+ * Setup json used to add static data to be reused inside the boundaries of this test case
7
+ */
8
+ const setup = require("../data/setup.json");
9
+
10
+ /**
11
+ * The data to be used for this test case
12
+ */
13
+ var data = require("../data/testShowEmployeeList.json");
14
+
15
+ describe("Test show employee list", function () {
16
+
17
+ /**
18
+ * Dynamic json data to be used for mocking the backend responses
19
+ */
20
+ const employeesData = require("../data/mock/Employees.json");
21
+ const resumesData = require("../data/mock/Resumes.json");
22
+
23
+ it("Step 01: Navigate to Application", async function () {
24
+ // Use the mock key that depicts the test case name to be able to map it directly to path, and corresponding data
25
+ //http://localhost:34005/webapp/test/flpSandboxMockServer.html?mockKey=myTestCase
26
+ await ui5.navigation.navigateToApplicationWithQueryParamsAndRetry(setup.urlParams.initialIntent, setup.urlParams.queryParams, false);
27
+ });
28
+
29
+ it("Step 02: Initialize mock and finalize app loading", async function () {
30
+ await mockHelper.initMockServerAndApplication(setup);
31
+ });
32
+
33
+ it("Step 03: Mock GET Employees and count requests", async function () {
34
+ await mockHelper.getEmployeesCount("9");
35
+ await mockHelper.getEmployees(employeesData);
36
+ await mockHelper.getResumes(resumesData);
37
+ });
38
+
39
+ it("Step 04: Click 'Show Employee List'", async function () {
40
+ const selector = {
41
+ "elementProperties": {
42
+ "viewName": "sap.ui.demo.nav.view.Home",
43
+ "metadata": "sap.m.Button",
44
+ "id": "*employeeListBtn"
45
+ }
46
+ };
47
+ await ui5.userInteraction.click(selector);
48
+ });
49
+
50
+ it("Step 04: Check if the list is loaded", async function () {
51
+ const selector = {
52
+ "elementProperties": {
53
+ "viewName": "sap.ui.demo.nav.view.employee.EmployeeList",
54
+ "metadata": "sap.m.StandardListItem",
55
+ "bindingContextPath": "/Employees*1)"
56
+ }
57
+ };
58
+ await ui5.assertion.expectToBeVisible(selector);
59
+ });
60
+
61
+ it("Step 05: Click on the employee", async function () {
62
+ const selector = {
63
+ "elementProperties": {
64
+ "viewName": "sap.ui.demo.nav.view.employee.EmployeeList",
65
+ "metadata": "sap.m.StandardListItem",
66
+ "bindingContextPath": "/Employees*1)"
67
+ }
68
+ };
69
+ await ui5.userInteraction.click(selector);
70
+ });
71
+
72
+ it("Step 06: Save mock data for resume in db and trigger after event to override results", async function () {
73
+ // Set data in db
74
+ await mockHelper.setResumes(resumesData);
75
+ await mockHelper.setEmployee(employeesData);
76
+ // Make sure that db is not changed from afterfunction event
77
+ const information = await mockHelper.getResumeForEmployee();
78
+ if (information.indexOf("test") !== -1) throw new Error("malfunction afterfunction");
79
+ });
80
+
81
+ it("Step 07: Click on 'Flip to Resume' link", async function () {
82
+ const selector = {
83
+ "elementProperties": {
84
+ "viewName": "sap.ui.demo.nav.view.employee.Employee",
85
+ "metadata": "sap.m.Link"
86
+ }
87
+ };
88
+ await ui5.userInteraction.click(selector);
89
+ });
90
+
91
+ it("Step 08: Expect Resume page appears", async function () {
92
+ const selector = {
93
+ "elementProperties": {
94
+ "viewName": "sap.ui.demo.nav.view.employee.Resume",
95
+ "metadata": "sap.m.Title",
96
+ "id": "*employeeResumePage-title"
97
+ }
98
+ };
99
+ await ui5.assertion.expectToBeVisible(selector);
100
+ });
101
+
102
+ it("Step 09: Expect Resume Info have text", async function () {
103
+ const selector = {
104
+ "elementProperties": {
105
+ "viewName": "sap.ui.demo.nav.view.employee.Resume",
106
+ "text": "Information of Nancy Davolio tests",
107
+ "metadata": "sap.m.Text"
108
+ }
109
+ };
110
+ await ui5.assertion.expectToBeVisible(selector);
111
+ });
112
+
113
+ it("Step 10: Teardown and register coverage", async function () {
114
+ // Register coverage if enabled otherwise will not
115
+ await mockHelper.takeCoverageSnapshot();
116
+ });
117
+
118
+ });
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ // Path to mockserver etc.
3
+ pathToMockServer: "sap/ui/demo/nav/localService/mockserver",
4
+ // Application namesaspace/path
5
+ applicationPath: "sap/ui/demo/nav/",
6
+ // Mockserver delay
7
+ mockDelay: 1,
8
+
9
+ // Gathering of all regex used to identify the requests
10
+ regexRequests: {
11
+ getEmployeesCount: String.raw`/.*Employees\/\$count.*/`,
12
+ getEmployees: String.raw`/.*Employees\?\$skip.*\$top.*/`,
13
+ getResumeForEmployee: String.raw`/.*Employees\(.*\)\/Resume.*/`,
14
+ getResumes: String.raw`/.*Resumes\(.*\).*/`
15
+ },
16
+ // The entity set names
17
+ entitySet: {
18
+ employees: "Employees",
19
+ resumes: "Resumes"
20
+ },
21
+ // The http methods to be used for mocking the responses
22
+ httpMethod: {
23
+ get: "GET"
24
+ }
25
+ };
@@ -0,0 +1,23 @@
1
+
2
+ var constants = require("./constants.js");
3
+ module.exports = {
4
+ /**
5
+ * Initialize the mockserver by calling the mocksever.js file method init() and getMockServer()
6
+ * @param {String} appPath
7
+ * @param {String} mockDataPath
8
+ * @param {Number} delay
9
+ */
10
+ initMockServer: async function(appPath, mockDataPath, delay) {
11
+ if (mockDataPath && appPath) {
12
+ // Prepare mockserver initialization parameters
13
+ var oMockServerOptions = {
14
+ appPath: appPath,
15
+ mockDataPath: mockDataPath.pathToMockDataRel,
16
+ entitiesToload: mockDataPath.entitiesToload,
17
+ delay: delay
18
+ };
19
+ // Call mockserver initMockServer qmate utility method
20
+ await ui5.mockserver.initMockServer(constants.pathToMockServer, oMockServerOptions);
21
+ }
22
+ }
23
+ };
@@ -0,0 +1,222 @@
1
+ var constants = require("./constants.js");
2
+ var mockDataMapper = require("./mockDataMapper.js");
3
+
4
+ module.exports = {
5
+
6
+ /**
7
+ * This function is used to convert a json message in stringify form so the messages can be passed in the addOrOverrideRequest method
8
+ * @param {String} msg The json message to be mocked (sap-message header)
9
+ */
10
+ formatMsg: function (msg) {
11
+ try {
12
+ return JSON.stringify(msg);
13
+ } catch (error) {
14
+ throw new Error("Could not convert message to string, make sure your input is a valid json");
15
+ }
16
+ },
17
+
18
+ /**
19
+ * This method make sure that the mockserver is appropriately configured and started and in the end
20
+ * (once mockserver initialization is finished), the application initialization will be performed
21
+ * @param {Object} startMockParams The start up parameters to be used for the mockserver
22
+ */
23
+ initMockServerAndApplication: async function (startMockParams) {
24
+ // Executes the init method of your mockserver file
25
+ await mockDataMapper.initMockServer(constants.applicationPath, startMockParams, constants.mockDelay);
26
+ // Starts mockserver
27
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
28
+ // Initialize application by calling sap.ushell.Container.createRenderer().placeAt("content");
29
+ await ui5.mockserver.initApplication(constants.pathToMockServer);
30
+ },
31
+
32
+ /**
33
+ * This method make sure that the mockserver is appropriately configured and started
34
+ * @param {Object} startMockParams The start up parameters to be used for the mockserver
35
+ */
36
+ initMockServer: async function (startMockParams) {
37
+ // Executes the init method of your mockserver file
38
+ await mockDataMapper.initMockServer(constants.applicationPath, startMockParams, constants.mockDelay);
39
+ // Starts mockserver
40
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
41
+ },
42
+
43
+ /**
44
+ * This method make sure that the mockserver is appropriately configured and started
45
+ * @param {Object} startMockParams The start up parameters to be used for the mockserver
46
+ */
47
+ initMockServerDynamically: async function (startMockParams) {
48
+ await ui5.mockserver.waitForUi5ApplicationLoad();
49
+ // Prepare mockserver initialization parameters
50
+ var oMockServerOptions = {
51
+ appPath: constants.applicationPath,
52
+ mockDataPath: startMockParams.pathToMockDataRel,
53
+ entitiesToload: startMockParams.entitiesToload,
54
+ delay: 1
55
+ };
56
+ await ui5.mockserver.interactWithMockServer(constants.pathToMockServer, function (mockserver, mockServerOpts, done) {
57
+ if (!mockserver) throw new Error("Mockserver file not yet loaded or is missing");
58
+ //debugger;
59
+ mockserver.init(mockServerOpts).catch(function (oError) {
60
+ // load MessageBox only when needed as it otherwise bypasses the preload of sap.m
61
+ // eslint-disable-next-line no-undef
62
+ sap.ui.require(["sap/m/MessageBox"], function (MessageBox) {
63
+ MessageBox.error(oError.message);
64
+ });
65
+ }).finally(function () {
66
+ // initialize the embedded component on the HTML page
67
+ // eslint-disable-next-line no-undef
68
+ sap.ui.require(["sap/ui/core/ComponentSupport"]);
69
+ done();
70
+ });
71
+ }, oMockServerOptions);
72
+ },
73
+
74
+ /**
75
+ * This method make sure that the application initialization is appropriately finalized
76
+ * @param {Object} startMockParams The start up parameters to be used for the mockserver
77
+ */
78
+ initApplication: async function () {
79
+ // Initialize application by calling sap.ushell.Container.createRenderer().placeAt("content");
80
+ await ui5.mockserver.initApplication(constants.pathToMockServer);
81
+ },
82
+
83
+ initApplicationDynamically: async function () {
84
+ await ui5.mockserver.waitForUi5ApplicationLoad();
85
+ await ui5.mockserver.interactWithMockServer(constants.pathToMockServer, function (mockserver, done) {
86
+ if (!mockserver) throw new Error("Mockserver file not yet loaded or is missing");
87
+ //debugger;
88
+ // eslint-disable-next-line no-undef
89
+ sap.ushell.Container.createRenderer().placeAt("content");
90
+ done();
91
+ });
92
+ },
93
+
94
+ /**
95
+ * Set mocked draft http response for the request triggered by UI action
96
+ * @param {String|Object} expandedEntityOrPath The path to json or the json object used as response
97
+ * @param {String} sMessages The mock messages response to be used
98
+ */
99
+ getEmployeesCount: async function (nCount) {
100
+ // Add expand response
101
+ await ui5.mockserver.addOrOverrideRequest(
102
+ constants.httpMethod.get,
103
+ constants.pathToMockServer,
104
+ constants.regexRequests.getEmployeesCount,
105
+ nCount,
106
+ 200, true);
107
+
108
+ //Register new response [start mockserver is required]
109
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
110
+ },
111
+
112
+ /**
113
+ * Set mocked draft http response for the request triggered by UI action
114
+ * @param {String|Object} expandedEntityOrPath The path to json or the json object used as response
115
+ * @param {String} sMessages The mock messages response to be used
116
+ */
117
+ getEmployees: async function (expandedEntityOrPath) {
118
+ var expandedEntity = expandedEntityOrPath;
119
+ if (typeof expandedEntityOrPath === "string") {
120
+ expandedEntity = await ui5.mockserver.loadMockDataFile(expandedEntityOrPath);
121
+ }
122
+ // Add expand response specific
123
+ await ui5.mockserver.addNewRequest(
124
+ constants.httpMethod.get,
125
+ constants.pathToMockServer,
126
+ constants.regexRequests.getEmployees,
127
+ expandedEntity,
128
+ 200, false);
129
+
130
+ //Register new response [start mockserver is required]
131
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
132
+ },
133
+
134
+
135
+ setResumes: async function (expandedEntityOrPath) {
136
+ var expandedEntity = expandedEntityOrPath;
137
+ if (typeof expandedEntityOrPath === "string") {
138
+ expandedEntity = await ui5.mockserver.loadMockDataFile(expandedEntityOrPath);
139
+ }
140
+ // Add expand response specific
141
+ await ui5.mockserver.setEntitySetData(
142
+ constants.pathToMockServer,
143
+ constants.entitySet.resumes,
144
+ expandedEntity);
145
+
146
+ //Register new response [start mockserver is required]
147
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
148
+ },
149
+
150
+ setEmployee: async function (expandedEntityOrPath) {
151
+ var expandedEntity = expandedEntityOrPath;
152
+ if (typeof expandedEntityOrPath === "string") {
153
+ expandedEntity = await ui5.mockserver.loadMockDataFile(expandedEntityOrPath);
154
+ }
155
+ // Add expand response specific
156
+ await ui5.mockserver.setEntitySetData(
157
+ constants.pathToMockServer,
158
+ constants.entitySet.employees,
159
+ expandedEntity);
160
+
161
+ //Register new response [start mockserver is required]
162
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
163
+ },
164
+
165
+ /**
166
+ * Set mocked draft http response for the request triggered by UI action
167
+ * @param {String|Object} expandedEntityOrPath The path to json or the json object used as response
168
+ * @param {String} sMessages The mock messages response to be used
169
+ */
170
+ getResumes: async function (expandedEntityOrPath) {
171
+ var expandedEntity = expandedEntityOrPath;
172
+ if (typeof expandedEntityOrPath === "string") {
173
+ expandedEntity = await ui5.mockserver.loadMockDataFile(expandedEntityOrPath);
174
+ }
175
+ // Add expand response specific
176
+ await ui5.mockserver.addNewRequest(
177
+ constants.httpMethod.get,
178
+ constants.pathToMockServer,
179
+ constants.regexRequests.getResumes,
180
+ expandedEntity,
181
+ 200, false);
182
+
183
+ //Register new response [start mockserver is required]
184
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
185
+ },
186
+
187
+ getResumeForEmployee: async function () {
188
+ const oParams = {
189
+ regexp: constants.regexRequests.getResumeForEmployee
190
+ };
191
+ // Add expand response specific
192
+ await ui5.mockserver.attachFunctionAfter(
193
+ constants.httpMethod.get,
194
+ constants.pathToMockServer,
195
+ function (oEvent) {
196
+ var urlPathEscRegex = oParams.regexp.substring(1, oParams.regexp.length - 1);
197
+ if (RegExp(urlPathEscRegex).test(oEvent.getParameter("oXhr").url)) {
198
+ var filterData = oEvent.getParameter("oFilteredData");
199
+ if (filterData) {
200
+ filterData.Information = filterData.Information + " tests";
201
+ }
202
+ }
203
+ }, oParams
204
+ );
205
+
206
+ const dataResums = await ui5.mockserver.getEntitySetData(constants.pathToMockServer, constants.entitySet.resumes);
207
+ //Register new response [start mockserver is required]
208
+ await ui5.mockserver.startMockServer(constants.pathToMockServer);
209
+ return dataResums[0].Information;
210
+ },
211
+
212
+ /**
213
+ * Take coverage snapshot, use in teardown
214
+ */
215
+ takeCoverageSnapshot: async function () {
216
+ // In qmate-wdio browser parameters can be accessed only via `browser.config.params`.
217
+ // Please have a look at migration guide (documentation/topics/migration.md)
218
+ if (browser.config.params && browser.config.params.coverage.status && browser.config.params.coverage.status !== "false") {
219
+ await util.browser.sleepAndCollectCoverage(2000);
220
+ }
221
+ }
222
+ };
@@ -0,0 +1,6 @@
1
+ /* eslint-disable no-undef */
2
+ sap.ui.define([
3
+ "test/unit/utils/Conversions"
4
+ ], function() {
5
+ "use strict";
6
+ });
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Unit tests for Create Supplier Invoice</title>
5
+ <meta http-equiv='X-UA-Compatible' content='IE=edge'/>
6
+ <meta charset="UTF-8">
7
+
8
+ <script id="sap-ui-bootstrap"
9
+ src="https://sapui5.hana.ondemand.com/1.99.0/resources/sap-ui-core.js"
10
+ data-sap-ui-language="en"
11
+ data-sap-ui-resourceroots='{
12
+ "sap.ui.demo.nav": "../../",
13
+ "test.unit": "./"
14
+ }'>
15
+ </script>
16
+
17
+ <script>
18
+ jQuery.sap.require("sap.ui.qunit.qunit-css");
19
+ jQuery.sap.require("sap.ui.thirdparty.qunit");
20
+ jQuery.sap.require("sap.ui.qunit.qunit-junit");
21
+ jQuery.sap.require("sap.ui.qunit.qunit-coverage");
22
+
23
+ QUnit.config.autostart = false;
24
+
25
+ sap.ui.require(
26
+ ["test/unit/allTests"],
27
+ function () {
28
+ QUnit.start();
29
+ }
30
+ );
31
+ </script>
32
+
33
+ </head>
34
+ <body>
35
+ <div id="qunit"></div>
36
+ <div id="qunit-fixture"></div>
37
+ </body>
38
+ </html>
@@ -0,0 +1,13 @@
1
+ /* eslint-disable no-undef */
2
+ sap.ui.define([
3
+ "sap/ui/demo/nav/controller/NotFound.controller"
4
+ // eslint-disable-next-line no-unused-vars
5
+ ], function (NotFoundController) {
6
+ "use strict";
7
+
8
+ QUnit.module("Dummy");
9
+
10
+ QUnit.test("Method whatever - dummy", function (assert) {
11
+ assert.strictEqual(10, 10, "Dummy message");
12
+ });
13
+ });
@@ -0,0 +1,9 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.App"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc"
5
+ displayBlock="true">
6
+ <Shell>
7
+ <App id="app"/>
8
+ </Shell>
9
+ </mvc:View>
@@ -0,0 +1,12 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.Home"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc">
5
+ <Page title="{i18n>homePageTitle}" class="sapUiResponsiveContentPadding">
6
+ <content>
7
+ <Button id="displayNotFoundBtn" text="{i18n>DisplayNotFound}" press=".onDisplayNotFound" class="sapUiTinyMarginEnd"/>
8
+ <Button id="employeeListBtn" text="{i18n>ShowEmployeeList}" press=".onNavToEmployees" class="sapUiTinyMarginEnd"/>
9
+ <Button id="employeeOverviewBtn" text="{i18n>ShowEmployeeOverview}" press=".onNavToEmployeeOverview"/>
10
+ </content>
11
+ </Page>
12
+ </mvc:View>
@@ -0,0 +1,11 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.NotFound"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc">
5
+ <MessagePage
6
+ title="{i18n>NotFound}"
7
+ text="{i18n>NotFound.text}"
8
+ description="{i18n>NotFound.description}"
9
+ showNavButton="true"
10
+ navButtonPress=".onNavBack"/>
11
+ </mvc:View>
@@ -0,0 +1,52 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.employee.Employee"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc"
5
+ xmlns:f="sap.ui.layout.form"
6
+ busyIndicatorDelay="0">
7
+ <Page
8
+ id="employeePage"
9
+ title="{i18n>EmployeeDetailsOf} {FirstName} {LastName}"
10
+ showNavButton="true"
11
+ navButtonPress=".onNavBack"
12
+ class="sapUiResponsiveContentPadding">
13
+ <content>
14
+ <Panel
15
+ id="employeePanel"
16
+ width="auto"
17
+ class="sapUiNoContentPadding">
18
+ <headerToolbar>
19
+ <Toolbar>
20
+ <Title text="{i18n>EmployeeIDColon} {EmployeeID}" level="H2"/>
21
+ <ToolbarSpacer />
22
+ <Link text="{i18n>FlipToResume}" tooltip="{i18n>FlipToResume.tooltip}" press=".onShowResume"/>
23
+ </Toolbar>
24
+ </headerToolbar>
25
+ <content>
26
+ <f:SimpleForm
27
+ editable="false"
28
+ layout="ResponsiveGridLayout"
29
+ labelSpanL="3" labelSpanM="3" emptySpanL="4" emptySpanM="4"
30
+ columnsL="1" columnsM="1">
31
+ <f:content>
32
+ <Label text="{i18n>formFirstName}"/>
33
+ <Text text="{FirstName}"/>
34
+ <Label text="{i18n>formLastName}"/>
35
+ <Text text="{LastName}"/>
36
+ <Label text="{i18n>formAddress}"/>
37
+ <Text text="{Address}"/>
38
+ <Label text="{i18n>formCity}"/>
39
+ <Text text="{City}, {Region}"/>
40
+ <Label text="{i18n>formPostalCode}"/>
41
+ <Text text="{PostalCode}"/>
42
+ <Label text="{i18n>formPhoneHome}"/>
43
+ <Text text="{HomePhone}"/>
44
+ <Label text="{i18n>formCountry}"/>
45
+ <Text text="{Country}"/>
46
+ </f:content>
47
+ </f:SimpleForm>
48
+ </content>
49
+ </Panel>
50
+ </content>
51
+ </Page>
52
+ </mvc:View>
@@ -0,0 +1,24 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.employee.EmployeeList"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc">
5
+ <Page
6
+ id="employeeListPage"
7
+ title="{i18n>EmployeeList}"
8
+ showNavButton="true"
9
+ navButtonPress=".onNavBack"
10
+ class="sapUiResponsiveContentPadding">
11
+ <content>
12
+ <List id="employeeList" headerText="{i18n>ListOfAllEmployees}" items="{/Employees}">
13
+ <items>
14
+ <StandardListItem
15
+ title="{FirstName} {LastName}"
16
+ iconDensityAware="false"
17
+ iconInset="false"
18
+ type="Navigation"
19
+ press=".onListItemPressed"/>
20
+ </items>
21
+ </List>
22
+ </content>
23
+ </Page>
24
+ </mvc:View>
@@ -0,0 +1,35 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.employee.Resume"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc">
5
+ <Page
6
+ title="{i18n>ResumeOf} {FirstName} {LastName}"
7
+ id="employeeResumePage"
8
+ showNavButton="true"
9
+ navButtonPress=".onNavBack">
10
+ <content>
11
+ <IconTabBar
12
+ id="iconTabBar"
13
+ headerBackgroundDesign="Transparent"
14
+ class="sapUiResponsiveContentPadding"
15
+ binding="{Resume}"
16
+ select=".onTabSelect"
17
+ selectedKey="{view>/selectedTabKey}">
18
+ <items>
19
+ <IconTabFilter id="infoTab" text="{i18n>tabInfo}" key="Info">
20
+ <Text text="{Information}"/>
21
+ </IconTabFilter>
22
+ <IconTabFilter id="projectsTab" text="{i18n>tabProjects}" key="Projects">
23
+ <mvc:XMLView viewName="sap.ui.demo.nav.view.employee.ResumeProjects"></mvc:XMLView>
24
+ </IconTabFilter>
25
+ <IconTabFilter id="hobbiesTab" text="{i18n>tabHobbies}" key="Hobbies">
26
+ <!-- place content via lazy loading -->
27
+ </IconTabFilter>
28
+ <IconTabFilter id="notesTab" text="{i18n>tabNotes}" key="Notes">
29
+ <!-- place content via lazy loading -->
30
+ </IconTabFilter>
31
+ </items>
32
+ </IconTabBar>
33
+ </content>
34
+ </Page>
35
+ </mvc:View>
@@ -0,0 +1,3 @@
1
+ <mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc">
2
+ <Text text="{Hobbies}"/>
3
+ </mvc:View>
@@ -0,0 +1,3 @@
1
+ <mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc">
2
+ <Text text="{Notes}"/>
3
+ </mvc:View>
@@ -0,0 +1,3 @@
1
+ <mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc">
2
+ <Text text="{Projects}"/>
3
+ </mvc:View>
@@ -0,0 +1,13 @@
1
+ <mvc:View
2
+ controllerName="sap.ui.demo.nav.controller.employee.overview.EmployeeOverview"
3
+ xmlns="sap.m"
4
+ xmlns:mvc="sap.ui.core.mvc">
5
+ <Page id="EmployeeOverviewParent" title="{i18n>EmployeeOverview}"
6
+ showNavButton="true"
7
+ navButtonPress=".onNavBack"
8
+ class="sapUiResponsiveContentPadding">
9
+ <content>
10
+ <!-- inserted by routing -->
11
+ </content>
12
+ </Page>
13
+ </mvc:View>