@openui5/sap.ui.core 1.120.0 → 1.120.2
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/.reuse/dep5 +1 -1
- package/THIRDPARTY.txt +1 -1
- 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 +2 -2
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/Formatting.js +30 -14
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/Localization.js +1 -2
- 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/BindingParser.js +4 -4
- package/src/sap/ui/base/DataType.js +5 -5
- 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 +9 -65
- package/src/sap/ui/base/ManagedObjectMetadata.js +25 -1
- package/src/sap/ui/base/ManagedObjectRegistry.js +186 -169
- 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 +3 -3
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +55 -150
- package/src/sap/ui/core/ComponentContainer.js +5 -5
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentRegistry.js +153 -0
- package/src/sap/ui/core/ComponentSupport.js +3 -3
- package/src/sap/ui/core/Configuration.js +9 -7
- package/src/sap/ui/core/Control.js +6 -4
- package/src/sap/ui/core/Core.js +19 -71
- 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 +30 -142
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/ElementRegistry.js +159 -0
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/ExtensionPoint.js +5 -5
- package/src/sap/ui/core/FocusHandler.js +3 -2
- package/src/sap/ui/core/Fragment.js +7 -7
- 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/Lib.js +62 -32
- 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 +55 -11
- package/src/sap/ui/core/Manifest.js +4 -5
- package/src/sap/ui/core/Message.js +2 -1
- package/src/sap/ui/core/Messaging.js +2 -2
- 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/Shortcut.js +15 -9
- package/src/sap/ui/core/StaticArea.js +4 -1
- package/src/sap/ui/core/Theming.js +3 -3
- 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 +54 -12
- package/src/sap/ui/core/UIAreaRegistry.js +150 -0
- package/src/sap/ui/core/UIComponent.js +3 -3
- 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/XMLTemplateProcessor.js +95 -76
- package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
- package/src/sap/ui/core/cldr/cy.json +12 -3
- package/src/sap/ui/core/cldr/en_AU.json +48 -12
- package/src/sap/ui/core/cldr/en_GB.json +24 -6
- package/src/sap/ui/core/cldr/en_HK.json +24 -6
- package/src/sap/ui/core/cldr/en_IE.json +24 -6
- package/src/sap/ui/core/cldr/en_IN.json +24 -6
- package/src/sap/ui/core/cldr/en_NZ.json +24 -6
- package/src/sap/ui/core/cldr/en_PG.json +24 -6
- package/src/sap/ui/core/cldr/en_SG.json +24 -6
- package/src/sap/ui/core/cldr/en_ZA.json +24 -6
- package/src/sap/ui/core/cldr/es.json +288 -72
- package/src/sap/ui/core/cldr/es_AR.json +288 -72
- package/src/sap/ui/core/cldr/es_BO.json +288 -72
- package/src/sap/ui/core/cldr/es_CL.json +144 -36
- package/src/sap/ui/core/cldr/es_CO.json +144 -36
- package/src/sap/ui/core/cldr/es_MX.json +288 -72
- package/src/sap/ui/core/cldr/fa.json +48 -12
- package/src/sap/ui/core/cldr/id.json +56 -14
- package/src/sap/ui/core/cldr/kk.json +184 -46
- package/src/sap/ui/core/cldr/ms.json +56 -14
- package/src/sap/ui/core/cldr/nb.json +36 -9
- package/src/sap/ui/core/cldr/nl.json +264 -66
- package/src/sap/ui/core/cldr/nl_BE.json +264 -66
- package/src/sap/ui/core/cldr/pt.json +288 -72
- package/src/sap/ui/core/cldr/pt_PT.json +288 -72
- package/src/sap/ui/core/cldr/sr.json +96 -24
- package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
- package/src/sap/ui/core/date/Islamic.js +4 -4
- 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 +25 -13
- 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 +9 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +7 -7
- 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/message/MessageType.js +1 -1
- package/src/sap/ui/core/mvc/Controller.js +15 -13
- package/src/sap/ui/core/mvc/ControllerExtension.js +7 -5
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +2 -2
- package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +4 -4
- 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 +21 -10
- package/src/sap/ui/core/mvc/XMLView.js +8 -2
- 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/routing/History.js +1 -1
- package/src/sap/ui/core/routing/Route.js +6 -6
- package/src/sap/ui/core/routing/Router.js +6 -6
- package/src/sap/ui/core/routing/Targets.js +3 -3
- package/src/sap/ui/core/routing/async/Target.js +2 -2
- package/src/sap/ui/core/routing/async/Targets.js +1 -1
- package/src/sap/ui/core/rules/Misc.support.js +3 -3
- package/src/sap/ui/core/search/OpenSearchProvider.js +2 -1
- package/src/sap/ui/core/search/SearchProvider.js +2 -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 +7 -5
- 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/theming/Parameters.js +7 -7
- package/src/sap/ui/core/theming/ThemeHelper.js +2 -2
- package/src/sap/ui/core/theming/ThemeManager.js +2 -2
- 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 +34 -3
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/_LocalizationHelper.js +122 -0
- 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/Binding.js +2 -2
- package/src/sap/ui/model/ClientListBinding.js +6 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +6 -3
- package/src/sap/ui/model/CompositeDataState.js +5 -5
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +10 -10
- package/src/sap/ui/model/FilterProcessor.js +19 -16
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +2 -2
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +10 -8
- 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/analytics/odata4analytics.js +6 -6
- 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/ODataListBinding.js +5 -2
- package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +5 -2
- package/src/sap/ui/model/odata/v2/ODataModel.js +9 -58
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +6 -3
- package/src/sap/ui/model/odata/v4/Context.js +32 -27
- package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +198 -155
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataModel.js +9 -4
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -6
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +220 -85
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +33 -20
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +70 -18
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +9 -5
- 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/Interaction.js +20 -16
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +5 -5
- package/src/sap/ui/test/BranchTracking.js +4 -0
- package/src/sap/ui/test/actions/EnterText.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +1 -0
- package/src/sap/ui/test/generic/TestBase.js +4 -4
- package/src/sap/ui/test/generic/Utils.js +3 -2
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +23 -15
- package/src/ui5loader.js +9 -4
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +19 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/01/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/Component.js +9 -27
- package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +22 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/Component.js +9 -32
- package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/navigation/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/Component.js +9 -35
- package/test/sap/ui/core/demokit/tutorial/navigation/02/manifest.json +30 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/Component.js +9 -37
- package/test/sap/ui/core/demokit/tutorial/navigation/03/manifest.json +32 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/04/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/05/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/Component.js +9 -40
- package/test/sap/ui/core/demokit/tutorial/navigation/06/manifest.json +35 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/Component.js +9 -42
- package/test/sap/ui/core/demokit/tutorial/navigation/07/manifest.json +37 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/08/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/09/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/Component.js +9 -47
- package/test/sap/ui/core/demokit/tutorial/navigation/10/manifest.json +42 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/11/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/12/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/13/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/14/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/15/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/16/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/17/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
- package/test/sap/ui/core/qunit/ClientModel.qunit.js +28 -28
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
- package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
- package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
- package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
- package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/Lib.qunit.js +59 -0
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +86 -3
- package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
- package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
- package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +19 -0
- package/test/sap/ui/core/qunit/component/Component.qunit.js +35 -11
- package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
- package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/Islamic.qunit.js +4 -4
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
- package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
- package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
- package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +58 -16
- package/test/sap/ui/core/qunit/model/Model.qunit.js +43 -2
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
- package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
- package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
- package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
- package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
- package/test/sap/ui/core/qunit/odata/ODataModel_legacyAPIs.qunit.js +22 -22
- package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +16 -16
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +69 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +2 -11
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +17 -17
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +32 -36
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +19 -9
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2148 -124
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +453 -125
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +256 -8
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +40 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +11 -2
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +4 -7
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
- package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
- package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
- package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
- package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
- package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
- package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
- package/test/sap/ui/core/relnotes/changes-1.120.json +307 -0
|
@@ -5225,4 +5225,194 @@ sap.ui.define([
|
|
|
5225
5225
|
// code under test
|
|
5226
5226
|
assert.strictEqual(DateFormat.prototype.parse.call(oFormat, "~value"), "~dateObject");
|
|
5227
5227
|
});
|
|
5228
|
+
|
|
5229
|
+
//*****************************************************************************************************************
|
|
5230
|
+
// BCP: 2380137559
|
|
5231
|
+
QUnit.test("DateFormat: alternative month abbreviations (integrative test)", function (assert) {
|
|
5232
|
+
Configuration.setLanguage("en_GB");
|
|
5233
|
+
const oDateFormat = DateFormat.getDateInstance();
|
|
5234
|
+
const oDate = UI5Date.getInstance(2023, 8, 15);
|
|
5235
|
+
|
|
5236
|
+
// code under test - format based on current CLDR version
|
|
5237
|
+
assert.strictEqual(oDateFormat.format(oDate), "15 Sept 2023");
|
|
5238
|
+
|
|
5239
|
+
// code under test - parse abreviated month based on current CLDR version (43.0)
|
|
5240
|
+
assert.strictEqual(oDateFormat.parse("15 Sept 2023").getTime(), oDate.getTime());
|
|
5241
|
+
|
|
5242
|
+
// code under test - parsing abreviated month based on older CLDR version (41.0) still possible
|
|
5243
|
+
assert.strictEqual(oDateFormat.parse("15 Sep 2023").getTime(), oDate.getTime());
|
|
5244
|
+
});
|
|
5245
|
+
|
|
5246
|
+
//*****************************************************************************************************************
|
|
5247
|
+
QUnit.test("DateFormat#init", function (assert) {
|
|
5248
|
+
const oLocalData = {
|
|
5249
|
+
_getMonthsWithAlternatives() {},
|
|
5250
|
+
_getMonthsStandAloneWithAlternatives() {},
|
|
5251
|
+
getDayPeriods() {},
|
|
5252
|
+
getDays() {},
|
|
5253
|
+
getDaysStandAlone() {},
|
|
5254
|
+
getEras() {},
|
|
5255
|
+
getFlexibleDayPeriods() {},
|
|
5256
|
+
getFlexibleDayPeriodsStandAlone() {},
|
|
5257
|
+
getMonths() {},
|
|
5258
|
+
getMonthsStandAlone() {},
|
|
5259
|
+
getQuarters() {},
|
|
5260
|
+
getQuartersStandAlone() {}
|
|
5261
|
+
};
|
|
5262
|
+
const oDateFormat = {
|
|
5263
|
+
oFormatOptions: {calendarType: "~calendarType", pattern: "~pattern"},
|
|
5264
|
+
oLocaleData: oLocalData,
|
|
5265
|
+
getAllowedCharacters() {},
|
|
5266
|
+
parseCldrDatePattern() {}
|
|
5267
|
+
};
|
|
5268
|
+
const oLocalDataMock = this.mock(oLocalData);
|
|
5269
|
+
oLocalDataMock.expects("_getMonthsWithAlternatives").withExactArgs("abbreviated", "~calendarType")
|
|
5270
|
+
.returns("~aMonthsAbbrev");
|
|
5271
|
+
oLocalDataMock.expects("getMonths").withExactArgs("wide", "~calendarType").returns("~aMonthsWide");
|
|
5272
|
+
oLocalDataMock.expects("getMonths").withExactArgs("narrow", "~calendarType").returns("~aMonthsNarrow");
|
|
5273
|
+
oLocalDataMock.expects("_getMonthsStandAloneWithAlternatives").withExactArgs("abbreviated", "~calendarType")
|
|
5274
|
+
.returns("~aMonthsAbbrevSt");
|
|
5275
|
+
oLocalDataMock.expects("getMonthsStandAlone").withExactArgs("wide", "~calendarType").returns("~aMonthsWideSt");
|
|
5276
|
+
oLocalDataMock.expects("getMonthsStandAlone").withExactArgs("narrow", "~calendarType")
|
|
5277
|
+
.returns("~aMonthsNarrowSt");
|
|
5278
|
+
oLocalDataMock.expects("getDays").withExactArgs("abbreviated", "~calendarType").returns("~aDaysAbbrev");
|
|
5279
|
+
oLocalDataMock.expects("getDays").withExactArgs("wide", "~calendarType").returns("~aDaysWide");
|
|
5280
|
+
oLocalDataMock.expects("getDays").withExactArgs("narrow", "~calendarType").returns("~aDaysNarrow");
|
|
5281
|
+
oLocalDataMock.expects("getDays").withExactArgs("short", "~calendarType").returns("~aDaysShort");
|
|
5282
|
+
oLocalDataMock.expects("getDaysStandAlone").withExactArgs("abbreviated", "~calendarType")
|
|
5283
|
+
.returns("~aDaysAbbrevSt");
|
|
5284
|
+
oLocalDataMock.expects("getDaysStandAlone").withExactArgs("wide", "~calendarType").returns("~aDaysWideSt");
|
|
5285
|
+
oLocalDataMock.expects("getDaysStandAlone").withExactArgs("narrow", "~calendarType").returns("~aDaysNarrowSt");
|
|
5286
|
+
oLocalDataMock.expects("getDaysStandAlone").withExactArgs("short", "~calendarType").returns("~aDaysShortSt");
|
|
5287
|
+
oLocalDataMock.expects("getQuarters").withExactArgs("abbreviated", "~calendarType").returns("~aQuartersAbbrev");
|
|
5288
|
+
oLocalDataMock.expects("getQuarters").withExactArgs("wide", "~calendarType").returns("~aQuartersWide");
|
|
5289
|
+
oLocalDataMock.expects("getQuarters").withExactArgs("narrow", "~calendarType").returns("~aQuartersNarrow");
|
|
5290
|
+
oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("abbreviated", "~calendarType")
|
|
5291
|
+
.returns("~aQuartersAbbrevSt");
|
|
5292
|
+
oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("wide", "~calendarType")
|
|
5293
|
+
.returns("~aQuartersWideSt");
|
|
5294
|
+
oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("narrow", "~calendarType")
|
|
5295
|
+
.returns("~aQuartersNarrowSt");
|
|
5296
|
+
oLocalDataMock.expects("getEras").withExactArgs("abbreviated", "~calendarType").returns("~aErasAbbrev");
|
|
5297
|
+
oLocalDataMock.expects("getEras").withExactArgs("wide", "~calendarType").returns("~aErasWide");
|
|
5298
|
+
oLocalDataMock.expects("getEras").withExactArgs("narrow", "~calendarType").returns("~aErasNarrow");
|
|
5299
|
+
oLocalDataMock.expects("getDayPeriods").withExactArgs("abbreviated", "~calendarType")
|
|
5300
|
+
.returns("~aDayPeriodsAbbrev");
|
|
5301
|
+
oLocalDataMock.expects("getDayPeriods").withExactArgs("wide", "~calendarType").returns("~aDayPeriodsWide");
|
|
5302
|
+
oLocalDataMock.expects("getDayPeriods").withExactArgs("narrow", "~calendarType").returns("~aDayPeriodsNarrow");
|
|
5303
|
+
oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("abbreviated", "~calendarType")
|
|
5304
|
+
.returns("~oFlexibleDayPeriodsAbbrev");
|
|
5305
|
+
oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("wide", "~calendarType")
|
|
5306
|
+
.returns("~oFlexibleDayPeriodsWide");
|
|
5307
|
+
oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("narrow", "~calendarType")
|
|
5308
|
+
.returns("~oFlexibleDayPeriodsNarrow");
|
|
5309
|
+
oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("abbreviated", "~calendarType")
|
|
5310
|
+
.returns("~oFlexibleDayPeriodsAbbrevSt");
|
|
5311
|
+
oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("wide", "~calendarType")
|
|
5312
|
+
.returns("~oFlexibleDayPeriodsWideSt");
|
|
5313
|
+
oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("narrow", "~calendarType")
|
|
5314
|
+
.returns("~oFlexibleDayPeriodsNarrowSt");
|
|
5315
|
+
this.mock(oDateFormat).expects("parseCldrDatePattern").withExactArgs("~pattern").returns("~aFormatArray");
|
|
5316
|
+
this.mock(oDateFormat).expects("getAllowedCharacters").withExactArgs("~aFormatArray")
|
|
5317
|
+
.returns("~sAllowedCharacters");
|
|
5318
|
+
|
|
5319
|
+
// code under test
|
|
5320
|
+
DateFormat.prototype.init.call(oDateFormat);
|
|
5321
|
+
|
|
5322
|
+
assert.strictEqual(oDateFormat.aMonthsAbbrev, "~aMonthsAbbrev");
|
|
5323
|
+
assert.strictEqual(oDateFormat.aMonthsWide, "~aMonthsWide");
|
|
5324
|
+
assert.strictEqual(oDateFormat.aMonthsNarrow, "~aMonthsNarrow");
|
|
5325
|
+
assert.strictEqual(oDateFormat.aMonthsAbbrevSt, "~aMonthsAbbrevSt");
|
|
5326
|
+
assert.strictEqual(oDateFormat.aMonthsWideSt, "~aMonthsWideSt");
|
|
5327
|
+
assert.strictEqual(oDateFormat.aMonthsNarrowSt, "~aMonthsNarrowSt");
|
|
5328
|
+
assert.strictEqual(oDateFormat.aDaysAbbrev, "~aDaysAbbrev");
|
|
5329
|
+
assert.strictEqual(oDateFormat.aDaysWide, "~aDaysWide");
|
|
5330
|
+
assert.strictEqual(oDateFormat.aDaysNarrow, "~aDaysNarrow");
|
|
5331
|
+
assert.strictEqual(oDateFormat.aDaysShort, "~aDaysShort");
|
|
5332
|
+
assert.strictEqual(oDateFormat.aDaysAbbrevSt, "~aDaysAbbrevSt");
|
|
5333
|
+
assert.strictEqual(oDateFormat.aDaysWideSt, "~aDaysWideSt");
|
|
5334
|
+
assert.strictEqual(oDateFormat.aDaysNarrowSt, "~aDaysNarrowSt");
|
|
5335
|
+
assert.strictEqual(oDateFormat.aDaysShortSt, "~aDaysShortSt");
|
|
5336
|
+
assert.strictEqual(oDateFormat.aQuartersAbbrev, "~aQuartersAbbrev");
|
|
5337
|
+
assert.strictEqual(oDateFormat.aQuartersWide, "~aQuartersWide");
|
|
5338
|
+
assert.strictEqual(oDateFormat.aQuartersNarrow, "~aQuartersNarrow");
|
|
5339
|
+
assert.strictEqual(oDateFormat.aQuartersAbbrevSt, "~aQuartersAbbrevSt");
|
|
5340
|
+
assert.strictEqual(oDateFormat.aQuartersWideSt, "~aQuartersWideSt");
|
|
5341
|
+
assert.strictEqual(oDateFormat.aQuartersNarrowSt, "~aQuartersNarrowSt");
|
|
5342
|
+
assert.strictEqual(oDateFormat.aErasNarrow, "~aErasNarrow");
|
|
5343
|
+
assert.strictEqual(oDateFormat.aErasAbbrev, "~aErasAbbrev");
|
|
5344
|
+
assert.strictEqual(oDateFormat.aErasWide, "~aErasWide");
|
|
5345
|
+
assert.strictEqual(oDateFormat.aDayPeriodsAbbrev, "~aDayPeriodsAbbrev");
|
|
5346
|
+
assert.strictEqual(oDateFormat.aDayPeriodsNarrow, "~aDayPeriodsNarrow");
|
|
5347
|
+
assert.strictEqual(oDateFormat.aDayPeriodsWide, "~aDayPeriodsWide");
|
|
5348
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsAbbrev, "~oFlexibleDayPeriodsAbbrev");
|
|
5349
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsNarrow, "~oFlexibleDayPeriodsNarrow");
|
|
5350
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsWide, "~oFlexibleDayPeriodsWide");
|
|
5351
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsAbbrevSt, "~oFlexibleDayPeriodsAbbrevSt");
|
|
5352
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsNarrowSt, "~oFlexibleDayPeriodsNarrowSt");
|
|
5353
|
+
assert.strictEqual(oDateFormat.oFlexibleDayPeriodsWideSt, "~oFlexibleDayPeriodsWideSt");
|
|
5354
|
+
assert.strictEqual(oDateFormat.aFormatArray, "~aFormatArray");
|
|
5355
|
+
assert.strictEqual(oDateFormat.sAllowedCharacters, "~sAllowedCharacters");
|
|
5356
|
+
});
|
|
5357
|
+
|
|
5358
|
+
//*****************************************************************************************************************
|
|
5359
|
+
QUnit.test("DateFormat#findEntry", function (assert) {
|
|
5360
|
+
const oParseHelperMock = this.mock(DateFormat._oParseHelper);
|
|
5361
|
+
oParseHelperMock.expects("startsWithIgnoreCase").never();
|
|
5362
|
+
|
|
5363
|
+
// code under test
|
|
5364
|
+
assert.deepEqual(DateFormat._oParseHelper.findEntry("foo", [], "~sLocale"), {index: -1, length: 0});
|
|
5365
|
+
|
|
5366
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "f", "~sLocale").returns(true);
|
|
5367
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "foo", "~sLocale").returns(true);
|
|
5368
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "FooBar", "~sLocale").returns(false);
|
|
5369
|
+
|
|
5370
|
+
// code under test
|
|
5371
|
+
assert.deepEqual(
|
|
5372
|
+
DateFormat._oParseHelper.findEntry("~value", ["f", "foo", "fo", "FooBar", "baz"], "~sLocale"),
|
|
5373
|
+
{index: 1, length: 3});
|
|
5374
|
+
|
|
5375
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "a", "~sLocale").returns(false);
|
|
5376
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "f", "~sLocale").returns(true);
|
|
5377
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt1", "~sLocale").returns(false);
|
|
5378
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt2", "~sLocale").returns(true);
|
|
5379
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt99", "~sLocale").returns(true);
|
|
5380
|
+
oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "FooBar", "~sLocale").returns(false);
|
|
5381
|
+
|
|
5382
|
+
// code under test
|
|
5383
|
+
assert.deepEqual(
|
|
5384
|
+
DateFormat._oParseHelper.findEntry("~value", ["a", "f", "x", ["alt1", "alt2", "alt3", "alt99"], "FooBar"],
|
|
5385
|
+
"~sLocale"),
|
|
5386
|
+
{index: 3, length: 5});
|
|
5387
|
+
});
|
|
5388
|
+
|
|
5389
|
+
//*****************************************************************************************************************
|
|
5390
|
+
QUnit.test("oSymbols.M#format: abbreviations contains array", function (assert) {
|
|
5391
|
+
const oField = {digits: 3};
|
|
5392
|
+
const oFormat = {aMonthsAbbrev: ["foo", "bar", ["baz", "qux"]]};
|
|
5393
|
+
// code under test
|
|
5394
|
+
assert.strictEqual(
|
|
5395
|
+
DateFormat.prototype.oSymbols.M.format(oField, new Date(Date.UTC(2023, 1, 1)), undefined, oFormat),
|
|
5396
|
+
"bar");
|
|
5397
|
+
|
|
5398
|
+
// code under test
|
|
5399
|
+
assert.strictEqual(
|
|
5400
|
+
DateFormat.prototype.oSymbols.M.format(oField, new Date(Date.UTC(2023, 2, 1)), undefined, oFormat),
|
|
5401
|
+
"baz");
|
|
5402
|
+
});
|
|
5403
|
+
|
|
5404
|
+
//*****************************************************************************************************************
|
|
5405
|
+
QUnit.test("oSymbols.L#format: abbreviations contains array", function (assert) {
|
|
5406
|
+
const oField = {digits: 3};
|
|
5407
|
+
const oFormat = {aMonthsAbbrevSt: ["foo", "bar", ["baz", "qux"]]};
|
|
5408
|
+
// code under test
|
|
5409
|
+
assert.strictEqual(
|
|
5410
|
+
DateFormat.prototype.oSymbols.L.format(oField, new Date(Date.UTC(2023, 1, 1)), undefined, oFormat),
|
|
5411
|
+
"bar");
|
|
5412
|
+
|
|
5413
|
+
// code under test
|
|
5414
|
+
assert.strictEqual(
|
|
5415
|
+
DateFormat.prototype.oSymbols.L.format(oField, new Date(Date.UTC(2023, 2, 1)), undefined, oFormat),
|
|
5416
|
+
"baz");
|
|
5417
|
+
});
|
|
5228
5418
|
});
|
|
@@ -110,7 +110,7 @@ sap.ui.define([
|
|
|
110
110
|
"Cannot format date interval: " + oDate1 + " is expected as an Array but given the wrong format");
|
|
111
111
|
assert.strictEqual(oDateInterval.formatValue([oDate1], "string"), "", "format type with invalid parameter");
|
|
112
112
|
// logged by DataType.getType
|
|
113
|
-
this.oLogMock.expects("error").withExactArgs("data type 'untype' could not be found.");
|
|
113
|
+
this.oLogMock.expects("error").withExactArgs("[FUTURE FATAL] data type 'untype' could not be found.");
|
|
114
114
|
checkFormatException(assert, oDateInterval, [oDate1, oDate2], "untype",
|
|
115
115
|
"Don't know how to format Date to untype");
|
|
116
116
|
|
|
@@ -142,7 +142,7 @@ sap.ui.define([
|
|
|
142
142
|
[oDate1, oDate2], "Interval string can be parsed into an array of dates");
|
|
143
143
|
checkParseException(assert, oDateInterval, "Nov 6", "string", "DateInterval.Invalid");
|
|
144
144
|
// logged by DataType.getType
|
|
145
|
-
this.oLogMock.expects("error").withExactArgs("data type 'untype' could not be found.");
|
|
145
|
+
this.oLogMock.expects("error").withExactArgs("[FUTURE FATAL] data type 'untype' could not be found.");
|
|
146
146
|
checkParseException(assert, oDateInterval, "Nov 6 - Dec 6, 2003", "untype",
|
|
147
147
|
"Don't know how to parse a date interval from untype");
|
|
148
148
|
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/* global QUnit, sinon */
|
|
2
|
+
sap.ui.define(["sap/ui/base/ManagedObjectRegistry", "sap/ui/base/ManagedObject"],
|
|
3
|
+
function (ManagedObjectRegistry, ManagedObject) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function createInstance(aInstanceId, FNClass) {
|
|
7
|
+
var aInstance = [];
|
|
8
|
+
var sTimeStamp = Date.now().toString(); // Ensure that ids are unique
|
|
9
|
+
aInstanceId.forEach(function (sId) {
|
|
10
|
+
aInstance.push(new FNClass(sId + sTimeStamp));
|
|
11
|
+
});
|
|
12
|
+
return aInstance;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function destroyInstance(aInstance) {
|
|
16
|
+
aInstance.forEach(function (oInstance) {
|
|
17
|
+
oInstance.destroy();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
QUnit.module("ManagedObjectRegistry (Happy Path)");
|
|
22
|
+
|
|
23
|
+
QUnit.test("Should mixin register/deregister", function (assert) {
|
|
24
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
25
|
+
constructor: function () {
|
|
26
|
+
ManagedObject.apply(this, arguments);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const registry = ManagedObjectRegistry.create();
|
|
31
|
+
registry.init(Foo);
|
|
32
|
+
|
|
33
|
+
assert.ok(Foo.prototype.register, "Has register prototype function");
|
|
34
|
+
assert.ok(Foo.prototype.deregister, "Has deregister prototype function");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
QUnit.test("Construction and destruction", function (assert) {
|
|
38
|
+
var aInstanceId = ["A", "B", "C"];
|
|
39
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
40
|
+
constructor: function () {
|
|
41
|
+
ManagedObject.apply(this, arguments);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const registry = ManagedObjectRegistry.create();
|
|
46
|
+
registry.init(Foo);
|
|
47
|
+
|
|
48
|
+
var aInstance = createInstance(aInstanceId, Foo);
|
|
49
|
+
assert.equal(registry.size, 3, "3 instances added");
|
|
50
|
+
destroyInstance(aInstance);
|
|
51
|
+
assert.equal(registry.size, 0, "3 instances removed");
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
QUnit.test("Should retrieve added instances as copy", function (assert) {
|
|
55
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
56
|
+
constructor: function () {
|
|
57
|
+
ManagedObject.apply(this, arguments);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
const registry = ManagedObjectRegistry.create();
|
|
62
|
+
registry.init(Foo);
|
|
63
|
+
|
|
64
|
+
var oFoo = new Foo("A");
|
|
65
|
+
|
|
66
|
+
var mElementsInRegistry = registry.all();
|
|
67
|
+
assert.equal(Object.keys(mElementsInRegistry).length, 1, "Contains 1 instance in map");
|
|
68
|
+
assert.equal(Object.getPrototypeOf(mElementsInRegistry), null, "Retrieved object contains no prototype functions");
|
|
69
|
+
|
|
70
|
+
oFoo.destroy();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
QUnit.test("Should retrieve instance by id", function (assert) {
|
|
74
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
75
|
+
constructor: function () {
|
|
76
|
+
ManagedObject.apply(this, arguments);
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const registry = ManagedObjectRegistry.create();
|
|
81
|
+
registry.init(Foo);
|
|
82
|
+
|
|
83
|
+
var oFoo1 = new Foo("A");
|
|
84
|
+
var oFoo2 = new Foo("B");
|
|
85
|
+
|
|
86
|
+
assert.ok(registry.get("B"), "Retrieves instance with id B");
|
|
87
|
+
destroyInstance([oFoo1, oFoo2]);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
QUnit.test("Should execute callback for all instances", function (assert) {
|
|
91
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
92
|
+
constructor: function () {
|
|
93
|
+
ManagedObject.apply(this, arguments);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
const registry = ManagedObjectRegistry.create();
|
|
98
|
+
registry.init(Foo);
|
|
99
|
+
|
|
100
|
+
var aCallbackCallee = [];
|
|
101
|
+
var oFoo1 = new Foo("A");
|
|
102
|
+
var oFoo2 = new Foo("B");
|
|
103
|
+
var oFoo3 = new Foo("C");
|
|
104
|
+
|
|
105
|
+
var fnCallback = function(oInstance, sId) {
|
|
106
|
+
aCallbackCallee.push(oInstance);
|
|
107
|
+
};
|
|
108
|
+
var fnCallbackSpy = sinon.spy(fnCallback);
|
|
109
|
+
|
|
110
|
+
registry.forEach(fnCallbackSpy);
|
|
111
|
+
assert.equal(fnCallbackSpy.callCount, 3, "Executed callback 3 times");
|
|
112
|
+
assert.ok(aCallbackCallee.indexOf(oFoo1) !== -1, "Executed callback for oFoo1");
|
|
113
|
+
assert.ok(aCallbackCallee.indexOf(oFoo2) !== -1, "Executed callback for oFoo2");
|
|
114
|
+
assert.ok(aCallbackCallee.indexOf(oFoo3) !== -1, "Executed callback for oFoo3");
|
|
115
|
+
|
|
116
|
+
destroyInstance([oFoo1, oFoo2, oFoo3]);
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
QUnit.module("ManagedObjectRegistry (Sad Path)");
|
|
120
|
+
|
|
121
|
+
QUnit.test("Should ensure that static registry property is immutable", function (assert) {
|
|
122
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
123
|
+
constructor: function () {
|
|
124
|
+
ManagedObject.apply(this, arguments);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
const registry = ManagedObjectRegistry.create();
|
|
129
|
+
registry.init(Foo);
|
|
130
|
+
|
|
131
|
+
assert.throws(function () {
|
|
132
|
+
registry.mutator = null;
|
|
133
|
+
}, "Throw on mutation");
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
QUnit.test("Should ensure that extended function is subclass of ManagedObject", function (assert) {
|
|
138
|
+
assert.throws(function () {
|
|
139
|
+
const registry = ManagedObjectRegistry.create();
|
|
140
|
+
registry.init(function Foo() { });
|
|
141
|
+
}, new TypeError("ManagedObjectRegistry mixin can only be applied to subclasses of sap.ui.base.ManagedObject"),
|
|
142
|
+
"throws because function is not subclass of ManagedObject");
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
QUnit.test("Should throw when object with same id is added", function (assert) {
|
|
146
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
147
|
+
constructor: function () {
|
|
148
|
+
ManagedObject.apply(this, arguments);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
const registry = ManagedObjectRegistry.create();
|
|
153
|
+
registry.init(Foo);
|
|
154
|
+
|
|
155
|
+
assert.throws(function () {
|
|
156
|
+
new Foo("A");
|
|
157
|
+
new Foo("A");
|
|
158
|
+
}, new Error("Error: adding object \"object\" with duplicate id 'A'"), "Same ids are not allowed");
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
});
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/* global QUnit, sinon */
|
|
2
|
+
sap.ui.define(["sap/ui/base/ManagedObjectRegistry", "sap/ui/base/ManagedObject"],
|
|
3
|
+
function (ManagedObjectRegistry, ManagedObject) {
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
function createInstance(aInstanceId, FNClass) {
|
|
7
|
+
var aInstance = [];
|
|
8
|
+
var sTimeStamp = Date.now().toString(); // Ensure that ids are unique
|
|
9
|
+
aInstanceId.forEach(function (sId) {
|
|
10
|
+
aInstance.push(new FNClass(sId + sTimeStamp));
|
|
11
|
+
});
|
|
12
|
+
return aInstance;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function destroyInstance(aInstance) {
|
|
16
|
+
aInstance.forEach(function (oInstance) {
|
|
17
|
+
oInstance.destroy();
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
QUnit.module("ManagedObjectRegistry (Happy Path)");
|
|
22
|
+
|
|
23
|
+
QUnit.test("Should mixin object", function (assert) {
|
|
24
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
25
|
+
constructor: function () {
|
|
26
|
+
ManagedObject.apply(this, arguments);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
ManagedObjectRegistry.apply(Foo);
|
|
31
|
+
|
|
32
|
+
assert.ok(Foo.prototype.register, "Has register prototype function");
|
|
33
|
+
assert.ok(Foo.prototype.deregister, "Has deregister prototype function");
|
|
34
|
+
assert.ok(Foo.hasOwnProperty("registry"), "Extended object has static property \"registry\"");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
QUnit.test("Construction and destruction", function (assert) {
|
|
38
|
+
var aInstanceId = ["A", "B", "C"];
|
|
39
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
40
|
+
constructor: function () {
|
|
41
|
+
ManagedObject.apply(this, arguments);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
ManagedObjectRegistry.apply(Foo);
|
|
45
|
+
|
|
46
|
+
var aInstance = createInstance(aInstanceId, Foo);
|
|
47
|
+
assert.equal(Foo.registry.size, 3, "3 instances added");
|
|
48
|
+
destroyInstance(aInstance);
|
|
49
|
+
assert.equal(Foo.registry.size, 0, "3 instances removed");
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
QUnit.test("Should retrieve added instances as copy", function (assert) {
|
|
53
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
54
|
+
constructor: function () {
|
|
55
|
+
ManagedObject.apply(this, arguments);
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
ManagedObjectRegistry.apply(Foo);
|
|
60
|
+
|
|
61
|
+
var oFoo = new Foo("A");
|
|
62
|
+
|
|
63
|
+
var mElementsInRegistry = Foo.registry.all();
|
|
64
|
+
assert.equal(Object.keys(mElementsInRegistry).length, 1, "Contains 1 instance in map");
|
|
65
|
+
assert.equal(Object.getPrototypeOf(mElementsInRegistry), null, "Retrieved object contains no prototype functions");
|
|
66
|
+
|
|
67
|
+
oFoo.destroy();
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
QUnit.test("Should retrieve instance by id", function (assert) {
|
|
71
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
72
|
+
constructor: function () {
|
|
73
|
+
ManagedObject.apply(this, arguments);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
ManagedObjectRegistry.apply(Foo);
|
|
78
|
+
|
|
79
|
+
var oFoo1 = new Foo("A");
|
|
80
|
+
var oFoo2 = new Foo("B");
|
|
81
|
+
|
|
82
|
+
assert.ok(Foo.registry.get("B"), "Retrieves instance with id B");
|
|
83
|
+
destroyInstance([oFoo1, oFoo2]);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
QUnit.test("Should execute callback for all instances", function (assert) {
|
|
87
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
88
|
+
constructor: function () {
|
|
89
|
+
ManagedObject.apply(this, arguments);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
ManagedObjectRegistry.apply(Foo);
|
|
94
|
+
var aCallbackCallee = [];
|
|
95
|
+
var oFoo1 = new Foo("A");
|
|
96
|
+
var oFoo2 = new Foo("B");
|
|
97
|
+
var oFoo3 = new Foo("C");
|
|
98
|
+
|
|
99
|
+
var fnCallback = function(oInstance, sId) {
|
|
100
|
+
aCallbackCallee.push(oInstance);
|
|
101
|
+
};
|
|
102
|
+
var fnCallbackSpy = sinon.spy(fnCallback);
|
|
103
|
+
|
|
104
|
+
Foo.registry.forEach(fnCallbackSpy);
|
|
105
|
+
assert.equal(fnCallbackSpy.callCount, 3, "Executed callback 3 times");
|
|
106
|
+
assert.ok(aCallbackCallee.indexOf(oFoo1) !== -1, "Executed callback for oFoo1");
|
|
107
|
+
assert.ok(aCallbackCallee.indexOf(oFoo2) !== -1, "Executed callback for oFoo2");
|
|
108
|
+
assert.ok(aCallbackCallee.indexOf(oFoo3) !== -1, "Executed callback for oFoo3");
|
|
109
|
+
|
|
110
|
+
destroyInstance([oFoo1, oFoo2, oFoo3]);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
QUnit.module("ManagedObjectRegistry (Sad Path)");
|
|
114
|
+
|
|
115
|
+
QUnit.test("Should ensure that static registry property is immutable", function (assert) {
|
|
116
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
117
|
+
constructor: function () {
|
|
118
|
+
ManagedObject.apply(this, arguments);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
ManagedObjectRegistry.apply(Foo);
|
|
122
|
+
|
|
123
|
+
assert.throws(function () {
|
|
124
|
+
Foo.registry.mutator = null;
|
|
125
|
+
}, "Throw on mutation");
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
QUnit.test("Should ensure that extended function is subclass of ManagedObject", function (assert) {
|
|
130
|
+
assert.throws(function () {
|
|
131
|
+
ManagedObjectRegistry.apply(function Foo() { });
|
|
132
|
+
}, new TypeError("ManagedObjectRegistry mixin can only be applied to subclasses of sap.ui.base.ManagedObject"),
|
|
133
|
+
"throws because function is not subclass of ManagedObject");
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
QUnit.test("Should throw when object with same id is added", function (assert) {
|
|
137
|
+
var Foo = ManagedObject.extend("Foo", {
|
|
138
|
+
constructor: function () {
|
|
139
|
+
ManagedObject.apply(this, arguments);
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
ManagedObjectRegistry.apply(Foo);
|
|
143
|
+
|
|
144
|
+
assert.throws(function () {
|
|
145
|
+
new Foo("A");
|
|
146
|
+
new Foo("A");
|
|
147
|
+
}, new Error("Error: adding object \"object\" with duplicate id 'A'"), "Same ids are not allowed");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
sap.ui.define(function() {
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
return {
|
|
5
|
+
name: "TestSuite for BaseObject, ManagedObject and their Helpers",
|
|
6
|
+
defaults: {
|
|
7
|
+
loader:{
|
|
8
|
+
paths:{
|
|
9
|
+
"fixture": "test-resources/sap/ui/core/qunit/ui5classes/fixture/"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
qunit: {
|
|
13
|
+
version: 2
|
|
14
|
+
},
|
|
15
|
+
sinon: {
|
|
16
|
+
version: 4
|
|
17
|
+
},
|
|
18
|
+
module: "./{name}.qunit"
|
|
19
|
+
},
|
|
20
|
+
tests: {
|
|
21
|
+
AlternativeTypes: {
|
|
22
|
+
title: "QUnit Page for AlternativeTypes",
|
|
23
|
+
loader: {
|
|
24
|
+
paths: {
|
|
25
|
+
"sap/ui/testlib": "test-resources/sap/ui/core/qunit/testdata/uilib/"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
ui5: {
|
|
29
|
+
libs: "sap.ui.testlib"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
DataType: {
|
|
33
|
+
coverage : {
|
|
34
|
+
only : "sap/ui/base/DataType"
|
|
35
|
+
},
|
|
36
|
+
title: "QUnit Page for sap/ui/base/DataType"
|
|
37
|
+
},
|
|
38
|
+
ManagedObject: {
|
|
39
|
+
title: "sap.ui.base.ManagedObject"
|
|
40
|
+
},
|
|
41
|
+
ManagedObject_BindingParser: {
|
|
42
|
+
title: "sap.ui.base.ManagedObject (no core boot)",
|
|
43
|
+
bootCore: false
|
|
44
|
+
},
|
|
45
|
+
ManagedObject_forwardAggregation: {
|
|
46
|
+
title: "sap.ui.base.ManagedObject (forward Aggregation)"
|
|
47
|
+
},
|
|
48
|
+
ManagedObject_isPropertyInitial: {
|
|
49
|
+
title: "sap.ui.base.ManagedObject (is Property Initial)"
|
|
50
|
+
},
|
|
51
|
+
ManagedObjectObserver: {
|
|
52
|
+
title: "sap.ui.base.ManagedObjectObserver"
|
|
53
|
+
},
|
|
54
|
+
ManagedObjectRegistry: {
|
|
55
|
+
title: "sap.ui.base.ManagedObjectRegistry"
|
|
56
|
+
},
|
|
57
|
+
ManagedObjectRegistry_legacyAPIs: {
|
|
58
|
+
title: "sap.ui.base.ManagedObjectRegistry_legacyAPIs"
|
|
59
|
+
},
|
|
60
|
+
ManagedObjectMetadata: {
|
|
61
|
+
title: "sap.ui.base.ManagedObjectMetadata",
|
|
62
|
+
sinon: {
|
|
63
|
+
version: 1, // bridge does not support nested modules
|
|
64
|
+
qunitBridge: true
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
/**
|
|
68
|
+
* @deprecated As of version 1.111 Mostly testing deprecated APIs
|
|
69
|
+
*/
|
|
70
|
+
Metadata: {
|
|
71
|
+
title: "sap.ui.base.Metadata"
|
|
72
|
+
},
|
|
73
|
+
Object: {
|
|
74
|
+
title: "sap.ui.base.Object"
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* @deprecated As of version 1.111
|
|
78
|
+
*/
|
|
79
|
+
Object_legacyAPIs: {
|
|
80
|
+
title: "sap.ui.base.Object (legacy APIs)"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
});
|
|
@@ -6,11 +6,12 @@ sap.ui.define([
|
|
|
6
6
|
"sap/m/Image",
|
|
7
7
|
"sap/m/Label",
|
|
8
8
|
"sap/ui/core/UIArea",
|
|
9
|
+
"sap/ui/core/UIAreaRegistry",
|
|
9
10
|
"sap/ui/core/mvc/XMLView",
|
|
10
11
|
"sap/ui/core/util/serializer/ViewSerializer",
|
|
11
12
|
"sap/ui/qunit/utils/createAndAppendDiv"
|
|
12
13
|
],
|
|
13
|
-
function (Log, Button, Image, Label, UIArea, XMLView, ViewSerializer, createAndAppendDiv) {
|
|
14
|
+
function (Log, Button, Image, Label, UIArea, UIAreaRegistry, XMLView, ViewSerializer, createAndAppendDiv) {
|
|
14
15
|
"use strict";
|
|
15
16
|
|
|
16
17
|
createAndAppendDiv(["xmlViewArea", "xmlViewWithoutControllerArea"]);
|
|
@@ -68,7 +69,7 @@ sap.ui.define([
|
|
|
68
69
|
});
|
|
69
70
|
|
|
70
71
|
QUnit.test("Serialize, Re-Instantiate and Check an XML View", function (assert) {
|
|
71
|
-
var oViewSerializer = new ViewSerializer(
|
|
72
|
+
var oViewSerializer = new ViewSerializer(UIAreaRegistry.get("xmlViewArea"), null, "sap.m");
|
|
72
73
|
|
|
73
74
|
var mXMLViews = oViewSerializer.serializeToXML();
|
|
74
75
|
var sXMLResult = mXMLViews["serializer.view.TestXml"];
|
|
@@ -84,7 +85,7 @@ sap.ui.define([
|
|
|
84
85
|
});
|
|
85
86
|
|
|
86
87
|
QUnit.test("Serialize, Check if a view that has no controller is still serializable", function (assert) {
|
|
87
|
-
var oViewSerializer = new ViewSerializer(
|
|
88
|
+
var oViewSerializer = new ViewSerializer(UIAreaRegistry.get("xmlViewWithoutControllerArea"), null, "sap.m");
|
|
88
89
|
|
|
89
90
|
var mXMLViews = oViewSerializer.serializeToXML();
|
|
90
91
|
var sResult = mXMLViews["serializer.view.TestViewWithoutController"];
|