@openui5/sap.ui.core 1.120.1 → 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 +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/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 -9
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -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 +30 -144
- package/src/sap/ui/core/ComponentContainer.js +3 -3
- 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 +1 -1
- package/src/sap/ui/core/Control.js +6 -4
- package/src/sap/ui/core/Core.js +6 -4
- 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 +25 -141
- 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 +5 -5
- 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 +7 -7
- 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 +51 -13
- 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/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 +1 -1
- 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 +20 -9
- 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 +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +6 -4
- 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/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/ClientModel.js +1 -1
- 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 +8 -5
- 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 +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/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/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/ODataModel.js +4 -4
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +32 -27
- 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 +1 -1
- 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/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 -5
- 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/ui5.yaml +1 -1
- 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/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/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/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/BindingParser.qunit.js +4 -4
- 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 +19 -2
- 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/component/Component.qunit.js +9 -8
- 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/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/FilterProcessor.qunit.js +22 -8
- 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/v2/ODataModel.integration.qunit.js +69 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2111 -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 +38 -14
- 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 +225 -0
|
@@ -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"];
|
|
@@ -438,5 +438,230 @@
|
|
|
438
438
|
]
|
|
439
439
|
}
|
|
440
440
|
]
|
|
441
|
+
},
|
|
442
|
+
"1.120.2": {
|
|
443
|
+
"date": "December 2023",
|
|
444
|
+
"notes": [
|
|
445
|
+
{
|
|
446
|
+
"id": "fa524006c44e83ff1f045be04a397c2382ebc896",
|
|
447
|
+
"type": "FIX",
|
|
448
|
+
"text": " Add 'FUTURE FATAL' Marker for error/warning logs",
|
|
449
|
+
"references": [
|
|
450
|
+
{
|
|
451
|
+
"type": "BCP",
|
|
452
|
+
"reference": ""
|
|
453
|
+
}
|
|
454
|
+
]
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
"id": "b910288d2ef9b5a568ef6e02dd4f18c3d0c5ec3b",
|
|
458
|
+
"type": "FIX",
|
|
459
|
+
"text": " sap.ui.model.odata.v4.lib._CollectionCache#read: avoid endless busy indicator sometimes when scrolling up",
|
|
460
|
+
"references": [
|
|
461
|
+
{
|
|
462
|
+
"type": "BCP",
|
|
463
|
+
"reference": ""
|
|
464
|
+
}
|
|
465
|
+
]
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"id": "c776473e21141e6449663689f0ea7744a406bd8c",
|
|
469
|
+
"type": "FIX",
|
|
470
|
+
"text": " CLDR: allow user input based on historical variants for month abbreviations",
|
|
471
|
+
"references": [
|
|
472
|
+
{
|
|
473
|
+
"type": "BCP",
|
|
474
|
+
"reference": "2380137559"
|
|
475
|
+
}
|
|
476
|
+
]
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"id": "e1d0c83dc46fb8a43896d52dcd1374f0e1a5bdb9",
|
|
480
|
+
"type": "FIX",
|
|
481
|
+
"text": " core.Lib: Add debug log statement when registering enums",
|
|
482
|
+
"references": [
|
|
483
|
+
{
|
|
484
|
+
"type": "BCP",
|
|
485
|
+
"reference": ""
|
|
486
|
+
}
|
|
487
|
+
]
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
"id": "4f27ed11de744b0af2ab5c975441b04781573db9",
|
|
491
|
+
"type": "FIX",
|
|
492
|
+
"text": " Introduce sap/ui/core/ElementRegistry/ComponentRegistry/UIAreaRegistry",
|
|
493
|
+
"references": [
|
|
494
|
+
{
|
|
495
|
+
"type": "BCP",
|
|
496
|
+
"reference": ""
|
|
497
|
+
}
|
|
498
|
+
]
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"id": "d5c21234e93bf8c49b160260924231a5c74936d4",
|
|
502
|
+
"type": "FIX",
|
|
503
|
+
"text": " core/qunit: Deprecate ControlRenderer test",
|
|
504
|
+
"references": [
|
|
505
|
+
{
|
|
506
|
+
"type": "BCP",
|
|
507
|
+
"reference": ""
|
|
508
|
+
}
|
|
509
|
+
]
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"id": "66cbd78ca43eec4347f71d2f2f7f4d838ab00d73",
|
|
513
|
+
"type": "FIX",
|
|
514
|
+
"text": " core/routing: find parent route from the router of the inheritance parent",
|
|
515
|
+
"references": [
|
|
516
|
+
{
|
|
517
|
+
"type": "BCP",
|
|
518
|
+
"reference": "002075129400009859762023"
|
|
519
|
+
}
|
|
520
|
+
]
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"id": "8dc6069a1c360553ea78afc2590af8af3378e6c2",
|
|
524
|
+
"type": "FIX",
|
|
525
|
+
"text": " XMLTemplateProcessor: Reintroduce FUTURE-FATAL log for missing control classes",
|
|
526
|
+
"references": [
|
|
527
|
+
{
|
|
528
|
+
"type": "BCP",
|
|
529
|
+
"reference": ""
|
|
530
|
+
}
|
|
531
|
+
]
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"id": "7255d2ac1d4dbbf0211050fbc9033b986da90509",
|
|
535
|
+
"type": "FIX",
|
|
536
|
+
"text": " sap.ui.model.FilterProcessor.combineFilters: combine Filter.NONE with other filters",
|
|
537
|
+
"references": [
|
|
538
|
+
{
|
|
539
|
+
"type": "BCP",
|
|
540
|
+
"reference": "2380132519"
|
|
541
|
+
}
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"id": "a93abb73f5b5a62a99073d2e40c42c43b72d4962",
|
|
546
|
+
"type": "FIX",
|
|
547
|
+
"text": " core/XMLTemplateProcessor: load class of nested view before instance creation",
|
|
548
|
+
"references": [
|
|
549
|
+
{
|
|
550
|
+
"type": "BCP",
|
|
551
|
+
"reference": ""
|
|
552
|
+
}
|
|
553
|
+
]
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"id": "a11ff7effe5c7953fb6129dd3cc66078d527a76e",
|
|
557
|
+
"type": "FIX",
|
|
558
|
+
"text": " sap.ui.model.odata.ODataMessageParser#_createTarget: normalize also the full target",
|
|
559
|
+
"references": [
|
|
560
|
+
{
|
|
561
|
+
"type": "BCP",
|
|
562
|
+
"reference": "2370146338"
|
|
563
|
+
}
|
|
564
|
+
]
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"id": "1d01293c83c42f2ae2b9f4d837c8b872dff638d7",
|
|
568
|
+
"type": "FIX",
|
|
569
|
+
"text": " sap.ui.model.analytics.odata4analytics.FilterExpression#renderUI5FilterArray: fix sorting of filters",
|
|
570
|
+
"references": [
|
|
571
|
+
{
|
|
572
|
+
"type": "BCP",
|
|
573
|
+
"reference": "002075129500009851762023"
|
|
574
|
+
}
|
|
575
|
+
]
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
"id": "59c08dae771b6a19f2961cebca8ba9d639475847",
|
|
579
|
+
"type": "FIX",
|
|
580
|
+
"text": " sap.ui.core.message.Message fix references to MessageType",
|
|
581
|
+
"references": [
|
|
582
|
+
{
|
|
583
|
+
"type": "BCP",
|
|
584
|
+
"reference": ""
|
|
585
|
+
}
|
|
586
|
+
]
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"id": "86d9b992f1c93649c0e53b414114169061f19886",
|
|
590
|
+
"type": "FIX",
|
|
591
|
+
"text": " Deprecate sap.ui.core.Message/MessageType",
|
|
592
|
+
"references": [
|
|
593
|
+
{
|
|
594
|
+
"type": "BCP",
|
|
595
|
+
"reference": ""
|
|
596
|
+
}
|
|
597
|
+
]
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
"id": "59f0716e512e0a355df4a9305399cbab553a318f",
|
|
601
|
+
"type": "FIX",
|
|
602
|
+
"text": " Deprecate public registry of Component, Element and UIArea",
|
|
603
|
+
"references": [
|
|
604
|
+
{
|
|
605
|
+
"type": "BCP",
|
|
606
|
+
"reference": ""
|
|
607
|
+
}
|
|
608
|
+
]
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"id": "3daff460c7f10d5aad3d077522ce58e8714062d3",
|
|
612
|
+
"type": "FIX",
|
|
613
|
+
"text": " Views: Cloning a View is deprecated in favor of the specific factory functions",
|
|
614
|
+
"references": [
|
|
615
|
+
{
|
|
616
|
+
"type": "BCP",
|
|
617
|
+
"reference": ""
|
|
618
|
+
}
|
|
619
|
+
]
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"id": "0c6f59fa5db2a9b981f049bd3b029b9d8f98c00f",
|
|
623
|
+
"type": "FIX",
|
|
624
|
+
"text": " Ensure correct 'resource-root' and 'theme-root' configuration",
|
|
625
|
+
"references": [
|
|
626
|
+
{
|
|
627
|
+
"type": "BCP",
|
|
628
|
+
"reference": "002028376700065110512023"
|
|
629
|
+
}
|
|
630
|
+
]
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"id": "864aa716ad7cf92e208349b578f3a6ee65c3fd3d",
|
|
634
|
+
"type": "FIX",
|
|
635
|
+
"text": " sap.ui.test.action.EnterText: Revert restriction",
|
|
636
|
+
"references": [
|
|
637
|
+
{
|
|
638
|
+
"type": "BCP",
|
|
639
|
+
"reference": "2370143073"
|
|
640
|
+
}
|
|
641
|
+
]
|
|
642
|
+
},
|
|
643
|
+
{
|
|
644
|
+
"id": "0deed48088af2e884eb6bb2ab502298b76694890",
|
|
645
|
+
"type": "FIX",
|
|
646
|
+
"text": " Lib/ui5loader: Provide deprecation message for pseudo-modules",
|
|
647
|
+
"references": [
|
|
648
|
+
{
|
|
649
|
+
"type": "BCP",
|
|
650
|
+
"reference": "2370138723"
|
|
651
|
+
}
|
|
652
|
+
]
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"id": "3c7eea4b30f97ce1e1e1370926c5b64d18a32400",
|
|
656
|
+
"type": "FIX",
|
|
657
|
+
"text": " core/Shortcut: trigger \"blur\" within a timeout",
|
|
658
|
+
"references": [
|
|
659
|
+
{
|
|
660
|
+
"type": "BCP",
|
|
661
|
+
"reference": "002075129500007245922023"
|
|
662
|
+
}
|
|
663
|
+
]
|
|
664
|
+
}
|
|
665
|
+
]
|
|
441
666
|
}
|
|
442
667
|
}
|