@openui5/sap.ui.core 1.120.5 → 1.120.6
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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/getCompatibilityVersion.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/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.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 +1 -1
- 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/ODataModel.js +54 -4
- 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 +1 -1
- 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/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/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +110 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +98 -11
- package/test/sap/ui/core/relnotes/changes-1.120.json +10 -0
|
@@ -21981,4 +21981,114 @@ ToProduct/ToSupplier/BusinessPartnerID\'}}">\
|
|
|
21981
21981
|
|
|
21982
21982
|
return this.createView(assert, sView, oModel);
|
|
21983
21983
|
});
|
|
21984
|
+
|
|
21985
|
+
//*********************************************************************************************
|
|
21986
|
+
// Scenario: Custom headers are applied to *all* change requests when the $batch containing them is sent on
|
|
21987
|
+
// ODataModel#submitChangesWithChangeHeaders.
|
|
21988
|
+
// SNOW: CS20230004859105
|
|
21989
|
+
QUnit.test("ODataModel#submitChangesWithChangeHeaders: Custom headers for change requests", function (assert) {
|
|
21990
|
+
var oModel = createSalesOrdersModel({
|
|
21991
|
+
defaultBindingMode : BindingMode.TwoWay,
|
|
21992
|
+
refreshAfterChange : false // suppress GETs on collection after POST to reduce test complexity
|
|
21993
|
+
}),
|
|
21994
|
+
mModelHeaders = {
|
|
21995
|
+
"my-custom0" : "~custom0Global",
|
|
21996
|
+
"my-custom1" : "~custom1Global",
|
|
21997
|
+
"my-custom2" : "~custom2Global"
|
|
21998
|
+
},
|
|
21999
|
+
sView = '\
|
|
22000
|
+
<t:Table id="table" rows="{/SalesOrderSet}" visibleRowCount="2">\
|
|
22001
|
+
<Text id="id" text="{SalesOrderID}" />\
|
|
22002
|
+
<Input id="note" value="{Note}" />\
|
|
22003
|
+
</t:Table>',
|
|
22004
|
+
that = this;
|
|
22005
|
+
|
|
22006
|
+
this.expectHeadRequest(mModelHeaders)
|
|
22007
|
+
.expectRequest({
|
|
22008
|
+
headers : mModelHeaders,
|
|
22009
|
+
requestUri : "SalesOrderSet?$skip=0&$top=102"
|
|
22010
|
+
}, {
|
|
22011
|
+
results : [{
|
|
22012
|
+
__metadata : { uri : "/SalesOrderSet('1')" },
|
|
22013
|
+
SalesOrderID : "1",
|
|
22014
|
+
Note : "foo"
|
|
22015
|
+
}, {
|
|
22016
|
+
__metadata : { uri : "/SalesOrderSet('2')" },
|
|
22017
|
+
SalesOrderID : "2",
|
|
22018
|
+
Note : "bar"
|
|
22019
|
+
}]
|
|
22020
|
+
})
|
|
22021
|
+
.expectValue("id", ["1", "2"])
|
|
22022
|
+
.expectValue("note", ["foo", "bar"]);
|
|
22023
|
+
|
|
22024
|
+
oModel.setHeaders(mModelHeaders); // set global custom headers
|
|
22025
|
+
return this.createView(assert, sView, oModel).then(function () {
|
|
22026
|
+
that.expectRequest({
|
|
22027
|
+
data : {
|
|
22028
|
+
__metadata : { "uri": "/SalesOrderSet('1')" },
|
|
22029
|
+
Note : "baz"
|
|
22030
|
+
},
|
|
22031
|
+
headers : {
|
|
22032
|
+
"my-custom0" : "~custom0Global",
|
|
22033
|
+
"my-custom1" : "~custom1Global",
|
|
22034
|
+
"my-custom2" : "~custom2Change",
|
|
22035
|
+
"my-custom-change" : "~customChange"
|
|
22036
|
+
},
|
|
22037
|
+
key : "SalesOrderSet('1')",
|
|
22038
|
+
method : "MERGE",
|
|
22039
|
+
requestUri : "SalesOrderSet('1')"
|
|
22040
|
+
}, NO_CONTENT)
|
|
22041
|
+
.expectRequest({
|
|
22042
|
+
created : true,
|
|
22043
|
+
data : {
|
|
22044
|
+
__metadata : { type : "GWSAMPLE_BASIC.SalesOrder" }
|
|
22045
|
+
},
|
|
22046
|
+
headers : {
|
|
22047
|
+
"my-create" : "~create",
|
|
22048
|
+
"my-custom0" : "~custom0Create",
|
|
22049
|
+
"my-custom1" : "~custom1Global",
|
|
22050
|
+
"my-custom2" : "~custom2Change",
|
|
22051
|
+
"my-custom-change" : "~customChange"
|
|
22052
|
+
},
|
|
22053
|
+
method : "POST",
|
|
22054
|
+
requestUri : "SalesOrderSet"
|
|
22055
|
+
}, {
|
|
22056
|
+
data : {
|
|
22057
|
+
__metadata : { uri : "SalesOrderSet('3')" },
|
|
22058
|
+
SalesOrderID : "3"
|
|
22059
|
+
},
|
|
22060
|
+
statusCode : 201
|
|
22061
|
+
})
|
|
22062
|
+
.expectRequest({
|
|
22063
|
+
headers : {
|
|
22064
|
+
"my-remove" : "~remove",
|
|
22065
|
+
"my-custom0" : "~custom0Remove",
|
|
22066
|
+
"my-custom1" : "~custom1Global",
|
|
22067
|
+
"my-custom2" : "~custom2Change",
|
|
22068
|
+
"my-custom-change" : "~customChange"
|
|
22069
|
+
},
|
|
22070
|
+
method : "DELETE",
|
|
22071
|
+
requestUri : "SalesOrderSet('2')"
|
|
22072
|
+
}, NO_CONTENT)
|
|
22073
|
+
.expectValue("id", "", 1)
|
|
22074
|
+
.expectValue("note", ["baz", ""]);
|
|
22075
|
+
|
|
22076
|
+
// code under test: update (via two-way binding), createEntry, remove apply headers from
|
|
22077
|
+
// global model headers, headers from API calls and submitChangesWithChangeHeaders in expected prio
|
|
22078
|
+
that.oView.byId("table").getRows()[0].getCells()[1].setValue("baz");
|
|
22079
|
+
oModel.createEntry("/SalesOrderSet", {
|
|
22080
|
+
properties : {},
|
|
22081
|
+
headers : {"my-create" : "~create", "my-custom0" : "~custom0Create"}
|
|
22082
|
+
});
|
|
22083
|
+
oModel.remove("/SalesOrderSet('2')", {
|
|
22084
|
+
groupId : "changes", // use same batch group as update and create
|
|
22085
|
+
headers : {"my-remove" : "~remove", "my-custom0" : "~custom0Remove"}
|
|
22086
|
+
});
|
|
22087
|
+
oModel.submitChangesWithChangeHeaders(
|
|
22088
|
+
{changeHeaders : {"my-custom-change" : "~customChange", "my-custom2" : "~custom2Change"}}
|
|
22089
|
+
);
|
|
22090
|
+
|
|
22091
|
+
return that.waitForChanges(assert);
|
|
22092
|
+
});
|
|
22093
|
+
});
|
|
21984
22094
|
});
|
|
@@ -2905,10 +2905,13 @@ sap.ui.define([
|
|
|
2905
2905
|
|
|
2906
2906
|
//*********************************************************************************************
|
|
2907
2907
|
[false, true].forEach(function (bExpandRequest, i) {
|
|
2908
|
-
|
|
2908
|
+
var sTitle = "_processRequestQueue: push expandRequest to queue, " + i + ", consider change headers";
|
|
2909
|
+
|
|
2910
|
+
QUnit.test(sTitle, function (assert) {
|
|
2909
2911
|
var oRequest = {
|
|
2910
2912
|
data : "~data",
|
|
2911
|
-
expandRequest : bExpandRequest ? "~expandRequest" : undefined
|
|
2913
|
+
expandRequest : bExpandRequest ? "~expandRequest" : undefined,
|
|
2914
|
+
headers : "~headers"
|
|
2912
2915
|
},
|
|
2913
2916
|
oChange = {
|
|
2914
2917
|
parts : [{
|
|
@@ -2938,6 +2941,7 @@ sap.ui.define([
|
|
|
2938
2941
|
|
|
2939
2942
|
this.mock(oModel).expects("_collectChangedEntities")
|
|
2940
2943
|
.withExactArgs(sinon.match.same(oRequestGroup), {}, {});
|
|
2944
|
+
this.mock(_Helper).expects("extend").withExactArgs("~headers", "~changeHeaders");
|
|
2941
2945
|
this.mock(oModel).expects("getKey").withExactArgs("~data").returns("~key");
|
|
2942
2946
|
this.mock(oModel).expects("increaseLaundering").withExactArgs("/~key", "~data");
|
|
2943
2947
|
this.mock(oModel).expects("removeInternalMetadata").withExactArgs("~data");
|
|
@@ -2955,7 +2959,7 @@ sap.ui.define([
|
|
|
2955
2959
|
|
|
2956
2960
|
// code under test
|
|
2957
2961
|
ODataModel.prototype._processRequestQueue.call(oModel, mRequests, "~sGroupId", "~fnSuccess",
|
|
2958
|
-
"~fnError");
|
|
2962
|
+
"~fnError", "~changeHeaders");
|
|
2959
2963
|
});
|
|
2960
2964
|
});
|
|
2961
2965
|
|
|
@@ -7019,7 +7023,7 @@ sap.ui.define([
|
|
|
7019
7023
|
this.mock(oModel.oMetadata).expects("loaded").withExactArgs().returns(oMetadataPromise);
|
|
7020
7024
|
|
|
7021
7025
|
// code under test
|
|
7022
|
-
ODataModel.prototype.
|
|
7026
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel);
|
|
7023
7027
|
|
|
7024
7028
|
// async, after metadata loaded promise is resolved
|
|
7025
7029
|
this.mock(oModel).expects("getContext").withExactArgs("/~sKey").returns(oContext);
|
|
@@ -7035,7 +7039,7 @@ sap.ui.define([
|
|
|
7035
7039
|
/*oRequestHandle*/sinon.match.object, oFixture.expectedRefreshAfterChange);
|
|
7036
7040
|
this.mock(oModel).expects("_processRequestQueue")
|
|
7037
7041
|
.withExactArgs(sinon.match.same(oModel.mDeferredRequests), undefined, undefined,
|
|
7038
|
-
undefined);
|
|
7042
|
+
undefined, undefined);
|
|
7039
7043
|
|
|
7040
7044
|
return oMetadataPromise.then(function () {
|
|
7041
7045
|
assert.strictEqual(oRequest.key, "~sKey");
|
|
@@ -7095,7 +7099,7 @@ sap.ui.define([
|
|
|
7095
7099
|
this.mock(oModel.oMetadata).expects("loaded").withExactArgs().returns(oMetadataPromise);
|
|
7096
7100
|
|
|
7097
7101
|
// code under test
|
|
7098
|
-
ODataModel.prototype.
|
|
7102
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel, /*mParameters*/undefined);
|
|
7099
7103
|
|
|
7100
7104
|
// async, after metadata loaded promise is resolved
|
|
7101
7105
|
this.mock(oModel).expects("getContext").withExactArgs("/~sKey").returns(oContext);
|
|
@@ -7113,7 +7117,7 @@ sap.ui.define([
|
|
|
7113
7117
|
/*oRequestHandle*/sinon.match.object, "~bRefreshAfterChangeFromModel");
|
|
7114
7118
|
this.mock(oModel).expects("_processRequestQueue")
|
|
7115
7119
|
.withExactArgs(sinon.match.same(oModel.mDeferredRequests), undefined,
|
|
7116
|
-
sinon.match.func, undefined)
|
|
7120
|
+
sinon.match.func, undefined, undefined)
|
|
7117
7121
|
.callsFake(function (mDeferredRequests, sGroupId, fnSuccess0, fnError) {
|
|
7118
7122
|
fnSuccess = fnSuccess0;
|
|
7119
7123
|
});
|
|
@@ -7182,7 +7186,7 @@ sap.ui.define([
|
|
|
7182
7186
|
this.mock(oModel.oMetadata).expects("loaded").withExactArgs().returns(oMetadataPromise);
|
|
7183
7187
|
|
|
7184
7188
|
// code under test
|
|
7185
|
-
ODataModel.prototype.
|
|
7189
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel, mParameters);
|
|
7186
7190
|
|
|
7187
7191
|
// async, after metadata loaded promise is resolved
|
|
7188
7192
|
this.mock(oModel).expects("getContext").withExactArgs("/~sKey").returns(oContext);
|
|
@@ -7200,7 +7204,7 @@ sap.ui.define([
|
|
|
7200
7204
|
/*oRequestHandle*/sinon.match.object, "~bRefreshAfterChangeFromModel");
|
|
7201
7205
|
this.mock(oModel).expects("_processRequestQueue")
|
|
7202
7206
|
.withExactArgs(sinon.match.same(oModel.mDeferredRequests), "~groupId",
|
|
7203
|
-
sinon.match.func, undefined)
|
|
7207
|
+
sinon.match.func, undefined, undefined)
|
|
7204
7208
|
.callsFake(function (mDeferredRequests, sGroupId, fnSuccess0, fnError) {
|
|
7205
7209
|
fnSuccess = fnSuccess0;
|
|
7206
7210
|
});
|
|
@@ -7239,7 +7243,7 @@ sap.ui.define([
|
|
|
7239
7243
|
this.mock(oModel.oMetadata).expects("loaded").withExactArgs().returns(oMetadataPromise);
|
|
7240
7244
|
|
|
7241
7245
|
// code under test
|
|
7242
|
-
ODataModel.prototype.
|
|
7246
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel);
|
|
7243
7247
|
|
|
7244
7248
|
// async, after metadata loaded promise is resolved
|
|
7245
7249
|
this.mock(oModel).expects("getContext").withExactArgs("/~sKey").returns(oContext);
|
|
@@ -7251,12 +7255,95 @@ sap.ui.define([
|
|
|
7251
7255
|
assert.deepEqual(mDeferredRequests, {});
|
|
7252
7256
|
|
|
7253
7257
|
return oModel.mDeferredRequests === mDeferredRequests;
|
|
7254
|
-
}), undefined, undefined, undefined);
|
|
7258
|
+
}), undefined, undefined, undefined, undefined);
|
|
7255
7259
|
|
|
7256
7260
|
return oMetadataPromise;
|
|
7257
7261
|
});
|
|
7258
7262
|
});
|
|
7259
7263
|
|
|
7264
|
+
//*********************************************************************************************
|
|
7265
|
+
QUnit.test("submitChanges: delegate to submitChangesWithHeaders", function (assert) {
|
|
7266
|
+
var oModel = {
|
|
7267
|
+
submitChangesWithChangeHeaders : function () {}
|
|
7268
|
+
},
|
|
7269
|
+
oModelMock = this.mock(oModel),
|
|
7270
|
+
mParameters = {
|
|
7271
|
+
batchGroupId : "~batchGroupId",
|
|
7272
|
+
changeHeaders : "~changeHeaders", // only considered in direct call to submitChangesWithChangeHeaders
|
|
7273
|
+
error : "~error",
|
|
7274
|
+
groupId : "~groupId",
|
|
7275
|
+
merge : "~merge",
|
|
7276
|
+
success : "~success",
|
|
7277
|
+
unknown : "~unknown"
|
|
7278
|
+
},
|
|
7279
|
+
mPassedParameters = {
|
|
7280
|
+
batchGroupId : "~batchGroupId",
|
|
7281
|
+
error : "~error",
|
|
7282
|
+
groupId : "~groupId",
|
|
7283
|
+
merge : "~merge",
|
|
7284
|
+
success : "~success"
|
|
7285
|
+
};
|
|
7286
|
+
|
|
7287
|
+
oModelMock.expects("submitChangesWithChangeHeaders").withExactArgs(undefined).returns("~requestHandle");
|
|
7288
|
+
|
|
7289
|
+
// code under test
|
|
7290
|
+
assert.strictEqual(ODataModel.prototype.submitChanges.call(oModel), "~requestHandle");
|
|
7291
|
+
|
|
7292
|
+
oModelMock.expects("submitChangesWithChangeHeaders").withExactArgs(mPassedParameters).returns("~requestHandle");
|
|
7293
|
+
|
|
7294
|
+
// code under test
|
|
7295
|
+
assert.strictEqual(ODataModel.prototype.submitChanges.call(oModel, mParameters), "~requestHandle");
|
|
7296
|
+
});
|
|
7297
|
+
|
|
7298
|
+
//*********************************************************************************************
|
|
7299
|
+
QUnit.test("submitChangesWithHeaders: propagates change headers", function (assert) {
|
|
7300
|
+
var mChangeHeaders = {header : "headerValue"},
|
|
7301
|
+
oMetadataPromise = Promise.resolve(),
|
|
7302
|
+
oModel = {
|
|
7303
|
+
mChangedEntities : {},
|
|
7304
|
+
mDeferredRequests : {},
|
|
7305
|
+
oMetadata : {
|
|
7306
|
+
loaded : function () {}
|
|
7307
|
+
},
|
|
7308
|
+
_isHeaderPrivate : function () {},
|
|
7309
|
+
_processRequestQueue : function () {},
|
|
7310
|
+
getBindings : function () {}
|
|
7311
|
+
};
|
|
7312
|
+
|
|
7313
|
+
this.mock(oModel).expects("_isHeaderPrivate").withExactArgs("header").returns(false);
|
|
7314
|
+
this.mock(oModel).expects("getBindings").withExactArgs().returns([]);
|
|
7315
|
+
this.mock(oModel.oMetadata).expects("loaded").withExactArgs().returns(oMetadataPromise);
|
|
7316
|
+
this.mock(oModel).expects("_processRequestQueue")
|
|
7317
|
+
.withExactArgs(sinon.match.same(oModel.mDeferredRequests), undefined, undefined, undefined,
|
|
7318
|
+
sinon.match.same(mChangeHeaders));
|
|
7319
|
+
|
|
7320
|
+
// code under test
|
|
7321
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel, {changeHeaders : mChangeHeaders});
|
|
7322
|
+
|
|
7323
|
+
return oMetadataPromise;
|
|
7324
|
+
});
|
|
7325
|
+
|
|
7326
|
+
//*********************************************************************************************
|
|
7327
|
+
QUnit.test("submitChangesWithHeaders: disallow private headers as change headers", function (assert) {
|
|
7328
|
+
var mChangeHeaders = {
|
|
7329
|
+
notPrivate0 : "n0",
|
|
7330
|
+
private0 : "p0",
|
|
7331
|
+
notPrivate1 : "n1"
|
|
7332
|
+
},
|
|
7333
|
+
oModel = {
|
|
7334
|
+
_isHeaderPrivate : function () {}
|
|
7335
|
+
},
|
|
7336
|
+
oModelMock = this.mock(oModel);
|
|
7337
|
+
|
|
7338
|
+
oModelMock.expects("_isHeaderPrivate").withExactArgs("notPrivate0").returns(false);
|
|
7339
|
+
oModelMock.expects("_isHeaderPrivate").withExactArgs("private0").returns(true);
|
|
7340
|
+
|
|
7341
|
+
// code under test
|
|
7342
|
+
assert.throws(function () {
|
|
7343
|
+
ODataModel.prototype.submitChangesWithChangeHeaders.call(oModel, {changeHeaders : mChangeHeaders});
|
|
7344
|
+
}, new Error("Must not use private header: private0"));
|
|
7345
|
+
});
|
|
7346
|
+
|
|
7260
7347
|
//*********************************************************************************************
|
|
7261
7348
|
QUnit.test("setProperty: deferred request", function (assert) {
|
|
7262
7349
|
var oRequestQueuedPromise,
|
|
@@ -715,5 +715,15 @@
|
|
|
715
715
|
"text": " sap.ui.model.analytics.AnalyticalBinding: handle properties of type Edm.time in grouping"
|
|
716
716
|
}
|
|
717
717
|
]
|
|
718
|
+
},
|
|
719
|
+
"1.120.6": {
|
|
720
|
+
"date": "February 2024",
|
|
721
|
+
"notes": [
|
|
722
|
+
{
|
|
723
|
+
"id": "e6ce2912af430cea8ae775464d9c588f1433704a",
|
|
724
|
+
"type": "FIX",
|
|
725
|
+
"text": " sap.ui.model.odata.v2.ODataModel#submitChangesWithHeaders: ensure change requests use custom headers"
|
|
726
|
+
}
|
|
727
|
+
]
|
|
718
728
|
}
|
|
719
729
|
}
|