@sapui5/sap.fe.test 1.111.1 → 1.112.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.
- package/package.json +1 -1
- package/src/sap/fe/test/.library +1 -1
- package/src/sap/fe/test/CollaborationClient.js +4 -4
- package/src/sap/fe/test/CollaborationClient.ts +3 -3
- package/src/sap/fe/test/FeMocks.js +5 -5
- package/src/sap/fe/test/FeMocks.ts +5 -5
- package/src/sap/fe/test/JestTemplatingHelper.js +28 -23
- package/src/sap/fe/test/JestTemplatingHelper.ts +28 -22
- package/src/sap/fe/test/JourneyRunner.js +5 -7
- package/src/sap/fe/test/ListReport.js +4 -6
- package/src/sap/fe/test/ObjectPage.js +2 -2
- package/src/sap/fe/test/Shell.js +2 -2
- package/src/sap/fe/test/Stubs.js +1 -1
- package/src/sap/fe/test/TemplatePage.js +2 -2
- package/src/sap/fe/test/TemplatingTestUtils.js +2 -3
- package/src/sap/fe/test/UI5MockHelper.js +39 -3
- package/src/sap/fe/test/UI5MockHelper.ts +33 -3
- package/src/sap/fe/test/api/ChartActions.js +1 -1
- package/src/sap/fe/test/api/CollaborationAPI.js +14 -19
- package/src/sap/fe/test/api/CollaborationAPI.ts +17 -24
- package/src/sap/fe/test/api/DialogValueHelpAssertions.js +68 -27
- package/src/sap/fe/test/api/FilterBarAssertions.js +3 -3
- package/src/sap/fe/test/builder/MacroFieldBuilder.js +3 -3
- package/src/sap/fe/test/builder/MdcTableBuilder.js +12 -3
- package/src/sap/fe/test/internal/ConsoleErrorChecker.js +4 -2
- package/src/sap/fe/test/internal/ConsoleErrorChecker.ts +5 -1
- package/src/sap/fe/test/internal/FEArrangements.js +9 -5
- package/src/sap/fe/test/library-preload.js +204 -117
- package/src/sap/fe/test/library-preload.js.map +1 -1
- package/src/sap/fe/test/library.js +1 -1
- package/src/sap/fe/test/manifest.json +1 -1
|
@@ -491,10 +491,10 @@ sap.ui.predefine("sap/fe/test/CollaborationClient", ["sap/fe/core/controllerexte
|
|
|
491
491
|
CollaborationAPI.discardDraft();
|
|
492
492
|
}).description("Remote session discarding draft").execute();
|
|
493
493
|
},
|
|
494
|
-
|
|
494
|
+
iDeleteObject: function (objectPath) {
|
|
495
495
|
return OpaBuilder.create(this).do(function () {
|
|
496
|
-
CollaborationAPI.
|
|
497
|
-
}).description(
|
|
496
|
+
CollaborationAPI.deleteObject(objectPath);
|
|
497
|
+
}).description(`Remote session deleting object ${objectPath}`).execute();
|
|
498
498
|
}
|
|
499
499
|
},
|
|
500
500
|
assertions: {
|
|
@@ -704,7 +704,7 @@ sap.ui.predefine("sap/fe/test/FCLView", ["sap/ui/test/OpaBuilder"], function (Op
|
|
|
704
704
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
705
705
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
706
706
|
*/
|
|
707
|
-
sap.ui.predefine("sap/fe/test/FeMocks", ["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/
|
|
707
|
+
sap.ui.predefine("sap/fe/test/FeMocks", ["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/PageController", "sap/ui/mdc/FilterBar"], function (generic, EditFlow, PageController, FilterBar) {
|
|
708
708
|
"use strict";
|
|
709
709
|
|
|
710
710
|
var _exports = {};
|
|
@@ -722,8 +722,8 @@ sap.ui.predefine("sap/fe/test/FeMocks", ["@sap-ux/jest-mock-ui5/dist/generic", "
|
|
|
722
722
|
_shouldAutoTriggerSearch: jest.fn(),
|
|
723
723
|
_getTable: jest.fn(),
|
|
724
724
|
getExtensionAPI: jest.fn(),
|
|
725
|
-
|
|
726
|
-
|
|
725
|
+
getChartControl: jest.fn(),
|
|
726
|
+
editFlow: mock(EditFlow)
|
|
727
727
|
};
|
|
728
728
|
return Object.assign(mock(PageController), listReport);
|
|
729
729
|
}
|
|
@@ -733,7 +733,7 @@ sap.ui.predefine("sap/fe/test/FeMocks", ["@sap-ux/jest-mock-ui5/dist/generic", "
|
|
|
733
733
|
const objectPage = {
|
|
734
734
|
getStickyEditMode: jest.fn(),
|
|
735
735
|
getExtensionAPI: jest.fn(),
|
|
736
|
-
|
|
736
|
+
editFlow: mock(EditFlow)
|
|
737
737
|
};
|
|
738
738
|
return Object.assign(mock(PageController), objectPage);
|
|
739
739
|
}
|
|
@@ -1788,12 +1788,12 @@ sap.ui.predefine("sap/fe/test/JestFlexibilityHelper", [], function () {
|
|
|
1788
1788
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
1789
1789
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
1790
1790
|
*/
|
|
1791
|
-
sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs", "@prettier/plugin-xml", "path", "prettier", "sap/base/Log", "sap/base/util/LoaderExtensions", "sap/base/util/merge", "sap/fe/core/
|
|
1791
|
+
sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs", "@prettier/plugin-xml", "path", "prettier", "sap/base/Log", "sap/base/util/LoaderExtensions", "sap/base/util/merge", "sap/fe/core/converters/ConverterContext", "sap/fe/core/services/SideEffectsServiceFactory", "sap/fe/core/TemplateModel", "sap/fe/test/UI5MockHelper", "sap/ui/base/BindingParser", "sap/ui/base/ManagedObjectMetadata", "sap/ui/core/Component", "sap/ui/core/InvisibleText", "sap/ui/core/util/serializer/Serializer", "sap/ui/core/util/XMLPreprocessor", "sap/ui/fl/apply/_internal/flexState/FlexState", "sap/ui/fl/apply/_internal/preprocessors/XmlPreprocessor", "sap/ui/fl/initial/_internal/Storage", "sap/ui/fl/Utils", "sap/ui/model/json/JSONModel", "sap/ui/model/odata/v4/lib/_MetadataRequestor", "sap/ui/model/odata/v4/ODataMetaModel", "xpath", "./JestFlexibilityHelper"], function (compiler, fs, plugin, path, prettier, Log, LoaderExtensions, merge, ConverterContext, SideEffectsFactory, TemplateModel, UI5MockHelper, BindingParser, ManagedObjectMetadata, Component, InvisibleText, Serializer, XMLPreprocessor, FlexState, XmlPreprocessor, AppStorage, Utils, JSONModel, _MetadataRequestor, ODataMetaModel, xpath, JestFlexibilityHelper) {
|
|
1792
1792
|
"use strict";
|
|
1793
1793
|
|
|
1794
1794
|
var _exports = {};
|
|
1795
1795
|
var createFlexibilityChangesObject = JestFlexibilityHelper.createFlexibilityChangesObject;
|
|
1796
|
-
var
|
|
1796
|
+
var createMockResourceModel = UI5MockHelper.createMockResourceModel;
|
|
1797
1797
|
var format = prettier.format;
|
|
1798
1798
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
1799
1799
|
const formatXml = require("xml-formatter");
|
|
@@ -1807,6 +1807,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1807
1807
|
log: "http://schemas.sap.com/sapui5/extension/sap.ui.core.CustomData/1",
|
|
1808
1808
|
unittest: "http://schemas.sap.com/sapui5/preprocessorextension/sap.fe.unittesting/1",
|
|
1809
1809
|
control: "sap.fe.core.controls",
|
|
1810
|
+
controls: "sap.fe.macros.controls",
|
|
1810
1811
|
core: "sap.ui.core",
|
|
1811
1812
|
dt: "sap.ui.dt",
|
|
1812
1813
|
m: "sap.m",
|
|
@@ -1823,6 +1824,9 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1823
1824
|
macroTable: "sap.fe.macros.table"
|
|
1824
1825
|
};
|
|
1825
1826
|
const select = xpath.useNamespaces(nameSpaceMap);
|
|
1827
|
+
const defaultFakeSideEffectService = {
|
|
1828
|
+
computeFieldGroupIds: () => []
|
|
1829
|
+
};
|
|
1826
1830
|
function _getTemplatedSelector(xmldom, selector) {
|
|
1827
1831
|
/**
|
|
1828
1832
|
* if a root element has been added during the templating by our Jest Templating methods
|
|
@@ -1831,7 +1835,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1831
1835
|
const rootPath = "/root";
|
|
1832
1836
|
return `${xmldom.nodeName === "root" && !selector.startsWith(rootPath) ? rootPath : ""}${selector}`;
|
|
1833
1837
|
}
|
|
1834
|
-
async function _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels) {
|
|
1838
|
+
async function _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels, fakeSideEffectService) {
|
|
1835
1839
|
const oMetaModel = await getMetaModel(sMetadataUrl);
|
|
1836
1840
|
|
|
1837
1841
|
// To ensure our macro can use #setBindingContext we ensure there is a pre existing JSONModel for converterContext
|
|
@@ -1850,9 +1854,13 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1850
1854
|
models: Object.assign({
|
|
1851
1855
|
metaModel: oMetaModel
|
|
1852
1856
|
}, mModels),
|
|
1853
|
-
bindingContexts: {}
|
|
1857
|
+
bindingContexts: {},
|
|
1858
|
+
appComponent: {
|
|
1859
|
+
getSideEffectsService: jest.fn(),
|
|
1860
|
+
getDiagnostics: () => undefined
|
|
1861
|
+
}
|
|
1854
1862
|
};
|
|
1855
|
-
|
|
1863
|
+
settings.appComponent.getSideEffectsService.mockReturnValue(fakeSideEffectService ?? defaultFakeSideEffectService);
|
|
1856
1864
|
//Inject models and bindingContexts
|
|
1857
1865
|
Object.keys(mBindingContexts).forEach(function (sKey) {
|
|
1858
1866
|
/* Assert to make sure the annotations are in the test metadata -> avoid misleading tests */
|
|
@@ -1873,17 +1881,6 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1873
1881
|
const view = LoaderExtensions.loadResource(name);
|
|
1874
1882
|
return view.documentElement;
|
|
1875
1883
|
}
|
|
1876
|
-
const registerMacro = function (macroMetadata) {
|
|
1877
|
-
registerBuildingBlock(macroMetadata);
|
|
1878
|
-
};
|
|
1879
|
-
_exports.registerMacro = registerMacro;
|
|
1880
|
-
const unregisterMacro = function (macroMetadata) {
|
|
1881
|
-
XMLPreprocessor.plugIn(null, macroMetadata.namespace, macroMetadata.name);
|
|
1882
|
-
if (macroMetadata.publicNamespace) {
|
|
1883
|
-
XMLPreprocessor.plugIn(null, macroMetadata.publicNamespace, macroMetadata.name);
|
|
1884
|
-
}
|
|
1885
|
-
};
|
|
1886
|
-
_exports.unregisterMacro = unregisterMacro;
|
|
1887
1884
|
const runXPathQuery = function (selector, xmldom) {
|
|
1888
1885
|
return select(selector, xmldom);
|
|
1889
1886
|
};
|
|
@@ -1915,7 +1912,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1915
1912
|
xmlString = xmlString.join("");
|
|
1916
1913
|
}
|
|
1917
1914
|
let xmlFormatted = formatXML(xmlString);
|
|
1918
|
-
xmlFormatted = xmlFormatted.replace(/uid--id-[0-9]{13}-[0-9]{1,
|
|
1915
|
+
xmlFormatted = xmlFormatted.replace(/uid--id-[0-9]{13}-[0-9]{1,3}/g, "uid--id");
|
|
1919
1916
|
return xmlFormatted;
|
|
1920
1917
|
};
|
|
1921
1918
|
_exports.formatBuildingBlockXML = formatBuildingBlockXML;
|
|
@@ -2157,7 +2154,10 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2157
2154
|
};
|
|
2158
2155
|
const getChangesFromXML = xml => [...xml.querySelectorAll("*")].flatMap(e => [...e.attributes].map(a => a.name)).filter(attr => attr.includes("sap.ui.fl.appliedChanges"));
|
|
2159
2156
|
_exports.getChangesFromXML = getChangesFromXML;
|
|
2160
|
-
const getTemplatingResult = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges) {
|
|
2157
|
+
const getTemplatingResult = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService) {
|
|
2158
|
+
if (!mModels["sap.fe.i18n"]) {
|
|
2159
|
+
mModels["sap.fe.i18n"] = createMockResourceModel();
|
|
2160
|
+
}
|
|
2161
2161
|
const templatedXml = `<root>${xmlInput}</root>`;
|
|
2162
2162
|
const parser = new window.DOMParser();
|
|
2163
2163
|
const xmlDoc = parser.parseFromString(templatedXml, "text/xml");
|
|
@@ -2165,7 +2165,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2165
2165
|
// if not already passed to teh templating
|
|
2166
2166
|
|
|
2167
2167
|
const oMetaModel = await getMetaModel(sMetadataUrl);
|
|
2168
|
-
const oPreprocessorSettings = await _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels);
|
|
2168
|
+
const oPreprocessorSettings = await _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels, fakeSideEffectService);
|
|
2169
2169
|
|
|
2170
2170
|
//This context for macro testing
|
|
2171
2171
|
if (oPreprocessorSettings.models["this"]) {
|
|
@@ -2181,8 +2181,8 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2181
2181
|
return resultXML;
|
|
2182
2182
|
};
|
|
2183
2183
|
_exports.getTemplatingResult = getTemplatingResult;
|
|
2184
|
-
const getTemplatedXML = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges) {
|
|
2185
|
-
const templatedXML = await getTemplatingResult(xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges);
|
|
2184
|
+
const getTemplatedXML = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService) {
|
|
2185
|
+
const templatedXML = await getTemplatingResult(xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService);
|
|
2186
2186
|
return serializeXML(templatedXML);
|
|
2187
2187
|
};
|
|
2188
2188
|
|
|
@@ -2230,7 +2230,11 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2230
2230
|
// build model and bindings for given test data
|
|
2231
2231
|
const settings = {
|
|
2232
2232
|
models: {},
|
|
2233
|
-
bindingContexts: {}
|
|
2233
|
+
bindingContexts: {},
|
|
2234
|
+
appComponent: {
|
|
2235
|
+
getSideEffectsService: jest.fn(),
|
|
2236
|
+
getDiagnostics: () => undefined
|
|
2237
|
+
}
|
|
2234
2238
|
};
|
|
2235
2239
|
for (const model in testData) {
|
|
2236
2240
|
const jsonModel = new JSONModel();
|
|
@@ -2238,6 +2242,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2238
2242
|
settings.models[model] = jsonModel;
|
|
2239
2243
|
settings.bindingContexts[model] = settings.models[model].createBindingContext("/");
|
|
2240
2244
|
}
|
|
2245
|
+
settings.appComponent.getSideEffectsService.mockReturnValue(defaultFakeSideEffectService);
|
|
2241
2246
|
|
|
2242
2247
|
// execute the pre-processor
|
|
2243
2248
|
const resultDoc = await XMLPreprocessor.process(inputDoc.firstElementChild, {
|
|
@@ -2422,7 +2427,7 @@ sap.ui.predefine(
|
|
|
2422
2427
|
* @param {string} [mSettings.launchUrl] The URL to the launching page (usually a FLP.html)
|
|
2423
2428
|
* @param {object} [mSettings.launchParameters] The URL launch parameters
|
|
2424
2429
|
* @param {boolean} [mSettings.async] If false (default), only one JourneyRunner is executed at a time
|
|
2425
|
-
* @param {Function[] | string[]}
|
|
2430
|
+
* @param {Function[] | string[]} _vJourneys The journeys to be executed. If a journey is represented as a string, it will be interpreted
|
|
2426
2431
|
* as a module path to the file that should be loaded. Else it is expected to be a function.
|
|
2427
2432
|
* Alternatively, instead of being wrapped in an array, the journeys can also be given as separate parameters:
|
|
2428
2433
|
* <pre>.run(mSettings, Journey1, Journey2, ...)</pre>
|
|
@@ -2431,7 +2436,7 @@ sap.ui.predefine(
|
|
|
2431
2436
|
* @name sap.fe.test.JourneyRunner#run
|
|
2432
2437
|
* @public
|
|
2433
2438
|
*/
|
|
2434
|
-
run: function (mSettings,
|
|
2439
|
+
run: function (mSettings, _vJourneys) {
|
|
2435
2440
|
var iJourneyParameterIndex = 1;
|
|
2436
2441
|
if (!Utils.isOfType(mSettings, Object)) {
|
|
2437
2442
|
iJourneyParameterIndex = 0;
|
|
@@ -2477,13 +2482,12 @@ sap.ui.predefine(
|
|
|
2477
2482
|
*
|
|
2478
2483
|
* By default, an instance of {@link sap.fe.test.BaseActions} will be returned.
|
|
2479
2484
|
*
|
|
2480
|
-
* @param {object} mSettings The settings object of the runner instance
|
|
2481
2485
|
* @returns {sap.ui.test.Opa} An Opa instance for the base actions
|
|
2482
2486
|
* @function
|
|
2483
2487
|
* @name sap.fe.test.JourneyRunner#getBaseActions
|
|
2484
2488
|
* @protected
|
|
2485
2489
|
*/
|
|
2486
|
-
getBaseActions: function (
|
|
2490
|
+
getBaseActions: function () {
|
|
2487
2491
|
return new BaseActions();
|
|
2488
2492
|
},
|
|
2489
2493
|
|
|
@@ -2495,13 +2499,12 @@ sap.ui.predefine(
|
|
|
2495
2499
|
*
|
|
2496
2500
|
* By default, an instance of {@link sap.fe.test.BaseAssertions} will be returned.
|
|
2497
2501
|
*
|
|
2498
|
-
* @param {object} mSettings The settings object of the runner instance
|
|
2499
2502
|
* @returns {sap.ui.test.Opa} An Opa instance for the base assertions
|
|
2500
2503
|
* @function
|
|
2501
2504
|
* @name sap.fe.test.JourneyRunner#getBaseAssertions
|
|
2502
2505
|
* @protected
|
|
2503
2506
|
*/
|
|
2504
|
-
getBaseAssertions: function (
|
|
2507
|
+
getBaseAssertions: function () {
|
|
2505
2508
|
return new BaseAssertions();
|
|
2506
2509
|
},
|
|
2507
2510
|
|
|
@@ -2546,7 +2549,7 @@ sap.ui.predefine(
|
|
|
2546
2549
|
aJourneys.forEach(function (vJourney) {
|
|
2547
2550
|
if (Utils.isOfType(vJourney, String)) {
|
|
2548
2551
|
pPromiseChain = pPromiseChain.then(function () {
|
|
2549
|
-
return new Promise(function (resolve
|
|
2552
|
+
return new Promise(function (resolve) {
|
|
2550
2553
|
sap.ui.require([vJourney], function (oJourney) {
|
|
2551
2554
|
resolve(oJourney);
|
|
2552
2555
|
});
|
|
@@ -2735,13 +2738,13 @@ sap.ui.predefine(
|
|
|
2735
2738
|
* @param {string} oPageDefinition.componentId The component id (defined in the target section for the list report within the manifest)
|
|
2736
2739
|
* @param {string} oPageDefinition.entitySet The entitySet (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
2737
2740
|
* @param {string} oPageDefinition.contextPath The contextPath (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
2738
|
-
* @param {...object} [
|
|
2741
|
+
* @param {...object} [_aInAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
2739
2742
|
* @returns {sap.fe.test.ListReport} A list report page definition
|
|
2740
2743
|
* @name sap.fe.test.ListReport
|
|
2741
2744
|
* @extends sap.fe.test.TemplatePage
|
|
2742
2745
|
* @public
|
|
2743
2746
|
*/
|
|
2744
|
-
function ListReport(oPageDefinition,
|
|
2747
|
+
function ListReport(oPageDefinition, _aInAdditionalPageDefinitions) {
|
|
2745
2748
|
var sAppId = oPageDefinition.appId,
|
|
2746
2749
|
sComponentId = oPageDefinition.componentId,
|
|
2747
2750
|
sContextPath = oPageDefinition.contextPath,
|
|
@@ -2915,11 +2918,10 @@ sap.ui.predefine(
|
|
|
2915
2918
|
/**
|
|
2916
2919
|
* TODO This function is only here for legacy reasons and therefore private. Use iGoToView instead.
|
|
2917
2920
|
*
|
|
2918
|
-
* @param {string} sName The name of the view within the List Report table
|
|
2919
2921
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
2920
2922
|
* @private
|
|
2921
2923
|
*/
|
|
2922
|
-
iOpenIconTabWithTitle: function (
|
|
2924
|
+
iOpenIconTabWithTitle: function () {
|
|
2923
2925
|
// return this.iGoToView(sName);
|
|
2924
2926
|
return OpaBuilder.create(this)
|
|
2925
2927
|
.timeout(1)
|
|
@@ -3289,11 +3291,10 @@ sap.ui.predefine(
|
|
|
3289
3291
|
/**
|
|
3290
3292
|
* TODO This function is only here for legacy reasons and therefore private. Use iCheckView instead.
|
|
3291
3293
|
*
|
|
3292
|
-
* @param {object} mProperties Object containing the text: property and any other properties to be checked
|
|
3293
3294
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
3294
3295
|
* @private
|
|
3295
3296
|
*/
|
|
3296
|
-
iSeeIconTabWithProperties: function (
|
|
3297
|
+
iSeeIconTabWithProperties: function () {
|
|
3297
3298
|
// return this.iCheckView(mProperties.text, mProperties);
|
|
3298
3299
|
return OpaBuilder.create(this)
|
|
3299
3300
|
.timeout(1)
|
|
@@ -3541,13 +3542,13 @@ sap.ui.predefine(
|
|
|
3541
3542
|
* @param {string} oPageDefinition.componentId The component id (defined in the target section for the list report within the manifest)
|
|
3542
3543
|
* @param {string} oPageDefinition.entitySet The entitySet (defined in the settings of the corresponding target component within the manifest)
|
|
3543
3544
|
* @param {string} oPageDefinition.contextPath The contextPath (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
3544
|
-
* @param {...object} [
|
|
3545
|
+
* @param {...object} [_aAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
3545
3546
|
* @returns {sap.fe.test.ObjectPage} An object page page definition
|
|
3546
3547
|
* @name sap.fe.test.ObjectPage
|
|
3547
3548
|
* @extends sap.fe.test.TemplatePage
|
|
3548
3549
|
* @public
|
|
3549
3550
|
*/
|
|
3550
|
-
function ObjectPage(oPageDefinition,
|
|
3551
|
+
function ObjectPage(oPageDefinition, _aAdditionalPageDefinitions) {
|
|
3551
3552
|
var sAppId = oPageDefinition.appId,
|
|
3552
3553
|
sComponentId = oPageDefinition.componentId,
|
|
3553
3554
|
ViewId = sAppId + "::" + sComponentId,
|
|
@@ -4521,7 +4522,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4521
4522
|
actions: function (oTile) {
|
|
4522
4523
|
oTile.getTileViews()[0].$().trigger("tap");
|
|
4523
4524
|
},
|
|
4524
|
-
success: function (
|
|
4525
|
+
success: function () {
|
|
4525
4526
|
Opa5.assert.ok(true, Utils.formatMessage("Clicking on tile with target '{0}'", sTarget));
|
|
4526
4527
|
},
|
|
4527
4528
|
errorMessage: "Could not find the tile"
|
|
@@ -4552,7 +4553,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4552
4553
|
.description("Selecting item: " + sOption)
|
|
4553
4554
|
.execute();
|
|
4554
4555
|
},
|
|
4555
|
-
iLaunchExtendedParameterDialog: function (
|
|
4556
|
+
iLaunchExtendedParameterDialog: function () {
|
|
4556
4557
|
return OpaBuilder.create(this)
|
|
4557
4558
|
.hasType("sap.m.Button")
|
|
4558
4559
|
.isDialogElement()
|
|
@@ -4710,7 +4711,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4710
4711
|
/**
|
|
4711
4712
|
* Actions and assertions to be used with a page hosted in an FCL
|
|
4712
4713
|
*/
|
|
4713
|
-
sap.ui.predefine("sap/fe/test/Stubs", [
|
|
4714
|
+
sap.ui.predefine("sap/fe/test/Stubs", [], function () {
|
|
4714
4715
|
"use strict";
|
|
4715
4716
|
var Stubs = {
|
|
4716
4717
|
prepareStubs: function (oWindow) {
|
|
@@ -5044,13 +5045,13 @@ sap.ui.predefine(
|
|
|
5044
5045
|
/**
|
|
5045
5046
|
* @class Provides a test page definition for a template page with the corresponding parameters.
|
|
5046
5047
|
* @param {object | string} vViewId The viewId
|
|
5047
|
-
* @param {...object} [
|
|
5048
|
+
* @param {...object} [_aAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
5048
5049
|
* @returns {sap.fe.test.TemplatePage} A list report page definition
|
|
5049
5050
|
* @name sap.fe.test.TemplatePage
|
|
5050
5051
|
* @hideconstructor
|
|
5051
5052
|
* @public
|
|
5052
5053
|
*/
|
|
5053
|
-
function TemplatePage(vViewId,
|
|
5054
|
+
function TemplatePage(vViewId, _aAdditionalPageDefinitions) {
|
|
5054
5055
|
var sViewId = Utils.isOfType(vViewId, String) ? vViewId : vViewId.viewId,
|
|
5055
5056
|
aAdditionalPages = Array.prototype.slice.call(arguments, 1);
|
|
5056
5057
|
|
|
@@ -5323,8 +5324,7 @@ sap.ui.predefine(
|
|
|
5323
5324
|
"sap/ui/core/util/XMLPreprocessor",
|
|
5324
5325
|
"sap/ui/core/XMLTemplateProcessor",
|
|
5325
5326
|
"sap/fe/macros/macroLibrary",
|
|
5326
|
-
"sap/fe/core/TemplateModel"
|
|
5327
|
-
"sap/fe/macros/ResourceModel"
|
|
5327
|
+
"sap/fe/core/TemplateModel"
|
|
5328
5328
|
],
|
|
5329
5329
|
function (ODataMetaModel, XMLPreprocessor, XMLTemplateProcessor, macroLibrary, TemplateModel) {
|
|
5330
5330
|
"use strict";
|
|
@@ -5377,7 +5377,7 @@ sap.ui.predefine(
|
|
|
5377
5377
|
oMetaModel = new ODataMetaModel(oRequestor, sServiceUrl + "$metadata", undefined, null);
|
|
5378
5378
|
|
|
5379
5379
|
//Switch of all plugins as we only template individual fragments in the test
|
|
5380
|
-
macroLibrary.
|
|
5380
|
+
macroLibrary.unregister();
|
|
5381
5381
|
if (useMacros) {
|
|
5382
5382
|
//Force option to use macros for some tests
|
|
5383
5383
|
macroLibrary.register();
|
|
@@ -5559,7 +5559,7 @@ sap.ui.predefine(
|
|
|
5559
5559
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
5560
5560
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
5561
5561
|
*/
|
|
5562
|
-
sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/
|
|
5562
|
+
sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/InternalRouting", "sap/fe/core/controllerextensions/Share", "sap/fe/core/controllerextensions/SideEffects", "sap/fe/core/ResourceModel", "sap/ui/base/Event", "sap/ui/core/mvc/Controller", "sap/ui/core/mvc/View", "sap/ui/model/CompositeBinding", "sap/ui/model/odata/v4/Context", "sap/ui/model/odata/v4/ODataContextBinding", "sap/ui/model/odata/v4/ODataListBinding", "sap/ui/model/odata/v4/ODataMetaModel", "sap/ui/model/odata/v4/ODataModel", "sap/ui/model/odata/v4/ODataPropertyBinding"], function (generic, EditFlow, InternalRouting, Share, SideEffects, ResourceModel, Event, Controller, View, CompositeBinding, Context, ODataContextBinding, ODataListBinding, ODataMetaModel, ODataModel, ODataPropertyBinding) {
|
|
5563
5563
|
"use strict";
|
|
5564
5564
|
|
|
5565
5565
|
var _exports = {};
|
|
@@ -5961,7 +5961,6 @@ sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/gener
|
|
|
5961
5961
|
function createMockController() {
|
|
5962
5962
|
const mocked = mock(Controller);
|
|
5963
5963
|
mocked._routing = mock(InternalRouting);
|
|
5964
|
-
mocked._editFlow = mock(InternalEditFlow);
|
|
5965
5964
|
mocked._sideEffects = mock(SideEffects);
|
|
5966
5965
|
mocked.editFlow = mock(EditFlow);
|
|
5967
5966
|
mocked.share = mock(Share);
|
|
@@ -5996,7 +5995,44 @@ sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/gener
|
|
|
5996
5995
|
controller
|
|
5997
5996
|
};
|
|
5998
5997
|
}
|
|
5998
|
+
|
|
5999
|
+
/**
|
|
6000
|
+
* To be used to load messages bundles for tests without app/page component.
|
|
6001
|
+
*
|
|
6002
|
+
* @param textID ID of the Text
|
|
6003
|
+
* @param parameters Array of parameters that are used to create the text
|
|
6004
|
+
* @param metaPath Entity set name or action name to overload a text
|
|
6005
|
+
* @returns Determined text
|
|
6006
|
+
*/
|
|
5999
6007
|
_exports.mockMVC = mockMVC;
|
|
6008
|
+
function getText(textID, parameters, metaPath) {
|
|
6009
|
+
const resourceModel = new ResourceModel({
|
|
6010
|
+
bundleName: "sap.fe.core.messagebundle",
|
|
6011
|
+
enhanceWith: [{
|
|
6012
|
+
bundleName: "sap.fe.macros.messagebundle"
|
|
6013
|
+
}, {
|
|
6014
|
+
bundleName: "sap.fe.templates.messagebundle"
|
|
6015
|
+
}],
|
|
6016
|
+
async: false
|
|
6017
|
+
});
|
|
6018
|
+
return resourceModel.getText(textID, parameters, metaPath);
|
|
6019
|
+
}
|
|
6020
|
+
|
|
6021
|
+
/**
|
|
6022
|
+
* Utility type to mock ResourceModel
|
|
6023
|
+
*/
|
|
6024
|
+
_exports.getText = getText;
|
|
6025
|
+
/**
|
|
6026
|
+
* Factory function to create a new MockView.
|
|
6027
|
+
*
|
|
6028
|
+
* @returns A new MockView
|
|
6029
|
+
*/
|
|
6030
|
+
function createMockResourceModel() {
|
|
6031
|
+
const mocked = mock(ResourceModel);
|
|
6032
|
+
mocked.getText = jest.fn().mockImplementation(getText);
|
|
6033
|
+
return mocked;
|
|
6034
|
+
}
|
|
6035
|
+
_exports.createMockResourceModel = createMockResourceModel;
|
|
6000
6036
|
return _exports;
|
|
6001
6037
|
}, false);
|
|
6002
6038
|
/*!
|
|
@@ -6736,7 +6772,7 @@ sap.ui.predefine(
|
|
|
6736
6772
|
|
|
6737
6773
|
Actions.prototype.iSelectItems = function (innerData, bClearSelection) {
|
|
6738
6774
|
if (typeof bClearSelection === "boolean") {
|
|
6739
|
-
bClearSelection = bClearSelection;
|
|
6775
|
+
bClearSelection = !!bClearSelection;
|
|
6740
6776
|
} else {
|
|
6741
6777
|
bClearSelection = true;
|
|
6742
6778
|
}
|
|
@@ -7081,25 +7117,17 @@ sap.ui.predefine("sap/fe/test/api/CollaborationAPI", ["sap/base/Log", "sap/fe/co
|
|
|
7081
7117
|
}
|
|
7082
7118
|
},
|
|
7083
7119
|
/**
|
|
7084
|
-
* Simulates that the user has deleted
|
|
7120
|
+
* Simulates that the user has deleted an object (child of draft root).
|
|
7121
|
+
*
|
|
7122
|
+
* @param objectPath The path of the object to delete
|
|
7085
7123
|
*/
|
|
7086
|
-
|
|
7124
|
+
deleteObject: function (objectPath) {
|
|
7087
7125
|
if (this._internalModel) {
|
|
7088
|
-
const
|
|
7089
|
-
|
|
7090
|
-
|
|
7091
|
-
|
|
7092
|
-
}).
|
|
7093
|
-
activeContext = context;
|
|
7094
|
-
return context.requestCanonicalPath();
|
|
7095
|
-
}).then(() => {
|
|
7096
|
-
return draft.deleteDraft(draftContext);
|
|
7097
|
-
}).then(() => {
|
|
7098
|
-
activeContext.delete();
|
|
7099
|
-
broadcastCollaborationMessage(Activity.Delete, this._rootPath, this._internalModel);
|
|
7100
|
-
this._internalModel.destroy();
|
|
7101
|
-
this._internalModel = undefined;
|
|
7102
|
-
}).catch(function (err) {
|
|
7126
|
+
const objectContext = this._getObjectContext(objectPath);
|
|
7127
|
+
objectContext.requestProperty("IsActiveEntity").then(() => {
|
|
7128
|
+
objectContext.delete();
|
|
7129
|
+
broadcastCollaborationMessage(Activity.Delete, objectPath, this._internalModel);
|
|
7130
|
+
}).catch(err => {
|
|
7103
7131
|
Log.error(err);
|
|
7104
7132
|
});
|
|
7105
7133
|
}
|
|
@@ -7108,7 +7136,10 @@ sap.ui.predefine("sap/fe/test/api/CollaborationAPI", ["sap/base/Log", "sap/fe/co
|
|
|
7108
7136
|
// Private methods
|
|
7109
7137
|
|
|
7110
7138
|
_getDraftContext: function () {
|
|
7111
|
-
return this.
|
|
7139
|
+
return this._getObjectContext(this._rootPath);
|
|
7140
|
+
},
|
|
7141
|
+
_getObjectContext: function (path) {
|
|
7142
|
+
return this._oModel.bindContext(path, undefined, {
|
|
7112
7143
|
$$patchWithoutSideEffects: true,
|
|
7113
7144
|
$$groupId: "$auto",
|
|
7114
7145
|
$$updateGroupId: "$auto"
|
|
@@ -8720,53 +8751,94 @@ sap.ui.predefine(
|
|
|
8720
8751
|
);
|
|
8721
8752
|
};
|
|
8722
8753
|
|
|
8723
|
-
function
|
|
8724
|
-
var
|
|
8725
|
-
.isDialogElement()
|
|
8726
|
-
.mustBeVisible(false)
|
|
8727
|
-
.description(
|
|
8728
|
-
Utils.formatMessage(
|
|
8729
|
-
"Checking that the tab '{1}' on value help dialog '{0}' has state='{2}'",
|
|
8730
|
-
oApiInstance.getIdentifier(),
|
|
8731
|
-
sIdSuffix,
|
|
8732
|
-
mState
|
|
8733
|
-
)
|
|
8734
|
-
),
|
|
8735
|
-
oTabIdMatcher = FEBuilder.Matchers.id(RegExp(sIdSuffix + "$"));
|
|
8754
|
+
function _checkIconTabBarBuilder(oValueHelpBuilder, idMatcher, mState) {
|
|
8755
|
+
var bSuccess = true;
|
|
8736
8756
|
|
|
8737
8757
|
if (mState && mState.visible === false) {
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8758
|
+
oValueHelpBuilder
|
|
8759
|
+
.hasChildren(
|
|
8760
|
+
OpaBuilder.create(this).hasConditional(
|
|
8761
|
+
function (oControl) {
|
|
8762
|
+
// in the visible=false case, there should never be a sap.m.IconTabBar --> let test fail
|
|
8763
|
+
// if a sap.m.IconTabBar is found, both tabs are visible (SearchSelect and DefineConditions)
|
|
8764
|
+
if (oControl.isA("sap.m.IconTabBar")) {
|
|
8765
|
+
bSuccess = false;
|
|
8766
|
+
return true;
|
|
8767
|
+
} else {
|
|
8768
|
+
return false;
|
|
8769
|
+
}
|
|
8770
|
+
},
|
|
8771
|
+
function (oSuccess) {
|
|
8772
|
+
return false;
|
|
8773
|
+
},
|
|
8774
|
+
function (oElse) {
|
|
8775
|
+
return true;
|
|
8776
|
+
}
|
|
8777
|
+
),
|
|
8778
|
+
false
|
|
8779
|
+
)
|
|
8780
|
+
.check(function () {
|
|
8781
|
+
return bSuccess;
|
|
8782
|
+
});
|
|
8742
8783
|
} else {
|
|
8743
|
-
|
|
8784
|
+
oValueHelpBuilder.hasChildren(OpaBuilder.create(this).hasType("sap.m.IconTabFilter").has(idMatcher), false);
|
|
8744
8785
|
}
|
|
8745
|
-
|
|
8746
|
-
return oApiInstance.prepareResult(oBuilder.execute());
|
|
8786
|
+
return oValueHelpBuilder;
|
|
8747
8787
|
}
|
|
8748
8788
|
|
|
8749
8789
|
/**
|
|
8750
|
-
* Checks the <code>
|
|
8790
|
+
* Checks the <code>Define conditions</code> tab in a value help dialog.
|
|
8791
|
+
* Please be aware that the tab control of the toolbar is checked.
|
|
8751
8792
|
*
|
|
8752
8793
|
* @param {object} [mState] Defines the expected state of the filter bar
|
|
8753
8794
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, that can be used for chaining statements
|
|
8754
8795
|
* @public
|
|
8755
8796
|
*/
|
|
8756
|
-
DialogValueHelpAssertions.prototype.
|
|
8757
|
-
|
|
8758
|
-
|
|
8797
|
+
DialogValueHelpAssertions.prototype.iCheckDefineConditions = function (mState) {
|
|
8798
|
+
var sIdSuffix = "-ITB--header-1",
|
|
8799
|
+
idMatcher = FEBuilder.Matchers.id(RegExp(sIdSuffix + "$")),
|
|
8800
|
+
oBuilder = _checkIconTabBarBuilder(this.getBuilder(), idMatcher, mState);
|
|
8759
8801
|
|
|
8802
|
+
return this.prepareResult(
|
|
8803
|
+
oBuilder
|
|
8804
|
+
.description(
|
|
8805
|
+
Utils.formatMessage(
|
|
8806
|
+
"Checking that the Define Conditions tab '{1}' on value help dialog '{0}' has state='{2}'",
|
|
8807
|
+
this.getIdentifier(),
|
|
8808
|
+
sIdSuffix,
|
|
8809
|
+
mState
|
|
8810
|
+
)
|
|
8811
|
+
)
|
|
8812
|
+
.execute()
|
|
8813
|
+
);
|
|
8814
|
+
};
|
|
8760
8815
|
/**
|
|
8761
|
-
* Checks the <code>
|
|
8816
|
+
* Checks the <code>Search and Select</code> tab in a value help dialog.
|
|
8817
|
+
* Please be aware that the tab control of the toolbar is checked.
|
|
8762
8818
|
*
|
|
8763
8819
|
* @param {object} [mState] Defines the expected state of the filter bar
|
|
8764
8820
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, that can be used for chaining statements
|
|
8765
8821
|
* @public
|
|
8766
8822
|
*/
|
|
8767
|
-
DialogValueHelpAssertions.prototype.
|
|
8768
|
-
|
|
8823
|
+
DialogValueHelpAssertions.prototype.iCheckSearchAndSelect = function (mState) {
|
|
8824
|
+
var sIdSuffix = "-ITB--header-0",
|
|
8825
|
+
idMatcher = FEBuilder.Matchers.id(RegExp(sIdSuffix + "$")),
|
|
8826
|
+
oBuilder = _checkIconTabBarBuilder(this.getBuilder(), idMatcher, mState);
|
|
8827
|
+
|
|
8828
|
+
return this.prepareResult(
|
|
8829
|
+
oBuilder
|
|
8830
|
+
.description(
|
|
8831
|
+
Utils.formatMessage(
|
|
8832
|
+
"Checking that the Search and Select tab '{1}' on value help dialog '{0}' has state='{2}'",
|
|
8833
|
+
this.getIdentifier(),
|
|
8834
|
+
sIdSuffix,
|
|
8835
|
+
mState
|
|
8836
|
+
)
|
|
8837
|
+
)
|
|
8838
|
+
.execute()
|
|
8839
|
+
);
|
|
8769
8840
|
};
|
|
8841
|
+
|
|
8770
8842
|
/**
|
|
8771
8843
|
* Checks the dialog.
|
|
8772
8844
|
*
|
|
@@ -9530,9 +9602,9 @@ sap.ui.predefine(
|
|
|
9530
9602
|
|
|
9531
9603
|
/**
|
|
9532
9604
|
* Checks if the focus is on the filter field.
|
|
9533
|
-
|
|
9605
|
+
*
|
|
9534
9606
|
* @param {string} [sFilterFieldLabel] The field label
|
|
9535
|
-
* @returns {object} The result of the {@link
|
|
9607
|
+
* @returns {object} The result of the {@link sa p.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
9536
9608
|
* @public
|
|
9537
9609
|
*/
|
|
9538
9610
|
|
|
@@ -9548,7 +9620,7 @@ sap.ui.predefine(
|
|
|
9548
9620
|
|
|
9549
9621
|
/**
|
|
9550
9622
|
* Checks if the focus is on the Go Button of the filter bar.
|
|
9551
|
-
|
|
9623
|
+
*
|
|
9552
9624
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
9553
9625
|
* @public
|
|
9554
9626
|
*/
|
|
@@ -15337,17 +15409,17 @@ sap.ui.predefine(
|
|
|
15337
15409
|
// we need to do this to be able to retrieve the child of the FormElementWrapper when its child is not visible
|
|
15338
15410
|
return _getMainControls(oContent.getContent());
|
|
15339
15411
|
}
|
|
15340
|
-
if (oContent.isA("sap.fe.
|
|
15412
|
+
if (oContent.isA("sap.fe.macros.controls.FileWrapper")) {
|
|
15341
15413
|
return _getMainControls(oContent.getAvatar());
|
|
15342
15414
|
}
|
|
15343
|
-
if (oContent.isA("sap.fe.
|
|
15415
|
+
if (oContent.isA("sap.fe.macros.controls.FieldWrapper")) {
|
|
15344
15416
|
if (oContent.getEditMode() === "Display") {
|
|
15345
15417
|
return _getMainControls(oContent.getContentDisplay());
|
|
15346
15418
|
} else {
|
|
15347
15419
|
return _getMainControls(oContent.getContentEdit()[0]);
|
|
15348
15420
|
}
|
|
15349
15421
|
}
|
|
15350
|
-
if (oContent.isA("sap.fe.
|
|
15422
|
+
if (oContent.isA("sap.fe.macros.controls.ConditionalWrapper")) {
|
|
15351
15423
|
var oLink = oContent.getCondition() ? oContent.getContentTrue() : oContent.getContentFalse();
|
|
15352
15424
|
return _getMainControls(oLink);
|
|
15353
15425
|
}
|
|
@@ -16011,6 +16083,15 @@ sap.ui.predefine(
|
|
|
16011
16083
|
return oMdcTable ? _getColumnIndex(vColumn, oMdcTable) : -1;
|
|
16012
16084
|
}
|
|
16013
16085
|
|
|
16086
|
+
function _getTableForSelection(oRow) {
|
|
16087
|
+
var oUIControl = oRow,
|
|
16088
|
+
sTableType = oRow.getMetadata().getName() === "sap.ui.table.Row" ? "sap.ui.table.Table" : "sap.ui.mdc.Table";
|
|
16089
|
+
while (oUIControl && !oUIControl.isA(sTableType)) {
|
|
16090
|
+
oUIControl = oUIControl._feMdcTableWrapper || oUIControl.getParent();
|
|
16091
|
+
}
|
|
16092
|
+
return oUIControl;
|
|
16093
|
+
}
|
|
16094
|
+
|
|
16014
16095
|
function _getCell(oRow, iColumn) {
|
|
16015
16096
|
var oCell;
|
|
16016
16097
|
if (!oRow) {
|
|
@@ -16331,7 +16412,7 @@ sap.ui.predefine(
|
|
|
16331
16412
|
|
|
16332
16413
|
TableBuilder.prototype.doSelect = function (vRowMatcher) {
|
|
16333
16414
|
return this.doOnRows(vRowMatcher, function (oRow) {
|
|
16334
|
-
var oTable = oRow
|
|
16415
|
+
var oTable = _getTableForSelection(oRow);
|
|
16335
16416
|
// if several rows are selected, the table may be blocked by other events, e.g. tableRuntime.js --> setContexts
|
|
16336
16417
|
if (oTable.getBusy()) {
|
|
16337
16418
|
oTable.setBusy(false);
|
|
@@ -17073,7 +17154,7 @@ sap.ui.predefine(
|
|
|
17073
17154
|
oCellControl = _getCell(oRow, iColumn);
|
|
17074
17155
|
|
|
17075
17156
|
// if the cellControl is a FieldWrapper replace it by its active control (edit or display)
|
|
17076
|
-
if (oCellControl.isA("sap.fe.
|
|
17157
|
+
if (oCellControl.isA("sap.fe.macros.controls.FieldWrapper")) {
|
|
17077
17158
|
oCellControl =
|
|
17078
17159
|
oCellControl.getEditMode() === "Display"
|
|
17079
17160
|
? oCellControl.getContentDisplay()
|
|
@@ -17085,7 +17166,7 @@ sap.ui.predefine(
|
|
|
17085
17166
|
? oCellControl.getItems()[0].getContent().getContentDisplay()
|
|
17086
17167
|
: oCellControl.getItems()[0].getContent().getContentEdit()[0];
|
|
17087
17168
|
}
|
|
17088
|
-
if (oCellControl.isA("sap.fe.
|
|
17169
|
+
if (oCellControl.isA("sap.fe.macros.controls.ConditionalWrapper")) {
|
|
17089
17170
|
oCellControl = oCellControl.getCondition() ? oCellControl.getContentTrue() : oCellControl.getContentFalse();
|
|
17090
17171
|
}
|
|
17091
17172
|
|
|
@@ -17627,7 +17708,9 @@ sap.ui.predefine("sap/fe/test/internal/ConsoleErrorChecker", [], function () {
|
|
|
17627
17708
|
/**
|
|
17628
17709
|
* List of error message patterns that are always accepted.
|
|
17629
17710
|
*/
|
|
17630
|
-
const GLOBALLY_ACCEPTED_ERRORS = ["failed to load JavaScript resource: sap/esh/search/ui/i18n.js"
|
|
17711
|
+
const GLOBALLY_ACCEPTED_ERRORS = ["failed to load JavaScript resource: sap/esh/search/ui/i18n.js",
|
|
17712
|
+
// shell
|
|
17713
|
+
"Custom attributes are not exist" // accept console error temporarily - remove as soon as unified shell ticket is resolved
|
|
17631
17714
|
].map(wrapPatterns);
|
|
17632
17715
|
let ConsoleErrorChecker = /*#__PURE__*/function () {
|
|
17633
17716
|
function ConsoleErrorChecker(window) {
|
|
@@ -17839,11 +17922,15 @@ sap.ui.predefine(
|
|
|
17839
17922
|
oUriParams = new UriParameters(window.location.href),
|
|
17840
17923
|
sBackendUrl = oUriParams.get("useBackendUrl"),
|
|
17841
17924
|
sProxyPrefix = sBackendUrl ? "/databinding/proxy/" + sBackendUrl.replace("://", "/") : "",
|
|
17842
|
-
bSuccess = false
|
|
17843
|
-
|
|
17844
|
-
|
|
17845
|
-
|
|
17846
|
-
|
|
17925
|
+
bSuccess = false;
|
|
17926
|
+
var sTenantID = "";
|
|
17927
|
+
if (window.__karma__ && window.__karma__.config && window.__karma__.config.ui5) {
|
|
17928
|
+
sTenantID = window.__karma__.config.ui5.shardIndex;
|
|
17929
|
+
} else {
|
|
17930
|
+
sTenantID = window.location.href.includes("sap-client")
|
|
17931
|
+
? new URL(window.location.href).searchParams.get("sap-client")
|
|
17932
|
+
: "default";
|
|
17933
|
+
}
|
|
17847
17934
|
|
|
17848
17935
|
return OpaBuilder.create(this)
|
|
17849
17936
|
.success(function () {
|
|
@@ -17982,12 +18069,12 @@ sap.ui.predefine("sap/fe/test/library", ["sap/ui/core/Core", "sap/ui/core/librar
|
|
|
17982
18069
|
controls: [],
|
|
17983
18070
|
elements: [],
|
|
17984
18071
|
// eslint-disable-next-line no-template-curly-in-string
|
|
17985
|
-
version: "1.
|
|
18072
|
+
version: "1.112.0",
|
|
17986
18073
|
noLibraryCSS: true
|
|
17987
18074
|
});
|
|
17988
18075
|
return thisLib;
|
|
17989
18076
|
}, false);
|
|
17990
18077
|
sap.ui.require.preload({
|
|
17991
|
-
"sap/fe/test/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.fe.test","type":"library","embeds":[],"applicationVersion":{"version":"1.
|
|
18078
|
+
"sap/fe/test/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.fe.test","type":"library","embeds":[],"applicationVersion":{"version":"1.112.0"},"title":"UI5 library: sap.fe.test","description":"UI5 library: sap.fe.test","resources":"resources.json","offline":true},"sap.ui":{"technology":"UI5","supportedThemes":[]},"sap.ui5":{"dependencies":{"libs":{"sap.ui.core":{}}},"library":{"i18n":false,"content":{"controls":[],"elements":[],"types":[],"interfaces":[]}}}}'
|
|
17992
18079
|
});
|
|
17993
18080
|
//# sourceMappingURL=library-preload.js.map
|