@sapui5/sap.fe.test 1.96.4 → 1.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/package.json +6 -3
  2. package/src/sap/fe/test/.library +1 -1
  3. package/src/sap/fe/test/BaseActions.js +3 -2
  4. package/src/sap/fe/test/BaseArrangements.js +3 -2
  5. package/src/sap/fe/test/BaseAssertions.js +3 -2
  6. package/src/sap/fe/test/ConfirmDialog.js +3 -2
  7. package/src/sap/fe/test/FCLView.js +3 -2
  8. package/src/sap/fe/test/FeMocks.js +66 -0
  9. package/src/sap/fe/test/FeMocks.ts +77 -0
  10. package/src/sap/fe/test/Flexibility.js +17 -5
  11. package/src/sap/fe/test/FlexibleColumnLayout.js +3 -2
  12. package/src/sap/fe/test/JestTemplatingHelper.js +78 -22
  13. package/src/sap/fe/test/JestTemplatingHelper.ts +66 -22
  14. package/src/sap/fe/test/JourneyRunner.js +11 -5
  15. package/src/sap/fe/test/ListReport.js +11 -16
  16. package/src/sap/fe/test/LocationUtil.js +3 -2
  17. package/src/sap/fe/test/ObjectPage.js +28 -55
  18. package/src/sap/fe/test/Shell.js +3 -2
  19. package/src/sap/fe/test/Stubs.js +3 -2
  20. package/src/sap/fe/test/TemplatePage.js +3 -14
  21. package/src/sap/fe/test/TemplatingTestUtils.js +4 -3
  22. package/src/sap/fe/test/UI5MockHelper.js +249 -39
  23. package/src/sap/fe/test/UI5MockHelper.ts +138 -9
  24. package/src/sap/fe/test/Utils.js +3 -14
  25. package/src/sap/fe/test/api/APIHelper.js +3 -2
  26. package/src/sap/fe/test/api/BaseAPI.js +26 -9
  27. package/src/sap/fe/test/api/ChartActions.js +3 -2
  28. package/src/sap/fe/test/api/ChartAssertions.js +7 -6
  29. package/src/sap/fe/test/api/DialogAPI.js +26 -9
  30. package/src/sap/fe/test/api/DialogActions.js +21 -7
  31. package/src/sap/fe/test/api/DialogAssertions.js +28 -7
  32. package/src/sap/fe/test/api/DialogCreateActions.js +4 -3
  33. package/src/sap/fe/test/api/DialogCreateAssertions.js +4 -3
  34. package/src/sap/fe/test/api/DialogMessageActions.js +19 -3
  35. package/src/sap/fe/test/api/DialogMessageAssertions.js +4 -3
  36. package/src/sap/fe/test/api/DialogType.js +3 -2
  37. package/src/sap/fe/test/api/DialogValueHelpActions.js +4 -3
  38. package/src/sap/fe/test/api/DialogValueHelpAssertions.js +4 -3
  39. package/src/sap/fe/test/api/EditState.js +12 -2
  40. package/src/sap/fe/test/api/FilterBarAPI.js +3 -2
  41. package/src/sap/fe/test/api/FilterBarActions.js +41 -6
  42. package/src/sap/fe/test/api/FilterBarAssertions.js +3 -2
  43. package/src/sap/fe/test/api/FooterAPI.js +3 -2
  44. package/src/sap/fe/test/api/FooterActionsBase.js +3 -2
  45. package/src/sap/fe/test/api/FooterActionsOP.js +3 -2
  46. package/src/sap/fe/test/api/FooterAssertionsBase.js +3 -2
  47. package/src/sap/fe/test/api/FooterAssertionsOP.js +3 -2
  48. package/src/sap/fe/test/api/FormAPI.js +3 -2
  49. package/src/sap/fe/test/api/FormActions.js +3 -2
  50. package/src/sap/fe/test/api/FormAssertions.js +36 -6
  51. package/src/sap/fe/test/api/HeaderAPI.js +3 -2
  52. package/src/sap/fe/test/api/HeaderActions.js +3 -2
  53. package/src/sap/fe/test/api/HeaderActionsLR.js +3 -2
  54. package/src/sap/fe/test/api/HeaderAssertions.js +3 -2
  55. package/src/sap/fe/test/api/HeaderAssertionsLR.js +3 -2
  56. package/src/sap/fe/test/api/HeaderLR.js +3 -2
  57. package/src/sap/fe/test/api/KPICardAPI.js +3 -2
  58. package/src/sap/fe/test/api/KPICardActions.js +43 -0
  59. package/src/sap/fe/test/api/KPICardAssertions.js +22 -17
  60. package/src/sap/fe/test/api/TableAPI.js +3 -2
  61. package/src/sap/fe/test/api/TableActions.js +4 -22
  62. package/src/sap/fe/test/api/TableAssertions.js +17 -6
  63. package/src/sap/fe/test/builder/DialogBuilder.js +3 -2
  64. package/src/sap/fe/test/builder/FEBuilder.js +3 -2
  65. package/src/sap/fe/test/builder/KPIBuilder.js +14 -4
  66. package/src/sap/fe/test/builder/MacroFieldBuilder.js +3 -2
  67. package/src/sap/fe/test/builder/MdcFieldBuilder.js +3 -2
  68. package/src/sap/fe/test/builder/MdcFilterBarBuilder.js +3 -2
  69. package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +3 -2
  70. package/src/sap/fe/test/builder/MdcTableBuilder.js +15 -2
  71. package/src/sap/fe/test/builder/OverflowToolbarBuilder.js +3 -2
  72. package/src/sap/fe/test/builder/VMBuilder.js +3 -2
  73. package/src/sap/fe/test/internal/FEArrangements.js +3 -2
  74. package/src/sap/fe/test/internal/FEJourneyRunner.js +9 -5
  75. package/src/sap/fe/test/library.js +4 -3
  76. package/src/sap/fe/test/massEdit.js +3 -2
  77. package/ui5.yaml +0 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.test",
3
- "version": "1.96.4",
3
+ "version": "1.99.0",
4
4
  "description": "SAPUI5 Library sap.fe.test",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -9,6 +9,7 @@
9
9
  "build": "echo 'nothing to do'",
10
10
  "copy-dependency": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/classes/META-INF/test-resources",
11
11
  "prepare-npm-sources": "babel target/npm-sources/src --out-dir target/npm-sources/src --extensions \".ts\" --config-file ../../.babelrc",
12
+ "prepare-ui5-build-sources": "copyfiles -u 7 \"../../node_modules/@sap/ux-ui5-fe-mockserver-middleware/ui5-dist/test/**/*.js\" target/ui5-build-tmp/test && mkdirp target/ui5-build-tmp/src && babel src --out-dir target/ui5-build-tmp/src --extensions \".ts\" --config-file ../../.babelrc",
12
13
  "test": "echo 'nothing to do'"
13
14
  },
14
15
  "keywords": [
@@ -17,9 +18,11 @@
17
18
  ],
18
19
  "devDependencies": {
19
20
  "@babel/cli": "^7.14.8",
20
- "@ui5/cli": "^2.10.0",
21
+ "@ui5/cli": "^2.14.0",
21
22
  "copyfiles": "2.2.0",
23
+ "mkdirp": "^1.0.4",
22
24
  "xpath": "0.0.27",
23
- "xml-formatter": "2.4.0"
25
+ "xml-formatter": "2.4.0",
26
+ "@sap-ux/jest-mock-ui5": "2.0.3"
24
27
  }
25
28
  }
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.96.4</version>
9
+ <version>1.99.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.test</documentation>
12
12
 
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
6
7
  Opa5,
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(
6
7
  ["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/thirdparty/jquery", "sap/base/util/UriParameters", "./Utils", "./Stubs"],
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
6
7
  Opa5,
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(["sap/ui/test/OpaBuilder", "sap/ui/test/Opa5", "sap/fe/test/Utils"], function(OpaBuilder, Opa5, Utils) {
6
7
  "use strict";
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  /**
6
7
  * Actions and assertions to be used with a page hosted in an FCL
@@ -0,0 +1,66 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define(["sap/fe/core/PageController", "@sap-ux/jest-mock-ui5/dist/generic", "sap/ui/mdc/FilterBar", "sap/fe/core/controllerextensions/InternalEditFlow"], function (PageController, generic, FilterBar, InternalEditFlow) {
6
+ "use strict";
7
+
8
+ var _exports = {};
9
+ var mock = generic.mock;
10
+
11
+ function mockListReportController() {
12
+ // manually add ListReportController.controller functions since I am unable to import the prototype
13
+ var listReport = {
14
+ _getFilterBarControl: jest.fn(),
15
+ _getControls: jest.fn(),
16
+ _isFilterBarHidden: jest.fn(),
17
+ _isMultiMode: jest.fn(),
18
+ _setCountsOutDated: jest.fn(),
19
+ _getCurrentControl: jest.fn(),
20
+ _getMultiModeControl: jest.fn(),
21
+ _hasMultiVisualizations: jest.fn(),
22
+ _shouldAutoTriggerSearch: jest.fn(),
23
+ _getTable: jest.fn(),
24
+ getExtensionAPI: jest.fn(),
25
+ _editFlow: mock(InternalEditFlow)
26
+ };
27
+ return Object.assign(mock(PageController), listReport);
28
+ }
29
+
30
+ _exports.mockListReportController = mockListReportController;
31
+
32
+ function mockObjectPageController() {
33
+ // manually add ListReportController.controller functions since I am unable to import the prototype
34
+ var objectPage = {
35
+ getStickyEditMode: jest.fn(),
36
+ getExtensionAPI: jest.fn(),
37
+ _editFlow: mock(InternalEditFlow)
38
+ };
39
+ return Object.assign(mock(PageController), objectPage);
40
+ }
41
+
42
+ _exports.mockObjectPageController = mockObjectPageController;
43
+
44
+ function mockContextForExtension(extension, controller, base) {
45
+ var view = controller.getView();
46
+
47
+ extension.getView = function () {
48
+ return view;
49
+ };
50
+
51
+ var mockedBase = mock(base || {});
52
+ return Object.assign(mockedBase, extension);
53
+ }
54
+
55
+ _exports.mockContextForExtension = mockContextForExtension;
56
+
57
+ function mockFilterBar() {
58
+ var filterBar = mock(FilterBar);
59
+ filterBar.mock.initialized = jest.fn();
60
+ return filterBar;
61
+ }
62
+
63
+ _exports.mockFilterBar = mockFilterBar;
64
+ return _exports;
65
+ }, false);
66
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZlTW9ja3MudHMiXSwibmFtZXMiOlsibW9ja0xpc3RSZXBvcnRDb250cm9sbGVyIiwibGlzdFJlcG9ydCIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiamVzdCIsImZuIiwiX2dldENvbnRyb2xzIiwiX2lzRmlsdGVyQmFySGlkZGVuIiwiX2lzTXVsdGlNb2RlIiwiX3NldENvdW50c091dERhdGVkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9nZXRUYWJsZSIsImdldEV4dGVuc2lvbkFQSSIsIl9lZGl0RmxvdyIsIm1vY2siLCJJbnRlcm5hbEVkaXRGbG93IiwiT2JqZWN0IiwiYXNzaWduIiwiUGFnZUNvbnRyb2xsZXIiLCJtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIiLCJvYmplY3RQYWdlIiwiZ2V0U3RpY2t5RWRpdE1vZGUiLCJtb2NrQ29udGV4dEZvckV4dGVuc2lvbiIsImV4dGVuc2lvbiIsImNvbnRyb2xsZXIiLCJiYXNlIiwidmlldyIsImdldFZpZXciLCJtb2NrZWRCYXNlIiwibW9ja0ZpbHRlckJhciIsImZpbHRlckJhciIsIkZpbHRlckJhciIsImluaXRpYWxpemVkIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7O0FBMEJPLFdBQVNBLHdCQUFULEdBQTZIO0FBQ25JO0FBQ0EsUUFBTUMsVUFBMkUsR0FBRztBQUNuRkMsTUFBQUEsb0JBQW9CLEVBQUVDLElBQUksQ0FBQ0MsRUFBTCxFQUQ2RDtBQUVuRkMsTUFBQUEsWUFBWSxFQUFFRixJQUFJLENBQUNDLEVBQUwsRUFGcUU7QUFHbkZFLE1BQUFBLGtCQUFrQixFQUFFSCxJQUFJLENBQUNDLEVBQUwsRUFIK0Q7QUFJbkZHLE1BQUFBLFlBQVksRUFBRUosSUFBSSxDQUFDQyxFQUFMLEVBSnFFO0FBS25GSSxNQUFBQSxrQkFBa0IsRUFBRUwsSUFBSSxDQUFDQyxFQUFMLEVBTCtEO0FBTW5GSyxNQUFBQSxrQkFBa0IsRUFBRU4sSUFBSSxDQUFDQyxFQUFMLEVBTitEO0FBT25GTSxNQUFBQSxvQkFBb0IsRUFBRVAsSUFBSSxDQUFDQyxFQUFMLEVBUDZEO0FBUW5GTyxNQUFBQSx1QkFBdUIsRUFBRVIsSUFBSSxDQUFDQyxFQUFMLEVBUjBEO0FBU25GUSxNQUFBQSx3QkFBd0IsRUFBRVQsSUFBSSxDQUFDQyxFQUFMLEVBVHlEO0FBVW5GUyxNQUFBQSxTQUFTLEVBQUVWLElBQUksQ0FBQ0MsRUFBTCxFQVZ3RTtBQVduRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFYa0U7QUFZbkZXLE1BQUFBLFNBQVMsRUFBRUMsSUFBSSxDQUFDQyxnQkFBRDtBQVpvRSxLQUFwRjtBQWNBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBb0NuQixVQUFwQyxDQUFQO0FBR0E7Ozs7QUFFTSxXQUFTb0Isd0JBQVQsR0FBNkg7QUFDbkk7QUFDQSxRQUFNQyxVQUEyRSxHQUFHO0FBQ25GQyxNQUFBQSxpQkFBaUIsRUFBRXBCLElBQUksQ0FBQ0MsRUFBTCxFQURnRTtBQUVuRlUsTUFBQUEsZUFBZSxFQUFFWCxJQUFJLENBQUNDLEVBQUwsRUFGa0U7QUFHbkZXLE1BQUFBLFNBQVMsRUFBRUMsSUFBSSxDQUFDQyxnQkFBRDtBQUhvRSxLQUFwRjtBQUtBLFdBQU9DLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjSCxJQUFJLENBQUNJLGNBQUQsQ0FBbEIsRUFBb0NFLFVBQXBDLENBQVA7QUFHQTs7OztBQUVNLFdBQVNFLHVCQUFULENBQ05DLFNBRE0sRUFFTkMsVUFGTSxFQUdOQyxJQUhNLEVBSWlCO0FBQ3ZCLFFBQU1DLElBQUksR0FBR0YsVUFBVSxDQUFDRyxPQUFYLEVBQWI7O0FBQ0NKLElBQUFBLFNBQUQsQ0FBbUJJLE9BQW5CLEdBQTZCO0FBQUEsYUFBTUQsSUFBTjtBQUFBLEtBQTdCOztBQUNBLFFBQU1FLFVBQVUsR0FBR2QsSUFBSSxDQUFDVyxJQUFJLElBQUksRUFBVCxDQUF2QjtBQUNBLFdBQU9ULE1BQU0sQ0FBQ0MsTUFBUCxDQUFjVyxVQUFkLEVBQTBCTCxTQUExQixDQUFQO0FBQ0E7Ozs7QUFFTSxXQUFTTSxhQUFULEdBQXNHO0FBQzVHLFFBQU1DLFNBQVMsR0FBR2hCLElBQUksQ0FBQ2lCLFNBQUQsQ0FBdEI7QUFDQUQsSUFBQUEsU0FBUyxDQUFDaEIsSUFBVixDQUFla0IsV0FBZixHQUE2Qi9CLElBQUksQ0FBQ0MsRUFBTCxFQUE3QjtBQUNBLFdBQU80QixTQUFQO0FBQ0EiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IG1vY2ssIE1vY2tlZEluc3RhbmNlLCBXaXRoTW9jayB9IGZyb20gXCJAc2FwLXV4L2plc3QtbW9jay11aTUvZGlzdC9nZW5lcmljXCI7XG5pbXBvcnQgQ29udHJvbGxlciBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJcIjtcbmltcG9ydCBGaWx0ZXJCYXIgZnJvbSBcInNhcC91aS9tZGMvRmlsdGVyQmFyXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVkaXRGbG93IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zXCI7XG5cbmludGVyZmFjZSBDb21tb25Db250cm9sbGVyVHlwZSB7XG5cdGdldEV4dGVuc2lvbkFQSTogYW55O1xuXHRfZWRpdEZsb3c6IFdpdGhNb2NrPEludGVybmFsRWRpdEZsb3c+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSB7XG5cdF9nZXRGaWx0ZXJCYXJDb250cm9sOiBhbnk7XG5cdF9nZXRDb250cm9sczogYW55O1xuXHRfaXNGaWx0ZXJCYXJIaWRkZW46IGFueTtcblx0X2lzTXVsdGlNb2RlOiBhbnk7XG5cdF9zZXRDb3VudHNPdXREYXRlZDogYW55O1xuXHRfZ2V0Q3VycmVudENvbnRyb2w6IGFueTtcblx0X2dldE11bHRpTW9kZUNvbnRyb2w6IGFueTtcblx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGFueTtcblx0X3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoOiBhbnk7XG5cdF9nZXRUYWJsZTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSB7XG5cdGdldFN0aWNreUVkaXRNb2RlOiBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrTGlzdFJlcG9ydENvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgTGlzdFJlcG9ydENvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IGxpc3RSZXBvcnQ6IE1vY2tlZEluc3RhbmNlPExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRfZ2V0RmlsdGVyQmFyQ29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRDb250cm9sczogamVzdC5mbigpLFxuXHRcdF9pc0ZpbHRlckJhckhpZGRlbjogamVzdC5mbigpLFxuXHRcdF9pc011bHRpTW9kZTogamVzdC5mbigpLFxuXHRcdF9zZXRDb3VudHNPdXREYXRlZDogamVzdC5mbigpLFxuXHRcdF9nZXRDdXJyZW50Q29udHJvbDogamVzdC5mbigpLFxuXHRcdF9nZXRNdWx0aU1vZGVDb250cm9sOiBqZXN0LmZuKCksXG5cdFx0X2hhc011bHRpVmlzdWFsaXphdGlvbnM6IGplc3QuZm4oKSxcblx0XHRfc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2g6IGplc3QuZm4oKSxcblx0XHRfZ2V0VGFibGU6IGplc3QuZm4oKSxcblx0XHRnZXRFeHRlbnNpb25BUEk6IGplc3QuZm4oKSxcblx0XHRfZWRpdEZsb3c6IG1vY2soSW50ZXJuYWxFZGl0RmxvdykgYXMgV2l0aE1vY2s8SW50ZXJuYWxFZGl0Rmxvdz5cblx0fTtcblx0cmV0dXJuIE9iamVjdC5hc3NpZ24obW9jayhQYWdlQ29udHJvbGxlciksIGxpc3RSZXBvcnQpIGFzIFdpdGhNb2NrPFxuXHRcdENvbnRyb2xsZXIgJiBQYWdlQ29udHJvbGxlciAmIExpc3RSZXBvcnRDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlXG5cdD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrT2JqZWN0UGFnZUNvbnRyb2xsZXIoKTogV2l0aE1vY2s8Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGU+IHtcblx0Ly8gbWFudWFsbHkgYWRkIExpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXIgZnVuY3Rpb25zIHNpbmNlIEkgYW0gdW5hYmxlIHRvIGltcG9ydCB0aGUgcHJvdG90eXBlXG5cdGNvbnN0IG9iamVjdFBhZ2U6IE1vY2tlZEluc3RhbmNlPE9iamVjdFBhZ2VDb250cm9sbGVyVHlwZSAmIENvbW1vbkNvbnRyb2xsZXJUeXBlPiA9IHtcblx0XHRnZXRTdGlja3lFZGl0TW9kZTogamVzdC5mbigpLFxuXHRcdGdldEV4dGVuc2lvbkFQSTogamVzdC5mbigpLFxuXHRcdF9lZGl0RmxvdzogbW9jayhJbnRlcm5hbEVkaXRGbG93KSBhcyBXaXRoTW9jazxJbnRlcm5hbEVkaXRGbG93PlxuXHR9O1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrKFBhZ2VDb250cm9sbGVyKSwgb2JqZWN0UGFnZSkgYXMgV2l0aE1vY2s8XG5cdFx0Q29udHJvbGxlciAmIFBhZ2VDb250cm9sbGVyICYgT2JqZWN0UGFnZUNvbnRyb2xsZXJUeXBlICYgQ29tbW9uQ29udHJvbGxlclR5cGVcblx0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tDb250ZXh0Rm9yRXh0ZW5zaW9uPEVYVCBleHRlbmRzIG9iamVjdCwgQkFTRSBleHRlbmRzIG9iamVjdD4oXG5cdGV4dGVuc2lvbjogRVhULFxuXHRjb250cm9sbGVyOiBXaXRoTW9jazxDb250cm9sbGVyPixcblx0YmFzZT86IEJBU0Vcbik6IFdpdGhNb2NrPEVYVCAmIEJBU0U+IHtcblx0Y29uc3QgdmlldyA9IGNvbnRyb2xsZXIuZ2V0VmlldygpO1xuXHQoZXh0ZW5zaW9uIGFzIGFueSkuZ2V0VmlldyA9ICgpID0+IHZpZXc7XG5cdGNvbnN0IG1vY2tlZEJhc2UgPSBtb2NrKGJhc2UgfHwge30pO1xuXHRyZXR1cm4gT2JqZWN0LmFzc2lnbihtb2NrZWRCYXNlLCBleHRlbnNpb24pIGFzIFdpdGhNb2NrPEVYVCAmIEJBU0U+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0ZpbHRlckJhcigpOiBXaXRoTW9jazxGaWx0ZXJCYXIgJiB7IGluaXRpYWxpemVkOiBGdW5jdGlvbjsgX2JTZWFyY2hUcmlnZ2VyZWQ6IEJvb2xlYW4gfT4ge1xuXHRjb25zdCBmaWx0ZXJCYXIgPSBtb2NrKEZpbHRlckJhcikgYXMgV2l0aE1vY2s8RmlsdGVyQmFyICYgeyBpbml0aWFsaXplZDogRnVuY3Rpb247IF9iU2VhcmNoVHJpZ2dlcmVkOiBCb29sZWFuIH0+O1xuXHRmaWx0ZXJCYXIubW9jay5pbml0aWFsaXplZCA9IGplc3QuZm4oKTtcblx0cmV0dXJuIGZpbHRlckJhcjtcbn1cbiJdfQ==
@@ -0,0 +1,77 @@
1
+ import PageController from "sap/fe/core/PageController";
2
+ import { mock, MockedInstance, WithMock } from "@sap-ux/jest-mock-ui5/dist/generic";
3
+ import Controller from "sap/ui/core/mvc/Controller";
4
+ import FilterBar from "sap/ui/mdc/FilterBar";
5
+ import { InternalEditFlow } from "sap/fe/core/controllerextensions";
6
+
7
+ interface CommonControllerType {
8
+ getExtensionAPI: any;
9
+ _editFlow: WithMock<InternalEditFlow>;
10
+ }
11
+
12
+ export interface ListReportControllerType {
13
+ _getFilterBarControl: any;
14
+ _getControls: any;
15
+ _isFilterBarHidden: any;
16
+ _isMultiMode: any;
17
+ _setCountsOutDated: any;
18
+ _getCurrentControl: any;
19
+ _getMultiModeControl: any;
20
+ _hasMultiVisualizations: any;
21
+ _shouldAutoTriggerSearch: any;
22
+ _getTable: any;
23
+ }
24
+
25
+ export interface ObjectPageControllerType {
26
+ getStickyEditMode: any;
27
+ }
28
+
29
+ export function mockListReportController(): WithMock<Controller & PageController & ListReportControllerType & CommonControllerType> {
30
+ // manually add ListReportController.controller functions since I am unable to import the prototype
31
+ const listReport: MockedInstance<ListReportControllerType & CommonControllerType> = {
32
+ _getFilterBarControl: jest.fn(),
33
+ _getControls: jest.fn(),
34
+ _isFilterBarHidden: jest.fn(),
35
+ _isMultiMode: jest.fn(),
36
+ _setCountsOutDated: jest.fn(),
37
+ _getCurrentControl: jest.fn(),
38
+ _getMultiModeControl: jest.fn(),
39
+ _hasMultiVisualizations: jest.fn(),
40
+ _shouldAutoTriggerSearch: jest.fn(),
41
+ _getTable: jest.fn(),
42
+ getExtensionAPI: jest.fn(),
43
+ _editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow>
44
+ };
45
+ return Object.assign(mock(PageController), listReport) as WithMock<
46
+ Controller & PageController & ListReportControllerType & CommonControllerType
47
+ >;
48
+ }
49
+
50
+ export function mockObjectPageController(): WithMock<Controller & PageController & ObjectPageControllerType & CommonControllerType> {
51
+ // manually add ListReportController.controller functions since I am unable to import the prototype
52
+ const objectPage: MockedInstance<ObjectPageControllerType & CommonControllerType> = {
53
+ getStickyEditMode: jest.fn(),
54
+ getExtensionAPI: jest.fn(),
55
+ _editFlow: mock(InternalEditFlow) as WithMock<InternalEditFlow>
56
+ };
57
+ return Object.assign(mock(PageController), objectPage) as WithMock<
58
+ Controller & PageController & ObjectPageControllerType & CommonControllerType
59
+ >;
60
+ }
61
+
62
+ export function mockContextForExtension<EXT extends object, BASE extends object>(
63
+ extension: EXT,
64
+ controller: WithMock<Controller>,
65
+ base?: BASE
66
+ ): WithMock<EXT & BASE> {
67
+ const view = controller.getView();
68
+ (extension as any).getView = () => view;
69
+ const mockedBase = mock(base || {});
70
+ return Object.assign(mockedBase, extension) as WithMock<EXT & BASE>;
71
+ }
72
+
73
+ export function mockFilterBar(): WithMock<FilterBar & { initialized: Function; _bSearchTriggered: Boolean }> {
74
+ const filterBar = mock(FilterBar) as WithMock<FilterBar & { initialized: Function; _bSearchTriggered: Boolean }>;
75
+ filterBar.mock.initialized = jest.fn();
76
+ return filterBar;
77
+ }
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnitUtils"], function(Opa5, OpaBuilder, QUnitUtils) {
6
7
  "use strict";
@@ -228,6 +229,17 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
228
229
  .execute();
229
230
  },
230
231
 
232
+ iExecutePopOverButtonByIcon: function(sIcon, sDescription) {
233
+ return OpaBuilder.create(this)
234
+ .viewId(null)
235
+ .hasType("sap.m.Button")
236
+ .hasProperties({ icon: "sap-icon://" + sIcon })
237
+ .isDialogElement()
238
+ .doPress()
239
+ .description(sDescription)
240
+ .execute();
241
+ },
242
+
231
243
  iExecutePopOverActionRename: function(sId) {
232
244
  return this.iExecutePopOverActionByIcon("edit", "Press rename on " + sId);
233
245
  },
@@ -261,7 +273,7 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
261
273
  },
262
274
 
263
275
  iSwitchToGroupViewInTheFilterBarDialog: function() {
264
- return this.iExecutePopOverActionByIcon("group-2", "Switch to grouped view in filter bar dialog");
276
+ return this.iExecutePopOverButtonByIcon("group-2", "Switch to grouped view in filter bar dialog");
265
277
  },
266
278
 
267
279
  iSelectExpandFiltersgroupInTheFilterBarDialog: function(sFiltersgroupName) {
@@ -629,11 +641,11 @@ sap.ui.define(["sap/ui/test/Opa5", "sap/ui/test/OpaBuilder", "sap/ui/qunit/QUnit
629
641
  },
630
642
 
631
643
  iSeeTheVariantManagementPopover: function() {
632
- return this.iSeeTheButtonByIcon("sap-icon://duplicate", "The Popover");
644
+ return this.iSeeTheMenuItemByIcon("sap-icon://duplicate", "The Popover");
633
645
  },
634
646
 
635
647
  iSeeTheRTAPopover: function() {
636
- return this.iSeeTheButtonByIcon("sap-icon://key-user-settings", "The RTAPopover");
648
+ return this.iSeeTheMenuItemByIcon("sap-icon://key-user-settings", "The RTAPopover");
637
649
  },
638
650
 
639
651
  iSeeTheRenameButton: function() {
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
2
+ * ! SAP UI development toolkit for HTML5 (SAPUI5)
3
+ (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+
4
5
  */
5
6
  sap.ui.define(["sap/base/util/merge", "./TemplatePage", "sap/ui/test/OpaBuilder", "sap/m/library"], function(
6
7
  mergeObjects,