@openui5/sap.ui.core 1.117.0 → 1.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/Localization.js +42 -39
- 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 +2 -1
- 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 +7 -3
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +9 -1
- package/src/sap/ui/core/AnimationMode.js +1 -1
- package/src/sap/ui/core/BlockLayerUtils.js +1 -1
- package/src/sap/ui/core/BusyIndicator.js +2 -2
- package/src/sap/ui/core/Component.js +22 -15
- package/src/sap/ui/core/ComponentContainer.js +2 -2
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -13
- package/src/sap/ui/core/Control.js +21 -1
- package/src/sap/ui/core/Core.js +67 -41
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +2 -2
- package/src/sap/ui/core/IndicationColorSupport.js +2 -2
- 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 +3 -6
- 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 +9 -13
- 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 +2 -2
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Messaging.js +472 -0
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +3 -2
- package/src/sap/ui/core/ResizeHandler.js +1 -4
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHint.js +1 -1
- package/src/sap/ui/core/Theming.js +28 -31
- 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 +85 -17
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +2 -2
- 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/_IconRegistry.js +1 -1
- package/src/sap/ui/core/boot.js +9 -0
- 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/DragAndDrop.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 +4 -0
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +18 -47
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +37 -459
- package/src/sap/ui/core/message/MessageMixin.js +3 -3
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +9 -9
- package/src/sap/ui/core/message/MessageType.js +53 -0
- package/src/sap/ui/core/messagebundle.properties +3 -0
- package/src/sap/ui/core/messagebundle_ar.properties +1 -1
- package/src/sap/ui/core/messagebundle_bg.properties +1 -1
- package/src/sap/ui/core/messagebundle_ca.properties +1 -1
- package/src/sap/ui/core/messagebundle_cs.properties +1 -1
- package/src/sap/ui/core/messagebundle_cy.properties +1 -1
- package/src/sap/ui/core/messagebundle_da.properties +1 -1
- package/src/sap/ui/core/messagebundle_de.properties +1 -1
- package/src/sap/ui/core/messagebundle_el.properties +1 -1
- package/src/sap/ui/core/messagebundle_es.properties +1 -1
- package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
- package/src/sap/ui/core/messagebundle_et.properties +1 -1
- package/src/sap/ui/core/messagebundle_fi.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
- package/src/sap/ui/core/messagebundle_hi.properties +1 -1
- package/src/sap/ui/core/messagebundle_hr.properties +1 -1
- package/src/sap/ui/core/messagebundle_hu.properties +1 -1
- package/src/sap/ui/core/messagebundle_id.properties +1 -1
- package/src/sap/ui/core/messagebundle_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_iw.properties +1 -1
- package/src/sap/ui/core/messagebundle_ja.properties +1 -1
- package/src/sap/ui/core/messagebundle_kk.properties +1 -1
- package/src/sap/ui/core/messagebundle_ko.properties +1 -1
- package/src/sap/ui/core/messagebundle_lt.properties +1 -1
- package/src/sap/ui/core/messagebundle_lv.properties +1 -1
- package/src/sap/ui/core/messagebundle_ms.properties +1 -1
- package/src/sap/ui/core/messagebundle_nl.properties +1 -1
- package/src/sap/ui/core/messagebundle_no.properties +1 -1
- package/src/sap/ui/core/messagebundle_pl.properties +1 -1
- package/src/sap/ui/core/messagebundle_pt.properties +1 -1
- package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
- package/src/sap/ui/core/messagebundle_ro.properties +1 -1
- package/src/sap/ui/core/messagebundle_ru.properties +1 -1
- package/src/sap/ui/core/messagebundle_sh.properties +1 -1
- package/src/sap/ui/core/messagebundle_sk.properties +1 -1
- package/src/sap/ui/core/messagebundle_sl.properties +1 -1
- package/src/sap/ui/core/messagebundle_sv.properties +9 -9
- package/src/sap/ui/core/messagebundle_th.properties +1 -1
- package/src/sap/ui/core/messagebundle_tr.properties +1 -1
- package/src/sap/ui/core/messagebundle_uk.properties +1 -1
- package/src/sap/ui/core/messagebundle_vi.properties +1 -1
- package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
- package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +9 -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/Router.js +7 -1
- package/src/sap/ui/core/routing/async/Route.js +1 -0
- package/src/sap/ui/core/routing/sync/Route.js +1 -0
- 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 +25 -5
- package/src/sap/ui/core/support/Support.js +34 -4
- package/src/sap/ui/core/support/ToolsAPI.js +6 -16
- package/src/sap/ui/core/support/controls/InteractionTree.js +0 -4
- package/src/sap/ui/core/support/plugins/Breakpoint.js +0 -2
- package/src/sap/ui/core/support/plugins/ControlTree.js +10 -12
- package/src/sap/ui/core/support/plugins/Debugging.js +10 -9
- package/src/sap/ui/core/support/plugins/Interaction.js +12 -13
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -3
- package/src/sap/ui/core/support/plugins/Performance.js +1 -3
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +32 -42
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +27 -13
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
- package/src/sap/ui/core/theming/ThemeHelper.js +100 -0
- package/src/sap/ui/core/theming/ThemeManager.js +18 -18
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +53 -29
- 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 +659 -0
- package/src/sap/ui/core/webc/WebComponentMetadata.js +253 -0
- package/src/sap/ui/core/webc/WebComponentRenderer.js +323 -0
- 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 +4 -3
- package/src/sap/ui/debug/DebugEnv.js +4 -4
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +6 -6
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientPropertyBinding.js +3 -3
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/Context.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +4 -4
- 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/controlhelper/TreeBindingProxy.js +27 -13
- 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 +24 -0
- package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
- 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/ODataTreeBindingFlat.js +6 -0
- 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 +7 -2
- 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 +6 -2
- 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 +23 -3
- package/src/sap/ui/model/odata/v2/ODataModel.js +6 -6
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -6
- package/src/sap/ui/model/odata/v4/Context.js +26 -16
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -2
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +62 -29
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +17 -10
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +129 -6
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +102 -57
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +30 -4
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -0
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +14 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +28 -35
- package/src/sap/ui/model/odata/v4/ts.js +44 -0
- 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 +5 -4
- 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 +11 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +10 -11
- package/src/sap/ui/qunit/utils/nextUIUpdate.js +51 -0
- package/src/sap/ui/test/ModuleTracking.js +326 -0
- package/src/sap/ui/test/TestUtils.js +7 -6
- package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +3 -2
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +2 -0
- package/src/sap/ui/test/selectors/_DropdownItem.js +1 -0
- package/src/sap/ui/test/selectors/_TableRowItem.js +1 -0
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +14 -10
- package/src/ui5loader.js +2 -2
- package/test/sap/ui/core/ComponentCleanup.html +228 -225
- package/test/sap/ui/core/ComponentConfig.html +1 -1
- package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +1 -1
- package/test/sap/ui/core/ComponentExtensibility_legacyAPIs.html +1 -1
- package/test/sap/ui/core/ComponentSimple.html +1 -1
- package/test/sap/ui/core/ComponentSimpleModel.html +1 -1
- package/test/sap/ui/core/ComponentSupport.html +1 -1
- package/test/sap/ui/core/DateFormat.js +3 -3
- package/test/sap/ui/core/EventBroadcaster.html +62 -62
- package/test/sap/ui/core/Formats.html +4 -2
- package/test/sap/ui/core/GenericEventBinding.html +53 -52
- package/test/sap/ui/core/ListFormat.js +3 -3
- package/test/sap/ui/core/NumberFormat.js +3 -3
- package/test/sap/ui/core/ODataAnnotationsPerformance.html +28 -28
- package/test/sap/ui/core/ODataV2CanonicalRequests.html +3 -2
- package/test/sap/ui/core/ODataV2Messages.html +4 -3
- package/test/sap/ui/core/PopupWithUserSelection.html +1 -1
- package/test/sap/ui/core/Strings.js +3 -3
- package/test/sap/ui/core/ValidateURL.html +143 -143
- package/test/sap/ui/core/demokit/sample/Commands/Commands.html +1 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/Controller.controller.js +10 -10
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +7 -7
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/Component.js +3 -2
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +7 -8
- package/test/sap/ui/core/demokit/sample/OpaGetStarted/applicationUnderTest/index.html +9 -6
- package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/applicationUnderTest/index.html +13 -10
- package/test/sap/ui/core/demokit/sample/PatternMatching/Patterns.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingFullscreen/RoutingFullscreen.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/RoutingMasterDetail.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/RoutingNestedComponent.html +1 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.html +1 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.js +5 -4
- package/test/sap/ui/core/demokit/sample/TargetsStandalone/TargetsStandalone.html +11 -8
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +12 -11
- package/test/sap/ui/core/demokit/sample/common/Controller.js +6 -7
- package/test/sap/ui/core/demokit/sample/common/Helper.js +6 -2
- package/test/sap/ui/core/demokit/sample/common/init.js +25 -21
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/WebsiteCode.js +8 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +12 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ListReport.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +4 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +19 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +93 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +85 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/SandboxModel.js +10 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +396 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +423 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +70 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +11 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +8 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +8 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +12 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +11 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/MIT.RecursiveHierarchy maintenance.html +408 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.js +26 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +54 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +24 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +352 -287
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +38 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +128 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +23 -22
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +15 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +7 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/02/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/03/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/04/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/05/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/06/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/07/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/08/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/09/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/10/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/11/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/12/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/13/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/14/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/15/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/16/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/package.json +4 -6
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +8 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/index.html +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/pages/Tutorial.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/pages/Tutorial.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/test/integration/opaTests.qunit.js +6 -6
- package/test/sap/ui/core/frameoptions/createcontent.js +7 -6
- package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -1
- package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exStringAndFloat/Test.controller.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.js +8 -8
- package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +7 -7
- package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +3 -3
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.js +9 -6
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +3 -3
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -1
- package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +9 -7
- package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +4 -2
- package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +3 -2
- package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +11 -10
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +218 -223
- package/test/sap/ui/core/qunit/Core.qunit.js +35 -31
- package/test/sap/ui/core/qunit/CoreEvents.qunit.js +17 -15
- package/test/sap/ui/core/qunit/Core_repeatedExecution.qunit.js +3 -3
- package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +4 -3
- package/test/sap/ui/core/qunit/Element_data.qunit.js +5 -5
- package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -4
- package/test/sap/ui/core/qunit/Element_focus.qunit.js +25 -24
- package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +3 -2
- package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +7 -6
- package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +1 -1
- package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +5 -5
- package/test/sap/ui/core/qunit/FieldGroup.qunit.js +9 -6
- package/test/sap/ui/core/qunit/FocusHandler.qunit.js +7 -6
- package/test/sap/ui/core/qunit/Fragment.qunit.js +35 -34
- package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +51 -50
- package/test/sap/ui/core/qunit/HTML.qunit.js +32 -32
- package/test/sap/ui/core/qunit/Icon.qunit.js +66 -65
- package/test/sap/ui/core/qunit/IconPool.qunit.js +2 -1
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +13 -12
- package/test/sap/ui/core/qunit/Lib.qunit.js +8 -8
- package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +24 -24
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +54 -53
- package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +8 -9
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +7 -6
- package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +13 -11
- package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +6 -5
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -4
- package/test/sap/ui/core/qunit/Theming.qunit.js +88 -50
- package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +130 -0
- package/test/sap/ui/core/qunit/TooltipBase.qunit.js +4 -3
- package/test/sap/ui/core/qunit/UIArea.qunit.js +248 -18
- package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.js +9 -8
- package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +10 -10
- package/test/sap/ui/core/qunit/base/Config.qunit.js +12 -2
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +123 -52
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -0
- package/test/sap/ui/core/qunit/base/config/GlobalConfig.js +3 -1
- package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +4 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +3 -3
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal_legacyAPIs.qunit.js +13 -11
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomScript_legacyAPIs.qunit.js +13 -11
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery_legacyAPIs.qunit.js +7 -5
- package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +12 -14
- package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +3 -2
- package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +12 -6
- package/test/sap/ui/core/qunit/component/Component.qunit.js +14 -15
- package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/Customizing.qunit.js +4 -5
- package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +4 -6
- package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +3 -5
- package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +3 -6
- package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +5 -8
- package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +4 -5
- package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +19 -19
- package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +19 -19
- package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +43 -43
- package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +18 -13
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +19 -18
- package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +13 -12
- package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +5 -4
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +7 -6
- package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +7 -6
- package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +6 -6
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +20 -17
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +8 -7
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -2
- package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +14 -19
- package/test/sap/ui/core/qunit/internal/1Ring.qunit.js +34 -22
- package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -6
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +4 -0
- package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +7 -7
- package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
- package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +3 -2
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +16 -16
- package/test/sap/ui/core/qunit/messages/{MessageManager.qunit.js → Messaging.qunit.js} +46 -49
- package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -1
- package/test/sap/ui/core/qunit/messages/messagesEnd2End.qunit.js +10 -10
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +36 -46
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +25 -36
- package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +8 -8
- package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +24 -14
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +7 -6
- package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +3 -2
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +5 -4
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +8 -9
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +45 -40
- package/test/sap/ui/core/qunit/mvc/testdata/stashed/OP.html +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +15 -20
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +20 -25
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +10 -11
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +7 -6
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +8 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +7 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +40 -47
- package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +52 -20
- package/test/sap/ui/core/qunit/odata/{ODataListBinding.qunit.js → ODataListBinding_legacyAPIs.qunit.js} +27 -0
- package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +44 -48
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +8 -8
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +66 -29
- package/test/sap/ui/core/qunit/odata/ODataMetadata.qunit.js +17 -7
- package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +147 -89
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +33 -12
- package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +33 -12
- package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +5 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +63 -13
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +281 -59
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +28 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +21 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +1 -2
- package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding.qunit.js +7 -207
- package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding_Filter_legacyAPIs.qunit.js +281 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +9 -8
- package/test/sap/ui/core/qunit/odata/v2/ODataV2TreeBinding.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +95 -85
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +70 -67
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +19 -20
- package/test/sap/ui/core/qunit/odata/v2/testsuite.odatav2.qunit.js +4 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +50 -27
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +5 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +4 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +103 -14
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1027 -31
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +18 -17
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +272 -36
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +115 -82
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +10 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +108 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +5 -6
- package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +29 -42
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +13 -14
- package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -4
- package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +22 -21
- package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +60 -56
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +5 -7
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +5 -9
- package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +5 -6
- package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -4
- package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +21 -20
- package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +6 -5
- package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +7 -5
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -3
- package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +4 -3
- package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +28 -27
- package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +11 -10
- package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +11 -10
- package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +5 -4
- package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +8 -7
- package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +12 -17
- package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +5 -6
- package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +10 -9
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +6 -7
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +33 -27
- package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +7 -10
- package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +5 -7
- package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +5 -7
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +35 -28
- package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +11 -9
- package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +5 -3
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +57 -0
- package/test/sap/ui/core/qunit/routing/fixture/historyIframe/iframe/index.html +1 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/Component.js +30 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/manifest.json +25 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/Component.js +14 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/manifest.json +51 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/NotFound.view.xml +3 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/RootView.view.xml +5 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +24 -17
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +3 -3
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +3 -3
- package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +9 -18
- package/test/sap/ui/core/qunit/support/techinfo/TechnicalInfoTestbench.html +3 -1
- package/test/sap/ui/core/qunit/test/starter/find/index.html +1 -1
- package/test/sap/ui/core/qunit/test/starter/find/main.js +3 -2
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +10 -6
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +27 -4
- package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +36 -35
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +13 -0
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +2 -2
- package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +27 -31
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +27 -27
- package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +13 -9
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +37 -6
- package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +3 -2
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +8 -8
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +24 -24
- package/test/sap/ui/core/qunit/util/static/TechnicalInfoTestbenchInit.js +8 -2
- package/test/sap/ui/core/qunit/webc/WebComponent.qunit.js +188 -0
- package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.html +14 -0
- package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.js +22 -0
- package/test/sap/ui/core/relnotes/changes-1.117.json +1 -34
- package/test/sap/ui/core/relnotes/changes-1.118.json +143 -0
- package/test/sap/ui/core/samples/components/resourcesCSS/index.html +1 -1
- package/test/sap/ui/core/samples/databinding/DataBinding.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +3 -2
- package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingList.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +102 -113
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +90 -89
- package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +149 -148
- package/test/sap/ui/core/samples/databinding/DataBindingXML.html +3 -2
- package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +158 -153
- package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +4 -6
- package/test/sap/ui/core/samples/databinding/UnitTableMain.js +3 -4
- package/test/sap/ui/core/samples/extensions/index_legacyAPIs.html +15 -13
- package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +3 -2
- package/test/sap/ui/core/samples/mvc/ExtendedXMLViewEventHandlerSyntax.html +5 -3
- package/test/sap/ui/core/samples/mvc/XMLViewBindableAggregation.html +1 -1
- package/test/testsuite/testframe.html +4 -4
- package/src/ui5-boot.js +0 -50
- package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
- package/test/sap/ui/core/qunit/internal/ODataV4.qunit.js +0 -30
- /package/test/sap/ui/core/qunit/{MasterDetail.qunit.js → MasterDetail_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataModel.qunit.js → ODataModel_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataSharedMetadata.qunit.js → ODataSharedMetadata_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataTreeBinding.qunit.js → ODataTreeBinding_legacyAPIs.qunit.js} +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
sap.ui.define([
|
|
2
|
-
"sap/ui/core/Core",
|
|
3
2
|
"sap/ui/core/Control",
|
|
4
3
|
"sap/ui/core/Element",
|
|
5
4
|
"sap/ui/core/Renderer",
|
|
@@ -8,8 +7,9 @@ sap.ui.define([
|
|
|
8
7
|
"sap/ui/core/EnabledPropagator",
|
|
9
8
|
"sap/ui/core/dnd/DragInfo",
|
|
10
9
|
"sap/ui/qunit/utils/createAndAppendDiv",
|
|
10
|
+
"sap/ui/qunit/utils/nextUIUpdate",
|
|
11
11
|
"sap/ui/model/json/JSONModel"
|
|
12
|
-
], function(
|
|
12
|
+
], function(Control, Element, Renderer, RenderManager, InvisibleText, EnabledPropagator, DragInfo, createAndAppendDiv, nextUIUpdate, JSONModel) {
|
|
13
13
|
|
|
14
14
|
"use strict";
|
|
15
15
|
/*global QUnit,sinon*/
|
|
@@ -141,7 +141,7 @@ sap.ui.define([
|
|
|
141
141
|
|
|
142
142
|
QUnit.test("Custom RM writing text nodes and styles", function(assert) {
|
|
143
143
|
var oRoot = document.createElement("div");
|
|
144
|
-
var oRM =
|
|
144
|
+
var oRM = new RenderManager();
|
|
145
145
|
oRM.openStart("div").style("width", "100px").openEnd().text("DivText").close("div");
|
|
146
146
|
oRM.text("TextNode");
|
|
147
147
|
oRM.unsafeHtml("<b>BoldText</b>");
|
|
@@ -153,7 +153,7 @@ sap.ui.define([
|
|
|
153
153
|
|
|
154
154
|
QUnit.test("Custom RM writing svg elements", function(assert) {
|
|
155
155
|
var oRoot = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
156
|
-
var oRM =
|
|
156
|
+
var oRM = new RenderManager();
|
|
157
157
|
oRM.openStart("circle", "circle").openEnd().close("circle");
|
|
158
158
|
oRM.flush(oRoot, false, true);
|
|
159
159
|
|
|
@@ -167,7 +167,7 @@ sap.ui.define([
|
|
|
167
167
|
assert.notEqual(oRoot.namespaceURI, oRoot.firstChild.namespaceURI, "div element within the foreignObject is created different than SVG context");
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
-
QUnit.test("String rendering output and events", function(assert) {
|
|
170
|
+
QUnit.test("String rendering output and events", async function(assert) {
|
|
171
171
|
var oStringControl = new StringControl();
|
|
172
172
|
var onBeforeRenderingSpy = sinon.spy();
|
|
173
173
|
var onAfterRenderingSpy = sinon.spy();
|
|
@@ -183,7 +183,7 @@ sap.ui.define([
|
|
|
183
183
|
});
|
|
184
184
|
|
|
185
185
|
oStringControl.placeAt("qunit-fixture");
|
|
186
|
-
|
|
186
|
+
await nextUIUpdate();
|
|
187
187
|
|
|
188
188
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is called");
|
|
189
189
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called");
|
|
@@ -206,14 +206,14 @@ sap.ui.define([
|
|
|
206
206
|
assert.equal(oDomRef.lastChild.tagName, "HR", "void hr tag is rendered");
|
|
207
207
|
|
|
208
208
|
oStringControl.invalidate();
|
|
209
|
-
|
|
209
|
+
await nextUIUpdate();
|
|
210
210
|
assert.equal(onAfterRenderingSpy.callCount, 2, "onAfterRendering is called again");
|
|
211
211
|
assert.equal(onBeforeRenderingSpy.callCount, 2, "onBeforeRendering is called again");
|
|
212
212
|
|
|
213
213
|
oStringControl.destroy();
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
QUnit.test("String rendering style checks", function(assert) {
|
|
216
|
+
QUnit.test("String rendering style checks", async function(assert) {
|
|
217
217
|
var oStringControl = new StringControl("root", {
|
|
218
218
|
width: "99.9%",
|
|
219
219
|
items: [new StringControl("child1", {
|
|
@@ -224,7 +224,7 @@ sap.ui.define([
|
|
|
224
224
|
});
|
|
225
225
|
|
|
226
226
|
oStringControl.placeAt("qunit-fixture");
|
|
227
|
-
|
|
227
|
+
await nextUIUpdate();
|
|
228
228
|
|
|
229
229
|
assert.equal(document.getElementById("root").style.width, "99.9%", "Width is set correctly for the root");
|
|
230
230
|
assert.equal(document.getElementById("child1").style.width, "calc(-3rem + 50vw)", "Width is set correctly for the 1st child");
|
|
@@ -233,7 +233,7 @@ sap.ui.define([
|
|
|
233
233
|
oStringControl.destroy();
|
|
234
234
|
});
|
|
235
235
|
|
|
236
|
-
QUnit.test("New rendering output and events", function(assert) {
|
|
236
|
+
QUnit.test("New rendering output and events", async function(assert) {
|
|
237
237
|
var oPatchingControl = new PatchingControl();
|
|
238
238
|
var onBeforeRenderingSpy = sinon.spy();
|
|
239
239
|
var onAfterRenderingSpy = sinon.spy();
|
|
@@ -249,7 +249,7 @@ sap.ui.define([
|
|
|
249
249
|
});
|
|
250
250
|
|
|
251
251
|
oPatchingControl.placeAt("qunit-fixture");
|
|
252
|
-
|
|
252
|
+
await nextUIUpdate();
|
|
253
253
|
|
|
254
254
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is called");
|
|
255
255
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called");
|
|
@@ -271,14 +271,14 @@ sap.ui.define([
|
|
|
271
271
|
assert.equal(oDomRef.lastChild.tagName, "HR", "void hr tag is rendered");
|
|
272
272
|
|
|
273
273
|
oPatchingControl.invalidate();
|
|
274
|
-
|
|
274
|
+
await nextUIUpdate();
|
|
275
275
|
assert.equal(onAfterRenderingSpy.callCount, 2, "onAfterRendering is called again");
|
|
276
276
|
assert.equal(onBeforeRenderingSpy.callCount, 2, "onBeforeRendering is called again");
|
|
277
277
|
|
|
278
278
|
oPatchingControl.destroy();
|
|
279
279
|
});
|
|
280
280
|
|
|
281
|
-
QUnit.test("DOM rendering style checks", function(assert) {
|
|
281
|
+
QUnit.test("DOM rendering style checks", async function(assert) {
|
|
282
282
|
var oPatchingControl = new PatchingControl("root", {
|
|
283
283
|
width: "99.9%",
|
|
284
284
|
items: [new PatchingControl("child1", {
|
|
@@ -289,22 +289,22 @@ sap.ui.define([
|
|
|
289
289
|
});
|
|
290
290
|
|
|
291
291
|
oPatchingControl.placeAt("qunit-fixture");
|
|
292
|
-
|
|
292
|
+
await nextUIUpdate();
|
|
293
293
|
|
|
294
294
|
assert.equal(document.getElementById("root").style.width, "99.9%", "Width is set correctly for the root");
|
|
295
295
|
assert.equal(document.getElementById("child1").style.width, "calc(-3rem + 50vw)", "Width is set correctly for the 1st child");
|
|
296
296
|
assert.notEqual(document.getElementById("child2").style.width, "500px", "Width is not set for the 2nd child since we initially do dom-based rendering");
|
|
297
297
|
assert.notOk(document.getElementById("child2").hasAttribute("hack"), "Hack attribute is not set");
|
|
298
298
|
|
|
299
|
-
|
|
300
|
-
|
|
299
|
+
Element.registry.get("child2").setWidth('300px;" hack="true"');
|
|
300
|
+
await nextUIUpdate();
|
|
301
301
|
assert.notEqual(document.getElementById("child2").style.width, "300px", "Width is not set for the 2nd child since patching encodes semicolon");
|
|
302
302
|
assert.notOk(document.getElementById("child2").hasAttribute("hack"), "Hack attribute is not set");
|
|
303
303
|
|
|
304
304
|
oPatchingControl.destroy();
|
|
305
305
|
});
|
|
306
306
|
|
|
307
|
-
QUnit.test("Create RenderManager during the rendering", function(assert) {
|
|
307
|
+
QUnit.test("Create RenderManager during the rendering", async function(assert) {
|
|
308
308
|
var oPatchingControl = new PatchingControl({
|
|
309
309
|
header: "root",
|
|
310
310
|
items: new PatchingControl({
|
|
@@ -313,10 +313,10 @@ sap.ui.define([
|
|
|
313
313
|
});
|
|
314
314
|
|
|
315
315
|
oPatchingControl.placeAt("qunit-fixture");
|
|
316
|
-
|
|
316
|
+
await nextUIUpdate();
|
|
317
317
|
|
|
318
318
|
oPatchingControl.setHeader("root2").getItems()[0].setDoSomething(function() {
|
|
319
|
-
var oRM =
|
|
319
|
+
var oRM = new RenderManager();
|
|
320
320
|
var oNew = new PatchingControl({ header: "new" });
|
|
321
321
|
var oDom = document.createElement("section");
|
|
322
322
|
|
|
@@ -325,13 +325,13 @@ sap.ui.define([
|
|
|
325
325
|
oRM.destroy();
|
|
326
326
|
}).setHeader("child2");
|
|
327
327
|
|
|
328
|
-
|
|
328
|
+
await nextUIUpdate();
|
|
329
329
|
assert.equal(oPatchingControl.getDomRef().textContent, "root2child2");
|
|
330
330
|
|
|
331
331
|
oPatchingControl.destroy();
|
|
332
332
|
});
|
|
333
333
|
|
|
334
|
-
QUnit.test("Mix rendering style checks", function(assert) {
|
|
334
|
+
QUnit.test("Mix rendering style checks", async function(assert) {
|
|
335
335
|
var oPatchingControl = new PatchingControl("root", {
|
|
336
336
|
width: "99.9%",
|
|
337
337
|
items: [new StringControl("child1", {
|
|
@@ -342,7 +342,7 @@ sap.ui.define([
|
|
|
342
342
|
});
|
|
343
343
|
|
|
344
344
|
oPatchingControl.placeAt("qunit-fixture");
|
|
345
|
-
|
|
345
|
+
await nextUIUpdate();
|
|
346
346
|
|
|
347
347
|
assert.equal(document.getElementById("root").style.width, "99.9%", "Width is set correctly for the root");
|
|
348
348
|
assert.equal(document.getElementById("child1").style.width, "calc(-3rem + 50vw)", "Width is set correctly for the 1st child");
|
|
@@ -351,7 +351,7 @@ sap.ui.define([
|
|
|
351
351
|
oPatchingControl.destroy();
|
|
352
352
|
});
|
|
353
353
|
|
|
354
|
-
QUnit.test("Invalidation in the onBeforeRendering", function(assert) {
|
|
354
|
+
QUnit.test("Invalidation in the onBeforeRendering", async function(assert) {
|
|
355
355
|
var oPatchingControl = new PatchingControl({
|
|
356
356
|
items: new PatchingControl()
|
|
357
357
|
});
|
|
@@ -367,24 +367,24 @@ sap.ui.define([
|
|
|
367
367
|
onBeforeRendering: onBeforeRenderingSpy
|
|
368
368
|
});
|
|
369
369
|
|
|
370
|
-
|
|
370
|
+
oPatchingControl.placeAt("qunit-fixture");
|
|
371
|
+
await nextUIUpdate();
|
|
372
|
+
setTimeout(async function() {
|
|
371
373
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called only once");
|
|
372
374
|
onBeforeRenderingSpy.resetHistory();
|
|
375
|
+
oPatchingControl.invalidate();
|
|
376
|
+
await nextUIUpdate();
|
|
373
377
|
setTimeout(function() {
|
|
374
378
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called only once");
|
|
375
379
|
done();
|
|
376
380
|
});
|
|
377
|
-
oPatchingControl.invalidate();
|
|
378
|
-
Core.applyChanges();
|
|
379
381
|
});
|
|
380
|
-
oPatchingControl.placeAt("qunit-fixture");
|
|
381
|
-
Core.applyChanges();
|
|
382
382
|
});
|
|
383
383
|
|
|
384
|
-
QUnit.test("Rerendering mutations", function(assert) {
|
|
384
|
+
QUnit.test("Rerendering mutations", async function(assert) {
|
|
385
385
|
var oRemovedChild = null;
|
|
386
386
|
var fnCreateRenderManager = function() {
|
|
387
|
-
var oRM =
|
|
387
|
+
var oRM = new RenderManager();
|
|
388
388
|
oRM.openStart("div").openEnd().close("div");
|
|
389
389
|
oRM.destroy();
|
|
390
390
|
};
|
|
@@ -394,11 +394,14 @@ sap.ui.define([
|
|
|
394
394
|
oPatchingControl.data("KEY", "VALUE");
|
|
395
395
|
|
|
396
396
|
oPatchingControl.placeAt("qunit-fixture");
|
|
397
|
-
|
|
397
|
+
await nextUIUpdate();
|
|
398
398
|
|
|
399
|
-
var aMutations;
|
|
400
399
|
var oDomRef = oPatchingControl.getDomRef();
|
|
401
|
-
var
|
|
400
|
+
var aMutations = [];
|
|
401
|
+
var oObserver = new MutationObserver(function(mutations) {
|
|
402
|
+
aMutations = [];
|
|
403
|
+
aMutations = mutations;
|
|
404
|
+
});
|
|
402
405
|
|
|
403
406
|
oObserver.observe(oDomRef, {
|
|
404
407
|
characterDataOldValue: true,
|
|
@@ -410,160 +413,143 @@ sap.ui.define([
|
|
|
410
413
|
});
|
|
411
414
|
|
|
412
415
|
oPatchingControl.invalidate();
|
|
413
|
-
|
|
416
|
+
await nextUIUpdate();
|
|
414
417
|
aMutations = oObserver.takeRecords();
|
|
415
418
|
assert.equal(aMutations.length, 0, "Rerendering needs no mutation");
|
|
416
419
|
|
|
417
420
|
oPatchingControl.setHeader("H/");
|
|
418
|
-
|
|
419
|
-
aMutations = oObserver.takeRecords();
|
|
421
|
+
await nextUIUpdate();
|
|
420
422
|
assert.equal(oDomRef.textContent, "H/", "Header is changed");
|
|
421
423
|
assert.equal(aMutations.length, 1, "Only header is changed");
|
|
422
424
|
|
|
423
425
|
oPatchingControl.setTooltip("T");
|
|
424
|
-
|
|
425
|
-
aMutations = oObserver.takeRecords();
|
|
426
|
+
await nextUIUpdate();
|
|
426
427
|
assert.equal(oDomRef.title, "T", "Title is changed");
|
|
427
428
|
assert.equal(aMutations.length, 1, "Only title is changed");
|
|
428
429
|
|
|
429
430
|
oPatchingControl.setWidth("100px");
|
|
430
|
-
|
|
431
|
-
aMutations = oObserver.takeRecords();
|
|
431
|
+
await nextUIUpdate();
|
|
432
432
|
assert.equal(oDomRef.style.width, "100px", "Width is changed");
|
|
433
433
|
assert.equal(aMutations.length, 1, "Only width is changed");
|
|
434
434
|
|
|
435
435
|
oPatchingControl.addStyleClass("A").invalidate();
|
|
436
|
-
|
|
437
|
-
aMutations = oObserver.takeRecords();
|
|
436
|
+
await nextUIUpdate();
|
|
438
437
|
assert.ok(oDomRef.classList.contains("A"), "Class A is added");
|
|
439
438
|
assert.equal(aMutations.length, 1, "Only class is changed");
|
|
440
439
|
|
|
441
440
|
oPatchingControl.addStyleClass("Z").invalidate();
|
|
442
|
-
|
|
443
|
-
aMutations = oObserver.takeRecords();
|
|
441
|
+
await nextUIUpdate();
|
|
444
442
|
assert.ok(oDomRef.classList.contains("A"), "Class Z is added");
|
|
445
443
|
assert.equal(aMutations.length, 1, "Only class is changed");
|
|
446
444
|
|
|
447
445
|
oPatchingControl.data("key", "value", true).invalidate();
|
|
448
|
-
|
|
449
|
-
aMutations = oObserver.takeRecords();
|
|
446
|
+
await nextUIUpdate();
|
|
450
447
|
assert.equal(oDomRef.getAttribute("data-key"), "value", "Data attribute is set");
|
|
451
448
|
assert.equal(aMutations.length, 1, "Only data-key attribute is set");
|
|
452
449
|
|
|
453
450
|
oPatchingControl.addItem(new PatchingControl({header: "A", doSomething: fnCreateRenderManager}));
|
|
454
|
-
|
|
455
|
-
aMutations = oObserver.takeRecords();
|
|
451
|
+
await nextUIUpdate();
|
|
456
452
|
assert.equal(oDomRef.lastChild.textContent, "A", "Child A is added");
|
|
457
453
|
assert.equal(aMutations.length, 1, "Only child A is added");
|
|
458
454
|
|
|
459
455
|
oPatchingControl.addItem(new PatchingControl({header: "B"}));
|
|
460
|
-
|
|
461
|
-
aMutations = oObserver.takeRecords();
|
|
456
|
+
await nextUIUpdate();
|
|
462
457
|
assert.equal(oDomRef.lastChild.textContent, "B", "Child B is added");
|
|
463
458
|
assert.equal(aMutations.length, 1, "Only child B is added");
|
|
464
459
|
|
|
465
460
|
oPatchingControl.addItem(new PatchingControl({header: "C"}));
|
|
466
|
-
|
|
467
|
-
aMutations = oObserver.takeRecords();
|
|
461
|
+
await nextUIUpdate();
|
|
468
462
|
assert.equal(oDomRef.lastChild.textContent, "C", "Child C is added");
|
|
469
463
|
assert.equal(aMutations.length, 1, "Only child C is added");
|
|
470
464
|
|
|
471
465
|
assert.equal(oDomRef.textContent, "H/ABC", "Rendering is valid after PatchingControls are added");
|
|
472
466
|
|
|
473
467
|
oPatchingControl.getItems()[1].setVisible(false);
|
|
474
|
-
|
|
475
|
-
aMutations = oObserver.takeRecords();
|
|
468
|
+
await nextUIUpdate();
|
|
476
469
|
assert.equal(oDomRef.textContent, "H/AC", "Child B is not visible");
|
|
477
470
|
assert.equal(aMutations.length, 1, "Child B DOM is replaced with the invisible placeholder");
|
|
478
471
|
|
|
472
|
+
aMutations = [];
|
|
479
473
|
oPatchingControl.invalidate();
|
|
480
|
-
|
|
481
|
-
aMutations = oObserver.takeRecords();
|
|
474
|
+
await nextUIUpdate();
|
|
482
475
|
assert.equal(aMutations.length, 0, "No DOM update");
|
|
483
476
|
|
|
484
477
|
oPatchingControl.getItems()[1].setVisible(true);
|
|
485
|
-
|
|
486
|
-
aMutations = oObserver.takeRecords();
|
|
478
|
+
await nextUIUpdate();
|
|
487
479
|
assert.equal(oDomRef.textContent, "H/ABC", "Child B is visible again");
|
|
488
480
|
assert.equal(aMutations.length, 1, "Invisible placeholder is replaced with Child B");
|
|
489
481
|
assert.ok(aMutations[0].removedNodes[0].id.endsWith(aMutations[0].addedNodes[0].id), "Invisible placeholder is replaced via old rendering");
|
|
490
482
|
|
|
491
483
|
oRemovedChild = oPatchingControl.removeItem(0);
|
|
492
|
-
|
|
493
|
-
aMutations = oObserver.takeRecords();
|
|
484
|
+
await nextUIUpdate();
|
|
494
485
|
assert.equal(oDomRef.textContent, "H/BC", "Child A is removed");
|
|
495
486
|
assert.equal(aMutations.length, 5, "Remove B from 2nd, Insert B to 1st / Remove C from 3nd, Insert C to 1st / Remove A");
|
|
496
487
|
|
|
497
488
|
oPatchingControl.insertItem(oRemovedChild, 0);
|
|
498
|
-
|
|
499
|
-
aMutations = oObserver.takeRecords();
|
|
489
|
+
await nextUIUpdate();
|
|
500
490
|
assert.equal(oDomRef.textContent, "H/ABC", "Child A is inserted to the 1st position");
|
|
501
491
|
assert.equal(aMutations.length, 1, "Only Child A is inserted");
|
|
502
492
|
|
|
503
493
|
oRemovedChild = oPatchingControl.removeItem(1);
|
|
504
|
-
|
|
505
|
-
aMutations = oObserver.takeRecords();
|
|
494
|
+
await nextUIUpdate();
|
|
506
495
|
assert.equal(oDomRef.textContent, "H/AC", "Child B is removed");
|
|
507
496
|
assert.equal(aMutations.length, 3, "A is not changed / Remove C from 3nd, Insert C to 1st / Remove B");
|
|
508
497
|
|
|
509
498
|
oPatchingControl.insertItem(oRemovedChild, 1);
|
|
510
|
-
|
|
511
|
-
aMutations = oObserver.takeRecords();
|
|
499
|
+
await nextUIUpdate();
|
|
512
500
|
assert.equal(oDomRef.textContent, "H/ABC", "Child B is inserted to the 2nd position");
|
|
513
501
|
assert.equal(aMutations.length, 1, "Only Child B is inserted");
|
|
514
502
|
|
|
515
503
|
oRemovedChild = oPatchingControl.removeItem(2);
|
|
516
|
-
|
|
517
|
-
aMutations = oObserver.takeRecords();
|
|
504
|
+
await nextUIUpdate();
|
|
518
505
|
assert.equal(oDomRef.textContent, "H/AB", "Child C is removed");
|
|
519
506
|
assert.equal(aMutations.length, 1, "A is not changed / B is not changed / Remove C");
|
|
520
507
|
|
|
521
508
|
oPatchingControl.insertItem(oRemovedChild, 2);
|
|
522
|
-
|
|
523
|
-
aMutations = oObserver.takeRecords();
|
|
509
|
+
await nextUIUpdate();
|
|
524
510
|
assert.equal(oDomRef.textContent, "H/ABC", "Child C is inserted to the 3nd position");
|
|
525
511
|
assert.equal(aMutations.length, 1, "Only Child C is inserted");
|
|
526
512
|
|
|
513
|
+
aMutations = [];
|
|
527
514
|
oPatchingControl.invalidate();
|
|
528
|
-
|
|
529
|
-
aMutations = oObserver.takeRecords();
|
|
515
|
+
await nextUIUpdate();
|
|
530
516
|
assert.equal(aMutations.length, 0, "No DOM update");
|
|
531
517
|
|
|
532
518
|
oPatchingControl.addItem(new StringControl({header: "X", doSomething: fnCreateRenderManager}));
|
|
533
|
-
|
|
534
|
-
aMutations = cleanupMutations(
|
|
519
|
+
await nextUIUpdate();
|
|
520
|
+
aMutations = cleanupMutations(aMutations);
|
|
535
521
|
assert.equal(oDomRef.lastChild.textContent, "X", "Child X is added via String Rendering");
|
|
536
522
|
assert.equal(aMutations.length, 1, "Only child X is added");
|
|
537
523
|
|
|
538
524
|
assert.equal(oDomRef.textContent, "H/ABCX", "Rendering is valid after StringControl is added");
|
|
539
525
|
|
|
540
526
|
oPatchingControl.invalidate();
|
|
541
|
-
|
|
542
|
-
aMutations = cleanupMutations(
|
|
527
|
+
await nextUIUpdate();
|
|
528
|
+
aMutations = cleanupMutations(aMutations);
|
|
543
529
|
assert.equal(aMutations.length, 2, "StringControl is replaced(removed from DOM and added again)");
|
|
544
530
|
|
|
545
531
|
oPatchingControl.setWidth("200px");
|
|
546
|
-
|
|
547
|
-
aMutations = cleanupMutations(
|
|
532
|
+
await nextUIUpdate();
|
|
533
|
+
aMutations = cleanupMutations(aMutations);
|
|
548
534
|
assert.equal(oDomRef.style.width, "200px", "Width is changed");
|
|
549
535
|
assert.equal(aMutations.length, 3, "Only width of Patching control is changed and StringControl is replaced");
|
|
550
536
|
|
|
551
537
|
oRemovedChild = oPatchingControl.removeItem(3);
|
|
552
538
|
oPatchingControl.insertItem(oRemovedChild, 2);
|
|
553
|
-
|
|
554
|
-
aMutations = cleanupMutations(
|
|
539
|
+
await nextUIUpdate();
|
|
540
|
+
aMutations = cleanupMutations(aMutations);
|
|
555
541
|
assert.equal(oDomRef.textContent, "H/ABXC", "Child X inserted to right position");
|
|
556
542
|
assert.equal(aMutations.length, 2, "StringControl is added to 3rd position and old one is removed");
|
|
557
543
|
|
|
558
544
|
oPatchingControl.insertItem(new StringControl({header: "Y"}), 0);
|
|
559
|
-
|
|
560
|
-
aMutations = cleanupMutations(
|
|
545
|
+
await nextUIUpdate();
|
|
546
|
+
aMutations = cleanupMutations(aMutations);
|
|
561
547
|
assert.equal(oDomRef.textContent, "H/YABXC", "Child Y inserted to first position");
|
|
562
548
|
assert.equal(aMutations.length, 3, "StringControl Y is added to first position, StringControl X is replaced");
|
|
563
549
|
|
|
564
550
|
oPatchingControl.removeAllItems();
|
|
565
|
-
|
|
566
|
-
|
|
551
|
+
await nextUIUpdate();
|
|
552
|
+
oObserver.takeRecords();
|
|
567
553
|
assert.equal(aMutations.length, 5, "All children are removed");
|
|
568
554
|
assert.equal(oDomRef.textContent, "H/", "Parent is alone");
|
|
569
555
|
|
|
@@ -571,14 +557,14 @@ sap.ui.define([
|
|
|
571
557
|
oPatchingControl.destroy();
|
|
572
558
|
});
|
|
573
559
|
|
|
574
|
-
QUnit.test("UIArea Rendering", function(assert) {
|
|
560
|
+
QUnit.test("UIArea Rendering", async function(assert) {
|
|
575
561
|
var oPatchingControl = new PatchingControl();
|
|
576
562
|
oPatchingControl.placeAt("uiArea1");
|
|
577
|
-
|
|
563
|
+
await nextUIUpdate();
|
|
578
564
|
|
|
579
565
|
oPatchingControl.setHeader("New Header");
|
|
580
566
|
oPatchingControl.placeAt("uiArea2");
|
|
581
|
-
|
|
567
|
+
await nextUIUpdate();
|
|
582
568
|
|
|
583
569
|
var oDomRef = oPatchingControl.getDomRef();
|
|
584
570
|
assert.equal(oDomRef.textContent, "New Header", "Header is updated");
|
|
@@ -588,7 +574,7 @@ sap.ui.define([
|
|
|
588
574
|
oPatchingControl.destroy();
|
|
589
575
|
});
|
|
590
576
|
|
|
591
|
-
QUnit.test("No Rendering Output", function(assert) {
|
|
577
|
+
QUnit.test("No Rendering Output", async function(assert) {
|
|
592
578
|
var onBeforeRenderingSpy = sinon.spy();
|
|
593
579
|
var onAfterRenderingSpy = sinon.spy();
|
|
594
580
|
var oRootControl = new PatchingControl({
|
|
@@ -611,7 +597,7 @@ sap.ui.define([
|
|
|
611
597
|
]
|
|
612
598
|
});
|
|
613
599
|
oRootControl.placeAt("qunit-fixture");
|
|
614
|
-
|
|
600
|
+
await nextUIUpdate();
|
|
615
601
|
var oDomRef = oRootControl.getDomRef();
|
|
616
602
|
|
|
617
603
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called");
|
|
@@ -619,31 +605,31 @@ sap.ui.define([
|
|
|
619
605
|
assert.equal(oDomRef.textContent, "R/", "Children have no output");
|
|
620
606
|
|
|
621
607
|
oRootControl.invalidate();
|
|
622
|
-
|
|
608
|
+
await nextUIUpdate();
|
|
623
609
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called");
|
|
624
610
|
assert.equal(onBeforeRenderingSpy.callCount, 4, "onBeforeRendering is called");
|
|
625
611
|
assert.equal(oDomRef.textContent, "R/", "Children have still no output");
|
|
626
612
|
|
|
627
613
|
oRootControl.getItems()[0].setRenderNothing(false);
|
|
628
|
-
|
|
614
|
+
await nextUIUpdate();
|
|
629
615
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is called");
|
|
630
616
|
assert.equal(onBeforeRenderingSpy.callCount, 6, "onBeforeRendering is called");
|
|
631
617
|
assert.equal(oDomRef.textContent, "R/S", "StringControl child has output");
|
|
632
618
|
|
|
633
619
|
oRootControl.getItems()[0].setRenderNothing(true);
|
|
634
|
-
|
|
620
|
+
await nextUIUpdate();
|
|
635
621
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is not called");
|
|
636
622
|
assert.equal(onBeforeRenderingSpy.callCount, 7, "onBeforeRendering is called");
|
|
637
623
|
assert.equal(oDomRef.textContent, "R/", "StringControl has no output anymore");
|
|
638
624
|
|
|
639
625
|
oRootControl.getItems()[1].setRenderNothing(false);
|
|
640
|
-
|
|
626
|
+
await nextUIUpdate();
|
|
641
627
|
assert.equal(onAfterRenderingSpy.callCount, 2, "onAfterRendering is called");
|
|
642
628
|
assert.equal(onBeforeRenderingSpy.callCount, 9, "onBeforeRendering is called");
|
|
643
629
|
assert.equal(oDomRef.textContent, "R/P", "PatchingControl child has output");
|
|
644
630
|
|
|
645
631
|
oRootControl.getItems()[1].setRenderNothing(true);
|
|
646
|
-
|
|
632
|
+
await nextUIUpdate();
|
|
647
633
|
assert.equal(onAfterRenderingSpy.callCount, 2, "onAfterRendering is not called");
|
|
648
634
|
assert.equal(onBeforeRenderingSpy.callCount, 10, "onBeforeRendering is called");
|
|
649
635
|
assert.equal(oDomRef.textContent, "R/", "PatchingControl child has no output anymore");
|
|
@@ -651,7 +637,7 @@ sap.ui.define([
|
|
|
651
637
|
oRootControl.destroy();
|
|
652
638
|
});
|
|
653
639
|
|
|
654
|
-
QUnit.test("Invisible Rendering", function(assert) {
|
|
640
|
+
QUnit.test("Invisible Rendering", async function(assert) {
|
|
655
641
|
var onBeforeRenderingSpy = sinon.spy();
|
|
656
642
|
var onAfterRenderingSpy = sinon.spy();
|
|
657
643
|
var oRootControl = new PatchingControl({
|
|
@@ -679,7 +665,7 @@ sap.ui.define([
|
|
|
679
665
|
}
|
|
680
666
|
|
|
681
667
|
oRootControl.placeAt("qunit-fixture");
|
|
682
|
-
|
|
668
|
+
await nextUIUpdate();
|
|
683
669
|
var oDomRef = oRootControl.getDomRef();
|
|
684
670
|
|
|
685
671
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called");
|
|
@@ -695,7 +681,7 @@ sap.ui.define([
|
|
|
695
681
|
onAfterRenderingSpy.resetHistory();
|
|
696
682
|
|
|
697
683
|
oRootControl.invalidate();
|
|
698
|
-
|
|
684
|
+
await nextUIUpdate();
|
|
699
685
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called during rerender");
|
|
700
686
|
assert.equal(onBeforeRenderingSpy.callCount, 2, "onBeforeRendering is called during rerender");
|
|
701
687
|
assert.equal(oDomRef.textContent, "R/", "Children have still no output");
|
|
@@ -709,7 +695,7 @@ sap.ui.define([
|
|
|
709
695
|
onAfterRenderingSpy.resetHistory();
|
|
710
696
|
|
|
711
697
|
oRootControl.getItems()[0].setVisible(true);
|
|
712
|
-
|
|
698
|
+
await nextUIUpdate();
|
|
713
699
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is called for string rendering, visible=true");
|
|
714
700
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called for string rendering, visible=true");
|
|
715
701
|
assert.equal(oDomRef.textContent, "R/S", "StringControl child has output");
|
|
@@ -717,7 +703,7 @@ sap.ui.define([
|
|
|
717
703
|
onAfterRenderingSpy.resetHistory();
|
|
718
704
|
|
|
719
705
|
oRootControl.getItems()[0].setVisible(false);
|
|
720
|
-
|
|
706
|
+
await nextUIUpdate();
|
|
721
707
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called for string rendering, visible=false");
|
|
722
708
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called for string rendering, visible=false");
|
|
723
709
|
assert.equal(oDomRef.textContent, "R/", "StringControl has no output anymore");
|
|
@@ -725,7 +711,7 @@ sap.ui.define([
|
|
|
725
711
|
onAfterRenderingSpy.resetHistory();
|
|
726
712
|
|
|
727
713
|
oRootControl.getItems()[1].setVisible(true);
|
|
728
|
-
|
|
714
|
+
await nextUIUpdate();
|
|
729
715
|
assert.equal(onAfterRenderingSpy.callCount, 1, "onAfterRendering is called for patching control, visible=true");
|
|
730
716
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called for patching control, visible=true");
|
|
731
717
|
assert.equal(oDomRef.textContent, "R/P", "PatchingControl child has output");
|
|
@@ -733,7 +719,7 @@ sap.ui.define([
|
|
|
733
719
|
onAfterRenderingSpy.resetHistory();
|
|
734
720
|
|
|
735
721
|
oRootControl.getItems()[1].setVisible(false);
|
|
736
|
-
|
|
722
|
+
await nextUIUpdate();
|
|
737
723
|
assert.equal(onAfterRenderingSpy.callCount, 0, "onAfterRendering is not called for patching control, visible=false");
|
|
738
724
|
assert.equal(onBeforeRenderingSpy.callCount, 1, "onBeforeRendering is called for patching control, visible=false");
|
|
739
725
|
assert.equal(oDomRef.textContent, "R/", "PatchingControl child has no output anymore");
|
|
@@ -743,7 +729,7 @@ sap.ui.define([
|
|
|
743
729
|
oRootControl.destroy();
|
|
744
730
|
});
|
|
745
731
|
|
|
746
|
-
QUnit.test("Nested Mixture Rendering", function(assert) {
|
|
732
|
+
QUnit.test("Nested Mixture Rendering", async function(assert) {
|
|
747
733
|
var oBeforeRenderingSpy = sinon.spy();
|
|
748
734
|
var oDelegate = { onBeforeRendering: oBeforeRenderingSpy };
|
|
749
735
|
var oRootControl = new PatchingControl({
|
|
@@ -774,19 +760,23 @@ sap.ui.define([
|
|
|
774
760
|
]
|
|
775
761
|
});
|
|
776
762
|
oRootControl.placeAt("qunit-fixture");
|
|
777
|
-
|
|
763
|
+
await nextUIUpdate();
|
|
778
764
|
|
|
779
765
|
var o1_1P = oRootControl.getItems()[0].getItems()[0];
|
|
780
766
|
assert.notOk(oBeforeRenderingSpy.getCall(0).args[0].domInterface, "domInterface=false for the 1.1P/ because its string rendering parent 1S/ force it to render string as well");
|
|
781
767
|
oBeforeRenderingSpy.resetHistory();
|
|
782
768
|
|
|
783
769
|
o1_1P.invalidate();
|
|
784
|
-
|
|
770
|
+
await nextUIUpdate();
|
|
785
771
|
o1_1P.removeEventDelegate(oDelegate);
|
|
786
772
|
oBeforeRenderingSpy.resetHistory();
|
|
787
773
|
|
|
774
|
+
var aMutations = [];
|
|
788
775
|
var oDomRef = oRootControl.getDomRef();
|
|
789
|
-
var oObserver = new MutationObserver(function() {
|
|
776
|
+
var oObserver = new MutationObserver(function(mutations) {
|
|
777
|
+
aMutations = [];
|
|
778
|
+
aMutations = mutations;
|
|
779
|
+
});
|
|
790
780
|
|
|
791
781
|
oObserver.observe(oDomRef, {
|
|
792
782
|
characterDataOldValue: true,
|
|
@@ -797,13 +787,12 @@ sap.ui.define([
|
|
|
797
787
|
subtree: true
|
|
798
788
|
});
|
|
799
789
|
|
|
800
|
-
var oDomRef = oRootControl.getDomRef();
|
|
801
790
|
assert.equal(oDomRef.textContent, "R/1S/1.1P/1.2S/2P/2.1S/2.2P/", "Content is correct after initial rendering");
|
|
802
791
|
|
|
803
792
|
oRootControl.invalidate();
|
|
804
|
-
|
|
793
|
+
await nextUIUpdate();
|
|
805
794
|
|
|
806
|
-
|
|
795
|
+
aMutations = cleanupMutations(aMutations);
|
|
807
796
|
assert.equal(aMutations.length, 4, "Only 1S/ and 2.1S/ String controls need to be replaced");
|
|
808
797
|
assert.equal(aMutations[0].addedNodes[0].textContent, "1S/1.1P/1.2S/", "New 1S/ String control is inserted with its children");
|
|
809
798
|
assert.equal(aMutations[1].removedNodes[0].textContent, "1S/1.1P/1.2S/", "Old 1S/ String control is removed with its childre");
|
|
@@ -815,15 +804,15 @@ sap.ui.define([
|
|
|
815
804
|
oRootControl.destroy();
|
|
816
805
|
});
|
|
817
806
|
|
|
818
|
-
QUnit.test("Preserved Area and Patching", function(assert) {
|
|
807
|
+
QUnit.test("Preserved Area and Patching", async function(assert) {
|
|
819
808
|
var oPatchingControl = new PatchingControl();
|
|
820
809
|
oPatchingControl.placeAt("qunit-fixture");
|
|
821
|
-
|
|
810
|
+
await nextUIUpdate();
|
|
822
811
|
|
|
823
812
|
oPatchingControl.getDomRef().setAttribute("data-sap-ui-preserve", oPatchingControl.getId());
|
|
824
813
|
RenderManager.preserveContent(oPatchingControl.getDomRef(), true);
|
|
825
814
|
oPatchingControl.setHeader("New Header");
|
|
826
|
-
|
|
815
|
+
await nextUIUpdate();
|
|
827
816
|
|
|
828
817
|
assert.equal(oPatchingControl.getDomRef().textContent, "PatchingControl", "PatchingControl control in the preserved area is not patched");
|
|
829
818
|
|
|
@@ -898,7 +887,7 @@ sap.ui.define([
|
|
|
898
887
|
assert.equal(RenderManager.getApiVersion(NewestPatchingControlRenderer), 1, "apiVersion is not inherited from the base class");
|
|
899
888
|
});
|
|
900
889
|
|
|
901
|
-
QUnit.test("Focus Handler for Patching Controls", function(assert) {
|
|
890
|
+
QUnit.test("Focus Handler for Patching Controls", async function(assert) {
|
|
902
891
|
var oChild1 = new PatchingControl({
|
|
903
892
|
header: "1P"
|
|
904
893
|
});
|
|
@@ -912,7 +901,7 @@ sap.ui.define([
|
|
|
912
901
|
]
|
|
913
902
|
});
|
|
914
903
|
oRootControl.placeAt("qunit-fixture");
|
|
915
|
-
|
|
904
|
+
await nextUIUpdate();
|
|
916
905
|
|
|
917
906
|
var oChild1GetFocusInfoSpy = sinon.spy(oChild1, "getFocusInfo");
|
|
918
907
|
var oChild1ApplyFocusInfoSpy = sinon.spy(oChild1, "applyFocusInfo");
|
|
@@ -921,20 +910,20 @@ sap.ui.define([
|
|
|
921
910
|
|
|
922
911
|
oChild1.focus();
|
|
923
912
|
oChild1.invalidate();
|
|
924
|
-
|
|
913
|
+
await nextUIUpdate();
|
|
925
914
|
assert.ok(oChild1GetFocusInfoSpy.called, "Child1.getFocusInfo is called");
|
|
926
915
|
assert.ok(oChild1ApplyFocusInfoSpy.called, "Child1.applyFocusInfo is called");
|
|
927
916
|
assert.equal(document.activeElement, oChild1.getFocusDomRef(), "Child1 has still focus after rendering");
|
|
928
917
|
|
|
929
918
|
oChild2.invalidate();
|
|
930
|
-
|
|
919
|
+
await nextUIUpdate();
|
|
931
920
|
assert.notOk(oChild2GetFocusInfoSpy.called, "Child2.getFocusInfo is not called");
|
|
932
921
|
assert.notOk(oChild2ApplyFocusInfoSpy.called, "Child2.applyFocusInfo is not called");
|
|
933
922
|
assert.equal(document.activeElement, oChild1.getFocusDomRef(), "Child1 has still focus after Child2 rendering");
|
|
934
923
|
|
|
935
924
|
oChild2.focus();
|
|
936
925
|
oRootControl.invalidate();
|
|
937
|
-
|
|
926
|
+
await nextUIUpdate();
|
|
938
927
|
assert.ok(oChild2GetFocusInfoSpy.called, "Child2.getFocusInfo is called");
|
|
939
928
|
assert.ok(oChild2ApplyFocusInfoSpy.called, "Child2.applyFocusInfo is called");
|
|
940
929
|
assert.equal(document.activeElement, oChild2.getFocusDomRef(), "Child2 has still focus after parent rendering");
|
|
@@ -953,14 +942,18 @@ sap.ui.define([
|
|
|
953
942
|
this.oApiVerionStub = sinon.stub(PatchingControl.getMetadata().getRenderer(), "apiVersion").value(4);
|
|
954
943
|
this.oBeforeRenderingSpy = sinon.spy(Control.prototype, "onBeforeRendering");
|
|
955
944
|
},
|
|
956
|
-
beforeEach: function() {
|
|
945
|
+
beforeEach: async function() {
|
|
957
946
|
this.initControlTree();
|
|
958
947
|
this.oRootControl.placeAt("qunit-fixture");
|
|
959
|
-
|
|
948
|
+
await nextUIUpdate();
|
|
960
949
|
|
|
961
950
|
this.oBeforeRenderingSpy.resetHistory();
|
|
962
951
|
this.oDomRef = this.oRootControl.getDomRef();
|
|
963
|
-
this.
|
|
952
|
+
this.aMutations = [];
|
|
953
|
+
this.oObserver = new MutationObserver(function(mutations) {
|
|
954
|
+
this.aMutations = [];
|
|
955
|
+
this.aMutations = mutations;
|
|
956
|
+
}.bind(this));
|
|
964
957
|
this.oObserver.observe(this.oDomRef, {
|
|
965
958
|
characterData: true,
|
|
966
959
|
attributes: true,
|
|
@@ -968,11 +961,10 @@ sap.ui.define([
|
|
|
968
961
|
subtree: true
|
|
969
962
|
});
|
|
970
963
|
},
|
|
971
|
-
act: function(fnAct) {
|
|
964
|
+
act: async function(fnAct) {
|
|
972
965
|
this.oBeforeRenderingSpy.resetHistory();
|
|
973
|
-
this.oObserver.takeRecords();
|
|
974
966
|
fnAct.call(this);
|
|
975
|
-
|
|
967
|
+
await nextUIUpdate();
|
|
976
968
|
},
|
|
977
969
|
afterEach: function() {
|
|
978
970
|
this.oObserver.disconnect();
|
|
@@ -1008,42 +1000,42 @@ sap.ui.define([
|
|
|
1008
1000
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2P/", "Content is correct after initial rendering");
|
|
1009
1001
|
});
|
|
1010
1002
|
|
|
1011
|
-
QUnit.test("Insert a new aggregation", function(assert) {
|
|
1003
|
+
QUnit.test("Insert a new aggregation", async function(assert) {
|
|
1012
1004
|
var oNewControl = new PatchingControl({header: "2P/"});
|
|
1013
|
-
this.act(function() {
|
|
1005
|
+
await this.act(function() {
|
|
1014
1006
|
this.oRootControl.addItem(oNewControl);
|
|
1015
1007
|
});
|
|
1016
1008
|
|
|
1017
1009
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2P/2P/", "The new control has been rendered correctly");
|
|
1018
|
-
assert.equal(this.
|
|
1010
|
+
assert.equal(this.aMutations.length, 1, "Only the new control has been rendered");
|
|
1019
1011
|
assert.equal(this.oBeforeRenderingSpy.callCount, 2, "oBeforeRenderingSpy is only called for the root and new control");
|
|
1020
1012
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the root control");
|
|
1021
1013
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(oNewControl), "oBeforeRenderingSpy is called on the new control");
|
|
1022
1014
|
});
|
|
1023
1015
|
|
|
1024
|
-
QUnit.test("Make a parent control invisible and then visible", function(assert) {
|
|
1025
|
-
this.act(function() {
|
|
1016
|
+
QUnit.test("Make a parent control invisible and then visible", async function(assert) {
|
|
1017
|
+
await this.act(function() {
|
|
1026
1018
|
this.o1P.setVisible(false);
|
|
1027
1019
|
});
|
|
1028
1020
|
|
|
1029
1021
|
assert.equal(this.oDomRef.textContent, "R/", "1P/ control and its children are not rendered");
|
|
1030
|
-
assert.equal(this.
|
|
1022
|
+
assert.equal(this.aMutations.length, 1, "Control 1P/ DOM node and its children replaced with the invisible placeholder");
|
|
1031
1023
|
assert.ok(document.getElementById(RenderManager.createInvisiblePlaceholderId(this.o1P)), "Invisible placeholder has been rendered");
|
|
1032
1024
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P Control");
|
|
1033
1025
|
|
|
1034
|
-
this.act(function() {
|
|
1026
|
+
await this.act(function() {
|
|
1035
1027
|
this.o1P.setVisible(true);
|
|
1036
1028
|
});
|
|
1037
1029
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2P/", "Visible item and its children are rendered correctly");
|
|
1038
|
-
assert.equal(this.
|
|
1030
|
+
assert.equal(this.aMutations.length, 1, "invisible placeholder DOM is replaced with the item DOM that contains children");
|
|
1039
1031
|
assert.equal(this.oBeforeRenderingSpy.callCount, 3, "oBeforeRenderingSpy is called for the root invisible control and its children");
|
|
1040
1032
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.o1P), "oBeforeRenderingSpy is called for the root invisible item 1P/");
|
|
1041
1033
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1_1P), "oBeforeRenderingSpy is called for the invisible item 1.1P/");
|
|
1042
1034
|
assert.ok(this.oBeforeRenderingSpy.getCall(2).calledOn(this.o1_2P), "oBeforeRenderingSpy is called for the invisible item 1.2P/");
|
|
1043
1035
|
});
|
|
1044
1036
|
|
|
1045
|
-
QUnit.test("Child invalidation while parent rendering can be skipped", function(assert) {
|
|
1046
|
-
this.act(function() {
|
|
1037
|
+
QUnit.test("Child invalidation while parent rendering can be skipped", async function(assert) {
|
|
1038
|
+
await this.act(function() {
|
|
1047
1039
|
this.oRootControl.setHeader("RNew/");
|
|
1048
1040
|
this.o1_1P.setHeader("1.1PNew/");
|
|
1049
1041
|
assert.ok(this.oRootControl._bNeedsRendering, "parent of 1P/ is invalidated");
|
|
@@ -1052,20 +1044,20 @@ sap.ui.define([
|
|
|
1052
1044
|
});
|
|
1053
1045
|
|
|
1054
1046
|
assert.equal(this.oDomRef.textContent, "RNew/1P/1.1PNew/1.2P/", "New headers are rendered correctly");
|
|
1055
|
-
assert.equal(this.
|
|
1047
|
+
assert.equal(this.aMutations.length, 2, "Header for the root control and header for 1.1P/ are set");
|
|
1056
1048
|
assert.equal(this.oBeforeRenderingSpy.callCount, 2, "oBeforeRenderingSpy is only called for the root control and the 1.1P/ control");
|
|
1057
1049
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the root control");
|
|
1058
1050
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1_1P), "oBeforeRenderingSpy is called on the 1.1P/ control");
|
|
1059
1051
|
});
|
|
1060
1052
|
|
|
1061
|
-
QUnit.test("Make an invisible child visible while parent rendering can be skipped", function(assert) {
|
|
1062
|
-
this.act(function() {
|
|
1053
|
+
QUnit.test("Make an invisible child visible while parent rendering can be skipped", async function(assert) {
|
|
1054
|
+
await this.act(function() {
|
|
1063
1055
|
this.o1_1P.setVisible(false);
|
|
1064
1056
|
});
|
|
1065
1057
|
|
|
1066
1058
|
assert.equal(this.oDomRef.textContent, "R/1P/1.2P/", "1.1P/ control made invisible");
|
|
1067
1059
|
|
|
1068
|
-
this.act(function() {
|
|
1060
|
+
await this.act(function() {
|
|
1069
1061
|
this.oRootControl.setHeader("RNew/");
|
|
1070
1062
|
this.o1_1P.setVisible(true);
|
|
1071
1063
|
});
|
|
@@ -1073,19 +1065,19 @@ sap.ui.define([
|
|
|
1073
1065
|
assert.equal(this.oDomRef.textContent, "RNew/1P/1.1P/1.2P/", "New header is rendered correctly and 1.1P/ control is now visible");
|
|
1074
1066
|
});
|
|
1075
1067
|
|
|
1076
|
-
QUnit.test("Rearrange aggregations", function(assert) {
|
|
1077
|
-
this.act(function() {
|
|
1068
|
+
QUnit.test("Rearrange aggregations", async function(assert) {
|
|
1069
|
+
await this.act(function() {
|
|
1078
1070
|
this.o1P.insertItem(this.o1P.removeItem(0), 1); // swap 1.1P/ and 1.2P/
|
|
1079
1071
|
});
|
|
1080
1072
|
|
|
1081
1073
|
assert.equal(this.oDomRef.textContent, "R/1P/1.2P/1.1P/", "Reordered items are rendered correctly");
|
|
1082
|
-
assert.equal(this.
|
|
1074
|
+
assert.equal(this.aMutations.length, 2, "Only reordered item DOM nodes are swapped");
|
|
1083
1075
|
assert.equal(this.oBeforeRenderingSpy.callCount, 1, "oBeforeRenderingSpy is called only once for the parent control 1P/");
|
|
1084
1076
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P/ control, moving items do not invalidate items");
|
|
1085
1077
|
});
|
|
1086
1078
|
|
|
1087
|
-
QUnit.test("Invalidations while controls are not in a UIArea", function(assert) {
|
|
1088
|
-
this.act(function() {
|
|
1079
|
+
QUnit.test("Invalidations while controls are not in a UIArea", async function(assert) {
|
|
1080
|
+
await this.act(function() {
|
|
1089
1081
|
var o1P = this.oRootControl.removeItem(0);
|
|
1090
1082
|
assert.notOk(o1P.getUIArea(), "1P/ has no UIArea");
|
|
1091
1083
|
o1P.getItems()[0].setHeader("1.1PNew/");
|
|
@@ -1093,47 +1085,50 @@ sap.ui.define([
|
|
|
1093
1085
|
});
|
|
1094
1086
|
|
|
1095
1087
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1PNew/1.2P/", "Header of the item is applied correctly, even invalidation is happened while the control had no UIArea");
|
|
1096
|
-
assert.equal(cleanupMutations(this.
|
|
1088
|
+
assert.equal(cleanupMutations(this.aMutations).length, 1, "Only the text content of the item is changed");
|
|
1097
1089
|
assert.equal(this.oBeforeRenderingSpy.callCount, 3, "oBeforeRenderingSpy is called on the root control, 1P/ and 1.1P/");
|
|
1098
1090
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the RootControl");
|
|
1099
1091
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P/ since invalidation of child bubbled while child has no UIArea ");
|
|
1100
1092
|
assert.ok(this.oBeforeRenderingSpy.getCall(2).calledOn(this.o1_1P), "oBeforeRenderingSpy is called on the 1.1P/");
|
|
1101
1093
|
});
|
|
1102
1094
|
|
|
1103
|
-
QUnit.test("Rendering event delegates and data-sap-ui-render marker", function(assert) {
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1095
|
+
QUnit.test("Rendering event delegates and data-sap-ui-render marker", async function(assert) {
|
|
1096
|
+
async function addDelegate(sRenderingDelegate) {
|
|
1097
|
+
var oDelegate = {};
|
|
1098
|
+
oDelegate[sRenderingDelegate] = Function.prototype;
|
|
1107
1099
|
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1100
|
+
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is not yet set for the 1P/");
|
|
1101
|
+
this.o1P.addEventDelegate(oDelegate);
|
|
1102
|
+
assert.ok(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is set for the 1P/ after the rendering delegate is added");
|
|
1111
1103
|
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1104
|
+
await this.act(function() {
|
|
1105
|
+
this.oRootControl.invalidate();
|
|
1106
|
+
});
|
|
1107
|
+
assert.ok(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is set for the 1P/ after rerendering");
|
|
1108
|
+
assert.equal(this.oBeforeRenderingSpy.callCount, 2, "oBeforeRenderingSpy is called on the root and 1P/ since data-sap-ui-render marker does not allow skipping for 1P/");
|
|
1117
1109
|
|
|
1118
|
-
|
|
1119
|
-
|
|
1110
|
+
this.o1P.removeEventDelegate(oDelegate);
|
|
1111
|
+
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is removed since there is no more rendering delegate for the 1P/");
|
|
1120
1112
|
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1113
|
+
oDelegate.canSkipRendering = true;
|
|
1114
|
+
this.o1P.addEventDelegate(oDelegate);
|
|
1115
|
+
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is not set since canSkipRendering is true");
|
|
1124
1116
|
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1117
|
+
await this.act(function() {
|
|
1118
|
+
this.oRootControl.invalidate();
|
|
1119
|
+
});
|
|
1120
|
+
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is still not set for the 1P/ after rerendering");
|
|
1121
|
+
assert.equal(this.oBeforeRenderingSpy.callCount, 1, "oBeforeRenderingSpy is called only on the root control since 1P/ rendering can be skipped");
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
await addDelegate.call(this, "onBeforeRendering");
|
|
1125
|
+
await addDelegate.call(this, "onAfterRendering");
|
|
1131
1126
|
});
|
|
1132
1127
|
|
|
1133
|
-
QUnit.test("enhanceAccessibilityState and data-sap-ui-render marker", function(assert) {
|
|
1128
|
+
QUnit.test("enhanceAccessibilityState and data-sap-ui-render marker", async function(assert) {
|
|
1134
1129
|
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is not yet set for the 1P/");
|
|
1135
1130
|
|
|
1136
|
-
this.act(function() {
|
|
1131
|
+
await this.act(function() {
|
|
1137
1132
|
this.oRootControl.enhanceAccessibilityState = function(oItem, mAriaProps) {
|
|
1138
1133
|
mAriaProps.role = "RoleFromParent";
|
|
1139
1134
|
};
|
|
@@ -1142,14 +1137,14 @@ sap.ui.define([
|
|
|
1142
1137
|
assert.ok(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is set for the 1P/ because parent implements the enhanceAccessibilityState");
|
|
1143
1138
|
assert.equal(this.o1P.getDomRef().getAttribute("role"), "RoleFromParent", "role attribute of 1P/ is taken from the parent#enhanceAccessibilityState");
|
|
1144
1139
|
|
|
1145
|
-
this.act(function() {
|
|
1140
|
+
await this.act(function() {
|
|
1146
1141
|
this.oRootControl.enhanceAccessibilityState = function(oItem, mAriaProps) { /*nothing is changed here intentionally for testing */ };
|
|
1147
1142
|
this.o1P.invalidate();
|
|
1148
1143
|
});
|
|
1149
1144
|
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is not set because the enhanceAccessibilityState does not change anything");
|
|
1150
1145
|
assert.notOk(this.o1P.getDomRef().getAttribute("role"), "There is no role set for the 1P/ since parent#enhanceAccessibilityState is empty");
|
|
1151
1146
|
|
|
1152
|
-
this.act(function() {
|
|
1147
|
+
await this.act(function() {
|
|
1153
1148
|
this.oRootControl.enhanceAccessibilityState = function(oItem, mAriaProps) {
|
|
1154
1149
|
mAriaProps.role = "RoleFromParent";
|
|
1155
1150
|
mAriaProps.canSkipRendering = true;
|
|
@@ -1159,14 +1154,14 @@ sap.ui.define([
|
|
|
1159
1154
|
assert.notOk(this.o1P.getDomRef().hasAttribute("data-sap-ui-render"), "data-sap-ui-render marker is not set because the enhanceAccessibilityState uses canSkipRendering flag");
|
|
1160
1155
|
});
|
|
1161
1156
|
|
|
1162
|
-
QUnit.test("enhanceAccessibilityState and rendering skip", function(assert) {
|
|
1157
|
+
QUnit.test("enhanceAccessibilityState and rendering skip", async function(assert) {
|
|
1163
1158
|
this.oRootControl.enhanceAccessibilityState = function(oItem, mAriaProps) {
|
|
1164
1159
|
mAriaProps.role = "newRoleFromParent";
|
|
1165
1160
|
mAriaProps.setsize = this.getItems().length;
|
|
1166
1161
|
mAriaProps.posinset = this.indexOfItem(oItem) + 1;
|
|
1167
1162
|
};
|
|
1168
1163
|
|
|
1169
|
-
this.act(function() {
|
|
1164
|
+
await this.act(function() {
|
|
1170
1165
|
this.o1P.invalidate();
|
|
1171
1166
|
});
|
|
1172
1167
|
assert.equal(this.o1P.getDomRef().getAttribute("role"), "newRoleFromParent", "enhanceAccessibilityState is called on the parent and role is set correctly for 1P/");
|
|
@@ -1174,7 +1169,7 @@ sap.ui.define([
|
|
|
1174
1169
|
assert.equal(this.o1P.getDomRef().getAttribute("aria-setsize"), 1, "enhanceAccessibilityState is called on the parent and setsize is set correctly for 1P/");
|
|
1175
1170
|
|
|
1176
1171
|
var oNewControl = new PatchingControl({header: "0P/"});
|
|
1177
|
-
this.act(function() {
|
|
1172
|
+
await this.act(function() {
|
|
1178
1173
|
this.oRootControl.insertItem(oNewControl, 0);
|
|
1179
1174
|
});
|
|
1180
1175
|
assert.equal(this.oDomRef.textContent, "R/0P/1P/1.1P/1.2P/", "The new 0P/ control is rendered in correct position");
|
|
@@ -1186,18 +1181,18 @@ sap.ui.define([
|
|
|
1186
1181
|
});
|
|
1187
1182
|
});
|
|
1188
1183
|
|
|
1189
|
-
QUnit.test("DragInfo and DragInfo invalidations", function(assert) {
|
|
1184
|
+
QUnit.test("DragInfo and DragInfo invalidations", async function(assert) {
|
|
1190
1185
|
var oDragInfo = new DragInfo({
|
|
1191
1186
|
sourceAggregation: "items"
|
|
1192
1187
|
});
|
|
1193
1188
|
|
|
1194
|
-
this.act(function() {
|
|
1189
|
+
await this.act(function() {
|
|
1195
1190
|
this.oRootControl.addDragDropConfig(oDragInfo);
|
|
1196
1191
|
});
|
|
1197
1192
|
assert.ok(this.o1P.getDomRef().draggable, "Item is draggable after rendering, although invalidation was only on the root control the rendering of the item is not skipped");
|
|
1198
1193
|
assert.equal(this.oBeforeRenderingSpy.callCount, 2, "oBeforeRenderingSpy is called on the root and 1P/");
|
|
1199
1194
|
|
|
1200
|
-
this.act(function() {
|
|
1195
|
+
await this.act(function() {
|
|
1201
1196
|
oDragInfo.setEnabled(false);
|
|
1202
1197
|
});
|
|
1203
1198
|
assert.notOk(this.o1P.getDomRef().draggable, "Item is not draggable, although invalidation was only on the root control the rendering of the item is not skipped");
|
|
@@ -1227,14 +1222,14 @@ sap.ui.define([
|
|
|
1227
1222
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2S/", "Content is correct after initial rendering");
|
|
1228
1223
|
});
|
|
1229
1224
|
|
|
1230
|
-
QUnit.test("Insert a new aggregation", function(assert) {
|
|
1225
|
+
QUnit.test("Insert a new aggregation", async function(assert) {
|
|
1231
1226
|
var oNewControl = new PatchingControl({header: "2P/"});
|
|
1232
|
-
this.act(function() {
|
|
1227
|
+
await this.act(function() {
|
|
1233
1228
|
this.oRootControl.addItem(oNewControl);
|
|
1234
1229
|
});
|
|
1235
1230
|
|
|
1236
1231
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2S/2P/", "New control (2P) is rendered correctly");
|
|
1237
|
-
assert.equal(cleanupMutations(this.
|
|
1232
|
+
assert.equal(cleanupMutations(this.aMutations).length, 3, "The new control (2P) is rendered and string control(1.2S) is replaced(removed+inserted)");
|
|
1238
1233
|
assert.equal(this.oBeforeRenderingSpy.callCount, 4, "oBeforeRenderingSpy is called for all controls except the PatchingControl 1.1P/");
|
|
1239
1234
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the root control, since it contains a StringControl we cannot skip its rendering");
|
|
1240
1235
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P, since it contains a StringControl we cannot skip its rendering");
|
|
@@ -1242,8 +1237,8 @@ sap.ui.define([
|
|
|
1242
1237
|
assert.ok(this.oBeforeRenderingSpy.getCall(3).calledOn(oNewControl), "oBeforeRenderingSpy is called on the new control");
|
|
1243
1238
|
});
|
|
1244
1239
|
|
|
1245
|
-
QUnit.test("Child invalidation while parent rendering can be skipped", function(assert) {
|
|
1246
|
-
this.act(function() {
|
|
1240
|
+
QUnit.test("Child invalidation while parent rendering can be skipped", async function(assert) {
|
|
1241
|
+
await this.act(function() {
|
|
1247
1242
|
this.oRootControl.setHeader("RNew/");
|
|
1248
1243
|
this.o1_1P.setHeader("1.1PNew/");
|
|
1249
1244
|
assert.ok(this.oRootControl._bNeedsRendering, "parent of 1P/ is invalidated");
|
|
@@ -1252,7 +1247,7 @@ sap.ui.define([
|
|
|
1252
1247
|
});
|
|
1253
1248
|
|
|
1254
1249
|
assert.equal(this.oDomRef.textContent, "RNew/1P/1.1PNew/1.2S/", "New headers are rendered correctly");
|
|
1255
|
-
assert.equal(cleanupMutations(this.
|
|
1250
|
+
assert.equal(cleanupMutations(this.aMutations).length, 4, "Characterdata for root/child are set and the StringControl is replaced even though its parent is not invalidated");
|
|
1256
1251
|
assert.equal(this.oBeforeRenderingSpy.callCount, 4, "oBeforeRenderingSpy is called for all controls");
|
|
1257
1252
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the root control, since it contains StringControl");
|
|
1258
1253
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1P), "oBeforeRenderingSpy is called on the first child control(1P), since it contains StringControl");
|
|
@@ -1260,21 +1255,21 @@ sap.ui.define([
|
|
|
1260
1255
|
assert.ok(this.oBeforeRenderingSpy.getCall(3).calledOn(this.o1_2S), "oBeforeRenderingSpy is called on the StringControl");
|
|
1261
1256
|
});
|
|
1262
1257
|
|
|
1263
|
-
QUnit.test("Re-rendering", function(assert) {
|
|
1264
|
-
this.act(function() {
|
|
1258
|
+
QUnit.test("Re-rendering", async function(assert) {
|
|
1259
|
+
await this.act(function() {
|
|
1265
1260
|
this.oRootControl.invalidate();
|
|
1266
1261
|
});
|
|
1267
1262
|
|
|
1268
1263
|
assert.equal(this.oDomRef.textContent, "R/1P/1.1P/1.2S/", "Content is not changed after rerendering");
|
|
1269
1264
|
assert.equal(this.oBeforeRenderingSpy.callCount, 3, "oBeforeRenderingSpy is called for the StringControl and its parents, since rendering skip is blocked by the StringControl");
|
|
1270
|
-
assert.equal(cleanupMutations(this.
|
|
1265
|
+
assert.equal(cleanupMutations(this.aMutations).length, 2, "The StringControl is replaced(removed+inserted)");
|
|
1271
1266
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.oRootControl), "oBeforeRenderingSpy is called on the root control, since it contains StringControl");
|
|
1272
1267
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1P), "oBeforeRenderingSpy is called on the first child control(1P), since it contains StringControl");
|
|
1273
1268
|
assert.ok(this.oBeforeRenderingSpy.getCall(2).calledOn(this.o1_2S), "oBeforeRenderingSpy is called on the StringControl");
|
|
1274
1269
|
});
|
|
1275
1270
|
|
|
1276
|
-
QUnit.test("EnabledPropagator", function(assert) {
|
|
1277
|
-
this.act(function() {
|
|
1271
|
+
QUnit.test("EnabledPropagator", async function(assert) {
|
|
1272
|
+
await this.act(function() {
|
|
1278
1273
|
this.oRootControl.setEnabled(false);
|
|
1279
1274
|
});
|
|
1280
1275
|
|
|
@@ -1283,7 +1278,7 @@ sap.ui.define([
|
|
|
1283
1278
|
assert.ok(this.o1_1P.$().hasClass("Disabled"), "Grand child PatchingControl(1.1P/) is disabled via EnabledPropagator as well");
|
|
1284
1279
|
assert.notOk(this.o1_2S.$().hasClass("Disabled"), "StringControl is not disabled since EnabledPropagator is not implemented by the StringControl");
|
|
1285
1280
|
|
|
1286
|
-
this.act(function() {
|
|
1281
|
+
await this.act(function() {
|
|
1287
1282
|
this.oRootControl.setEnabled(true);
|
|
1288
1283
|
});
|
|
1289
1284
|
|
|
@@ -1292,7 +1287,7 @@ sap.ui.define([
|
|
|
1292
1287
|
assert.notOk(this.o1_1P.$().hasClass("Disabled"), "Grand child PatchingControl(1.1PNew) is enabled via EnabledPropagator as well");
|
|
1293
1288
|
assert.notOk(this.o1_2S.$().hasClass("Disabled"), "StringControl was not disabled anyway since EnabledPropagator was not implemented by the StringControl");
|
|
1294
1289
|
|
|
1295
|
-
this.act(function() {
|
|
1290
|
+
await this.act(function() {
|
|
1296
1291
|
this.o1_1P.useEnabledPropagator(false);
|
|
1297
1292
|
this.oRootControl.setEnabled(false);
|
|
1298
1293
|
});
|
|
@@ -1301,29 +1296,29 @@ sap.ui.define([
|
|
|
1301
1296
|
assert.notOk(this.o1_1P.$().hasClass("Disabled"), "Control 1.1P/ is not disabled since it is excluded from the EnabledPropagator with useEnabledPropagator method");
|
|
1302
1297
|
});
|
|
1303
1298
|
|
|
1304
|
-
QUnit.test("Rearrange aggregations", function(assert) {
|
|
1305
|
-
this.act(function() {
|
|
1299
|
+
QUnit.test("Rearrange aggregations", async function(assert) {
|
|
1300
|
+
await this.act(function() {
|
|
1306
1301
|
this.o1P.insertItem(this.o1P.removeItem(0), 1); // swap 1.1P/ and 1.2S/
|
|
1307
1302
|
});
|
|
1308
1303
|
|
|
1309
1304
|
assert.equal(this.oDomRef.textContent, "R/1P/1.2S/1.1P/", "Reordered items are rendered correctly");
|
|
1310
|
-
assert.equal(cleanupMutations(this.
|
|
1305
|
+
assert.equal(cleanupMutations(this.aMutations).length, 2, "String control DOM node is not reused, a new string control DOM created and the original one is removed");
|
|
1311
1306
|
assert.equal(this.oBeforeRenderingSpy.callCount, 2, "oBeforeRenderingSpy is called for the parent control 1P/ but also for the String control");
|
|
1312
1307
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P/ control, moving items do not invalidate items");
|
|
1313
1308
|
assert.ok(this.oBeforeRenderingSpy.getCall(1).calledOn(this.o1_2S), "oBeforeRenderingSpy is called on the string control since its rendering cannot be skipped");
|
|
1314
1309
|
});
|
|
1315
1310
|
|
|
1316
|
-
QUnit.test("Make a parent control invisible", function(assert) {
|
|
1317
|
-
this.act(function() {
|
|
1311
|
+
QUnit.test("Make a parent control invisible", async function(assert) {
|
|
1312
|
+
await this.act(function() {
|
|
1318
1313
|
this.o1P.setVisible(false);
|
|
1319
1314
|
});
|
|
1320
1315
|
|
|
1321
1316
|
assert.equal(this.oDomRef.textContent, "R/", "1P/ control and its children are not rendered");
|
|
1322
|
-
assert.equal(this.
|
|
1317
|
+
assert.equal(this.aMutations.length, 1, "Control 1P/ DOM node and its children replaced with the invisible placeholder");
|
|
1323
1318
|
assert.ok(document.getElementById(RenderManager.createInvisiblePlaceholderId(this.o1P)), "Invisible placeholder has been rendered");
|
|
1324
1319
|
assert.ok(this.oBeforeRenderingSpy.getCall(0).calledOn(this.o1P), "oBeforeRenderingSpy is called on the 1P Control");
|
|
1325
1320
|
|
|
1326
|
-
this.act(function() {
|
|
1321
|
+
await this.act(function() {
|
|
1327
1322
|
this.oRootControl.invalidate();
|
|
1328
1323
|
});
|
|
1329
1324
|
|
|
@@ -1333,14 +1328,14 @@ sap.ui.define([
|
|
|
1333
1328
|
assert.equal(this.oObserver.takeRecords().length, 0, "No mutation parent control is a Patching control");
|
|
1334
1329
|
});
|
|
1335
1330
|
|
|
1336
|
-
QUnit.test("No rendering skip", function(assert) {
|
|
1337
|
-
this.act(function() {
|
|
1331
|
+
QUnit.test("No rendering skip", async function(assert) {
|
|
1332
|
+
await this.act(function() {
|
|
1338
1333
|
this.oApiVerionStub.restore();
|
|
1339
1334
|
this.oRootControl.invalidate();
|
|
1340
1335
|
});
|
|
1341
1336
|
|
|
1342
1337
|
assert.equal(this.oBeforeRenderingSpy.callCount, 4, "oBeforeRenderingSpy is called for the root control and every control within the root control");
|
|
1343
|
-
assert.equal(cleanupMutations(this.
|
|
1338
|
+
assert.equal(cleanupMutations(this.aMutations).length, 2, "String rendering control must be removed and inserted on parent rerendering");
|
|
1344
1339
|
});
|
|
1345
1340
|
|
|
1346
1341
|
QUnit.module("invalidation during rendering", {
|
|
@@ -1446,7 +1441,7 @@ sap.ui.define([
|
|
|
1446
1441
|
}
|
|
1447
1442
|
});
|
|
1448
1443
|
|
|
1449
|
-
QUnit.test("child invalidates while parent renders initially, but before parent renders it", function(assert) {
|
|
1444
|
+
QUnit.test("child invalidates while parent renders initially, but before parent renders it", async function(assert) {
|
|
1450
1445
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1451
1446
|
invalidatesBefore: this.oChild
|
|
1452
1447
|
}).placeAt("qunit-fixture");
|
|
@@ -1456,7 +1451,7 @@ sap.ui.define([
|
|
|
1456
1451
|
});
|
|
1457
1452
|
|
|
1458
1453
|
// act
|
|
1459
|
-
|
|
1454
|
+
await nextUIUpdate();
|
|
1460
1455
|
|
|
1461
1456
|
// assert
|
|
1462
1457
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1468,7 +1463,7 @@ sap.ui.define([
|
|
|
1468
1463
|
oParent.destroy();
|
|
1469
1464
|
});
|
|
1470
1465
|
|
|
1471
|
-
QUnit.test("child in an element container invalidates while parent renders initially, but before parent renders it", function(assert) {
|
|
1466
|
+
QUnit.test("child in an element container invalidates while parent renders initially, but before parent renders it", async function(assert) {
|
|
1472
1467
|
var oContainer = new this.InvalidatingChildContainer({
|
|
1473
1468
|
content: this.oChild
|
|
1474
1469
|
});
|
|
@@ -1481,7 +1476,7 @@ sap.ui.define([
|
|
|
1481
1476
|
});
|
|
1482
1477
|
|
|
1483
1478
|
// act
|
|
1484
|
-
|
|
1479
|
+
await nextUIUpdate();
|
|
1485
1480
|
|
|
1486
1481
|
// assert
|
|
1487
1482
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent that contains element only rendered once");
|
|
@@ -1492,7 +1487,7 @@ sap.ui.define([
|
|
|
1492
1487
|
oParent.destroy();
|
|
1493
1488
|
});
|
|
1494
1489
|
|
|
1495
|
-
QUnit.test("child invalidates while parent renders initially, but after parent has rendered it", function(assert) {
|
|
1490
|
+
QUnit.test("child invalidates while parent renders initially, but after parent has rendered it", async function(assert) {
|
|
1496
1491
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1497
1492
|
invalidatesAfter: this.oChild
|
|
1498
1493
|
}).placeAt("qunit-fixture");
|
|
@@ -1502,7 +1497,7 @@ sap.ui.define([
|
|
|
1502
1497
|
});
|
|
1503
1498
|
|
|
1504
1499
|
// act
|
|
1505
|
-
|
|
1500
|
+
await nextUIUpdate();
|
|
1506
1501
|
|
|
1507
1502
|
// assert
|
|
1508
1503
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1513,7 +1508,7 @@ sap.ui.define([
|
|
|
1513
1508
|
oParent.destroy();
|
|
1514
1509
|
});
|
|
1515
1510
|
|
|
1516
|
-
QUnit.test("child invalidates while parent renders initially, but parent does never render it", function(assert) {
|
|
1511
|
+
QUnit.test("child invalidates while parent renders initially, but parent does never render it", async function(assert) {
|
|
1517
1512
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1518
1513
|
neverRendered: this.oChild
|
|
1519
1514
|
}).placeAt("qunit-fixture");
|
|
@@ -1523,7 +1518,7 @@ sap.ui.define([
|
|
|
1523
1518
|
});
|
|
1524
1519
|
|
|
1525
1520
|
// act
|
|
1526
|
-
|
|
1521
|
+
await nextUIUpdate();
|
|
1527
1522
|
|
|
1528
1523
|
// assert
|
|
1529
1524
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1534,7 +1529,7 @@ sap.ui.define([
|
|
|
1534
1529
|
oParent.destroy();
|
|
1535
1530
|
});
|
|
1536
1531
|
|
|
1537
|
-
QUnit.test("child invalidates while parent re-renders, but before parent renders it", function(assert) {
|
|
1532
|
+
QUnit.test("child invalidates while parent re-renders, but before parent renders it", async function(assert) {
|
|
1538
1533
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1539
1534
|
invalidatesBefore: this.oChild
|
|
1540
1535
|
}).placeAt("qunit-fixture");
|
|
@@ -1542,13 +1537,13 @@ sap.ui.define([
|
|
|
1542
1537
|
oParent.addEventDelegate({
|
|
1543
1538
|
onBeforeRendering: oParentOnBeforeRenderingSpy
|
|
1544
1539
|
});
|
|
1545
|
-
|
|
1540
|
+
await nextUIUpdate();
|
|
1546
1541
|
this.onBeforeRenderingSpy.resetHistory();
|
|
1547
1542
|
oParentOnBeforeRenderingSpy.resetHistory();
|
|
1548
1543
|
|
|
1549
1544
|
// act
|
|
1550
1545
|
oParent.invalidate();
|
|
1551
|
-
|
|
1546
|
+
await nextUIUpdate();
|
|
1552
1547
|
|
|
1553
1548
|
// assert
|
|
1554
1549
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1559,7 +1554,7 @@ sap.ui.define([
|
|
|
1559
1554
|
oParent.destroy();
|
|
1560
1555
|
});
|
|
1561
1556
|
|
|
1562
|
-
QUnit.test("child invalidates while parent re-renders, but after parent has rendered it", function(assert) {
|
|
1557
|
+
QUnit.test("child invalidates while parent re-renders, but after parent has rendered it", async function(assert) {
|
|
1563
1558
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1564
1559
|
invalidatesAfter: this.oChild
|
|
1565
1560
|
}).placeAt("qunit-fixture");
|
|
@@ -1567,13 +1562,13 @@ sap.ui.define([
|
|
|
1567
1562
|
oParent.addEventDelegate({
|
|
1568
1563
|
onBeforeRendering: oParentOnBeforeRenderingSpy
|
|
1569
1564
|
});
|
|
1570
|
-
|
|
1565
|
+
await nextUIUpdate();
|
|
1571
1566
|
this.onBeforeRenderingSpy.resetHistory();
|
|
1572
1567
|
oParentOnBeforeRenderingSpy.resetHistory();
|
|
1573
1568
|
|
|
1574
1569
|
// act
|
|
1575
1570
|
oParent.invalidate();
|
|
1576
|
-
|
|
1571
|
+
await nextUIUpdate();
|
|
1577
1572
|
|
|
1578
1573
|
// assert
|
|
1579
1574
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1584,7 +1579,7 @@ sap.ui.define([
|
|
|
1584
1579
|
oParent.destroy();
|
|
1585
1580
|
});
|
|
1586
1581
|
|
|
1587
|
-
QUnit.test("child invalidates while parent re-renders, but parent does never render it", function(assert) {
|
|
1582
|
+
QUnit.test("child invalidates while parent re-renders, but parent does never render it", async function(assert) {
|
|
1588
1583
|
var oParent = new this.ParentWithInvalidatingChildren({
|
|
1589
1584
|
neverRendered: this.oChild
|
|
1590
1585
|
}).placeAt("qunit-fixture");
|
|
@@ -1592,13 +1587,13 @@ sap.ui.define([
|
|
|
1592
1587
|
oParent.addEventDelegate({
|
|
1593
1588
|
onBeforeRendering: oParentOnBeforeRenderingSpy
|
|
1594
1589
|
});
|
|
1595
|
-
|
|
1590
|
+
await nextUIUpdate();
|
|
1596
1591
|
this.onBeforeRenderingSpy.resetHistory();
|
|
1597
1592
|
oParentOnBeforeRenderingSpy.resetHistory();
|
|
1598
1593
|
|
|
1599
1594
|
// act
|
|
1600
1595
|
oParent.invalidate();
|
|
1601
|
-
|
|
1596
|
+
await nextUIUpdate();
|
|
1602
1597
|
|
|
1603
1598
|
// assert
|
|
1604
1599
|
assert.strictEqual(oParentOnBeforeRenderingSpy.callCount, 1, "parent only rendered once");
|
|
@@ -1614,7 +1609,7 @@ sap.ui.define([
|
|
|
1614
1609
|
this.oApiVerionStub = sinon.stub(PatchingControl.getMetadata().getRenderer(), "apiVersion").value(4);
|
|
1615
1610
|
this.oJSONModel = new JSONModel([{ header: "Header1"}, { header: "Header2"} ]);
|
|
1616
1611
|
},
|
|
1617
|
-
beforeEach: function() {
|
|
1612
|
+
beforeEach: async function() {
|
|
1618
1613
|
this.oParent = new PatchingControl({
|
|
1619
1614
|
models: this.oJSONModel,
|
|
1620
1615
|
items: {
|
|
@@ -1625,7 +1620,7 @@ sap.ui.define([
|
|
|
1625
1620
|
}
|
|
1626
1621
|
});
|
|
1627
1622
|
this.oParent.placeAt("qunit-fixture");
|
|
1628
|
-
|
|
1623
|
+
await nextUIUpdate();
|
|
1629
1624
|
},
|
|
1630
1625
|
afterEach: function() {
|
|
1631
1626
|
this.oParent.destroy();
|
|
@@ -1636,7 +1631,7 @@ sap.ui.define([
|
|
|
1636
1631
|
}
|
|
1637
1632
|
});
|
|
1638
1633
|
|
|
1639
|
-
QUnit.test("Insert aggregation with bSupressInvalidate=true and binding propagation should be reflected in the child", function(assert) {
|
|
1634
|
+
QUnit.test("Insert aggregation with bSupressInvalidate=true and binding propagation should be reflected in the child", async function(assert) {
|
|
1640
1635
|
var oChild = this.oParent.getItems()[0];
|
|
1641
1636
|
var sId = oChild.getId();
|
|
1642
1637
|
this.oParent.destroyAggregation("items", "KeepDom");
|
|
@@ -1655,14 +1650,14 @@ sap.ui.define([
|
|
|
1655
1650
|
assert.ok(oNewChildInvalidateSpy.calledOnce, "Invalidate is called for the header property change on the child");
|
|
1656
1651
|
|
|
1657
1652
|
this.oParent.invalidate();
|
|
1658
|
-
|
|
1653
|
+
await nextUIUpdate();
|
|
1659
1654
|
assert.strictEqual(oNewChild.getDomRef().textContent, "Header2", "new child dom is rendered correctly");
|
|
1660
1655
|
|
|
1661
1656
|
oNewChildInvalidateSpy.restore();
|
|
1662
1657
|
oParentInvalidateSpy.restore();
|
|
1663
1658
|
});
|
|
1664
1659
|
|
|
1665
|
-
QUnit.test("Move aggregation with bSupressInvalidate=true and rendering should start for the child only once", function(assert) {
|
|
1660
|
+
QUnit.test("Move aggregation with bSupressInvalidate=true and rendering should start for the child only once", async function(assert) {
|
|
1666
1661
|
var oAnotherParent = new PatchingControl({
|
|
1667
1662
|
models: this.oJSONModel,
|
|
1668
1663
|
items: {
|
|
@@ -1673,10 +1668,10 @@ sap.ui.define([
|
|
|
1673
1668
|
}
|
|
1674
1669
|
});
|
|
1675
1670
|
oAnotherParent.placeAt("qunit-fixture");
|
|
1676
|
-
|
|
1671
|
+
await nextUIUpdate();
|
|
1677
1672
|
|
|
1678
1673
|
oAnotherParent.destroyItems();
|
|
1679
|
-
|
|
1674
|
+
await nextUIUpdate();
|
|
1680
1675
|
|
|
1681
1676
|
var oBinding = this.oParent.getBinding("items");
|
|
1682
1677
|
var oSecondContext = oBinding.getContexts(1, 1)[0];
|
|
@@ -1686,7 +1681,7 @@ sap.ui.define([
|
|
|
1686
1681
|
oChild.onAfterRendering = sinon.spy();
|
|
1687
1682
|
oAnotherParent.addAggregation("items", oChild, true);
|
|
1688
1683
|
oAnotherParent.invalidate();
|
|
1689
|
-
|
|
1684
|
+
await nextUIUpdate();
|
|
1690
1685
|
|
|
1691
1686
|
assert.strictEqual(oChild.getDomRef().textContent, "Header2", "child dom is rendered correctly");
|
|
1692
1687
|
assert.ok(oChild.onAfterRendering.calledOnce, "oChild.onAfterRendering is called only once");
|