@openui5/sap.ui.core 1.120.18 → 1.120.20
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/messagebundle_en_US_saptrc.properties +294 -282
- 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 +4 -3
- 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 +1 -1
- 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 +39 -11
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +13 -6
- 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/v4/ODataModel.integration.qunit.js +127 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +88 -5
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +35 -13
|
@@ -5601,8 +5601,24 @@ sap.ui.define([
|
|
|
5601
5601
|
// refreshSingle is able to calculate the key predicates in its response and a subsequent PATCH
|
|
5602
5602
|
// is possible.
|
|
5603
5603
|
// BCP: 2070137560
|
|
5604
|
+
//
|
|
5605
|
+
// A header message is returned in the response. The targets of the message are pointing to the
|
|
5606
|
+
// binding parameter. The UI5 message contains the adjusted targets. (SNOW: DINC0122620)
|
|
5607
|
+
//
|
|
5608
|
+
// The header message contains the property "longtextUrl", which points one level up. See that
|
|
5609
|
+
// the UI5 message contains the resolved "descriptionUrl". (SNOW: DINC0197984)
|
|
5604
5610
|
QUnit.test("Context.refresh() in a list relative to a return value context", function (assert) {
|
|
5605
|
-
var
|
|
5611
|
+
var oMessage = {
|
|
5612
|
+
additionalTargets : [
|
|
5613
|
+
"$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
|
|
5614
|
+
],
|
|
5615
|
+
code : "foo-42",
|
|
5616
|
+
longtextUrl : "../LongText('0815')",
|
|
5617
|
+
message : "text",
|
|
5618
|
+
numericSeverity : 1,
|
|
5619
|
+
target : "$Parameter/SalesOrder/SO_2_SOITEM(ProductID='HT-1000')/Name"
|
|
5620
|
+
},
|
|
5621
|
+
oTable,
|
|
5606
5622
|
sView = '\
|
|
5607
5623
|
<FlexBox binding="{/SalesOrderList(\'1\')}">\
|
|
5608
5624
|
<Text id="id" text="{SalesOrderID}"/>\
|
|
@@ -5639,7 +5655,23 @@ sap.ui.define([
|
|
|
5639
5655
|
ProductID : "HT-1000"
|
|
5640
5656
|
}
|
|
5641
5657
|
}]
|
|
5642
|
-
|
|
5658
|
+
}, {
|
|
5659
|
+
"sap-messages" : JSON.stringify([oMessage])
|
|
5660
|
+
})
|
|
5661
|
+
.expectMessages([{
|
|
5662
|
+
code : "foo-42",
|
|
5663
|
+
descriptionUrl : sSalesOrderService + "LongText('0815')",
|
|
5664
|
+
message : "text",
|
|
5665
|
+
persistent : true,
|
|
5666
|
+
targets : [
|
|
5667
|
+
"/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/Name",
|
|
5668
|
+
"/SalesOrderList('1')/SO_2_SOITEM(ProductID='HT-1000')/ProductID"
|
|
5669
|
+
],
|
|
5670
|
+
technicalDetails : {
|
|
5671
|
+
originalMessage : oMessage
|
|
5672
|
+
},
|
|
5673
|
+
type : "Success"
|
|
5674
|
+
}]);
|
|
5643
5675
|
|
|
5644
5676
|
return Promise.all([
|
|
5645
5677
|
that.oView.byId("action").getObjectBinding().execute(),
|
|
@@ -18807,8 +18839,18 @@ sap.ui.define([
|
|
|
18807
18839
|
// result.
|
|
18808
18840
|
// JIRA: CPOUI5UISERVICESV3-965
|
|
18809
18841
|
// BCP: 2070134549
|
|
18842
|
+
//
|
|
18843
|
+
// A header message is returned in the response. The target of the message is pointing to the
|
|
18844
|
+
// binding parameter. The UI5 message contains the adjusted target. (SNOW: DINC0122620)
|
|
18810
18845
|
QUnit.test("Rel. bound function, auto-$expand/$select (BCP 2070134549)", function (assert) {
|
|
18811
|
-
var
|
|
18846
|
+
var oMessage = {
|
|
18847
|
+
// additional targets are missing intentionally
|
|
18848
|
+
code : "foo-42",
|
|
18849
|
+
message : "text",
|
|
18850
|
+
numericSeverity : 1,
|
|
18851
|
+
target : "$Parameter/_it/Name"
|
|
18852
|
+
},
|
|
18853
|
+
sFunctionName = "com.sap.gateway.default.iwbep.tea_busi.v0001"
|
|
18812
18854
|
+ ".__FAKE__FuGetEmployeesByManager",
|
|
18813
18855
|
oModel = this.createTeaBusiModel({autoExpandSelect : true}),
|
|
18814
18856
|
sView = '\
|
|
@@ -18834,7 +18876,21 @@ sap.ui.define([
|
|
|
18834
18876
|
ID : "6",
|
|
18835
18877
|
Name : "Susan Bay"
|
|
18836
18878
|
}]
|
|
18879
|
+
}, {
|
|
18880
|
+
"sap-messages" : JSON.stringify([oMessage])
|
|
18837
18881
|
})
|
|
18882
|
+
.expectMessages([{
|
|
18883
|
+
code : "foo-42",
|
|
18884
|
+
message : "text",
|
|
18885
|
+
persistent : true,
|
|
18886
|
+
targets : [
|
|
18887
|
+
"/MANAGERS('1')/Name"
|
|
18888
|
+
],
|
|
18889
|
+
technicalDetails : {
|
|
18890
|
+
originalMessage : oMessage
|
|
18891
|
+
},
|
|
18892
|
+
type : "Success"
|
|
18893
|
+
}])
|
|
18838
18894
|
.expectChange("TEAM_ID", "TEAM_03")
|
|
18839
18895
|
.expectChange("id", ["3", "6"])
|
|
18840
18896
|
.expectChange("name", ["Jonathan Smith", "Susan Bay"]);
|
|
@@ -59736,4 +59792,72 @@ make root = ${bMakeRoot}`;
|
|
|
59736
59792
|
|
|
59737
59793
|
await this.oView.byId("root").getBindingContext().requestRefresh();
|
|
59738
59794
|
});
|
|
59795
|
+
|
|
59796
|
+
//*********************************************************************************************
|
|
59797
|
+
// Scenario: A context binding with empty path has a hidden context binding to the draft as
|
|
59798
|
+
// parent. Request a property and set a hidden context binding to the active entity as parent.
|
|
59799
|
+
// Before the request finished, set the binding context to null. In the end, request side
|
|
59800
|
+
// effects for the complete model to see that no change listeners remained in the hidden ODCB
|
|
59801
|
+
// for the active entity. (The issue is that registering is delayed due to the pending
|
|
59802
|
+
// request, but deregistering happens immediately when the binding loses its parent context. So
|
|
59803
|
+
// it deregisters when there is no registration yet, and registers afterwards when there is no
|
|
59804
|
+
// more deregistration to be expected.)
|
|
59805
|
+
// SNOW: DINC0117588
|
|
59806
|
+
QUnit.test("DINC0117588 #2", async function (assert) {
|
|
59807
|
+
const oModel = this.createSpecialCasesModel({autoExpandSelect : true});
|
|
59808
|
+
const sView = `
|
|
59809
|
+
<FlexBox id="root" binding="{}">
|
|
59810
|
+
<Text id="id" text="{ArtistID}"/>
|
|
59811
|
+
<Text id="active" text="{IsActiveEntity}"/>
|
|
59812
|
+
</FlexBox>`;
|
|
59813
|
+
|
|
59814
|
+
this.expectChange("id")
|
|
59815
|
+
.expectChange("active");
|
|
59816
|
+
|
|
59817
|
+
await this.createView(assert, sView, oModel);
|
|
59818
|
+
|
|
59819
|
+
this.expectRequest("Artists(ArtistID='1',IsActiveEntity=false)"
|
|
59820
|
+
+ "?$select=ArtistID,IsActiveEntity",
|
|
59821
|
+
{ArtistID : "1", IsActiveEntity : false})
|
|
59822
|
+
.expectChange("id", "1")
|
|
59823
|
+
.expectChange("active", "No");
|
|
59824
|
+
|
|
59825
|
+
const oForm = this.oView.byId("root");
|
|
59826
|
+
oForm.setBindingContext(
|
|
59827
|
+
oModel.bindContext("/Artists(ArtistID='1',IsActiveEntity=false)").getBoundContext());
|
|
59828
|
+
|
|
59829
|
+
await this.waitForChanges(assert, "inactive entity");
|
|
59830
|
+
|
|
59831
|
+
let fnResolve;
|
|
59832
|
+
this.expectRequest("Artists(ArtistID='1',IsActiveEntity=true)"
|
|
59833
|
+
+ "?$select=ArtistID,IsActiveEntity",
|
|
59834
|
+
new Promise((resolve) => {
|
|
59835
|
+
fnResolve = resolve;
|
|
59836
|
+
})
|
|
59837
|
+
);
|
|
59838
|
+
|
|
59839
|
+
const oContext
|
|
59840
|
+
= oModel.bindContext("/Artists(ArtistID='1',IsActiveEntity=true)").getBoundContext();
|
|
59841
|
+
const oPropertyPromise = oContext.requestProperty("ArtistID");
|
|
59842
|
+
oForm.setBindingContext(oContext);
|
|
59843
|
+
|
|
59844
|
+
await this.waitForChanges(assert, "active entity");
|
|
59845
|
+
|
|
59846
|
+
this.expectChange("id", null)
|
|
59847
|
+
.expectChange("active", null);
|
|
59848
|
+
|
|
59849
|
+
oForm.setBindingContext(null);
|
|
59850
|
+
|
|
59851
|
+
fnResolve({ArtistID : "1", IsActiveEntity : true});
|
|
59852
|
+
|
|
59853
|
+
await Promise.all([
|
|
59854
|
+
oPropertyPromise,
|
|
59855
|
+
this.waitForChanges(assert, "no entity")
|
|
59856
|
+
]);
|
|
59857
|
+
|
|
59858
|
+
await Promise.all([
|
|
59859
|
+
oContext.requestSideEffects(["/special.cases.Container/Artists"]),
|
|
59860
|
+
this.waitForChanges(assert, "request full side-effects refresh")
|
|
59861
|
+
]);
|
|
59862
|
+
});
|
|
59739
59863
|
});
|
|
@@ -1790,15 +1790,27 @@ sap.ui.define([
|
|
|
1790
1790
|
aMessages = [{}, {}],
|
|
1791
1791
|
sResourcePath = "~res~";
|
|
1792
1792
|
|
|
1793
|
+
const oMetaModel = {
|
|
1794
|
+
getObject : mustBeMocked
|
|
1795
|
+
};
|
|
1796
|
+
|
|
1797
|
+
oModelMock.expects("getMetaModel").returns(oMetaModel);
|
|
1798
|
+
this.mock(_Helper).expects("getMetaPath")
|
|
1799
|
+
.withExactArgs("/" + sResourcePath)
|
|
1800
|
+
.returns("~metaPath~");
|
|
1801
|
+
this.mock(oMetaModel).expects("getObject")
|
|
1802
|
+
.withExactArgs("~metaPath~")
|
|
1803
|
+
.returns("~metadata~"); // not an array
|
|
1804
|
+
|
|
1793
1805
|
oModelMock.expects("createUI5Message")
|
|
1794
1806
|
.withExactArgs(sinon.match(function (oMessage) {
|
|
1795
1807
|
return oMessage === aMessages[0] && oMessage.transition === true;
|
|
1796
|
-
}), sResourcePath)
|
|
1808
|
+
}), sResourcePath, undefined, sinon.match.same(aMessages[0]))
|
|
1797
1809
|
.returns("~UI5msg0~");
|
|
1798
1810
|
oModelMock.expects("createUI5Message")
|
|
1799
1811
|
.withExactArgs(sinon.match(function (oMessage) {
|
|
1800
1812
|
return oMessage === aMessages[1] && oMessage.transition === true;
|
|
1801
|
-
}), sResourcePath)
|
|
1813
|
+
}), sResourcePath, undefined, sinon.match.same(aMessages[1]))
|
|
1802
1814
|
.returns("~UI5msg1~");
|
|
1803
1815
|
this.mock(Messaging).expects("updateMessages")
|
|
1804
1816
|
.withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
|
|
@@ -1808,9 +1820,78 @@ sap.ui.define([
|
|
|
1808
1820
|
|
|
1809
1821
|
// code under test
|
|
1810
1822
|
oModel.reportTransitionMessages([], sResourcePath);
|
|
1823
|
+
});
|
|
1824
|
+
|
|
1825
|
+
//*********************************************************************************************
|
|
1826
|
+
QUnit.test("reportTransitionMessages: w/o resourcePath", function () {
|
|
1827
|
+
var oModel = this.createModel(),
|
|
1828
|
+
oModelMock = this.mock(oModel),
|
|
1829
|
+
aMessages = [{}, {}];
|
|
1830
|
+
|
|
1831
|
+
oModelMock.expects("getMetaModel").never();
|
|
1832
|
+
|
|
1833
|
+
oModelMock.expects("createUI5Message")
|
|
1834
|
+
.withExactArgs(sinon.match(function (oMessage) {
|
|
1835
|
+
return oMessage === aMessages[0] && oMessage.transition === true;
|
|
1836
|
+
}), undefined, undefined, sinon.match.same(aMessages[0]))
|
|
1837
|
+
.returns("~UI5msg0~");
|
|
1838
|
+
oModelMock.expects("createUI5Message")
|
|
1839
|
+
.withExactArgs(sinon.match(function (oMessage) {
|
|
1840
|
+
return oMessage === aMessages[1] && oMessage.transition === true;
|
|
1841
|
+
}), undefined, undefined, sinon.match.same(aMessages[1]))
|
|
1842
|
+
.returns("~UI5msg1~");
|
|
1843
|
+
this.mock(Messaging).expects("updateMessages")
|
|
1844
|
+
.withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
|
|
1811
1845
|
|
|
1812
1846
|
// code under test
|
|
1813
|
-
oModel.reportTransitionMessages(
|
|
1847
|
+
oModel.reportTransitionMessages(aMessages);
|
|
1848
|
+
});
|
|
1849
|
+
|
|
1850
|
+
//*********************************************************************************************
|
|
1851
|
+
QUnit.test("reportTransitionMessages: operationMetadata is used to adjustTargets", function () {
|
|
1852
|
+
const oModel = this.createModel();
|
|
1853
|
+
const oModelMock = this.mock(oModel);
|
|
1854
|
+
const oMetaModel = {
|
|
1855
|
+
getObject : mustBeMocked
|
|
1856
|
+
};
|
|
1857
|
+
oModelMock.expects("getMetaModel").returns(oMetaModel);
|
|
1858
|
+
const oHelperMock = this.mock(_Helper);
|
|
1859
|
+
oHelperMock.expects("getMetaPath")
|
|
1860
|
+
.withExactArgs("/resource/path/operation")
|
|
1861
|
+
.returns("~metaPath~");
|
|
1862
|
+
const oMetaModelMock = this.mock(oMetaModel);
|
|
1863
|
+
oMetaModelMock.expects("getObject")
|
|
1864
|
+
.withExactArgs("~metaPath~")
|
|
1865
|
+
.returns(["~metadata~"]);
|
|
1866
|
+
oMetaModelMock.expects("getObject")
|
|
1867
|
+
.withExactArgs("~metaPath~/@$ui5.overload/0")
|
|
1868
|
+
.returns("~operationMetadata~");
|
|
1869
|
+
const oClonedMessage0 = {};
|
|
1870
|
+
oHelperMock.expects("clone").withExactArgs("~message0~").returns(oClonedMessage0);
|
|
1871
|
+
const oClonedMessage1 = {};
|
|
1872
|
+
oHelperMock.expects("clone").withExactArgs("~message1~").returns(oClonedMessage1);
|
|
1873
|
+
oHelperMock.expects("adjustTargets")
|
|
1874
|
+
.withExactArgs(sinon.match.same(oClonedMessage0), "~operationMetadata~", undefined,
|
|
1875
|
+
"/resource/path");
|
|
1876
|
+
oHelperMock.expects("adjustTargets")
|
|
1877
|
+
.withExactArgs(sinon.match.same(oClonedMessage1), "~operationMetadata~", undefined,
|
|
1878
|
+
"/resource/path");
|
|
1879
|
+
oModelMock.expects("createUI5Message")
|
|
1880
|
+
.withExactArgs(sinon.match(function (oMessage) {
|
|
1881
|
+
return oMessage === oClonedMessage0 && oMessage.transition === true;
|
|
1882
|
+
}), "resource/path/operation?~queryOptions~", undefined, "~message0~")
|
|
1883
|
+
.returns("~UI5msg0~");
|
|
1884
|
+
oModelMock.expects("createUI5Message")
|
|
1885
|
+
.withExactArgs(sinon.match(function (oMessage) {
|
|
1886
|
+
return oMessage === oClonedMessage1 && oMessage.transition === true;
|
|
1887
|
+
}), "resource/path/operation?~queryOptions~", undefined, "~message1~")
|
|
1888
|
+
.returns("~UI5msg1~");
|
|
1889
|
+
this.mock(Messaging).expects("updateMessages")
|
|
1890
|
+
.withExactArgs(undefined, sinon.match(["~UI5msg0~", "~UI5msg1~"]));
|
|
1891
|
+
|
|
1892
|
+
// code under test
|
|
1893
|
+
oModel.reportTransitionMessages(["~message0~", "~message1~"],
|
|
1894
|
+
"resource/path/operation?~queryOptions~");
|
|
1814
1895
|
});
|
|
1815
1896
|
|
|
1816
1897
|
//*********************************************************************************************
|
|
@@ -2659,7 +2740,8 @@ sap.ui.define([
|
|
|
2659
2740
|
},
|
|
2660
2741
|
oUI5Message;
|
|
2661
2742
|
|
|
2662
|
-
oHelperMock.expects("createTechnicalDetails")
|
|
2743
|
+
oHelperMock.expects("createTechnicalDetails")
|
|
2744
|
+
.withExactArgs("~originalMessage~"); // ignore details
|
|
2663
2745
|
oHelperMock.expects("buildPath").never();
|
|
2664
2746
|
[oFixture.target].concat(oFixture.additionalTargets || []).forEach(function (sTarget) {
|
|
2665
2747
|
if (sTarget[0] !== "/") {
|
|
@@ -2678,7 +2760,8 @@ sap.ui.define([
|
|
|
2678
2760
|
});
|
|
2679
2761
|
|
|
2680
2762
|
// code under test
|
|
2681
|
-
oUI5Message = oModel.createUI5Message(oRawMessage, "~resourcePath~", "~cachePath~"
|
|
2763
|
+
oUI5Message = oModel.createUI5Message(oRawMessage, "~resourcePath~", "~cachePath~",
|
|
2764
|
+
"~originalMessage~");
|
|
2682
2765
|
|
|
2683
2766
|
assert.deepEqual(oUI5Message.getTargets(), oFixture.expectedTargets);
|
|
2684
2767
|
assert.strictEqual(oUI5Message.getPersistent(), oFixture.expectedPersistent || false);
|
|
@@ -11084,9 +11084,10 @@ sap.ui.define([
|
|
|
11084
11084
|
oCacheMock = this.mock(oCache);
|
|
11085
11085
|
assert.strictEqual(oCache.oPromise, null);
|
|
11086
11086
|
|
|
11087
|
-
oCacheMock.expects("registerChangeListener")
|
|
11087
|
+
const oRegisterExpectation = oCacheMock.expects("registerChangeListener")
|
|
11088
|
+
.withExactArgs(undefined, "~oListener1~");
|
|
11088
11089
|
this.mock(oGroupLock1).expects("unlock").never();
|
|
11089
|
-
this.oRequestorMock.expects("request")
|
|
11090
|
+
const oRequestExpectation = this.oRequestorMock.expects("request")
|
|
11090
11091
|
.withExactArgs("GET", sResourcePath + "?~", sinon.match.same(oGroupLock1), undefined,
|
|
11091
11092
|
undefined, sinon.match.same(fnDataRequested1), undefined, sMetaPath)
|
|
11092
11093
|
.returns(Promise.resolve(oExpectedResult).then(function () {
|
|
@@ -11096,8 +11097,6 @@ sap.ui.define([
|
|
|
11096
11097
|
oResponseExpectation = oCacheMock.expects("visitResponse")
|
|
11097
11098
|
.withExactArgs(sinon.match.same(oExpectedResult),
|
|
11098
11099
|
sinon.match.same(mTypeForMetaPath));
|
|
11099
|
-
oCacheMock.expects("registerChangeListener")
|
|
11100
|
-
.withExactArgs(undefined, "~oListener1~");
|
|
11101
11100
|
oCacheMock.expects("drillDown")
|
|
11102
11101
|
.withExactArgs(sinon.match.same(oExpectedResult), undefined,
|
|
11103
11102
|
sinon.match.same(oGroupLock1), bCreateOnDemand)
|
|
@@ -11120,6 +11119,7 @@ sap.ui.define([
|
|
|
11120
11119
|
bCreateOnDemand, "fnGetOriginalResourcePath")
|
|
11121
11120
|
.then(function (oResult) {
|
|
11122
11121
|
assert.strictEqual(oResult, oExpectedResult);
|
|
11122
|
+
assert.ok(oRegisterExpectation.calledBefore(oRequestExpectation));
|
|
11123
11123
|
})
|
|
11124
11124
|
];
|
|
11125
11125
|
oOldPromise = oCache.oPromise;
|
|
@@ -4504,18 +4504,32 @@ sap.ui.define([
|
|
|
4504
4504
|
|
|
4505
4505
|
//*********************************************************************************************
|
|
4506
4506
|
[true, false].forEach(function (bTargetIsValid) {
|
|
4507
|
-
|
|
4507
|
+
[true, false].forEach(function (bAnnotation) {
|
|
4508
|
+
var sTitle = "adjustTargets: with additional targets, annotation: " + bAnnotation
|
|
4509
|
+
+ ", target is valid: " + bTargetIsValid;
|
|
4508
4510
|
|
|
4509
4511
|
QUnit.test(sTitle, function (assert) {
|
|
4510
4512
|
var oHelperMock = this.mock(_Helper),
|
|
4513
|
+
oMessage;
|
|
4514
|
+
|
|
4515
|
+
if (bAnnotation) {
|
|
4511
4516
|
oMessage = {
|
|
4512
4517
|
target : "target",
|
|
4513
4518
|
"@foo.additionalTargets" : ["additional1", "foo", "additional2"]
|
|
4514
4519
|
};
|
|
4515
4520
|
|
|
4516
|
-
|
|
4517
|
-
|
|
4518
|
-
|
|
4521
|
+
oHelperMock.expects("getAnnotationKey")
|
|
4522
|
+
.withExactArgs(sinon.match.same(oMessage), ".additionalTargets")
|
|
4523
|
+
.returns("@foo.additionalTargets");
|
|
4524
|
+
} else {
|
|
4525
|
+
oMessage = {
|
|
4526
|
+
target : "target",
|
|
4527
|
+
additionalTargets : ["additional1", "foo", "additional2"],
|
|
4528
|
+
"@foo.additionalTargets" : "n/a" // additionalTargets must win!
|
|
4529
|
+
};
|
|
4530
|
+
|
|
4531
|
+
oHelperMock.expects("getAnnotationKey").never();
|
|
4532
|
+
}
|
|
4519
4533
|
oHelperMock.expects("getAdjustedTarget")
|
|
4520
4534
|
.withExactArgs("target", "oOperationMetadata", "sParameterContextPath", "sContextPath")
|
|
4521
4535
|
.returns(bTargetIsValid ? "~adjusted~" : undefined);
|
|
@@ -4536,18 +4550,21 @@ sap.ui.define([
|
|
|
4536
4550
|
_Helper.adjustTargets(oMessage, "oOperationMetadata", "sParameterContextPath",
|
|
4537
4551
|
"sContextPath");
|
|
4538
4552
|
|
|
4539
|
-
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4553
|
+
const oExpectedMessage = {
|
|
4554
|
+
target : bTargetIsValid ? "~adjusted~" : "~adjusted1~",
|
|
4555
|
+
"@foo.additionalTargets" : "n/a"
|
|
4556
|
+
};
|
|
4557
|
+
const aAdditionalTargets
|
|
4558
|
+
= bTargetIsValid ? ["~adjusted1~", "~adjusted2~"] : ["~adjusted2~"];
|
|
4559
|
+
|
|
4560
|
+
if (bAnnotation) {
|
|
4561
|
+
oExpectedMessage["@foo.additionalTargets"] = aAdditionalTargets;
|
|
4544
4562
|
} else {
|
|
4545
|
-
|
|
4546
|
-
target : "~adjusted1~",
|
|
4547
|
-
"@foo.additionalTargets" : ["~adjusted2~"]
|
|
4548
|
-
});
|
|
4563
|
+
oExpectedMessage.additionalTargets = aAdditionalTargets;
|
|
4549
4564
|
}
|
|
4565
|
+
assert.deepEqual(oMessage, oExpectedMessage);
|
|
4550
4566
|
});
|
|
4567
|
+
});
|
|
4551
4568
|
});
|
|
4552
4569
|
|
|
4553
4570
|
//*********************************************************************************************
|
|
@@ -4576,6 +4593,11 @@ sap.ui.define([
|
|
|
4576
4593
|
_Helper.getAdjustedTarget("$Parameter/foo/bar", oOperationMetadata,
|
|
4577
4594
|
"~parameterContextPath~"),
|
|
4578
4595
|
"~parameterContextPath~/foo/bar");
|
|
4596
|
+
|
|
4597
|
+
assert.strictEqual(
|
|
4598
|
+
// code under test
|
|
4599
|
+
_Helper.getAdjustedTarget("foo/bar", oOperationMetadata),
|
|
4600
|
+
"foo/bar");
|
|
4579
4601
|
});
|
|
4580
4602
|
|
|
4581
4603
|
//*********************************************************************************************
|