@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.
- package/.eslintignore +3 -0
- package/.eslintrc.yml +33 -0
- package/.reuse/dep5 +29 -0
- package/LICENSE +201 -0
- package/LICENSES/Apache-2.0.txt +73 -0
- package/README.md +20 -0
- package/docs/contact.md +10 -0
- package/docs/doc.md +5188 -0
- package/docs/gettingStarted/selectors.md +168 -0
- package/docs/gettingStarted/setup.md +8 -0
- package/docs/index.md +14 -0
- package/docs/style/custom.css +24 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +171 -0
- package/lib/index.js.map +1 -0
- package/lib/reuse/authenticator/authConfig.d.ts +54 -0
- package/lib/reuse/authenticator/authConfig.js +55 -0
- package/lib/reuse/authenticator/authConfig.js.map +1 -0
- package/lib/reuse/authenticator/authHandler.d.ts +6 -0
- package/lib/reuse/authenticator/authHandler.js +37 -0
- package/lib/reuse/authenticator/authHandler.js.map +1 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js +36 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/customAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/customAuthenticator.js +60 -0
- package/lib/reuse/authenticator/customAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/formAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/formAuthenticator.js +57 -0
- package/lib/reuse/authenticator/formAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/plainAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/plainAuthenticator.js +20 -0
- package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -0
- package/lib/reuse/data/authenticators.json +16 -0
- package/lib/reuse/helper/clientsideUI5scripts.d.ts +1 -0
- package/lib/reuse/helper/clientsideUI5scripts.js +388 -0
- package/lib/reuse/helper/clientsideUI5scripts.js.map +1 -0
- package/lib/reuse/helper/jsDocGen.d.ts +1 -0
- package/lib/reuse/helper/jsDocGen.js +45 -0
- package/lib/reuse/helper/jsDocGen.js.map +1 -0
- package/lib/reuse/index.d.ts +5 -0
- package/lib/reuse/index.js +89 -0
- package/lib/reuse/index.js.map +1 -0
- package/lib/reuse/modules/common/Common.d.ts +12 -0
- package/lib/reuse/modules/common/Common.js +21 -0
- package/lib/reuse/modules/common/Common.js.map +1 -0
- package/lib/reuse/modules/common/assertion.d.ts +65 -0
- package/lib/reuse/modules/common/assertion.js +91 -0
- package/lib/reuse/modules/common/assertion.js.map +1 -0
- package/lib/reuse/modules/common/constants/date.constants.d.ts +8 -0
- package/lib/reuse/modules/common/constants/date.constants.js +13 -0
- package/lib/reuse/modules/common/constants/date.constants.js.map +1 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.d.ts +9 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js +14 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/common/date.d.ts +84 -0
- package/lib/reuse/modules/common/date.js +164 -0
- package/lib/reuse/modules/common/date.js.map +1 -0
- package/lib/reuse/modules/common/navigation.d.ts +26 -0
- package/lib/reuse/modules/common/navigation.js +56 -0
- package/lib/reuse/modules/common/navigation.js.map +1 -0
- package/lib/reuse/modules/common/types/date.types.d.ts +2 -0
- package/lib/reuse/modules/common/types/date.types.js +3 -0
- package/lib/reuse/modules/common/types/date.types.js.map +1 -0
- package/lib/reuse/modules/common/userInteraction.d.ts +104 -0
- package/lib/reuse/modules/common/userInteraction.js +199 -0
- package/lib/reuse/modules/common/userInteraction.js.map +1 -0
- package/lib/reuse/modules/nonUi5/NonUi5.d.ts +12 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js +21 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js.map +1 -0
- package/lib/reuse/modules/nonUi5/assertion.d.ts +62 -0
- package/lib/reuse/modules/nonUi5/assertion.js +127 -0
- package/lib/reuse/modules/nonUi5/assertion.js.map +1 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.d.ts +6 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js +11 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/nonUi5/element.d.ts +286 -0
- package/lib/reuse/modules/nonUi5/element.js +639 -0
- package/lib/reuse/modules/nonUi5/element.js.map +1 -0
- package/lib/reuse/modules/nonUi5/navigation.d.ts +17 -0
- package/lib/reuse/modules/nonUi5/navigation.js +44 -0
- package/lib/reuse/modules/nonUi5/navigation.js.map +1 -0
- package/lib/reuse/modules/nonUi5/userInteraction.d.ts +170 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js +415 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/service/Service.d.ts +8 -0
- package/lib/reuse/modules/service/Service.js +17 -0
- package/lib/reuse/modules/service/Service.js.map +1 -0
- package/lib/reuse/modules/service/odata.d.ts +177 -0
- package/lib/reuse/modules/service/odata.js +347 -0
- package/lib/reuse/modules/service/odata.js.map +1 -0
- package/lib/reuse/modules/service/rest.d.ts +66 -0
- package/lib/reuse/modules/service/rest.js +168 -0
- package/lib/reuse/modules/service/rest.js.map +1 -0
- package/lib/reuse/modules/service/soap.d.ts +0 -0
- package/lib/reuse/modules/service/soap.js +2 -0
- package/lib/reuse/modules/service/soap.js.map +1 -0
- package/lib/reuse/modules/ui5/Ui5.d.ts +34 -0
- package/lib/reuse/modules/ui5/Ui5.js +41 -0
- package/lib/reuse/modules/ui5/Ui5.js.map +1 -0
- package/lib/reuse/modules/ui5/assertion.d.ts +183 -0
- package/lib/reuse/modules/ui5/assertion.js +493 -0
- package/lib/reuse/modules/ui5/assertion.js.map +1 -0
- package/lib/reuse/modules/ui5/confirmationDialog.d.ts +86 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js +145 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.d.ts +4 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js +9 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js.map +1 -0
- package/lib/reuse/modules/ui5/control.d.ts +84 -0
- package/lib/reuse/modules/ui5/control.js +132 -0
- package/lib/reuse/modules/ui5/control.js.map +1 -0
- package/lib/reuse/modules/ui5/date.d.ts +48 -0
- package/lib/reuse/modules/ui5/date.js +153 -0
- package/lib/reuse/modules/ui5/date.js.map +1 -0
- package/lib/reuse/modules/ui5/element.d.ts +160 -0
- package/lib/reuse/modules/ui5/element.js +349 -0
- package/lib/reuse/modules/ui5/element.js.map +1 -0
- package/lib/reuse/modules/ui5/errorDialog.d.ts +39 -0
- package/lib/reuse/modules/ui5/errorDialog.js +65 -0
- package/lib/reuse/modules/ui5/errorDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/footerBar.d.ts +153 -0
- package/lib/reuse/modules/ui5/footerBar.js +240 -0
- package/lib/reuse/modules/ui5/footerBar.js.map +1 -0
- package/lib/reuse/modules/ui5/mockserver.d.ts +154 -0
- package/lib/reuse/modules/ui5/mockserver.js +665 -0
- package/lib/reuse/modules/ui5/mockserver.js.map +1 -0
- package/lib/reuse/modules/ui5/navigation.d.ts +103 -0
- package/lib/reuse/modules/ui5/navigation.js +275 -0
- package/lib/reuse/modules/ui5/navigation.js.map +1 -0
- package/lib/reuse/modules/ui5/navigationBar.d.ts +48 -0
- package/lib/reuse/modules/ui5/navigationBar.js +141 -0
- package/lib/reuse/modules/ui5/navigationBar.js.map +1 -0
- package/lib/reuse/modules/ui5/qunit.d.ts +17 -0
- package/lib/reuse/modules/ui5/qunit.js +52 -0
- package/lib/reuse/modules/ui5/qunit.js.map +1 -0
- package/lib/reuse/modules/ui5/session.d.ts +117 -0
- package/lib/reuse/modules/ui5/session.js +374 -0
- package/lib/reuse/modules/ui5/session.js.map +1 -0
- package/lib/reuse/modules/ui5/table.d.ts +61 -0
- package/lib/reuse/modules/ui5/table.js +188 -0
- package/lib/reuse/modules/ui5/table.js.map +1 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.d.ts +2 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js +3 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js.map +1 -0
- package/lib/reuse/modules/ui5/userInteraction.d.ts +304 -0
- package/lib/reuse/modules/ui5/userInteraction.js +690 -0
- package/lib/reuse/modules/ui5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/util/Util.d.ts +22 -0
- package/lib/reuse/modules/util/Util.js +27 -0
- package/lib/reuse/modules/util/Util.js.map +1 -0
- package/lib/reuse/modules/util/browser.d.ts +167 -0
- package/lib/reuse/modules/util/browser.js +367 -0
- package/lib/reuse/modules/util/browser.js.map +1 -0
- package/lib/reuse/modules/util/console.d.ts +56 -0
- package/lib/reuse/modules/util/console.js +152 -0
- package/lib/reuse/modules/util/console.js.map +1 -0
- package/lib/reuse/modules/util/constants/formatter.constants.d.ts +11 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js +16 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js.map +1 -0
- package/lib/reuse/modules/util/data.d.ts +36 -0
- package/lib/reuse/modules/util/data.js +87 -0
- package/lib/reuse/modules/util/data.js.map +1 -0
- package/lib/reuse/modules/util/file.d.ts +55 -0
- package/lib/reuse/modules/util/file.js +159 -0
- package/lib/reuse/modules/util/file.js.map +1 -0
- package/lib/reuse/modules/util/formatter.d.ts +90 -0
- package/lib/reuse/modules/util/formatter.js +210 -0
- package/lib/reuse/modules/util/formatter.js.map +1 -0
- package/lib/reuse/modules/util/function.d.ts +48 -0
- package/lib/reuse/modules/util/function.js +161 -0
- package/lib/reuse/modules/util/function.js.map +1 -0
- package/lib/reuse/modules/util/system.d.ts +17 -0
- package/lib/reuse/modules/util/system.js +58 -0
- package/lib/reuse/modules/util/system.js.map +1 -0
- package/lib/reuse/modules/util/types/formatter.types.d.ts +2 -0
- package/lib/reuse/modules/util/types/formatter.types.js +3 -0
- package/lib/reuse/modules/util/types/formatter.types.js.map +1 -0
- package/lib/scripts/clientsideUI5scripts.d.ts +1 -0
- package/lib/scripts/clientsideUI5scripts.js +315 -0
- package/lib/scripts/clientsideUI5scripts.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchange.d.ts +1 -0
- package/lib/scripts/dataExchange/dataExchange.js +224 -0
- package/lib/scripts/dataExchange/dataExchange.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.d.ts +63 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js +211 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -0
- package/lib/scripts/hooks/after.d.ts +8 -0
- package/lib/scripts/hooks/after.js +30 -0
- package/lib/scripts/hooks/after.js.map +1 -0
- package/lib/scripts/hooks/before.d.ts +8 -0
- package/lib/scripts/hooks/before.js +38 -0
- package/lib/scripts/hooks/before.js.map +1 -0
- package/lib/scripts/hooks/beforeSession.d.ts +8 -0
- package/lib/scripts/hooks/beforeSession.js +37 -0
- package/lib/scripts/hooks/beforeSession.js.map +1 -0
- package/lib/scripts/hooks/onComplete.d.ts +9 -0
- package/lib/scripts/hooks/onComplete.js +31 -0
- package/lib/scripts/hooks/onComplete.js.map +1 -0
- package/lib/scripts/hooks/onPrepare.d.ts +6 -0
- package/lib/scripts/hooks/onPrepare.js +36 -0
- package/lib/scripts/hooks/onPrepare.js.map +1 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.d.ts +2 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js +193 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/browserLog.d.ts +2 -0
- package/lib/scripts/hooks/utils/browserLog.js +39 -0
- package/lib/scripts/hooks/utils/browserLog.js.map +1 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.d.ts +9 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js +46 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/decryption.d.ts +13 -0
- package/lib/scripts/hooks/utils/decryption.js +90 -0
- package/lib/scripts/hooks/utils/decryption.js.map +1 -0
- package/lib/scripts/hooks/utils/lib.d.ts +4 -0
- package/lib/scripts/hooks/utils/lib.js +330 -0
- package/lib/scripts/hooks/utils/lib.js.map +1 -0
- package/lib/scripts/hooks/utils/locatorCommands.d.ts +10 -0
- package/lib/scripts/hooks/utils/locatorCommands.js +216 -0
- package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -0
- package/lib/scripts/locators/qmateLocator.d.ts +1 -0
- package/lib/scripts/locators/qmateLocator.js +1384 -0
- package/lib/scripts/locators/qmateLocator.js.map +1 -0
- package/lib/scripts/locators/uiveri5Locator.d.ts +1 -0
- package/lib/scripts/locators/uiveri5Locator.js +21 -0
- package/lib/scripts/locators/uiveri5Locator.js.map +1 -0
- package/mkdocs.yml +53 -0
- package/package.json +152 -0
- package/test/.eslintrc.yml +6 -0
- package/test/authenticator/package.json +13 -0
- package/test/authenticator/staticLogin/configCustom.js +22 -0
- package/test/authenticator/staticLogin/configCustomViaConfig.js +20 -0
- package/test/authenticator/staticLogin/configFiori.js +19 -0
- package/test/authenticator/staticLogin/configPlain.js +17 -0
- package/test/authenticator/staticLogin/configSapCloud.js +18 -0
- package/test/authenticator/staticLogin/html/custom.html +10 -0
- package/test/authenticator/staticLogin/html/fiori.html +10 -0
- package/test/authenticator/staticLogin/html/home.html +7 -0
- package/test/authenticator/staticLogin/html/sapCloud.html +10 -0
- package/test/authenticator/staticLogin/specs/custom.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/customViaConfig.spec.js +10 -0
- package/test/authenticator/staticLogin/specs/fiori.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/plain.spec.js +64 -0
- package/test/authenticator/staticLogin/specs/sapCloud.spec.js +6 -0
- package/test/authenticator/staticLogin/staticServerConfig.js +20 -0
- package/test/authenticator/systemLogin/configCustom.js +26 -0
- package/test/authenticator/systemLogin/configFiori.js +24 -0
- package/test/authenticator/systemLogin/configPlain.js +22 -0
- package/test/authenticator/systemLogin/configSapCloud.js +24 -0
- package/test/authenticator/systemLogin/specs/custom.spec.js +13 -0
- package/test/authenticator/systemLogin/specs/fiori.spec.js +12 -0
- package/test/authenticator/systemLogin/specs/plain.spec.js +21 -0
- package/test/authenticator/systemLogin/specs/sapCloud.spec.js +13 -0
- package/test/core/README.md +17 -0
- package/test/core/dataExchange/config.export.js +56 -0
- package/test/core/dataExchange/config.import.js +47 -0
- package/test/core/dataExchange/config.js +52 -0
- package/test/core/dataExchange/config.parallel.group.js +61 -0
- package/test/core/dataExchange/config.parallel.js +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/dummy1.txt +0 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/Limit-Purchase-Order.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/ServicePurchaseOrder.2Items.json +67 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchaseRequisition_HI.json +31 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/LimitPurchaseOrder.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderItems.json +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderWithScheduline.json +27 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServiceAndMaterialPurchaseOrder.json +65 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder.json +39 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder2Items.json +67 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/data.json +5 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy1.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy2.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/empty.json +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/purchaseRequisition.json +31 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/supplierInvoice.json +17 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/webUser.json +6 -0
- package/test/core/dataExchange/data/ui/moreDataFolder/anotherUser.json +6 -0
- package/test/core/dataExchange/data/ui/user.json +6 -0
- package/test/core/dataExchange/data/ui/webUser.json +6 -0
- package/test/core/dataExchange/specs/export.fast.spec.js +48 -0
- package/test/core/dataExchange/specs/export.slow.spec.js +50 -0
- package/test/core/dataExchange/specs/export.spec.js +103 -0
- package/test/core/dataExchange/specs/import.spec.js +144 -0
- package/test/core/dataExchange/specs/importExport.spec.js +196 -0
- package/test/core/dataExchange/utils.js +160 -0
- package/test/core/functional/README.md +30 -0
- package/test/core/functional/chaining/chaining.test.js +137 -0
- package/test/core/functional/chaining/test.conf.js +31 -0
- package/test/core/functional/locators/ancestorProperties.test.js +99 -0
- package/test/core/functional/locators/childProperties.test.js +40 -0
- package/test/core/functional/locators/descendantProperties.test.js +107 -0
- package/test/core/functional/locators/domProperties.test.js +60 -0
- package/test/core/functional/locators/elementProperties.test.js +114 -0
- package/test/core/functional/locators/mixedProperties.test.js +170 -0
- package/test/core/functional/locators/parentProperties.test.js +47 -0
- package/test/core/functional/locators/siblingProperties.test.js +120 -0
- package/test/core/functional/locators/test.locator.conf.js +38 -0
- package/test/core/functional/locators/utils.js +6 -0
- package/test/core/functional/nativeBrowser/runInBrowser.test.js +111 -0
- package/test/core/functional/nativeBrowser/test.conf.js +31 -0
- package/test/core/functional/nonUi5/basic.test.js +10 -0
- package/test/core/functional/nonUi5/getWithDomElement.test.js +51 -0
- package/test/core/functional/nonUi5/getWithDomElements.test.js +141 -0
- package/test/core/functional/nonUi5/test.conf.js +32 -0
- package/test/core/functional/ui5Properties/getAggregations.test.js +102 -0
- package/test/core/functional/ui5Properties/getAssociations.test.js +24 -0
- package/test/core/functional/ui5Properties/getBindingInfos.test.js +71 -0
- package/test/core/functional/ui5Properties/getProperties.test.js +226 -0
- package/test/core/functional/ui5Properties/test.conf.js +16 -0
- package/test/core/functional/uiveri5/sample.test.js +61 -0
- package/test/core/functional/uiveri5/test.conf.js +31 -0
- package/test/core/package-lock.json +0 -0
- package/test/core/package.json +12 -0
- package/test/core/testIntegration/config.js +17 -0
- package/test/core/testIntegration/configMultiCombo.js +17 -0
- package/test/core/testIntegration/configTable.js +18 -0
- package/test/core/testIntegration/filters1.spec.js +1849 -0
- package/test/core/testIntegration/multicombobox.spec.js +134 -0
- package/test/core/testIntegration/table.spec.js +80 -0
- package/test/helper/configurations/base.conf.js +43 -0
- package/test/helper/configurations/chrome.conf.js +47 -0
- package/test/helper/configurations/chrome.headless.conf.js +45 -0
- package/test/helper/configurations/sauce.labs.conf.js +37 -0
- package/test/helper/configurations/sauce.labs.tunnel.conf.js +39 -0
- package/test/helper/sleeper.js +19 -0
- package/test/helper/utils.js +15 -0
- package/test/helper/website/buttons.html +85 -0
- package/test/helper/website/checkBox.html +83 -0
- package/test/helper/website/dragAndDropFailing.html +83 -0
- package/test/helper/website/dragAndDropWdioExample.html +41 -0
- package/test/helper/website/dropdown.html +78 -0
- package/test/helper/website/forms.html +82 -0
- package/test/helper/website/hiddenAndVisible.html +60 -0
- package/test/helper/website/main.css +36 -0
- package/test/helper/website/scrollPage.html +261 -0
- package/test/helper/website/style.css +52 -0
- package/test/helper/website/tables.html +140 -0
- package/test/helper/website/waitForElements.html +73 -0
- package/test/reuse/common/assertion/expectDefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectEqual.spec.js +52 -0
- package/test/reuse/common/assertion/expectFalse.spec.js +9 -0
- package/test/reuse/common/assertion/expectTrue.spec.js +9 -0
- package/test/reuse/common/assertion/expectUndefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectUnequal.spec.js +25 -0
- package/test/reuse/common/assertion/expectUrlToBe.spec.js +27 -0
- package/test/reuse/common/assertion/test.assertion.conf.js +59 -0
- package/test/reuse/common/date/calculate.spec.js +163 -0
- package/test/reuse/common/date/getNextMonth.spec.js +105 -0
- package/test/reuse/common/date/getNextYear.spec.js +72 -0
- package/test/reuse/common/date/getPreviousMonth.spec.js +71 -0
- package/test/reuse/common/date/getPreviousYear.spec.js +72 -0
- package/test/reuse/common/date/getSpecific.spec.js +63 -0
- package/test/reuse/common/date/getToday.spec.js +78 -0
- package/test/reuse/common/date/getTomorrow.spec.js +72 -0
- package/test/reuse/common/date/test.date.conf.js +19 -0
- package/test/reuse/common/date/utils.js +6 -0
- package/test/reuse/common/navigation/navigateToUrl.spec.js +28 -0
- package/test/reuse/common/navigation/navigateToUrlAndRetry.spec.js +27 -0
- package/test/reuse/common/navigation/test.navigation.conf.js +25 -0
- package/test/reuse/common/userInteraction/clearAndFillActive.spec.js +100 -0
- package/test/reuse/common/userInteraction/clearAndFillActiveAndRetry.spec.js +106 -0
- package/test/reuse/common/userInteraction/fillActive.spec.js +230 -0
- package/test/reuse/common/userInteraction/fillActiveAndRetry.spec.js +172 -0
- package/test/reuse/common/userInteraction/pressKey.spec.js +105 -0
- package/test/reuse/common/userInteraction/test.userInteraction.conf.js +53 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToBe.spec.js +45 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToContain.spec.js +43 -0
- package/test/reuse/nonUi5/assertion/expectToBeNotVisible.spec.js +37 -0
- package/test/reuse/nonUi5/assertion/expectToBeVisible.spec.js +63 -0
- package/test/reuse/nonUi5/assertion/expectValueToBe.spec.js +25 -0
- package/test/reuse/nonUi5/assertion/test.assertion.conf.js +60 -0
- package/test/reuse/nonUi5/assertion/test.assertion.sauceLabs.conf.js +64 -0
- package/test/reuse/nonUi5/element/getAllDisplayed.spec.js +39 -0
- package/test/reuse/nonUi5/element/getAttributeValue.spec.js +58 -0
- package/test/reuse/nonUi5/element/getByChild.spec.js +70 -0
- package/test/reuse/nonUi5/element/getByClass.spec.js +64 -0
- package/test/reuse/nonUi5/element/getByCss.spec.js +65 -0
- package/test/reuse/nonUi5/element/getByCssContainingText.spec.js +83 -0
- package/test/reuse/nonUi5/element/getById.spec.js +35 -0
- package/test/reuse/nonUi5/element/getByName.spec.js +30 -0
- package/test/reuse/nonUi5/element/getByParent.spec.js +71 -0
- package/test/reuse/nonUi5/element/getByXPath.spec.js +30 -0
- package/test/reuse/nonUi5/element/getValue.spec.js +51 -0
- package/test/reuse/nonUi5/element/highlight.spec.js +18 -0
- package/test/reuse/nonUi5/element/isPresent.spec.js +39 -0
- package/test/reuse/nonUi5/element/isPresentByCss.spec.js +73 -0
- package/test/reuse/nonUi5/element/isPresentByXPath.spec.js +31 -0
- package/test/reuse/nonUi5/element/setInnerHTML.spec.js +23 -0
- package/test/reuse/nonUi5/element/test.element.conf.js +55 -0
- package/test/reuse/nonUi5/element/test.element.sauceLabs.conf.js +58 -0
- package/test/reuse/nonUi5/element/waitForAll.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBeClickable.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBePresent.spec.js +32 -0
- package/test/reuse/nonUi5/element/waitToBeVisible.spec.js +36 -0
- package/test/reuse/nonUi5/navigation/navigateToApplication.spec.js +13 -0
- package/test/reuse/nonUi5/navigation/test.navigation.conf.js +14 -0
- package/test/reuse/nonUi5/userInteraction/checkAttributeAndValue.spec.js +135 -0
- package/test/reuse/nonUi5/userInteraction/clear.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFill.spec.js +51 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFillAndRetry.spec.js +58 -0
- package/test/reuse/nonUi5/userInteraction/clearAndRetry.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/click.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickAndRetry.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickElementInSvg.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/doubleClick.spec.js +22 -0
- package/test/reuse/nonUi5/userInteraction/dragAndDrop.spec.js +40 -0
- package/test/reuse/nonUi5/userInteraction/fill.spec.js +37 -0
- package/test/reuse/nonUi5/userInteraction/fillAndRetry.spec.js +39 -0
- package/test/reuse/nonUi5/userInteraction/mouseOverElement.spec.js +36 -0
- package/test/reuse/nonUi5/userInteraction/moveCursorAndClick.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/rightClick.spec.js +13 -0
- package/test/reuse/nonUi5/userInteraction/scrollToElement.spec.js +35 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.conf.js +72 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.sauceLabs.conf.js +78 -0
- package/test/reuse/service/rest/db.json +8 -0
- package/test/reuse/service/rest/delete.spec.js +20 -0
- package/test/reuse/service/rest/get.spec.js +19 -0
- package/test/reuse/service/rest/init.spec.js +35 -0
- package/test/reuse/service/rest/patch.spec.js +29 -0
- package/test/reuse/service/rest/post.spec.js +37 -0
- package/test/reuse/service/rest/test.rest.conf.js +18 -0
- package/test/reuse/ui5/assertion/expectAttributeToBe.spec.js +106 -0
- package/test/reuse/ui5/assertion/expectAttributeToContain.spec.js +78 -0
- package/test/reuse/ui5/assertion/expectBindingContextPathToBe.spec.js +103 -0
- package/test/reuse/ui5/assertion/expectBindingPathToBe.spec.js +164 -0
- package/test/reuse/ui5/assertion/expectMessageToastTextToBe.spec.js +43 -0
- package/test/reuse/ui5/assertion/expectTextToBe.spec.js +39 -0
- package/test/reuse/ui5/assertion/expectToBeEnabled.spec.js +90 -0
- package/test/reuse/ui5/assertion/expectToBeNotEnabled.spec.js +62 -0
- package/test/reuse/ui5/assertion/expectToBeNotVisible.spec.js +52 -0
- package/test/reuse/ui5/assertion/expectToBeVisible.spec.js +69 -0
- package/test/reuse/ui5/assertion/expectToBeVisibleInViewport.spec.js +49 -0
- package/test/reuse/ui5/assertion/expectValidationError.spec.js +54 -0
- package/test/reuse/ui5/assertion/expectValidationSuccess.spec.js +53 -0
- package/test/reuse/ui5/assertion/expectValueToBe.spec.js +57 -0
- package/test/reuse/ui5/assertion/expectValueToBeDefined.spec.js +35 -0
- package/test/reuse/ui5/assertion/test.assertion.conf.js +28 -0
- package/test/reuse/ui5/assertion/test.assertion.sauceLab.conf.js +37 -0
- package/test/reuse/ui5/confirmationDialog/clickCancel.spec.js +88 -0
- package/test/reuse/ui5/confirmationDialog/clickCreate.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickDelete.spec.js +89 -0
- package/test/reuse/ui5/confirmationDialog/clickNo.spec.js +96 -0
- package/test/reuse/ui5/confirmationDialog/clickOk.spec.js +66 -0
- package/test/reuse/ui5/confirmationDialog/clickRevokeApproval.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickYes.spec.js +70 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +20 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/control/execute.spec.js +29 -0
- package/test/reuse/ui5/control/getAggregationProperty.spec.js +29 -0
- package/test/reuse/ui5/control/getAssociationProperty.spec.js +1 -0
- package/test/reuse/ui5/control/getBindingContextPathProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getPropertyBinding.spec.js +30 -0
- package/test/reuse/ui5/control/test.control.conf.js +19 -0
- package/test/reuse/ui5/control/test.control.sauceLab.conf.js +30 -0
- package/test/reuse/ui5/date/fillRange.spec.js +53 -0
- package/test/reuse/ui5/date/pick.spec.js +136 -0
- package/test/reuse/ui5/date/pickRange.spec.js +143 -0
- package/test/reuse/ui5/date/test.date.conf.js +14 -0
- package/test/reuse/ui5/date/test.date.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/element/getAllDisplayed.spec.js +71 -0
- package/test/reuse/ui5/element/getBindingValue.spec.js +78 -0
- package/test/reuse/ui5/element/getByChild.spec.js +124 -0
- package/test/reuse/ui5/element/getByParent.spec.js +134 -0
- package/test/reuse/ui5/element/getByText.spec.js +67 -0
- package/test/reuse/ui5/element/getDisplayed.spec.js +82 -0
- package/test/reuse/ui5/element/getId.spec.js +72 -0
- package/test/reuse/ui5/element/getPropertyValue.spec.js +91 -0
- package/test/reuse/ui5/element/highlight.spec.js +46 -0
- package/test/reuse/ui5/element/isVisible.spec.js +68 -0
- package/test/reuse/ui5/element/test.element.conf.js +22 -0
- package/test/reuse/ui5/element/test.element.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/errorDialog/clickClose.spec.js +31 -0
- package/test/reuse/ui5/errorDialog/expectToBeVisible.spec.js +30 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.conf.js +13 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/formatter/addRemoveLeadingZeros.spec.js +18 -0
- package/test/reuse/ui5/formatter/extractNumberFromString.spec.js +34 -0
- package/test/reuse/ui5/formatter/formatDate.spec.js +103 -0
- package/test/reuse/ui5/formatter/test.formatter.conf.js +14 -0
- package/test/reuse/ui5/formatter/test.formatter.sauceLab.conf.js +24 -0
- package/test/reuse/ui5/mockserver_qunit/Component.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/LICENSE.txt +957 -0
- package/test/reuse/ui5/mockserver_qunit/NOTICE.txt +1 -0
- package/test/reuse/ui5/mockserver_qunit/controller/App.controller.js +37 -0
- package/test/reuse/ui5/mockserver_qunit/controller/BaseController.js +30 -0
- package/test/reuse/ui5/mockserver_qunit/controller/Home.controller.js +27 -0
- package/test/reuse/ui5/mockserver_qunit/controller/NotFound.controller.js +34 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Employee.controller.js +64 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/EmployeeList.controller.js +22 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Resume.controller.js +83 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverview.controller.js +11 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverviewContent.controller.js +192 -0
- package/test/reuse/ui5/mockserver_qunit/i18n/i18n.properties +42 -0
- package/test/reuse/ui5/mockserver_qunit/index.html +21 -0
- package/test/reuse/ui5/mockserver_qunit/initMockServer.js +16 -0
- package/test/reuse/ui5/mockserver_qunit/localService/metadata.xml +61 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Employees.json +155 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Resumes.json +65 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserver.js +146 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserverLoadAllData.js +75 -0
- package/test/reuse/ui5/mockserver_qunit/manifest.json +169 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServer.html +63 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServerAllData.html +68 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/config.js +92 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/qunitExecution/specs/runQUnitTests.spec.js +14 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/specs/testDisplayNotFound.spec.js +71 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Employees.json +204 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Resumes.json +114 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/testShowEmployeeList.json +1 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/specs/testShowEmployeeList.spec.js +118 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/constants.js +25 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockDataMapper.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockHelper.js +222 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/allTests.js +6 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/unitTests.qunit.html +38 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/utils/Conversions.js +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/App.view.xml +9 -0
- package/test/reuse/ui5/mockserver_qunit/view/Home.view.xml +12 -0
- package/test/reuse/ui5/mockserver_qunit/view/NotFound.view.xml +11 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Employee.view.xml +52 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/EmployeeList.view.xml +24 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Resume.view.xml +35 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeHobbies.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeNotes.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeProjects.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverview.view.xml +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewContent.view.xml +43 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewTop.view.xml +3 -0
- package/test/reuse/ui5/navigation/closePopups.spec.js +16 -0
- package/test/reuse/ui5/navigation/expectUnsupportedNavigationPopup.spec.js +81 -0
- package/test/reuse/ui5/navigation/navigateToApplication.spec.js +148 -0
- package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +153 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParams.spec.js +63 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParamsAndRetry.spec.js +64 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplication.spec.js +45 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplicationAndRetry.spec.js +43 -0
- package/test/reuse/ui5/navigation/test.navigation.conf.js +17 -0
- package/test/reuse/ui5/navigation/test.navigation.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/navigation/test.navigation.static.conf.js +34 -0
- package/test/reuse/ui5/navigation/test.navigation.static.sauceLab.conf.js +41 -0
- package/test/reuse/ui5/navigation/website/main.css +36 -0
- package/test/reuse/ui5/navigation/website/main.html +50 -0
- package/test/reuse/ui5/navigationBar/clickBack.spec.js +38 -0
- package/test/reuse/ui5/navigationBar/clickUserIcon.spec.js +36 -0
- package/test/reuse/ui5/navigationBar/expectPageTitle.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/expectShellHeader.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.conf.js +17 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.sauceLab.conf.js +28 -0
- package/test/reuse/ui5/session/login.spec.js +78 -0
- package/test/reuse/ui5/session/loginFiori.spec.js +52 -0
- package/test/reuse/ui5/session/loginSapCloud.spec.js +51 -0
- package/test/reuse/ui5/session/logout.spec.js +48 -0
- package/test/reuse/ui5/session/switchUser.spec.js +48 -0
- package/test/reuse/ui5/session/test.session.conf.js +20 -0
- package/test/reuse/ui5/session/test.session.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/table/clickSettingsButton.spec.js +58 -0
- package/test/reuse/ui5/table/sortColumnAscending.spec.js +84 -0
- package/test/reuse/ui5/table/sortColumnDescending.spec.js +84 -0
- package/test/reuse/ui5/table/test.table.conf.js +14 -0
- package/test/reuse/ui5/table/test.table.sauceLab.conf.js +25 -0
- package/test/reuse/ui5/table/test.table.sauceLab.tunnel.conf.js +25 -0
- package/test/reuse/ui5/userInteraction/clear.spec.js +75 -0
- package/test/reuse/ui5/userInteraction/clearAndFill.spec.js +157 -0
- package/test/reuse/ui5/userInteraction/clearAndFillAndRetry.spec.js +132 -0
- package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInput.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clearAndRetry.spec.js +57 -0
- package/test/reuse/ui5/userInteraction/click.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clickAndRetry.spec.js +52 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrow.spec.js +87 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrowAndRetry.spec.js +147 -0
- package/test/reuse/ui5/userInteraction/clickTab.spec.js +59 -0
- package/test/reuse/ui5/userInteraction/doubleClick.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/dragAndDrop.spec.js +34 -0
- package/test/reuse/ui5/userInteraction/fill.spec.js +114 -0
- package/test/reuse/ui5/userInteraction/fillAndRetry.spec.js +120 -0
- package/test/reuse/ui5/userInteraction/mouseOverElement.spec.js +55 -0
- package/test/reuse/ui5/userInteraction/openF4Help.spec.js +56 -0
- package/test/reuse/ui5/userInteraction/rightClick.spec.js +72 -0
- package/test/reuse/ui5/userInteraction/scrollToElement.spec.js +89 -0
- package/test/reuse/ui5/userInteraction/searchFor.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/selectBox.spec.js +128 -0
- package/test/reuse/ui5/userInteraction/selectCombobox.spec.js +115 -0
- package/test/reuse/ui5/userInteraction/selectMultiComboBox.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +35 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.sauceLab.conf.js +46 -0
- package/test/reuse/util/browser/back.spec.js +32 -0
- package/test/reuse/util/browser/clearBrowser.spec.js +35 -0
- package/test/reuse/util/browser/executeScript.spec.js +49 -0
- package/test/reuse/util/browser/getBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/getBrowserName.spec.js +18 -0
- package/test/reuse/util/browser/getCurrentUrl.spec.js +34 -0
- package/test/reuse/util/browser/getCurrentWindow.spec.js +42 -0
- package/test/reuse/util/browser/getUI5Version.spec.js +31 -0
- package/test/reuse/util/browser/logCurrentUrl.spec.js +23 -0
- package/test/reuse/util/browser/refresh.spec.js +52 -0
- package/test/reuse/util/browser/setBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/switchToDefaultContent.spec.js +34 -0
- package/test/reuse/util/browser/switchToIframe.spec.js +29 -0
- package/test/reuse/util/browser/switchToNewWindow.spec.js +142 -0
- package/test/reuse/util/browser/switchToWindow.spec.js +57 -0
- package/test/reuse/util/browser/test.browser.conf.js +27 -0
- package/test/reuse/util/data/data/test.json +3 -0
- package/test/reuse/util/data/data/test.secure.json +11 -0
- package/test/reuse/util/data/decrypt.spec.js +15 -0
- package/test/reuse/util/data/getData.spec.js +15 -0
- package/test/reuse/util/data/getSecureData.spec.js +57 -0
- package/test/reuse/util/data/test.data.conf.js +22 -0
- package/test/reuse/util/file/file.spec.js +90 -0
- package/test/reuse/util/file/pdfParser.spec.js +55 -0
- package/test/reuse/util/file/test.file.conf.js +15 -0
- package/test/reuse/util/file/testFiles/sample.pdf +198 -0
- package/test/reuse/util/file/testFiles/test.txt +5 -0
- package/test/reuse/util/file/testFiles/test2.txt +2 -0
- package/test/reuse/util/formatter/addRemoveLeadingZeros.spec.js +38 -0
- package/test/reuse/util/formatter/extractNumberFromString.spec.js +67 -0
- package/test/reuse/util/formatter/formatDate.spec.js +150 -0
- package/test/reuse/util/formatter/sliceStringAfter.spec.js +62 -0
- package/test/reuse/util/formatter/sliceStringAt.spec.js +62 -0
- package/test/reuse/util/formatter/stringifyJSON.spec.js +24 -0
- package/test/reuse/util/formatter/test.formatter.conf.js +20 -0
- package/test/reuse/util/formatter/trimString.spec.js +37 -0
- package/tsconfig.json +26 -0
package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewContent.view.xml
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<mvc:View
|
|
2
|
+
controllerName="sap.ui.demo.nav.controller.employee.overview.EmployeeOverviewContent"
|
|
3
|
+
xmlns="sap.m"
|
|
4
|
+
xmlns:mvc="sap.ui.core.mvc">
|
|
5
|
+
<Table id="employeesTable"
|
|
6
|
+
items="{/Employees}"
|
|
7
|
+
itemPress=".onItemPressed">
|
|
8
|
+
<headerToolbar>
|
|
9
|
+
<Toolbar>
|
|
10
|
+
<Title text="{i18n>Employees}" level="H2"/>
|
|
11
|
+
<ToolbarSpacer />
|
|
12
|
+
<SearchField id="searchField" search=".onSearchEmployeesTable" width="50%"/>
|
|
13
|
+
<Button icon="sap-icon://sort" press=".onSortButtonPressed"/>
|
|
14
|
+
</Toolbar>
|
|
15
|
+
</headerToolbar>
|
|
16
|
+
<columns>
|
|
17
|
+
<Column id="employeeIDCol"><Text text="{i18n>EmployeeID}"/></Column>
|
|
18
|
+
<Column id="firstNameCol" demandPopin="true"><Text text="{i18n>FirstName}"/></Column>
|
|
19
|
+
<Column id="lastNameCol" demandPopin="true"><Text text="{i18n>LastName}"/></Column>
|
|
20
|
+
<Column id="addressCol" minScreenWidth="Tablet" demandPopin="true"><Text text="{i18n>Address}"/></Column>
|
|
21
|
+
<Column id="cityCol" minScreenWidth="Tablet" demandPopin="true"><Text text="{i18n>City}"/></Column>
|
|
22
|
+
<Column id="regionCol" minScreenWidth="Tablet" demandPopin="true"><Text text="{i18n>Region}"/></Column>
|
|
23
|
+
<Column id="postalCodeCol" minScreenWidth="Tablet" demandPopin="true"><Text text="{i18n>PostalCode}"/></Column>
|
|
24
|
+
<Column id="countryCol" minScreenWidth="Tablet" demandPopin="true"><Text text="{i18n>Country}"/></Column>
|
|
25
|
+
<Column id="homePhoneCol" minScreenWidth="Tablet" demandPopin="true" hAlign="Right"><Text text="{i18n>Phone}"/></Column>
|
|
26
|
+
</columns>
|
|
27
|
+
<items>
|
|
28
|
+
<ColumnListItem type="Active">
|
|
29
|
+
<cells>
|
|
30
|
+
<Text text="{EmployeeID}"/>
|
|
31
|
+
<Text text="{FirstName}"/>
|
|
32
|
+
<Text text="{LastName}"/>
|
|
33
|
+
<Text text="{Address}"/>
|
|
34
|
+
<Text text="{City}"/>
|
|
35
|
+
<Text text="{Region}"/>
|
|
36
|
+
<Text text="{PostalCode}"/>
|
|
37
|
+
<Text text="{Country}"/>
|
|
38
|
+
<Text text="{HomePhone}"/>
|
|
39
|
+
</cells>
|
|
40
|
+
</ColumnListItem>
|
|
41
|
+
</items>
|
|
42
|
+
</Table>
|
|
43
|
+
</mvc:View>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - closePopups", function () {
|
|
4
|
+
it("Preparation", async function () {
|
|
5
|
+
await ui5.navigation.navigateToSystemAndApplication("hbr-710.wdf.sap.corp", "Shell-Home", false);
|
|
6
|
+
await ui5.session.login("AP_ACCOUNTANT");
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
it("Execution", async function () {
|
|
10
|
+
await ui5.navigation.closePopups();
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("Verification", async function () {
|
|
14
|
+
await ui5.session.logout();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const selectorForCloseButton = {
|
|
3
|
+
"elementProperties": {
|
|
4
|
+
"metadata": "sap.m.Button",
|
|
5
|
+
"text": "Close"
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
const selectorForErrorPopupText = {
|
|
9
|
+
"elementProperties": {
|
|
10
|
+
"metadata": "sap.m.Text",
|
|
11
|
+
"ancestorProperties": {
|
|
12
|
+
"elementProperties": {
|
|
13
|
+
"metadata": "sap.m.Dialog",
|
|
14
|
+
"type": "Message",
|
|
15
|
+
"state": "Error"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
// Test is unstable - system itself can close the popup
|
|
22
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
23
|
+
describe.skip("navigation - expectUnsupportedNavigationPopup", function () {
|
|
24
|
+
it("Preparation", async function () {
|
|
25
|
+
browser.config.baseUrl = "https://qs9-715.wdf.sap.corp/ui";
|
|
26
|
+
await ui5.navigation.navigateToApplication("Shell-home", true);
|
|
27
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!", true);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("Execution", async function () {
|
|
31
|
+
await ui5.navigation.navigateToApplication("SomeWrong-intent", false);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it("Verification", async function () {
|
|
35
|
+
await ui5.navigation.expectUnsupportedNavigationPopup("#SomeWrong-intent");
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it("Clean Up", async function () {
|
|
39
|
+
await ui5.session.logout();
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Test is unstable - system itself can close the popup
|
|
44
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
45
|
+
describe.skip("navigation - expectUnsupportedNavigationPopup with '&' (unhappy case, another error popup)", function () {
|
|
46
|
+
it("Preparation", async function () {
|
|
47
|
+
browser.config.baseUrl = "https://qs9-715.wdf.sap.corp/ui";
|
|
48
|
+
await ui5.navigation.navigateToApplication("Shell-home", true);
|
|
49
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!", true);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it("Execution", async function () {
|
|
53
|
+
await ui5.navigation.navigateToApplication("SomeWrongIntentWith&", false);
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("Verification", async function () {
|
|
57
|
+
await expect(ui5.navigation.expectUnsupportedNavigationPopup("#SomeWrongIntentWith&"))
|
|
58
|
+
.rejects.toThrow(/No visible elements found/);
|
|
59
|
+
const textElement = await ui5.locator.getDisplayed(selectorForErrorPopupText);
|
|
60
|
+
const text = await textElement.getText();
|
|
61
|
+
await common.assertion.expectEqual(text, "Could not open app. Please try again later.");
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it("Clean Up", async function () {
|
|
65
|
+
await ui5.session.logout();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
describe("navigation - expectUnsupportedNavigationPopup (unhappy case - no popup - correct navigation)", function () {
|
|
70
|
+
it("Preparation", async function () {
|
|
71
|
+
browser.config.baseUrl = "https://qs9-715.wdf.sap.corp/ui";
|
|
72
|
+
await ui5.navigation.navigateToApplication("Shell-home", true);
|
|
73
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!", true);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("Execution & Verification", async function () {
|
|
77
|
+
await ui5.navigation.navigateToApplication("PurchaseOrder-manage", false);
|
|
78
|
+
await expect(ui5.navigation.expectUnsupportedNavigationPopup("#PurchaseOrder-manage"))
|
|
79
|
+
.rejects.toThrow("uiControlExecuteLocator(): No visible elements found");
|
|
80
|
+
});
|
|
81
|
+
});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - navigateToApplication with preventPopups=false", function () {
|
|
4
|
+
it("Execution & Verification", async function () {
|
|
5
|
+
// First navigation - to #Shell-home
|
|
6
|
+
let urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`; // http://localhost:34099/ui#Shell-home
|
|
7
|
+
|
|
8
|
+
await ui5.navigation.navigateToApplication("Shell-home"); // preventPopups=false by default
|
|
9
|
+
let button = await nonUi5.element.getById("parseUrl");
|
|
10
|
+
await nonUi5.userInteraction.click(button);
|
|
11
|
+
|
|
12
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
13
|
+
|
|
14
|
+
let parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
15
|
+
let parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
16
|
+
|
|
17
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
18
|
+
|
|
19
|
+
// Second navigation - to #PurchaseOrder-manage
|
|
20
|
+
urlExpected = `${await util.browser.getBaseUrl()}#PurchaseOrder-manage`; // http://localhost:34099/ui#PurchaseOrder-manage
|
|
21
|
+
|
|
22
|
+
await ui5.navigation.navigateToApplication("PurchaseOrder-manage"); // preventPopups=false by default
|
|
23
|
+
button = await nonUi5.element.getById("parseUrl");
|
|
24
|
+
await nonUi5.userInteraction.click(button);
|
|
25
|
+
|
|
26
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
27
|
+
|
|
28
|
+
parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
29
|
+
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
30
|
+
|
|
31
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
32
|
+
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
describe("navigation - navigateToApplication with preventPopups=true", function () {
|
|
37
|
+
it("Execution & Verification", async function () {
|
|
38
|
+
// First navigation - to #Shell-home
|
|
39
|
+
// "http://localhost:34099/ui?help-readCatalog=false&help-stateUACP=PRODUCTION#Shell-home" - as preventPopups=true
|
|
40
|
+
const queryToClosePopups = "help-readCatalog=false&help-stateUACP=PRODUCTION"; // from private function 'generateUrlParams'
|
|
41
|
+
let urlExpected = `${await util.browser.getBaseUrl()}?${queryToClosePopups}#Shell-home`;
|
|
42
|
+
|
|
43
|
+
await ui5.navigation.navigateToApplication("Shell-home", true); // preventPopups=true
|
|
44
|
+
let button = await nonUi5.element.getById("parseUrl");
|
|
45
|
+
await nonUi5.userInteraction.click(button);
|
|
46
|
+
|
|
47
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
48
|
+
|
|
49
|
+
let parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
50
|
+
let parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
51
|
+
|
|
52
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
53
|
+
|
|
54
|
+
// Second navigation - to #PurchaseOrder-manage
|
|
55
|
+
// "http://localhost:34099/ui?help-readCatalog=false&help-stateUACP=PRODUCTION#PurchaseOrder-manage" - as preventPopups=true
|
|
56
|
+
urlExpected = `${await util.browser.getBaseUrl()}?${queryToClosePopups}#PurchaseOrder-manage`;
|
|
57
|
+
|
|
58
|
+
await ui5.navigation.navigateToApplication("PurchaseOrder-manage", true); // preventPopups=true
|
|
59
|
+
button = await nonUi5.element.getById("parseUrl");
|
|
60
|
+
await nonUi5.userInteraction.click(button);
|
|
61
|
+
|
|
62
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
63
|
+
|
|
64
|
+
parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
65
|
+
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
66
|
+
|
|
67
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
68
|
+
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
describe("navigation - navigateToApplication wrong navigation intent type with/without verification(unhappy case)", function () {
|
|
73
|
+
const wrongApplication = { strange: "intent" };
|
|
74
|
+
const application = "Shell-home";
|
|
75
|
+
|
|
76
|
+
it("Execution & Verification", async function () {
|
|
77
|
+
await ui5.navigation.navigateToApplication(application, true);
|
|
78
|
+
|
|
79
|
+
await ui5.navigation.navigateToApplication(wrongApplication, false); // verify=false - no verification
|
|
80
|
+
const currentUrl = await browser.getUrl();
|
|
81
|
+
|
|
82
|
+
// system first navigates to 'https://qs9-715.wdf.sap.corp/ui#%5Bobject%20Object%5D'
|
|
83
|
+
expect(currentUrl).toContain(browser.config.baseUrl + "#[object%20Object]");
|
|
84
|
+
|
|
85
|
+
await expect(ui5.navigation.navigateToApplication(wrongApplication, false, true)) // verify = true,
|
|
86
|
+
.rejects.toThrow(/Navigation failed/);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
const selectorForErrorPopupText = {
|
|
92
|
+
"elementProperties": {
|
|
93
|
+
"metadata": "sap.m.Text",
|
|
94
|
+
"ancestorProperties": {
|
|
95
|
+
"elementProperties": {
|
|
96
|
+
"metadata": "sap.m.Dialog",
|
|
97
|
+
"type": "Message",
|
|
98
|
+
"state": "Error"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Test is unstable - system itself can close the popup
|
|
105
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
106
|
+
describe.skip("assertion - expectUnsupportedNavigationPopup", function () {
|
|
107
|
+
it("Preparation", async function () {
|
|
108
|
+
await ui5.navigation.navigateToApplication("Shell-home", true);
|
|
109
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it("Execution", async function () {
|
|
113
|
+
await ui5.navigation.navigateToApplication("SomeWrong-intent", true);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
it("Verification", async function () {
|
|
117
|
+
await ui5.assertion.expectUnsupportedNavigationPopup("#SomeWrong-intent");
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
it("Clean Up", async function () {
|
|
121
|
+
await ui5.session.logout();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// Test is unstable - system itself can close the popup
|
|
126
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
127
|
+
describe.skip("assertion - expectUnsupportedNavigationPopup with '&' (unhappy case, another error popup)", function () {
|
|
128
|
+
it("Preparation", async function () {
|
|
129
|
+
await ui5.navigation.navigateToApplication("Shell-home", true);
|
|
130
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it("Execution", async function () {
|
|
134
|
+
await ui5.navigation.navigateToApplication("SomeWrongIntentWith&", false);
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("Verification", async function () {
|
|
138
|
+
await expect(ui5.assertion.expectUnsupportedNavigationPopup("#SomeWrongIntentWith&"))
|
|
139
|
+
.rejects.toThrow(/No visible elements found/);
|
|
140
|
+
const textElement = await ui5.element.getDisplayed(selectorForErrorPopupText);
|
|
141
|
+
const text = await textElement.getText();
|
|
142
|
+
await common.assertion.expectEqual(text, "Could not open app. Please try again later.");
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("Clean Up", async function () {
|
|
146
|
+
await ui5.session.logout();
|
|
147
|
+
});
|
|
148
|
+
});
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - navigateToApplicationAndRetry with closePopups=true", function () {
|
|
4
|
+
const queryToClosePopups = "help-readCatalog=false&help-stateUACP=PRODUCTION";
|
|
5
|
+
|
|
6
|
+
it("Execution & Verification", async function () {
|
|
7
|
+
// First navigation - to #Shell-home
|
|
8
|
+
// "http://localhost:34099/ui?help-readCatalog=false&help-stateUACP=PRODUCTION#Shell-home" - as preventPopups=true
|
|
9
|
+
let urlExpected = `${await util.browser.getBaseUrl()}?${queryToClosePopups}#Shell-home`;
|
|
10
|
+
|
|
11
|
+
await ui5.navigation.navigateToApplicationAndRetry("Shell-home"); // closePopups=true by default
|
|
12
|
+
let button = await nonUi5.element.getById("parseUrl");
|
|
13
|
+
await nonUi5.userInteraction.click(button);
|
|
14
|
+
|
|
15
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
16
|
+
|
|
17
|
+
let parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
18
|
+
let parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
19
|
+
|
|
20
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
21
|
+
|
|
22
|
+
// Second navigation - to #PurchaseOrder-manage
|
|
23
|
+
// "http://localhost:34099/ui?help-readCatalog=false&help-stateUACP=PRODUCTION#PurchaseOrder-manage" - as preventPopups=true
|
|
24
|
+
urlExpected = `${await util.browser.getBaseUrl()}?${queryToClosePopups}#PurchaseOrder-manage`;
|
|
25
|
+
|
|
26
|
+
await ui5.navigation.navigateToApplicationAndRetry("PurchaseOrder-manage"); // closePopups=true by default
|
|
27
|
+
button = await nonUi5.element.getById("parseUrl");
|
|
28
|
+
await nonUi5.userInteraction.click(button);
|
|
29
|
+
|
|
30
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
31
|
+
|
|
32
|
+
parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
33
|
+
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
34
|
+
|
|
35
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
36
|
+
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
describe("navigation - navigateToApplicationAndRetry with closePopups=false", function () {
|
|
41
|
+
it("Execution & Verification", async function () {
|
|
42
|
+
// First navigation - to #Shell-home
|
|
43
|
+
// http://localhost:34099/ui#Shell-home
|
|
44
|
+
let urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`;
|
|
45
|
+
|
|
46
|
+
await ui5.navigation.navigateToApplicationAndRetry("Shell-home", false); // closePopups=false
|
|
47
|
+
let button = await nonUi5.element.getById("parseUrl");
|
|
48
|
+
await nonUi5.userInteraction.click(button);
|
|
49
|
+
|
|
50
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
51
|
+
|
|
52
|
+
let parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
53
|
+
let parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
54
|
+
|
|
55
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
56
|
+
|
|
57
|
+
// Second navigation - to #PurchaseOrder-manage
|
|
58
|
+
// http://localhost:34099/ui#PurchaseOrder-manage
|
|
59
|
+
urlExpected = `${await util.browser.getBaseUrl()}#PurchaseOrder-manage`;
|
|
60
|
+
|
|
61
|
+
await ui5.navigation.navigateToApplicationAndRetry("PurchaseOrder-manage", false); // closePopups=false
|
|
62
|
+
button = await nonUi5.element.getById("parseUrl");
|
|
63
|
+
await nonUi5.userInteraction.click(button);
|
|
64
|
+
|
|
65
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
66
|
+
|
|
67
|
+
parsedUrlElement = await nonUi5.element.getById("navigationUrl");
|
|
68
|
+
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
69
|
+
|
|
70
|
+
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
71
|
+
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
describe("navigation - navigateToApplicationAndRetry wrong navigation intent type with/without verification(unhappy case)", function () {
|
|
76
|
+
const wrongApplication = {
|
|
77
|
+
strange: "intent"
|
|
78
|
+
};
|
|
79
|
+
const application = "Shell-home";
|
|
80
|
+
|
|
81
|
+
it("Execution & Verification", async function () {
|
|
82
|
+
await ui5.navigation.navigateToApplicationAndRetry(application, false, true); // closePopups=false, verify=true
|
|
83
|
+
|
|
84
|
+
await ui5.navigation.navigateToApplicationAndRetry(wrongApplication, false, false); // closePopups=false, verify=false - no verification
|
|
85
|
+
const currentUrl = await browser.getUrl();
|
|
86
|
+
|
|
87
|
+
// system first navigates to 'https://qs9-715.wdf.sap.corp/ui#%5Bobject%20Object%5D'
|
|
88
|
+
expect(currentUrl).toContain(browser.config.baseUrl + "#[object%20Object]");
|
|
89
|
+
|
|
90
|
+
await expect(ui5.navigation.navigateToApplicationAndRetry(wrongApplication, false, true)) // verify = true,
|
|
91
|
+
.rejects.toThrow(/failed/);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
const selectorForErrorPopupText = {
|
|
97
|
+
"elementProperties": {
|
|
98
|
+
"metadata": "sap.m.Text",
|
|
99
|
+
"ancestorProperties": {
|
|
100
|
+
"elementProperties": {
|
|
101
|
+
"metadata": "sap.m.Dialog",
|
|
102
|
+
"type": "Message",
|
|
103
|
+
"state": "Error"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
// Test is unstable - system itself can close the popup
|
|
110
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
111
|
+
describe.skip("assertion - expectUnsupportedNavigationPopup", function () {
|
|
112
|
+
it("Preparation", async function () {
|
|
113
|
+
await ui5.navigation.navigateToApplicationAndRetry("Shell-home", true);
|
|
114
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
it("Execution", async function () {
|
|
118
|
+
await ui5.navigation.navigateToApplicationAndRetry("SomeWrong-intent", false);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
it("Verification", async function () {
|
|
122
|
+
await ui5.assertion.expectUnsupportedNavigationPopup("#SomeWrong-intent");
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
it("Clean Up", async function () {
|
|
126
|
+
await ui5.session.logout();
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
// Test is unstable - system itself can close the popup
|
|
131
|
+
// TODO: discuss local server usage for assertion tests execution
|
|
132
|
+
describe.skip("assertion - expectUnsupportedNavigationPopup with '&' (unhappy case, another error popup)", function () {
|
|
133
|
+
it("Preparation", async function () {
|
|
134
|
+
await ui5.navigation.navigateToApplicationAndRetry("Shell-home", true);
|
|
135
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it("Execution", async function () {
|
|
139
|
+
await ui5.navigation.navigateToApplicationAndRetry("SomeWrongIntentWith&", false);
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
it("Verification", async function () {
|
|
143
|
+
await expect(ui5.assertion.expectUnsupportedNavigationPopup("#SomeWrongIntentWith&"))
|
|
144
|
+
.rejects.toThrow(/No visible elements found/);
|
|
145
|
+
const textElement = await ui5.element.getDisplayed(selectorForErrorPopupText);
|
|
146
|
+
const text = await textElement.getText();
|
|
147
|
+
await common.assertion.expectEqual(text, "Could not open app. Please try again later.");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("Clean Up", async function () {
|
|
151
|
+
await ui5.session.logout();
|
|
152
|
+
});
|
|
153
|
+
});
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
describe("navigation - navigateToApplicationWithQueryParams with query param in url", function () {
|
|
3
|
+
const query = "?sap-language=RU";
|
|
4
|
+
const intent = "PurchaseOrder-manage";
|
|
5
|
+
|
|
6
|
+
it("Preparation", async function () {
|
|
7
|
+
await ui5.navigation.navigateToApplication("Shell-home", false);
|
|
8
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`;
|
|
9
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
it("Execution", async function () {
|
|
13
|
+
await ui5.navigation.navigateToApplicationWithQueryParams(intent, query, false);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it("Verification", async function () {
|
|
17
|
+
const urlExpected = `${await util.browser.getBaseUrl()}${query}#${intent}`;
|
|
18
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
describe("navigation - navigateToApplicationWithQueryParams with wrong param in url", function () {
|
|
23
|
+
const query = "unknownParam=value"; // query without '?' mark
|
|
24
|
+
const intent = "PurchaseOrder-manage";
|
|
25
|
+
|
|
26
|
+
it("Preparation", async function () {
|
|
27
|
+
await ui5.navigation.navigateToApplication("Shell-home", false);
|
|
28
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`;
|
|
29
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("Execution", async function () {
|
|
33
|
+
await ui5.navigation.navigateToApplicationWithQueryParams(intent, query, false);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
it("Verification", async function () {
|
|
38
|
+
const urlExpected = `${await util.browser.getBaseUrl()}${query}#${intent}`;
|
|
39
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
40
|
+
|
|
41
|
+
// if 'query' includes no "?", url will be interpreted as another (unsupported) mount
|
|
42
|
+
await expect(nonUi5.element.getById("parseUrl"))
|
|
43
|
+
.rejects.toThrow(/Element with id "parseUrl" not found/);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
describe("navigation - navigateToApplicationWithQueryParams with empty param in url", function () {
|
|
48
|
+
const intent = "PurchaseOrder-manage";
|
|
49
|
+
|
|
50
|
+
it("Preparation", async function () {
|
|
51
|
+
await ui5.navigation.navigateToApplication("Shell-home");
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
it("Execution", async function () {
|
|
55
|
+
await ui5.navigation.navigateToApplicationWithQueryParams(intent, "", false);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it("Verification", async function () {
|
|
59
|
+
// No query
|
|
60
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#${intent}`;
|
|
61
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - navigateToApplicationWithQueryParamsAndRetry with query param in url", function () {
|
|
4
|
+
const query = "?sap-language=RU";
|
|
5
|
+
const intent = "PurchaseOrder-manage";
|
|
6
|
+
|
|
7
|
+
it("Preparation", async function () {
|
|
8
|
+
await ui5.navigation.navigateToApplication("Shell-home", false);
|
|
9
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`;
|
|
10
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("Execution", async function () {
|
|
14
|
+
await ui5.navigation.navigateToApplicationWithQueryParamsAndRetry(intent, query, false);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("Verification", async function () {
|
|
18
|
+
const urlExpected = `${await util.browser.getBaseUrl()}${query}#${intent}`;
|
|
19
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
describe("navigation - navigateToApplicationWithQueryParamsAndRetry with wrong param in url", function () {
|
|
24
|
+
const query = "unknownParam=value"; // query without '?' mark
|
|
25
|
+
const intent = "PurchaseOrder-manage";
|
|
26
|
+
|
|
27
|
+
it("Preparation", async function () {
|
|
28
|
+
await ui5.navigation.navigateToApplication("Shell-home", false);
|
|
29
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#Shell-home`;
|
|
30
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it("Execution", async function () {
|
|
34
|
+
await ui5.navigation.navigateToApplicationWithQueryParamsAndRetry(intent, query, false);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
it("Verification", async function () {
|
|
39
|
+
const urlExpected = `${await util.browser.getBaseUrl()}${query}#${intent}`;
|
|
40
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
41
|
+
|
|
42
|
+
// if 'query' includes no "?", url will be interpreted as another (unsupported) mount
|
|
43
|
+
await expect(nonUi5.element.getById("parseUrl"))
|
|
44
|
+
.rejects.toThrow(/Element with id "parseUrl" not found/);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
describe("navigation - navigateToApplicationWithQueryParamsAndRetry with empty param in url", function () {
|
|
49
|
+
const intent = "PurchaseOrder-manage";
|
|
50
|
+
|
|
51
|
+
it("Preparation", async function () {
|
|
52
|
+
await ui5.navigation.navigateToApplication("Shell-home");
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("Execution", async function () {
|
|
56
|
+
await ui5.navigation.navigateToApplicationWithQueryParamsAndRetry(intent, "", false);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it("Verification", async function () {
|
|
60
|
+
// No query
|
|
61
|
+
const urlExpected = `${await util.browser.getBaseUrl()}#${intent}`;
|
|
62
|
+
await common.assertion.expectUrlToBe(urlExpected);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - navigateToSystemAndApplication (s4)", function () {
|
|
4
|
+
const system = "qs9-715.wdf.sap.corp";
|
|
5
|
+
const application = "PurchaseOrder-manage";
|
|
6
|
+
|
|
7
|
+
it("Execution & Verification", async function () {
|
|
8
|
+
await ui5.navigation.navigateToSystemAndApplication(system, "Shell-home", false);
|
|
9
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
10
|
+
|
|
11
|
+
await ui5.navigation.navigateToSystemAndApplication(system, application, false);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("Verification", async function () {
|
|
15
|
+
await ui5.navigationBar.expectPageTitle("Manage Purchase Orders");
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
it("Clean Up", async function () {
|
|
20
|
+
await ui5.session.logout();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe("navigation - navigateToSystemAndApplication wrong navigation intent type in demo url with/without verification(unhappy case)", function () {
|
|
25
|
+
const system = "qs9-715.wdf.sap.corp";
|
|
26
|
+
const wrongApplication = {
|
|
27
|
+
strange: "intent"
|
|
28
|
+
};
|
|
29
|
+
const application = "Shell-home";
|
|
30
|
+
|
|
31
|
+
it("Execution & Verification", async function () {
|
|
32
|
+
await ui5.navigation.navigateToSystemAndApplication(system, application, false);
|
|
33
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
34
|
+
|
|
35
|
+
await ui5.navigation.navigateToSystemAndApplication(system, wrongApplication, false); // verify = false by default
|
|
36
|
+
const currentUrl = await browser.getUrl();
|
|
37
|
+
// first navigate to 'https://qs9-715.wdf.sap.corp/ui#%5Bobject%20Object%5D'
|
|
38
|
+
// later, in a second, navigate to 'https://qs9-715.wdf.sap.corp/ui#Shell-home'
|
|
39
|
+
// Cannot test the intent inside the url, because it changes too fast in case of wrong intent
|
|
40
|
+
expect(currentUrl).toContain(system); // check you are still at the qs9-715 page
|
|
41
|
+
|
|
42
|
+
await expect(ui5.navigation.navigateToSystemAndApplication(system, wrongApplication, false, true)) // verify = true
|
|
43
|
+
.rejects.toThrow(/Navigation failed/);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
describe("navigation - navigateToSystemAndApplicationAndRetry", function () {
|
|
4
|
+
const system = "qs9-715.wdf.sap.corp";
|
|
5
|
+
const application = "PurchaseOrder-manage";
|
|
6
|
+
|
|
7
|
+
it("Execution & Verification", async function () {
|
|
8
|
+
await common.navigation.navigateToUrl(`https://${system}`);
|
|
9
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
10
|
+
|
|
11
|
+
await ui5.navigation.navigateToSystemAndApplicationAndRetry(system, application, true);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
it("Verification", async function () {
|
|
15
|
+
await ui5.navigationBar.expectPageTitle("Manage Purchase Orders");
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
it("Clean Up", async function () {
|
|
20
|
+
await ui5.session.logout();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
describe("navigation - navigateToSystemAndApplicationAndRetry wrong navigation intent type in demo url with/without verification(unhappy case)", function () {
|
|
25
|
+
const system = "qs9-715.wdf.sap.corp";
|
|
26
|
+
const wrongApplication = {
|
|
27
|
+
strange: "intent"
|
|
28
|
+
};
|
|
29
|
+
const application = "Shell-home";
|
|
30
|
+
|
|
31
|
+
it("Execution & Verification", async function () {
|
|
32
|
+
await ui5.navigation.navigateToSystemAndApplicationAndRetry(system, application, false);
|
|
33
|
+
await ui5.session.loginFiori("PURCHASER", "Welcome2!");
|
|
34
|
+
|
|
35
|
+
await ui5.navigation
|
|
36
|
+
.navigateToSystemAndApplicationAndRetry(system, wrongApplication, false, false); // verify = false - no error during navigation
|
|
37
|
+
const currentUrl = await browser.getUrl();
|
|
38
|
+
expect(currentUrl).toContain(system); // url still includes system
|
|
39
|
+
|
|
40
|
+
await expect(ui5.navigation.navigateToSystemAndApplicationAndRetry(system, wrongApplication, false, true)) // verify = true (by default)
|
|
41
|
+
.rejects.toThrow(/Navigation failed/);
|
|
42
|
+
});
|
|
43
|
+
});
|