@sapui5/sap.fe.test 1.97.0 → 1.99.1

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 +5 -2
  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 +3 -2
  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 -5
  16. package/src/sap/fe/test/LocationUtil.js +3 -2
  17. package/src/sap/fe/test/ObjectPage.js +28 -17
  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 -2
  21. package/src/sap/fe/test/TemplatingTestUtils.js +4 -3
  22. package/src/sap/fe/test/UI5MockHelper.js +234 -45
  23. package/src/sap/fe/test/UI5MockHelper.ts +127 -12
  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 +5 -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 +17 -4
  30. package/src/sap/fe/test/api/DialogActions.js +3 -2
  31. package/src/sap/fe/test/api/DialogAssertions.js +3 -2
  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 +3 -2
  40. package/src/sap/fe/test/api/FilterBarAPI.js +3 -2
  41. package/src/sap/fe/test/api/FilterBarActions.js +3 -2
  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 +3 -2
  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 +3 -21
  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 +29 -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
@@ -1,29 +1,27 @@
1
1
  import { PhantomUtil } from "sap/fe/macros";
2
- import { _MetadataRequestor } from "sap/ui/model/odata/v4/lib";
3
- import { ODataMetaModel } from "sap/ui/model/odata/v4";
4
- import { XMLPreprocessor } from "sap/ui/core/util";
5
- import { Log } from "sap/base";
2
+ import _MetadataRequestor from "sap/ui/model/odata/v4/lib/_MetadataRequestor";
3
+ import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
4
+ import XMLPreprocessor from "sap/ui/core/util/XMLPreprocessor";
5
+ import Log from "sap/base/Log";
6
6
  import xpath from "xpath";
7
7
  import * as fs from "fs";
8
8
  import { compileSources, to } from "@sap/cds-compiler";
9
9
  import { format } from "prettier";
10
- import { BindingParser } from "sap/ui/base";
10
+ import BindingParser from "sap/ui/base/BindingParser";
11
11
  import { AnyAnnotation, ConverterOutput, EntitySet, Property } from "@sap-ux/annotation-converter";
12
12
  import { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
13
- import { JSONModel } from "sap/ui/model/json";
14
- import { InvisibleText } from "sap/ui/core";
13
+ import JSONModel from "sap/ui/model/json/JSONModel";
14
+ import InvisibleText from "sap/ui/core/InvisibleText";
15
15
  import { ListReportManifestSettings, ObjectPageManifestSettings } from "sap/fe/core/converters/ManifestSettings";
16
16
  import { IssueCategory, IssueSeverity } from "sap/fe/core/converters/helpers/IssueManager";
17
17
  import { IDiagnostics } from "sap/fe/core/converters/TemplateConverter";
18
- import { merge } from "sap/base/util";
18
+ import merge from "sap/base/util/merge";
19
19
  import * as path from "path";
20
20
  import ConverterContext from "sap/fe/core/converters/ConverterContext";
21
21
  import SideEffectsFactory from "sap/fe/core/services/SideEffectsServiceFactory";
22
+ import TemplateModel from "sap/fe/core/TemplateModel";
22
23
  // eslint-disable-next-line @typescript-eslint/no-var-requires
23
24
  const formatXml = require("xml-formatter");
24
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
25
- // @ts-ignore
26
- import * as TemplateModel from "sap/fe/core/TemplateModel";
27
25
 
28
26
  Log.setLevel(1 as any, "sap.ui.core.util.XMLPreprocessor");
29
27
  jest.setTimeout(40000);
@@ -38,8 +36,10 @@ const nameSpaceMap = {
38
36
  "core": "sap.ui.core",
39
37
  "m": "sap.m",
40
38
  "f": "sap.ui.layout.form",
39
+ "internalMacro": "sap.fe.macros.internal",
41
40
  "mdc": "sap.ui.mdc",
42
41
  "mdcField": "sap.ui.mdc.field",
42
+ "mdcTable": "sap.ui.mdc.table",
43
43
  "u": "sap.ui.unified",
44
44
  "macroMicroChart": "sap.fe.macros.microchart",
45
45
  "microChart": "sap.suite.ui.microchart"
@@ -105,8 +105,7 @@ export const serializeXML = function(xmlDom: Node) {
105
105
  */
106
106
  export const compileCDS = function(sCDSUrl: string) {
107
107
  const cdsString = fs.readFileSync(sCDSUrl, "utf-8");
108
- const csn = compileSources({ "string.cds": cdsString }, {});
109
- const edmxContent = to.edmx(csn, { service: "sap.fe.test.JestService" });
108
+ const edmxContent = cds2edmx(cdsString, "sap.fe.test.JestService");
110
109
  const dir = path.resolve(sCDSUrl, "..", "gen");
111
110
  const edmxUrl = path.resolve(dir, path.basename(sCDSUrl).replace(".cds", ".xml"));
112
111
 
@@ -118,6 +117,22 @@ export const compileCDS = function(sCDSUrl: string) {
118
117
  return edmxUrl;
119
118
  };
120
119
 
120
+ /**
121
+ * Compile CDS to EDMX.
122
+ *
123
+ * @param cds The CDS model. It must define at least one service.
124
+ * @param service The fully-qualified name of the service to compile. Defaults to "sap.fe.test.JestService".
125
+ * @returns The compiled service model as EDMX.
126
+ */
127
+ export function cds2edmx(cds: string, service: string = "sap.fe.test.JestService") {
128
+ const csn = compileSources({ "string.cds": cds }, {});
129
+ const edmx = to.edmx(csn, { service: service, odataForeignKeys: true, odataFormat: "structured", odataContainment: false });
130
+ if (!edmx) {
131
+ throw new Error(`Compilation failed. Hint: Make sure that the CDS model defines service ${service}.`);
132
+ }
133
+ return edmx;
134
+ }
135
+
121
136
  export const getFakeSideEffectsService = async function(oMetaModel: ODataMetaModel): Promise<any> {
122
137
  const oServiceContext = { scopeObject: {}, scopeType: "", settings: {} };
123
138
  return new SideEffectsFactory().createInstance(oServiceContext).then(function(oServiceInstance: any) {
@@ -200,15 +215,41 @@ export const evaluateBinding = function(bindingString: string, ...args: any[]) {
200
215
  return bindingElement.formatter.apply(undefined, args);
201
216
  };
202
217
 
203
- export const evaluateBindingWithModel = function(bindingString: string | undefined, modelContent: any) {
218
+ type ModelContent = {
219
+ [name: string]: any;
220
+ };
221
+
222
+ /**
223
+ * Evaluate a binding against a model.
224
+ *
225
+ * @param bindingString The binding string.
226
+ * @param modelContent Content of the default model to use for evaluation.
227
+ * @param namedModelsContent Contents of additional, named models to use.
228
+ * @returns The evaluated binding.
229
+ */
230
+ export function evaluateBindingWithModel(
231
+ bindingString: string | undefined,
232
+ modelContent: ModelContent,
233
+ namedModelsContent?: { [modelName: string]: ModelContent }
234
+ ): string {
204
235
  const bindingElement = BindingParser.complexParser(bindingString);
205
- const jsonModel = new JSONModel(modelContent);
206
236
  const text = new InvisibleText();
207
237
  text.bindProperty("text", bindingElement);
208
- text.setModel(jsonModel);
209
- text.setBindingContext(jsonModel.createBindingContext("/"));
238
+
239
+ const defaultModel = new JSONModel(modelContent);
240
+ text.setModel(defaultModel);
241
+ text.setBindingContext(defaultModel.createBindingContext("/"));
242
+
243
+ if (namedModelsContent) {
244
+ for (const [name, content] of Object.entries(namedModelsContent)) {
245
+ const model = new JSONModel(content);
246
+ text.setModel(model, name);
247
+ text.setBindingContext(model.createBindingContext("/"), name);
248
+ }
249
+ }
250
+
210
251
  return text.getText();
211
- };
252
+ }
212
253
 
213
254
  export const getTemplatingResult = async function(
214
255
  xmlInput: string,
@@ -275,7 +316,7 @@ export const getTemplatedXML = async function(
275
316
  *
276
317
  * @param {string} name Fully qualified name of the fragment to be tested.
277
318
  * @param {object} testData Test data consisting
278
- * @returns Tempalted fragment as string
319
+ * @returns Templated fragment as string
279
320
  */
280
321
  export async function processFragment(name: string, testData: { [model: string]: object }): Promise<string> {
281
322
  const inputXml = `<root><core:Fragment fragmentName="${name}" type="XML" xmlns:core="sap.ui.core" /></root>`;
@@ -284,11 +325,11 @@ export async function processFragment(name: string, testData: { [model: string]:
284
325
 
285
326
  // build model and bindings for given test data
286
327
  const settings = {
287
- models: {} as { [name: string]: JSONModel<object> },
328
+ models: {} as { [name: string]: JSONModel },
288
329
  bindingContexts: {} as { [name: string]: object }
289
330
  };
290
331
  for (const model in testData) {
291
- const jsonModel = new JSONModel<object>();
332
+ const jsonModel = new JSONModel();
292
333
  jsonModel.setData(testData[model]);
293
334
  settings.models[model] = jsonModel;
294
335
  settings.bindingContexts[model] = settings.models[model].createBindingContext("/");
@@ -305,7 +346,10 @@ export async function processFragment(name: string, testData: { [model: string]:
305
346
  }
306
347
  }
307
348
 
308
- return formatXml(resultDoc.innerHTML, {
349
+ // Keep the fragment result as child of root node when fragment generates multiple root controls
350
+ const xmlResult = resultDoc.children.length > 1 ? resultDoc.outerHTML : resultDoc.innerHTML;
351
+
352
+ return formatXml(xmlResult, {
309
353
  filter: (node: any) => node.type !== "Comment"
310
354
  });
311
355
  }
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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
  /* global QUnit */
6
7
  sap.ui.define(
@@ -70,7 +71,9 @@ sap.ui.define(
70
71
  * @param {object} [mSettings.launchParameters] The URL launch parameters
71
72
  * @param {boolean} [mSettings.async] If false (default), only one JourneyRunner is executed at a time
72
73
  * @param {Function[] | string[]} vJourneys The journeys to be executed. If a journey is represented as a string, it will be interpreted
73
- * as a module path to the file that should be loaded. Else it is expected to be a function
74
+ * as a module path to the file that should be loaded. Else it is expected to be a function.
75
+ * Alternatively, instead of being wrapped in an array, the journeys can also be given as separate parameters:
76
+ * <pre>.run(mSettings, Journey1, Journey2, ...)</pre>
74
77
  * @returns {object} A <code>Promise</code> that is resolved after all tests have been executed
75
78
  *
76
79
  * @function
@@ -86,8 +89,11 @@ sap.ui.define(
86
89
  mSettings = Utils.mergeObjects(this._mInstanceSettings, mSettings);
87
90
  }
88
91
 
89
- var aJourneys = Utils.getParametersArray(iJourneyParameterIndex, arguments),
90
- bAsync = mSettings.async,
92
+ var aJourneys = Array.prototype.slice.call(arguments, iJourneyParameterIndex); // journey-related parameter(s) as array
93
+ if (aJourneys && aJourneys.length && Array.isArray(aJourneys[0])) { // if the first journey parameter is an array...
94
+ aJourneys = aJourneys[0]; // ...then unwrap it, to use this array itself
95
+ }
96
+ var bAsync = mSettings.async,
91
97
  pSyncPromise;
92
98
 
93
99
  if (bAsync) {
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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
  [
@@ -17,7 +18,8 @@ sap.ui.define(
17
18
  "sap/fe/test/api/FooterAssertionsBase",
18
19
  "sap/fe/test/api/HeaderActionsLR",
19
20
  "sap/fe/test/api/HeaderAssertionsLR",
20
- "sap/fe/test/api/KPICardAssertions"
21
+ "sap/fe/test/api/KPICardAssertions",
22
+ "sap/fe/test/api/KPICardActions"
21
23
  ],
22
24
  function(
23
25
  Utils,
@@ -33,7 +35,8 @@ sap.ui.define(
33
35
  FooterAssertionsBase,
34
36
  HeaderActionsLR,
35
37
  HeaderAssertionsLR,
36
- KPICardAssertions
38
+ KPICardAssertions,
39
+ KPICardActions
37
40
  ) {
38
41
  "use strict";
39
42
 
@@ -131,6 +134,9 @@ sap.ui.define(
131
134
  id: sChartId
132
135
  });
133
136
  },
137
+ onKPICard: function() {
138
+ return new KPICardActions(KPIBuilder.create(this));
139
+ },
134
140
  /**
135
141
  * Returns a {@link sap.fe.test.api.FilterBarActions} instance.
136
142
  *
@@ -350,7 +356,7 @@ sap.ui.define(
350
356
  },
351
357
  iSeeFlpLink: function(sDescription) {
352
358
  return OpaBuilder.create(this)
353
- .hasType("sap.ui.mdc.link.PanelListItem")
359
+ .hasType("sap.m.Link")
354
360
  .isDialogElement(true)
355
361
  .hasProperties({ text: sDescription })
356
362
  .description("FLP link with text '" + sDescription + "' is present")
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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-2021 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
  [
@@ -39,8 +40,10 @@ sap.ui.define(
39
40
  ) {
40
41
  "use strict";
41
42
 
42
- function getTableId(sNavProperty) {
43
- return "fe::table::" + sNavProperty.split("/").join("::") + "::LineItem";
43
+ function getTableId(sNavProperty, sQualifier) {
44
+ return sQualifier
45
+ ? "fe::table::" + sNavProperty.split("/").join("::") + "::LineItem::" + sQualifier
46
+ : "fe::table::" + sNavProperty.split("/").join("::") + "::LineItem";
44
47
  }
45
48
 
46
49
  function getChartId(sEntityType) {
@@ -182,7 +185,7 @@ sap.ui.define(
182
185
  */
183
186
  onTable: function(vTableIdentifier) {
184
187
  if (!Utils.isOfType(vTableIdentifier, String)) {
185
- vTableIdentifier = { id: getTableId(vTableIdentifier.property) };
188
+ vTableIdentifier = { id: getTableId(vTableIdentifier.property, vTableIdentifier.qualifier) };
186
189
  }
187
190
  return this._onTable(vTableIdentifier);
188
191
  },
@@ -297,13 +300,15 @@ sap.ui.define(
297
300
  .execute();
298
301
  },
299
302
  iEnableLink: function(sText) {
300
- return OpaBuilder.create(this)
301
- .hasType("sap.m.ColumnListItem")
302
- .hasAggregationProperties("cells", { text: sText })
303
- .isDialogElement()
304
- .doPress("selectMulti")
305
- .description("The CheckBox for link " + sText + " is selected")
306
- .execute();
303
+ return (
304
+ OpaBuilder.create(this)
305
+ .hasType("sap.m.ColumnListItem")
306
+ //.hasAggregationProperties("cells", { text: sText })
307
+ .isDialogElement()
308
+ .doPress("selectMulti")
309
+ .description("The CheckBox for link " + sText + " is selected")
310
+ .execute()
311
+ );
307
312
  },
308
313
  iPressKeyboardShortcutOnSection: function(sShortcut, mProperties) {
309
314
  return this._iPressKeyboardShortcut(undefined, sShortcut, mProperties, "sap.uxap.ObjectPageSection");
@@ -463,7 +468,7 @@ sap.ui.define(
463
468
  */
464
469
  onTable: function(vTableIdentifier) {
465
470
  if (!Utils.isOfType(vTableIdentifier, String)) {
466
- vTableIdentifier = { id: getTableId(vTableIdentifier.property) };
471
+ vTableIdentifier = { id: getTableId(vTableIdentifier.property, vTableIdentifier.qualifier) };
467
472
  }
468
473
  return this._onTable(vTableIdentifier);
469
474
  },
@@ -641,7 +646,7 @@ sap.ui.define(
641
646
  },
642
647
  iSeeFlpLink: function(sDescription) {
643
648
  return OpaBuilder.create(this)
644
- .hasType("sap.ui.mdc.link.PanelListItem")
649
+ .hasType("sap.m.Link")
645
650
  .isDialogElement(true)
646
651
  .hasProperties({ text: sDescription })
647
652
  .description("FLP link with text '" + sDescription + "' is present")
@@ -814,12 +819,18 @@ sap.ui.define(
814
819
  .hasType("sap.m.MessageView")
815
820
  .check(function(oMessageView) {
816
821
  var messages = oMessageView[0].getItems();
817
- return (
822
+ var bMessageObjectHasExpectedValues =
818
823
  messages[iMessagePosition].getGroupName() === oBoundMessageInfo.GroupLabel &&
819
824
  messages[iMessagePosition].getTitle() === oBoundMessageInfo.MessageText &&
820
825
  messages[iMessagePosition].getSubtitle() === oBoundMessageInfo.SubTitle &&
821
- messages[iMessagePosition].getActiveTitle() === oBoundMessageInfo.ActiveTitle
822
- );
826
+ messages[iMessagePosition].getActiveTitle() === oBoundMessageInfo.ActiveTitle;
827
+ if (oBoundMessageInfo.Description) {
828
+ return (
829
+ bMessageObjectHasExpectedValues &&
830
+ messages[iMessagePosition].getGroupName() === oBoundMessageInfo.GroupLabel
831
+ );
832
+ }
833
+ return bMessageObjectHasExpectedValues;
823
834
  }, true)
824
835
  .isDialogElement(true)
825
836
  .description("MessageItem is correctly displayed")
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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-2021 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
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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
  [
@@ -1,6 +1,7 @@
1
1
  /*
2
- * ! SAPUI5
3
- * (c) Copyright 2009-2021 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
  [
@@ -131,7 +132,7 @@ sap.ui.define(
131
132
  if (sKey === "T_NEW_OBJECT") {
132
133
  return "New Object";
133
134
  } else {
134
- return "(Unnamed Object)";
135
+ return "Unnamed Object";
135
136
  }
136
137
  });
137
138
  }