@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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*global QUnit */
|
|
2
|
+
sap.ui.define([
|
|
3
|
+
"sap/ui/core/Element"
|
|
4
|
+
], function(Element) {
|
|
5
|
+
"use strict";
|
|
6
|
+
|
|
7
|
+
function cleanUpRegistry() {
|
|
8
|
+
Element.registry.forEach(function(oElement) {
|
|
9
|
+
oElement.destroy();
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
QUnit.module("Element registry", {
|
|
14
|
+
beforeEach: function () {
|
|
15
|
+
cleanUpRegistry();
|
|
16
|
+
},
|
|
17
|
+
afterEach: function() {
|
|
18
|
+
cleanUpRegistry();
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
QUnit.test("Element registry access", function(assert) {
|
|
23
|
+
var oFooA = new Element("A");
|
|
24
|
+
var oFooB = new Element("B");
|
|
25
|
+
var oFooC = new Element("C");
|
|
26
|
+
var fnCallbackSpy = this.spy(function() {});
|
|
27
|
+
var aFilteredElements = [];
|
|
28
|
+
|
|
29
|
+
assert.ok(Element.hasOwnProperty("registry"), "Element has static method to access registry");
|
|
30
|
+
assert.equal(Element.registry.size, 3, "Return number of registered element instances");
|
|
31
|
+
assert.deepEqual(Object.keys(Element.registry.all()).sort(), ["A", "B", "C"], "Return all registered element instances");
|
|
32
|
+
assert.ok(Element.getElementById("B") === oFooB, "Return reference of element B from registry by ID");
|
|
33
|
+
|
|
34
|
+
Element.registry.forEach(fnCallbackSpy);
|
|
35
|
+
assert.ok(fnCallbackSpy.calledThrice, "Callback was executed 3 times");
|
|
36
|
+
|
|
37
|
+
aFilteredElements = Element.registry.filter(function(oElement) {
|
|
38
|
+
return ["B", "C"].indexOf(oElement.getId()) > -1;
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
assert.equal(aFilteredElements.length, 2, "Return 2 components matching the filter criteria");
|
|
42
|
+
|
|
43
|
+
oFooA.destroy();
|
|
44
|
+
oFooB.destroy();
|
|
45
|
+
oFooC.destroy();
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
});
|
|
@@ -139,7 +139,7 @@ sap.ui.define([
|
|
|
139
139
|
var oUI5ElementFound = Element.closestTo(jQuery("#startPoint"));
|
|
140
140
|
assert.strictEqual(oUI5ElementFound, oUI5Element);
|
|
141
141
|
|
|
142
|
-
sinon.assert.calledWithExactly(oErrorLogSpy, "[FUTURE] Do not call Element.closestTo() with jQuery object as parameter. \
|
|
142
|
+
sinon.assert.calledWithExactly(oErrorLogSpy, "[FUTURE FATAL] Do not call Element.closestTo() with jQuery object as parameter. \
|
|
143
143
|
The function should be called with either a DOM Element or a CSS selector. \
|
|
144
144
|
(future error, ignored for now)");
|
|
145
145
|
|
|
@@ -7,19 +7,16 @@ sap.ui.define([
|
|
|
7
7
|
"sap/ui/core/Fragment",
|
|
8
8
|
"sap/ui/core/Element",
|
|
9
9
|
"sap/ui/core/XMLTemplateProcessor",
|
|
10
|
-
"sap/m/Panel",
|
|
11
10
|
"sap/m/Button",
|
|
12
11
|
"sap/ui/layout/HorizontalLayout",
|
|
13
12
|
"sap/ui/model/json/JSONModel",
|
|
14
13
|
"sap/ui/qunit/utils/createAndAppendDiv",
|
|
15
14
|
"sap/ui/qunit/utils/nextUIUpdate",
|
|
16
15
|
"sap/ui/core/mvc/View",
|
|
17
|
-
"sap/ui/core/mvc/
|
|
18
|
-
"sap/ui/core/mvc/JSView",
|
|
19
|
-
"sap/ui/core/mvc/Controller",
|
|
16
|
+
"sap/ui/core/mvc/ViewType",
|
|
20
17
|
"sap/base/util/LoaderExtensions",
|
|
21
18
|
"sap/ui/thirdparty/jquery"
|
|
22
|
-
], function (Log, qutils, Core, Component, Fragment, Element, XMLTemplateProcessor,
|
|
19
|
+
], function (Log, qutils, Core, Component, Fragment, Element, XMLTemplateProcessor, Button, HorizontalLayout, JSONModel, createAndAppendDiv, nextUIUpdate, View, ViewType, LoaderExtensions, jQuery) {
|
|
23
20
|
"use strict";
|
|
24
21
|
|
|
25
22
|
createAndAppendDiv(["content1", "content2", "content3", "content4", "binding"]);
|
|
@@ -54,6 +51,55 @@ sap.ui.define([
|
|
|
54
51
|
}
|
|
55
52
|
});
|
|
56
53
|
|
|
54
|
+
// Keep this test run as the first test in this file because it's needed to check whether the module
|
|
55
|
+
// "sap/ui/core/mvc/XMLView" is required correctly
|
|
56
|
+
//
|
|
57
|
+
// There are later further tests which load this module, therefore this test should run before the other tests.
|
|
58
|
+
QUnit.test("XML Fragment loaded from file with nested XMLView", function(assert) {
|
|
59
|
+
/**
|
|
60
|
+
* @deprecated
|
|
61
|
+
*/
|
|
62
|
+
var oRequireSyncSpy = this.spy(sap.ui, "requireSync");
|
|
63
|
+
assert.notOk(sap.ui.require("sap/ui/core/mvc/XMLView"), "XMLView module isn't loaded yet");
|
|
64
|
+
return Fragment.load({
|
|
65
|
+
fragmentName: "testdata.fragments.XMLTestFragmentWithXMLView",
|
|
66
|
+
controller: this.oDummyController
|
|
67
|
+
}).then(async function(oFragment) {
|
|
68
|
+
assert.ok(sap.ui.require("sap/ui/core/mvc/XMLView"), "XMLView module is loaded");
|
|
69
|
+
/**
|
|
70
|
+
* @deprecated
|
|
71
|
+
*/
|
|
72
|
+
assert.notOk(oRequireSyncSpy.called, "sap.ui.requireSync shouldn't be called");
|
|
73
|
+
|
|
74
|
+
oFragment.placeAt("content1");
|
|
75
|
+
await nextUIUpdate();
|
|
76
|
+
|
|
77
|
+
var id = oFragment.getId();
|
|
78
|
+
|
|
79
|
+
assert.equal(id.substr(0, 8), "__layout", "Fragment ID should be generated");
|
|
80
|
+
assert.ok(document.getElementById(id), "XML Fragment should be rendered");
|
|
81
|
+
|
|
82
|
+
var aContent = oFragment.getContent();
|
|
83
|
+
var btn1 = aContent[0];
|
|
84
|
+
var btn2 = aContent[1];
|
|
85
|
+
assert.equal(btn1.getId(), "btn1InXmlFragment", "Button with given ID should have exactly this ID");
|
|
86
|
+
assert.equal(btn2.getId().substr(0, 8), "__button", "Button with no given ID should have a generated ID");
|
|
87
|
+
|
|
88
|
+
// Data binding
|
|
89
|
+
assert.equal(btn2.$().text(), DATABOUND_TEXT, "Second Button should have text from data binding");
|
|
90
|
+
|
|
91
|
+
// find controls by ID
|
|
92
|
+
var btn = Element.getElementById("btn1InXmlFragment");
|
|
93
|
+
assert.ok(btn, "Button should be found by ID");
|
|
94
|
+
assert.ok(btn instanceof Button, "Button should be found by ID");
|
|
95
|
+
|
|
96
|
+
var view = aContent[2];
|
|
97
|
+
assert.ok(view.isA("sap.ui.core.mvc.XMLView"), "XMLView instance is created");
|
|
98
|
+
|
|
99
|
+
oFragment.destroy();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
|
|
57
103
|
QUnit.test("XML Fragment loaded from file", function(assert) {
|
|
58
104
|
return Fragment.load({
|
|
59
105
|
fragmentName: "testdata.fragments.XMLTestFragment",
|
|
@@ -254,8 +300,9 @@ sap.ui.define([
|
|
|
254
300
|
var DATABOUND_TEXT_IN_VIEW = "Text from Databinding in View";
|
|
255
301
|
|
|
256
302
|
QUnit.test("XMLView Rendering", function(assert) {
|
|
257
|
-
return
|
|
258
|
-
viewName: "testdata.fragments.XMLViewWithFragments"
|
|
303
|
+
return View.create({
|
|
304
|
+
viewName: "testdata.fragments.XMLViewWithFragments",
|
|
305
|
+
type: ViewType.XML
|
|
259
306
|
}).then(async function(oResult) {
|
|
260
307
|
oXmlView = oResult;
|
|
261
308
|
|
|
@@ -509,9 +556,10 @@ sap.ui.define([
|
|
|
509
556
|
});
|
|
510
557
|
|
|
511
558
|
QUnit.test("Unnamed Model", function(assert) {
|
|
512
|
-
return
|
|
559
|
+
return View.create({
|
|
513
560
|
id: "unnamedView",
|
|
514
|
-
viewName: "my.UnnamedView"
|
|
561
|
+
viewName: "my.UnnamedView",
|
|
562
|
+
type: ViewType.XML
|
|
515
563
|
}).then(async function(oView) {
|
|
516
564
|
oView.placeAt("binding");
|
|
517
565
|
await nextUIUpdate();
|
|
@@ -524,9 +572,10 @@ sap.ui.define([
|
|
|
524
572
|
});
|
|
525
573
|
|
|
526
574
|
QUnit.test("Named Model", function(assert) {
|
|
527
|
-
return
|
|
575
|
+
return View.create({
|
|
528
576
|
id: "namedView",
|
|
529
|
-
viewName: "my.View"
|
|
577
|
+
viewName: "my.View",
|
|
578
|
+
type: ViewType.XML
|
|
530
579
|
}).then(async function(oView) {
|
|
531
580
|
oView.placeAt("binding");
|
|
532
581
|
await nextUIUpdate();
|
|
@@ -662,8 +711,9 @@ sap.ui.define([
|
|
|
662
711
|
|
|
663
712
|
QUnit.test("Load XML View from file with nested fragments of type 'JS' and 'XML'", function (assert) {
|
|
664
713
|
assert.expect(21);
|
|
665
|
-
return
|
|
666
|
-
viewName: "testdata.fragments.nested.XMLViewWithFragments"
|
|
714
|
+
return View.create({
|
|
715
|
+
viewName: "testdata.fragments.nested.XMLViewWithFragments",
|
|
716
|
+
type: ViewType.XML
|
|
667
717
|
}).then(function (oView) {
|
|
668
718
|
return oView.loaded().then(function () {
|
|
669
719
|
assert.equal(this.loadTemplatePromiseSpy.callCount, 2, "XMLTemplateProcessor.loadTemplatePromise should be called two times (only for the nested XML fragments)");
|
|
@@ -5,13 +5,13 @@ sap.ui.define([
|
|
|
5
5
|
"sap/ui/core/Element",
|
|
6
6
|
"sap/ui/core/HTML",
|
|
7
7
|
"sap/ui/core/RenderManager",
|
|
8
|
-
"sap/ui/core/
|
|
8
|
+
"sap/ui/core/UIAreaRegistry",
|
|
9
9
|
"sap/ui/core/UIComponent",
|
|
10
10
|
"sap/ui/layout/VerticalLayout",
|
|
11
11
|
"sap/ui/testlib/TestButton",
|
|
12
12
|
"sap/ui/thirdparty/jquery",
|
|
13
13
|
"sap/ui/qunit/utils/nextUIUpdate"
|
|
14
|
-
], function(ComponentContainer, Control, Element, HTML, RenderManager,
|
|
14
|
+
], function(ComponentContainer, Control, Element, HTML, RenderManager, UIAreaRegistry, UIComponent, VerticalLayout, TestButton, jQuery, nextUIUpdate) {
|
|
15
15
|
"use strict";
|
|
16
16
|
|
|
17
17
|
var normalize = (function() {
|
|
@@ -266,7 +266,7 @@ sap.ui.define([
|
|
|
266
266
|
|
|
267
267
|
QUnit.test("content property + preferDOM, initial rendering", async function(assert) {
|
|
268
268
|
//Cleanup UIArea because placeAt only adds new control to UIArea
|
|
269
|
-
|
|
269
|
+
UIAreaRegistry.get("uiAreaA").removeAllContent();
|
|
270
270
|
new VerticalLayout({
|
|
271
271
|
content: [
|
|
272
272
|
new HTML("html3", {
|
|
@@ -406,7 +406,7 @@ sap.ui.define([
|
|
|
406
406
|
var oldDomRef = jQuery("#html3")[0];
|
|
407
407
|
|
|
408
408
|
// remove from control tree and rerender
|
|
409
|
-
|
|
409
|
+
UIAreaRegistry.get("uiAreaA").removeAllContent();
|
|
410
410
|
await nextUIUpdate();
|
|
411
411
|
|
|
412
412
|
// check that DOM still exists
|
|
@@ -488,7 +488,7 @@ sap.ui.define([
|
|
|
488
488
|
// multiple roots test
|
|
489
489
|
QUnit.test("content property, multiple roots", async function(assert) {
|
|
490
490
|
// Cleanup UIArea because placeAt only adds new control to UIArea
|
|
491
|
-
|
|
491
|
+
UIAreaRegistry.get("uiAreaA").removeAllContent();
|
|
492
492
|
new HTML("html6", {
|
|
493
493
|
content : "<div style='width:200px;height:64px;background-color:rgb(0, 0, 0);'></div><div style='width:200px;height:64px;background-color:rgb(255, 0, 0);'></div><div style='width:200px;height:64px;background-color:rgb(255, 255, 0);'></div>"
|
|
494
494
|
}).placeAt("uiAreaA");
|
|
@@ -446,4 +446,63 @@ sap.ui.define([
|
|
|
446
446
|
}, reject);
|
|
447
447
|
});
|
|
448
448
|
});
|
|
449
|
+
|
|
450
|
+
/**
|
|
451
|
+
* @deprecated since 1.120
|
|
452
|
+
*/
|
|
453
|
+
QUnit.module("Pseudo Module Deprecation", {});
|
|
454
|
+
|
|
455
|
+
QUnit.test("", async function(assert) {
|
|
456
|
+
let oErrorLogSpy;
|
|
457
|
+
|
|
458
|
+
assert.expect(6);
|
|
459
|
+
|
|
460
|
+
sap.ui.predefine('testing/pseudo/modules/deprecation/library', ["sap/ui/core/Lib"], function(Library) {
|
|
461
|
+
const oThisLib = Library.init({
|
|
462
|
+
name: 'testing.pseudo.modules.deprecation',
|
|
463
|
+
noLibraryCSS: true,
|
|
464
|
+
types: ["testing.pseudo.modules.deprecation.Type1"]
|
|
465
|
+
});
|
|
466
|
+
|
|
467
|
+
oThisLib.Type1 = {
|
|
468
|
+
"A": "A",
|
|
469
|
+
"B": "B"
|
|
470
|
+
};
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
await Library.load({
|
|
474
|
+
name: "testing.pseudo.modules.deprecation"
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
const sExpectedErrorMessage = "Deprecation: Importing the type 'testing.pseudo.modules.deprecation.Type1' as a module is deprecated. Please require the corresponding 'library.js' containing the type directly. You can then reference the type via the library's module export.";
|
|
478
|
+
|
|
479
|
+
// Anonymous require: Log does not contain the requesting module
|
|
480
|
+
await new Promise((resolve, reject) => {
|
|
481
|
+
oErrorLogSpy = this.spy(Log, "error");
|
|
482
|
+
|
|
483
|
+
sap.ui.require(["testing/pseudo/modules/deprecation/Type1"], (Type1) => {
|
|
484
|
+
assert.ok(oErrorLogSpy.calledWith(sExpectedErrorMessage), "Error Message for pseudo module deprecation logged.");
|
|
485
|
+
assert.ok(Type1.A, "A", "pseudo type module export is correct (A).");
|
|
486
|
+
assert.ok(Type1.B, "B", "pseudo type module export is correct (B).");
|
|
487
|
+
resolve();
|
|
488
|
+
}, reject);
|
|
489
|
+
}).finally(() => {
|
|
490
|
+
oErrorLogSpy.restore();
|
|
491
|
+
});
|
|
492
|
+
|
|
493
|
+
// Anonymous require: Log does not contain the requesting module
|
|
494
|
+
await new Promise((resolve, reject) => {
|
|
495
|
+
oErrorLogSpy = this.spy(Log, "error");
|
|
496
|
+
const sModuleSpecificErrorMessage = `(dependency of 'my/old/Module.js') ${sExpectedErrorMessage}`;
|
|
497
|
+
|
|
498
|
+
sap.ui.define("my/old/Module", ["testing/pseudo/modules/deprecation/Type1"], (Type1) => {
|
|
499
|
+
assert.ok(oErrorLogSpy.calledWith(sModuleSpecificErrorMessage), "Error Message for pseudo module deprecation logged.");
|
|
500
|
+
assert.ok(Type1.A, "A", "pseudo type module export is correct (A).");
|
|
501
|
+
assert.ok(Type1.B, "B", "pseudo type module export is correct (B).");
|
|
502
|
+
resolve();
|
|
503
|
+
}, reject);
|
|
504
|
+
}).finally(() => {
|
|
505
|
+
oErrorLogSpy.restore();
|
|
506
|
+
});
|
|
507
|
+
});
|
|
449
508
|
});
|
|
@@ -15,8 +15,9 @@ sap.ui.define([
|
|
|
15
15
|
"sap/ui/model/Sorter",
|
|
16
16
|
"sap/ui/base/ManagedObjectMetadata",
|
|
17
17
|
"sap/base/strings/escapeRegExp",
|
|
18
|
-
"sap/base/util/isEmptyObject"
|
|
19
|
-
|
|
18
|
+
"sap/base/util/isEmptyObject",
|
|
19
|
+
"sap/base/util/ObjectPath"
|
|
20
|
+
], function(BindingInfo, BindingParser, DataType, ManagedObject, Element, JSONModel, Context, ManagedObjectModel, StringType, Control, Component, UIComponent, Sorter, ManagedObjectMetadata, escapeRegExp, isEmptyObject, ObjectPath) {
|
|
20
21
|
"use strict";
|
|
21
22
|
var mObjects = {};
|
|
22
23
|
|
|
@@ -29,6 +30,15 @@ sap.ui.define([
|
|
|
29
30
|
|
|
30
31
|
DataType.registerEnum("MyEnum", MyEnum);
|
|
31
32
|
|
|
33
|
+
// sample item object, will be used as aggregation content for defaultClass test
|
|
34
|
+
const TestItem = ManagedObject.extend("sap.ui.core.TestItem", {
|
|
35
|
+
metadata: {
|
|
36
|
+
properties: {
|
|
37
|
+
name: { type: "string", defaultValue: "hello" }
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
32
42
|
// define new types for testing
|
|
33
43
|
var TestManagedObject = ManagedObject.extend("sap.ui.core.TestManagedObject", {
|
|
34
44
|
metadata : {
|
|
@@ -54,7 +64,8 @@ sap.ui.define([
|
|
|
54
64
|
singleBindableAggr : { type : "sap.ui.core.TestManagedObject", multiple : false, bindable: "bindable" },
|
|
55
65
|
subObjects : { type : "sap.ui.core.TestManagedObject", multiple : true, singularName : "subObj"},
|
|
56
66
|
elements : { type : "sap.ui.core.Element", multiple : true, bindable: "bindable"},
|
|
57
|
-
skippedPropagation : { type: "sap.ui.core.Element", multiple: false }
|
|
67
|
+
skippedPropagation : { type: "sap.ui.core.Element", multiple: false },
|
|
68
|
+
itemsWithDefaultClass: { type: "sap.ui.core.TestItem", defaultClass: TestItem, multiple: true}
|
|
58
69
|
},
|
|
59
70
|
associations : {
|
|
60
71
|
selectedObject : { type : "sap.ui.core.TestManagedObject", multiple : false},
|
|
@@ -1952,6 +1963,78 @@ sap.ui.define([
|
|
|
1952
1963
|
assert.ok(bThrown, "Must throw error on unknown aggregation bind");
|
|
1953
1964
|
});
|
|
1954
1965
|
|
|
1966
|
+
QUnit.module("defaultClass");
|
|
1967
|
+
|
|
1968
|
+
QUnit.test("ManagedObjects created from object-literals", function(assert) {
|
|
1969
|
+
// spy ObjectPath.get() to check if aggregations with default class don't probe the global namespace
|
|
1970
|
+
const oObjectPathGetSpy = this.spy(ObjectPath, "get");
|
|
1971
|
+
|
|
1972
|
+
// Create aggregation content from object literals
|
|
1973
|
+
const oContainer = new TestManagedObject({
|
|
1974
|
+
itemsWithDefaultClass: [{
|
|
1975
|
+
name: "item 0"
|
|
1976
|
+
},
|
|
1977
|
+
{
|
|
1978
|
+
name: "item 1"
|
|
1979
|
+
}]
|
|
1980
|
+
});
|
|
1981
|
+
|
|
1982
|
+
assert.equal(oObjectPathGetSpy.callCount, 0, "No access to global namespace for aggregations with 'defaultClass'");
|
|
1983
|
+
|
|
1984
|
+
// check aggregation content
|
|
1985
|
+
oContainer.getItemsWithDefaultClass().forEach((obj, i) => {
|
|
1986
|
+
assert.ok(obj instanceof TestItem, "Aggregation Item was correctly instantiated from 'defaultClass'");
|
|
1987
|
+
assert.ok(obj.getName(), `item ${i}`, "Aggregation Item properties correctly passed to 'defaultClass' constructor");
|
|
1988
|
+
});
|
|
1989
|
+
|
|
1990
|
+
oObjectPathGetSpy.restore();
|
|
1991
|
+
});
|
|
1992
|
+
|
|
1993
|
+
QUnit.test("validation: defaultClass does not match aggregation type", function(assert) {
|
|
1994
|
+
assert.throws(() => {
|
|
1995
|
+
// sample item object, will be used as aggregation content for defaultClass test
|
|
1996
|
+
ManagedObject.extend("sap.ui.core.FaultyTestClass", {
|
|
1997
|
+
metadata: {
|
|
1998
|
+
aggregations: {
|
|
1999
|
+
items: { type: "sap.ui.core.TestItem", defaultClass: ManagedObject }
|
|
2000
|
+
}
|
|
2001
|
+
}
|
|
2002
|
+
});
|
|
2003
|
+
},
|
|
2004
|
+
new TypeError("The 'defaultClass' of the aggregation 'items' in 'sap.ui.core.FaultyTestClass' is not of type 'sap.ui.core.TestItem'."),
|
|
2005
|
+
"'defaultClass' definition not matching aggregation type leads to a TypeError");
|
|
2006
|
+
});
|
|
2007
|
+
|
|
2008
|
+
QUnit.test("validation: defaultClass is defined together with altTypes containing 'object'", function(assert) {
|
|
2009
|
+
assert.throws(() => {
|
|
2010
|
+
// sample item object, will be used as aggregation content for defaultClass test
|
|
2011
|
+
ManagedObject.extend("sap.ui.core.FaultyTestClass", {
|
|
2012
|
+
metadata: {
|
|
2013
|
+
aggregations: {
|
|
2014
|
+
items: { type: "sap.ui.base.ManagedObject", defaultClass: ManagedObject, altTypes: ["string", "object"] }
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
});
|
|
2018
|
+
},
|
|
2019
|
+
new TypeError("The aggregation 'items' in 'sap.ui.core.FaultyTestClass' must not defined a 'defaultClass' together with the altType 'object'."),
|
|
2020
|
+
"'defaultClass' definition together with 'altTypes' definition containing 'object' leads to a TypeError");
|
|
2021
|
+
});
|
|
2022
|
+
|
|
2023
|
+
QUnit.test("validation: defaultClass property is defined, but nullish", function(assert) {
|
|
2024
|
+
assert.throws(() => {
|
|
2025
|
+
// sample item object, will be used as aggregation content for defaultClass test
|
|
2026
|
+
ManagedObject.extend("sap.ui.core.FaultyTestClass", {
|
|
2027
|
+
metadata: {
|
|
2028
|
+
aggregations: {
|
|
2029
|
+
items: { type: "sap.ui.base.ManagedObject", defaultClass: undefined }
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
});
|
|
2033
|
+
},
|
|
2034
|
+
new TypeError("The 'defaultClass' of the aggregation 'items' in 'sap.ui.core.FaultyTestClass' is defined with a nullish value (undefined)."),
|
|
2035
|
+
"'defaultClass' definition with nullish value leads to a TypeError");
|
|
2036
|
+
});
|
|
2037
|
+
|
|
1955
2038
|
QUnit.module("Hidden Aggregations", {
|
|
1956
2039
|
beforeEach: function() {
|
|
1957
2040
|
this.testObj = new sapTestTestManagedObject("testObj", {
|
|
@@ -5,9 +5,9 @@ sap.ui.define([
|
|
|
5
5
|
"sap/ui/core/Core",
|
|
6
6
|
"sap/ui/core/Element",
|
|
7
7
|
"sap/ui/core/StaticArea",
|
|
8
|
-
"sap/ui/core/
|
|
8
|
+
"sap/ui/core/UIAreaRegistry",
|
|
9
9
|
"sap/ui/qunit/utils/createAndAppendDiv"
|
|
10
|
-
], function(Panel, Button, oCore, Element, StaticArea,
|
|
10
|
+
], function(Panel, Button, oCore, Element, StaticArea, UIAreaRegistry, createAndAppendDiv) {
|
|
11
11
|
"use strict";
|
|
12
12
|
|
|
13
13
|
createAndAppendDiv(["uiArea1", "uiArea2", "uiArea3", "uiArea4"]);
|
|
@@ -34,7 +34,7 @@ sap.ui.define([
|
|
|
34
34
|
oControl.placeAt(oContainerRef);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
var oCont = bIsUiArea ?
|
|
37
|
+
var oCont = bIsUiArea ? UIAreaRegistry.get(sContainerId) : Element.getElementById(sContainerId);
|
|
38
38
|
return [oControl.getId(), oCont];
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -57,7 +57,7 @@ sap.ui.define([
|
|
|
57
57
|
QUnit.module("sap.ui.core.Control.placeAt");
|
|
58
58
|
|
|
59
59
|
QUnit.test("Deferred call", function(assert) {
|
|
60
|
-
doCheckPlaceAtResult(assert, ["myPanel",
|
|
60
|
+
doCheckPlaceAtResult(assert, ["myPanel", UIAreaRegistry.get("uiArea1")], 1, 0, "deferred call");
|
|
61
61
|
});
|
|
62
62
|
|
|
63
63
|
QUnit.test("UIArea via ID", function(assert) {
|
|
@@ -105,7 +105,7 @@ sap.ui.define([
|
|
|
105
105
|
function setRoot() {
|
|
106
106
|
var oControl = new Button();
|
|
107
107
|
oCore.setRoot(oContainerRef, oControl);
|
|
108
|
-
var oCont = bIsUiArea ?
|
|
108
|
+
var oCont = bIsUiArea ? UIAreaRegistry.get(sContainerId) : Element.getElementById(sContainerId);
|
|
109
109
|
return [oControl.getId(), oCont];
|
|
110
110
|
}
|
|
111
111
|
|
|
@@ -118,7 +118,7 @@ sap.ui.define([
|
|
|
118
118
|
QUnit.module("sap.ui.core.Core.setRoot");
|
|
119
119
|
|
|
120
120
|
QUnit.test("Deferred call", function(assert) {
|
|
121
|
-
doCheckSetRootResult(assert, ["myPanel2",
|
|
121
|
+
doCheckSetRootResult(assert, ["myPanel2", UIAreaRegistry.get("uiArea3")]);
|
|
122
122
|
});
|
|
123
123
|
|
|
124
124
|
QUnit.test("UIArea via ID", function(assert) {
|
|
@@ -82,7 +82,7 @@ sap.ui.define([
|
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
QUnit.test("fnWrapper trigger", function(assert) {
|
|
85
|
-
assert.expect(
|
|
85
|
+
assert.expect(6);
|
|
86
86
|
var done = assert.async();
|
|
87
87
|
var oHTMLElementFocusSpy = sinon.spy(HTMLElement.prototype, "focus");
|
|
88
88
|
var oInput = new Input();
|
|
@@ -100,7 +100,15 @@ sap.ui.define([
|
|
|
100
100
|
oInput.placeAt("qunit-fixture");
|
|
101
101
|
oInput.addEventDelegate({"onAfterRendering": function() {
|
|
102
102
|
oInput.focus();
|
|
103
|
+
|
|
104
|
+
// wrap the assertion in a 0 timeout to make sure that the shift of focus to the internal "span"
|
|
105
|
+
// is done by using a 0 timeout
|
|
106
|
+
setTimeout(function() {
|
|
107
|
+
assert.ok(oInput.getDomRef().contains(document.activeElement), "Focus should be within the input after a 0 timeout");
|
|
108
|
+
});
|
|
109
|
+
|
|
103
110
|
QUtils.triggerKeydown(oInput.getDomRef(), "s", true, false, false);
|
|
111
|
+
assert.ok(oInput.getDomRef().contains(document.activeElement), "Focus should be within the input directly after triggering the shortcut");
|
|
104
112
|
}});
|
|
105
113
|
});
|
|
106
114
|
});
|
|
@@ -6,12 +6,13 @@ sap.ui.define([
|
|
|
6
6
|
"sap/ui/core/Element",
|
|
7
7
|
"sap/ui/core/HTML",
|
|
8
8
|
"sap/ui/core/UIArea",
|
|
9
|
+
"sap/ui/core/UIAreaRegistry",
|
|
9
10
|
"sap/ui/qunit/utils/createAndAppendDiv",
|
|
10
11
|
"sap/ui/qunit/utils/nextUIUpdate",
|
|
11
12
|
"sap/ui/testlib/TestButton",
|
|
12
13
|
"sap/ui/test/actions/Press",
|
|
13
14
|
"sap/ui/thirdparty/jquery"
|
|
14
|
-
], function(Log, Control, Element, HTML, UIArea, createAndAppendDiv, nextUIUpdate, TestButton, Press, jQuery) {
|
|
15
|
+
], function(Log, Control, Element, HTML, UIArea, UIAreaRegistry, createAndAppendDiv, nextUIUpdate, TestButton, Press, jQuery) {
|
|
15
16
|
"use strict";
|
|
16
17
|
|
|
17
18
|
createAndAppendDiv("uiArea1");
|
|
@@ -60,7 +61,7 @@ sap.ui.define([
|
|
|
60
61
|
* UIArea must be empty after the rendering
|
|
61
62
|
*/
|
|
62
63
|
QUnit.test("removeAllContent", async function(assert) {
|
|
63
|
-
|
|
64
|
+
UIAreaRegistry.get("uiArea1").removeAllContent();
|
|
64
65
|
await nextUIUpdate();
|
|
65
66
|
assert.equal(jQuery("#uiArea1").children().length, 0, "no more content");
|
|
66
67
|
assert.ok(Element.getElementById("text1"), "remove must not destroy child 1");
|
|
@@ -87,7 +88,7 @@ sap.ui.define([
|
|
|
87
88
|
assert.equal(jQuery($currentDom.get(1)).text(), "Text 1", "first span shows first text");
|
|
88
89
|
assert.equal(jQuery($currentDom.get(2)).text(), "Text 2", "second span shows second text");
|
|
89
90
|
|
|
90
|
-
|
|
91
|
+
UIAreaRegistry.get("uiArea2").removeAllContent();
|
|
91
92
|
await nextUIUpdate();
|
|
92
93
|
$currentDom = jQuery("#uiArea2").children();
|
|
93
94
|
assert.equal($currentDom.length, 1, "initial DOM still exists in UIArea");
|
|
@@ -127,7 +128,7 @@ sap.ui.define([
|
|
|
127
128
|
assert.equal(jQuery($currentDom.get(4)).text(), "After", "last span shows dynamically added end");
|
|
128
129
|
|
|
129
130
|
// now remove controls, check that the remainigs are as expected
|
|
130
|
-
|
|
131
|
+
UIAreaRegistry.get("uiArea2").removeAllContent();
|
|
131
132
|
await nextUIUpdate();
|
|
132
133
|
$currentDom = jQuery("#uiArea2").children();
|
|
133
134
|
assert.equal($currentDom.length, 3, "initial DOM still exists in UIArea");
|
|
@@ -180,7 +181,7 @@ sap.ui.define([
|
|
|
180
181
|
// ---- aspect 3: remove all content must not delete the preserved dOM ----
|
|
181
182
|
|
|
182
183
|
// remove content and rerender
|
|
183
|
-
|
|
184
|
+
UIAreaRegistry.get("uiArea1").removeAllContent();
|
|
184
185
|
await nextUIUpdate();
|
|
185
186
|
|
|
186
187
|
// check that UIArea is empoty, but preserved content still exists
|
|
@@ -296,7 +297,7 @@ sap.ui.define([
|
|
|
296
297
|
beforeEach: function() {
|
|
297
298
|
new Control().placeAt("uiArea1").destroy();
|
|
298
299
|
var oControl = new Control();
|
|
299
|
-
|
|
300
|
+
UIAreaRegistry.get("uiArea1").addDependent(oControl);
|
|
300
301
|
this.uiArea = oControl.getUIArea();
|
|
301
302
|
this.uiArea.addDependent(new Control());
|
|
302
303
|
this.spy(this.uiArea, "invalidate");
|
|
@@ -1723,6 +1723,47 @@ sap.ui.define([
|
|
|
1723
1723
|
oMeasureMock.verify();
|
|
1724
1724
|
});
|
|
1725
1725
|
|
|
1726
|
+
//*********************************************************************************************
|
|
1727
|
+
// BCP: 985176/2023
|
|
1728
|
+
QUnit.test("renderUI5FilterArray", function (assert) {
|
|
1729
|
+
const aFilterArray = [
|
|
1730
|
+
{sPath: 'Material'},
|
|
1731
|
+
{aFilters: [/*Multi Filter*/]},
|
|
1732
|
+
{sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005860'},
|
|
1733
|
+
{sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: "4900005859"},
|
|
1734
|
+
{sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005915'},
|
|
1735
|
+
{sPath: 'MaterialDocument', sOperator: 'EQ', oValue1: '4900005916'},
|
|
1736
|
+
{sPath: 'MaterialGroup'},
|
|
1737
|
+
{sPath: 'MaterialType'},
|
|
1738
|
+
{sPath: 'Plant'},
|
|
1739
|
+
{sPath: 'ReversalMovementIsSelected'},
|
|
1740
|
+
{sPath: 'StockLevelIsValuated'},
|
|
1741
|
+
{sPath: 'StorageLocation'}
|
|
1742
|
+
];
|
|
1743
|
+
const oFilterExpression = new odata4analytics.FilterExpression();
|
|
1744
|
+
const oFilterExpressionMock = this.mock(oFilterExpression);
|
|
1745
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[0]).returns("~Material");
|
|
1746
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[2]).returns("~MaterialDocument0");
|
|
1747
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[3]).returns("~MaterialDocument1");
|
|
1748
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[4]).returns("~MaterialDocument2");
|
|
1749
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[5]).returns("~MaterialDocument3");
|
|
1750
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[6]).returns("~MaterialGroup");
|
|
1751
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[7]).returns("~MaterialType");
|
|
1752
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[8]).returns("~Plant");
|
|
1753
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[9])
|
|
1754
|
+
.returns("~ReversalMovementIsSelected");
|
|
1755
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[10])
|
|
1756
|
+
.returns("~StockLevelIsValuated");
|
|
1757
|
+
oFilterExpressionMock.expects("renderUI5Filter").withExactArgs(aFilterArray[11]).returns("~StorageLocation");
|
|
1758
|
+
oFilterExpressionMock.expects("renderUI5MultiFilter").withExactArgs(aFilterArray[1]).returns("~MultiFilter");
|
|
1759
|
+
|
|
1760
|
+
// code under test
|
|
1761
|
+
assert.strictEqual(oFilterExpression.renderUI5FilterArray(aFilterArray.slice()),
|
|
1762
|
+
"(~Material) and (~MaterialDocument0 or ~MaterialDocument1 or ~MaterialDocument2 or ~MaterialDocument3)"
|
|
1763
|
+
+ " and (~MaterialGroup) and (~MaterialType) and (~Plant) and (~ReversalMovementIsSelected)"
|
|
1764
|
+
+ " and (~StockLevelIsValuated) and (~StorageLocation) and (~MultiFilter)");
|
|
1765
|
+
});
|
|
1766
|
+
|
|
1726
1767
|
//*********************************************************************************************
|
|
1727
1768
|
QUnit.test("deepEqual", function (assert) {
|
|
1728
1769
|
var aColumns = [];
|
|
@@ -2,16 +2,18 @@
|
|
|
2
2
|
<html>
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
|
-
<meta name="sap-ui-
|
|
6
|
-
<meta name="sap-ui-
|
|
5
|
+
<meta name="sap-ui-param-a" content="meta">
|
|
6
|
+
<meta name="sap-ui-param-b" content="meta">
|
|
7
|
+
<meta name="sap-ui-param-merged-object" content='{ "objectKeyMeta": "metaObject" }'>
|
|
7
8
|
|
|
8
9
|
<!-- Initialization -->
|
|
9
10
|
<script src="./config/GlobalConfigForCascade.js"></script>
|
|
10
11
|
<script src="../../../../../../resources/ui5loader.js"></script>
|
|
11
12
|
<script id="sap-ui-bootstrap" src="../../../../../../resources/ui5loader-autoconfig.js"
|
|
12
|
-
data-sap-ui-
|
|
13
|
-
data-sap-ui-
|
|
14
|
-
data-sap-ui-
|
|
13
|
+
data-sap-ui-param-a="bootstrap"
|
|
14
|
+
data-sap-ui-param-b="bootstrap"
|
|
15
|
+
data-sap-ui-param-c="bootstrap"
|
|
16
|
+
data-sap-ui-param-merged-object='{ "objectKeyBootstrap": "bootstrapObject" }'></script>
|
|
15
17
|
|
|
16
18
|
<link href="../../../../../../resources/sap/ui/thirdparty/qunit-2.css" rel="stylesheet" media="screen">
|
|
17
19
|
<script src="../../../../../../resources/sap/ui/thirdparty/qunit-2.js"></script>
|