@openui5/sap.ui.core 1.120.16 → 1.120.18
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/.dtsgenrc +76 -0
- package/package.json +1 -1
- package/src/jquery.sap.global.js +4 -4
- package/src/jquery.sap.properties.js +2 -2
- 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/jquery.sap.ui.js +6 -2
- 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/BindingInfo.js +26 -19
- 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 -8
- 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 +5 -5
- 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/DateFormat.js +3 -3
- 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/ControllerExtension.js +16 -0
- 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 +2 -2
- package/src/sap/ui/core/search/SearchProvider.js +2 -2
- 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/support/trace/E2eTraceLib.js +1 -1
- package/src/sap/ui/core/tmpl/DOMAttribute.js +2 -2
- package/src/sap/ui/core/tmpl/DOMElement.js +2 -2
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +2 -2
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +2 -2
- 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 +2 -2
- package/src/sap/ui/core/util/MockServer.js +1 -2
- 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 +17 -10
- 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/ODataBinding.js +20 -20
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +8 -4
- 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 +2 -2
- 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/performance/trace/FESR.js +1 -1
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/performance/trace/Passport.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/Mobile.js +7 -4
- 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/ManagedObject.qunit.js +19 -0
- package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +21 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +53 -15
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +54 -2
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +9 -7
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +51 -22
- package/test/sap/ui/core/qunit/util/Mobile.qunit.js +12 -7
- package/test/sap/ui/core/relnotes/changes-1.120.json +61 -0
|
@@ -1382,9 +1382,11 @@ sap.ui.define([
|
|
|
1382
1382
|
this.oCachePromise = SyncPromise.resolve(Promise.resolve(oCache));
|
|
1383
1383
|
});
|
|
1384
1384
|
oBinding.setContext(oContext);
|
|
1385
|
+
const oBindingMock = that.mock(oBinding);
|
|
1386
|
+
oBindingMock.expects("checkSameCache").never();
|
|
1385
1387
|
|
|
1386
1388
|
this.mock(oCache).expects("hasSentRequest").withExactArgs().returns(oFixture.hasSent);
|
|
1387
|
-
|
|
1389
|
+
oBindingMock.expects("isRelative").exactly(oFixture.hasSent ? 0 : 1)
|
|
1388
1390
|
.withExactArgs().returns(!oFixture.isAbsolute);
|
|
1389
1391
|
this.mock(ODataListBinding).expects("isBelowCreated")
|
|
1390
1392
|
.exactly(oFixture.hasSent || oFixture.isAbsolute ? 0 : 1)
|
|
@@ -1399,11 +1401,7 @@ sap.ui.define([
|
|
|
1399
1401
|
oReadMock = this.mock(oCache).expects("read")
|
|
1400
1402
|
.withExactArgs(1, 2, 3, sinon.match.same(oGroupLock),
|
|
1401
1403
|
sinon.match.same(fnDataRequested))
|
|
1402
|
-
.returns(SyncPromise.resolve(Promise.resolve()
|
|
1403
|
-
that.mock(oBinding).expects("assertSameCache")
|
|
1404
|
-
.withExactArgs(sinon.match.same(oCache));
|
|
1405
|
-
return oData;
|
|
1406
|
-
})));
|
|
1404
|
+
.returns(SyncPromise.resolve(Promise.resolve(oData)));
|
|
1407
1405
|
|
|
1408
1406
|
// code under test
|
|
1409
1407
|
oPromise = oBinding.fetchData(1, 2, 3, oGroupLock, fnDataRequested);
|
|
@@ -1411,7 +1409,7 @@ sap.ui.define([
|
|
|
1411
1409
|
oBinding.sChangeReason = "sChangeReason";
|
|
1412
1410
|
oBinding.bHasPathReductionToParent = true;
|
|
1413
1411
|
this.oModel.bAutoExpandSelect = true;
|
|
1414
|
-
|
|
1412
|
+
oBindingMock.expects("checkSuspended").never();
|
|
1415
1413
|
|
|
1416
1414
|
assert.strictEqual(oBinding.sChangeReason, "sChangeReason");
|
|
1417
1415
|
|
|
@@ -1420,6 +1418,12 @@ sap.ui.define([
|
|
|
1420
1418
|
if (oFixture.elements) {
|
|
1421
1419
|
assert.ok(oSetCollectionMock.calledBefore(oReadMock));
|
|
1422
1420
|
}
|
|
1421
|
+
|
|
1422
|
+
oBindingMock.expects("checkSameCache").on(oBinding)
|
|
1423
|
+
.withExactArgs(sinon.match.same(oCache));
|
|
1424
|
+
|
|
1425
|
+
// code under test
|
|
1426
|
+
oResult.$checkStillValid();
|
|
1423
1427
|
});
|
|
1424
1428
|
});
|
|
1425
1429
|
});
|
|
@@ -1540,13 +1544,16 @@ sap.ui.define([
|
|
|
1540
1544
|
|
|
1541
1545
|
//*********************************************************************************************
|
|
1542
1546
|
[false, true].forEach(function (bFirstCreateAtEnd) {
|
|
1543
|
-
QUnit.test("fetchContexts: created, atEnd=" + bFirstCreateAtEnd, function () {
|
|
1547
|
+
QUnit.test("fetchContexts: created, atEnd=" + bFirstCreateAtEnd, function (assert) {
|
|
1544
1548
|
var oBinding = this.bindList("/EMPLOYEES"),
|
|
1545
1549
|
bChanged = {/*boolean*/},
|
|
1546
1550
|
fnDataRequested = {/*function*/},
|
|
1547
1551
|
oGroupLock = {},
|
|
1548
1552
|
iReadStart = bFirstCreateAtEnd ? 3 : 1,
|
|
1549
|
-
oResult = {
|
|
1553
|
+
oResult = {
|
|
1554
|
+
$checkStillValid : mustBeMocked,
|
|
1555
|
+
value : {}
|
|
1556
|
+
};
|
|
1550
1557
|
|
|
1551
1558
|
oBinding.bFirstCreateAtEnd = bFirstCreateAtEnd;
|
|
1552
1559
|
oBinding.iCreatedContexts = 2;
|
|
@@ -1554,15 +1561,46 @@ sap.ui.define([
|
|
|
1554
1561
|
.withExactArgs(iReadStart, 2, 3, sinon.match.same(oGroupLock),
|
|
1555
1562
|
sinon.match.same(fnDataRequested))
|
|
1556
1563
|
.returns(SyncPromise.resolve(oResult));
|
|
1557
|
-
|
|
1564
|
+
const oCheckStillValidExpectation
|
|
1565
|
+
= this.mock(oResult).expects("$checkStillValid").withExactArgs();
|
|
1566
|
+
const oCreateContextsExpectation = this.mock(oBinding).expects("createContexts")
|
|
1558
1567
|
.withExactArgs(iReadStart, sinon.match.same(oResult.value))
|
|
1559
1568
|
.returns(SyncPromise.resolve(bChanged));
|
|
1560
1569
|
|
|
1561
1570
|
// code under test
|
|
1562
|
-
return oBinding.fetchContexts(1, 2, 3, oGroupLock, false, fnDataRequested)
|
|
1571
|
+
return oBinding.fetchContexts(1, 2, 3, oGroupLock, false, fnDataRequested)
|
|
1572
|
+
.then(function () {
|
|
1573
|
+
assert.ok(oCheckStillValidExpectation.calledBefore(oCreateContextsExpectation));
|
|
1574
|
+
});
|
|
1563
1575
|
});
|
|
1564
1576
|
});
|
|
1565
1577
|
|
|
1578
|
+
//*********************************************************************************************
|
|
1579
|
+
QUnit.test("fetchContexts: invalid cache", function (assert) {
|
|
1580
|
+
var oBinding = this.bindList("/EMPLOYEES"),
|
|
1581
|
+
fnDataRequested = {/*function*/},
|
|
1582
|
+
oError = new Error(),
|
|
1583
|
+
oGroupLock = "~oGroupLock~",
|
|
1584
|
+
oResponse = {
|
|
1585
|
+
$checkStillValid : mustBeMocked,
|
|
1586
|
+
value : {}
|
|
1587
|
+
};
|
|
1588
|
+
|
|
1589
|
+
this.mock(oBinding).expects("fetchData")
|
|
1590
|
+
.withExactArgs(1, 2, 3, sinon.match.same(oGroupLock),
|
|
1591
|
+
sinon.match.same(fnDataRequested))
|
|
1592
|
+
.returns(SyncPromise.resolve(oResponse));
|
|
1593
|
+
this.mock(oResponse).expects("$checkStillValid").withExactArgs().throws(oError);
|
|
1594
|
+
|
|
1595
|
+
// code under test
|
|
1596
|
+
return oBinding.fetchContexts(1, 2, 3, oGroupLock, false, fnDataRequested)
|
|
1597
|
+
.then(function () {
|
|
1598
|
+
assert.ok(false);
|
|
1599
|
+
}, function (oResultError) {
|
|
1600
|
+
assert.strictEqual(oResultError, oError);
|
|
1601
|
+
});
|
|
1602
|
+
});
|
|
1603
|
+
|
|
1566
1604
|
//*********************************************************************************************
|
|
1567
1605
|
QUnit.test("fetchContexts: fetchData returns undefined", function (assert) {
|
|
1568
1606
|
var oBinding = this.bindList("TEAM_2_EMPLOYEES",
|
|
@@ -7285,7 +7323,7 @@ sap.ui.define([
|
|
|
7285
7323
|
oRefreshSingleExpectation,
|
|
7286
7324
|
oRefreshSinglePromise = SyncPromise.resolve(Promise.resolve({})),
|
|
7287
7325
|
oRootBinding = {
|
|
7288
|
-
|
|
7326
|
+
checkSameCache : function () {},
|
|
7289
7327
|
getGroupId : function () {}
|
|
7290
7328
|
},
|
|
7291
7329
|
that = this;
|
|
@@ -7319,7 +7357,7 @@ sap.ui.define([
|
|
|
7319
7357
|
|
|
7320
7358
|
// these must only be called when the cache's refreshSingle is finished
|
|
7321
7359
|
that.mock(oBinding).expects("fireDataReceived").withExactArgs({data : {}});
|
|
7322
|
-
that.mock(oRootBinding).expects("
|
|
7360
|
+
that.mock(oRootBinding).expects("checkSameCache")
|
|
7323
7361
|
.withExactArgs(sinon.match.same(oCache))
|
|
7324
7362
|
.callsFake(function () {
|
|
7325
7363
|
if (!bSameCache) {
|
|
@@ -7397,7 +7435,7 @@ sap.ui.define([
|
|
|
7397
7435
|
oRemoveCreatedExpectation,
|
|
7398
7436
|
oResetKeepAliveExpectation,
|
|
7399
7437
|
oRootBinding = {
|
|
7400
|
-
|
|
7438
|
+
checkSameCache : function () {},
|
|
7401
7439
|
getGroupId : function () {}
|
|
7402
7440
|
},
|
|
7403
7441
|
that = this;
|
|
@@ -7529,7 +7567,7 @@ sap.ui.define([
|
|
|
7529
7567
|
oExpectation,
|
|
7530
7568
|
oGroupLock = {getGroupId : function () {}},
|
|
7531
7569
|
oRootBinding = {
|
|
7532
|
-
|
|
7570
|
+
checkSameCache : function () {},
|
|
7533
7571
|
getGroupId : function () {}
|
|
7534
7572
|
},
|
|
7535
7573
|
that = this;
|
|
@@ -8180,6 +8180,59 @@ sap.ui.define([
|
|
|
8180
8180
|
});
|
|
8181
8181
|
});
|
|
8182
8182
|
|
|
8183
|
+
//*********************************************************************************************
|
|
8184
|
+
// Scenario: Table gets a binding context for which data was already loaded and then a refresh
|
|
8185
|
+
// is performed synchronously.
|
|
8186
|
+
// SNOW: CS20240007657519
|
|
8187
|
+
QUnit.test("CS20240007657519", async function (assert) {
|
|
8188
|
+
const oModel = this.createSalesOrdersModel({autoExpandSelect : true});
|
|
8189
|
+
const sView = `
|
|
8190
|
+
<FlexBox binding="{/SalesOrderList('1')}" id="form">
|
|
8191
|
+
<Table id="table" items="{path : 'SO_2_SOITEM', parameters : {$$ownRequest : true}}">
|
|
8192
|
+
<Text id="position" text="{ItemPosition}"/>
|
|
8193
|
+
</Table>
|
|
8194
|
+
</FlexBox>`;
|
|
8195
|
+
|
|
8196
|
+
this.expectRequest("SalesOrderList('1')/SO_2_SOITEM"
|
|
8197
|
+
+ "?$select=ItemPosition,SalesOrderID&$skip=0&$top=100", {
|
|
8198
|
+
value : [ // implicitly sorted descending
|
|
8199
|
+
{SalesOrderID : "1", ItemPosition : "0020"},
|
|
8200
|
+
{SalesOrderID : "1", ItemPosition : "0010"}
|
|
8201
|
+
]
|
|
8202
|
+
})
|
|
8203
|
+
.expectChange("position", ["0020", "0010"]);
|
|
8204
|
+
|
|
8205
|
+
await this.createView(assert, sView, oModel);
|
|
8206
|
+
|
|
8207
|
+
const oTable = this.oView.byId("table");
|
|
8208
|
+
const oFormContext = this.oView.byId("form").getBindingContext();
|
|
8209
|
+
|
|
8210
|
+
oTable.setBindingContext(null);
|
|
8211
|
+
|
|
8212
|
+
await this.waitForChanges(assert);
|
|
8213
|
+
|
|
8214
|
+
oTable.setBindingContext(oFormContext);
|
|
8215
|
+
|
|
8216
|
+
this.expectCanceledError("Failed to get contexts for " + sSalesOrderService
|
|
8217
|
+
+ "SalesOrderList('1')/SO_2_SOITEM with start index 0 and length 100",
|
|
8218
|
+
sODLB + ": /SalesOrderList('1')|SO_2_SOITEM"
|
|
8219
|
+
+ " is ignoring response from inactive cache: " + sSalesOrderService
|
|
8220
|
+
+ "SalesOrderList('1')/SO_2_SOITEM?$select=ItemPosition,SalesOrderID")
|
|
8221
|
+
.expectRequest("SalesOrderList('1')/SO_2_SOITEM"
|
|
8222
|
+
+ "?$select=ItemPosition,SalesOrderID&$skip=0&$top=100", {
|
|
8223
|
+
value : [
|
|
8224
|
+
{SalesOrderID : "1", ItemPosition : "0030"}, // a new one!
|
|
8225
|
+
{SalesOrderID : "1", ItemPosition : "0020"},
|
|
8226
|
+
{SalesOrderID : "1", ItemPosition : "0010"}
|
|
8227
|
+
]
|
|
8228
|
+
})
|
|
8229
|
+
.expectChange("position", ["0030", "0020", "0010"]);
|
|
8230
|
+
|
|
8231
|
+
oFormContext.refresh();
|
|
8232
|
+
|
|
8233
|
+
await this.waitForChanges(assert);
|
|
8234
|
+
});
|
|
8235
|
+
|
|
8183
8236
|
//*********************************************************************************************
|
|
8184
8237
|
// Scenario: Read and modify an entity with key aliases
|
|
8185
8238
|
// CPOUI5ODATAV4-1580: show usage of ODataModel#getKeyPredicate
|
|
@@ -41236,8 +41289,7 @@ make root = ${bMakeRoot}`;
|
|
|
41236
41289
|
return this.createView(assert, sView).then(function () {
|
|
41237
41290
|
that.expectCanceledError("Failed to get contexts for " + sTeaBusi
|
|
41238
41291
|
+ "EMPLOYEES with start index 0 and length 100",
|
|
41239
|
-
|
|
41240
|
-
+ "EMPLOYEES");
|
|
41292
|
+
"Binding already destroyed");
|
|
41241
41293
|
|
|
41242
41294
|
that.oView.destroy();
|
|
41243
41295
|
delete that.oView;
|
|
@@ -645,7 +645,7 @@ sap.ui.define([
|
|
|
645
645
|
.withExactArgs(sinon.match.same(oGroupLock), undefined, sinon.match.func,
|
|
646
646
|
sinon.match.same(oBinding))
|
|
647
647
|
.returns(SyncPromise.resolve(Promise.resolve().then(function () {
|
|
648
|
-
that.mock(oBinding).expects("
|
|
648
|
+
that.mock(oBinding).expects("checkSameCache")
|
|
649
649
|
.withExactArgs(sinon.match.same(oCache));
|
|
650
650
|
return vValue;
|
|
651
651
|
})));
|
|
@@ -12,9 +12,10 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
|
|
|
12
12
|
afterEach: function(assert) {
|
|
13
13
|
assert.notOk(FESR.getActive(), "FESR is deactivated");
|
|
14
14
|
},
|
|
15
|
-
dummyRequest: function() {
|
|
15
|
+
dummyRequest: function(bUseUrlObject) {
|
|
16
16
|
var xhr = new XMLHttpRequest();
|
|
17
|
-
|
|
17
|
+
const sUrl = "resources/ui5loader.js?noCache=" + Date.now() + "-" + (++requestCounter);
|
|
18
|
+
xhr.open("GET", bUseUrlObject ? new URL(sUrl, document.baseURI) : sUrl, false);
|
|
18
19
|
xhr.send();
|
|
19
20
|
return xhr;
|
|
20
21
|
}
|
|
@@ -72,8 +73,8 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
|
|
|
72
73
|
Interaction.end(true);
|
|
73
74
|
oXhrHandle.abort();
|
|
74
75
|
|
|
75
|
-
// trigger another request to send FESR
|
|
76
|
-
oXhrHandle = this.dummyRequest();
|
|
76
|
+
// trigger another request to send FESR using URL object to ensure isCORSRequest can handle URL objects as well
|
|
77
|
+
oXhrHandle = this.dummyRequest(/* bUseUrlObject */ true);
|
|
77
78
|
|
|
78
79
|
assert.ok(oHeaderSpy.args.some(function(args) {
|
|
79
80
|
if (args[0] === "SAP-Perf-FESRec") {
|
|
@@ -145,8 +146,8 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
|
|
|
145
146
|
Interaction.end(true);
|
|
146
147
|
oXhrHandle.abort();
|
|
147
148
|
|
|
148
|
-
// trigger another request to send FESR
|
|
149
|
-
oXhrHandle = this.dummyRequest();
|
|
149
|
+
// trigger another request to send FESR using URL object to ensure isCORSRequest can handle URL objects as well
|
|
150
|
+
oXhrHandle = this.dummyRequest(/* bUseUrlObject */ true);
|
|
150
151
|
|
|
151
152
|
assert.ok(oHeaderSpy.args.some(function(args) {
|
|
152
153
|
if (args[0] === "SAP-Perf-FESRec") {
|
|
@@ -193,7 +194,8 @@ sap.ui.define(['sap/ui/performance/trace/FESR', 'sap/ui/performance/trace/Intera
|
|
|
193
194
|
Interaction.end(true);
|
|
194
195
|
oXhrHandle.abort();
|
|
195
196
|
// trigger initial FESR header creation (which should include the actual "action")
|
|
196
|
-
|
|
197
|
+
// using URL object to ensure isCORSRequest can handle URL objects as well
|
|
198
|
+
oXhrHandle = this.dummyRequest(/* bUseUrlObject */ true);
|
|
197
199
|
|
|
198
200
|
assert.ok(oHeaderSpy.args.some(function(args) {
|
|
199
201
|
if (args[0] === "SAP-Perf-FESRec") {
|
|
@@ -4,6 +4,7 @@ sap.ui.define([
|
|
|
4
4
|
"sap/ui/core/format/DateFormat",
|
|
5
5
|
"sap/ui/core/Locale",
|
|
6
6
|
"sap/ui/core/LocaleData",
|
|
7
|
+
"sap/ui/core/date/Buddhist",
|
|
7
8
|
"sap/ui/core/date/UniversalDate",
|
|
8
9
|
"sap/ui/core/date/UI5Date",
|
|
9
10
|
"sap/ui/core/library",
|
|
@@ -12,21 +13,20 @@ sap.ui.define([
|
|
|
12
13
|
"sap/ui/core/date/CalendarWeekNumbering",
|
|
13
14
|
"sap/ui/test/TestUtils",
|
|
14
15
|
// load all required calendars in advance
|
|
15
|
-
"sap/ui/core/date/Buddhist",
|
|
16
16
|
"sap/ui/core/date/Gregorian",
|
|
17
17
|
"sap/ui/core/date/Islamic",
|
|
18
18
|
"sap/ui/core/date/Japanese",
|
|
19
19
|
"sap/ui/core/date/Persian"
|
|
20
|
-
], function (Log, extend, DateFormat, Locale, LocaleData, UniversalDate, UI5Date, library, Configuration,
|
|
21
|
-
|
|
20
|
+
], function (Log, extend, DateFormat, Locale, LocaleData, Buddhist, UniversalDate, UI5Date, library, Configuration,
|
|
21
|
+
Supportability, CalendarWeekNumbering, TestUtils) {
|
|
22
22
|
"use strict";
|
|
23
23
|
/* eslint-disable max-nested-callbacks */
|
|
24
24
|
/*global QUnit, sinon */
|
|
25
25
|
|
|
26
26
|
// shortcut for sap.ui.core.CalendarType
|
|
27
27
|
const CalendarType = library.CalendarType;
|
|
28
|
-
const oDateTime = UI5Date.getInstance("
|
|
29
|
-
const oTZDateTime = UI5Date.getInstance("
|
|
28
|
+
const oDateTime = UI5Date.getInstance("2000-09-23T06:46:13Z");
|
|
29
|
+
const oTZDateTime = UI5Date.getInstance("2000-09-23T03:46:13+05:30");
|
|
30
30
|
const oDefaultDate = DateFormat.getInstance();
|
|
31
31
|
const oDefaultDateTime = DateFormat.getDateTimeInstance();
|
|
32
32
|
const oDefaultTime = DateFormat.getTimeInstance();
|
|
@@ -695,7 +695,7 @@ sap.ui.define([
|
|
|
695
695
|
});
|
|
696
696
|
|
|
697
697
|
QUnit.test("format custom date timezone UTC+2 (EET)", function (assert) {
|
|
698
|
-
var oDate = UI5Date.getInstance("
|
|
698
|
+
var oDate = UI5Date.getInstance("2018-10-09T11:37:56Z"),
|
|
699
699
|
oCustomDateFormat, sFormatted;
|
|
700
700
|
oDate.setMilliseconds(235);
|
|
701
701
|
|
|
@@ -1645,7 +1645,7 @@ sap.ui.define([
|
|
|
1645
1645
|
});
|
|
1646
1646
|
|
|
1647
1647
|
QUnit.test("parse short format without delimiter", function (assert) {
|
|
1648
|
-
var oDate = UI5Date.getInstance("
|
|
1648
|
+
var oDate = UI5Date.getInstance("2014-04-07T00:00:00"),
|
|
1649
1649
|
oFormat = DateFormat.getDateInstance(),
|
|
1650
1650
|
sDateIn = "040714", oDateOut = oFormat.parse(sDateIn);
|
|
1651
1651
|
|
|
@@ -1705,7 +1705,7 @@ sap.ui.define([
|
|
|
1705
1705
|
});
|
|
1706
1706
|
|
|
1707
1707
|
QUnit.test("parse and format quarters", function (assert) {
|
|
1708
|
-
var oDate = UI5Date.getInstance(
|
|
1708
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
1709
1709
|
oQuarter1 = DateFormat.getDateInstance({ pattern: "qq" }),
|
|
1710
1710
|
oQuarter2 = DateFormat.getDateInstance({ pattern: "qqq" }),
|
|
1711
1711
|
oQuarter3 = DateFormat.getDateInstance({ pattern: "qqqq" }),
|
|
@@ -2980,7 +2980,7 @@ sap.ui.define([
|
|
|
2980
2980
|
QUnit.module("Islamic Date in locale en");
|
|
2981
2981
|
|
|
2982
2982
|
QUnit.test("format date to Islamic type with locale en", function (assert) {
|
|
2983
|
-
var oDate = UI5Date.getInstance(
|
|
2983
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
2984
2984
|
oDateFormat = DateFormat.getDateInstance({
|
|
2985
2985
|
calendarType: CalendarType.Islamic
|
|
2986
2986
|
});
|
|
@@ -3056,7 +3056,7 @@ sap.ui.define([
|
|
|
3056
3056
|
|
|
3057
3057
|
["ar", "ar_EG", "ar_SA", "he"].forEach(function (sLocale, index) {
|
|
3058
3058
|
QUnit.test("format Islamic date " + sLocale, function (assert) {
|
|
3059
|
-
var oDate = UI5Date.getInstance(
|
|
3059
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3060
3060
|
oDateFormat = DateFormat.getDateInstance(new Locale(sLocale));
|
|
3061
3061
|
|
|
3062
3062
|
assert.strictEqual(oDateFormat.format(oDate), aResultLocal[index], "Date is formatted to Islamic Date in " + sLocale + " locale");
|
|
@@ -3088,7 +3088,7 @@ sap.ui.define([
|
|
|
3088
3088
|
QUnit.module("Japanese Date");
|
|
3089
3089
|
|
|
3090
3090
|
QUnit.test("format date to Japanese type", function (assert) {
|
|
3091
|
-
var oDate = UI5Date.getInstance(
|
|
3091
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3092
3092
|
oDateFormat = DateFormat.getDateInstance({
|
|
3093
3093
|
calendarType: CalendarType.Japanese
|
|
3094
3094
|
}, new Locale("ja_JP"));
|
|
@@ -3123,7 +3123,7 @@ sap.ui.define([
|
|
|
3123
3123
|
});
|
|
3124
3124
|
|
|
3125
3125
|
QUnit.test("format/parse date with Gannen instead of Ichinen", function (assert) {
|
|
3126
|
-
var oDate = UI5Date.getInstance(
|
|
3126
|
+
var oDate = UI5Date.getInstance(2019, 4, 1),
|
|
3127
3127
|
sDate = "令和元年5月1日",
|
|
3128
3128
|
oDateFormat = DateFormat.getDateInstance({
|
|
3129
3129
|
calendarType: CalendarType.Japanese
|
|
@@ -3134,7 +3134,7 @@ sap.ui.define([
|
|
|
3134
3134
|
assert.strictEqual(sFormatted, sDate, "Date is formatted correctly with Gannen year");
|
|
3135
3135
|
assert.deepEqual(oParsed, oDate, "Date with Gannen year is parsed correctly");
|
|
3136
3136
|
|
|
3137
|
-
oDate = UI5Date.getInstance(
|
|
3137
|
+
oDate = UI5Date.getInstance(2019, 3, 1);
|
|
3138
3138
|
sDate = "平成31年4月1日";
|
|
3139
3139
|
sFormatted = oDateFormat.format(oDate);
|
|
3140
3140
|
oParsed = oDateFormat.parse(sDate);
|
|
@@ -3142,7 +3142,7 @@ sap.ui.define([
|
|
|
3142
3142
|
assert.strictEqual(sFormatted, sDate, "Year ending with 1 is formatted as a number");
|
|
3143
3143
|
assert.deepEqual(oParsed, oDate, "Date with numeric year is parsed correctly");
|
|
3144
3144
|
|
|
3145
|
-
oDate = UI5Date.getInstance(
|
|
3145
|
+
oDate = UI5Date.getInstance(2019, 4, 1);
|
|
3146
3146
|
sDate = "R1/5/1";
|
|
3147
3147
|
oDateFormat = DateFormat.getDateInstance({
|
|
3148
3148
|
calendarType: CalendarType.Japanese,
|
|
@@ -3154,7 +3154,7 @@ sap.ui.define([
|
|
|
3154
3154
|
assert.strictEqual(sFormatted, sDate, "Date is formatted correctly with numeric year");
|
|
3155
3155
|
assert.deepEqual(oParsed, oDate, "Date with numeric year is parsed correctly");
|
|
3156
3156
|
|
|
3157
|
-
oDate = [UI5Date.getInstance(
|
|
3157
|
+
oDate = [UI5Date.getInstance(2019, 4, 1), UI5Date.getInstance(2019, 4, 10)];
|
|
3158
3158
|
sDate = "令和元年5月1日~10日";
|
|
3159
3159
|
oDateFormat = DateFormat.getDateInstance({
|
|
3160
3160
|
calendarType: CalendarType.Japanese,
|
|
@@ -3167,7 +3167,7 @@ sap.ui.define([
|
|
|
3167
3167
|
assert.strictEqual(sFormatted, sDate, "Date interval is formatted correctly with Gannen year");
|
|
3168
3168
|
assert.deepEqual(oParsed, oDate, "Date interval with Gannen year is parsed correctly");
|
|
3169
3169
|
|
|
3170
|
-
oDate = [UI5Date.getInstance(
|
|
3170
|
+
oDate = [UI5Date.getInstance(2019, 3, 1), UI5Date.getInstance(2019, 4, 1)];
|
|
3171
3171
|
sDate = "平成31年4月1日~令和元年5月1日";
|
|
3172
3172
|
sFormatted = oDateFormat.format(oDate);
|
|
3173
3173
|
oParsed = oDateFormat.parse(sDate);
|
|
@@ -3204,7 +3204,7 @@ sap.ui.define([
|
|
|
3204
3204
|
QUnit.module("Japanese Date in locale en");
|
|
3205
3205
|
|
|
3206
3206
|
QUnit.test("format date to Japanese type with locale en", function (assert) {
|
|
3207
|
-
var oDate = UI5Date.getInstance(
|
|
3207
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3208
3208
|
oDateFormat = DateFormat.getDateInstance({
|
|
3209
3209
|
calendarType: CalendarType.Japanese
|
|
3210
3210
|
});
|
|
@@ -3239,7 +3239,7 @@ sap.ui.define([
|
|
|
3239
3239
|
QUnit.module("Persian Date");
|
|
3240
3240
|
|
|
3241
3241
|
QUnit.test("format date to Persian type", function (assert) {
|
|
3242
|
-
var oDate = UI5Date.getInstance(
|
|
3242
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3243
3243
|
oDateFormat = DateFormat.getDateInstance({
|
|
3244
3244
|
calendarType: CalendarType.Persian
|
|
3245
3245
|
}, new Locale("fa_IR"));
|
|
@@ -3274,7 +3274,7 @@ sap.ui.define([
|
|
|
3274
3274
|
QUnit.module("Persian Date in locale en");
|
|
3275
3275
|
|
|
3276
3276
|
QUnit.test("format date to Persian type with locale en", function (assert) {
|
|
3277
|
-
var oDate = UI5Date.getInstance(
|
|
3277
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3278
3278
|
oDateFormat = DateFormat.getDateInstance({
|
|
3279
3279
|
calendarType: CalendarType.Persian
|
|
3280
3280
|
});
|
|
@@ -3309,7 +3309,7 @@ sap.ui.define([
|
|
|
3309
3309
|
QUnit.module("Buddhist Date");
|
|
3310
3310
|
|
|
3311
3311
|
QUnit.test("format date to Buddhist type", function (assert) {
|
|
3312
|
-
var oDate = UI5Date.getInstance(
|
|
3312
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3313
3313
|
oDateFormat = DateFormat.getDateInstance({
|
|
3314
3314
|
calendarType: CalendarType.Buddhist
|
|
3315
3315
|
}, new Locale("th_TH"));
|
|
@@ -3371,7 +3371,7 @@ sap.ui.define([
|
|
|
3371
3371
|
QUnit.module("Buddhist Date in locale en");
|
|
3372
3372
|
|
|
3373
3373
|
QUnit.test("format date to Buddhist type with locale en", function (assert) {
|
|
3374
|
-
var oDate = UI5Date.getInstance(
|
|
3374
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3375
3375
|
oDateFormat = DateFormat.getDateInstance({
|
|
3376
3376
|
calendarType: CalendarType.Buddhist
|
|
3377
3377
|
});
|
|
@@ -3380,7 +3380,7 @@ sap.ui.define([
|
|
|
3380
3380
|
});
|
|
3381
3381
|
|
|
3382
3382
|
QUnit.test("format date to Buddhist type with locale en and calendar week", function (assert) {
|
|
3383
|
-
var oDate = UI5Date.getInstance(
|
|
3383
|
+
var oDate = UI5Date.getInstance(2001, 6, 4),
|
|
3384
3384
|
oDateFormat = DateFormat.getDateInstance({
|
|
3385
3385
|
calendarType: CalendarType.Buddhist,
|
|
3386
3386
|
pattern: "YYYY'/'ww"
|
|
@@ -3420,6 +3420,35 @@ sap.ui.define([
|
|
|
3420
3420
|
doTestRelative(assert, false, { style: "long", relativeRange: [1, 5], calendarType: CalendarType.Buddhist }, "en", "style long, range [1, 5], en with calendar type Buddhist");
|
|
3421
3421
|
});
|
|
3422
3422
|
|
|
3423
|
+
// DINC0133323
|
|
3424
|
+
[
|
|
3425
|
+
{buddhistYear : 2465, date : "May 1, 2465 BE", expected : {day : 1, month : 4, year : 1922}},
|
|
3426
|
+
{buddhistYear : 2482, date : "Mar 1, 2482 BE", expected : {day : 1, month : 2, year : 1940}},
|
|
3427
|
+
{buddhistYear : 2483, date : "Apr 1, 2483 BE", expected : {day : 1, month : 3, year : 1940}},
|
|
3428
|
+
{buddhistYear : 2484, date : "Jan 1, 2484 BE", expected : {day : 1, month : 0, year : 1941}},
|
|
3429
|
+
{buddhistYear : 2484, date : "Apr 1, 2484 BE", expected : {day : 1, month : 3, year : 1941}}
|
|
3430
|
+
].forEach(function (oFixture, i) {
|
|
3431
|
+
QUnit.test("parse and format dates with Buddhist calendar around era change " + i, function (assert) {
|
|
3432
|
+
const oDateFormat = DateFormat.getDateInstance({
|
|
3433
|
+
calendarType: CalendarType.Buddhist
|
|
3434
|
+
});
|
|
3435
|
+
const oFullYearSpy = this.spy(Buddhist.prototype, "setUTCFullYear");
|
|
3436
|
+
const oMonthSpy = this.spy(Buddhist.prototype, "setUTCMonth");
|
|
3437
|
+
|
|
3438
|
+
// code under test
|
|
3439
|
+
const oDate = oDateFormat.parse(oFixture.date);
|
|
3440
|
+
|
|
3441
|
+
assert.ok(oFullYearSpy.calledOnceWithExactly(oFixture.buddhistYear, oFixture.expected.month,
|
|
3442
|
+
oFixture.expected.day));
|
|
3443
|
+
assert.ok(oMonthSpy.notCalled, "setMonth is not called");
|
|
3444
|
+
assert.strictEqual(oDate.getFullYear(), oFixture.expected.year);
|
|
3445
|
+
assert.strictEqual(oDate.getMonth(), oFixture.expected.month);
|
|
3446
|
+
assert.strictEqual(oDate.getDate(), 1, oFixture.expected.day);
|
|
3447
|
+
|
|
3448
|
+
// code under test
|
|
3449
|
+
assert.strictEqual(oDateFormat.format(oDate), oFixture.date);
|
|
3450
|
+
});
|
|
3451
|
+
});
|
|
3423
3452
|
|
|
3424
3453
|
QUnit.module("interval options validation", {
|
|
3425
3454
|
beforeEach: function (assert) {
|
|
@@ -22,6 +22,8 @@ sap.ui.define([
|
|
|
22
22
|
});
|
|
23
23
|
|
|
24
24
|
QUnit.test("Test init with default settings", function (assert) {
|
|
25
|
+
const done = assert.async();
|
|
26
|
+
|
|
25
27
|
Mobile.init();
|
|
26
28
|
|
|
27
29
|
// check viewport: <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
@@ -36,7 +38,7 @@ sap.ui.define([
|
|
|
36
38
|
var $mwac = jQuery("meta").filter("[name=mobile-web-app-capable]");
|
|
37
39
|
assert.equal($amwac.length, 1, "There should be an apple-mobile-web-app-capable meta tag");
|
|
38
40
|
assert.equal($amwac.attr("content"), "yes", "The apple-mobile-web-app-capable meta tag content should be correct");
|
|
39
|
-
assert.equal($mwac.length,
|
|
41
|
+
assert.equal($mwac.length, 1, "There should be an mobile-web-app-capable meta tag due to compatibility");
|
|
40
42
|
}
|
|
41
43
|
|
|
42
44
|
// check status bar style: <meta name="apple-mobile-web-app-status-bar-style" content="default">
|
|
@@ -50,13 +52,16 @@ sap.ui.define([
|
|
|
50
52
|
var $ti = jQuery("link").filter("[rel=apple-touch-icon]");
|
|
51
53
|
assert.equal($ti.length, 0, "There should be no apple-touch-icon tag");
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
setTimeout(() => {
|
|
56
|
+
// Check whether size changes through new viewport were detected and the Device.resize values were adapted.
|
|
57
|
+
assert.equal(window.innerHeight, Device.resize.height, "Device.resize.height is set correctly.");
|
|
58
|
+
assert.equal(window.innerWidth, Device.resize.width, "Device.resize.width is set correctly.");
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
// Check that additional init without parameters does not crash ==> See BCP 2270099497
|
|
61
|
+
Mobile.init();
|
|
62
|
+
assert.ok(true, "Mobile.init() was re-executed without exception.");
|
|
63
|
+
done();
|
|
64
|
+
}, 50);
|
|
60
65
|
});
|
|
61
66
|
|
|
62
67
|
QUnit.test("Test init with custom settings", function (assert) {
|
|
@@ -807,5 +807,66 @@
|
|
|
807
807
|
"text": " Add sap-system to OData V4 service URLs"
|
|
808
808
|
}
|
|
809
809
|
]
|
|
810
|
+
},
|
|
811
|
+
"1.120.17": {
|
|
812
|
+
"date": "July 2024",
|
|
813
|
+
"notes": [
|
|
814
|
+
{
|
|
815
|
+
"id": "09f3f3272ebe7034f5cf81763976d3dd1718a80e",
|
|
816
|
+
"type": "FIX",
|
|
817
|
+
"text": " sap.ui.model.json.JSONModel#loadData: Don't use JSONP"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"id": "bf3541a8b52aac9b7786da3912498cd15a9bfb16",
|
|
821
|
+
"type": "FIX",
|
|
822
|
+
"text": " sap.ui.core.util.LibraryInfo: Loosen baseUrl regex check"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"id": "1dcad63d6d858e4bcd7685605f40d4fc6289a3c9",
|
|
826
|
+
"type": "FIX",
|
|
827
|
+
"text": " sap/ui/core/.library: Remove wrong component for sap/ui/core/util/MockServer"
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"id": "86d3a35d8991b3a191660626fc77652bb1bfa6de",
|
|
831
|
+
"type": "FIX",
|
|
832
|
+
"text": " sap.ui.performance.XHRInterceptor: Fix CORS check"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"id": "f6b1d3719a89a64dbc89206fd6b7dcd466a01803",
|
|
836
|
+
"type": "FIX",
|
|
837
|
+
"text": " util/Mobile: update window size with delay after viewport is set"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"id": "f43529b494184af3a8962108f0fc905acb9682cd",
|
|
841
|
+
"type": "FIX",
|
|
842
|
+
"text": " sap.ui.core.format.DateFormat.qunit: Fix flaky tests"
|
|
843
|
+
},
|
|
844
|
+
{
|
|
845
|
+
"id": "ac4ad92e9770362dfea99a3bad8a9e2dae788421",
|
|
846
|
+
"type": "FIX",
|
|
847
|
+
"text": " sap\\ui\\core\\format\\DateFormat.fnCreateDate: set UTCFullYear must be set with all components"
|
|
848
|
+
}
|
|
849
|
+
]
|
|
850
|
+
},
|
|
851
|
+
"1.120.18": {
|
|
852
|
+
"date": "July 2024",
|
|
853
|
+
"notes": [
|
|
854
|
+
{
|
|
855
|
+
"id": "ca8190849d7c2a56da46db4e7424ab538ee04f09",
|
|
856
|
+
"type": "FIX",
|
|
857
|
+
"text": " BindingInfo: Ensure that named models are only parsed once"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"id": "c905be5bc1d5bd6b89c49ae142101e9a466bf137",
|
|
861
|
+
"type": "FIX",
|
|
862
|
+
"text": " ControllerExtension support for TypeScript",
|
|
863
|
+
"references": [
|
|
864
|
+
{
|
|
865
|
+
"type": "BCP",
|
|
866
|
+
"reference": ""
|
|
867
|
+
}
|
|
868
|
+
]
|
|
869
|
+
}
|
|
870
|
+
]
|
|
810
871
|
}
|
|
811
872
|
}
|