@sapui5/sap.fe.test 1.111.1 → 1.113.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 +79 -26
- package/src/sap/fe/test/JestTemplatingHelper.ts +77 -25
- 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 +1 -1
- package/src/sap/fe/test/internal/ConsoleErrorChecker.ts +3 -0
- package/src/sap/fe/test/internal/FEArrangements.js +9 -5
- package/src/sap/fe/test/library-preload.js +252 -119
- 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
|
};
|
|
@@ -1907,6 +1904,38 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1907
1904
|
},
|
|
1908
1905
|
pass: nodes && nodes.length === 0
|
|
1909
1906
|
};
|
|
1907
|
+
},
|
|
1908
|
+
/**
|
|
1909
|
+
* Checks for errors in `xml` created during templating of an XML string or
|
|
1910
|
+
* an XML node.
|
|
1911
|
+
*
|
|
1912
|
+
* This function checkes for the xml errors created by the
|
|
1913
|
+
* function [BuildingBlockTemplateProcessor.createErrorXML]{@link sap.fe.core.buildingBlocks.BuildingBlockTemplateProcessor#createErrorXML}.
|
|
1914
|
+
*
|
|
1915
|
+
* @param xml XML String or XML Node to be tested for errors
|
|
1916
|
+
* @returns Jest Matcher result object
|
|
1917
|
+
*/
|
|
1918
|
+
toHaveTemplatingErrors(xml) {
|
|
1919
|
+
const xmlText = typeof xml === "string" ? xml : serializeXML(xml);
|
|
1920
|
+
const base64Entries = xmlText.match(/BBF\.base64Decode\('([^']*)'\)/gm) || [];
|
|
1921
|
+
const errorMessages = base64Entries.map(message => {
|
|
1922
|
+
if (message && message.length > 0) {
|
|
1923
|
+
var _message$match, _message$match$;
|
|
1924
|
+
return atob(((_message$match = message.match(/('[^']*)/)) === null || _message$match === void 0 ? void 0 : (_message$match$ = _message$match[0]) === null || _message$match$ === void 0 ? void 0 : _message$match$.slice(1)) || "");
|
|
1925
|
+
}
|
|
1926
|
+
return "";
|
|
1927
|
+
});
|
|
1928
|
+
if (errorMessages.length <= 0) {
|
|
1929
|
+
return {
|
|
1930
|
+
message: () => `XML Templating without errors`,
|
|
1931
|
+
pass: false
|
|
1932
|
+
};
|
|
1933
|
+
} else {
|
|
1934
|
+
return {
|
|
1935
|
+
message: () => errorMessages.join("\n"),
|
|
1936
|
+
pass: true
|
|
1937
|
+
};
|
|
1938
|
+
}
|
|
1910
1939
|
}
|
|
1911
1940
|
});
|
|
1912
1941
|
_exports.runXPathQuery = runXPathQuery;
|
|
@@ -1915,7 +1944,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1915
1944
|
xmlString = xmlString.join("");
|
|
1916
1945
|
}
|
|
1917
1946
|
let xmlFormatted = formatXML(xmlString);
|
|
1918
|
-
xmlFormatted = xmlFormatted.replace(/uid--id-[0-9]{13}-[0-9]{1,
|
|
1947
|
+
xmlFormatted = xmlFormatted.replace(/uid--id-[0-9]{13}-[0-9]{1,3}/g, "uid--id");
|
|
1919
1948
|
return xmlFormatted;
|
|
1920
1949
|
};
|
|
1921
1950
|
_exports.formatBuildingBlockXML = formatBuildingBlockXML;
|
|
@@ -1923,10 +1952,24 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
1923
1952
|
const selector = `string(${_getTemplatedSelector(xmlDom, controlSelector)}/@${attributeName})`;
|
|
1924
1953
|
return runXPathQuery(selector, xmlDom);
|
|
1925
1954
|
};
|
|
1955
|
+
|
|
1956
|
+
/**
|
|
1957
|
+
* Serialize the parts or the complete given XML DOM to string.
|
|
1958
|
+
*
|
|
1959
|
+
* @param xmlDom DOM node that is to be serialized.
|
|
1960
|
+
* @param selector Optional selector of sub nodes
|
|
1961
|
+
* @returns XML string
|
|
1962
|
+
*/
|
|
1926
1963
|
_exports.getControlAttribute = getControlAttribute;
|
|
1927
|
-
const serializeXML = function (xmlDom) {
|
|
1964
|
+
const serializeXML = function (xmlDom, selector) {
|
|
1928
1965
|
const serializer = new window.XMLSerializer();
|
|
1929
|
-
|
|
1966
|
+
let xmlString;
|
|
1967
|
+
if (selector) {
|
|
1968
|
+
const nodes = runXPathQuery(selector, xmlDom);
|
|
1969
|
+
xmlString = nodes.map(node => serializer.serializeToString(node)).join("\n");
|
|
1970
|
+
} else {
|
|
1971
|
+
xmlString = serializer.serializeToString(xmlDom);
|
|
1972
|
+
}
|
|
1930
1973
|
return formatXML(xmlString);
|
|
1931
1974
|
};
|
|
1932
1975
|
_exports.serializeXML = serializeXML;
|
|
@@ -2157,7 +2200,10 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2157
2200
|
};
|
|
2158
2201
|
const getChangesFromXML = xml => [...xml.querySelectorAll("*")].flatMap(e => [...e.attributes].map(a => a.name)).filter(attr => attr.includes("sap.ui.fl.appliedChanges"));
|
|
2159
2202
|
_exports.getChangesFromXML = getChangesFromXML;
|
|
2160
|
-
const getTemplatingResult = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges) {
|
|
2203
|
+
const getTemplatingResult = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService) {
|
|
2204
|
+
if (!mModels["sap.fe.i18n"]) {
|
|
2205
|
+
mModels["sap.fe.i18n"] = createMockResourceModel();
|
|
2206
|
+
}
|
|
2161
2207
|
const templatedXml = `<root>${xmlInput}</root>`;
|
|
2162
2208
|
const parser = new window.DOMParser();
|
|
2163
2209
|
const xmlDoc = parser.parseFromString(templatedXml, "text/xml");
|
|
@@ -2165,7 +2211,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2165
2211
|
// if not already passed to teh templating
|
|
2166
2212
|
|
|
2167
2213
|
const oMetaModel = await getMetaModel(sMetadataUrl);
|
|
2168
|
-
const oPreprocessorSettings = await _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels);
|
|
2214
|
+
const oPreprocessorSettings = await _buildPreProcessorSettings(sMetadataUrl, mBindingContexts, mModels, fakeSideEffectService);
|
|
2169
2215
|
|
|
2170
2216
|
//This context for macro testing
|
|
2171
2217
|
if (oPreprocessorSettings.models["this"]) {
|
|
@@ -2181,9 +2227,11 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2181
2227
|
return resultXML;
|
|
2182
2228
|
};
|
|
2183
2229
|
_exports.getTemplatingResult = getTemplatingResult;
|
|
2184
|
-
const getTemplatedXML = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges) {
|
|
2185
|
-
const templatedXML = await getTemplatingResult(xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges);
|
|
2186
|
-
|
|
2230
|
+
const getTemplatedXML = async function (xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService) {
|
|
2231
|
+
const templatedXML = await getTemplatingResult(xmlInput, sMetadataUrl, mBindingContexts, mModels, flexChanges, fakeSideEffectService);
|
|
2232
|
+
const serialiedXML = serializeXML(templatedXML);
|
|
2233
|
+
expect(serialiedXML).not.toHaveTemplatingErrors();
|
|
2234
|
+
return serialiedXML;
|
|
2187
2235
|
};
|
|
2188
2236
|
|
|
2189
2237
|
/**
|
|
@@ -2230,7 +2278,11 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2230
2278
|
// build model and bindings for given test data
|
|
2231
2279
|
const settings = {
|
|
2232
2280
|
models: {},
|
|
2233
|
-
bindingContexts: {}
|
|
2281
|
+
bindingContexts: {},
|
|
2282
|
+
appComponent: {
|
|
2283
|
+
getSideEffectsService: jest.fn(),
|
|
2284
|
+
getDiagnostics: () => undefined
|
|
2285
|
+
}
|
|
2234
2286
|
};
|
|
2235
2287
|
for (const model in testData) {
|
|
2236
2288
|
const jsonModel = new JSONModel();
|
|
@@ -2238,6 +2290,7 @@ sap.ui.predefine("sap/fe/test/JestTemplatingHelper", ["@sap/cds-compiler", "fs",
|
|
|
2238
2290
|
settings.models[model] = jsonModel;
|
|
2239
2291
|
settings.bindingContexts[model] = settings.models[model].createBindingContext("/");
|
|
2240
2292
|
}
|
|
2293
|
+
settings.appComponent.getSideEffectsService.mockReturnValue(defaultFakeSideEffectService);
|
|
2241
2294
|
|
|
2242
2295
|
// execute the pre-processor
|
|
2243
2296
|
const resultDoc = await XMLPreprocessor.process(inputDoc.firstElementChild, {
|
|
@@ -2422,7 +2475,7 @@ sap.ui.predefine(
|
|
|
2422
2475
|
* @param {string} [mSettings.launchUrl] The URL to the launching page (usually a FLP.html)
|
|
2423
2476
|
* @param {object} [mSettings.launchParameters] The URL launch parameters
|
|
2424
2477
|
* @param {boolean} [mSettings.async] If false (default), only one JourneyRunner is executed at a time
|
|
2425
|
-
* @param {Function[] | string[]}
|
|
2478
|
+
* @param {Function[] | string[]} _vJourneys The journeys to be executed. If a journey is represented as a string, it will be interpreted
|
|
2426
2479
|
* as a module path to the file that should be loaded. Else it is expected to be a function.
|
|
2427
2480
|
* Alternatively, instead of being wrapped in an array, the journeys can also be given as separate parameters:
|
|
2428
2481
|
* <pre>.run(mSettings, Journey1, Journey2, ...)</pre>
|
|
@@ -2431,7 +2484,7 @@ sap.ui.predefine(
|
|
|
2431
2484
|
* @name sap.fe.test.JourneyRunner#run
|
|
2432
2485
|
* @public
|
|
2433
2486
|
*/
|
|
2434
|
-
run: function (mSettings,
|
|
2487
|
+
run: function (mSettings, _vJourneys) {
|
|
2435
2488
|
var iJourneyParameterIndex = 1;
|
|
2436
2489
|
if (!Utils.isOfType(mSettings, Object)) {
|
|
2437
2490
|
iJourneyParameterIndex = 0;
|
|
@@ -2477,13 +2530,12 @@ sap.ui.predefine(
|
|
|
2477
2530
|
*
|
|
2478
2531
|
* By default, an instance of {@link sap.fe.test.BaseActions} will be returned.
|
|
2479
2532
|
*
|
|
2480
|
-
* @param {object} mSettings The settings object of the runner instance
|
|
2481
2533
|
* @returns {sap.ui.test.Opa} An Opa instance for the base actions
|
|
2482
2534
|
* @function
|
|
2483
2535
|
* @name sap.fe.test.JourneyRunner#getBaseActions
|
|
2484
2536
|
* @protected
|
|
2485
2537
|
*/
|
|
2486
|
-
getBaseActions: function (
|
|
2538
|
+
getBaseActions: function () {
|
|
2487
2539
|
return new BaseActions();
|
|
2488
2540
|
},
|
|
2489
2541
|
|
|
@@ -2495,13 +2547,12 @@ sap.ui.predefine(
|
|
|
2495
2547
|
*
|
|
2496
2548
|
* By default, an instance of {@link sap.fe.test.BaseAssertions} will be returned.
|
|
2497
2549
|
*
|
|
2498
|
-
* @param {object} mSettings The settings object of the runner instance
|
|
2499
2550
|
* @returns {sap.ui.test.Opa} An Opa instance for the base assertions
|
|
2500
2551
|
* @function
|
|
2501
2552
|
* @name sap.fe.test.JourneyRunner#getBaseAssertions
|
|
2502
2553
|
* @protected
|
|
2503
2554
|
*/
|
|
2504
|
-
getBaseAssertions: function (
|
|
2555
|
+
getBaseAssertions: function () {
|
|
2505
2556
|
return new BaseAssertions();
|
|
2506
2557
|
},
|
|
2507
2558
|
|
|
@@ -2546,7 +2597,7 @@ sap.ui.predefine(
|
|
|
2546
2597
|
aJourneys.forEach(function (vJourney) {
|
|
2547
2598
|
if (Utils.isOfType(vJourney, String)) {
|
|
2548
2599
|
pPromiseChain = pPromiseChain.then(function () {
|
|
2549
|
-
return new Promise(function (resolve
|
|
2600
|
+
return new Promise(function (resolve) {
|
|
2550
2601
|
sap.ui.require([vJourney], function (oJourney) {
|
|
2551
2602
|
resolve(oJourney);
|
|
2552
2603
|
});
|
|
@@ -2735,13 +2786,13 @@ sap.ui.predefine(
|
|
|
2735
2786
|
* @param {string} oPageDefinition.componentId The component id (defined in the target section for the list report within the manifest)
|
|
2736
2787
|
* @param {string} oPageDefinition.entitySet The entitySet (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
2737
2788
|
* @param {string} oPageDefinition.contextPath The contextPath (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
2738
|
-
* @param {...object} [
|
|
2789
|
+
* @param {...object} [_aInAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
2739
2790
|
* @returns {sap.fe.test.ListReport} A list report page definition
|
|
2740
2791
|
* @name sap.fe.test.ListReport
|
|
2741
2792
|
* @extends sap.fe.test.TemplatePage
|
|
2742
2793
|
* @public
|
|
2743
2794
|
*/
|
|
2744
|
-
function ListReport(oPageDefinition,
|
|
2795
|
+
function ListReport(oPageDefinition, _aInAdditionalPageDefinitions) {
|
|
2745
2796
|
var sAppId = oPageDefinition.appId,
|
|
2746
2797
|
sComponentId = oPageDefinition.componentId,
|
|
2747
2798
|
sContextPath = oPageDefinition.contextPath,
|
|
@@ -2915,11 +2966,10 @@ sap.ui.predefine(
|
|
|
2915
2966
|
/**
|
|
2916
2967
|
* TODO This function is only here for legacy reasons and therefore private. Use iGoToView instead.
|
|
2917
2968
|
*
|
|
2918
|
-
* @param {string} sName The name of the view within the List Report table
|
|
2919
2969
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
2920
2970
|
* @private
|
|
2921
2971
|
*/
|
|
2922
|
-
iOpenIconTabWithTitle: function (
|
|
2972
|
+
iOpenIconTabWithTitle: function () {
|
|
2923
2973
|
// return this.iGoToView(sName);
|
|
2924
2974
|
return OpaBuilder.create(this)
|
|
2925
2975
|
.timeout(1)
|
|
@@ -3289,11 +3339,10 @@ sap.ui.predefine(
|
|
|
3289
3339
|
/**
|
|
3290
3340
|
* TODO This function is only here for legacy reasons and therefore private. Use iCheckView instead.
|
|
3291
3341
|
*
|
|
3292
|
-
* @param {object} mProperties Object containing the text: property and any other properties to be checked
|
|
3293
3342
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
3294
3343
|
* @private
|
|
3295
3344
|
*/
|
|
3296
|
-
iSeeIconTabWithProperties: function (
|
|
3345
|
+
iSeeIconTabWithProperties: function () {
|
|
3297
3346
|
// return this.iCheckView(mProperties.text, mProperties);
|
|
3298
3347
|
return OpaBuilder.create(this)
|
|
3299
3348
|
.timeout(1)
|
|
@@ -3541,13 +3590,13 @@ sap.ui.predefine(
|
|
|
3541
3590
|
* @param {string} oPageDefinition.componentId The component id (defined in the target section for the list report within the manifest)
|
|
3542
3591
|
* @param {string} oPageDefinition.entitySet The entitySet (defined in the settings of the corresponding target component within the manifest)
|
|
3543
3592
|
* @param {string} oPageDefinition.contextPath The contextPath (optional)(defined in the settings of the corresponding target component within the manifest)
|
|
3544
|
-
* @param {...object} [
|
|
3593
|
+
* @param {...object} [_aAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
3545
3594
|
* @returns {sap.fe.test.ObjectPage} An object page page definition
|
|
3546
3595
|
* @name sap.fe.test.ObjectPage
|
|
3547
3596
|
* @extends sap.fe.test.TemplatePage
|
|
3548
3597
|
* @public
|
|
3549
3598
|
*/
|
|
3550
|
-
function ObjectPage(oPageDefinition,
|
|
3599
|
+
function ObjectPage(oPageDefinition, _aAdditionalPageDefinitions) {
|
|
3551
3600
|
var sAppId = oPageDefinition.appId,
|
|
3552
3601
|
sComponentId = oPageDefinition.componentId,
|
|
3553
3602
|
ViewId = sAppId + "::" + sComponentId,
|
|
@@ -4521,7 +4570,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4521
4570
|
actions: function (oTile) {
|
|
4522
4571
|
oTile.getTileViews()[0].$().trigger("tap");
|
|
4523
4572
|
},
|
|
4524
|
-
success: function (
|
|
4573
|
+
success: function () {
|
|
4525
4574
|
Opa5.assert.ok(true, Utils.formatMessage("Clicking on tile with target '{0}'", sTarget));
|
|
4526
4575
|
},
|
|
4527
4576
|
errorMessage: "Could not find the tile"
|
|
@@ -4552,7 +4601,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4552
4601
|
.description("Selecting item: " + sOption)
|
|
4553
4602
|
.execute();
|
|
4554
4603
|
},
|
|
4555
|
-
iLaunchExtendedParameterDialog: function (
|
|
4604
|
+
iLaunchExtendedParameterDialog: function () {
|
|
4556
4605
|
return OpaBuilder.create(this)
|
|
4557
4606
|
.hasType("sap.m.Button")
|
|
4558
4607
|
.isDialogElement()
|
|
@@ -4710,7 +4759,7 @@ sap.ui.predefine("sap/fe/test/Shell", ["sap/ui/test/OpaBuilder", "sap/ui/test/Op
|
|
|
4710
4759
|
/**
|
|
4711
4760
|
* Actions and assertions to be used with a page hosted in an FCL
|
|
4712
4761
|
*/
|
|
4713
|
-
sap.ui.predefine("sap/fe/test/Stubs", [
|
|
4762
|
+
sap.ui.predefine("sap/fe/test/Stubs", [], function () {
|
|
4714
4763
|
"use strict";
|
|
4715
4764
|
var Stubs = {
|
|
4716
4765
|
prepareStubs: function (oWindow) {
|
|
@@ -5044,13 +5093,13 @@ sap.ui.predefine(
|
|
|
5044
5093
|
/**
|
|
5045
5094
|
* @class Provides a test page definition for a template page with the corresponding parameters.
|
|
5046
5095
|
* @param {object | string} vViewId The viewId
|
|
5047
|
-
* @param {...object} [
|
|
5096
|
+
* @param {...object} [_aAdditionalPageDefinitions] Additional custom page functions, provided in an object containing <code>actions</code> and <code>assertions</code>
|
|
5048
5097
|
* @returns {sap.fe.test.TemplatePage} A list report page definition
|
|
5049
5098
|
* @name sap.fe.test.TemplatePage
|
|
5050
5099
|
* @hideconstructor
|
|
5051
5100
|
* @public
|
|
5052
5101
|
*/
|
|
5053
|
-
function TemplatePage(vViewId,
|
|
5102
|
+
function TemplatePage(vViewId, _aAdditionalPageDefinitions) {
|
|
5054
5103
|
var sViewId = Utils.isOfType(vViewId, String) ? vViewId : vViewId.viewId,
|
|
5055
5104
|
aAdditionalPages = Array.prototype.slice.call(arguments, 1);
|
|
5056
5105
|
|
|
@@ -5323,8 +5372,7 @@ sap.ui.predefine(
|
|
|
5323
5372
|
"sap/ui/core/util/XMLPreprocessor",
|
|
5324
5373
|
"sap/ui/core/XMLTemplateProcessor",
|
|
5325
5374
|
"sap/fe/macros/macroLibrary",
|
|
5326
|
-
"sap/fe/core/TemplateModel"
|
|
5327
|
-
"sap/fe/macros/ResourceModel"
|
|
5375
|
+
"sap/fe/core/TemplateModel"
|
|
5328
5376
|
],
|
|
5329
5377
|
function (ODataMetaModel, XMLPreprocessor, XMLTemplateProcessor, macroLibrary, TemplateModel) {
|
|
5330
5378
|
"use strict";
|
|
@@ -5377,7 +5425,7 @@ sap.ui.predefine(
|
|
|
5377
5425
|
oMetaModel = new ODataMetaModel(oRequestor, sServiceUrl + "$metadata", undefined, null);
|
|
5378
5426
|
|
|
5379
5427
|
//Switch of all plugins as we only template individual fragments in the test
|
|
5380
|
-
macroLibrary.
|
|
5428
|
+
macroLibrary.unregister();
|
|
5381
5429
|
if (useMacros) {
|
|
5382
5430
|
//Force option to use macros for some tests
|
|
5383
5431
|
macroLibrary.register();
|
|
@@ -5559,7 +5607,7 @@ sap.ui.predefine(
|
|
|
5559
5607
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
5560
5608
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
5561
5609
|
*/
|
|
5562
|
-
sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/generic", "sap/fe/core/controllerextensions/EditFlow", "sap/fe/core/controllerextensions/
|
|
5610
|
+
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
5611
|
"use strict";
|
|
5564
5612
|
|
|
5565
5613
|
var _exports = {};
|
|
@@ -5961,7 +6009,6 @@ sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/gener
|
|
|
5961
6009
|
function createMockController() {
|
|
5962
6010
|
const mocked = mock(Controller);
|
|
5963
6011
|
mocked._routing = mock(InternalRouting);
|
|
5964
|
-
mocked._editFlow = mock(InternalEditFlow);
|
|
5965
6012
|
mocked._sideEffects = mock(SideEffects);
|
|
5966
6013
|
mocked.editFlow = mock(EditFlow);
|
|
5967
6014
|
mocked.share = mock(Share);
|
|
@@ -5996,7 +6043,44 @@ sap.ui.predefine("sap/fe/test/UI5MockHelper", ["@sap-ux/jest-mock-ui5/dist/gener
|
|
|
5996
6043
|
controller
|
|
5997
6044
|
};
|
|
5998
6045
|
}
|
|
6046
|
+
|
|
6047
|
+
/**
|
|
6048
|
+
* To be used to load messages bundles for tests without app/page component.
|
|
6049
|
+
*
|
|
6050
|
+
* @param textID ID of the Text
|
|
6051
|
+
* @param parameters Array of parameters that are used to create the text
|
|
6052
|
+
* @param metaPath Entity set name or action name to overload a text
|
|
6053
|
+
* @returns Determined text
|
|
6054
|
+
*/
|
|
5999
6055
|
_exports.mockMVC = mockMVC;
|
|
6056
|
+
function getText(textID, parameters, metaPath) {
|
|
6057
|
+
const resourceModel = new ResourceModel({
|
|
6058
|
+
bundleName: "sap.fe.core.messagebundle",
|
|
6059
|
+
enhanceWith: [{
|
|
6060
|
+
bundleName: "sap.fe.macros.messagebundle"
|
|
6061
|
+
}, {
|
|
6062
|
+
bundleName: "sap.fe.templates.messagebundle"
|
|
6063
|
+
}],
|
|
6064
|
+
async: false
|
|
6065
|
+
});
|
|
6066
|
+
return resourceModel.getText(textID, parameters, metaPath);
|
|
6067
|
+
}
|
|
6068
|
+
|
|
6069
|
+
/**
|
|
6070
|
+
* Utility type to mock ResourceModel
|
|
6071
|
+
*/
|
|
6072
|
+
_exports.getText = getText;
|
|
6073
|
+
/**
|
|
6074
|
+
* Factory function to create a new MockView.
|
|
6075
|
+
*
|
|
6076
|
+
* @returns A new MockView
|
|
6077
|
+
*/
|
|
6078
|
+
function createMockResourceModel() {
|
|
6079
|
+
const mocked = mock(ResourceModel);
|
|
6080
|
+
mocked.getText = jest.fn().mockImplementation(getText);
|
|
6081
|
+
return mocked;
|
|
6082
|
+
}
|
|
6083
|
+
_exports.createMockResourceModel = createMockResourceModel;
|
|
6000
6084
|
return _exports;
|
|
6001
6085
|
}, false);
|
|
6002
6086
|
/*!
|
|
@@ -6736,7 +6820,7 @@ sap.ui.predefine(
|
|
|
6736
6820
|
|
|
6737
6821
|
Actions.prototype.iSelectItems = function (innerData, bClearSelection) {
|
|
6738
6822
|
if (typeof bClearSelection === "boolean") {
|
|
6739
|
-
bClearSelection = bClearSelection;
|
|
6823
|
+
bClearSelection = !!bClearSelection;
|
|
6740
6824
|
} else {
|
|
6741
6825
|
bClearSelection = true;
|
|
6742
6826
|
}
|
|
@@ -7081,25 +7165,17 @@ sap.ui.predefine("sap/fe/test/api/CollaborationAPI", ["sap/base/Log", "sap/fe/co
|
|
|
7081
7165
|
}
|
|
7082
7166
|
},
|
|
7083
7167
|
/**
|
|
7084
|
-
* Simulates that the user has deleted
|
|
7168
|
+
* Simulates that the user has deleted an object (child of draft root).
|
|
7169
|
+
*
|
|
7170
|
+
* @param objectPath The path of the object to delete
|
|
7085
7171
|
*/
|
|
7086
|
-
|
|
7172
|
+
deleteObject: function (objectPath) {
|
|
7087
7173
|
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) {
|
|
7174
|
+
const objectContext = this._getObjectContext(objectPath);
|
|
7175
|
+
objectContext.requestProperty("IsActiveEntity").then(() => {
|
|
7176
|
+
objectContext.delete();
|
|
7177
|
+
broadcastCollaborationMessage(Activity.Delete, objectPath, this._internalModel);
|
|
7178
|
+
}).catch(err => {
|
|
7103
7179
|
Log.error(err);
|
|
7104
7180
|
});
|
|
7105
7181
|
}
|
|
@@ -7108,7 +7184,10 @@ sap.ui.predefine("sap/fe/test/api/CollaborationAPI", ["sap/base/Log", "sap/fe/co
|
|
|
7108
7184
|
// Private methods
|
|
7109
7185
|
|
|
7110
7186
|
_getDraftContext: function () {
|
|
7111
|
-
return this.
|
|
7187
|
+
return this._getObjectContext(this._rootPath);
|
|
7188
|
+
},
|
|
7189
|
+
_getObjectContext: function (path) {
|
|
7190
|
+
return this._oModel.bindContext(path, undefined, {
|
|
7112
7191
|
$$patchWithoutSideEffects: true,
|
|
7113
7192
|
$$groupId: "$auto",
|
|
7114
7193
|
$$updateGroupId: "$auto"
|
|
@@ -8720,53 +8799,94 @@ sap.ui.predefine(
|
|
|
8720
8799
|
);
|
|
8721
8800
|
};
|
|
8722
8801
|
|
|
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 + "$"));
|
|
8802
|
+
function _checkIconTabBarBuilder(oValueHelpBuilder, idMatcher, mState) {
|
|
8803
|
+
var bSuccess = true;
|
|
8736
8804
|
|
|
8737
8805
|
if (mState && mState.visible === false) {
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8806
|
+
oValueHelpBuilder
|
|
8807
|
+
.hasChildren(
|
|
8808
|
+
OpaBuilder.create(this).hasConditional(
|
|
8809
|
+
function (oControl) {
|
|
8810
|
+
// in the visible=false case, there should never be a sap.m.IconTabBar --> let test fail
|
|
8811
|
+
// if a sap.m.IconTabBar is found, both tabs are visible (SearchSelect and DefineConditions)
|
|
8812
|
+
if (oControl.isA("sap.m.IconTabBar")) {
|
|
8813
|
+
bSuccess = false;
|
|
8814
|
+
return true;
|
|
8815
|
+
} else {
|
|
8816
|
+
return false;
|
|
8817
|
+
}
|
|
8818
|
+
},
|
|
8819
|
+
function (oSuccess) {
|
|
8820
|
+
return false;
|
|
8821
|
+
},
|
|
8822
|
+
function (oElse) {
|
|
8823
|
+
return true;
|
|
8824
|
+
}
|
|
8825
|
+
),
|
|
8826
|
+
false
|
|
8827
|
+
)
|
|
8828
|
+
.check(function () {
|
|
8829
|
+
return bSuccess;
|
|
8830
|
+
});
|
|
8742
8831
|
} else {
|
|
8743
|
-
|
|
8832
|
+
oValueHelpBuilder.hasChildren(OpaBuilder.create(this).hasType("sap.m.IconTabFilter").has(idMatcher), false);
|
|
8744
8833
|
}
|
|
8745
|
-
|
|
8746
|
-
return oApiInstance.prepareResult(oBuilder.execute());
|
|
8834
|
+
return oValueHelpBuilder;
|
|
8747
8835
|
}
|
|
8748
8836
|
|
|
8749
8837
|
/**
|
|
8750
|
-
* Checks the <code>
|
|
8838
|
+
* Checks the <code>Define conditions</code> tab in a value help dialog.
|
|
8839
|
+
* Please be aware that the tab control of the toolbar is checked.
|
|
8751
8840
|
*
|
|
8752
8841
|
* @param {object} [mState] Defines the expected state of the filter bar
|
|
8753
8842
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, that can be used for chaining statements
|
|
8754
8843
|
* @public
|
|
8755
8844
|
*/
|
|
8756
|
-
DialogValueHelpAssertions.prototype.
|
|
8757
|
-
|
|
8758
|
-
|
|
8845
|
+
DialogValueHelpAssertions.prototype.iCheckDefineConditions = function (mState) {
|
|
8846
|
+
var sIdSuffix = "-ITB--header-1",
|
|
8847
|
+
idMatcher = FEBuilder.Matchers.id(RegExp(sIdSuffix + "$")),
|
|
8848
|
+
oBuilder = _checkIconTabBarBuilder(this.getBuilder(), idMatcher, mState);
|
|
8759
8849
|
|
|
8850
|
+
return this.prepareResult(
|
|
8851
|
+
oBuilder
|
|
8852
|
+
.description(
|
|
8853
|
+
Utils.formatMessage(
|
|
8854
|
+
"Checking that the Define Conditions tab '{1}' on value help dialog '{0}' has state='{2}'",
|
|
8855
|
+
this.getIdentifier(),
|
|
8856
|
+
sIdSuffix,
|
|
8857
|
+
mState
|
|
8858
|
+
)
|
|
8859
|
+
)
|
|
8860
|
+
.execute()
|
|
8861
|
+
);
|
|
8862
|
+
};
|
|
8760
8863
|
/**
|
|
8761
|
-
* Checks the <code>
|
|
8864
|
+
* Checks the <code>Search and Select</code> tab in a value help dialog.
|
|
8865
|
+
* Please be aware that the tab control of the toolbar is checked.
|
|
8762
8866
|
*
|
|
8763
8867
|
* @param {object} [mState] Defines the expected state of the filter bar
|
|
8764
8868
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, that can be used for chaining statements
|
|
8765
8869
|
* @public
|
|
8766
8870
|
*/
|
|
8767
|
-
DialogValueHelpAssertions.prototype.
|
|
8768
|
-
|
|
8871
|
+
DialogValueHelpAssertions.prototype.iCheckSearchAndSelect = function (mState) {
|
|
8872
|
+
var sIdSuffix = "-ITB--header-0",
|
|
8873
|
+
idMatcher = FEBuilder.Matchers.id(RegExp(sIdSuffix + "$")),
|
|
8874
|
+
oBuilder = _checkIconTabBarBuilder(this.getBuilder(), idMatcher, mState);
|
|
8875
|
+
|
|
8876
|
+
return this.prepareResult(
|
|
8877
|
+
oBuilder
|
|
8878
|
+
.description(
|
|
8879
|
+
Utils.formatMessage(
|
|
8880
|
+
"Checking that the Search and Select tab '{1}' on value help dialog '{0}' has state='{2}'",
|
|
8881
|
+
this.getIdentifier(),
|
|
8882
|
+
sIdSuffix,
|
|
8883
|
+
mState
|
|
8884
|
+
)
|
|
8885
|
+
)
|
|
8886
|
+
.execute()
|
|
8887
|
+
);
|
|
8769
8888
|
};
|
|
8889
|
+
|
|
8770
8890
|
/**
|
|
8771
8891
|
* Checks the dialog.
|
|
8772
8892
|
*
|
|
@@ -9530,9 +9650,9 @@ sap.ui.predefine(
|
|
|
9530
9650
|
|
|
9531
9651
|
/**
|
|
9532
9652
|
* Checks if the focus is on the filter field.
|
|
9533
|
-
|
|
9653
|
+
*
|
|
9534
9654
|
* @param {string} [sFilterFieldLabel] The field label
|
|
9535
|
-
* @returns {object} The result of the {@link
|
|
9655
|
+
* @returns {object} The result of the {@link sa p.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
9536
9656
|
* @public
|
|
9537
9657
|
*/
|
|
9538
9658
|
|
|
@@ -9548,7 +9668,7 @@ sap.ui.predefine(
|
|
|
9548
9668
|
|
|
9549
9669
|
/**
|
|
9550
9670
|
* Checks if the focus is on the Go Button of the filter bar.
|
|
9551
|
-
|
|
9671
|
+
*
|
|
9552
9672
|
* @returns {object} The result of the {@link sap.ui.test.Opa5#waitFor} function, to be used for chained statements
|
|
9553
9673
|
* @public
|
|
9554
9674
|
*/
|
|
@@ -15337,17 +15457,17 @@ sap.ui.predefine(
|
|
|
15337
15457
|
// we need to do this to be able to retrieve the child of the FormElementWrapper when its child is not visible
|
|
15338
15458
|
return _getMainControls(oContent.getContent());
|
|
15339
15459
|
}
|
|
15340
|
-
if (oContent.isA("sap.fe.
|
|
15460
|
+
if (oContent.isA("sap.fe.macros.controls.FileWrapper")) {
|
|
15341
15461
|
return _getMainControls(oContent.getAvatar());
|
|
15342
15462
|
}
|
|
15343
|
-
if (oContent.isA("sap.fe.
|
|
15463
|
+
if (oContent.isA("sap.fe.macros.controls.FieldWrapper")) {
|
|
15344
15464
|
if (oContent.getEditMode() === "Display") {
|
|
15345
15465
|
return _getMainControls(oContent.getContentDisplay());
|
|
15346
15466
|
} else {
|
|
15347
15467
|
return _getMainControls(oContent.getContentEdit()[0]);
|
|
15348
15468
|
}
|
|
15349
15469
|
}
|
|
15350
|
-
if (oContent.isA("sap.fe.
|
|
15470
|
+
if (oContent.isA("sap.fe.macros.controls.ConditionalWrapper")) {
|
|
15351
15471
|
var oLink = oContent.getCondition() ? oContent.getContentTrue() : oContent.getContentFalse();
|
|
15352
15472
|
return _getMainControls(oLink);
|
|
15353
15473
|
}
|
|
@@ -16011,6 +16131,15 @@ sap.ui.predefine(
|
|
|
16011
16131
|
return oMdcTable ? _getColumnIndex(vColumn, oMdcTable) : -1;
|
|
16012
16132
|
}
|
|
16013
16133
|
|
|
16134
|
+
function _getTableForSelection(oRow) {
|
|
16135
|
+
var oUIControl = oRow,
|
|
16136
|
+
sTableType = oRow.getMetadata().getName() === "sap.ui.table.Row" ? "sap.ui.table.Table" : "sap.ui.mdc.Table";
|
|
16137
|
+
while (oUIControl && !oUIControl.isA(sTableType)) {
|
|
16138
|
+
oUIControl = oUIControl._feMdcTableWrapper || oUIControl.getParent();
|
|
16139
|
+
}
|
|
16140
|
+
return oUIControl;
|
|
16141
|
+
}
|
|
16142
|
+
|
|
16014
16143
|
function _getCell(oRow, iColumn) {
|
|
16015
16144
|
var oCell;
|
|
16016
16145
|
if (!oRow) {
|
|
@@ -16331,7 +16460,7 @@ sap.ui.predefine(
|
|
|
16331
16460
|
|
|
16332
16461
|
TableBuilder.prototype.doSelect = function (vRowMatcher) {
|
|
16333
16462
|
return this.doOnRows(vRowMatcher, function (oRow) {
|
|
16334
|
-
var oTable = oRow
|
|
16463
|
+
var oTable = _getTableForSelection(oRow);
|
|
16335
16464
|
// if several rows are selected, the table may be blocked by other events, e.g. tableRuntime.js --> setContexts
|
|
16336
16465
|
if (oTable.getBusy()) {
|
|
16337
16466
|
oTable.setBusy(false);
|
|
@@ -17073,7 +17202,7 @@ sap.ui.predefine(
|
|
|
17073
17202
|
oCellControl = _getCell(oRow, iColumn);
|
|
17074
17203
|
|
|
17075
17204
|
// if the cellControl is a FieldWrapper replace it by its active control (edit or display)
|
|
17076
|
-
if (oCellControl.isA("sap.fe.
|
|
17205
|
+
if (oCellControl.isA("sap.fe.macros.controls.FieldWrapper")) {
|
|
17077
17206
|
oCellControl =
|
|
17078
17207
|
oCellControl.getEditMode() === "Display"
|
|
17079
17208
|
? oCellControl.getContentDisplay()
|
|
@@ -17085,7 +17214,7 @@ sap.ui.predefine(
|
|
|
17085
17214
|
? oCellControl.getItems()[0].getContent().getContentDisplay()
|
|
17086
17215
|
: oCellControl.getItems()[0].getContent().getContentEdit()[0];
|
|
17087
17216
|
}
|
|
17088
|
-
if (oCellControl.isA("sap.fe.
|
|
17217
|
+
if (oCellControl.isA("sap.fe.macros.controls.ConditionalWrapper")) {
|
|
17089
17218
|
oCellControl = oCellControl.getCondition() ? oCellControl.getContentTrue() : oCellControl.getContentFalse();
|
|
17090
17219
|
}
|
|
17091
17220
|
|
|
@@ -17839,11 +17968,15 @@ sap.ui.predefine(
|
|
|
17839
17968
|
oUriParams = new UriParameters(window.location.href),
|
|
17840
17969
|
sBackendUrl = oUriParams.get("useBackendUrl"),
|
|
17841
17970
|
sProxyPrefix = sBackendUrl ? "/databinding/proxy/" + sBackendUrl.replace("://", "/") : "",
|
|
17842
|
-
bSuccess = false
|
|
17843
|
-
|
|
17844
|
-
|
|
17845
|
-
|
|
17846
|
-
|
|
17971
|
+
bSuccess = false;
|
|
17972
|
+
var sTenantID = "";
|
|
17973
|
+
if (window.__karma__ && window.__karma__.config && window.__karma__.config.ui5) {
|
|
17974
|
+
sTenantID = window.__karma__.config.ui5.shardIndex;
|
|
17975
|
+
} else {
|
|
17976
|
+
sTenantID = window.location.href.includes("sap-client")
|
|
17977
|
+
? new URL(window.location.href).searchParams.get("sap-client")
|
|
17978
|
+
: "default";
|
|
17979
|
+
}
|
|
17847
17980
|
|
|
17848
17981
|
return OpaBuilder.create(this)
|
|
17849
17982
|
.success(function () {
|
|
@@ -17982,12 +18115,12 @@ sap.ui.predefine("sap/fe/test/library", ["sap/ui/core/Core", "sap/ui/core/librar
|
|
|
17982
18115
|
controls: [],
|
|
17983
18116
|
elements: [],
|
|
17984
18117
|
// eslint-disable-next-line no-template-curly-in-string
|
|
17985
|
-
version: "1.
|
|
18118
|
+
version: "1.113.0",
|
|
17986
18119
|
noLibraryCSS: true
|
|
17987
18120
|
});
|
|
17988
18121
|
return thisLib;
|
|
17989
18122
|
}, false);
|
|
17990
18123
|
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.
|
|
18124
|
+
"sap/fe/test/manifest.json":'{"_version":"1.21.0","sap.app":{"id":"sap.fe.test","type":"library","embeds":[],"applicationVersion":{"version":"1.113.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
18125
|
});
|
|
17993
18126
|
//# sourceMappingURL=library-preload.js.map
|