@sapui5/sap.fe.test 1.95.0 → 1.96.4

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 (73) hide show
  1. package/package.json +3 -2
  2. package/src/sap/fe/test/.library +1 -1
  3. package/src/sap/fe/test/BaseActions.js +1 -1
  4. package/src/sap/fe/test/BaseArrangements.js +1 -1
  5. package/src/sap/fe/test/BaseAssertions.js +1 -1
  6. package/src/sap/fe/test/ConfirmDialog.js +1 -1
  7. package/src/sap/fe/test/FCLView.js +1 -7
  8. package/src/sap/fe/test/Flexibility.js +32 -9
  9. package/src/sap/fe/test/FlexibleColumnLayout.js +1 -1
  10. package/src/sap/fe/test/JestTemplatingHelper.js +99 -6
  11. package/src/sap/fe/test/JestTemplatingHelper.ts +65 -3
  12. package/src/sap/fe/test/JourneyRunner.js +1 -1
  13. package/src/sap/fe/test/ListReport.js +1 -1
  14. package/src/sap/fe/test/LocationUtil.js +1 -1
  15. package/src/sap/fe/test/ObjectPage.js +41 -1
  16. package/src/sap/fe/test/Shell.js +17 -12
  17. package/src/sap/fe/test/Stubs.js +1 -1
  18. package/src/sap/fe/test/TemplatePage.js +1 -1
  19. package/src/sap/fe/test/TemplatingTestUtils.js +1 -1
  20. package/src/sap/fe/test/UI5MockHelper.js +218 -0
  21. package/src/sap/fe/test/UI5MockHelper.ts +137 -0
  22. package/src/sap/fe/test/Utils.js +6 -2
  23. package/src/sap/fe/test/api/APIHelper.js +1 -1
  24. package/src/sap/fe/test/api/BaseAPI.js +1 -1
  25. package/src/sap/fe/test/api/ChartActions.js +1 -1
  26. package/src/sap/fe/test/api/ChartAssertions.js +10 -6
  27. package/src/sap/fe/test/api/DialogAPI.js +1 -1
  28. package/src/sap/fe/test/api/DialogActions.js +1 -1
  29. package/src/sap/fe/test/api/DialogAssertions.js +1 -1
  30. package/src/sap/fe/test/api/DialogCreateActions.js +1 -1
  31. package/src/sap/fe/test/api/DialogCreateAssertions.js +1 -1
  32. package/src/sap/fe/test/api/DialogMessageActions.js +1 -1
  33. package/src/sap/fe/test/api/DialogMessageAssertions.js +1 -1
  34. package/src/sap/fe/test/api/DialogType.js +1 -1
  35. package/src/sap/fe/test/api/DialogValueHelpActions.js +1 -1
  36. package/src/sap/fe/test/api/DialogValueHelpAssertions.js +1 -1
  37. package/src/sap/fe/test/api/EditState.js +1 -1
  38. package/src/sap/fe/test/api/FilterBarAPI.js +1 -1
  39. package/src/sap/fe/test/api/FilterBarActions.js +1 -1
  40. package/src/sap/fe/test/api/FilterBarAssertions.js +1 -1
  41. package/src/sap/fe/test/api/FooterAPI.js +1 -1
  42. package/src/sap/fe/test/api/FooterActionsBase.js +1 -1
  43. package/src/sap/fe/test/api/FooterActionsOP.js +1 -1
  44. package/src/sap/fe/test/api/FooterAssertionsBase.js +1 -1
  45. package/src/sap/fe/test/api/FooterAssertionsOP.js +1 -1
  46. package/src/sap/fe/test/api/FormAPI.js +1 -1
  47. package/src/sap/fe/test/api/FormActions.js +1 -1
  48. package/src/sap/fe/test/api/FormAssertions.js +1 -1
  49. package/src/sap/fe/test/api/HeaderAPI.js +1 -1
  50. package/src/sap/fe/test/api/HeaderActions.js +1 -1
  51. package/src/sap/fe/test/api/HeaderActionsLR.js +1 -1
  52. package/src/sap/fe/test/api/HeaderAssertions.js +1 -1
  53. package/src/sap/fe/test/api/HeaderAssertionsLR.js +1 -1
  54. package/src/sap/fe/test/api/HeaderLR.js +1 -1
  55. package/src/sap/fe/test/api/KPICardAPI.js +1 -1
  56. package/src/sap/fe/test/api/KPICardAssertions.js +23 -1
  57. package/src/sap/fe/test/api/TableAPI.js +1 -1
  58. package/src/sap/fe/test/api/TableActions.js +1 -1
  59. package/src/sap/fe/test/api/TableAssertions.js +1 -1
  60. package/src/sap/fe/test/builder/DialogBuilder.js +1 -1
  61. package/src/sap/fe/test/builder/FEBuilder.js +1 -1
  62. package/src/sap/fe/test/builder/KPIBuilder.js +17 -1
  63. package/src/sap/fe/test/builder/MacroFieldBuilder.js +1 -1
  64. package/src/sap/fe/test/builder/MdcFieldBuilder.js +1 -1
  65. package/src/sap/fe/test/builder/MdcFilterBarBuilder.js +1 -1
  66. package/src/sap/fe/test/builder/MdcFilterFieldBuilder.js +1 -1
  67. package/src/sap/fe/test/builder/MdcTableBuilder.js +15 -1
  68. package/src/sap/fe/test/builder/OverflowToolbarBuilder.js +1 -1
  69. package/src/sap/fe/test/builder/VMBuilder.js +1 -1
  70. package/src/sap/fe/test/internal/FEArrangements.js +1 -1
  71. package/src/sap/fe/test/internal/FEJourneyRunner.js +1 -1
  72. package/src/sap/fe/test/library.js +2 -2
  73. package/src/sap/fe/test/massEdit.js +1 -1
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -657,6 +657,46 @@ sap.ui.define(
657
657
  .description("FLP link with text '" + sDescription + "' is present")
658
658
  .execute();
659
659
  },
660
+ iSeeSimpleFormWithLabel: function(sDescription) {
661
+ return OpaBuilder.create(this)
662
+ .hasType("sap.m.Label")
663
+ .isDialogElement(true)
664
+ .hasProperties({ text: sDescription })
665
+ .description("SimpleForm has label '" + sDescription + "' is present")
666
+ .execute();
667
+ },
668
+ iSeeSimpleFormWithText: function(sText) {
669
+ return OpaBuilder.create(this)
670
+ .hasType("sap.ui.layout.form.SimpleForm")
671
+ .isDialogElement(true)
672
+ .doOnChildren(
673
+ OpaBuilder.create(this)
674
+ .hasType("sap.m.Text")
675
+ .hasProperties({ text: sText })
676
+ )
677
+ .description("SimpleForm has text '" + sText + "' is present")
678
+ .execute();
679
+ },
680
+ iSeeSimpleFormWithLink: function(sText) {
681
+ return OpaBuilder.create(this)
682
+ .hasType("sap.ui.layout.form.SimpleForm")
683
+ .isDialogElement(true)
684
+ .doOnChildren(
685
+ OpaBuilder.create(this)
686
+ .hasType("sap.m.Link")
687
+ .hasProperties({ text: sText })
688
+ )
689
+ .description("SimpleForm has link '" + sText + "' is present")
690
+ .execute();
691
+ },
692
+ iSeeSimpleFormWithTitle: function(sTitle) {
693
+ return OpaBuilder.create(this)
694
+ .hasType("sap.ui.core.Title")
695
+ .isDialogElement(true)
696
+ .hasProperties({ text: sTitle })
697
+ .description("SimpleForm has label '" + sTitle + "' is present")
698
+ .execute();
699
+ },
660
700
  iSeeSelectLinksDialog: function() {
661
701
  return OpaBuilder.create(this)
662
702
  .hasType("sap.m.Title")
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/ui/test/OpaBuilder", "sap/ui/test/Opa5", "sap/fe/test/Utils"], function(OpaBuilder, Opa5, Utils) {
6
6
  "use strict";
@@ -104,21 +104,26 @@ sap.ui.define(["sap/ui/test/OpaBuilder", "sap/ui/test/Opa5", "sap/fe/test/Utils"
104
104
  * @public
105
105
  */
106
106
  iPressTile: function(sTarget) {
107
- return OpaBuilder.create(this)
108
- .hasType("sap.ushell.ui.launchpad.Tile")
109
- .hasProperties({
110
- target: "#" + sTarget
111
- })
112
- .doPress()
113
- .description(Utils.formatMessage("Clicking on tile with target '{0}'", sTarget))
114
- .execute();
107
+ return this.waitFor({
108
+ controlType: "sap.ushell.ui.launchpad.Tile",
109
+ matchers: function(oTile) {
110
+ return oTile.getTarget() === "#" + sTarget;
111
+ },
112
+ actions: function(oTile) {
113
+ oTile
114
+ .getTileViews()[0]
115
+ .$()
116
+ .trigger("tap");
117
+ },
118
+ success: function(oTile) {
119
+ Opa5.assert.ok(true, Utils.formatMessage("Clicking on tile with target '{0}'", sTarget));
120
+ },
121
+ errorMessage: "Could not find the tile"
122
+ });
115
123
  },
116
124
  iOpenDefaultValues: function() {
117
125
  return OpaBuilder.create(this)
118
126
  .hasId("meAreaHeaderButton")
119
- .hasProperties({
120
- icon: "sap-icon://person-placeholder"
121
- })
122
127
  .doPress()
123
128
  .description("Opening FLP Default Values dialog")
124
129
  .execute();
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  /**
6
6
  * Actions and assertions to be used with a page hosted in an FCL
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -0,0 +1,218 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
+ */
5
+ sap.ui.define([], function () {
6
+ "use strict";
7
+
8
+ var _exports = {};
9
+
10
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
11
+
12
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13
+
14
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15
+
16
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
17
+
18
+ /**
19
+ * Mock class for a V4 Context
20
+ */
21
+ var MockContext = function MockContext(oValues, oBinding) {
22
+ var _this = this;
23
+
24
+ _classCallCheck(this, MockContext);
25
+
26
+ _defineProperty(this, "getProperty", jest.fn(function (key) {
27
+ return _this.oValues[key];
28
+ }));
29
+
30
+ _defineProperty(this, "getObject", jest.fn(function (key) {
31
+ return _this.oValues[key];
32
+ }));
33
+
34
+ _defineProperty(this, "getPath", jest.fn(function () {
35
+ return _this.oValues["$path"];
36
+ }));
37
+
38
+ _defineProperty(this, "getBinding", jest.fn(function () {
39
+ return _this.oBinding;
40
+ }));
41
+
42
+ this.oValues = oValues;
43
+ this.oBinding = oBinding;
44
+ };
45
+
46
+ _exports.MockContext = MockContext;
47
+
48
+ var MockControl = function MockControl() {
49
+ _classCallCheck(this, MockControl);
50
+
51
+ _defineProperty(this, "getBindingInfo", jest.fn());
52
+
53
+ _defineProperty(this, "getBinding", jest.fn());
54
+ };
55
+ /**
56
+ * Mock class for OData V4 ListBinding
57
+ */
58
+
59
+
60
+ _exports.MockControl = MockControl;
61
+
62
+ var MockListBinding = /*#__PURE__*/function () {
63
+ function MockListBinding(aContexts) {
64
+ var _this2 = this;
65
+
66
+ _classCallCheck(this, MockListBinding);
67
+
68
+ _defineProperty(this, "setAggregation", jest.fn());
69
+
70
+ _defineProperty(this, "filter", jest.fn());
71
+
72
+ _defineProperty(this, "sort", jest.fn());
73
+
74
+ _defineProperty(this, "requestContexts", jest.fn(function () {
75
+ return Promise.resolve(_this2.aMockContexts);
76
+ }));
77
+
78
+ _defineProperty(this, "getCurrentContexts", jest.fn(function () {
79
+ return _this2.aMockContexts;
80
+ }));
81
+
82
+ aContexts = aContexts || [];
83
+ this.aMockContexts = aContexts.map(function (context) {
84
+ return new MockContext(context, _this2);
85
+ });
86
+ }
87
+
88
+ _exports.MockListBinding = MockListBinding;
89
+
90
+ _createClass(MockListBinding, [{
91
+ key: "isA",
92
+ value: function isA(sClassName) {
93
+ return sClassName === "sap.ui.model.odata.v4.ODataListBinding";
94
+ } // Mocked API
95
+
96
+ }]);
97
+
98
+ return MockListBinding;
99
+ }();
100
+
101
+ _exports.MockListBinding = MockListBinding;
102
+
103
+ var MockContextBinding = /*#__PURE__*/function () {
104
+ function MockContextBinding(oContext) {
105
+ var _this3 = this;
106
+
107
+ _classCallCheck(this, MockContextBinding);
108
+
109
+ _defineProperty(this, "getBoundContext", jest.fn(function () {
110
+ return _this3.oMockContext;
111
+ }));
112
+
113
+ _defineProperty(this, "attachEventOnce", jest.fn());
114
+
115
+ this.oMockContext = new MockContext(oContext || {}, this);
116
+ }
117
+
118
+ _exports.MockContextBinding = MockContextBinding;
119
+
120
+ _createClass(MockContextBinding, [{
121
+ key: "isA",
122
+ value: function isA(sClassName) {
123
+ return sClassName === "sap.ui.model.odata.v4.ODataContextBinding";
124
+ }
125
+ }, {
126
+ key: "getInternalMockContext",
127
+ value: function getInternalMockContext() {
128
+ return this.oMockContext;
129
+ } // Mocked API
130
+
131
+ }]);
132
+
133
+ return MockContextBinding;
134
+ }();
135
+ /**
136
+ * Mock class for OData V4 MetaModel
137
+ */
138
+
139
+
140
+ _exports.MockContextBinding = MockContextBinding;
141
+
142
+ var MockMetaModel = function MockMetaModel(oMetaData) {
143
+ var _this4 = this;
144
+
145
+ _classCallCheck(this, MockMetaModel);
146
+
147
+ _defineProperty(this, "getMetaContext", jest.fn(function (sPath) {
148
+ return new MockContext({
149
+ $path: sPath
150
+ });
151
+ }));
152
+
153
+ _defineProperty(this, "getObject", jest.fn(function (sPath) {
154
+ return _this4.oMetaContext.getProperty(sPath);
155
+ }));
156
+
157
+ this.oMetaContext = new MockContext(oMetaData || {});
158
+ } // Mocked API
159
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
160
+ ;
161
+ /**
162
+ * Mock class for OData V4 Model
163
+ */
164
+
165
+
166
+ _exports.MockMetaModel = MockMetaModel;
167
+
168
+ var MockModel = /*#__PURE__*/function () {
169
+ function MockModel(mockListBinding, mockContextBinding) {
170
+ var _this5 = this;
171
+
172
+ _classCallCheck(this, MockModel);
173
+
174
+ _defineProperty(this, "bindList", jest.fn(function () {
175
+ return _this5.mockListBinding;
176
+ }));
177
+
178
+ _defineProperty(this, "bindContext", jest.fn(function () {
179
+ return _this5.mockContextBinding;
180
+ }));
181
+
182
+ _defineProperty(this, "getMetaModel", jest.fn(function () {
183
+ return _this5.oMetaModel;
184
+ }));
185
+
186
+ this.mockListBinding = mockListBinding;
187
+ this.mockContextBinding = mockContextBinding;
188
+ } // Factories
189
+
190
+
191
+ _exports.MockModel = MockModel;
192
+
193
+ _createClass(MockModel, [{
194
+ key: "setMetaModel",
195
+ value: function setMetaModel(oMetaModel) {
196
+ this.oMetaModel = oMetaModel;
197
+ } // Mocked API
198
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
199
+
200
+ }], [{
201
+ key: "modelFromListBinding",
202
+ value: function modelFromListBinding(mockListBinding) {
203
+ return new MockModel(mockListBinding);
204
+ }
205
+ }, {
206
+ key: "modelFromContextBinding",
207
+ value: function modelFromContextBinding(mockContextBinding) {
208
+ return new MockModel(undefined, mockContextBinding);
209
+ }
210
+ }]);
211
+
212
+ return MockModel;
213
+ }();
214
+
215
+ _exports.MockModel = MockModel;
216
+ return _exports;
217
+ }, false);
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlVJNU1vY2tIZWxwZXIudHMiXSwibmFtZXMiOlsiTW9ja0NvbnRleHQiLCJvVmFsdWVzIiwib0JpbmRpbmciLCJqZXN0IiwiZm4iLCJrZXkiLCJNb2NrQ29udHJvbCIsIk1vY2tMaXN0QmluZGluZyIsImFDb250ZXh0cyIsIlByb21pc2UiLCJyZXNvbHZlIiwiYU1vY2tDb250ZXh0cyIsIm1hcCIsImNvbnRleHQiLCJzQ2xhc3NOYW1lIiwiTW9ja0NvbnRleHRCaW5kaW5nIiwib0NvbnRleHQiLCJvTW9ja0NvbnRleHQiLCJNb2NrTWV0YU1vZGVsIiwib01ldGFEYXRhIiwic1BhdGgiLCIkcGF0aCIsIm9NZXRhQ29udGV4dCIsImdldFByb3BlcnR5IiwiTW9ja01vZGVsIiwibW9ja0xpc3RCaW5kaW5nIiwibW9ja0NvbnRleHRCaW5kaW5nIiwib01ldGFNb2RlbCIsInVuZGVmaW5lZCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7QUFGQTtBQUNBO0FBQ0E7TUFJYUEsVyxHQUNaLHFCQUEyQkMsT0FBM0IsRUFBaURDLFFBQWpELEVBQWlFO0FBQUE7O0FBQUE7O0FBQUEseUNBRTVDQyxJQUFJLENBQUNDLEVBQUwsQ0FBUSxVQUFDQyxHQUFELEVBQWlCO0FBQzdDLGFBQU8sS0FBSSxDQUFDSixPQUFMLENBQWFJLEdBQWIsQ0FBUDtBQUNBLEtBRm9CLENBRjRDOztBQUFBLHVDQUs5Q0YsSUFBSSxDQUFDQyxFQUFMLENBQVEsVUFBQ0MsR0FBRCxFQUFpQjtBQUMzQyxhQUFPLEtBQUksQ0FBQ0osT0FBTCxDQUFhSSxHQUFiLENBQVA7QUFDQSxLQUZrQixDQUw4Qzs7QUFBQSxxQ0FRaERGLElBQUksQ0FBQ0MsRUFBTCxDQUFRLFlBQU07QUFDOUIsYUFBTyxLQUFJLENBQUNILE9BQUwsQ0FBYSxPQUFiLENBQVA7QUFDQSxLQUZnQixDQVJnRDs7QUFBQSx3Q0FZN0NFLElBQUksQ0FBQ0MsRUFBTCxDQUFRLFlBQU07QUFDakMsYUFBTyxL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T0FGb0IsQ0FwQjBGOztBQUFBLDRDQXVCekZ2QixJQUFJLENBQUNDLEVBQUwsQ0FBUSxZQUFNO0FBQ25DLGVBQVEsTUFBSSxDQUFDdUIsVUFBYjtBQUNBLE9BRnFCLENBdkJ5Rjs7QUFBQSxXQUFwRkYsZUFBb0YsR0FBcEZBLGVBQW9GO0FBQUEsV0FBekNDLGtCQUF5QyxHQUF6Q0Esa0JBQXlDO0FBQUUsSyxDQUVqSDs7Ozs7OzthQVFBLHNCQUFvQkMsVUFBcEIsRUFBK0M7QUFDOUMsYUFBS0EsVUFBTCxHQUFrQkEsVUFBbEI7QUFDQSxPLENBRUQ7QUFDQTs7OzthQVpBLDhCQUE0QkYsZUFBNUIsRUFBeUU7QUFDeEUsZUFBTyxJQUFJRCxTQUFKLENBQWNDLGVBQWQsQ0FBUDtBQUNBOzs7YUFDRCxpQ0FBK0JDLGtCQUEvQixFQUFrRjtBQUNqRixlQUFPLElBQUlGLFNBQUosQ0FBY0ksU0FBZCxFQUF5QkYsa0JBQXpCLENBQVA7QUFDQSIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2NrIGNsYXNzIGZvciBhIFY0IENvbnRleHRcbiAqL1xuXG5pbXBvcnQgeyBDb250ZXh0LCBPRGF0YUxpc3RCaW5kaW5nLCBPRGF0YUNvbnRleHRCaW5kaW5nLCBPRGF0YU1ldGFNb2RlbCwgT0RhdGFNb2RlbCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcblxuZXhwb3J0IGNsYXNzIE1vY2tDb250ZXh0IGltcGxlbWVudHMgUGFydGlhbDxDb250ZXh0PiB7XG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG9WYWx1ZXM6IGFueSwgcHJpdmF0ZSBvQmluZGluZz86IGFueSkge31cblxuXHRwdWJsaWMgZ2V0UHJvcGVydHkgPSBqZXN0LmZuKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9WYWx1ZXNba2V5XTtcblx0fSk7XG5cdHB1YmxpYyBnZXRPYmplY3QgPSBqZXN0LmZuKChrZXk6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9WYWx1ZXNba2V5XTtcblx0fSk7XG5cdHB1YmxpYyBnZXRQYXRoID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuIHRoaXMub1ZhbHVlc1tcIiRwYXRoXCJdO1xuXHR9KTtcblxuXHRwdWJsaWMgZ2V0QmluZGluZyA9IGplc3QuZm4oKCkgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9CaW5kaW5nO1xuXHR9KTtcbn1cblxuZXhwb3J0IGNsYXNzIE1vY2tDb250cm9sIHtcblx0cHVibGljIGdldEJpbmRpbmdJbmZvID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZ2V0QmluZGluZyA9IGplc3QuZm4oKTtcbn1cblxuLyoqXG4gKiBNb2NrIGNsYXNzIGZvciBPRGF0YSBWNCBMaXN0QmluZGluZ1xuICovXG5leHBvcnQgY2xhc3MgTW9ja0xpc3RCaW5kaW5nIGltcGxlbWVudHMgUGFydGlhbDxPRGF0YUxpc3RCaW5kaW5nPiB7XG5cdHByaXZhdGUgYU1vY2tDb250ZXh0czogTW9ja0NvbnRleHRbXTtcblxuXHRwdWJsaWMgY29uc3RydWN0b3IoYUNvbnRleHRzPzogYW55W10pIHtcblx0XHRhQ29udGV4dHMgPSBhQ29udGV4dHMgfHwgW107XG5cblx0XHR0aGlzLmFNb2NrQ29udGV4dHMgPSBhQ29udGV4dHMubWFwKGNvbnRleHQgPT4ge1xuXHRcdFx0cmV0dXJuIG5ldyBNb2NrQ29udGV4dChjb250ZXh0LCB0aGlzKTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBpc0Eoc0NsYXNzTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHNDbGFzc05hbWUgPT09IFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhTGlzdEJpbmRpbmdcIjtcblx0fVxuXG5cdC8vIE1vY2tlZCBBUElcblx0cHVibGljIHNldEFnZ3JlZ2F0aW9uID0gamVzdC5mbigpO1xuXHRwdWJsaWMgZmlsdGVyID0gamVzdC5mbigpO1xuXHRwdWJsaWMgc29ydCA9IGplc3QuZm4oKTtcblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyByZXF1ZXN0Q29udGV4dHMgPSBqZXN0LmZuKCguLi5hcmdzKSA9PiB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgodGhpcy5hTW9ja0NvbnRleHRzIGFzIGFueSkgYXMgQ29udGV4dFtdKTtcblx0fSk7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0cHVibGljIGdldEN1cnJlbnRDb250ZXh0cyA9IGplc3QuZm4oKC4uLmFyZ3MpID0+IHtcblx0XHRyZXR1cm4gKHRoaXMuYU1vY2tDb250ZXh0cyBhcyBhbnkpIGFzIENvbnRleHRbXTtcblx0fSk7XG59XG5cbmV4cG9ydCBjbGFzcyBNb2NrQ29udGV4dEJpbmRpbmcgaW1wbGVtZW50cyBQYXJ0aWFsPE9EYXRhQ29udGV4dEJpbmRpbmc+IHtcblx0cHJpdmF0ZSBvTW9ja0NvbnRleHQ6IE1vY2tDb250ZXh0O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvQ29udGV4dD86IGFueSkge1xuXHRcdHRoaXMub01vY2tDb250ZXh0ID0gbmV3IE1vY2tDb250ZXh0KG9Db250ZXh0IHx8IHt9LCB0aGlzKTtcblx0fVxuXG5cdHB1YmxpYyBpc0Eoc0NsYXNzTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHNDbGFzc05hbWUgPT09IFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0Lk9EYXRhQ29udGV4dEJpbmRpbmdcIjtcblx0fVxuXHRwdWJsaWMgZ2V0SW50ZXJuYWxNb2NrQ29udGV4dCgpOiBNb2NrQ29udGV4dCB7XG5cdFx0cmV0dXJuIHRoaXMub01vY2tDb250ZXh0O1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHRwdWJsaWMgZ2V0Qm91bmRDb250ZXh0ID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm9Nb2NrQ29udGV4dCBhcyBhbnkpIGFzIENvbnRleHQ7XG5cdH0pO1xuXHRwdWJsaWMgYXR0YWNoRXZlbnRPbmNlID0gamVzdC5mbigpO1xufVxuXG4vKipcbiAqIE1vY2sgY2xhc3MgZm9yIE9EYXRhIFY0IE1ldGFNb2RlbFxuICovXG5leHBvcnQgY2xhc3MgTW9ja01ldGFNb2RlbCBpbXBsZW1lbnRzIFBhcnRpYWw8T0RhdGFNZXRhTW9kZWw+IHtcblx0cHJpdmF0ZSBvTWV0YUNvbnRleHQ6IE1vY2tDb250ZXh0O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihvTWV0YURhdGE/OiBhbnkpIHtcblx0XHR0aGlzLm9NZXRhQ29udGV4dCA9IG5ldyBNb2NrQ29udGV4dChvTWV0YURhdGEgfHwge30pO1xuXHR9XG5cblx0Ly8gTW9ja2VkIEFQSVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdHB1YmxpYyBnZXRNZXRhQ29udGV4dCA9IGplc3QuZm4oKHNQYXRoOiBzdHJpbmcpID0+IHtcblx0XHRyZXR1cm4gKG5ldyBNb2NrQ29udGV4dCh7ICRwYXRoOiBzUGF0aCB9KSBhcyBhbnkpIGFzIENvbnRleHQ7XG5cdH0pO1xuXHRwdWJsaWMgZ2V0T2JqZWN0ID0gamVzdC5mbigoc1BhdGg6IHN0cmluZykgPT4ge1xuXHRcdHJldHVybiB0aGlzLm9NZXRhQ29udGV4dC5nZXRQcm9wZXJ0eShzUGF0aCk7XG5cdH0pO1xufVxuXG4vKipcbiAqIE1vY2sgY2xhc3MgZm9yIE9EYXRhIFY0IE1vZGVsXG4gKi9cblxuZXhwb3J0IGNsYXNzIE1vY2tNb2RlbCBpbXBsZW1lbnRzIFBhcnRpYWw8T0RhdGFNb2RlbD4ge1xuXHRwcml2YXRlIG9NZXRhTW9kZWw/OiBNb2NrTWV0YU1vZGVsO1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vY2tMaXN0QmluZGluZz86IE1vY2tMaXN0QmluZGluZywgcHJpdmF0ZSBtb2NrQ29udGV4dEJpbmRpbmc/OiBNb2NrQ29udGV4dEJpbmRpbmcpIHt9XG5cblx0Ly8gRmFjdG9yaWVzXG5cdHN0YXRpYyBtb2RlbEZyb21MaXN0QmluZGluZyhtb2NrTGlzdEJpbmRpbmc6IE1vY2tMaXN0QmluZGluZyk6IE1vY2tNb2RlbCB7XG5cdFx0cmV0dXJuIG5ldyBNb2NrTW9kZWwobW9ja0xpc3RCaW5kaW5nKTtcblx0fVxuXHRzdGF0aWMgbW9kZWxGcm9tQ29udGV4dEJpbmRpbmcobW9ja0NvbnRleHRCaW5kaW5nOiBNb2NrQ29udGV4dEJpbmRpbmcpOiBNb2NrTW9kZWwge1xuXHRcdHJldHVybiBuZXcgTW9ja01vZGVsKHVuZGVmaW5lZCwgbW9ja0NvbnRleHRCaW5kaW5nKTtcblx0fVxuXG5cdHB1YmxpYyBzZXRNZXRhTW9kZWwob01ldGFNb2RlbDogTW9ja01ldGFNb2RlbCkge1xuXHRcdHRoaXMub01ldGFNb2RlbCA9IG9NZXRhTW9kZWw7XG5cdH1cblxuXHQvLyBNb2NrZWQgQVBJXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0cHVibGljIGJpbmRMaXN0ID0gamVzdC5mbigoLi4uYXJncykgPT4ge1xuXHRcdHJldHVybiAodGhpcy5tb2NrTGlzdEJpbmRpbmcgYXMgYW55KSBhcyBPRGF0YUxpc3RCaW5kaW5nO1xuXHR9KTtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRwdWJsaWMgYmluZENvbnRleHQgPSBqZXN0LmZuKCguLi5hcmdzKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm1vY2tDb250ZXh0QmluZGluZyBhcyBhbnkpIGFzIE9EYXRhQ29udGV4dEJpbmRpbmc7XG5cdH0pO1xuXHRwdWJsaWMgZ2V0TWV0YU1vZGVsID0gamVzdC5mbigoKSA9PiB7XG5cdFx0cmV0dXJuICh0aGlzLm9NZXRhTW9kZWwgYXMgYW55KSBhcyBPRGF0YU1ldGFNb2RlbDtcblx0fSk7XG59XG4iXX0=
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Mock class for a V4 Context
3
+ */
4
+
5
+ import { Context, ODataListBinding, ODataContextBinding, ODataMetaModel, ODataModel } from "sap/ui/model/odata/v4";
6
+
7
+ export class MockContext implements Partial<Context> {
8
+ public constructor(private oValues: any, private oBinding?: any) {}
9
+
10
+ public getProperty = jest.fn((key: string) => {
11
+ return this.oValues[key];
12
+ });
13
+ public getObject = jest.fn((key: string) => {
14
+ return this.oValues[key];
15
+ });
16
+ public getPath = jest.fn(() => {
17
+ return this.oValues["$path"];
18
+ });
19
+
20
+ public getBinding = jest.fn(() => {
21
+ return this.oBinding;
22
+ });
23
+ }
24
+
25
+ export class MockControl {
26
+ public getBindingInfo = jest.fn();
27
+ public getBinding = jest.fn();
28
+ }
29
+
30
+ /**
31
+ * Mock class for OData V4 ListBinding
32
+ */
33
+ export class MockListBinding implements Partial<ODataListBinding> {
34
+ private aMockContexts: MockContext[];
35
+
36
+ public constructor(aContexts?: any[]) {
37
+ aContexts = aContexts || [];
38
+
39
+ this.aMockContexts = aContexts.map(context => {
40
+ return new MockContext(context, this);
41
+ });
42
+ }
43
+
44
+ public isA(sClassName: string): boolean {
45
+ return sClassName === "sap.ui.model.odata.v4.ODataListBinding";
46
+ }
47
+
48
+ // Mocked API
49
+ public setAggregation = jest.fn();
50
+ public filter = jest.fn();
51
+ public sort = jest.fn();
52
+
53
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
54
+ public requestContexts = jest.fn((...args) => {
55
+ return Promise.resolve((this.aMockContexts as any) as Context[]);
56
+ });
57
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
+ public getCurrentContexts = jest.fn((...args) => {
59
+ return (this.aMockContexts as any) as Context[];
60
+ });
61
+ }
62
+
63
+ export class MockContextBinding implements Partial<ODataContextBinding> {
64
+ private oMockContext: MockContext;
65
+
66
+ public constructor(oContext?: any) {
67
+ this.oMockContext = new MockContext(oContext || {}, this);
68
+ }
69
+
70
+ public isA(sClassName: string): boolean {
71
+ return sClassName === "sap.ui.model.odata.v4.ODataContextBinding";
72
+ }
73
+ public getInternalMockContext(): MockContext {
74
+ return this.oMockContext;
75
+ }
76
+
77
+ // Mocked API
78
+ public getBoundContext = jest.fn(() => {
79
+ return (this.oMockContext as any) as Context;
80
+ });
81
+ public attachEventOnce = jest.fn();
82
+ }
83
+
84
+ /**
85
+ * Mock class for OData V4 MetaModel
86
+ */
87
+ export class MockMetaModel implements Partial<ODataMetaModel> {
88
+ private oMetaContext: MockContext;
89
+
90
+ public constructor(oMetaData?: any) {
91
+ this.oMetaContext = new MockContext(oMetaData || {});
92
+ }
93
+
94
+ // Mocked API
95
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
96
+ public getMetaContext = jest.fn((sPath: string) => {
97
+ return (new MockContext({ $path: sPath }) as any) as Context;
98
+ });
99
+ public getObject = jest.fn((sPath: string) => {
100
+ return this.oMetaContext.getProperty(sPath);
101
+ });
102
+ }
103
+
104
+ /**
105
+ * Mock class for OData V4 Model
106
+ */
107
+
108
+ export class MockModel implements Partial<ODataModel> {
109
+ private oMetaModel?: MockMetaModel;
110
+
111
+ public constructor(private mockListBinding?: MockListBinding, private mockContextBinding?: MockContextBinding) {}
112
+
113
+ // Factories
114
+ static modelFromListBinding(mockListBinding: MockListBinding): MockModel {
115
+ return new MockModel(mockListBinding);
116
+ }
117
+ static modelFromContextBinding(mockContextBinding: MockContextBinding): MockModel {
118
+ return new MockModel(undefined, mockContextBinding);
119
+ }
120
+
121
+ public setMetaModel(oMetaModel: MockMetaModel) {
122
+ this.oMetaModel = oMetaModel;
123
+ }
124
+
125
+ // Mocked API
126
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
127
+ public bindList = jest.fn((...args) => {
128
+ return (this.mockListBinding as any) as ODataListBinding;
129
+ });
130
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
131
+ public bindContext = jest.fn((...args) => {
132
+ return (this.mockContextBinding as any) as ODataContextBinding;
133
+ });
134
+ public getMetaModel = jest.fn(() => {
135
+ return (this.oMetaModel as any) as ODataMetaModel;
136
+ });
137
+ }
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -42,7 +42,11 @@ sap.ui.define(
42
42
  if (sSingleDeltaManifest.indexOf("/") !== 0) {
43
43
  sSingleDeltaManifest = sComponentName + "/" + sSingleDeltaManifest;
44
44
  }
45
- oTargetManifest = mergeObjects({}, oTargetManifest, LoaderExtensions.loadResource(sSingleDeltaManifest));
45
+ try {
46
+ oTargetManifest = mergeObjects({}, oTargetManifest, LoaderExtensions.loadResource(sSingleDeltaManifest));
47
+ } catch (ignore) {
48
+ // not always an error, e.g. when navigating to a different app that does not have the delta manifest
49
+ }
46
50
  });
47
51
  }
48
52
 
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/fe/test/Utils", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder"], function(Utils, OpaBuilder, FEBuilder) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./BaseAPI", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder"], function(
6
6
  BaseAPI,
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["./BaseAPI", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/ui/core/SortOrder"],
@@ -27,7 +27,7 @@ sap.ui.define(
27
27
 
28
28
  ChartAssertions.prototype.iCheckItems = function(iNumberOfItems, sTab) {
29
29
  return OpaBuilder.create(this)
30
- .hasType("sap.ui.mdc.Chart")
30
+ .hasType("sap.ui.mdc.ChartNew")
31
31
  .check(function(aCharts) {
32
32
  var oChart;
33
33
  if (sTab && aCharts && aCharts.length > 1) {
@@ -40,7 +40,11 @@ sap.ui.define(
40
40
  } else {
41
41
  oChart = aCharts[0];
42
42
  }
43
- var aContexts = oChart.getBinding("data").getContexts();
43
+ var aContexts = oChart
44
+ .getControlDelegate()
45
+ ._getChart(oChart)
46
+ .getBinding("data")
47
+ .getContexts();
44
48
  return (
45
49
  (aContexts && (iNumberOfItems === undefined ? aContexts.length !== 0 : aContexts.length === iNumberOfItems)) ||
46
50
  (!aContexts && iNumberOfItems === 0)
@@ -52,7 +56,7 @@ sap.ui.define(
52
56
 
53
57
  ChartAssertions.prototype.iSeeChartType = function(sChartType) {
54
58
  return OpaBuilder.create(this)
55
- .hasType("sap.ui.mdc.Chart")
59
+ .hasType("sap.ui.mdc.ChartNew")
56
60
  .check(function(oChart) {
57
61
  return sChartType === oChart[0].getChartType();
58
62
  }, true)
@@ -62,7 +66,7 @@ sap.ui.define(
62
66
 
63
67
  ChartAssertions.prototype.iSeeChartVisible = function() {
64
68
  return OpaBuilder.create(this)
65
- .hasType("sap.ui.mdc.Chart")
69
+ .hasType("sap.ui.mdc.ChartNew")
66
70
  .check(function(oChart) {
67
71
  return oChart[0].getVisible() === true;
68
72
  }, true)
@@ -99,7 +103,7 @@ sap.ui.define(
99
103
 
100
104
  ChartAssertions.prototype.iCheckChartNoDataText = function(sNoDataText) {
101
105
  return OpaBuilder.create(this)
102
- .hasType("sap.ui.mdc.Chart")
106
+ .hasType("sap.ui.mdc.ChartNew")
103
107
  .check(function(oChart) {
104
108
  return sNoDataText === oChart[0].getNoDataText();
105
109
  })
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogAPI", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function(DialogAPI, Utils, OpaBuilder) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogAPI", "sap/fe/test/Utils"], function(DialogAPI, Utils) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function(DialogActions, Utils, OpaBuilder) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogAssertions", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
6
6
  DialogAssertions,
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogActions", "sap/fe/test/Utils", "sap/ui/test/OpaBuilder"], function(DialogActions, Utils, OpaBuilder) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["./DialogAssertions", "sap/ui/test/OpaBuilder", "sap/fe/test/builder/FEBuilder", "sap/fe/test/Utils"], function(
6
6
  DialogAssertions,
@@ -1,6 +1,6 @@
1
1
  /*
2
2
  * ! SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2022 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [],