@sap_oss/wdio-qmate-service 2.9.5 → 2.9.6
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/lib/reuse/modules/ui5/navigation.d.ts +5 -1
- package/lib/reuse/modules/ui5/navigation.js +60 -29
- package/lib/reuse/modules/ui5/navigation.js.map +1 -1
- package/package.json +1 -1
- package/test/reuse/ui5/navigation/navigateToApplication.spec.js +74 -108
- package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +0 -82
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParams.spec.js +0 -25
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParamsAndRetry.spec.js +0 -25
- package/test/reuse/ui5/navigation/test.navigation.static.conf.js +16 -18
- package/test/reuse/ui5/navigation/website/main.html +16 -17
- package/test/reuse/ui5/navigationBar/clickBack.spec.js +6 -6
- package/test/reuse/ui5/navigationBar/clickUserIcon.spec.js +1 -1
- package/test/reuse/ui5/navigationBar/expectPageTitle.spec.js +1 -1
- package/test/reuse/ui5/navigationBar/expectShellHeader.spec.js +1 -1
- package/test/reuse/ui5/navigationBar/test.navigationBar.conf.js +1 -1
|
@@ -98,7 +98,11 @@ export declare class Navigation {
|
|
|
98
98
|
* @example await ui5.navigation.expectUnsupportedNavigationPopup("#SupplierInvoice-display?FiscalYear=1234&SupplierInvoice=1234567890");
|
|
99
99
|
*/
|
|
100
100
|
expectUnsupportedNavigationPopup(navigationTarget: string): Promise<void>;
|
|
101
|
-
private
|
|
101
|
+
private _extractQueryParams;
|
|
102
|
+
private _normalizeQueryString;
|
|
103
|
+
private _constructUrlParams;
|
|
104
|
+
private _getPreventPopupParams;
|
|
105
|
+
private _mapQueryParams;
|
|
102
106
|
private _closePopup;
|
|
103
107
|
}
|
|
104
108
|
declare const _default: Navigation;
|
|
@@ -14,8 +14,7 @@ class Navigation {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
this.vlf = new verboseLogger_1.VerboseLoggerFactory("ui5", "navigation");
|
|
16
16
|
this.ErrorHandler = new errorHandler_1.default();
|
|
17
|
-
this.errorText = "Navigation failed because page didn't load, possible reasons: " +
|
|
18
|
-
"Site is down, or you are using a wrong address. For retrying use 'navigateToApplicationAndRetry'.\n";
|
|
17
|
+
this.errorText = "Navigation failed because page didn't load, possible reasons: " + "Site is down, or you are using a wrong address. For retrying use 'navigateToApplicationAndRetry'.\n";
|
|
19
18
|
}
|
|
20
19
|
// =================================== MAIN ===================================
|
|
21
20
|
/**
|
|
@@ -30,16 +29,29 @@ class Navigation {
|
|
|
30
29
|
*/
|
|
31
30
|
async navigateToApplication(intent, preventPopups = false, verify = false, refresh = true) {
|
|
32
31
|
const vl = this.vlf.initLog(this.navigateToApplication);
|
|
33
|
-
|
|
32
|
+
const baseUrlNormalized = this._normalizeQueryString(browser.config.baseUrl);
|
|
33
|
+
const intentNormalized = this._normalizeQueryString(intent);
|
|
34
|
+
let queryParams = [];
|
|
35
|
+
// Check if intent has query params and extract them from the intent
|
|
36
|
+
queryParams = queryParams.concat(this._extractQueryParams(intent));
|
|
37
|
+
// Check if baseUrl has query params and extract them from the baseUrl
|
|
38
|
+
queryParams = queryParams.concat(this._extractQueryParams(browser.config.baseUrl));
|
|
39
|
+
// Add prevent popup url params if not already present
|
|
34
40
|
if (preventPopups) {
|
|
35
|
-
|
|
41
|
+
queryParams = queryParams.concat(this._getPreventPopupParams(queryParams));
|
|
36
42
|
}
|
|
43
|
+
// Construct the url with the intent and query params
|
|
44
|
+
let constructedParams = this._constructUrlParams(queryParams);
|
|
45
|
+
if (constructedParams !== "")
|
|
46
|
+
constructedParams = `?${constructedParams}`;
|
|
47
|
+
const urlWithParams = `${baseUrlNormalized}${constructedParams}#${intentNormalized}`;
|
|
48
|
+
vl.log(`Url with params: ${urlWithParams}`);
|
|
37
49
|
try {
|
|
38
|
-
await browser.navigateTo(
|
|
50
|
+
await browser.navigateTo(urlWithParams);
|
|
39
51
|
const url = await browser.getUrl();
|
|
40
52
|
await util.browser.logCurrentUrl();
|
|
41
|
-
if (url && url.
|
|
42
|
-
|
|
53
|
+
if (url && !url.includes(intent) && verify) {
|
|
54
|
+
new Error("Failed to verify successful navigation.");
|
|
43
55
|
}
|
|
44
56
|
if (refresh) {
|
|
45
57
|
await util.browser.refresh();
|
|
@@ -127,7 +139,16 @@ class Navigation {
|
|
|
127
139
|
const vl = this.vlf.initLog(this.navigateToApplicationWithQueryParams);
|
|
128
140
|
let url;
|
|
129
141
|
try {
|
|
130
|
-
|
|
142
|
+
let parsedQueryParams = "";
|
|
143
|
+
if (queryParams) {
|
|
144
|
+
if (queryParams.startsWith("?")) {
|
|
145
|
+
parsedQueryParams = queryParams;
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
parsedQueryParams = `?${queryParams}`;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
await browser.url(`${browser.config.baseUrl}${parsedQueryParams}#${intent}`);
|
|
131
152
|
url = await browser.getUrl();
|
|
132
153
|
await util.browser.logCurrentUrl();
|
|
133
154
|
if (url && url.indexOf(intent) === -1 && verify) {
|
|
@@ -223,30 +244,40 @@ class Navigation {
|
|
|
223
244
|
return common.assertion.expectTrue(stringExists);
|
|
224
245
|
}
|
|
225
246
|
// =================================== HELPER ===================================
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (
|
|
230
|
-
|
|
247
|
+
_extractQueryParams(input) {
|
|
248
|
+
const queryParams = [];
|
|
249
|
+
const queryParts = input.split("?");
|
|
250
|
+
if (queryParts.length > 1) {
|
|
251
|
+
queryParams.push(...this._mapQueryParams(queryParts[1]));
|
|
231
252
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
253
|
+
return queryParams;
|
|
254
|
+
}
|
|
255
|
+
_normalizeQueryString(input) {
|
|
256
|
+
const queryParts = input.split("?");
|
|
257
|
+
return queryParts[0];
|
|
258
|
+
}
|
|
259
|
+
_constructUrlParams(queryParams) {
|
|
260
|
+
return queryParams.map((param) => `${param.key}=${param.value}`).join("&");
|
|
261
|
+
}
|
|
262
|
+
_getPreventPopupParams(queryParams) {
|
|
263
|
+
const combinedQueryParams = [];
|
|
264
|
+
const READ_CATALOG_PARAM = "help-readCatalog";
|
|
265
|
+
const STATE_UACP_PARAM = "help-stateUACP";
|
|
266
|
+
const hasReadCatalog = queryParams.some((param) => param.key === READ_CATALOG_PARAM);
|
|
267
|
+
const hasStateUACP = queryParams.some((param) => param.key === STATE_UACP_PARAM);
|
|
268
|
+
if (!hasReadCatalog) {
|
|
269
|
+
combinedQueryParams.push({ key: READ_CATALOG_PARAM, value: "false" });
|
|
237
270
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
urlParams = "help-stateUACP=PRODUCTION";
|
|
241
|
-
}
|
|
242
|
-
else if (!browser.config.baseUrl.includes("help-readCatalog=false") && browser.config.baseUrl.includes("help-stateUACP=PRODUCTION")) {
|
|
243
|
-
urlParams = "help-readCatalog=false";
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
urlParams = "help-readCatalog=false&help-stateUACP=PRODUCTION";
|
|
247
|
-
}
|
|
271
|
+
if (!hasStateUACP) {
|
|
272
|
+
combinedQueryParams.push({ key: STATE_UACP_PARAM, value: "PRODUCTION" });
|
|
248
273
|
}
|
|
249
|
-
return
|
|
274
|
+
return combinedQueryParams;
|
|
275
|
+
}
|
|
276
|
+
_mapQueryParams(params) {
|
|
277
|
+
return params.split("&").map((param) => {
|
|
278
|
+
const [key, value] = param.split("=");
|
|
279
|
+
return { key, value };
|
|
280
|
+
});
|
|
250
281
|
}
|
|
251
282
|
async _closePopup(popup, timeout = 30000) {
|
|
252
283
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/navigation.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,8DAAkE;AAClE,6EAAqD;
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/navigation.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;AAEb,8DAAkE;AAClE,6EAAqD;AAYrD;;;GAGG;AACH,MAAa,UAAU;IAAvB;QACU,QAAG,GAAG,IAAI,oCAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACpD,iBAAY,GAAG,IAAI,sBAAY,EAAE,CAAC;QAE1C,cAAS,GAAG,gEAAgE,GAAG,qGAAqG,CAAC;IAgUvL,CAAC;IA9TC,+EAA+E;IAC/E;;;;;;;;;OASG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,aAAa,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,IAAI;QAC/F,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAExD,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE5D,IAAI,WAAW,GAAsB,EAAE,CAAC;QAExC,oEAAoE;QACpE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnE,sEAAsE;QACtE,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnF,sDAAsD;QACtD,IAAI,aAAa,EAAE,CAAC;YAClB,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,qDAAqD;QACrD,IAAI,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,iBAAiB,KAAK,EAAE;YAAE,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC1E,MAAM,aAAa,GAAG,GAAG,iBAAiB,GAAG,iBAAiB,IAAI,gBAAgB,EAAE,CAAC;QACrF,EAAE,CAAC,GAAG,CAAC,oBAAoB,aAAa,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAExC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAEnC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBAC3C,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,6BAA6B,CAAC,MAAc,EAAE,aAAa,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;QACnH,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAChE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB,KAAK,EAAE,MAAc,EAAE,aAAsB,EAAE,EAAE;YAC/C,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAClE,CAAC,EACD,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,EAC/B,OAAO,EACP,QAAQ,EACR,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,8BAA8B,CAAC,MAAc,EAAE,MAAc,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,KAAK;QACrG,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,CAAC,WAAW,MAAM,OAAO,MAAM,EAAE,CAAC,CAAC;YAC3D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;YAC1G,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,sCAAsC,CAAC,MAAc,EAAE,MAAc,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;QAC1I,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB,KAAK,EAAE,MAAc,EAAE,MAAc,EAAE,WAAoB,EAAE,EAAE;YAC7D,MAAM,IAAI,CAAC,8BAA8B,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC,EACD,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EACrC,OAAO,EACP,QAAQ,EACR,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,oCAAoC,CAAC,MAAc,EAAE,WAAW,GAAG,EAAE,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,KAAK;QAC7G,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QACvE,IAAI,GAAG,CAAC;QACR,IAAI,CAAC;YACH,IAAI,iBAAiB,GAAG,EAAE,CAAC;YAC3B,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,iBAAiB,GAAG,WAAW,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,iBAAiB,GAAG,IAAI,WAAW,EAAE,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,iBAAiB,IAAI,MAAM,EAAE,CAAC,CAAC;YAC7E,GAAG,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;gBAChD,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC,CAAC;YAC1G,CAAC;YACD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;YACrC,CAAC;YACD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,4CAA4C,CAAC,MAAc,EAAE,WAAmB,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI;QACrJ,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC/E,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CACvB,KAAK,EAAE,MAAc,EAAE,WAAmB,EAAE,WAAoB,EAAE,MAAe,EAAE,EAAE;YACnF,MAAM,IAAI,CAAC,oCAAoC,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC5F,CAAC,EACD,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAC1C,OAAO,EACP,QAAQ,EACR,IAAI,CACL,CAAC;IACJ,CAAC;IAED,iFAAiF;IACjF;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,KAAK;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,uBAAuB;aAClC;YACD;gBACE,IAAI,EAAE,aAAa;gBACnB,QAAQ,EAAE,sEAAsE;aACjF;SACF,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9E,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,oFAAoF;IACpF;;;;;;;OAOG;IACH,KAAK,CAAC,gCAAgC,CAAC,gBAAwB;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QACnE,MAAM,0BAA0B,GAAG;YACjC,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,cAAc;gBACxB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO;aACf;SACF,CAAC;QACF,MAAM,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC,CAAC;QAElE,MAAM,iBAAiB,GAAG;YACxB,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,0BAA0B;aACrC;SACF,CAAC;QACF,MAAM,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG;YACf,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,qBAAqB;gBAC/B,kBAAkB,EAAE,0BAA0B;aAC/C;SACF,CAAC;QACF,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1F,OAAO,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACnD,CAAC;IAED,iFAAiF;IACzE,mBAAmB,CAAC,KAAa;QACvC,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,qBAAqB,CAAC,KAAa;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAEO,mBAAmB,CAAC,WAAyB;QACnD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAEO,sBAAsB,CAAC,WAA8B;QAC3D,MAAM,mBAAmB,GAAsB,EAAE,CAAC;QAElD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;QAC9C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;QAE1C,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC;QACrF,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,gBAAgB,CAAC,CAAC;QAEjF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAC,MAAc;QACpC,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAY,EAAE,UAAkB,KAAK;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,cAAc,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AApUD,gCAoUC;AACD,kBAAe,IAAI,UAAU,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,148 +1,114 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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);
|
|
3
|
+
// Tests to add:
|
|
4
|
+
// - test with preventPopups=false
|
|
5
|
+
// - test with preventPopups=true
|
|
6
|
+
// - test where baseUrl has query parameters
|
|
7
|
+
// - test where intent has query parameters
|
|
8
|
+
// - test where baseUrl has multiple query parameters
|
|
9
|
+
// - test with error handling
|
|
10
|
+
|
|
11
|
+
const BASE_URL = `http://localhost:34099/ui`;
|
|
12
|
+
const INTENT = "Shell-home";
|
|
13
|
+
const DUMMY_QUERY_PARAM = "dummyQueryParam=dummyValue";
|
|
14
|
+
const PREVENT_POPUP_QUERY_PARAMS = "help-readCatalog=false&help-stateUACP=PRODUCTION";
|
|
15
|
+
|
|
16
|
+
describe("navigation - navigateToApplication - preventPopups=false", function () {
|
|
17
|
+
it("Preparation", async function () {
|
|
18
|
+
browser.config.baseUrl = BASE_URL;
|
|
19
|
+
});
|
|
30
20
|
|
|
31
|
-
|
|
21
|
+
it("Execution", async function () {
|
|
22
|
+
await ui5.navigation.navigateToApplication(INTENT, false);
|
|
23
|
+
});
|
|
32
24
|
|
|
25
|
+
it("Verification", async function () {
|
|
26
|
+
const urlExp = `${BASE_URL}#Shell-home`;
|
|
27
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
33
28
|
});
|
|
34
29
|
});
|
|
35
30
|
|
|
36
|
-
describe("navigation - navigateToApplication
|
|
37
|
-
it("
|
|
38
|
-
|
|
39
|
-
|
|
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`;
|
|
31
|
+
describe("navigation - navigateToApplication - preventPopups=true", function () {
|
|
32
|
+
it("Preparation", async function () {
|
|
33
|
+
browser.config.baseUrl = BASE_URL;
|
|
34
|
+
});
|
|
57
35
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
36
|
+
it("Execution", async function () {
|
|
37
|
+
await ui5.navigation.navigateToApplication(INTENT, true);
|
|
38
|
+
});
|
|
61
39
|
|
|
62
|
-
|
|
40
|
+
it("Verification", async function () {
|
|
41
|
+
const urlExp = `${BASE_URL}?${PREVENT_POPUP_QUERY_PARAMS}#Shell-home`;
|
|
42
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
43
|
+
});
|
|
44
|
+
});
|
|
63
45
|
|
|
64
|
-
|
|
65
|
-
|
|
46
|
+
describe("navigation - navigateToApplication - baseUrl with closePopup query parameters", function () {
|
|
47
|
+
it("Preparation", async function () {
|
|
48
|
+
browser.config.baseUrl = `${BASE_URL}?${PREVENT_POPUP_QUERY_PARAMS}`;
|
|
49
|
+
});
|
|
66
50
|
|
|
67
|
-
|
|
51
|
+
it("Execution", async function () {
|
|
52
|
+
await ui5.navigation.navigateToApplication(INTENT, false);
|
|
53
|
+
});
|
|
68
54
|
|
|
55
|
+
it("Verification", async function () {
|
|
56
|
+
const urlExp = `${BASE_URL}?${PREVENT_POPUP_QUERY_PARAMS}#Shell-home`;
|
|
57
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
69
58
|
});
|
|
70
59
|
});
|
|
71
60
|
|
|
72
|
-
describe("navigation - navigateToApplication
|
|
73
|
-
|
|
74
|
-
|
|
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();
|
|
61
|
+
describe("navigation - navigateToApplication - baseUrl with dummy query parameters", function () {
|
|
62
|
+
it("Preparation", async function () {
|
|
63
|
+
browser.config.baseUrl = `${BASE_URL}?${DUMMY_QUERY_PARAM}`;
|
|
64
|
+
});
|
|
81
65
|
|
|
82
|
-
|
|
83
|
-
|
|
66
|
+
it("Execution", async function () {
|
|
67
|
+
await ui5.navigation.navigateToApplication(INTENT, false);
|
|
68
|
+
});
|
|
84
69
|
|
|
85
|
-
|
|
86
|
-
|
|
70
|
+
it("Verification", async function () {
|
|
71
|
+
const urlExp = `${BASE_URL}?${DUMMY_QUERY_PARAM}#Shell-home`;
|
|
72
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
87
73
|
});
|
|
88
74
|
});
|
|
89
75
|
|
|
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 () {
|
|
76
|
+
describe("navigation - navigateToApplication - intent with dummy query parameters", function () {
|
|
107
77
|
it("Preparation", async function () {
|
|
108
|
-
|
|
109
|
-
await ui5.session.loginFiori("PURCHASER", "super-duper-sensitive-pw");
|
|
78
|
+
browser.config.baseUrl = BASE_URL;
|
|
110
79
|
});
|
|
111
80
|
|
|
112
81
|
it("Execution", async function () {
|
|
113
|
-
await ui5.navigation.navigateToApplication(
|
|
82
|
+
await ui5.navigation.navigateToApplication(`${INTENT}?${DUMMY_QUERY_PARAM}`, false);
|
|
114
83
|
});
|
|
115
84
|
|
|
116
85
|
it("Verification", async function () {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
it("Clean Up", async function () {
|
|
121
|
-
await ui5.session.logout();
|
|
86
|
+
const urlExp = `${BASE_URL}?${DUMMY_QUERY_PARAM}#Shell-home`;
|
|
87
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
122
88
|
});
|
|
123
89
|
});
|
|
124
90
|
|
|
125
|
-
|
|
126
|
-
// TODO: discuss local server usage for assertion tests execution
|
|
127
|
-
describe.skip("assertion - expectUnsupportedNavigationPopup with '&' (unhappy case, another error popup)", function () {
|
|
91
|
+
describe("navigation - navigateToApplication - baseUrl with multiple query parameters", function () {
|
|
128
92
|
it("Preparation", async function () {
|
|
129
|
-
|
|
130
|
-
await ui5.session.loginFiori("PURCHASER", "super-duper-sensitive-pw");
|
|
93
|
+
browser.config.baseUrl = `${BASE_URL}?${DUMMY_QUERY_PARAM}&${PREVENT_POPUP_QUERY_PARAMS}`;
|
|
131
94
|
});
|
|
132
95
|
|
|
133
96
|
it("Execution", async function () {
|
|
134
|
-
await ui5.navigation.navigateToApplication(
|
|
97
|
+
await ui5.navigation.navigateToApplication(INTENT, false);
|
|
135
98
|
});
|
|
136
99
|
|
|
137
100
|
it("Verification", async function () {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
101
|
+
const urlExp = `${BASE_URL}?${DUMMY_QUERY_PARAM}&${PREVENT_POPUP_QUERY_PARAMS}#Shell-home`;
|
|
102
|
+
await common.assertion.expectUrlToBe(urlExp);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
describe("navigation - navigateToApplication - verify=true", function () {
|
|
107
|
+
it("Preparation", async function () {
|
|
108
|
+
browser.config.baseUrl = BASE_URL;
|
|
143
109
|
});
|
|
144
110
|
|
|
145
|
-
it("
|
|
146
|
-
await ui5.
|
|
111
|
+
it("Execution & Verification", async function () {
|
|
112
|
+
await ui5.navigation.navigateToApplication(INTENT, false, true);
|
|
147
113
|
});
|
|
148
|
-
});
|
|
114
|
+
});
|
|
@@ -33,7 +33,6 @@ describe("navigation - navigateToApplicationAndRetry with closePopups=true", fun
|
|
|
33
33
|
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
34
34
|
|
|
35
35
|
await common.assertion.expectEqual(urlExpected, parsedUrlValue);
|
|
36
|
-
|
|
37
36
|
});
|
|
38
37
|
});
|
|
39
38
|
|
|
@@ -68,86 +67,5 @@ describe("navigation - navigateToApplicationAndRetry with closePopups=false", fu
|
|
|
68
67
|
parsedUrlValue = await nonUi5.element.getValue(parsedUrlElement);
|
|
69
68
|
|
|
70
69
|
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 '<urlToSystem>#%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", "super-duper-sensitive-pw");
|
|
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
70
|
});
|
|
128
71
|
});
|
|
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", "super-duper-sensitive-pw");
|
|
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
|
-
});
|
|
@@ -19,31 +19,6 @@ describe("navigation - navigateToApplicationWithQueryParams with query param in
|
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
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
22
|
describe("navigation - navigateToApplicationWithQueryParams with empty param in url", function () {
|
|
48
23
|
const intent = "PurchaseOrder-manage";
|
|
49
24
|
|
|
@@ -20,31 +20,6 @@ describe("navigation - navigateToApplicationWithQueryParamsAndRetry with query p
|
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
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
23
|
describe("navigation - navigateToApplicationWithQueryParamsAndRetry with empty param in url", function () {
|
|
49
24
|
const intent = "PurchaseOrder-manage";
|
|
50
25
|
|
|
@@ -7,25 +7,23 @@ exports.config = merge(profile.config, {
|
|
|
7
7
|
baseUrl: "http://localhost:34099/ui",
|
|
8
8
|
|
|
9
9
|
services: [
|
|
10
|
-
[
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
[
|
|
11
|
+
"static-server",
|
|
12
|
+
{
|
|
13
|
+
port: 34099,
|
|
14
|
+
folders: [
|
|
15
|
+
{
|
|
16
|
+
mount: "/ui",
|
|
17
|
+
path: path.resolve(__dirname, "./website/main.html")
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
]
|
|
17
22
|
],
|
|
18
23
|
|
|
19
|
-
specs: [
|
|
20
|
-
// path.resolve(__dirname, "navigateToApplication.spec.js"),
|
|
21
|
-
path.resolve(__dirname, "navigateToApplicationAndRetry.spec.js"),
|
|
22
|
-
// path.resolve(__dirname, "navigateToApplicationWithQueryParams.spec.js"),
|
|
23
|
-
// path.resolve(__dirname, "navigateToApplicationWithQueryParamsAndRetry.spec.js")
|
|
24
|
-
],
|
|
25
|
-
|
|
26
|
-
exclude: [],
|
|
24
|
+
specs: [path.resolve(__dirname, "navigateToApplication.spec.js"), path.resolve(__dirname, "navigateToApplicationAndRetry.spec.js"), path.resolve(__dirname, "navigateToApplicationWithQueryParams.spec.js"), path.resolve(__dirname, "navigateToApplicationWithQueryParamsAndRetry.spec.js")],
|
|
27
25
|
|
|
28
26
|
mochaOpts: {
|
|
29
|
-
timeout: 2000000
|
|
30
|
-
}
|
|
31
|
-
});
|
|
27
|
+
timeout: 2000000
|
|
28
|
+
}
|
|
29
|
+
});
|
|
@@ -22,29 +22,28 @@
|
|
|
22
22
|
|
|
23
23
|
<body>
|
|
24
24
|
|
|
25
|
-
<nav class="navbar navbar-light ">
|
|
26
|
-
|
|
27
|
-
</nav>
|
|
25
|
+
<nav class="navbar navbar-light ">
|
|
26
|
+
<a class="navbar-brand" href="#">Ui5 navigation testing</a>
|
|
27
|
+
</nav>
|
|
28
28
|
|
|
29
|
-
<div class="container-fluid">
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
<div class="container-fluid">
|
|
30
|
+
<div class="row content">
|
|
31
|
+
<div class="well">
|
|
32
|
+
<button type="button" id="parseUrl" onclick="parseUrl();" class="btn btn-default">Parse URL</button>
|
|
33
|
+
</div>
|
|
34
|
+
<br>
|
|
35
|
+
<div class="col-sm-5">
|
|
36
|
+
<div class="row">
|
|
37
|
+
<div class="col-sm-5">
|
|
38
|
+
<div class="well">
|
|
39
|
+
<label> Your URL is: </label>
|
|
40
|
+
<p><span id="navigationUrl">not parsed yet</span></p>
|
|
41
|
+
</div>
|
|
42
42
|
</div>
|
|
43
43
|
</div>
|
|
44
44
|
</div>
|
|
45
45
|
</div>
|
|
46
46
|
</div>
|
|
47
|
-
</div>
|
|
48
47
|
</body>
|
|
49
48
|
|
|
50
49
|
</html>
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
describe("navigationBar - clickBack", async function () {
|
|
4
4
|
it("Preparation", async function () {
|
|
5
|
-
await common.navigation.navigateToUrl(
|
|
5
|
+
await common.navigation.navigateToUrl(browser.config.baseUrl);
|
|
6
6
|
const selector = {
|
|
7
|
-
elementProperties: {
|
|
8
|
-
viewName: "sap.ushell.components.
|
|
9
|
-
metadata: "sap.m.GenericTile",
|
|
10
|
-
bindingContextPath: "/
|
|
7
|
+
"elementProperties": {
|
|
8
|
+
"viewName": "sap.ushell.components.homepage.DashboardContent",
|
|
9
|
+
"metadata": "sap.m.GenericTile",
|
|
10
|
+
"bindingContextPath": "/groups/1/tiles/1/content/0"
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
13
|
await ui5.userInteraction.click(selector);
|
|
@@ -24,7 +24,7 @@ describe("navigationBar - clickBack", async function () {
|
|
|
24
24
|
|
|
25
25
|
describe("navigationBar - clickBack - error case", function () {
|
|
26
26
|
it("Preparation", async function () {
|
|
27
|
-
await common.navigation.navigateToUrl(
|
|
27
|
+
await common.navigation.navigateToUrl(browser.config.baseUrl);
|
|
28
28
|
});
|
|
29
29
|
|
|
30
30
|
it("Execution & Verification", async function () {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
describe("navigationBar - clickUserIcon", async function () {
|
|
4
4
|
|
|
5
5
|
it("Preparation", async function () {
|
|
6
|
-
await common.navigation.navigateToUrl(
|
|
6
|
+
await common.navigation.navigateToUrl(browser.config.baseUrl);
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
it("Execution", async function () {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
describe("navigationBar - expectPageTitle", function () {
|
|
4
4
|
it("Preparation", async function () {
|
|
5
|
-
await common.navigation.navigateToUrl(
|
|
5
|
+
await common.navigation.navigateToUrl(browser.config.baseUrl);
|
|
6
6
|
});
|
|
7
7
|
|
|
8
8
|
it("Execution & Verification", async function () {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
describe("navigationBar - expectShellHeader", function () {
|
|
4
4
|
it("Preparation", async function () {
|
|
5
|
-
await common.navigation.navigateToUrl(
|
|
5
|
+
await common.navigation.navigateToUrl(browser.config.baseUrl);
|
|
6
6
|
});
|
|
7
7
|
|
|
8
8
|
it("Execution & Verification", async function () {
|
|
@@ -6,7 +6,7 @@ exports.config = merge(profile.config, {
|
|
|
6
6
|
maxInstances: 4,
|
|
7
7
|
specFileRetries: 2,
|
|
8
8
|
|
|
9
|
-
baseUrl: "https://sapui5.hana.ondemand.com/test-resources/sap/ui/demoapps/demokit/rta/fiori-elements/test/index.html#Shell-home",
|
|
9
|
+
baseUrl: "https://sapui5.hana.ondemand.com/1.96.27/test-resources/sap/ui/demoapps/demokit/rta/fiori-elements/test/index.html#Shell-home",
|
|
10
10
|
|
|
11
11
|
specs: [
|
|
12
12
|
path.resolve(__dirname, "clickBack.spec.js"),
|