@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,1849 @@
1
+ /* eslint-disable no-undef */
2
+ /*
3
+ 1) Test standard properties
4
+ 2) Test new properties adding from ui5 api
5
+ 3) Test with removing empty properties
6
+ 4) Testing with binding path/bindingContextPath
7
+ 4a) Testing with binding path/context on prec,next, parent element
8
+ 5) Testing with i18nText
9
+ 5a) Testing with i18nText on prec,next, parent element
10
+ 6) Testing with boolean, number properties
11
+ 7) Test with empty values, wrong property names, wrong metadata
12
+ 8) Test with index
13
+ 9) Test with aggregation bindings
14
+ 10) Test with ancestors
15
+ 11) Test with bindingpath aggregations
16
+ 12) Test with chaining of elements
17
+ 13) Test view Id & Name
18
+ 14) Test read UI Control and all properties immidietaly
19
+ 15) Test dom properties
20
+ 16) Test descentor/child properties
21
+ 17) Test assertions
22
+ 18) Test deep selectors
23
+ 19) Test executeInBrowser
24
+ */
25
+
26
+ describe("filters1", function () {
27
+
28
+ it("step0as:click on the first standard item - evaluate browser", async function () {
29
+ var ui5ControlProperties = {
30
+ "elementProperties": {
31
+ "metadata": "sap.m.StandardListItem",
32
+ "id": "*categoryList-7",
33
+ "bindingContextPath": "/ProductCategories('LT')"
34
+ }
35
+ };
36
+ var newText = "whatsUp";
37
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
38
+ var title = await browser.controlActionInBrowser(function (control, txt, done) {
39
+ control.setTitle(txt);
40
+ done(control.getTitle());
41
+ }, elem, newText);
42
+
43
+ await expect(title).toBe(newText);
44
+ });
45
+
46
+ it("step0as:click on the first standard item - evaluate browser", async function () {
47
+ var ui5ControlProperties = {
48
+ "elementProperties": {
49
+ "metadata": "sap.m.StandardListItem",
50
+ "id": "*categoryList-7",
51
+ "bindingContextPath": "/ProductCategories('LT')"
52
+ }
53
+ };
54
+ var newText = "test";
55
+ var selectorParams = { selector: ui5ControlProperties, index: 0, timeout: 30000 };
56
+ //await ui5.element.getDisplayed(ui5ControlProperties);
57
+ var title = await browser.controlActionInBrowser(function (control, txt, done) {
58
+ control.setTitle(txt);
59
+ done(control.getTitle());
60
+ }, selectorParams, newText);
61
+
62
+ await expect(title).toBe(newText);
63
+ });
64
+
65
+ it("step0as:click on the first standard item - evaluate browser wrong element", async function () {
66
+ var ui5ControlProperties = {
67
+ "elementProperties": {
68
+ "metadata": "sap.m.StandardListItem",
69
+ "id": "*categoryList-79",
70
+ "bindingContextPath": "/ProductCategories('LT')"
71
+ }
72
+ };
73
+ var newText = "master";
74
+ var selectorParams = { selector: ui5ControlProperties, index: 0, timeout: 3000 };
75
+
76
+ await expect(browser.controlActionInBrowser(function (control, txt, done) {
77
+ control.setTitle(txt);
78
+ done(control.getTitle());
79
+ }, selectorParams, newText))
80
+ .rejects.toThrow(/No visible elements found with selector/);
81
+ });
82
+
83
+ it("step0as:click on the first standard item - evaluate browser and fire press", async function () {
84
+ var ui5ControlProperties = {
85
+ "elementProperties": {
86
+ "metadata": "sap.m.StandardListItem",
87
+ "id": "*categoryList-7",
88
+ "bindingContextPath": "/ProductCategories('LT')"
89
+ }
90
+ };
91
+ //await ui5.element.getDisplayed(ui5ControlProperties);
92
+ var title = await browser.controlActionInBrowser(function (control, done) {
93
+ var data = { title: control.getTitle() };
94
+ control.attachPress(data, function () {
95
+ done(data.title);
96
+ });
97
+ control.firePress();
98
+ }, ui5ControlProperties);
99
+
100
+ await expect(title).toBe("test");
101
+ });
102
+
103
+ it("step0as:click back - evaluate browser", async function () {
104
+ var ui5ControlProperties = {
105
+ "elementProperties": { "metadata": "sap.m.Button", "mProperties": { "type": "Back" } },
106
+ "parentProperties": { "metadata": "sap.m.Bar", "mProperties": {} },
107
+ "childProperties": { "metadata": "sap.ui.core.Icon", "mProperties": { "src": "sap-icon://nav-back" } }
108
+ };
109
+ var selectorParams = { selector: ui5ControlProperties, index: 0, timeout: 3000 };
110
+ //await ui5.element.getDisplayed(ui5ControlProperties);
111
+ await browser.controlActionInBrowser(function (control, done) {
112
+ control.attachPress(undefined, function () {
113
+ done();
114
+ });
115
+ control.firePress();
116
+ }, selectorParams);
117
+ });
118
+
119
+ it("step0v1: check Page has descendant text - use deep selector structure", async function () {
120
+ var ui5ControlProperties = {
121
+ "elementProperties": {
122
+ "metadata": "sap.m.Page", "mProperties": {
123
+ "id": "container-cart---welcomeView--page"
124
+ }
125
+ },
126
+ "descendantProperties": {
127
+ "metadata": "sap.m.Text", "mProperties": {
128
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }],
129
+ "ancestorProperties": {
130
+ "viewName": "*view.Welcome",
131
+ "tooltip": [{ "path": "i18n>welcomeDescription" }]
132
+ }
133
+ }
134
+ }
135
+ };
136
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 30000);
137
+ });
138
+
139
+ it("step0v1: check Page has descendant text - use deep selector structure sibling", async function () {
140
+ var ui5ControlProperties = {
141
+ "elementProperties": {
142
+ "metadata": "sap.m.Page",
143
+ "mProperties": {
144
+ "id": "container-cart---welcomeView--page"
145
+ }
146
+ },
147
+ "descendantProperties": {
148
+ "metadata": "sap.m.Text", "mProperties": {
149
+ "text": [{ "path": "*CarouselShipping" }],
150
+ "ancestorProperties": {
151
+ "viewName": "*view.Welcome",
152
+ "tooltip": [{ "path": "i18n>welcomeDescription" }],
153
+ "siblinkProperties": {
154
+ "viewName": "*view.Welcome",
155
+ "tooltip": [{ "path": "i18n>welcomeDescription" }]
156
+ }
157
+ }
158
+ }
159
+ }
160
+ };
161
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 30000);
162
+ });
163
+
164
+ it("step0v1: check Page has descendant text - use deep selector structure sibling wrong", async function () {
165
+ var ui5ControlProperties = {
166
+ "elementProperties": {
167
+ "metadata": "sap.m.Page", "mProperties": {
168
+ "id": "container-cart---welcomeView--page"
169
+ }
170
+ },
171
+ "descendantProperties": {
172
+ "metadata": "sap.m.Text", "mProperties": {
173
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }],
174
+ "ancestorProperties": {
175
+ "viewName": "*view.Welcome",
176
+ "tooltip": [{ "path": "i18n>welcomeDescription" }],
177
+ "descendantProperties": {
178
+ "metadata": "sap.m.ScrollContainer",
179
+ "domProperties": {
180
+ "class": "*sapMScrollCont"
181
+ },
182
+ "siblingProperties": {
183
+ "metadata": "sap.m.ScrollContainer",
184
+ "domProperties": {
185
+ "class": "*sapMScrollCont"
186
+ },
187
+ "descendantProperties": {
188
+ "metadata": "sap.m.Text", "mProperties": {
189
+ "text": [{ "path": "welcomeCarouselCreditCard1" }],
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
197
+ };
198
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 5000))
199
+ .rejects.toThrow(/No visible elements found with selector/);
200
+ });
201
+
202
+ it("step0v1: check Page has descendant text - use deep selector structure in elementProperties", async function () {
203
+ var ui5ControlProperties = {
204
+ "elementProperties": {
205
+ "metadata": "sap.m.Page", "mProperties": {
206
+ "id": "container-cart---welcomeView--page"
207
+ },
208
+ "descendantProperties": {
209
+ "metadata": "sap.m.Text", "mProperties": {
210
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }],
211
+ "ancestorProperties": {
212
+ "viewName": "*view.Welcome",
213
+ "tooltip": [{ "path": "i18n>welcomeDescription" }],
214
+ "descendantProperties": {
215
+ "metadata": "sap.m.ScrollContainer",
216
+ "domProperties": {
217
+ "class": "*sapMScrollCont"
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ },
224
+ };
225
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 30000);
226
+ });
227
+
228
+ it("step0v1: check Page has descendant text - use deep selector structure wrong", async function () {
229
+ var ui5ControlProperties = {
230
+ "elementProperties": {
231
+ "metadata": "sap.m.Page", "mProperties": {
232
+ "id": "container-cart---welcomeView--page"
233
+ }
234
+ },
235
+ "descendantProperties": {
236
+ "metadata": "sap.m.Text", "mProperties": {
237
+ "text": [{"path": "i18n>welcomeCarouselShipping"}],
238
+ "ancestorProperties": {
239
+ "viewName": "*view.Welcome",
240
+ "tooltip": [{"path": "i18n>welcomeDescription"}],
241
+ "descendantProperties": {
242
+ "metadata": "sap.m.ScrollContainer",
243
+ "domProperties": {
244
+ "class": "*sapMScrollContas"
245
+ }
246
+ }
247
+ }
248
+ }
249
+ }
250
+ };
251
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 5000))
252
+ .rejects.toThrow(/No visible elements found with selector/);
253
+ });
254
+
255
+ it("step0v1: check Page has descendant text - wait for property only not element", async function () {
256
+ var ui5ControlProperties = {
257
+ "elementProperties": {
258
+ "metadata": "sap.m.Page", "mProperties": {
259
+ "id": "container-cart---welcomeView--page"
260
+ }
261
+ },
262
+ "descendantProperties": {
263
+ "metadata": "sap.m.Text", "mProperties": {
264
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }]
265
+ }
266
+ }
267
+ };
268
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 1, 30000);
269
+ });
270
+
271
+ it("step0v1: check Page has descendant text - wait for property without mProperties", async function () {
272
+ var ui5ControlProperties = {
273
+ "elementProperties": { "metadata": "sap.m.Page", "id": "container-cart---welcomeView--page" },
274
+ "descendantProperties": { "metadata": "sap.m.Text", "text": [{ "path": "i18n>welcomeCarouselShipping" }] }
275
+ };
276
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 1, 30000);
277
+ });
278
+
279
+ it("step0v1: check name is Accessories - check with dom properties and not mProperties", async function () {
280
+ var ui5ControlProperties = {
281
+ "elementProperties": {
282
+ "metadata": "sap.m.StandardListItem",
283
+ "viewId": "cont*cart*",
284
+ "title": [{ "path": "CategoryName" }],
285
+ "bindingContextPath": "/ProductCategories*",
286
+ "domProperties": {
287
+ "nodeName": "li",
288
+ "role": "option",
289
+ "class": "*sapMLIB*sapMSLI"
290
+ }
291
+ }
292
+ };
293
+ const nameField = await browser.uiControl(ui5ControlProperties);
294
+ var attribute = "title"; //eg: title, text, value etc.
295
+ var compareValue = "Accessories"; //expected value
296
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
297
+ });
298
+
299
+ it("step0v1: check name is Accessories - check with wrong properties and not mProperties", async function () {
300
+ var ui5ControlProperties = {
301
+ "elementProperties": {
302
+ "metadata": "sap.m.StandardListItem",
303
+ "viewId": "cont*cart*",
304
+ "title": [{ "path": "CategoryNam" }],
305
+ "bindingContextPath": "/ProductCategories*",
306
+ "domProperties": {
307
+ "nodeName": "li",
308
+ "data-sap-ui": "*categoryList-0",
309
+ "role": "option",
310
+ "class": "*sapMLIB*sapMSLI",
311
+ "id": "__item1-container-cart---homeView--categoryList-0"
312
+ }
313
+ }
314
+ };
315
+
316
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
317
+ .rejects.toThrow(/No visible elements found with selector/);
318
+ });
319
+
320
+ it("step0v1: check name is Accessories - check with wrong dom properties and not mProperties", async function () {
321
+ var ui5ControlProperties = {
322
+ "elementProperties": {
323
+ "metadata": "sap.m.StandardListItem",
324
+ "viewId": "cont*cart*",
325
+ "title": [{"path": "CategoryName"}],
326
+ "bindingContextPath": "/ProductCategories*",
327
+ "domProperties": {
328
+ "nodeName": "li",
329
+ "data-sap-ui": "*categoryList-0",
330
+ "role": "option1",
331
+ "class": "*sapMLIB*sapMSLI",
332
+ "id": "__item1-container-cart---homeView--categoryList-0"
333
+ }
334
+ }
335
+ };
336
+
337
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
338
+ .rejects.toThrow(/No visible elements found with selector/);
339
+ });
340
+
341
+ it("step0v1: check Page has empty descendant button", async function () {
342
+ var ui5ControlProperties = {
343
+ "elementProperties": {
344
+ "metadata": "sap.m.Page", "mProperties": {
345
+ "id": "*welcomeView--page"
346
+ }
347
+ },
348
+ "descendantProperties": {}
349
+ };
350
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 10000);
351
+ });
352
+
353
+ it("step0v1: check Page has descendant text", async function () {
354
+ var ui5ControlProperties = {
355
+ "elementProperties": {
356
+ "metadata": "sap.m.Page", "mProperties": {
357
+ "id": "container-cart---welcomeView--page"
358
+ }
359
+ },
360
+ "descendantProperties": {
361
+ "metadata": "sap.m.Text", "mProperties": {
362
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }]
363
+ }
364
+ }
365
+ };
366
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 10000);
367
+ });
368
+
369
+ it("step0v1: check Page has descendant button", async function () {
370
+ var ui5ControlProperties = {
371
+ "elementProperties": {
372
+ "metadata": "sap.m.Page", "mProperties": {
373
+ "id": "*welcomeView--page"
374
+ }
375
+ },
376
+ "descendantProperties": {
377
+ "metadata": "sap.m.Button", "mProperties": {
378
+ "tooltip": [{ "path": "i18n>avatarButtonTooltip" }]
379
+ }
380
+ }
381
+ };
382
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, "showHeader", "true", 0, 30000, 10000);
383
+ });
384
+
385
+ it("step0v1: check Page has wrong descendant text", async function () {
386
+ var ui5ControlProperties = {
387
+ "elementProperties": {
388
+ "metadata": "sap.m.Page", "mProperties": {
389
+ "id": "container-cart---welcomeView--page"
390
+ }
391
+ },
392
+ "descendantProperties": {
393
+ "metadata": "sap.m.Text", "mProperties": {
394
+ "text": [{ "path": "welcomeCarouselShippings1" }]
395
+ }
396
+ }
397
+ };
398
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
399
+ .rejects.toThrow(/No visible elements found with selector/);
400
+ });
401
+
402
+ it("step0v1: check Page has not direct childern text control", async function () {
403
+ var ui5ControlProperties = {
404
+ "elementProperties": {
405
+ "metadata": "sap.m.Page", "mProperties": {
406
+ "id": "container-cart---welcomeView--page"
407
+ }
408
+ },
409
+ "childProperties": {
410
+ "metadata": "sap.m.Text", "mProperties": {
411
+ "text": [{ "path": "i18n>welcomeCarouselShipping" }]
412
+ }
413
+ }
414
+ };
415
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
416
+ .rejects.toThrow(/No visible elements found with selector/);
417
+ });
418
+
419
+ it("step0v1: check Page has not direct children button control", async function () {
420
+ var ui5ControlProperties = {
421
+ "elementProperties": {
422
+ "metadata": "sap.m.Page", "mProperties": {
423
+ "id": "container-cart---welcomeView--page"
424
+ }
425
+ },
426
+ "childProperties": {
427
+ "metadata": "sap.m.Button", "mProperties": {
428
+ "tooltip": [{ "path": "i18n>avatarButtonTooltip" }]
429
+ }
430
+ }
431
+ };
432
+
433
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
434
+ .rejects.toThrow(/No visible elements found with selector/);
435
+ });
436
+
437
+ it("step0v1: check name is Accessories - check with dom properties", async function () {
438
+ var ui5ControlProperties = {
439
+ "elementProperties": {
440
+ "metadata": "sap.m.StandardListItem", "mProperties": {
441
+ "viewId": "cont*cart*",
442
+ "title": [{ "path": "CategoryName" }],
443
+ "bindingContextPath": "/ProductCategories*"
444
+ },
445
+ "domProperties": {
446
+ "nodeName": "li",
447
+ "data-sap-ui": "*categoryList*",
448
+ "role": "option",
449
+ "class": "*sapMLIB*sapMSLI"
450
+ }
451
+ }
452
+ };
453
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
454
+ var attribute = "title"; //eg: title, text, value etc.
455
+ var compareValue = "Accessories"; //expected value
456
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
457
+ });
458
+
459
+ it("step0v1: check name is Accessories - check with dom properties nodename and id", async function () {
460
+ var ui5ControlProperties = {
461
+ "elementProperties": {
462
+ "metadata": "sap.m.StandardListItem",
463
+ "domProperties": {
464
+ "nodeName": "li",
465
+ "id": "*categoryList-0"
466
+ }
467
+ }
468
+ };
469
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
470
+ var attribute = "title"; //eg: title, text, value etc.
471
+ var compareValue = "Accessories"; //expected value
472
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
473
+ });
474
+
475
+ it("step0v1: check name is Accessories - check with wrong dom properties", async function () {
476
+ var ui5ControlProperties = {
477
+ "elementProperties": {
478
+ "metadata": "sap.m.StandardListItem", "mProperties": {
479
+ "viewId": "cont*cart*",
480
+ "title": [{ "path": "CategoryName" }],
481
+ "bindingContextPath": "/ProductCategories*"
482
+ },
483
+ "domProperties": {
484
+ "nodeName": "li",
485
+ "data-sap-ui": "*categoryList-0",
486
+ "role": "option1",
487
+ "class": "*sapMLIB*sapMSLI",
488
+ "id": "__item1-container-cart---homeView--categoryList-0"
489
+ }
490
+ }
491
+ };
492
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
493
+ .rejects.toThrow(/No visible elements found with selector/);
494
+ });
495
+
496
+ it("step0v1: check name is Accessories - check with wrong dom properties", async function () {
497
+ var ui5ControlProperties = {
498
+ "elementProperties": {
499
+ "metadata": "sap.m.StandardListItem", "mProperties": {
500
+ "viewId": "cont*cart*",
501
+ "title": [{"path": "CategoryName"}],
502
+ "bindingContextPath": "/ProductCategories*"
503
+ },
504
+ "domProperties": {
505
+ "nodeName": "li",
506
+ "data-sap-ui": "*categoryList-0",
507
+ "role": "option",
508
+ "class": "*sapMLIB1*sapMSLI",
509
+ "id": "__item1-container-cart---homeView--categoryList-0"
510
+ }
511
+ }
512
+ };
513
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
514
+ .rejects.toThrow(/No visible elements found with selector/);
515
+ });
516
+
517
+ it("step0v1: check name is Accessories - use UI5 Control properties", async function () {
518
+ var ui5ControlProperties = {
519
+ "elementProperties": {
520
+ "metadata": "sap.m.StandardListItem", "mProperties": {
521
+ "viewId": "container-cart---app",
522
+ "title": [{ "path": "CategoryName" }],
523
+ "bindingContextPath": "/ProductCategories*"
524
+ }
525
+ }
526
+ };
527
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
528
+ var attribute = "title";
529
+ var compareValue = "Accessories";
530
+ var val = await browser.getUI5Property(attribute, elem);
531
+ await expect(val).toBe(compareValue);
532
+ });
533
+
534
+ it("step0v1: check name is Accessories - use UI5 Aggregation Control properties", async function () {
535
+ var ui5ControlProperties = {
536
+ "elementProperties": {
537
+ "metadata": "sap.m.StandardListItem", "mProperties": {
538
+ "viewId": "container-cart---app",
539
+ "title": [{ "path": "CategoryName" }],
540
+ "bindingContextPath": "/ProductCategories*"
541
+ }
542
+ }
543
+ };
544
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
545
+ var attribute = "tooltip";
546
+ var compareValue = "Open category Accessories";
547
+ var val = await browser.getUI5Aggregation(attribute, elem);
548
+ await expect(val).toBe(compareValue);
549
+ });
550
+
551
+ it("step0v1: check name is Accessories - use UI5 Control binding property path", async function () {
552
+ var ui5ControlProperties = {
553
+ "elementProperties": {
554
+ "metadata": "sap.m.StandardListItem", "mProperties": {
555
+ "viewId": "container-cart---app",
556
+ "title": [{ "path": "CategoryName" }],
557
+ "bindingContextPath": "/ProductCategories*"
558
+ }
559
+ }
560
+ };
561
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
562
+ var attribute = "title";
563
+ var aBindings = await browser.getBindingProperty(attribute, elem);
564
+ await expect(aBindings[0].path).toBe("CategoryName");
565
+
566
+ });
567
+
568
+
569
+ it("step0v1: check name is Accessories - use UI5 Control binding context path", async function () {
570
+ var ui5ControlProperties = {
571
+ "elementProperties": {
572
+ "metadata": "sap.m.StandardListItem", "mProperties": {
573
+ "viewId": "container-cart---app",
574
+ "title": [{ "path": "CategoryName" }],
575
+ "bindingContextPath": "/ProductCategories*"
576
+ }
577
+ }
578
+ };
579
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
580
+ var sContext = await browser.getBindingContextPath(elem);
581
+ await expect(sContext).toBe("/ProductCategories('AC')");
582
+ });
583
+
584
+ it("step0v1: check name is Accessories - view Id check", async function () {
585
+
586
+ var ui5ControlProperties = {
587
+ "elementProperties": {
588
+ "metadata": "sap.m.StandardListItem", "mProperties": {
589
+ "viewId": "container-cart---app",
590
+ "title": [{ "path": "CategoryName" }],
591
+ "bindingContextPath": "/ProductCategories*"
592
+ }
593
+ }
594
+ };
595
+ var nameField = await ui5.element.getDisplayed(ui5ControlProperties);
596
+ var attribute = "title";
597
+ var compareValue = "Accessories";
598
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
599
+
600
+ });
601
+
602
+ it("step0v1: check name is Accessories - view Id wildcard check", async function () {
603
+ var ui5ControlProperties = {
604
+ "elementProperties": {
605
+ "metadata": "sap.m.StandardListItem", "mProperties": {
606
+ "viewId": "cont*cart*",
607
+ "title": [{ "path": "CategoryName" }],
608
+ "bindingContextPath": "/ProductCategories*"
609
+ }
610
+ }
611
+ };
612
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
613
+ var attribute = "title"; //eg: title, text, value etc.
614
+ var compareValue = "Accessories"; //expected value
615
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
616
+ });
617
+
618
+
619
+ it("step0v1: check name is Accessories - view Id for ancestor check", async function () {
620
+
621
+ var ui5ControlProperties = {
622
+ "elementProperties": {
623
+ "metadata": "sap.m.StandardListItem", "mProperties": {
624
+ "title": [{ "path": "CategoryName" }],
625
+ "bindingContextPath": "/ProductCategories*"
626
+ }
627
+ },
628
+ "ancestorProperties": {
629
+ "metadata": "sap.m.List", "mProperties": {
630
+ "items": [{ "path": "/ProductCategories" }],
631
+ "viewId": "cont*cart*"
632
+ }
633
+ }
634
+ };
635
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
636
+ var attribute = "title"; //eg: title, text, value etc.
637
+ var compareValue = "Accessories"; //expected value
638
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
639
+ });
640
+
641
+ it("step0v1: check name is Accessories - view Id for ancestor check wrong", async function () {
642
+
643
+ var ui5ControlProperties = {
644
+ "elementProperties": {
645
+ "metadata": "sap.m.StandardListItem", "mProperties": {
646
+ "title": [{ "path": "CategoryName" }],
647
+ "bindingContextPath": "/ProductCategories*"
648
+ }
649
+ },
650
+ "ancestorProperties": {
651
+ "metadata": "sap.m.List", "mProperties": {
652
+ "items": [{ "path": "/ProductCategories" }],
653
+ "viewId": "cont*cartes*"
654
+ }
655
+ }
656
+ };
657
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
658
+ .rejects.toThrow(/No visible elements found with selector/);
659
+ });
660
+
661
+ it("step0v1: check name is Accessories - view Name check", async function () {
662
+
663
+ var ui5ControlProperties = {
664
+ "elementProperties": {
665
+ "metadata": "sap.m.StandardListItem", "mProperties": {
666
+ "viewName": "sap.ui.demo.cart.view.App",
667
+ "title": [{ "path": "CategoryName" }],
668
+ "bindingContextPath": "/ProductCategories*"
669
+ }
670
+ }
671
+ };
672
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
673
+ var attribute = "title"; //eg: title, text, value etc.
674
+ var compareValue = "Accessories"; //expected value
675
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
676
+
677
+ });
678
+
679
+ it("step0v1: check name is Accessories - view name wildcard check", async function () {
680
+
681
+ var ui5ControlProperties = {
682
+ "elementProperties": {
683
+ "metadata": "sap.m.StandardListItem", "mProperties": {
684
+ "viewName": "*cart.view*",
685
+ "title": [{ "path": "CategoryName" }],
686
+ "bindingContextPath": "/ProductCategories*"
687
+ }
688
+ }
689
+ };
690
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
691
+ var attribute = "title"; //eg: title, text, value etc.
692
+ var compareValue = "Accessories"; //expected value
693
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
694
+
695
+ });
696
+
697
+
698
+ it("step0v1: check name is Accessories - view name for ancestor check", async function () {
699
+
700
+ var ui5ControlProperties = {
701
+ "elementProperties": {
702
+ "metadata": "sap.m.StandardListItem", "mProperties": {
703
+ "title": [{ "path": "CategoryName" }],
704
+ "bindingContextPath": "/ProductCategories*"
705
+ }
706
+ },
707
+ "ancestorProperties": {
708
+ "metadata": "sap.m.List", "mProperties": {
709
+ "items": [{ "path": "/ProductCategories" }],
710
+ "viewName": "*cart.view*"
711
+ }
712
+ }
713
+ };
714
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
715
+ var attribute = "title"; //eg: title, text, value etc.
716
+ var compareValue = "Accessories"; //expected value
717
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
718
+ });
719
+
720
+ it("step0v1: check name is Accessories - view name for ancestor check wrong", async function () {
721
+
722
+ var ui5ControlProperties = {
723
+ "elementProperties": {
724
+ "metadata": "sap.m.StandardListItem", "mProperties": {
725
+ "title": [{ "path": "CategoryName" }],
726
+ "bindingContextPath": "/ProductCategories*"
727
+ }
728
+ },
729
+ "ancestorProperties": {
730
+ "metadata": "sap.m.List", "mProperties": {
731
+ "items": [{ "path": "/ProductCategories" }],
732
+ "viewName": "*cart.views*asra"
733
+ }
734
+ }
735
+ };
736
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
737
+ .rejects.toThrow(/No visible elements found with selector/);
738
+ });
739
+
740
+ it("step0ay:check name is Accessories - chaining assert with no index", async function () {
741
+ var ui5ControlProperties = {
742
+ "elementProperties": { "metadata": "sap.m.List", "mProperties": { "items": [{ "path": "/ProductCategories" }] } },
743
+ "parentProperties": { "metadata": "sap.m.Page", "mProperties": { "title": [{ "path": "i18n>homeTitle" }] } }
744
+ };
745
+ var list = await ui5.element.getDisplayed(ui5ControlProperties, 0);
746
+
747
+ var ui5ControlProperties2 = {
748
+ "elementProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "title": [{ "path": "CategoryName" }], "bindingContextPath": "/ProductCategories*" } },
749
+ };
750
+
751
+ const nameField = await list.uiControl(ui5ControlProperties2);
752
+ var attribute = "title"; //eg: title, text, value etc.
753
+ var compareValue = "Accessories"; //expected value
754
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
755
+
756
+ });
757
+
758
+ it("step0ay:check name is Accessories - chaining assert with index", async function () {
759
+ var ui5ControlProperties = {
760
+ "elementProperties": { "metadata": "sap.m.List", "mProperties": { "items": [{ "path": "/ProductCategories" }] } },
761
+ "parentProperties": { "metadata": "sap.m.Page", "mProperties": { "title": [{ "path": "i18n>homeTitle" }] } }
762
+ };
763
+ var list = await ui5.element.getDisplayed(ui5ControlProperties, 0);
764
+
765
+ var ui5ControlProperties2 = {
766
+ "elementProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "title": [{ "path": "CategoryName" }], "bindingContextPath": "/ProductCategories*" } },
767
+ };
768
+
769
+ });
770
+
771
+ it("step0ay:check name is Accessories - chaining assert with wrong index", async function () {
772
+ var ui5ControlProperties = {
773
+ "elementProperties": { "metadata": "sap.m.List", "mProperties": { "items": [{ "path": "/ProductCategories" }] } },
774
+ "parentProperties": { "metadata": "sap.m.Page", "mProperties": { "title": [{ "path": "i18n>homeTitle" }] } }
775
+ };
776
+ var list = await ui5.element.getDisplayed(ui5ControlProperties, 0);
777
+
778
+ var ui5ControlProperties2 = {
779
+ "elementProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "title": [{ "path": "CategoryName" }], "bindingContextPath": "/ProductCategories*" } },
780
+ };
781
+ const nameField = await list.uiControl(ui5ControlProperties2);
782
+ var attribute = "title";
783
+ var compareValue = "Computer System Accessories";
784
+ await expect(await nameField.getAttribute("data-" + attribute)).not.toBe(compareValue);
785
+ });
786
+
787
+ it("step0ax:check name is Computer System Accessories - chaining assert", async function () {
788
+ var ui5ControlProperties = {
789
+ "elementProperties": { "metadata": "sap.m.List", "mProperties": { "items": [{ "path": "/ProductCategories" }] } },
790
+ "parentProperties": { "metadata": "sap.m.Page", "mProperties": { "title": [{ "path": "i18n>homeTitle" }] } }
791
+ };
792
+ var list = await ui5.element.getDisplayed(ui5ControlProperties, 0);
793
+
794
+ var ui5ControlProperties2 = {
795
+ "elementProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "title": [{ "path": "CategoryName" }] } },
796
+ };
797
+
798
+ const nameField = await list.uiControl(ui5ControlProperties2, 1);
799
+ var attribute = "title"; //eg: title, text, value etc.
800
+ var compareValue = "Computer System Accessories"; //expected value
801
+ await expect(await nameField.getAttribute("data-" + attribute)).toBe(compareValue);
802
+
803
+ });
804
+
805
+ it("step0as:click on the first standard item check id with wildcard", async function () {
806
+ var ui5ControlProperties = {
807
+ "elementProperties": {
808
+ "metadata": "sap.m.StandardListItem", "mProperties": {
809
+ "id": "*categoryList-0",
810
+ "bindingContextPath": "/ProductCategories('AC')"
811
+ }
812
+ }
813
+ };
814
+ const nameField = await browser.uiControl(ui5ControlProperties);
815
+ await nameField.click();
816
+ });
817
+
818
+ it("step0ch1:check chaining in a objectlist item", async function () {
819
+ //----------------------- Block for sap.m.ObjectListItem - Get Element Reference
820
+ var objectListProp = {
821
+ "elementProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "title": [{ "path": "Name" }], "number": [{ "path": "Price" }], "bindingContextPath": "/Products('HT-2001')" } },
822
+ };
823
+ var elem = await browser.uiControl(objectListProp);
824
+ var objectNumber = {
825
+ "elementProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": {} },
826
+ };
827
+ var attribute = "number"; //eg: title, text, value etc.
828
+ var compareValue = "449,99"; //expected value
829
+ const innerElement = await elem.uiControl(objectNumber);
830
+ var expVal = await innerElement.getAttribute("data-" + attribute);
831
+ await expect(expVal).toBe(compareValue); // === expVal[0] in vyperForAll
832
+ });
833
+
834
+ it("step0ch2:check chaining in a objectlist item with index", async function () {
835
+ //----------------------- Block for sap.m.ObjectListItem - Get Element Reference
836
+ var objectListProp = {
837
+ "elementProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "title": [{ "path": "Name" }], "number": [{ "path": "Price" }], "bindingContextPath": "/Products('HT-2001')" } },
838
+ };
839
+ var elem = await browser.uiControl(objectListProp);
840
+ var objectNumber = {
841
+ "elementProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": {} },
842
+ };
843
+ var attribute = "number"; //eg: title, text, value etc.
844
+ var compareValue = "449,99"; //expected value
845
+ const innerElement = await elem.uiControl(objectNumber, 0);
846
+ var expVal = await innerElement.getAttribute("data-" + attribute);
847
+ await expect(expVal).toBe(compareValue); // === expVal[0] in vyperForAll
848
+ });
849
+
850
+ it("step0as:navigate back to main page", async function () {
851
+ var ui5ControlProperties = {
852
+ "elementProperties": { "metadata": "sap.m.Button", "mProperties": { "type": "Back" } },
853
+ "parentProperties": { "metadata": "sap.m.Bar", "mProperties": {} },
854
+ "prevSiblingProperties": {},
855
+ "nextSiblingProperties": { "metadata": "sap.m.Title", "mProperties": {} },
856
+ "childProperties": { "metadata": "sap.ui.core.Icon", "mProperties": { "src": "sap-icon://nav-back" } }
857
+ };
858
+ await ui5.userInteraction.click(ui5ControlProperties);
859
+ });
860
+
861
+ it("step0an:click on the first standard item check id only with wildcard", async function () {
862
+ var ui5ControlProperties = {
863
+ "elementProperties": {
864
+ "metadata": "sap.m.StandardListItem", "mProperties": {
865
+ "id": "*categoryList-0"
866
+ }
867
+ }
868
+ };
869
+ await ui5.userInteraction.click(ui5ControlProperties);
870
+ });
871
+
872
+ it("step0as:navigate back to main page", async function () {
873
+ var ui5ControlProperties = {
874
+ "elementProperties": { "metadata": "sap.m.Button", "mProperties": { "type": "Back" } },
875
+ "parentProperties": { "metadata": "sap.m.Bar", "mProperties": {} },
876
+ "prevSiblingProperties": {},
877
+ "nextSiblingProperties": { "metadata": "sap.m.Title", "mProperties": {} },
878
+ "childProperties": { "metadata": "sap.ui.core.Icon", "mProperties": { "src": "sap-icon://nav-back" } }
879
+ };
880
+ await ui5.userInteraction.click(ui5ControlProperties);
881
+ });
882
+
883
+ it("step0as:click on the first standard item check id with wildcard", async function () {
884
+ var ui5ControlProperties = {
885
+ "elementProperties": {
886
+ "metadata": "sap.m.StandardListItem", "mProperties": {
887
+ "id": "*categoryList-1",
888
+ "bindingContextPath": "/ProductCategories('AC')"
889
+ }
890
+ }
891
+ };
892
+ await expect(ui5.element.getDisplayed(ui5ControlProperties, 0, 1000))
893
+ .rejects.toThrow(/No visible elements found with selector/);
894
+ });
895
+
896
+ it("step 0i: check first item with aggregation property", async function () {
897
+ //----------------------- Block for sap.m.StandardListItem - Perform Assert -----------------------
898
+ var ui5ControlProperties = {
899
+ "elementProperties": {
900
+ "metadata": "sap.m.StandardListItem", "mProperties": {
901
+ "title": "Accessories", "tooltip": "Open category Accessories"
902
+ }
903
+ },
904
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "headerText": "Categories" } },
905
+ "prevSiblingProperties": {},
906
+ "nextSiblingProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "type": "Active", "title": "Computer System Accessories" } },
907
+ "childProperties": {}
908
+ };
909
+ var Index = 0;
910
+ var attribute = "title"; //eg: title, text, value etc.
911
+ var compareValue = "Accessories"; //expected value
912
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
913
+ });
914
+
915
+ it("step 0k: check first item with aggregation property wildcard", async function () {
916
+ //----------------------- Block for sap.m.StandardListItem - Perform Assert -----------------------
917
+ var ui5ControlProperties = {
918
+ "elementProperties": {
919
+ "metadata": "sap.m.StandardListItem", "mProperties": {
920
+ "title": "Accessories", "tooltip": "*category Acc*"
921
+ }
922
+ },
923
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "headerText": "Categories" } },
924
+ "prevSiblingProperties": {},
925
+ "nextSiblingProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "type": "Active", "title": "Computer System Accessories" } },
926
+ "childProperties": {}
927
+ };
928
+ var Index = 0;
929
+ var attribute = "title"; //eg: title, text, value etc.
930
+ var compareValue = "Accessories"; //expected value
931
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
932
+ });
933
+
934
+ it("step 0y: check first item with aggregation property wildcard", async function () {
935
+ //----------------------- Block for sap.m.StandardListItem - Perform Assert -----------------------
936
+ var ui5ControlProperties = {
937
+ "elementProperties": {
938
+ "metadata": "sap.m.StandardListItem", "mProperties": {
939
+ "title": "Accessories"
940
+ }
941
+ },
942
+ "parentProperties": {"metadata": "sap.m.List", "mProperties": {"headerText": "Categories"}},
943
+ "nextSiblingProperties": {
944
+ "metadata": "sap.m.StandardListItem",
945
+ "mProperties": {"type": "Active", "title": "Computer System Accessories"}
946
+ },
947
+ };
948
+ var Index = 0;
949
+ var attribute = "title"; //eg: title, text, value etc.
950
+ var compareValue = "Accessories"; //expected value
951
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
952
+ });
953
+
954
+ it("step 0v: check first item with association property wrong", async function () {
955
+ //----------------------- Block for sap.m.StandardListItem - Perform Assert -----------------------
956
+ var ui5ControlProperties = {
957
+ "elementProperties": {
958
+ "metadata": "sap.m.StandardListItem", "mProperties": {
959
+ "title": "Accessories", "ariaLabelledBy": "test,test2"
960
+ }
961
+ },
962
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "headerText": "Categories" } },
963
+ "prevSiblingProperties": {},
964
+ "nextSiblingProperties": { "metadata": "sap.m.StandardListItem", "mProperties": { "type": "Active", "title": "Computer System Accessories" } },
965
+ "childProperties": {}
966
+ };
967
+ var Index = 0;
968
+ var attribute = "title"; //eg: title, text, value etc.
969
+ var compareValue = "Accessories"; //expected value
970
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
971
+ .rejects.toThrow(/No visible elements found with selector/);
972
+ });
973
+
974
+ it("step0:check if product list aggregation bindingpath is correct", async function () {
975
+ var ui5ControlProperties = {
976
+ "elementProperties": {
977
+ "metadata": "sap.m.List", "mProperties": {
978
+ "headerText": { "path": "homeCategoryListHeader" },
979
+ "items": { "path": "/ProductCategories" }
980
+ }
981
+ },
982
+ "parentProperties": {
983
+ "metadata": "sap.m.Page", "mProperties": {
984
+ "title": { "path": "homeTitle" }
985
+ }
986
+ },
987
+ "childProperties": {
988
+ "metadata": "sap.m.StandardListItem", "mProperties": {
989
+ "bindingContextPath": "/ProductCategories('AC')",
990
+ "counter": { "path": "NumberOfProducts" },
991
+ "title": { "path": "CategoryName" },
992
+ "tooltip": [{ "path": "i18n>openCategoryProducts" }, { "path": "CategoryName" }]
993
+ }
994
+ }
995
+ };
996
+ var Index = 0;
997
+ var attribute1 = "items"; //eg: title, text, value etc.
998
+ var comparePath1 = "/ProductCategories"; //expected value
999
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index, 100, 30000);
1000
+ });
1001
+
1002
+ it("step0a:click on the first standard item", async function () {
1003
+ var ui5ControlProperties = {
1004
+ "elementProperties": {
1005
+ "metadata": "sap.m.StandardListItem", "mProperties": {
1006
+ "bindingContextPath": "/ProductCategories('AC')"
1007
+ }
1008
+ }
1009
+ };
1010
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
1011
+ await nameField.click();
1012
+ });
1013
+
1014
+ it("step1t:check text for specific list item ancestor with * wildcard", async function () {
1015
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1016
+ var ui5ControlProperties = {
1017
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1018
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": {} },
1019
+ "ancestorProperties": {
1020
+ "metadata": "sap.m.List", "mProperties": {
1021
+ "bindingContextPath": "*",
1022
+ "items": { "path": "Products" }
1023
+ }
1024
+ },
1025
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29*", "unit": "EUR", "state": "None" } },
1026
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1027
+ "childProperties": {}
1028
+ };
1029
+ var Index = 0;
1030
+ var attribute = "text"; //eg: title, text, value etc.
1031
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1032
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1033
+ });
1034
+
1035
+ it("step1e:check text for specific list item ancestor", async function () {
1036
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1037
+ var ui5ControlProperties = {
1038
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video*" } },
1039
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "bindingContextPath": "/Products('HT-2026')" } },
1040
+ "ancestorProperties": {
1041
+ "metadata": "sap.m.List", "mProperties": {
1042
+ "bindingContextPath": "/ProductCategories('AC')",
1043
+ "items": { "path": "Products" }
1044
+ }
1045
+ },
1046
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None", "textDirection": "Inherit", "textAlign": "Right" } },
1047
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1048
+ "childProperties": {}
1049
+ };
1050
+ var Index = 0;
1051
+ var attribute = "text"; //eg: title, text, value etc.
1052
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1053
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1054
+ });
1055
+
1056
+ it("step1v:check text for specific list item ancestor with wild card", async function () {
1057
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1058
+ var ui5ControlProperties = {
1059
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1060
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "bindingContextPath": "/Products('HT-2026')" } },
1061
+ "ancestorProperties": {
1062
+ "metadata": "sap.m.List", "mProperties": {
1063
+ "bindingContextPath": "*ProductCategories*('AC')",
1064
+ "items": { "path": "Products" }
1065
+ }
1066
+ },
1067
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None", "textDirection": "Inherit", "textAlign": "Right" } },
1068
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1069
+ "childProperties": {}
1070
+ };
1071
+ var Index = 0;
1072
+ var attribute = "text"; //eg: title, text, value etc.
1073
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1074
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1075
+ });
1076
+
1077
+ it("step1x:check text for specific list item ancestor with wild card 2", async function () {
1078
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1079
+ var ui5ControlProperties = {
1080
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1081
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "bindingContextPath": "/Products('HT-2026')" } },
1082
+ "ancestorProperties": {
1083
+ "metadata": "sap.m.List", "mProperties": {
1084
+ "bindingContextPath": "ProductCategories('AC')*",
1085
+ "items": { "path": "Products" }
1086
+ }
1087
+ },
1088
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None", "textDirection": "Inherit", "textAlign": "Right" } },
1089
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1090
+ "childProperties": {}
1091
+ };
1092
+ var Index = 0;
1093
+ var attribute = "text"; //eg: title, text, value etc.
1094
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1095
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1096
+ });
1097
+
1098
+ it("step1y:check text for specific list item ancestor with wild card 2", async function () {
1099
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1100
+ var ui5ControlProperties = {
1101
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1102
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "bindingContextPath": "/Products('HT-2026')" } },
1103
+ "ancestorProperties": {
1104
+ "metadata": "sap.m.List", "mProperties": {
1105
+ "bindingContextPath": "*('AC')**",
1106
+ "items": { "path": "Products" }
1107
+ }
1108
+ },
1109
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None", "textDirection": "Inherit", "textAlign": "Right" } },
1110
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1111
+ "childProperties": {}
1112
+ };
1113
+ var Index = 0;
1114
+ var attribute = "text"; //eg: title, text, value etc.
1115
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1116
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1117
+ });
1118
+
1119
+ it("step1f:check text for specific list item ancestor", async function () {
1120
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1121
+ var ui5ControlProperties = {
1122
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1123
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": {} },
1124
+ "ancestorProperties": {
1125
+ "metadata": "sap.m.List", "mProperties": {
1126
+ "bindingContextPath": "/ProductCategories('AC')",
1127
+ "items": { "path": "Products" }
1128
+ }
1129
+ },
1130
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None" } },
1131
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1132
+ "childProperties": {}
1133
+ };
1134
+ var Index = 0;
1135
+ var attribute = "text"; //eg: title, text, value etc.
1136
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1137
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1138
+ });
1139
+
1140
+ it("step1s:check text for specific list item ancestor with wrong wildcard", async function () {
1141
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1142
+ var ui5ControlProperties = {
1143
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1144
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": {} },
1145
+ "ancestorProperties": {
1146
+ "metadata": "sap.m.List", "mProperties": {
1147
+ "bindingContextPath": "*ProductCategories1*('AC')*",
1148
+ "items": { "path": "Products" }
1149
+ }
1150
+ },
1151
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None" } },
1152
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1153
+ "childProperties": {}
1154
+ };
1155
+ var Index = 0;
1156
+ var attribute = "title"; //eg: title, text, value etc.
1157
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1158
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1159
+ .rejects.toThrow(/No visible elements found with selector/);
1160
+ });
1161
+
1162
+ it("step1k:check text for specific list item sibling", async function () {
1163
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1164
+ var ui5ControlProperties = {
1165
+ "elementProperties": {
1166
+ "metadata": "sap.m.ObjectListItem", "mProperties": {
1167
+ "title": "Audio/Video Cable Kit - 4m", "number": "29,99", "numberUnit": "EUR"
1168
+ }
1169
+ },
1170
+ "ancestorProperties": {
1171
+ "metadata": "sap.m.List", "mProperties": {
1172
+ "bindingContextPath": "/ProductCategories('AC')",
1173
+ "items": { "path": "Products" }
1174
+ }
1175
+ },
1176
+ "siblingProperties": {
1177
+ "metadata": "sap.m.ObjectListItem", "mProperties": {
1178
+ "title": "Beam Breaker B-1", "number": "469,00", "numberUnit": "EUR"
1179
+ }
1180
+ }
1181
+ };
1182
+ var Index = 0;
1183
+ var attribute = "title"; //eg: title, text, value etc.
1184
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1185
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1186
+ });
1187
+
1188
+ it("step1i:check text for specific list item sibling wrong property", async function () {
1189
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1190
+ var ui5ControlProperties = {
1191
+ "elementProperties": {
1192
+ "metadata": "sap.m.ObjectListItem", "mProperties": {
1193
+ "title": "Audio/Video Cable Kit - 4m", "number": "29,99", "numberUnit": "EUR"
1194
+ }
1195
+ },
1196
+ "ancestorProperties": {
1197
+ "metadata": "sap.m.List", "mProperties": {
1198
+ "bindingContextPath": "/ProductCategories('AC')",
1199
+ "items": { "path": "Products" }
1200
+ }
1201
+ },
1202
+ "siblingProperties": {
1203
+ "metadata": "sap.m.ObjectListItem", "mProperties": {
1204
+ "title": "Beam Breaker B-2", "number": "469,00", "numberUnit": "EUR"
1205
+ }
1206
+ }
1207
+ };
1208
+ var Index = 0;
1209
+ var attribute = "title"; //eg: title, text, value etc.
1210
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1211
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1212
+ .rejects.toThrow(/No visible elements found with selector/);
1213
+ });
1214
+
1215
+ it("step1h:check text for specific list item ancestor wrong path", async function () {
1216
+ //----------------------- Block for sap.m.Text - Perform Assert -----------------------
1217
+ var ui5ControlProperties = {
1218
+ "elementProperties": { "metadata": "sap.m.Text", "mProperties": { "text": "Audio/Video Cable Kit - 4m" } },
1219
+ "parentProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "bindingContextPath": "/Products('HT-2026')" } },
1220
+ "ancestorProperties": {
1221
+ "metadata": "sap.m.List", "mProperties": {
1222
+ "bindingContextPath": "/ProductCategories('AC')",
1223
+ "items": { "path": "Products1" }
1224
+ }
1225
+ },
1226
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "number": "29,99", "unit": "EUR", "state": "None", "textDirection": "Inherit", "textAlign": "Right" } },
1227
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "text": "Titanium" } },
1228
+ "childProperties": {}
1229
+ };
1230
+ var Index = 0;
1231
+ var attribute = "text"; //eg: title, text, value etc.
1232
+ var compareValue = "Audio/Video Cable Kit - 4m"; //expected value
1233
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1234
+ .rejects.toThrow(/No visible elements found with selector/);
1235
+ });
1236
+
1237
+ it("step0b:navigate back to main page", async function () {
1238
+ var ui5ControlProperties = {
1239
+ "elementProperties": { "metadata": "sap.m.Button", "mProperties": { "type": "Back" } },
1240
+ "parentProperties": { "metadata": "sap.m.Bar", "mProperties": {} },
1241
+ "prevSiblingProperties": {},
1242
+ "nextSiblingProperties": { "metadata": "sap.m.Title", "mProperties": {} },
1243
+ "childProperties": { "metadata": "sap.ui.core.Icon", "mProperties": { "src": "sap-icon://nav-back" } }
1244
+ };
1245
+ await ui5.userInteraction.click(ui5ControlProperties);
1246
+ });
1247
+
1248
+ it("step0c:click on the second standard item", async function () {
1249
+ var ui5ControlProperties = {
1250
+ "elementProperties": {
1251
+ "metadata": "sap.m.StandardListItem", "mProperties": {
1252
+ }
1253
+ }
1254
+ };
1255
+ const nameField = await ui5.element.getDisplayed(ui5ControlProperties);
1256
+ await nameField.click();
1257
+ });
1258
+
1259
+ it("step0d:navigate back to main page", async function () {
1260
+ var ui5ControlProperties = {
1261
+ "elementProperties": { "metadata": "sap.m.Button", "mProperties": { "type": "Back" } },
1262
+ "parentProperties": { "metadata": "sap.m.Bar", "mProperties": {} },
1263
+ "prevSiblingProperties": {},
1264
+ "nextSiblingProperties": { "metadata": "sap.m.Title", "mProperties": {} },
1265
+ "childProperties": { "metadata": "sap.ui.core.Icon", "mProperties": { "src": "sap-icon://nav-back" } }
1266
+ };
1267
+ await ui5.userInteraction.click(ui5ControlProperties);
1268
+ });
1269
+
1270
+ it("step0c:expect main page visible", async function () {
1271
+ var ui5ControlProperties = {
1272
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholder": "Search" } },
1273
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1274
+ "prevSiblingProperties": {},
1275
+ "nextSiblingProperties": {},
1276
+ "childProperties": {}
1277
+ };
1278
+ await ui5.assertion.expectToBeVisible(ui5ControlProperties, 0, 10, 30000);
1279
+ });
1280
+
1281
+ it("step1:enter on Accessories and search", async function () {
1282
+ var ui5ControlProperties = {
1283
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholder": "Search" } },
1284
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1285
+ "prevSiblingProperties": {},
1286
+ "nextSiblingProperties": {},
1287
+ "childProperties": {}
1288
+ };
1289
+ var value = "Flat Basic"; //value to be entered by user
1290
+ await ui5.userInteraction.searchFor(ui5ControlProperties, value, 0, 30000, false);
1291
+ });
1292
+
1293
+ it("step1a:enter on Accessories and search wrong element value", async function () {
1294
+ // "placeholders": "Search1" - wring value for test
1295
+ var ui5ControlProperties = {
1296
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholders": "Search1" } },
1297
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1298
+ "prevSiblingProperties": {},
1299
+ "nextSiblingProperties": {},
1300
+ "childProperties": {}
1301
+ };
1302
+ var value = "Flat Basic"; //value to be entered by user
1303
+ await expect(ui5.userInteraction.searchFor(ui5ControlProperties, value, 0, 1000, false))
1304
+ .rejects.toThrow(/No visible elements found with selector/);
1305
+ });
1306
+
1307
+ it("step1b:enter on Accessories and search with additional property", async function () {
1308
+ var ui5ControlProperties = {
1309
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholder": "Search", "enableSuggestions": "false", "maxLength": "0" } },
1310
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1311
+ "prevSiblingProperties": {},
1312
+ "nextSiblingProperties": {},
1313
+ "childProperties": {}
1314
+ };
1315
+ var value = "Flat Basic"; //value to be entered by user
1316
+ await ui5.userInteraction.searchFor(ui5ControlProperties, value, 0, 30000, false);
1317
+ });
1318
+
1319
+ it("step1c:enter on Accessories and search with wrong boolean additional property", async function () {
1320
+ // "enableSuggestions": "true" - wrong property for test
1321
+ var ui5ControlProperties = {
1322
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholder": "Search", "enableSuggestions": "true", "maxLength": "0" } },
1323
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1324
+ "prevSiblingProperties": {},
1325
+ "nextSiblingProperties": {},
1326
+ "childProperties": {}
1327
+ };
1328
+ var value = "Flat Basic"; //value to be entered by user
1329
+ await expect(ui5.userInteraction.searchFor(ui5ControlProperties, value, 0, 1000, false))
1330
+ .rejects.toThrow(/No visible elements found with selector/);
1331
+ });
1332
+
1333
+ it("step1c:enter on Accessories and search with wrong number additional property", async function () {
1334
+ // "maxLength": "1" - wrong value for test
1335
+ var ui5ControlProperties = {
1336
+ "elementProperties": { "metadata": "sap.m.SearchField", "mProperties": { "placeholder": "Search", "enableSuggestions": "false", "maxLength": "1" } },
1337
+ "parentProperties": { "metadata": "sap.m.Toolbar", "mProperties": {} },
1338
+ "prevSiblingProperties": {},
1339
+ "nextSiblingProperties": {},
1340
+ "childProperties": {}
1341
+ };
1342
+ var value = "Flat Basic"; //value to be entered by user
1343
+ await expect(ui5.userInteraction.searchFor(ui5ControlProperties, value, 0, 1000, false))
1344
+ .rejects.toThrow(/No visible elements found with selector/);
1345
+ });
1346
+
1347
+ it("step2:click on Object item", async function () {
1348
+ var ui5ControlProperties = {
1349
+ "elementProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "numberUnit": "EUR", "type": "Inactive", "title": "Flat Basic", "number": "399,00" } },
1350
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "mode": "SingleSelectMaster", "noDataText": "No products found" } },
1351
+ "prevSiblingProperties": {},
1352
+ "nextSiblingProperties": {}
1353
+ };
1354
+ await ui5.userInteraction.click(ui5ControlProperties);
1355
+ });
1356
+
1357
+ it("step2b:click on Object item wrong child property", async function () {
1358
+ // "src": "./../../../../../../test-resources/sap/ui/documentation/sdk/images/HT-1036.jpg" - wrong value for test
1359
+ var ui5ControlProperties = {
1360
+ "elementProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "numberUnit": "EUR", "type": "Inactive", "title": "Flat Basic", "number": "399,00" } },
1361
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "mode": "SingleSelectMaster", "noDataText": "No products found" } },
1362
+ "prevSiblingProperties": {},
1363
+ "nextSiblingProperties": {},
1364
+ "childProperties": { "metadata": "sap.m.Image", "mProperties": { "src": "./../../../../../../test-resources/sap/ui/documentation/sdk/images/HT-1036.jpg" } }
1365
+ };
1366
+ await expect(ui5.userInteraction.click(ui5ControlProperties, 0, 1000))
1367
+ .rejects.toThrow(/No visible elements found with selector/);
1368
+ });
1369
+
1370
+ it("step2c:click on Object item wrong element property", async function () {
1371
+ // "numberUnit": "EUV" - wrong value for test
1372
+ var ui5ControlProperties = {
1373
+ "elementProperties": { "metadata": "sap.m.ObjectListItem", "mProperties": { "numberUnit": "EUV", "type": "Inactive", "title": "Flat Basic", "number": "399,00" } },
1374
+ "parentProperties": { "metadata": "sap.m.List", "mProperties": { "mode": "SingleSelectMaster", "noDataText": "No products found" } },
1375
+ "prevSiblingProperties": {},
1376
+ "nextSiblingProperties": {}
1377
+ };
1378
+ await expect(ui5.userInteraction.click(ui5ControlProperties, 0, 1000))
1379
+ .rejects.toThrow(/No visible elements found with selector/);
1380
+ });
1381
+
1382
+ it("step3:check if Supplier text exists", async function () {
1383
+ var ui5ControlProperties = {
1384
+ "elementProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "title": "Supplier", "text": "Very Best Screens" } },
1385
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1386
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1387
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1388
+ "childProperties": {}
1389
+ };
1390
+ var Index = 0;
1391
+ var attribute = "title"; //eg: title, text, value etc.
1392
+ var compareValue = "Supplier"; //expected value
1393
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1394
+
1395
+ });
1396
+
1397
+ it("step3a:check if Supplier text exists wrong parent property", async function () {
1398
+ // "title": "Flat Basics" - wrong value for test, should be 'Flat Basic'
1399
+ var ui5ControlProperties = {
1400
+ "elementProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "title": "Supplier", "text": "Very Best Screens" } },
1401
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basics", "number": "399,00" } },
1402
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1403
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1404
+ "childProperties": {}
1405
+ };
1406
+ var Index = 0;
1407
+ var attribute = "title"; //eg: title, text, value etc.
1408
+ var compareValue = "Supplier"; //expected value
1409
+
1410
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1411
+ .rejects.toThrow(/No visible elements found with selector/);
1412
+ });
1413
+
1414
+ it("step3b:check if Supplier text exists wrong prevSibiling property", async function () {
1415
+ // "number": "399" - wring value for test purposes, should be "number": "399,00",
1416
+ var ui5ControlProperties = {
1417
+ "elementProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "title": "Supplier", "text": "Very Best Screens" } },
1418
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1419
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399", "textDirection": "Inherit", "textAlign": "Right" } },
1420
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1421
+ "childProperties": {}
1422
+ };
1423
+ var Index = 0;
1424
+ var attribute = "title"; //eg: title, text, value etc.
1425
+ var compareValue = "Supplier"; //expected value
1426
+
1427
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1428
+ .rejects.toThrow(/No visible elements found with selector/);
1429
+ });
1430
+
1431
+ it("step3c:check if Supplier text exists wrong nextSibiling property", async function () {
1432
+ // "state": "Suckscess" - wrong value for test purposes
1433
+ var ui5ControlProperties = {
1434
+ "elementProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "title": "Supplier", "text": "Very Best Screens" } },
1435
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1436
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1437
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Suckscess" } },
1438
+ "childProperties": {}
1439
+ };
1440
+ var Index = 0;
1441
+ var attribute = "title"; //eg: title, text, value etc.
1442
+ var compareValue = "Supplier"; //expected value
1443
+
1444
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1445
+ .rejects.toThrow(/No visible elements found with selector/);
1446
+ });
1447
+
1448
+ it("step3d:check if Supplier text exists remove childproperties", async function () {
1449
+ var ui5ControlProperties = {
1450
+ "elementProperties": { "metadata": "sap.m.ObjectAttribute", "mProperties": { "title": "Supplier", "text": "Very Best Screens" } },
1451
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1452
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1453
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } }
1454
+ };
1455
+ var Index = 0;
1456
+ var attribute = "title"; //eg: title, text, value etc.
1457
+ var compareValue = "Supplier"; //expected value
1458
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1459
+
1460
+ });
1461
+
1462
+ it("step4:check if Supplier i18n path is correct", async function () {
1463
+ var ui5ControlProperties = {
1464
+ "elementProperties": {
1465
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1466
+ "bindingContextPath": "/Products('HT-1035')",
1467
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1468
+ "text": [{ "path": "SupplierName" }]
1469
+ }
1470
+ },
1471
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1472
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1473
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1474
+ "childProperties": {}
1475
+ };
1476
+ var Index = 0;
1477
+ var attribute1 = "title"; //eg: title, text, value etc.
1478
+ var comparePath1 = "i18n>productSupplierAttributeText"; //expected value
1479
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1480
+ var attribute2 = "text"; //eg: title, text, value etc.
1481
+ var comparePath2 = "SupplierName"; //expected value
1482
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1483
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1484
+ });
1485
+
1486
+ it("step4:check if Supplier context path is correct", async function () {
1487
+ var ui5ControlProperties = {
1488
+ "elementProperties": {
1489
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1490
+ "bindingContextPath": "/Products('HT-1035')",
1491
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1492
+ "text": [{ "path": "SupplierName" }]
1493
+ }
1494
+ },
1495
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1496
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1497
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1498
+ "childProperties": {}
1499
+ };
1500
+ var Index = 0;
1501
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index, 0, 30000);
1502
+ });
1503
+
1504
+ it("step4a:check if Supplier i18n path is correct remove model name", async function () {
1505
+ var ui5ControlProperties = {
1506
+ "elementProperties": {
1507
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1508
+ "bindingContextPath": "/Products('HT-1035')",
1509
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1510
+ "text": [{ "path": "SupplierName" }]
1511
+ }
1512
+ },
1513
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1514
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1515
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1516
+ "childProperties": {}
1517
+ };
1518
+ var Index = 0;
1519
+ var attribute1 = "title"; //eg: title, text, value etc.
1520
+ var comparePath1 = "productSupplierAttributeText"; //expected value
1521
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1522
+ var attribute2 = "text"; //eg: title, text, value etc.
1523
+ var comparePath2 = "SupplierName"; //expected value
1524
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1525
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1526
+ });
1527
+
1528
+ it("step4b:check if Supplier i18n path is correct wrong binding context", async function () {
1529
+ var ui5ControlProperties = {
1530
+ "elementProperties": {
1531
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1532
+ "bindingContextPath": "/Products('HT-1025')", // wrong value for test purposes
1533
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1534
+ "text": [{ "path": "SupplierName" }]
1535
+ }
1536
+ },
1537
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1538
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1539
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1540
+ "childProperties": {}
1541
+ };
1542
+ var Index = 0;
1543
+ await expect(ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index, 1000))
1544
+ .rejects.toThrow(/No visible elements found with selector/);
1545
+ });
1546
+
1547
+ it("step4c:check if Supplier i18n path is correct wrong binding path name", async function () {
1548
+ var ui5ControlProperties = {
1549
+ "elementProperties": {
1550
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1551
+ "bindingContextPath": "/Products('HT-1035')",
1552
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1553
+ "text": [{ "path": "SupplierNames" }] // wrong value for tests purposes
1554
+ }
1555
+ },
1556
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1557
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1558
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1559
+ "childProperties": {}
1560
+ };
1561
+ var attribute2 = "text"; //eg: title, text, value etc.
1562
+ var comparePath2 = "SupplierName"; //expected value
1563
+
1564
+ await expect(ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, 0, 1000))
1565
+ .rejects.toThrow(/No visible elements found with selector/);
1566
+ });
1567
+
1568
+ it("step4d:check if Supplier i18n path is correct no model defined", async function () {
1569
+ var ui5ControlProperties = {
1570
+ "elementProperties": {
1571
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1572
+ "bindingContextPath": "/Products('HT-1035')",
1573
+ "title": [{ "path": "i18n" }],
1574
+ "text": [{ "path": "SupplierName" }]
1575
+ }
1576
+ },
1577
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1578
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1579
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1580
+ "childProperties": {}
1581
+ };
1582
+ var attribute1 = "title"; //eg: title, text, value etc.
1583
+ var comparePath1 = "productSupplierAttributeText"; //expected value
1584
+
1585
+
1586
+ await expect(ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, 0, 1000))
1587
+ .rejects.toThrow(/No visible elements found with selector/);
1588
+ });
1589
+
1590
+ it("step4e:check if Supplier i18n path is correct not array", async function () {
1591
+ var ui5ControlProperties = {
1592
+ "elementProperties": {
1593
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1594
+ "bindingContextPath": "/Products('HT-1035')",
1595
+ "title": { "path": "i18n>productSupplierAttributeText" },
1596
+ "text": [{ "path": "SupplierName" }]
1597
+ }
1598
+ },
1599
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1600
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1601
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1602
+ "childProperties": {}
1603
+ };
1604
+ var Index = 0;
1605
+ var attribute1 = "title"; //eg: title, text, value etc.
1606
+ var comparePath1 = "i18n>productSupplierAttributeText"; //expected value
1607
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1608
+ var attribute2 = "text"; //eg: title, text, value etc.
1609
+ var comparePath2 = "SupplierName"; //expected value
1610
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1611
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1612
+ });
1613
+
1614
+ it("step4f:check if Supplier i18n path is correct only binding path", async function () {
1615
+ var ui5ControlProperties = {
1616
+ "elementProperties": {
1617
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1618
+ "text": [{ "path": "SupplierName" }]
1619
+ }
1620
+ }
1621
+ };
1622
+ var Index = 0;
1623
+ var attribute1 = "title"; //eg: title, text, value etc.
1624
+ var comparePath1 = "i18n>productSupplierAttributeText"; //expected value
1625
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1626
+ var attribute2 = "text"; //eg: title, text, value etc.
1627
+ var comparePath2 = "SupplierName"; //expected value
1628
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1629
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1630
+ });
1631
+
1632
+ it("step4h:check if Supplier i18n path is correct only i18n text key", async function () {
1633
+ var ui5ControlProperties = {
1634
+ "elementProperties": {
1635
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1636
+ "title": { "path": "i18n>productSupplierAttributeText" }
1637
+ }
1638
+ }
1639
+ };
1640
+ var Index = 0;
1641
+ var attribute1 = "title"; //eg: title, text, value etc.
1642
+ var comparePath1 = "i18n>productSupplierAttributeText"; //expected value
1643
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1644
+ var attribute2 = "text"; //eg: title, text, value etc.
1645
+ var comparePath2 = "SupplierName"; //expected value
1646
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1647
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1648
+ });
1649
+
1650
+ it("step4k:check if Supplier i18n path is correct bindings as array", async function () {
1651
+ var ui5ControlProperties = {
1652
+ "elementProperties": {
1653
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1654
+ "bindingContextPath": "/Products('HT-1035')",
1655
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1656
+ "text": [{ "path": "SupplierName" }]
1657
+ }
1658
+ },
1659
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1660
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1661
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1662
+ "childProperties": {}
1663
+ };
1664
+ var Index = 0;
1665
+ var attribute1 = "title"; //eg: title, text, value etc.
1666
+ var comparePath1 = ["i18n>productSupplierAttributeText"]; //expected value
1667
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1668
+ var attribute2 = "text"; //eg: title, text, value etc.
1669
+ var comparePath2 = ["SupplierName"]; //expected value
1670
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute2, comparePath2, Index);
1671
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1672
+ });
1673
+
1674
+ it("step4l:check if Supplier i18n path is wrong bindings as array", async function () {
1675
+ var ui5ControlProperties = {
1676
+ "elementProperties": {
1677
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1678
+ "bindingContextPath": "/Products('HT-1035')",
1679
+ "title": [{ "path": "i18n>productSupplierAttributeText" }],
1680
+ "text": [{ "path": "SupplierName" }]
1681
+ }
1682
+ },
1683
+ "parentProperties": { "metadata": "sap.m.ObjectHeader", "mProperties": { "titleLevel": "H3", "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00" } },
1684
+ "prevSiblingProperties": { "metadata": "sap.m.ObjectNumber", "mProperties": { "unit": "EUR", "number": "399,00", "textDirection": "Inherit", "textAlign": "Right" } },
1685
+ "nextSiblingProperties": { "metadata": "sap.m.ObjectStatus", "mProperties": { "text": "Available", "state": "Success" } },
1686
+ "childProperties": {}
1687
+ };
1688
+ var Index = 0;
1689
+ var attribute1 = "title"; //eg: title, text, value etc.
1690
+ var comparePath1 = ["i18n>productSupplierAttributeText"]; //expected value
1691
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1692
+ var attribute2 = "text"; //eg: title, text, value etc.
1693
+ //var comparePath2 = ["SupplierName", "SupplierNames"];
1694
+ //
1695
+ var elem = await ui5.element.getDisplayed(ui5ControlProperties);
1696
+ var value = await elem.getAttribute("data-" + attribute2 + "-path");
1697
+ await expect(value).not.toContain("SupplierNames");
1698
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1699
+ });
1700
+
1701
+ it("step5:check if Weight i18n path is correct and previous or next is correct", async function () {
1702
+ var ui5ControlProperties = {
1703
+ "elementProperties": {
1704
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1705
+ "bindingContextPath": "/Products('HT-1035')",
1706
+ "title": [{ "path": "i18n>productWeightAttributeText" }],
1707
+ "text": [
1708
+ { "path": "Weight" },
1709
+ { "path": "WeightUnit" },
1710
+ ]
1711
+ }
1712
+ },
1713
+ "parentProperties": {
1714
+ "metadata": "sap.m.ObjectHeader", "mProperties": {
1715
+ "title": { "path": "Name" },
1716
+ "number": { "path": "Price" }
1717
+ }
1718
+ },
1719
+ "prevSiblingProperties": {
1720
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1721
+ "title": { "path": "productDescriptionAttributeText" },
1722
+ "text": { "path": "ShortDescription" }
1723
+ }
1724
+ },
1725
+ "nextSiblingProperties": {
1726
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1727
+ "bindingContextPath": "/Products('HT-1035')",
1728
+ "title": { "path": "productMeasuresAttributeText" },
1729
+ "text": [
1730
+ { "path": "DimensionWidth" },
1731
+ { "path": "Unit" },
1732
+ { "path": "DimensionDepth" },
1733
+ { "path": "DimensionHeight" }
1734
+ ]
1735
+ }
1736
+ }
1737
+ };
1738
+ var Index = 0;
1739
+ var attribute1 = "title"; //eg: title, text, value etc.
1740
+ var comparePath1 = "productWeightAttributeText"; //expected value
1741
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1742
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1743
+ });
1744
+
1745
+ it("step6:check if product measure is correct", async function () {
1746
+ var ui5ControlProperties = {
1747
+ "elementProperties": {
1748
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1749
+ "bindingContextPath": "/Products('HT-1035')",
1750
+ "title": { "path": "productMeasuresAttributeText" },
1751
+ "text": [
1752
+ { "path": "DimensionWidth" },
1753
+ { "path": "Unit" },
1754
+ { "path": "DimensionDepth" },
1755
+ { "path": "DimensionHeight" }
1756
+ ]
1757
+ }
1758
+ }
1759
+ };
1760
+ var Index = 0;
1761
+ var attribute1 = "text"; //eg: title, text, value etc.
1762
+ var comparePath1 = ["DimensionHeight", "Unit"]; //expected value
1763
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1764
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1765
+ });
1766
+
1767
+ it("step6a:check if product measure is correct with bindingpath on children element", async function () {
1768
+ var ui5ControlProperties = {
1769
+ "elementProperties": {
1770
+ "metadata": "sap.m.ObjectHeader", "mProperties": {
1771
+ "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00"
1772
+ }
1773
+ },
1774
+ "childProperties": {
1775
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1776
+ "bindingContextPath": "/Products('HT-1035')",
1777
+ "title": { "path": "productMeasuresAttributeText" },
1778
+ "text": [
1779
+ { "path": "DimensionWidth" },
1780
+ { "path": "Unit" },
1781
+ { "path": "DimensionDepth" },
1782
+ { "path": "DimensionHeight" }
1783
+ ]
1784
+ }
1785
+ }
1786
+ };
1787
+ var Index = 0;
1788
+ var attribute = "number"; //eg: title, text, value etc.
1789
+ var compareValue = "399,00"; //expected value
1790
+ await ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index);
1791
+ });
1792
+
1793
+ it("step6b:check if product measure is correct with wrong bindingpath on children element", async function () {
1794
+ var ui5ControlProperties = {
1795
+ "elementProperties": {
1796
+ "metadata": "sap.m.ObjectHeader", "mProperties": {
1797
+ "numberUnit": "EUR", "title": "Flat Basic", "number": "399,00"
1798
+ }
1799
+ },
1800
+ "childProperties": {
1801
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1802
+ "bindingContextPath": "/Products('HT-1035')",
1803
+ "title": { "path": "productMeasuresAttributeText" },
1804
+ "text": [
1805
+ { "path": "DimensionWidths" },
1806
+ { "path": "Unit" },
1807
+ { "path": "DimensionDepth" },
1808
+ { "path": "DimensionHeight" }
1809
+ ]
1810
+ }
1811
+ }
1812
+ };
1813
+ var Index = 0;
1814
+ var attribute = "number"; //eg: title, text, value etc.
1815
+ var compareValue = "399,00"; //expected value
1816
+
1817
+ await expect(ui5.assertion.expectAttributeToBe(ui5ControlProperties, attribute, compareValue, Index, 1000))
1818
+ .rejects.toThrow(/No visible elements found with selector/);
1819
+ });
1820
+
1821
+ it("step6c:check if product measure is correct with number bindingpath", async function () {
1822
+ var ui5ControlProperties = {
1823
+ "elementProperties": {
1824
+ "metadata": "sap.m.ObjectHeader", "mProperties": {
1825
+ "bindingContextPath": "/Products('HT-1035')",
1826
+ "title": { "path": "Name" },
1827
+ "number": { "path": "Price" },
1828
+ }
1829
+ },
1830
+ "childProperties": {
1831
+ "metadata": "sap.m.ObjectAttribute", "mProperties": {
1832
+ "bindingContextPath": "/Products('HT-1035')",
1833
+ "title": { "path": "productMeasuresAttributeText" },
1834
+ "text": [
1835
+ { "path": "DimensionWidth" },
1836
+ { "path": "Unit" },
1837
+ { "path": "DimensionDepth" },
1838
+ { "path": "DimensionHeight" }
1839
+ ]
1840
+ }
1841
+ }
1842
+ };
1843
+ var Index = 0;
1844
+ var attribute1 = "number"; //eg: title, text, value etc.
1845
+ var comparePath1 = "Price"; //expected value
1846
+ await ui5.assertion.expectBindingPathToBe(ui5ControlProperties, attribute1, comparePath1, Index);
1847
+ await ui5.assertion.expectBindingContextPathToBe(ui5ControlProperties, "/Products('HT-1035')", Index);
1848
+ });
1849
+ });