@openui5/sap.ui.core 1.118.0 → 1.119.1
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/.eslintrc.json +9 -0
- package/THIRDPARTY.txt +2 -2
- 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 +16 -1
- package/src/sap/base/i18n/ResourceBundle.js +5 -0
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/UriParameters.js +26 -19
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/BindingInfo.js +25 -3
- 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 +2 -2
- package/src/sap/ui/base/ManagedObjectMetadata.js +4 -3
- package/src/sap/ui/base/Metadata.js +3 -3
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -1
- package/src/sap/ui/core/AccessKeysEnablement.js +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +68 -51
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +15 -167
- package/src/sap/ui/core/Control.js +2 -2
- package/src/sap/ui/core/Core.js +162 -93
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/CustomStyleClassSupport.js +3 -3
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +40 -4
- 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 +19 -2
- package/src/sap/ui/core/FocusHandler.js +3 -24
- package/src/sap/ui/core/Fragment.js +2 -2
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +2 -2
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +11 -4
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +42 -42
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +1 -1
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +4 -4
- package/src/sap/ui/core/Messaging.js +4 -5
- package/src/sap/ui/core/Popup.js +3 -3
- package/src/sap/ui/core/RenderManager.js +15 -10
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +1 -0
- package/src/sap/ui/core/ResizeHandler.js +15 -20
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHintsMixin.js +5 -5
- package/src/sap/ui/core/StashedControlSupport.js +4 -4
- package/src/sap/ui/core/StaticArea.js +66 -74
- package/src/sap/ui/core/Theming.js +71 -8
- 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 +10 -9
- package/src/sap/ui/core/UIComponent.js +2 -2
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +4 -2
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/_IconRegistry.js +2 -0
- package/src/sap/ui/core/cache/CacheManager.js +22 -16
- package/src/sap/ui/core/cache/LRUPersistentCache.js +13 -7
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +3 -3
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +6 -6
- package/src/sap/ui/core/dnd/DragInfo.js +4 -4
- package/src/sap/ui/core/dnd/DropInfo.js +6 -6
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +64 -0
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +14 -9
- package/src/sap/ui/core/message/ControlMessageProcessor.js +4 -4
- package/src/sap/ui/core/message/Message.js +14 -13
- package/src/sap/ui/core/message/MessageManager.js +12 -13
- package/src/sap/ui/core/message/MessageMixin.js +2 -2
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +2 -2
- package/src/sap/ui/core/message/MessageType.js +4 -4
- package/src/sap/ui/core/messagebundle_ar.properties +2 -2
- package/src/sap/ui/core/messagebundle_bg.properties +3 -3
- package/src/sap/ui/core/messagebundle_ca.properties +1 -1
- package/src/sap/ui/core/messagebundle_cs.properties +4 -4
- package/src/sap/ui/core/messagebundle_cy.properties +1 -1
- package/src/sap/ui/core/messagebundle_da.properties +3 -3
- package/src/sap/ui/core/messagebundle_de.properties +2 -2
- package/src/sap/ui/core/messagebundle_el.properties +10 -10
- package/src/sap/ui/core/messagebundle_en.properties +4 -4
- package/src/sap/ui/core/messagebundle_es.properties +17 -17
- package/src/sap/ui/core/messagebundle_fi.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +21 -21
- package/src/sap/ui/core/messagebundle_hi.properties +2 -2
- package/src/sap/ui/core/messagebundle_hr.properties +6 -6
- package/src/sap/ui/core/messagebundle_hu.properties +10 -10
- package/src/sap/ui/core/messagebundle_id.properties +5 -5
- package/src/sap/ui/core/messagebundle_it.properties +57 -57
- package/src/sap/ui/core/messagebundle_iw.properties +5 -5
- package/src/sap/ui/core/messagebundle_kk.properties +1 -1
- package/src/sap/ui/core/messagebundle_ko.properties +6 -6
- package/src/sap/ui/core/messagebundle_lv.properties +5 -5
- package/src/sap/ui/core/messagebundle_ms.properties +5 -5
- package/src/sap/ui/core/messagebundle_nl.properties +12 -12
- package/src/sap/ui/core/messagebundle_no.properties +8 -8
- package/src/sap/ui/core/messagebundle_pl.properties +2 -2
- package/src/sap/ui/core/messagebundle_pt.properties +8 -8
- package/src/sap/ui/core/messagebundle_ro.properties +2 -2
- package/src/sap/ui/core/messagebundle_ru.properties +7 -7
- package/src/sap/ui/core/messagebundle_sk.properties +2 -2
- package/src/sap/ui/core/messagebundle_sl.properties +9 -9
- package/src/sap/ui/core/messagebundle_sv.properties +8 -8
- package/src/sap/ui/core/messagebundle_th.properties +18 -18
- package/src/sap/ui/core/messagebundle_tr.properties +5 -5
- package/src/sap/ui/core/messagebundle_uk.properties +8 -8
- package/src/sap/ui/core/messagebundle_vi.properties +1 -1
- package/src/sap/ui/core/messagebundle_zh_CN.properties +2 -2
- package/src/sap/ui/core/messagebundle_zh_TW.properties +24 -24
- 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 +3 -3
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +3 -3
- 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/async/Target.js +5 -4
- package/src/sap/ui/core/routing/sync/Target.js +3 -3
- package/src/sap/ui/core/rules/App.support.js +30 -1
- package/src/sap/ui/core/rules/Config.support.js +4 -0
- package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
- package/src/sap/ui/core/rules/Theming.support.js +4 -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 +1 -1
- package/src/sap/ui/core/support/Support.js +5 -3
- package/src/sap/ui/core/support/ToolsAPI.js +8 -4
- package/src/sap/ui/core/support/plugins/Breakpoint.js +4 -4
- package/src/sap/ui/core/support/plugins/ControlTree.js +31 -13
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +2 -2
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +6 -4
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -2
- package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +275 -269
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +8 -8
- package/src/sap/ui/core/theming/Parameters.js +4 -5
- package/src/sap/ui/core/theming/ThemeHelper.js +0 -1
- package/src/sap/ui/core/theming/ThemeManager.js +15 -14
- 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 +4 -2
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +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/reflection/BaseTreeModifier.js +27 -4
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +55 -30
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +54 -48
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
- package/src/sap/ui/core/util/serializer/Serializer.js +3 -3
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +27 -10
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
- 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 +3 -3
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +5 -5
- package/src/sap/ui/debug/DebugEnv.js +15 -6
- package/src/sap/ui/debug/PropertyList.js +3 -3
- package/src/sap/ui/dom/jquery/control.js +3 -4
- package/src/sap/ui/events/F6Navigation.js +2 -1
- package/src/sap/ui/model/ClientModel.js +33 -1
- package/src/sap/ui/model/ClientPropertyBinding.js +17 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/Filter.js +1 -1
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/json/JSONModel.js +2 -3
- package/src/sap/ui/model/message/MessageModel.js +3 -7
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -2
- 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 +2 -3
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +13 -5
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +85 -56
- package/src/sap/ui/model/odata/v2/ODataModel.js +20 -15
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +60 -10
- package/src/sap/ui/model/odata/v4/ODataBinding.js +13 -4
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +159 -34
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +94 -24
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +10 -10
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +4 -2
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +10 -13
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +105 -25
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +3 -5
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +83 -24
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +6 -20
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +3 -3
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
- 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 -2
- package/src/sap/ui/model/type/DateInterval.js +1 -2
- 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 +2 -2
- package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -2
- package/src/sap/ui/performance/BeaconRequest.js +8 -10
- package/src/sap/ui/qunit/qunit-coverage-istanbul.js +60 -6
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/qunit/utils/waitForThemeApplied.js +16 -14
- package/src/sap/ui/test/BlanketReporterUI.view.xml +5 -2
- package/src/sap/ui/test/OpaPlugin.js +3 -3
- package/src/sap/ui/test/TestUtils.js +3 -3
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/matchers/Descendant.js +1 -1
- package/src/sap/ui/test/matchers/Sibling.js +1 -1
- package/src/sap/ui/test/selectors/_LabelFor.js +3 -2
- package/src/sap/ui/test/starter/_setupAndStart.js +35 -11
- package/src/sap/ui/util/Storage.js +1 -1
- package/test/sap/ui/core/HTMLControl.html +94 -93
- package/test/sap/ui/core/HyphenationPlayground.html +10 -9
- package/test/sap/ui/core/Strings.view.xml +5 -1
- package/test/sap/ui/core/ThemeParameters.html +31 -30
- package/test/sap/ui/core/ValidateURL.html +10 -10
- package/test/sap/ui/core/demokit/sample/BusyIndicator/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/Commands/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/ControlBusyIndicator/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/ControllerExtension/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/FieldGroup/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/Html/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/Html/preserveDOM/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/Html/static/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/HyphenationAPI/C.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/Icon/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/InvisibleMessage/InvisibleMessage.controller.js +4 -4
- package/test/sap/ui/core/demokit/sample/InvisibleMessage/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/InvisibleText/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/OpaAction/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/OpaAutoWaitParams.js +1 -1
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaById/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaById/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaDynamicWait/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaDynamicWait/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaGetStarted/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaMatchers/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaMatchers/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaPageObject/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaPageObject/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyUIComponent/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyUIComponent/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStaticAreaControls/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaStaticAreaControls/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaTestLibrary/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaTestLibrary/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyAppInAFrameWithURLParameters/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyAppInAFrameWithURLParameters/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyUIComponentWithURLParameters/applicationUnderTest/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyUIComponentWithURLParameters/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/PatternMatching/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/PatternMatching/patternApp/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/RoutingFullscreen/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/categories/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/products/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/suppliers/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/TargetsStandalone/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/ThemeCustomClasses/ThemeCustomClasses.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/ThemeCustomClasses/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeCurrency/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeDateAsDate/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeDateAsString/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeDateTime/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeFileSize/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeFloat/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeInteger/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/TypeTimeAsTime/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/View/async/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/View/preprocessor/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/XMLComposite/02/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/common/Controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/common/Helper.js +15 -2
- package/test/sap/ui/core/demokit/sample/common/pages/Any.js +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/applicationUnderTest/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/webapp/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/webapp/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/webapp/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/webapp/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/manifest.json +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +6 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +7 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +7 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/expandPageCollapse.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +3 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +4 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +6 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +6 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +9 -16
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +6 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +7 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +5 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +4 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +29 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +30 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +33 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/ChangeContext.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateMultiple.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/MessageHandling.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/TypeDeterminationAndDelete.js +8 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/WriteNonDeferredGroup.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/additionalTargets.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/tests/AdaptSalesOrdersTable.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +5 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/webapp/manifest.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/webapp/manifest.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/webapp/manifest.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/webapp/manifest.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/manifest.json +1 -1
- package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exTableWrapperOuterBinding/Test.controller.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +6 -3
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +1 -1
- package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +40 -20
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +1 -1
- package/test/sap/ui/core/qunit/Core.qunit.js +5 -4
- package/test/sap/ui/core/qunit/Core_libraryTerminologies_integration.qunit.js +12 -11
- package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +119 -117
- package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +5 -17
- package/test/sap/ui/core/qunit/Declarative.qunit.js +37 -37
- package/test/sap/ui/core/qunit/Element_base.qunit.js +1 -1
- package/test/sap/ui/core/qunit/EventBus.qunit.js +4 -3
- package/test/sap/ui/core/qunit/FastNavigation.qunit.js +3 -2
- package/test/sap/ui/core/qunit/FieldGroup.qunit.js +9 -8
- package/test/sap/ui/core/qunit/FocusHandler.qunit.js +5 -4
- package/test/sap/ui/core/qunit/Fragment.qunit.js +12 -12
- package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +13 -12
- package/test/sap/ui/core/qunit/HTML.qunit.js +35 -35
- package/test/sap/ui/core/qunit/IconPool.qunit.js +6 -6
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +5 -4
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +3 -3
- package/test/sap/ui/core/qunit/PlaceAt.qunit.js +2 -2
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +3 -3
- package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +9 -9
- package/test/sap/ui/core/qunit/ThemeHelper.qunit.js +5 -4
- package/test/sap/ui/core/qunit/ThemeManager.qunit.js +47 -79
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +40 -372
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +686 -0
- package/test/sap/ui/core/qunit/TooltipBase.qunit.js +3 -2
- package/test/sap/ui/core/qunit/UIArea.qunit.js +10 -10
- package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.html +3 -3
- package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +4 -3
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +13 -3
- package/test/sap/ui/core/qunit/base/util/UriParameters.qunit.js +27 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +22 -21
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.qunit.js +4 -9
- package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +19 -4
- package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +3 -2
- package/test/sap/ui/core/qunit/bootstrap/CfgFromConfigAttribute.qunit.js +4 -3
- package/test/sap/ui/core/qunit/bootstrap/CfgFromGlobalObject.qunit.js +4 -3
- package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +4 -3
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +2 -198
- package/test/sap/ui/core/qunit/bootstrap/Configuration_language_via_URL.qunit.js +210 -0
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +33 -30
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +6 -0
- package/test/sap/ui/core/qunit/component/Component.qunit.js +12 -0
- package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +6 -5
- package/test/sap/ui/core/qunit/component/Component_dependencyLoading.qunit.js +15 -9
- package/test/sap/ui/core/qunit/component/Component_dependencyLoading_unavoidablySync.qunit.js +10 -6
- package/test/sap/ui/core/qunit/component/Customizing.qunit.js +8 -7
- package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +6 -5
- package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +8 -7
- package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +7 -6
- package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +5 -4
- package/test/sap/ui/core/qunit/component/Metadata.qunit.js +3 -3
- package/test/sap/ui/core/qunit/component/Models.qunit.js +103 -44
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +20 -4
- package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +5 -4
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/manifest.json +2 -1
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/manifest.json +1 -0
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/manifest.json +2 -1
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/manifest.json +1 -0
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/manifest.json +1 -0
- package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/componentVariant/manifest.json +1 -0
- package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/manifest.json +1 -1
- package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +1 -1
- package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +5 -5
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +4 -5
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
- package/test/sap/ui/core/qunit/internal/AnnotationParser.qunit.html +4 -4
- package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +19 -9
- package/test/sap/ui/core/qunit/jquery.sap.global-config.qunit.js +2 -4
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +5 -4
- package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +5 -9
- package/test/sap/ui/core/qunit/messages/Messaging.qunit.js +10 -5
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +6 -0
- package/test/sap/ui/core/qunit/messages/messagesGeneral_legacyAPIs.qunit.js +158 -0
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +5 -4
- package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +7 -0
- package/test/sap/ui/core/qunit/model/ClientPropertyBinding.qunit.js +47 -0
- package/test/sap/ui/core/qunit/mvc/AsyncXMLView.qunit.js +5 -3
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -3
- package/test/sap/ui/core/qunit/mvc/View.qunit.js +5 -1
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +6 -5
- package/test/sap/ui/core/qunit/mvc/testdata/TypedViewWithRendererRenderer.js +2 -2
- package/test/sap/ui/core/qunit/mvc/testdata/stashed/manifest.json +2 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +4 -3
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +4 -3
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncXMLView_legacyAPIs.qunit.js +5 -3
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +6 -5
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +11 -7
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +35 -0
- package/test/sap/ui/core/qunit/odata/_AnnotationHelperBasics.qunit.js +10 -4
- package/test/sap/ui/core/qunit/odata/data/ODataModelFakeService.js +1 -1
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +5 -0
- package/test/sap/ui/core/qunit/odata/type/ODataType.qunit.js +9 -0
- package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +12 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +422 -9
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +483 -33
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +121 -2
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +95 -8
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +59 -13
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +355 -75
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +152 -19
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1253 -130
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +19 -9
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +6 -27
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +3 -1
- package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +2 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +172 -17
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +7 -8
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +185 -84
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +2 -22
- package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +6 -4
- package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +3 -2
- package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +4 -3
- package/test/sap/ui/core/qunit/rule/app/deprecatedJSViewUsage.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/globalApiUsage.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/jquerySapUsage.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +4 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebugBeforeBootstrap.js +4 -0
- package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +4 -1
- package/test/sap/ui/core/qunit/rule/misc/silentEventBus.qunit.js +8 -7
- package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +11 -2
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +18 -0
- package/test/sap/ui/core/qunit/test/starter/find/main.js +11 -8
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +6 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.foundation.enablement.qunit.js +7 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +21 -2
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +26 -4
- package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +5 -5
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +30 -13
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +40 -16
- package/test/sap/ui/core/qunit/util/support/TechnicalInfo.qunit.js +11 -10
- package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +69 -8
- package/test/sap/ui/core/relnotes/changes-1.118.json +1 -34
- package/test/sap/ui/core/relnotes/changes-1.119.json +217 -0
- package/test/sap/ui/core/resources/fastnav.js +3 -2
- package/test/sap/ui/core/samples/ResponsiveDemo.html +3 -3
- package/test/sap/ui/core/samples/components/commands/manifest.json +2 -2
- package/test/sap/ui/core/samples/components/sample/manifest.json +2 -1
- package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +1 -1
- package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +3 -3
- package/test/sap/ui/core/samples/databinding/UnitTable.view.xml +9 -2
- package/test/sap/ui/core/samples/formatting/manifest.json +2 -2
- package/test/sap/ui/core/samples/mvc/XMLViewAsync.html +62 -61
- package/test/sap/ui/core/samples/routing_legacyAPIs/AsyncViews.html +124 -123
- package/test/sap/ui/core/terminologies/App.controller.js +3 -2
- package/test/sap/ui/core/terminologies/App.view.xml +64 -64
- package/test/sap/ui/core/tmpl_legacyAPIs/TemplateSimple.html +38 -37
- package/test/sap/ui/core/util/PasteHelper.html +5 -4
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/samples/databinding/DataBinding.html +0 -135
- package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +0 -229
- package/test/sap/ui/core/samples/databinding/DataBindingCompositeTypes.html +0 -273
- package/test/sap/ui/core/samples/databinding/DataBindingFormat.html +0 -294
- package/test/sap/ui/core/samples/databinding/DataBindingList.html +0 -290
- package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +0 -290
- package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +0 -280
- package/test/sap/ui/core/samples/databinding/DataBindingMasterDetail.html +0 -117
- package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +0 -154
- package/test/sap/ui/core/samples/databinding/DataBindingResourceModel.html +0 -119
- package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +0 -103
- package/test/sap/ui/core/samples/databinding/DataBindingTree.html +0 -166
- package/test/sap/ui/core/samples/databinding/DataBindingTreeFilter.html +0 -117
- package/test/sap/ui/core/samples/databinding/DataBindingTreeFilterXML.html +0 -103
- package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +0 -128
- package/test/sap/ui/core/samples/databinding/DataBindingTreeWithArrays.html +0 -132
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +0 -158
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +0 -141
- package/test/sap/ui/core/samples/databinding/DataBindingTypes.html +0 -265
- package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +0 -195
- package/test/sap/ui/core/samples/databinding/DataBindingXML.html +0 -148
- package/test/sap/ui/core/samples/databinding/DataBindingXMLView.html +0 -53
- package/test/sap/ui/core/samples/databinding/testdata/ListBinding.view.xml +0 -9
- package/test/sap/ui/core/samples/databinding/testdata/test.view.json +0 -15
- package/test/sap/ui/core/samples/databinding/testdata/test.view.xml +0 -8
|
@@ -171,7 +171,6 @@ sap.ui.define([
|
|
|
171
171
|
ODataListBinding.prototype.loadData.call(oBinding);
|
|
172
172
|
|
|
173
173
|
fnSuccess = oReadCall.args[0][1].success;
|
|
174
|
-
oBindingMock.expects("useClientMode").withExactArgs().returns(false);
|
|
175
174
|
oBindingMock.expects("_removePersistedCreatedContexts").withExactArgs()
|
|
176
175
|
.exactly(bRemovePersistedCreatedAfterRefresh ? 1 : 0);
|
|
177
176
|
this.mock(oModel).expects("callAfterUpdate").withExactArgs(sinon.match.func);
|
|
@@ -188,6 +187,386 @@ sap.ui.define([
|
|
|
188
187
|
});
|
|
189
188
|
});
|
|
190
189
|
|
|
190
|
+
//*********************************************************************************************
|
|
191
|
+
QUnit.test("loadData: Client mode with server side paging - single read", function (assert) {
|
|
192
|
+
var oCallAfterUpdateCall, oData, oEntry, oReadCall, aRequestHandleKeys,
|
|
193
|
+
oModel = {
|
|
194
|
+
iSizeLimit: 100,
|
|
195
|
+
_getKey: function () {},
|
|
196
|
+
callAfterUpdate: function () {},
|
|
197
|
+
read: function () {}
|
|
198
|
+
},
|
|
199
|
+
oModelMock = this.mock(oModel),
|
|
200
|
+
oBinding = {
|
|
201
|
+
bCanonicalRequest: "~CanonicalRequest",
|
|
202
|
+
oContext: "~Context",
|
|
203
|
+
sCustomParams: "~Custom",
|
|
204
|
+
bLengthFinal: false,
|
|
205
|
+
oModel : oModel,
|
|
206
|
+
sPath: "/~Path",
|
|
207
|
+
sRefreshGroupId : "~RefreshGroup",
|
|
208
|
+
mRequestHandles: {},
|
|
209
|
+
sSortParams: "~Sorter",
|
|
210
|
+
bTransitionMessagesOnly: true,
|
|
211
|
+
_addFilterQueryOption: function () {},
|
|
212
|
+
applyFilter: function () {},
|
|
213
|
+
applySort: function () {},
|
|
214
|
+
fireDataReceived: function () {},
|
|
215
|
+
fireDataRequested: function () {},
|
|
216
|
+
isRelative: function () {},
|
|
217
|
+
updateExpandedList: function () {},
|
|
218
|
+
useClientMode: function () {}
|
|
219
|
+
},
|
|
220
|
+
oBindingMock = this.mock(oBinding);
|
|
221
|
+
|
|
222
|
+
oBindingMock.expects("useClientMode").withExactArgs().returns(true);
|
|
223
|
+
oBindingMock.expects("_addFilterQueryOption")
|
|
224
|
+
.withExactArgs(["~Sorter"], /*!useClientMode()*/false)
|
|
225
|
+
.callsFake(function (aParams) {
|
|
226
|
+
aParams.push("~Filter"); // simulate _addFilterQueryOption implementation
|
|
227
|
+
});
|
|
228
|
+
oBindingMock.expects("isRelative").withExactArgs().returns(false);
|
|
229
|
+
oBindingMock.expects("fireDataRequested").withExactArgs();
|
|
230
|
+
|
|
231
|
+
oReadCall = oModelMock.expects("read").withExactArgs("/~Path", {
|
|
232
|
+
canonicalRequest: "~CanonicalRequest",
|
|
233
|
+
context: "~Context",
|
|
234
|
+
error: sinon.match.func,
|
|
235
|
+
groupId: "~RefreshGroup",
|
|
236
|
+
headers: {"sap-messages" : "transientOnly"},
|
|
237
|
+
success: sinon.match.func,
|
|
238
|
+
updateAggregatedMessages: undefined,
|
|
239
|
+
urlParameters: ["~Sorter", "~Filter", "~Custom"]
|
|
240
|
+
}).returns("~Read1");
|
|
241
|
+
|
|
242
|
+
// code under test
|
|
243
|
+
ODataListBinding.prototype.loadData.call(oBinding);
|
|
244
|
+
|
|
245
|
+
assert.strictEqual(oBinding.bPendingRequest, true);
|
|
246
|
+
assert.strictEqual(oBinding.bSkipDataEvents, false);
|
|
247
|
+
aRequestHandleKeys = Object.keys(oBinding.mRequestHandles);
|
|
248
|
+
assert.strictEqual(aRequestHandleKeys.length, 1);
|
|
249
|
+
assert.strictEqual(oBinding.mRequestHandles[aRequestHandleKeys[0]], "~Read1");
|
|
250
|
+
|
|
251
|
+
oBindingMock.expects("updateExpandedList").withExactArgs(["~Key"]);
|
|
252
|
+
oBindingMock.expects("applyFilter").withExactArgs();
|
|
253
|
+
oBindingMock.expects("applySort").withExactArgs();
|
|
254
|
+
oEntry = {};
|
|
255
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry)).returns("~Key");
|
|
256
|
+
oCallAfterUpdateCall = oModelMock.expects("callAfterUpdate").withExactArgs(sinon.match.func);
|
|
257
|
+
oData = {results: [oEntry]};
|
|
258
|
+
|
|
259
|
+
// code under test - all data read
|
|
260
|
+
oReadCall.args[0][1].success(oData);
|
|
261
|
+
|
|
262
|
+
assert.strictEqual(oBinding.iLength, 1);
|
|
263
|
+
assert.strictEqual(oBinding.bLengthFinal, true);
|
|
264
|
+
assert.deepEqual(oBinding.aKeys, ["~Key"]);
|
|
265
|
+
assert.deepEqual(oBinding.aAllKeys, ["~Key"]);
|
|
266
|
+
assert.deepEqual(oBinding.mRequestHandles, {});
|
|
267
|
+
assert.strictEqual(oBinding.bPendingRequest, false);
|
|
268
|
+
assert.strictEqual(oBinding.bNeedsUpdate, true);
|
|
269
|
+
assert.strictEqual(oBinding.bIgnoreSuspend, true);
|
|
270
|
+
|
|
271
|
+
oBindingMock.expects("fireDataReceived").withExactArgs({data: sinon.match.same(oData)});
|
|
272
|
+
|
|
273
|
+
// code under test
|
|
274
|
+
oCallAfterUpdateCall.args[0][0]();
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
//*********************************************************************************************
|
|
278
|
+
QUnit.test("loadData: Client mode with server side paging - first read returns enough data", function (assert) {
|
|
279
|
+
var oCallAfterUpdateCall, oData, oReadCall, aRequestHandleKeys,
|
|
280
|
+
aEntries = ["~0", "~1", "~2", "~3", "~4"],
|
|
281
|
+
oModel = {
|
|
282
|
+
iSizeLimit: 3,
|
|
283
|
+
_getKey: function () {},
|
|
284
|
+
callAfterUpdate: function () {},
|
|
285
|
+
read: function () {}
|
|
286
|
+
},
|
|
287
|
+
oModelMock = this.mock(oModel),
|
|
288
|
+
oBinding = {
|
|
289
|
+
bCanonicalRequest: "~CanonicalRequest",
|
|
290
|
+
oContext: "~Context",
|
|
291
|
+
sCustomParams: "~Custom",
|
|
292
|
+
bLengthFinal: false,
|
|
293
|
+
oModel : oModel,
|
|
294
|
+
sPath: "/~Path",
|
|
295
|
+
sRefreshGroupId : "~RefreshGroup",
|
|
296
|
+
mRequestHandles: {},
|
|
297
|
+
sSortParams: "~Sorter",
|
|
298
|
+
bTransitionMessagesOnly: true,
|
|
299
|
+
_addFilterQueryOption: function () {},
|
|
300
|
+
applyFilter: function () {},
|
|
301
|
+
applySort: function () {},
|
|
302
|
+
fireDataReceived: function () {},
|
|
303
|
+
fireDataRequested: function () {},
|
|
304
|
+
isRelative: function () {},
|
|
305
|
+
updateExpandedList: function () {},
|
|
306
|
+
useClientMode: function () {}
|
|
307
|
+
},
|
|
308
|
+
oBindingMock = this.mock(oBinding);
|
|
309
|
+
|
|
310
|
+
oBindingMock.expects("useClientMode").withExactArgs().returns(true);
|
|
311
|
+
oBindingMock.expects("_addFilterQueryOption")
|
|
312
|
+
.withExactArgs(["~Sorter"], /*!useClientMode()*/false)
|
|
313
|
+
.callsFake(function (aParams) {
|
|
314
|
+
aParams.push("~Filter"); // simulate _addFilterQueryOption implementation
|
|
315
|
+
});
|
|
316
|
+
oBindingMock.expects("isRelative").withExactArgs().returns(false);
|
|
317
|
+
oBindingMock.expects("fireDataRequested").withExactArgs();
|
|
318
|
+
|
|
319
|
+
oReadCall = oModelMock.expects("read").withExactArgs("/~Path", {
|
|
320
|
+
canonicalRequest: "~CanonicalRequest",
|
|
321
|
+
context: "~Context",
|
|
322
|
+
error: sinon.match.func,
|
|
323
|
+
groupId: "~RefreshGroup",
|
|
324
|
+
headers: {"sap-messages" : "transientOnly"},
|
|
325
|
+
success: sinon.match.func,
|
|
326
|
+
updateAggregatedMessages: undefined,
|
|
327
|
+
urlParameters: ["~Sorter", "~Filter", "~Custom"]
|
|
328
|
+
}).returns("~Read1");
|
|
329
|
+
|
|
330
|
+
// code under test
|
|
331
|
+
ODataListBinding.prototype.loadData.call(oBinding);
|
|
332
|
+
|
|
333
|
+
assert.strictEqual(oBinding.bPendingRequest, true);
|
|
334
|
+
assert.strictEqual(oBinding.bSkipDataEvents, false);
|
|
335
|
+
aRequestHandleKeys = Object.keys(oBinding.mRequestHandles);
|
|
336
|
+
assert.strictEqual(aRequestHandleKeys.length, 1);
|
|
337
|
+
assert.strictEqual(oBinding.mRequestHandles[aRequestHandleKeys[0]], "~Read1");
|
|
338
|
+
|
|
339
|
+
oBindingMock.expects("updateExpandedList").withExactArgs(["~Key0", "~Key1", "~Key2", "~Key3", "~Key4"]);
|
|
340
|
+
oBindingMock.expects("applyFilter").withExactArgs();
|
|
341
|
+
oBindingMock.expects("applySort").withExactArgs();
|
|
342
|
+
oModelMock.expects("_getKey").withExactArgs("~0").returns("~Key0");
|
|
343
|
+
oModelMock.expects("_getKey").withExactArgs("~1").returns("~Key1");
|
|
344
|
+
oModelMock.expects("_getKey").withExactArgs("~2").returns("~Key2");
|
|
345
|
+
oModelMock.expects("_getKey").withExactArgs("~3").returns("~Key3");
|
|
346
|
+
oModelMock.expects("_getKey").withExactArgs("~4").returns("~Key4");
|
|
347
|
+
oCallAfterUpdateCall = oModelMock.expects("callAfterUpdate").withExactArgs(sinon.match.func);
|
|
348
|
+
oData = {
|
|
349
|
+
__next: "~NextLink", // more data on server
|
|
350
|
+
results: aEntries // but model size limit reached
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
// code under test
|
|
354
|
+
oReadCall.args[0][1].success(oData);
|
|
355
|
+
|
|
356
|
+
assert.strictEqual(oBinding.iLength, 5);
|
|
357
|
+
assert.strictEqual(oBinding.bLengthFinal, true);
|
|
358
|
+
assert.deepEqual(oBinding.aKeys, ["~Key0", "~Key1", "~Key2", "~Key3", "~Key4"]);
|
|
359
|
+
assert.deepEqual(oBinding.aAllKeys, ["~Key0", "~Key1", "~Key2", "~Key3", "~Key4"]);
|
|
360
|
+
assert.deepEqual(oBinding.mRequestHandles, {});
|
|
361
|
+
assert.strictEqual(oBinding.bPendingRequest, false);
|
|
362
|
+
assert.strictEqual(oBinding.bNeedsUpdate, true);
|
|
363
|
+
assert.strictEqual(oBinding.bIgnoreSuspend, true);
|
|
364
|
+
|
|
365
|
+
oBindingMock.expects("fireDataReceived").withExactArgs({data: sinon.match.same(oData)});
|
|
366
|
+
|
|
367
|
+
// code under test
|
|
368
|
+
oCallAfterUpdateCall.args[0][0]();
|
|
369
|
+
});
|
|
370
|
+
|
|
371
|
+
//*********************************************************************************************
|
|
372
|
+
[CountMode.InlineRepeat, CountMode.Inline, CountMode.None, CountMode.Request].forEach(function (sCountMode) {
|
|
373
|
+
var sTitle = "loadData: Client mode, server side paging, more reads, count mode: " + sCountMode;
|
|
374
|
+
|
|
375
|
+
QUnit.test(sTitle, function (assert) {
|
|
376
|
+
var oCallAfterUpdateCall, oData, oEntry0, oEntry1, oEntry2, oEntry3, oEntry4, oEntry5,
|
|
377
|
+
sHandleKey, oReadCall, oReadCall2, oReadCall3, aRequestHandleKeys, fnSuccess,
|
|
378
|
+
oModel = {
|
|
379
|
+
iSizeLimit: 30,
|
|
380
|
+
_getKey: function () {},
|
|
381
|
+
callAfterUpdate: function () {},
|
|
382
|
+
read: function () {}
|
|
383
|
+
},
|
|
384
|
+
oModelMock = this.mock(oModel),
|
|
385
|
+
oBinding = {
|
|
386
|
+
bCanonicalRequest: "~CanonicalRequest",
|
|
387
|
+
oContext: "~Context",
|
|
388
|
+
sCountMode: sCountMode,
|
|
389
|
+
sCustomParams: "~Custom",
|
|
390
|
+
bLengthFinal: false,
|
|
391
|
+
oModel : oModel,
|
|
392
|
+
sPath: "/~Path",
|
|
393
|
+
sRefreshGroupId : "~RefreshGroup",
|
|
394
|
+
mRequestHandles: {},
|
|
395
|
+
sSortParams: "~Sorter",
|
|
396
|
+
bTransitionMessagesOnly: true,
|
|
397
|
+
_addFilterQueryOption: function () {},
|
|
398
|
+
applyFilter: function () {},
|
|
399
|
+
applySort: function () {},
|
|
400
|
+
fireDataReceived: function () {},
|
|
401
|
+
fireDataRequested: function () {},
|
|
402
|
+
isRelative: function () {},
|
|
403
|
+
updateExpandedList: function () {},
|
|
404
|
+
useClientMode: function () {}
|
|
405
|
+
},
|
|
406
|
+
oBindingMock = this.mock(oBinding);
|
|
407
|
+
|
|
408
|
+
oBindingMock.expects("useClientMode").withExactArgs().returns(true);
|
|
409
|
+
oBindingMock.expects("_addFilterQueryOption")
|
|
410
|
+
.withExactArgs(["~Sorter"], /*!useClientMode()*/false)
|
|
411
|
+
.callsFake(function (aParams) {
|
|
412
|
+
aParams.push("~Filter"); // simulate _addFilterQueryOption implementation
|
|
413
|
+
});
|
|
414
|
+
oBindingMock.expects("isRelative").withExactArgs().returns(false);
|
|
415
|
+
oBindingMock.expects("fireDataRequested").withExactArgs();
|
|
416
|
+
oReadCall = oModelMock.expects("read").withExactArgs("/~Path", {
|
|
417
|
+
canonicalRequest: "~CanonicalRequest",
|
|
418
|
+
context: "~Context",
|
|
419
|
+
error: sinon.match.func,
|
|
420
|
+
groupId: "~RefreshGroup",
|
|
421
|
+
headers: {"sap-messages" : "transientOnly"},
|
|
422
|
+
success: sinon.match.func,
|
|
423
|
+
updateAggregatedMessages: undefined,
|
|
424
|
+
urlParameters: sCountMode === CountMode.None || sCountMode === CountMode.Request
|
|
425
|
+
? ["~Sorter", "~Filter", "~Custom"]
|
|
426
|
+
: ["~Sorter", "~Filter", "~Custom", "$inlinecount=allpages"]
|
|
427
|
+
}).returns("~Read1");
|
|
428
|
+
|
|
429
|
+
// code under test - initial loading
|
|
430
|
+
ODataListBinding.prototype.loadData.call(oBinding);
|
|
431
|
+
|
|
432
|
+
assert.strictEqual(oBinding.bPendingRequest, true);
|
|
433
|
+
assert.strictEqual(oBinding.bSkipDataEvents, false);
|
|
434
|
+
aRequestHandleKeys = Object.keys(oBinding.mRequestHandles);
|
|
435
|
+
assert.strictEqual(aRequestHandleKeys.length, 1);
|
|
436
|
+
sHandleKey = aRequestHandleKeys[0];
|
|
437
|
+
assert.strictEqual(oBinding.mRequestHandles[sHandleKey], "~Read1");
|
|
438
|
+
|
|
439
|
+
fnSuccess = oReadCall.args[0][1].success;
|
|
440
|
+
oEntry0 = {};
|
|
441
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry0)).returns("~Key0");
|
|
442
|
+
oData = {
|
|
443
|
+
__next: "~NextLink",
|
|
444
|
+
results: [oEntry0]
|
|
445
|
+
};
|
|
446
|
+
if (sCountMode !== CountMode.None && sCountMode !== CountMode.Request) {
|
|
447
|
+
oData.__count = "123";
|
|
448
|
+
}
|
|
449
|
+
oBindingMock.expects("_addFilterQueryOption")
|
|
450
|
+
.withExactArgs(["$skip=1&$top=29", "~Sorter"], /*!useClientMode()*/false)
|
|
451
|
+
.callsFake(function (aParams) {
|
|
452
|
+
aParams.push("~Filter"); // simulate _addFilterQueryOption implementation
|
|
453
|
+
});
|
|
454
|
+
// read call for the missing entries up to model size limit
|
|
455
|
+
oReadCall2 = oModelMock.expects("read").withExactArgs("/~Path", {
|
|
456
|
+
canonicalRequest: "~CanonicalRequest",
|
|
457
|
+
context: "~Context",
|
|
458
|
+
error: sinon.match.func,
|
|
459
|
+
groupId: "~RefreshGroup",
|
|
460
|
+
headers: {"sap-messages" : "transientOnly"},
|
|
461
|
+
success: sinon.match.func,
|
|
462
|
+
updateAggregatedMessages: undefined,
|
|
463
|
+
urlParameters: sCountMode === CountMode.InlineRepeat
|
|
464
|
+
? ["$skip=1&$top=29", "~Sorter", "~Filter", "~Custom", "$inlinecount=allpages"]
|
|
465
|
+
: ["$skip=1&$top=29", "~Sorter", "~Filter", "~Custom"]
|
|
466
|
+
}).returns("~Read2");
|
|
467
|
+
|
|
468
|
+
// code under test - server side paging (here 3, in real maybe 5000); response contains a __next link
|
|
469
|
+
fnSuccess(oData);
|
|
470
|
+
|
|
471
|
+
assert.strictEqual(oBinding.mRequestHandles[sHandleKey], "~Read2");
|
|
472
|
+
assert.strictEqual(oBinding.iLength,
|
|
473
|
+
sCountMode === CountMode.None || sCountMode === CountMode.Request ? undefined : 123);
|
|
474
|
+
assert.strictEqual(oBinding.bLengthFinal, sCountMode !== CountMode.None && sCountMode !== CountMode.Request);
|
|
475
|
+
assert.deepEqual(oBinding.aKeys, ["~Key0"]);
|
|
476
|
+
assert.strictEqual(oBinding.aAllKeys, undefined);
|
|
477
|
+
// success and error handlers are the same
|
|
478
|
+
assert.strictEqual(oReadCall2.args[0][1].success, fnSuccess);
|
|
479
|
+
assert.strictEqual(oReadCall2.args[0][1].error, oReadCall.args[0][1].error);
|
|
480
|
+
|
|
481
|
+
oData = {
|
|
482
|
+
__next: "~NextLink2",
|
|
483
|
+
results: [oEntry1, oEntry2, oEntry3]
|
|
484
|
+
};
|
|
485
|
+
if (sCountMode === CountMode.InlineRepeat) {
|
|
486
|
+
oData.__count = "123";
|
|
487
|
+
}
|
|
488
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry1)).returns("~Key1");
|
|
489
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry2)).returns("~Key2");
|
|
490
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry3)).returns("~Key3");
|
|
491
|
+
oBindingMock.expects("_addFilterQueryOption")
|
|
492
|
+
.withExactArgs(["$skip=4&$top=26", "~Sorter"], /*!useClientMode()*/false)
|
|
493
|
+
.callsFake(function (aParams) {
|
|
494
|
+
aParams.push("~Filter"); // simulate _addFilterQueryOption implementation
|
|
495
|
+
});
|
|
496
|
+
// read call for the next junk of data
|
|
497
|
+
oReadCall3 = oModelMock.expects("read").withExactArgs("/~Path", {
|
|
498
|
+
canonicalRequest: "~CanonicalRequest",
|
|
499
|
+
context: "~Context",
|
|
500
|
+
error: sinon.match.func,
|
|
501
|
+
groupId: "~RefreshGroup",
|
|
502
|
+
headers: {"sap-messages" : "transientOnly"},
|
|
503
|
+
success: sinon.match.func,
|
|
504
|
+
updateAggregatedMessages: undefined,
|
|
505
|
+
urlParameters: sCountMode === CountMode.InlineRepeat
|
|
506
|
+
? ["$skip=4&$top=26", "~Sorter", "~Filter", "~Custom", "$inlinecount=allpages"]
|
|
507
|
+
: ["$skip=4&$top=26", "~Sorter", "~Filter", "~Custom"]
|
|
508
|
+
}).returns("~Read3");
|
|
509
|
+
|
|
510
|
+
// code under test - all data up to model size limit are read
|
|
511
|
+
fnSuccess(oData);
|
|
512
|
+
|
|
513
|
+
assert.strictEqual(oBinding.mRequestHandles[sHandleKey], "~Read3");
|
|
514
|
+
assert.strictEqual(oBinding.iLength,
|
|
515
|
+
sCountMode === CountMode.None || sCountMode === CountMode.Request ? undefined : 123);
|
|
516
|
+
assert.strictEqual(oBinding.bLengthFinal, sCountMode !== CountMode.None && sCountMode !== CountMode.Request);
|
|
517
|
+
assert.deepEqual(oBinding.aKeys, ["~Key0", "~Key1", "~Key2", "~Key3"]);
|
|
518
|
+
assert.strictEqual(oBinding.aAllKeys, undefined);
|
|
519
|
+
// success and error handlers are the same
|
|
520
|
+
assert.strictEqual(oReadCall3.args[0][1].success, fnSuccess);
|
|
521
|
+
assert.strictEqual(oReadCall3.args[0][1].error, oReadCall.args[0][1].error);
|
|
522
|
+
|
|
523
|
+
oData = { // less data than requested
|
|
524
|
+
results: [oEntry4, oEntry5]
|
|
525
|
+
};
|
|
526
|
+
if (sCountMode === CountMode.InlineRepeat) {
|
|
527
|
+
oData.__count = "123";
|
|
528
|
+
}
|
|
529
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry4)).returns("~Key4");
|
|
530
|
+
oModelMock.expects("_getKey").withExactArgs(sinon.match.same(oEntry5)).returns("~Key5");
|
|
531
|
+
oBindingMock.expects("updateExpandedList")
|
|
532
|
+
.withExactArgs(["~Key0", "~Key1", "~Key2", "~Key3", "~Key4", "~Key5"]);
|
|
533
|
+
oBindingMock.expects("applyFilter").withExactArgs();
|
|
534
|
+
oBindingMock.expects("applySort").withExactArgs();
|
|
535
|
+
oCallAfterUpdateCall = oModelMock.expects("callAfterUpdate").withExactArgs(sinon.match.func);
|
|
536
|
+
|
|
537
|
+
// code under test - short read stops reading
|
|
538
|
+
fnSuccess(oData);
|
|
539
|
+
|
|
540
|
+
assert.strictEqual(oBinding.iLength, 6);
|
|
541
|
+
assert.strictEqual(oBinding.bLengthFinal, true);
|
|
542
|
+
assert.deepEqual(oBinding.aKeys, ["~Key0", "~Key1", "~Key2", "~Key3", "~Key4", "~Key5"]);
|
|
543
|
+
assert.deepEqual(oBinding.aAllKeys, ["~Key0", "~Key1", "~Key2", "~Key3", "~Key4", "~Key5"]);
|
|
544
|
+
assert.notStrictEqual(oBinding.aAllKeys, oBinding.aKeys);
|
|
545
|
+
assert.deepEqual(oBinding.mRequestHandles, {});
|
|
546
|
+
assert.strictEqual(oBinding.bPendingRequest, false);
|
|
547
|
+
assert.strictEqual(oBinding.bNeedsUpdate, true);
|
|
548
|
+
assert.strictEqual(oBinding.bIgnoreSuspend, true);
|
|
549
|
+
|
|
550
|
+
oBindingMock.expects("fireDataReceived").withExactArgs(sinon.match(function (oParameter) {
|
|
551
|
+
var aResult = oParameter.data.results;
|
|
552
|
+
|
|
553
|
+
assert.strictEqual(aResult.length, 6);
|
|
554
|
+
assert.strictEqual(aResult[0], oEntry0);
|
|
555
|
+
assert.strictEqual(aResult[1], oEntry1);
|
|
556
|
+
assert.strictEqual(aResult[2], oEntry2);
|
|
557
|
+
assert.strictEqual(aResult[3], oEntry3);
|
|
558
|
+
assert.strictEqual(aResult[4], oEntry4);
|
|
559
|
+
assert.strictEqual(aResult[5], oEntry5);
|
|
560
|
+
assert.strictEqual(oParameter.data.__count, "6");
|
|
561
|
+
|
|
562
|
+
return true;
|
|
563
|
+
}));
|
|
564
|
+
|
|
565
|
+
// code under test
|
|
566
|
+
oCallAfterUpdateCall.args[0][0]();
|
|
567
|
+
});
|
|
568
|
+
});
|
|
569
|
+
|
|
191
570
|
//*********************************************************************************************
|
|
192
571
|
[
|
|
193
572
|
{operationMode : OperationMode.Client, useFilterParams : true},
|
|
@@ -437,10 +816,8 @@ sap.ui.define([
|
|
|
437
816
|
|
|
438
817
|
assert.strictEqual(oBinding.sFilterParams, null);
|
|
439
818
|
assert.strictEqual(oBinding.sSortParams, null);
|
|
440
|
-
assert.strictEqual(oBinding.sRangeParams, null);
|
|
441
819
|
assert.strictEqual(oBinding.sCustomParams, "~custom");
|
|
442
820
|
assert.strictEqual(oBinding.mCustomParams, undefined);
|
|
443
|
-
assert.strictEqual(oBinding.iStartIndex, 0);
|
|
444
821
|
assert.strictEqual(oBinding.iLength, 0);
|
|
445
822
|
assert.strictEqual(oBinding.bPendingChange, false);
|
|
446
823
|
assert.strictEqual(oBinding.aAllKeys, null);
|
|
@@ -659,7 +1036,7 @@ sap.ui.define([
|
|
|
659
1036
|
[true, false].forEach(function (bWithFilter) {
|
|
660
1037
|
[{
|
|
661
1038
|
aFilterForPredicate : [],
|
|
662
|
-
aMessages : [] //
|
|
1039
|
+
aMessages : [] // full targets of message objects and whether the message is not filtered out (message === "in")
|
|
663
1040
|
}, {
|
|
664
1041
|
aFilterForPredicate : bWithFilter ? [] : ["(~keyPredicate~)"],
|
|
665
1042
|
aMessages : [{aFullTargets : ["~deepPath~(~keyPredicate~)"], message : "out"}]
|
|
@@ -695,6 +1072,21 @@ sap.ui.define([
|
|
|
695
1072
|
aFullTargets : ["~parentEntity~", "~deepPath~(~keyPredicate~)/B"],
|
|
696
1073
|
message : "in"
|
|
697
1074
|
}]
|
|
1075
|
+
}, { // BCP 2370088390: only messages on transient entries (filter null expected)
|
|
1076
|
+
aCreatedContextDeepPaths : ["~deepPath~(~uid0~)", "~deepPath~(~uid1~)", "~deepPath~(~uid2~)"],
|
|
1077
|
+
aFilterForPredicate : [],
|
|
1078
|
+
aMessages : [
|
|
1079
|
+
{aFullTargets : ["~deepPath~(~uid0~)"], message : "in"},
|
|
1080
|
+
{aFullTargets : ["~deepPath~(~uid1~)/property"], message : "in"}
|
|
1081
|
+
]
|
|
1082
|
+
}, { // BCP 2370088390: messages on both persistent and transient entries (filter w/o transient expected)
|
|
1083
|
+
aCreatedContextDeepPaths : ["~deepPath~(~uid0~)", "~deepPath~(~uid1~)", "~deepPath~(~uid2~)"],
|
|
1084
|
+
aFilterForPredicate : ["(~keyPredicate~)"],
|
|
1085
|
+
aMessages : [
|
|
1086
|
+
{aFullTargets : ["~deepPath~(~uid0~)"], message : "in"},
|
|
1087
|
+
{aFullTargets : ["~deepPath~(~uid1~)/property"], message : "in"},
|
|
1088
|
+
{aFullTargets : ["~deepPath~(~keyPredicate~)"], message : "in"}
|
|
1089
|
+
]
|
|
698
1090
|
}].forEach(function (oFixture, i) {
|
|
699
1091
|
var sTitle = "requestFilterForMessages: with filter: " + bWithFilter + ", " + i;
|
|
700
1092
|
|
|
@@ -703,6 +1095,8 @@ sap.ui.define([
|
|
|
703
1095
|
fnFilter : function () {}
|
|
704
1096
|
},
|
|
705
1097
|
oCallbackMock = this.mock(oCallback),
|
|
1098
|
+
aCreatedContexts = (oFixture.aCreatedContextDeepPaths || [])
|
|
1099
|
+
.map((sDeepPath) => ({ getDeepPath() {return sDeepPath;} })),
|
|
706
1100
|
aFilterForPredicate = oFixture.aFilterForPredicate,
|
|
707
1101
|
aFilters = [],
|
|
708
1102
|
aMessages = oFixture.aMessages,
|
|
@@ -710,6 +1104,7 @@ sap.ui.define([
|
|
|
710
1104
|
oBinding = {
|
|
711
1105
|
sDeepPath : "~deepPath~",
|
|
712
1106
|
oModel : oModel,
|
|
1107
|
+
_getCreatedContexts : function () {},
|
|
713
1108
|
_getFilterForPredicate : function () {},
|
|
714
1109
|
getResolvedPath : function () {}
|
|
715
1110
|
},
|
|
@@ -717,6 +1112,7 @@ sap.ui.define([
|
|
|
717
1112
|
oPromise;
|
|
718
1113
|
|
|
719
1114
|
this.mock(oBinding).expects("getResolvedPath").withExactArgs().returns("resolvedPath");
|
|
1115
|
+
this.mock(oBinding).expects("_getCreatedContexts").withExactArgs().returns(aCreatedContexts);
|
|
720
1116
|
this.mock(oModel).expects("getMessagesByPath").withExactArgs("~deepPath~", true)
|
|
721
1117
|
.returns(aMessages);
|
|
722
1118
|
if (aMessages.length && bWithFilter) {
|
|
@@ -727,6 +1123,9 @@ sap.ui.define([
|
|
|
727
1123
|
} else {
|
|
728
1124
|
oCallbackMock.expects("fnFilter").never();
|
|
729
1125
|
}
|
|
1126
|
+
aCreatedContexts.forEach((oCreatedContext) => {
|
|
1127
|
+
this.mock(oCreatedContext).expects("getDeepPath").withExactArgs().callThrough();
|
|
1128
|
+
});
|
|
730
1129
|
if (aFilterForPredicate.length) {
|
|
731
1130
|
aFilterForPredicate.forEach(function (sPredicate) {
|
|
732
1131
|
var oFilter = new Filter("~property~", FilterOperator.EQ, "~value~");
|
|
@@ -1609,7 +2008,6 @@ sap.ui.define([
|
|
|
1609
2008
|
["~V2Context0", "~V2Context1"]);
|
|
1610
2009
|
});
|
|
1611
2010
|
|
|
1612
|
-
|
|
1613
2011
|
//*********************************************************************************************
|
|
1614
2012
|
[{
|
|
1615
2013
|
bAtEnd : false,
|
|
@@ -2957,7 +3355,6 @@ sap.ui.define([
|
|
|
2957
3355
|
_removePersistedCreatedContexts : function () {},
|
|
2958
3356
|
addComparators : function () {},
|
|
2959
3357
|
abortPendingRequest : function () {},
|
|
2960
|
-
convertFilters : function () {},
|
|
2961
3358
|
createFilterParams : function () {},
|
|
2962
3359
|
resetData : function () {},
|
|
2963
3360
|
useClientMode : function () {}
|
|
@@ -2967,7 +3364,11 @@ sap.ui.define([
|
|
|
2967
3364
|
|
|
2968
3365
|
this.mock(oBinding.oModel).expects("checkFilterOperation")
|
|
2969
3366
|
.withExactArgs(sinon.match.same(aFilters));
|
|
2970
|
-
|
|
3367
|
+
/** @deprecated As of version 1.22.0, reason sap.ui.model.odata.Filter.js */
|
|
3368
|
+
(function() {
|
|
3369
|
+
oBinding.convertFilters = function () {};
|
|
3370
|
+
this.mock(oBinding).expects("convertFilters").withExactArgs();
|
|
3371
|
+
}.bind(this)());
|
|
2971
3372
|
this.mock(FilterProcessor).expects("combineFilters")
|
|
2972
3373
|
.withExactArgs(sinon.match.same(aFilters), sinon.match.same(aApplicationFilters))
|
|
2973
3374
|
.returns("~oCombinedFilter");
|
|
@@ -3005,12 +3406,15 @@ sap.ui.define([
|
|
|
3005
3406
|
addComparators : function () {},
|
|
3006
3407
|
applyFilter : function () {},
|
|
3007
3408
|
applySort : function () {},
|
|
3008
|
-
convertFilters : function () {},
|
|
3009
3409
|
useClientMode : function () {}
|
|
3010
3410
|
};
|
|
3011
3411
|
|
|
3012
3412
|
this.mock(oBinding.oModel).expects("checkFilterOperation").withExactArgs([]);
|
|
3013
|
-
|
|
3413
|
+
/** @deprecated As of version 1.22.0, reason sap.ui.model.odata.Filter.js */
|
|
3414
|
+
(function() {
|
|
3415
|
+
oBinding.convertFilters = function () {};
|
|
3416
|
+
this.mock(oBinding).expects("convertFilters").withExactArgs();
|
|
3417
|
+
}.bind(this)());
|
|
3014
3418
|
this.mock(FilterProcessor).expects("combineFilters")
|
|
3015
3419
|
.withExactArgs([], [])
|
|
3016
3420
|
.returns("~oCombinedFilter");
|
|
@@ -3789,6 +4193,15 @@ sap.ui.define([
|
|
|
3789
4193
|
ODataListBinding.prototype.fireCreateActivate.call(oBinding, oContext);
|
|
3790
4194
|
});
|
|
3791
4195
|
|
|
4196
|
+
//*********************************************************************************************
|
|
4197
|
+
QUnit.test("fireCreateActivate: do nothing if binding is destroyed", function (assert) {
|
|
4198
|
+
var oBinding = {bIsBeingDestroyed: true},
|
|
4199
|
+
oContext = {};
|
|
4200
|
+
|
|
4201
|
+
// code under test
|
|
4202
|
+
ODataListBinding.prototype.fireCreateActivate.call(oBinding, oContext);
|
|
4203
|
+
});
|
|
4204
|
+
|
|
3792
4205
|
//*********************************************************************************************
|
|
3793
4206
|
QUnit.test("addComparators: log warning if entity type is unknown", function (assert) {
|
|
3794
4207
|
var oBinding = {oEntityType : undefined};
|