From c081572dab17360c8cd506df5b2fb288decc5d94 Mon Sep 17 00:00:00 2001 From: Volker Buzek Date: Wed, 29 Jun 2022 09:03:42 +0200 Subject: [PATCH 01/10] chore(view): add select control and restructure page for better readability --- examples/ui5-js-app/webapp/view/Main.view.xml | 166 ++++++++++-------- 1 file changed, 91 insertions(+), 75 deletions(-) diff --git a/examples/ui5-js-app/webapp/view/Main.view.xml b/examples/ui5-js-app/webapp/view/Main.view.xml index 10b8f2ce..d6bef0be 100644 --- a/examples/ui5-js-app/webapp/view/Main.view.xml +++ b/examples/ui5-js-app/webapp/view/Main.view.xml @@ -13,87 +13,103 @@ - - - <Button icon="sap-icon://forward" - id="NavFwdButton" - text="{i18n>startPage.navButton.text}" - press="navFwd" /> - <Button icon="sap-icon://forward" - id="NavFwdButtonDisabled" - text="can't click :(" - press="navFwd" - busy="true" /> - <Button icon="sap-icon://user-edit" - id="user-test-button" - text="{i18n>startPage.userButton.text}" /> - <Button text="IA Sync" - id="idIaSync" - press="onPress" /> - <Text text="{i18n>startPage.text.username}" /> - <Input id="mainUserInput" - value="{/Customers('TRAIH')/ContactName}" /> - <Panel expandable="true" - headerText="Header Text"> - <headerToolbar> - <OverflowToolbar> - <Title text="Custom Toolbar with a header text" /> - </OverflowToolbar> - </headerToolbar> - <content> - <Text text="Lorem ipsum dolor st amet" /> - </content> - </Panel> - <Label labelFor="idDateTime" - text="labelFor DateTimePicker" /> - <DateTimePicker id="idDateTime" - placeholder="Enter Date ..." /> - <Button text="{testModel>/buttonText}" - press="onTest" - class="myTestClass" /> - <Input value="{testModel>/inputValue}" /> - <CheckBox id="idCheckbox" - selected="{testModel>/checkbox}" - text="test checkbox" - select="onSelect" /> - <Button text="open Barcodescanner" - press="scanBarcode" - id="barcodescannerplugin" /> - <Input id="barcodeValue" - value="{testModel>/barcode}" /> - <Input id="invisibleInputField" - value="bla" - visible="false" /> - <Button text="open Dialog" - press="openDialog" - id="openDialogButton" /> - <Label text="Country Combobox"/> - <ComboBox - id="combobox" - items="{ + <Title level="H1" + id="Title::NoAction.h1" + titleStyle="H1" + text="{i18n>startPage.title.text}" + width="100%" + textAlign="Center" /> + <HBox> + <VBox alignItems="Center" + justifyContent="Center" + height="100%"> + + <Button icon="sap-icon://forward" + id="NavFwdButton" + text="{i18n>startPage.navButton.text}" + press="navFwd" /> + <Button icon="sap-icon://forward" + id="NavFwdButtonDisabled" + text="can't click :(" + press="navFwd" + busy="true" /> + <Button icon="sap-icon://user-edit" + id="user-test-button" + text="{i18n>startPage.userButton.text}" /> + <Button text="IA Sync" + id="idIaSync" + press="onPress" /> + <Text text="{i18n>startPage.text.username}" /> + <Input id="mainUserInput" + value="{/Customers('TRAIH')/ContactName}" /> + <Panel expandable="true" + headerText="Header Text"> + <headerToolbar> + <OverflowToolbar> + <Title text="Custom Toolbar with a header text" /> + </OverflowToolbar> + </headerToolbar> + <content> + <Text text="Lorem ipsum dolor st amet" /> + </content> + </Panel> + <Label labelFor="idDateTime" + text="labelFor DateTimePicker" /> + <DateTimePicker id="idDateTime" + placeholder="Enter Date ..." /> + <Button text="{testModel>/buttonText}" + press="onTest" + class="myTestClass" /> + <Input value="{testModel>/inputValue}" /> + <CheckBox id="idCheckbox" + selected="{testModel>/checkbox}" + text="test checkbox" + select="onSelect" /> + <Button text="open Barcodescanner" + press="scanBarcode" + id="barcodescannerplugin" /> + <Input id="barcodeValue" + value="{testModel>/barcode}" /> + <Input id="invisibleInputField" + value="bla" + visible="false" /> + <Button text="open Dialog" + press="openDialog" + id="openDialogButton" /> + + </VBox> + <VBox> + <Label text="Country Combobox" /> + <ComboBox id="combobox" + items="{ + path: 'Countries>/CountriesCollection', + sorter: { path: 'text' } + }"> + <core:Item key="{Countries>key}" + text="{Countries>text}" /> + </ComboBox> + <Label text="Country MultiCombobox" /> + <MultiComboBox id="multiComboBox" + items="{ path: 'Countries>/CountriesCollection', sorter: { path: 'text' } }"> - <core:Item key="{Countries>key}" text="{Countries>text}" /> - </ComboBox> - <Label text="Country MultiCombobox"/> - <MultiComboBox id="multiComboBox" - items="{ + <core:Item key="{Countries>key}" + text="{Countries>text}" /> + </MultiComboBox> + <!-- TODO --> + <!-- <SearchField id="idSearchfield" value="{testModel>/searchValue}"/> --> + <Label text="sap.m.Select" /> + <Select id="select" + items="{ path: 'Countries>/CountriesCollection', sorter: { path: 'text' } }"> - <core:Item key="{Countries>key}" text="{Countries>text}" /> - </MultiComboBox> - <!-- TODO --> - <!-- <SearchField id="idSearchfield" value="{testModel>/searchValue}"/> --> - </VBox> + <core:Item key="{Countries>key}" + text="{Countries>text}" /> + </Select> + </VBox> + </HBox> </content> </Page> From dd627ef0de5661eb6c6b42be631292b8853c3a7b Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 13:22:16 +0200 Subject: [PATCH 02/10] chore(deps): bump chromedriver --- examples/fe-app/package.json | 2 +- examples/ui5-js-app/package.json | 2 +- package-lock.json | 172 +++++++++++++++++++++++++------ package.json | 2 +- 4 files changed, 143 insertions(+), 35 deletions(-) diff --git a/examples/fe-app/package.json b/examples/fe-app/package.json index 26611c99..57717916 100644 --- a/examples/fe-app/package.json +++ b/examples/fe-app/package.json @@ -17,7 +17,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "wdio-chromedriver-service": "^7.3.2", "wdio-ui5-service": "*" }, diff --git a/examples/ui5-js-app/package.json b/examples/ui5-js-app/package.json index bad5e8f4..6e8cb7a4 100644 --- a/examples/ui5-js-app/package.json +++ b/examples/ui5-js-app/package.json @@ -24,7 +24,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "ui5-middleware-simpleproxy": "^0.8.4", "wdio-chromedriver-service": "^7.3.2", "wdio-ui5-service": "*" diff --git a/package-lock.json b/package-lock.json index 2b2e0f93..b465f4da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,7 @@ "@wdio/local-runner": "^7.19.7", "@wdio/mocha-framework": "^7.19.7", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "cross-env": "^7.0.3", "deepmerge": "^4.2.2", "eslint": "^8.16.0", @@ -72,7 +72,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "detect-libc": "^2.0.1", "sqlite3": "^5.0.8", "wdio-chromedriver-service": "^7.3.2", @@ -90,7 +90,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "ui5-middleware-simpleproxy": "^0.8.4", "wdio-chromedriver-service": "^7.3.2", "wdio-ui5-service": "*" @@ -6980,6 +6980,12 @@ "node": ">=0.12.0" } }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -6990,12 +6996,13 @@ } }, "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "dependencies": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "node_modules/balanced-match": { @@ -7600,14 +7607,14 @@ } }, "node_modules/chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "hasInstallScript": true, "dependencies": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -7838,6 +7845,18 @@ "text-hex": "1.0.x" } }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", @@ -8674,6 +8693,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -9908,6 +9936,20 @@ } } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -22855,6 +22897,12 @@ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -22862,12 +22910,13 @@ "dev": true }, "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "balanced-match": { @@ -23326,13 +23375,13 @@ } }, "chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -23510,6 +23559,15 @@ "text-hex": "1.0.x" } }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", @@ -24147,6 +24205,12 @@ "slash": "^3.0.0" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -25108,7 +25172,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "detect-libc": "^2.0.1", "express": "^4", "sqlite3": "^5.0.8", @@ -25148,6 +25212,17 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -29430,7 +29505,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "ui5-middleware-simpleproxy": "^0.8.4", "wdio-chromedriver-service": "^7.3.2", "wdio-ui5-service": "*" @@ -29654,7 +29729,7 @@ "@wdio/local-runner": "^7.19.7", "@wdio/mocha-framework": "^7.19.7", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "cross-env": "^7.0.3", "deepmerge": "^4.2.2", "eslint": "^8.16.0", @@ -36214,6 +36289,12 @@ "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", "dev": true }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, "at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", @@ -36221,12 +36302,13 @@ "dev": true }, "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { - "follow-redirects": "^1.14.4" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, "balanced-match": { @@ -36685,13 +36767,13 @@ } }, "chromedriver": { - "version": "101.0.0", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-101.0.0.tgz", - "integrity": "sha512-LkkWxy6KM/0YdJS8qBeg5vfkTZTRamhBfOttb4oic4echDgWvCU1E8QcBbUBOHqZpSrYMyi7WMKmKMhXFUaZ+w==", + "version": "103.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-103.0.0.tgz", + "integrity": "sha512-7BHf6HWt0PeOHCzWO8qlnD13sARzr5AKTtG8Csn+czsuAsajwPxdLNtry5GPh8HYFyl+i0M+yg3bT43AGfgU9w==", "dev": true, "requires": { "@testim/chrome-version": "^1.1.2", - "axios": "^0.24.0", + "axios": "^0.27.2", "del": "^6.0.0", "extract-zip": "^2.0.1", "https-proxy-agent": "^5.0.0", @@ -36869,6 +36951,15 @@ "text-hex": "1.0.x" } }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, "commander": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-9.3.0.tgz", @@ -37506,6 +37597,12 @@ "slash": "^3.0.0" } }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true + }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -38467,7 +38564,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "detect-libc": "^2.0.1", "express": "^4", "sqlite3": "^5.0.8", @@ -38507,6 +38604,17 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, "forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -42789,7 +42897,7 @@ "@wdio/mocha-framework": "^7.19.7", "@wdio/selenium-standalone-service": "^7.19.5", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "ui5-middleware-simpleproxy": "^0.8.4", "wdio-chromedriver-service": "^7.3.2", "wdio-ui5-service": "*" diff --git a/package.json b/package.json index 72a41373..4f8609ac 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@wdio/local-runner": "^7.19.7", "@wdio/mocha-framework": "^7.19.7", "@wdio/spec-reporter": "^7.19.7", - "chromedriver": "^101.0.0", + "chromedriver": "^103.0.0", "cross-env": "^7.0.3", "deepmerge": "^4.2.2", "eslint": "^8.16.0", From 0f81c716563f2174d3dd6c4994bb487017493e95 Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 13:22:40 +0200 Subject: [PATCH 03/10] chore(debug): allow longer timeouts --- examples/ui5-js-app/e2e-test-config/wdio.base.conf.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/ui5-js-app/e2e-test-config/wdio.base.conf.js b/examples/ui5-js-app/e2e-test-config/wdio.base.conf.js index f663dded..f24b4b67 100644 --- a/examples/ui5-js-app/e2e-test-config/wdio.base.conf.js +++ b/examples/ui5-js-app/e2e-test-config/wdio.base.conf.js @@ -26,7 +26,7 @@ exports.baseConfig = { baseUrl: "http://localhost:8888", waitforTimeout: 10000, - connectionRetryTimeout: 120000, + connectionRetryTimeout: process.argv.indexOf("--debug") > -1 ? 1200000 : 120000, connectionRetryCount: 3, services: ["chromedriver", "ui5"], @@ -34,7 +34,7 @@ exports.baseConfig = { framework: "mocha", mochaOpts: { ui: "bdd", - timeout: 60000 + timeout: process.argv.indexOf("--debug") > -1 ? 600000 : 60000 }, reporters: ["spec"] } From 3ff70dff78a1a5c9cd8772f65356dfacc3416f63 Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 14:03:37 +0200 Subject: [PATCH 04/10] fix: respect sap.ui.core.item so that its' wdi5 representation can be returned --- client-side-js/executeControlMethod.js | 11 +++++----- .../webapp/test/e2e/locators-basic.test.js | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/client-side-js/executeControlMethod.js b/client-side-js/executeControlMethod.js index fa645247..93180374 100644 --- a/client-side-js/executeControlMethod.js +++ b/client-side-js/executeControlMethod.js @@ -42,16 +42,14 @@ async function clientSide_executeControlMethod(webElement, methodName, browserIn returnType: "none" }) } else { - // result mus be a primitive if (window.wdi5.isPrimitive(result)) { - // getter done({ status: 0, result: result, returnType: "result" }) } else if ( + // we have an object that is not a UI5 control typeof result === "object" && result !== null && - // wdi5 returns a wdi5 control if the UI5 api return its control - // allows method chaining - !(result instanceof sap.ui.core.Control) + !(result instanceof sap.ui.core.Control) && + !(result instanceof sap.ui.core.Item) ) { // flatten the prototype so we have all funcs available const collapsed = window.wdi5.collapseObject(result) @@ -66,7 +64,8 @@ async function clientSide_executeControlMethod(webElement, methodName, browserIn nonCircularResultObject: collapsedAndNonCyclic }) } else { - // check if of control to verify if the method result is a different control + // we got ourselves a regular UI5 control + // check that we're not working against ourselves :) if (result && result.getId && oControl.getId() !== result.getId()) { // ui5 function like get parent might return another ui5 control -> return it to check with this wdi5 instance result = window.wdi5.createControlId(result) diff --git a/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js b/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js index 660f0f95..09a43b45 100644 --- a/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js +++ b/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js @@ -55,4 +55,26 @@ describe("mixed locators", () => { wdi5.getLogger().log("retrievedClassNameStatus", retrievedClassNameStatus) expect(retrievedClassNameStatus).toBeTruthy() }) + + // #291 + it("should find a sap.m.Select and get an entry", async () => { + const selector = { + selector: { + interaction: "root", + controlType: "sap.m.Select", + viewName + } + } + /** + * @type {import("sap/m/Select").default} + */ + const select = await browser.asControl(selector) + await select.open() // <- meh, but needed to have the select items in the DOM + const selectedItem = await select.getSelectedItem() + const text = await selectedItem.getText() + expect(text).toEqual("Algeria") + + const textViaFluentApi = await browser.asControl(selector).getSelectedItem().getText() + expect(textViaFluentApi).toEqual("Algeria") + }) }) From 7bab6aaafe8d68d72322441ff4efb3bb89a5e892 Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 14:07:49 +0200 Subject: [PATCH 05/10] chore: ignore dynamically generated configs --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 91e109c7..666d1922 100644 --- a/.gitignore +++ b/.gitignore @@ -70,6 +70,7 @@ dist/**/* # multi-version test artifacts examples/ui5-js-app/wdio-wdi5* +examples/ui5-js-app/e2e-test-config/wdio-wdi5* examples/ui5-js-app/webapp/index-*.html examples/ui5-js-app/dist/**/* From 50736f72dbc0b4ea8b854019a4efd5386a0abfba Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 15:11:49 +0200 Subject: [PATCH 06/10] refactor: ui5 lts versions --- examples/ui5-js-app/e2e-test-config/wdi5-multiversion.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/examples/ui5-js-app/e2e-test-config/wdi5-multiversion.js b/examples/ui5-js-app/e2e-test-config/wdi5-multiversion.js index 205a87aa..6f49ca56 100644 --- a/examples/ui5-js-app/e2e-test-config/wdi5-multiversion.js +++ b/examples/ui5-js-app/e2e-test-config/wdi5-multiversion.js @@ -3,16 +3,15 @@ const path = require("path") const replace = require("replace-in-file") const Launcher = require("@wdio/cli").default -// lts version - with 1.71.19 being the exception -// in that there seems to be stuff boken in ui5 > 1.71.19 <= 1.71.25 +// lts versions (> 1.60) // empty string will get the newest Version which can be a "SNAPSHOT" version -const versions = ["", "1.71.19", "1.84.3"] +const versions = ["", "1.71", "1.84", "1.96"] ;(async () => { for (const version of versions) { // create an index.html for bootstrapping per version const targetIndex = path.resolve(__dirname, `../webapp/index-${version}.html`) - const bootstrapSrc = `https://openui5nightly.hana.ondemand.com/${version}/resources/sap-ui-core.js` + const bootstrapSrc = `https://ui5.sap.com/${version}/resources/sap-ui-core.js` fsExtra.copySync(path.resolve(__dirname, `../webapp/index.html`), targetIndex) const optionsIndex = { files: targetIndex, From 296f622ab0fc2e383e8302e54909d8bca3d626e6 Mon Sep 17 00:00:00 2001 From: Volker Buzek <volker.buzek@js-soft.com> Date: Wed, 29 Jun 2022 15:15:01 +0200 Subject: [PATCH 07/10] test: document alternative "dropdown open" --- examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js b/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js index 09a43b45..283e767d 100644 --- a/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js +++ b/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js @@ -70,6 +70,13 @@ describe("mixed locators", () => { */ const select = await browser.asControl(selector) await select.open() // <- meh, but needed to have the select items in the DOM + // alternative: + // await browser.asControl({ + // "controlType": "sap.m.Select" + // "interaction": { + // "idSuffix": "arrow" + // } + // }).press() const selectedItem = await select.getSelectedItem() const text = await selectedItem.getText() expect(text).toEqual("Algeria") From 10eae1d3fd07aa26d4335bafa290f142535c9e03 Mon Sep 17 00:00:00 2001 From: wdi5 bot <wdi5-bot@users.noreply.github.com> Date: Wed, 29 Jun 2022 13:50:42 +0000 Subject: [PATCH 08/10] chore(release): 0.9.6 --- CHANGELOG.md | 2 ++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf39c5cb..d790670a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### 0.9.6 (2022-06-29) + ### 0.9.5 (2022-06-24) diff --git a/package-lock.json b/package-lock.json index 3e50d10e..3b005355 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wdio-ui5-service", - "version": "0.9.5", + "version": "0.9.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wdio-ui5-service", - "version": "0.9.5", + "version": "0.9.6", "license": "(Apache-2.0 or DERIVED BEER-WARE)", "workspaces": [ ".", diff --git a/package.json b/package.json index dca7ad53..3d5dcee7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wdio-ui5-service", - "version": "0.9.5", + "version": "0.9.6", "description": "WebdriverIO plugin for testing UI5 browser-based apps", "keywords": [ "wdio-service", From d549c747f15c750d94884cefbb497c866ce5133c Mon Sep 17 00:00:00 2001 From: Simon Coen <32054457+Siolto@users.noreply.github.com> Date: Mon, 4 Jul 2022 09:29:29 +0200 Subject: [PATCH 09/10] fix: remove typo from error handling (#297) --- client-side-js/injectUI5.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-side-js/injectUI5.js b/client-side-js/injectUI5.js index 1105bf65..25711578 100644 --- a/client-side-js/injectUI5.js +++ b/client-side-js/injectUI5.js @@ -327,7 +327,7 @@ async function clientSide_injectUI5(config, waitForUI5Timeout, browserInstance) window.wdi5.errorHandling = (done, error) => { window.wdi5.Log.error("[browser wdi5] ERR: ", error) - done({ status: 1, messsage: error.toString() }) + done({ status: 1, message: error.toString() }) } } ) From 8ab2f89fb16fbbe24fa62e9236a5ff6f6abb9a21 Mon Sep 17 00:00:00 2001 From: wdi5 bot <wdi5-bot@users.noreply.github.com> Date: Mon, 4 Jul 2022 07:30:39 +0000 Subject: [PATCH 10/10] chore(release): 0.9.7 --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d790670a..95078959 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### 0.9.7 (2022-07-04) + + +### Bug Fixes + +* remove typo from error handling ([#297](https://github.com/js-soft/wdi5/issues/297)) ([d549c74](https://github.com/js-soft/wdi5/commit/d549c747f15c750d94884cefbb497c866ce5133c)) + ### 0.9.6 (2022-06-29) ### 0.9.5 (2022-06-24) diff --git a/package-lock.json b/package-lock.json index 3b005355..9a68951b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "wdio-ui5-service", - "version": "0.9.6", + "version": "0.9.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "wdio-ui5-service", - "version": "0.9.6", + "version": "0.9.7", "license": "(Apache-2.0 or DERIVED BEER-WARE)", "workspaces": [ ".", diff --git a/package.json b/package.json index 3d5dcee7..53cfb2ca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wdio-ui5-service", - "version": "0.9.6", + "version": "0.9.7", "description": "WebdriverIO plugin for testing UI5 browser-based apps", "keywords": [ "wdio-service",