@openui5/sap.ui.core 1.117.1 → 1.117.3
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/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +1 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +59 -42
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +7 -2
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +15 -20
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +15 -6
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +71 -47
- package/src/sap/ui/model/odata/v2/ODataModel.js +2 -3
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +5 -4
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/BeaconRequest.js +8 -10
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
- package/test/sap/ui/core/qunit/UIArea.qunit.js +25 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Component.qunit.js +12 -0
- package/test/sap/ui/core/qunit/odata/data/ODataModelFakeService.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +390 -16
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +143 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +2 -2
- package/test/sap/ui/core/qunit/performance/BeaconRequest.qunit.js +18 -2
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/relnotes/changes-1.117.json +87 -0
- package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
|
@@ -5430,7 +5430,7 @@ usePreliminaryContext : false}}">\
|
|
|
5430
5430
|
}).then(function () {
|
|
5431
5431
|
var oResetPromise;
|
|
5432
5432
|
|
|
5433
|
-
if (bWithFailedPOST && bPersistTechnicalMessages
|
|
5433
|
+
if (bWithFailedPOST && bPersistTechnicalMessages) {
|
|
5434
5434
|
that.expectMessages([{
|
|
5435
5435
|
code : "UF0",
|
|
5436
5436
|
fullTarget : "/SalesOrderSet('1')/ToLineItems('~key~')",
|
|
@@ -14254,6 +14254,57 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
|
|
|
14254
14254
|
});
|
|
14255
14255
|
});
|
|
14256
14256
|
|
|
14257
|
+
//*********************************************************************************************
|
|
14258
|
+
// Scenario: If a list binding contains created entries at the start of the list and the
|
|
14259
|
+
// binding's length is final, ensure that all data is requested if the user scrolls to the end
|
|
14260
|
+
// of the list.
|
|
14261
|
+
// BCP: 002075129400006921272023
|
|
14262
|
+
QUnit.test("Created entries at start: scrolling to the end reads all data", function (assert) {
|
|
14263
|
+
var oTable,
|
|
14264
|
+
oModel = createSalesOrdersModel({defaultCountMode : CountMode.Inline}),
|
|
14265
|
+
sView = '\
|
|
14266
|
+
<Table growing="true" growingThreshold="3" id="table" items="{/SalesOrderSet}">\
|
|
14267
|
+
<Input id="note" value="{Note}"/>\
|
|
14268
|
+
</Table>',
|
|
14269
|
+
that = this;
|
|
14270
|
+
|
|
14271
|
+
this.expectHeadRequest()
|
|
14272
|
+
.expectRequest("SalesOrderSet?$skip=0&$top=3&$inlinecount=allpages", {
|
|
14273
|
+
__count : "5",
|
|
14274
|
+
results : [
|
|
14275
|
+
{__metadata : {uri : "SalesOrderSet('1')"}, Note : "SO1", SalesOrderID : "1"},
|
|
14276
|
+
{__metadata : {uri : "SalesOrderSet('2')"}, Note : "SO2", SalesOrderID : "2"},
|
|
14277
|
+
{__metadata : {uri : "SalesOrderSet('3')"}, Note : "SO3", SalesOrderID : "3"}
|
|
14278
|
+
]
|
|
14279
|
+
})
|
|
14280
|
+
.expectValue("note", ["SO1", "SO2", "SO3"]);
|
|
14281
|
+
|
|
14282
|
+
return this.createView(assert, sView, oModel).then(function () {
|
|
14283
|
+
oTable = that.oView.byId("table");
|
|
14284
|
+
|
|
14285
|
+
that.expectValue("note", ["SONew", "SO1", "SO2", "SO3"]);
|
|
14286
|
+
|
|
14287
|
+
// code under test - create an item at the start of the list
|
|
14288
|
+
oTable.getBinding("items").create({Note : "SONew"});
|
|
14289
|
+
|
|
14290
|
+
return that.waitForChanges(assert);
|
|
14291
|
+
}).then(function () {
|
|
14292
|
+
that.expectRequest("SalesOrderSet?$skip=3&$top=2", {
|
|
14293
|
+
results : [
|
|
14294
|
+
{__metadata : {uri : "SalesOrderSet('4')"}, Note : "SO4", SalesOrderID : "4"},
|
|
14295
|
+
{__metadata : {uri : "SalesOrderSet('5')"}, Note : "SO5", SalesOrderID : "5"}
|
|
14296
|
+
]
|
|
14297
|
+
});
|
|
14298
|
+
|
|
14299
|
+
that.expectValue("note", ["SO3", "SO4", "SO5"], 3);
|
|
14300
|
+
|
|
14301
|
+
// code under test - scroll down to get all data from server
|
|
14302
|
+
oTable.requestItems();
|
|
14303
|
+
|
|
14304
|
+
return that.waitForChanges(assert);
|
|
14305
|
+
});
|
|
14306
|
+
});
|
|
14307
|
+
|
|
14257
14308
|
//*********************************************************************************************
|
|
14258
14309
|
// Scenario: If the table displays only transient entities (no threshold is set) and a new
|
|
14259
14310
|
// control filter is set on the table the number of available entities is properly displayed.
|
|
@@ -20209,4 +20260,95 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
|
|
|
20209
20260
|
return that.waitForChanges(assert);
|
|
20210
20261
|
});
|
|
20211
20262
|
});
|
|
20263
|
+
|
|
20264
|
+
//*********************************************************************************************
|
|
20265
|
+
// Scenario: If the server uses server side paging and the OData model uses "Client" mode all
|
|
20266
|
+
// data is requested up to the model size limit.
|
|
20267
|
+
// BCP: 2380127053
|
|
20268
|
+
[false, true].forEach(function (bShortRead) {
|
|
20269
|
+
QUnit.test("OperationMode.Client: with server side paging, short read:" + bShortRead, function (assert) {
|
|
20270
|
+
var oTable,
|
|
20271
|
+
iDataReceived = 0,
|
|
20272
|
+
iDataRequested = 0,
|
|
20273
|
+
iExpectedSize = bShortRead ? 15 : 30,
|
|
20274
|
+
oModel = createSalesOrdersModel({defaultOperationMode: "Client"}),
|
|
20275
|
+
sView = '\
|
|
20276
|
+
<t:Table id="table">\
|
|
20277
|
+
<Text id="note" text="{Note}"/>\
|
|
20278
|
+
</t:Table>',
|
|
20279
|
+
that = this;
|
|
20280
|
+
|
|
20281
|
+
function dataRequested() {
|
|
20282
|
+
iDataRequested += 1;
|
|
20283
|
+
}
|
|
20284
|
+
function dataReceived(oEvent) {
|
|
20285
|
+
var oEventData = oEvent.getParameter("data");
|
|
20286
|
+
|
|
20287
|
+
iDataReceived += 1;
|
|
20288
|
+
// responses are merged
|
|
20289
|
+
assert.strictEqual(oEventData.results.length, iExpectedSize);
|
|
20290
|
+
oEventData.results.forEach((oData, i) => {
|
|
20291
|
+
assert.strictEqual(oData.Note, "SO" + (i + 1));
|
|
20292
|
+
});
|
|
20293
|
+
assert.strictEqual(oEventData.__count, "" + iExpectedSize);
|
|
20294
|
+
}
|
|
20295
|
+
|
|
20296
|
+
oModel.setSizeLimit(30);
|
|
20297
|
+
|
|
20298
|
+
return this.createView(assert, sView, oModel).then(function () {
|
|
20299
|
+
function createItems(iFrom, iLength) {
|
|
20300
|
+
var i,
|
|
20301
|
+
aItems = [];
|
|
20302
|
+
|
|
20303
|
+
for (i = 0; i < iLength; i += 1) {
|
|
20304
|
+
aItems.push({
|
|
20305
|
+
__metadata: {uri : "SalesOrderSet('" + iFrom + "')"},
|
|
20306
|
+
Note: "SO" + iFrom,
|
|
20307
|
+
SalesOrderID: "" + iFrom
|
|
20308
|
+
});
|
|
20309
|
+
iFrom += 1;
|
|
20310
|
+
}
|
|
20311
|
+
|
|
20312
|
+
return aItems;
|
|
20313
|
+
}
|
|
20314
|
+
|
|
20315
|
+
that.expectHeadRequest()
|
|
20316
|
+
.expectRequest("SalesOrderSet", {
|
|
20317
|
+
__next: "/sap/opu/odata/sap/ZUI5_GWSAMPLE_BASIC/SalesOrderSet?$skiptoken=3",
|
|
20318
|
+
results: createItems(1, 3) // whitout $top server returns 3; in real maybe 100
|
|
20319
|
+
})
|
|
20320
|
+
.expectRequest("SalesOrderSet?$skip=3&$top=27", {
|
|
20321
|
+
// if $top is given server limit is used; here 10, in real maybe 5000
|
|
20322
|
+
__next: "/sap/opu/odata/sap/ZUI5_GWSAMPLE_BASIC/SalesOrderSet?$top=24$skiptoken=13",
|
|
20323
|
+
results: createItems(4, 10)
|
|
20324
|
+
})
|
|
20325
|
+
.expectRequest("SalesOrderSet?$skip=13&$top=17", {
|
|
20326
|
+
// no _next link, that means server returned all requestd entries; there may be
|
|
20327
|
+
// more on the server but the amount of data exceeds the model size limit
|
|
20328
|
+
results: createItems(14, bShortRead ? 2 : 17)
|
|
20329
|
+
});
|
|
20330
|
+
|
|
20331
|
+
oTable = that.oView.byId("table");
|
|
20332
|
+
// code under test - client mode reads all data
|
|
20333
|
+
oTable.bindRows({
|
|
20334
|
+
events: {
|
|
20335
|
+
dataRequested: dataRequested,
|
|
20336
|
+
dataReceived: dataReceived
|
|
20337
|
+
},
|
|
20338
|
+
filter: [new Filter("GrossAmount", FilterOperator.GT, 500)],
|
|
20339
|
+
path: "/SalesOrderSet",
|
|
20340
|
+
sorter: [new Sorter("CompanyCode", true)]
|
|
20341
|
+
});
|
|
20342
|
+
|
|
20343
|
+
return that.waitForChanges(assert);
|
|
20344
|
+
}).then(function () {
|
|
20345
|
+
var oBinding = oTable.getBinding("rows");
|
|
20346
|
+
|
|
20347
|
+
assert.strictEqual(oBinding.getLength(), iExpectedSize);
|
|
20348
|
+
assert.strictEqual(oBinding.getCount(), iExpectedSize);
|
|
20349
|
+
assert.strictEqual(iDataRequested, 1);
|
|
20350
|
+
assert.strictEqual(iDataReceived, 1);
|
|
20351
|
+
});
|
|
20352
|
+
});
|
|
20353
|
+
});
|
|
20212
20354
|
});
|
|
@@ -6709,7 +6709,7 @@ sap.ui.define([
|
|
|
6709
6709
|
.withExactArgs("~oAbortedError");
|
|
6710
6710
|
}
|
|
6711
6711
|
oModelMock.expects("getMessagesByEntity")
|
|
6712
|
-
.withExactArgs("~sKey",
|
|
6712
|
+
.withExactArgs("~sKey", true)
|
|
6713
6713
|
.returns("~aMessages");
|
|
6714
6714
|
oMessageManagerMock.expects("removeMessages").withExactArgs("~aMessages");
|
|
6715
6715
|
|
|
@@ -6766,7 +6766,7 @@ sap.ui.define([
|
|
|
6766
6766
|
.withExactArgs(sinon.match.same(oContext));
|
|
6767
6767
|
this.mock(oModel).expects("_removeEntity").withExactArgs("~sKey");
|
|
6768
6768
|
this.mock(oModel).expects("getMessagesByEntity")
|
|
6769
|
-
.withExactArgs("~sKey",
|
|
6769
|
+
.withExactArgs("~sKey", true)
|
|
6770
6770
|
.returns("~aMessages");
|
|
6771
6771
|
this.mock(sap.ui.getCore().getMessageManager()).expects("removeMessages")
|
|
6772
6772
|
.withExactArgs("~aMessages");
|
|
@@ -80,6 +80,14 @@ sap.ui.define(["sap/ui/performance/BeaconRequest"], function (BeaconRequest) {
|
|
|
80
80
|
QUnit.test("Send beacon on window close", function(assert) {
|
|
81
81
|
var done = assert.async();
|
|
82
82
|
assert.expect(2);
|
|
83
|
+
let resLoad, resArranged;
|
|
84
|
+
const pLoaded = Promise.all([
|
|
85
|
+
new Promise((res) => {
|
|
86
|
+
resLoad = res;
|
|
87
|
+
}), new Promise((res) => {
|
|
88
|
+
resArranged = res;
|
|
89
|
+
})
|
|
90
|
+
]);
|
|
83
91
|
|
|
84
92
|
// setup iframe which will apply a stub on BeaconRequest#send to check
|
|
85
93
|
// if it is called on the iframe's window unload event - defined in
|
|
@@ -92,18 +100,26 @@ sap.ui.define(["sap/ui/performance/BeaconRequest"], function (BeaconRequest) {
|
|
|
92
100
|
function arranged(msg) {
|
|
93
101
|
assert.equal(msg.data.token, "arranged", "BeaconRequest#send has been replaced");
|
|
94
102
|
window.removeEventListener("message", arranged);
|
|
95
|
-
|
|
96
|
-
oIframe.contentWindow.location.reload();
|
|
103
|
+
resArranged();
|
|
97
104
|
}
|
|
98
105
|
|
|
99
106
|
// checks the if the stub has been called
|
|
100
107
|
function assertions(msg) {
|
|
108
|
+
if (msg.data.token !== "called") {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
101
111
|
assert.equal(msg.data.token, "called", "BeaconRequest#send has been called");
|
|
102
112
|
window.removeEventListener("message", assertions);
|
|
103
113
|
done();
|
|
104
114
|
}
|
|
105
115
|
|
|
116
|
+
oIframe.onload = resLoad;
|
|
106
117
|
window.addEventListener("message", arranged);
|
|
118
|
+
|
|
119
|
+
pLoaded.then(() => {
|
|
120
|
+
window.addEventListener("message", assertions);
|
|
121
|
+
document.getElementById('qunit-fixture').removeChild(oIframe);
|
|
122
|
+
});
|
|
107
123
|
});
|
|
108
124
|
|
|
109
125
|
QUnit.test("Do not send beacon if the buffer is empty", function(assert) {
|
|
@@ -59,12 +59,6 @@ sap.ui.define(function() {
|
|
|
59
59
|
*/
|
|
60
60
|
page: "test-resources/sap/ui/core/qunit/Core_unavoidablyUsingEval.qunit.html"
|
|
61
61
|
},
|
|
62
|
-
CoreLock: {
|
|
63
|
-
title: "sap.ui.core.Core: Core unlocks unconditionally itself upon load/init",
|
|
64
|
-
ui5: {
|
|
65
|
-
libs: "sap.m"
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
62
|
/**
|
|
69
63
|
* The tests for the preload files all share the same test configuration.
|
|
70
64
|
* There is only one HTML test page, which is opened with different URL parameters.
|
|
@@ -130,7 +130,7 @@ sap.ui.define([
|
|
|
130
130
|
//*********************************************************************************************
|
|
131
131
|
QUnit.test("parseValue", function (assert) {
|
|
132
132
|
var oDate1 = UI5Date.getInstance(2003, 10, 6),
|
|
133
|
-
oDate2 = UI5Date.getInstance(2003, 11, 6, 23, 59, 59,
|
|
133
|
+
oDate2 = UI5Date.getInstance(2003, 11, 6, 23, 59, 59, 0),
|
|
134
134
|
oDateInterval = new DateInterval({format: "yMMMd"});
|
|
135
135
|
|
|
136
136
|
assert.deepEqual(oDateInterval.parseValue("", "string"), [null, null],
|
|
@@ -158,7 +158,7 @@ sap.ui.define([
|
|
|
158
158
|
QUnit.test("parseValue: UTC", function (assert) {
|
|
159
159
|
var oDateInterval = new DateInterval({UTC: true}),
|
|
160
160
|
oUTCDate1 = UI5Date.getInstance(Date.UTC(2003, 10, 6, 0, 0, 0, 0)),
|
|
161
|
-
oUTCDate2 = UI5Date.getInstance(Date.UTC(2003, 11, 6, 23, 59, 59,
|
|
161
|
+
oUTCDate2 = UI5Date.getInstance(Date.UTC(2003, 11, 6, 23, 59, 59, 0));
|
|
162
162
|
|
|
163
163
|
// code under test
|
|
164
164
|
assert.deepEqual(oDateInterval.parseValue("Nov 6, 2003 - Dec 6, 2003", "string"), [oUTCDate1, oUTCDate2]);
|
|
@@ -123,5 +123,92 @@
|
|
|
123
123
|
]
|
|
124
124
|
}
|
|
125
125
|
]
|
|
126
|
+
},
|
|
127
|
+
"1.117.2": {
|
|
128
|
+
"date": "October 2023",
|
|
129
|
+
"notes": [
|
|
130
|
+
{
|
|
131
|
+
"id": "35f5ee9865ab77db23321440812472799586f9dd",
|
|
132
|
+
"type": "FIX",
|
|
133
|
+
"text": " sap.ui.model.odata.v2.ODataListBinding#loadData: read all data (up to model size limit) in \"Client\" mode",
|
|
134
|
+
"references": [
|
|
135
|
+
{
|
|
136
|
+
"type": "BCP",
|
|
137
|
+
"reference": "2380127053"
|
|
138
|
+
}
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "61138d76952718c7461d311c8d6879f0b337dedb",
|
|
143
|
+
"type": "FIX",
|
|
144
|
+
"text": " sap.ui.model.type.DateInterval#parseValue: no milliseconds at interval end",
|
|
145
|
+
"references": [
|
|
146
|
+
{
|
|
147
|
+
"type": "BCP",
|
|
148
|
+
"reference": "002075129400006908592023"
|
|
149
|
+
}
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "e548182650511d0232c32dac93c312d5b78bb7b4",
|
|
154
|
+
"type": "FIX",
|
|
155
|
+
"text": " sap.ui.model.odata.v2.ODataListBinding#_getSkipAndTop: fix calculation of \"iLimit\"",
|
|
156
|
+
"references": [
|
|
157
|
+
{
|
|
158
|
+
"type": "BCP",
|
|
159
|
+
"reference": "002075129400006921272023"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "17c4c620e67233d18911e2369c9d29547d7e4a93",
|
|
165
|
+
"type": "FIX",
|
|
166
|
+
"text": " Fix Core Qunit tests",
|
|
167
|
+
"references": [
|
|
168
|
+
{
|
|
169
|
+
"type": "BCP",
|
|
170
|
+
"reference": ""
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
]
|
|
175
|
+
},
|
|
176
|
+
"1.117.3": {
|
|
177
|
+
"date": "November 2023",
|
|
178
|
+
"notes": [
|
|
179
|
+
{
|
|
180
|
+
"id": "80b8a198488fa04923bbfe835ff31fe159b4d7e2",
|
|
181
|
+
"type": "FIX",
|
|
182
|
+
"text": " Stabilize QUnit test for BeaconRequest",
|
|
183
|
+
"references": [
|
|
184
|
+
{
|
|
185
|
+
"type": "BCP",
|
|
186
|
+
"reference": "2370118287"
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"id": "b7e444c6657e8768be7af233651cdb73e3dc03b2",
|
|
192
|
+
"type": "FIX",
|
|
193
|
+
"text": " sap.ui.model.odata.v2.ODataModel#resetChanges: do not remove persistent messages",
|
|
194
|
+
"references": [
|
|
195
|
+
{
|
|
196
|
+
"type": "BCP",
|
|
197
|
+
"reference": "2370086388"
|
|
198
|
+
}
|
|
199
|
+
]
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"id": "ef142c77cae7d1c6cdc76853b925dafa6ed8c315",
|
|
203
|
+
"type": "FEATURE",
|
|
204
|
+
"text": " Prepare for upcoming 'unload' event deprecation and deprecate APIs 'onWindowBeforeUnload', 'onWindowUnload' and 'onWindowError' in 'sap/ui/core/Component'",
|
|
205
|
+
"references": [
|
|
206
|
+
{
|
|
207
|
+
"type": "BCP",
|
|
208
|
+
"reference": ""
|
|
209
|
+
}
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
]
|
|
126
213
|
}
|
|
127
214
|
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*global QUnit */
|
|
2
|
-
sap.ui.define([
|
|
3
|
-
"sap/m/Button",
|
|
4
|
-
"sap/ui/thirdparty/jquery"
|
|
5
|
-
], function(Button, jQuery) {
|
|
6
|
-
"use strict";
|
|
7
|
-
|
|
8
|
-
// Lock the Core.
|
|
9
|
-
// This can be done anywhen after the Core has been loaded and executed, potentially
|
|
10
|
-
// before it has been initialized
|
|
11
|
-
sap.ui.getCore().lock();
|
|
12
|
-
|
|
13
|
-
// create some UI that shows whether lock/unlock works or not
|
|
14
|
-
var oButton = new Button({
|
|
15
|
-
id : "button",
|
|
16
|
-
text : "Click",
|
|
17
|
-
tooltip : "This SAPUI5 Button should be 'locked' until the Core is explicitly unlocked"
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
/*
|
|
21
|
-
* the following is a workaround that applications can implement
|
|
22
|
-
|
|
23
|
-
sap.ui.getCore().attachInit(function() {
|
|
24
|
-
// we have to use setTimeout as the unanted unlock happens just after init events have been processed
|
|
25
|
-
setTimeout(function() {
|
|
26
|
-
sap.ui.getCore().lock();
|
|
27
|
-
}, 10);
|
|
28
|
-
} );
|
|
29
|
-
|
|
30
|
-
/* */
|
|
31
|
-
|
|
32
|
-
QUnit.module("Check for Unlocked Core");
|
|
33
|
-
|
|
34
|
-
QUnit.test("Control Events should be blocked depending on Core lock", function(assert) {
|
|
35
|
-
var pressed = false;
|
|
36
|
-
oButton.attachPress(function() {
|
|
37
|
-
pressed = true;
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
assert.ok(!pressed, "Button must not have fired 'press' yet");
|
|
41
|
-
jQuery("#button").trigger("focus").trigger("click");
|
|
42
|
-
assert.ok(!pressed, "Button still must not have fired 'press'");
|
|
43
|
-
|
|
44
|
-
sap.ui.getCore().unlock();
|
|
45
|
-
|
|
46
|
-
assert.ok(!pressed, "Button still must not have fired 'press'");
|
|
47
|
-
jQuery("#button").trigger("focus").trigger("tap");
|
|
48
|
-
assert.ok(pressed, "Button should have fired 'press'");
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
sap.ui.getCore().attachInit(function() {
|
|
52
|
-
// create content div
|
|
53
|
-
var oDIV = document.createElement("div");
|
|
54
|
-
oDIV.id = "content";
|
|
55
|
-
document.body.appendChild(oDIV);
|
|
56
|
-
|
|
57
|
-
oButton.placeAt("content");
|
|
58
|
-
sap.ui.getCore().applyChanges();
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
});
|