@openui5/sap.ui.core 1.121.1 → 1.122.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/.eslintrc.json +22 -5
- package/THIRDPARTY.txt +1 -1
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.sjax.js +6 -5
- 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/Formatting.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/Deferred.js +4 -6
- 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/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +11 -5
- package/src/sap/ui/base/Exception.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +22 -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 +1 -1
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +33 -5
- 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 +1 -1
- package/src/sap/ui/core/Control.js +19 -3
- package/src/sap/ui/core/Core.js +1 -1
- 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 +28 -3
- 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 +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/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 +14 -6
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +1 -1
- 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 +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/date/UniversalDateUtils.js +52 -52
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +4 -4
- 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 -4
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +32 -13
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +3 -3
- 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 +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle_ar.properties +1 -1
- package/src/sap/ui/core/messagebundle_mk.properties +1 -1
- package/src/sap/ui/core/mvc/Controller.js +42 -7
- 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 +1 -1
- 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 +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/themes/base/base.less +239 -8
- package/src/sap/ui/core/themes/base/global.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/global.less +20 -0
- 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 +2 -2
- package/src/sap/ui/core/util/ShortcutHelper.js +6 -0
- package/src/sap/ui/core/util/XMLPreprocessor.js +54 -30
- package/src/sap/ui/core/util/_LocalizationHelper.js +2 -1
- package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +0 -29
- package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +0 -26
- package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +0 -56
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +13 -6
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +16 -7
- package/src/sap/ui/model/CompositeBinding.js +11 -4
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +17 -3
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ListBinding.js +14 -11
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +11 -9
- package/src/sap/ui/model/PropertyBinding.js +21 -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/TreeBinding.js +14 -7
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +12 -8
- package/src/sap/ui/model/analytics/BatchResponseCollector.js +1 -1
- package/src/sap/ui/model/analytics/odata4analytics.js +66 -52
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +1 -4
- package/src/sap/ui/model/json/JSONListBinding.js +5 -2
- package/src/sap/ui/model/json/JSONModel.js +7 -5
- package/src/sap/ui/model/json/JSONTreeBinding.js +5 -2
- package/src/sap/ui/model/message/MessageListBinding.js +5 -2
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +8 -9
- 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/ODataUtils.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +2 -4
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +2 -2
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +14 -8
- package/src/sap/ui/model/odata/v2/ODataModel.js +25 -28
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +15 -12
- package/src/sap/ui/model/odata/v4/Context.js +111 -30
- package/src/sap/ui/model/odata/v4/ODataBinding.js +9 -5
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +14 -9
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +4 -3
- package/src/sap/ui/model/odata/v4/ODataModel.js +27 -2
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +19 -7
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +240 -41
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +88 -0
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +13 -4
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +15 -0
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +77 -15
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +38 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +5 -2
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLTreeBinding.js +5 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/RecordReplay.js +1 -0
- package/src/sap/ui/test/autowaiter/_autoWaiterAsync.js +8 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/gherkin/opa5TestHarness.js +0 -6
- package/src/sap/ui/test/gherkin/qUnitTestHarness.js +0 -6
- package/src/sap/ui/test/qunitPause.js +5 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/_enforceNoReturnValue.js +26 -0
- package/src/ui5loader.js +25 -2
- package/test/sap/ui/core/HyphenationPlayground.html +6 -292
- package/test/sap/ui/core/HyphenationPlayground.js +313 -0
- package/test/sap/ui/core/demokit/docuindex.json +1 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/OpaAutoWaitParams.html +1 -1
- package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/applicationUnderTest/index.html +1 -2
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/README.js +31 -23
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +103 -94
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/Steps.js +5 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.html +3 -0
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.js +1 -5
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +16 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/SandboxModel.js +11 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/data/UnitsOfMeasure.json +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +2 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +28 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +3 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +34 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/model/data.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +3 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.html +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +34 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/model/data.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/view/App.view.xml +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +3 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +35 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/model/data.json +6 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +3 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/Component.js +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +35 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/model/data.json +6 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +4 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/model/data.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/model/data.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/model/data.json +11 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/view/App.view.xml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/model/data.json +11 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/view/App.view.xml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +46 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/controller/App.controller.js +8 -7
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +47 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/controller/App.controller.js +10 -11
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/controller/App.controller.js +16 -16
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/model/data.json +13 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/controller/App.controller.js +16 -16
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/model/data.json +14 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/view/App.view.xml +3 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +3 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/Component.js +12 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/controller/App.controller.js +19 -22
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.html +8 -10
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +51 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/Products.json +64 -57
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/model/data.json +14 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/view/App.view.xml +5 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +67 -0
- package/test/sap/ui/core/qunit/EventProvider.qunit.js +30 -2
- package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.html → Lib_preloadFiles.qunit.html} +1 -1
- package/test/sap/ui/core/qunit/{Core_libraryPreloadFiles.qunit.js → Lib_preloadFiles.qunit.js} +5 -10
- package/test/sap/ui/core/qunit/ThemeHelper.qunit.js +1 -1
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +4 -4
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +12 -12
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +262 -12
- package/test/sap/ui/core/qunit/app/DesignMode_suppressedDeactivation.qunit.js +8 -4
- package/test/sap/ui/core/qunit/app/_createDesignModeTests_legacyAPIs.qunit.js +8 -4
- package/test/sap/ui/core/qunit/app/fixture/designmode/test01.controller.js +4 -4
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +3 -3
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +11 -0
- package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +30 -2
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +82 -19
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/App.view.xml +3 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Component.js +20 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Home.view.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/Other.view.xml +5 -0
- package/test/sap/ui/core/qunit/component/testdata/keepAlive/child3/manifest.json +54 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +4 -0
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +5 -6
- package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +43 -16
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +194 -180
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +15 -33
- package/test/sap/ui/core/qunit/mockserver/MockServer.qunit.js +936 -1014
- package/test/sap/ui/core/qunit/mockserver/testsuite.mockserver.qunit.js +2 -4
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +50 -1
- package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +18 -8
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +107 -49
- package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +7 -0
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +0 -3
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +143 -2
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +34 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +230 -39
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +57 -18
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +40 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1715 -106
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +88 -18
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +544 -50
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +175 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +50 -9
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +17 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +140 -27
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +12 -3
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +1 -2
- package/test/sap/ui/core/qunit/routing/fixture/placeholder/component/NavContainerOptOut/Component.js +1 -0
- package/test/sap/ui/core/qunit/rule/model/bindingPathSyntaxValidation.qunit.js +37 -0
- package/test/sap/ui/core/qunit/rule/model/{modelSupport.qunit.js → selectUsedInBoundAggregation.qunit.js} +86 -154
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +5 -2
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib12/themes/{sap_hcb → sap_horizon_hcb}/library.css +1 -1
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +18 -18
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +3 -3
- package/test/sap/ui/core/qunit/types/CompositeType.qunit.js +6 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +3 -6
- package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +1370 -1242
- package/test/sap/ui/core/qunit/types/Types.qunit.js +65 -0
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +0 -3
- package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +68 -3
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +2625 -1899
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +0 -102
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +0 -165
- package/test/sap/ui/core/relnotes/changes-1.121.json +0 -15
- package/test/sap/ui/core/relnotes/changes-1.122.json +80 -0
- package/test/sap/ui/core/visual/HyphenationPlayground.spec.js +5 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +0 -15
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +0 -21
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +0 -21
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +0 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +0 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +0 -42
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +0 -44
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +0 -39
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +0 -39
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +0 -41
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +0 -48
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +0 -52
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +0 -52
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +0 -54
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +0 -54
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/legacy-uilib_legacyAPIs/themes/{sap_hcb → sap_horizon_hcb}/library[legacy].css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib1/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib10/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib11/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib13/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib14/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib15/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib16/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib17/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib2/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib3/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/{sap_hcb → sap_horizon_hcb}/library-parameters.json +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib5/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib6/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib7/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib8/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
- /package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib9/themes/{sap_hcb → sap_horizon_hcb}/library.css +0 -0
|
@@ -12,6 +12,8 @@ sap.ui.define([
|
|
|
12
12
|
/*eslint camelcase: 0 */
|
|
13
13
|
"use strict";
|
|
14
14
|
|
|
15
|
+
const mustBeMocked = function () { throw new Error("Must be mocked"); };
|
|
16
|
+
|
|
15
17
|
//*********************************************************************************************
|
|
16
18
|
QUnit.module("sap.ui.model.odata.v4.lib._AggregationHelper", {
|
|
17
19
|
beforeEach : function () {
|
|
@@ -2358,4 +2360,177 @@ sap.ui.define([
|
|
|
2358
2360
|
assert.strictEqual(aSpliced.$stale, true);
|
|
2359
2361
|
assert.deepEqual(oElement, {"@$ui5._" : {spliced : []}}, "nothing else");
|
|
2360
2362
|
});
|
|
2363
|
+
|
|
2364
|
+
//*********************************************************************************************
|
|
2365
|
+
QUnit.test("getQueryOptionsForOutOfPlaceNodesData: below parent", function (assert) {
|
|
2366
|
+
const oOutOfPlace = {
|
|
2367
|
+
nodeFilters : ["~node2Filter~", "~node1Filter~", "~node3Filter~"],
|
|
2368
|
+
parentFilter : "~parentFilter~"
|
|
2369
|
+
};
|
|
2370
|
+
const sOutOfPlaceJSON = JSON.stringify(oOutOfPlace);
|
|
2371
|
+
const oAggregation = {
|
|
2372
|
+
expandTo : 99,
|
|
2373
|
+
hierarchyQualifier : "X",
|
|
2374
|
+
search : "~search~",
|
|
2375
|
+
$DrillState : "~$DrillState~",
|
|
2376
|
+
$ExpandLevels : "~$ExpandLevels~"
|
|
2377
|
+
};
|
|
2378
|
+
const sAggregationJSON = JSON.stringify(oAggregation);
|
|
2379
|
+
const mQueryOptions = {
|
|
2380
|
+
$$filterBeforeAggregate : "~filterBeforeAggregate~",
|
|
2381
|
+
$count : "~count~",
|
|
2382
|
+
$filter : "~filter~",
|
|
2383
|
+
$orderby : "~orderby~",
|
|
2384
|
+
custom : "~custom~"
|
|
2385
|
+
};
|
|
2386
|
+
const sQueryOptionsJSON = JSON.stringify(mQueryOptions);
|
|
2387
|
+
|
|
2388
|
+
this.mock(_AggregationHelper).expects("buildApply")
|
|
2389
|
+
.callsFake(function (oAggregation0, mQueryOptions0, iLevel) {
|
|
2390
|
+
assert.deepEqual(oAggregation0, {
|
|
2391
|
+
expandTo : 1,
|
|
2392
|
+
hierarchyQualifier : "X",
|
|
2393
|
+
$DrillState : "~$DrillState~"
|
|
2394
|
+
});
|
|
2395
|
+
assert.deepEqual(mQueryOptions0, {
|
|
2396
|
+
$$filterBeforeAggregate : "~parentFilter~",
|
|
2397
|
+
custom : "~custom~"
|
|
2398
|
+
});
|
|
2399
|
+
assert.strictEqual(iLevel, 1);
|
|
2400
|
+
|
|
2401
|
+
mQueryOptions0.$apply = "~apply~";
|
|
2402
|
+
mQueryOptions0.$select = ["~select~", "~$DrillState~"];
|
|
2403
|
+
return mQueryOptions0;
|
|
2404
|
+
});
|
|
2405
|
+
|
|
2406
|
+
// code under test
|
|
2407
|
+
const mResult = _AggregationHelper.getQueryOptionsForOutOfPlaceNodesData(oOutOfPlace,
|
|
2408
|
+
oAggregation, mQueryOptions);
|
|
2409
|
+
|
|
2410
|
+
assert.deepEqual(mResult, {
|
|
2411
|
+
$$filterBeforeAggregate : "~parentFilter~",
|
|
2412
|
+
$apply : "~apply~",
|
|
2413
|
+
$filter : "~node1Filter~ or ~node2Filter~ or ~node3Filter~",
|
|
2414
|
+
$select : ["~select~"],
|
|
2415
|
+
$top : 3,
|
|
2416
|
+
custom : "~custom~"
|
|
2417
|
+
});
|
|
2418
|
+
assert.strictEqual(JSON.stringify(oAggregation), sAggregationJSON, "unchanged");
|
|
2419
|
+
assert.strictEqual(JSON.stringify(oOutOfPlace), sOutOfPlaceJSON, "unchanged");
|
|
2420
|
+
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
2421
|
+
});
|
|
2422
|
+
|
|
2423
|
+
//*********************************************************************************************
|
|
2424
|
+
QUnit.test("getQueryOptionsForOutOfPlaceNodesData: root nodes", function (assert) {
|
|
2425
|
+
const oOutOfPlace = {
|
|
2426
|
+
nodeFilters : ["~node2Filter~", "~node1Filter~", "~node3Filter~"]
|
|
2427
|
+
};
|
|
2428
|
+
const sOutOfPlaceJSON = JSON.stringify(oOutOfPlace);
|
|
2429
|
+
const oAggregation = {
|
|
2430
|
+
expandTo : 99,
|
|
2431
|
+
hierarchyQualifier : "X",
|
|
2432
|
+
search : "~search~",
|
|
2433
|
+
$DrillState : "~$DrillState~",
|
|
2434
|
+
$ExpandLevels : "~$ExpandLevels~"
|
|
2435
|
+
};
|
|
2436
|
+
const sAggregationJSON = JSON.stringify(oAggregation);
|
|
2437
|
+
const mQueryOptions = {
|
|
2438
|
+
$count : "~count~",
|
|
2439
|
+
$filter : "~filter~",
|
|
2440
|
+
$orderby : "~orderby~",
|
|
2441
|
+
custom : "~custom~"
|
|
2442
|
+
};
|
|
2443
|
+
const sQueryOptionsJSON = JSON.stringify(mQueryOptions);
|
|
2444
|
+
|
|
2445
|
+
this.mock(_AggregationHelper).expects("buildApply")
|
|
2446
|
+
.callsFake(function (oAggregation0, mQueryOptions0, iLevel) {
|
|
2447
|
+
assert.deepEqual(oAggregation0, {
|
|
2448
|
+
expandTo : 1,
|
|
2449
|
+
hierarchyQualifier : "X",
|
|
2450
|
+
$DrillState : "~$DrillState~"
|
|
2451
|
+
});
|
|
2452
|
+
assert.deepEqual(mQueryOptions0, {custom : "~custom~"});
|
|
2453
|
+
assert.strictEqual(iLevel, 1);
|
|
2454
|
+
|
|
2455
|
+
mQueryOptions0.$apply = "~apply~";
|
|
2456
|
+
mQueryOptions0.$select = ["~select~"];
|
|
2457
|
+
return mQueryOptions0;
|
|
2458
|
+
});
|
|
2459
|
+
|
|
2460
|
+
// code under test
|
|
2461
|
+
const mResult = _AggregationHelper.getQueryOptionsForOutOfPlaceNodesData(oOutOfPlace,
|
|
2462
|
+
oAggregation, mQueryOptions);
|
|
2463
|
+
|
|
2464
|
+
assert.deepEqual(mResult, {
|
|
2465
|
+
$apply : "~apply~",
|
|
2466
|
+
$filter : "~node1Filter~ or ~node2Filter~ or ~node3Filter~",
|
|
2467
|
+
$select : ["~select~"],
|
|
2468
|
+
$top : 3,
|
|
2469
|
+
custom : "~custom~"
|
|
2470
|
+
});
|
|
2471
|
+
assert.strictEqual(JSON.stringify(oAggregation), sAggregationJSON, "unchanged");
|
|
2472
|
+
assert.strictEqual(JSON.stringify(oOutOfPlace), sOutOfPlaceJSON, "unchanged");
|
|
2473
|
+
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
2474
|
+
});
|
|
2475
|
+
|
|
2476
|
+
//*********************************************************************************************
|
|
2477
|
+
QUnit.test("getQueryOptionsForOutOfPlaceNodesRank", function (assert) {
|
|
2478
|
+
const aOutOfPlaceByParent = [{
|
|
2479
|
+
nodeFilters : ["~node2Filter~", "~node1Filter~"],
|
|
2480
|
+
parentFilter : "~parent1Filter~"
|
|
2481
|
+
}, {
|
|
2482
|
+
nodeFilters : ["~node4Filter~", "~node5Filter~"],
|
|
2483
|
+
parentFilter : "~node2Filter~"
|
|
2484
|
+
}, {
|
|
2485
|
+
nodeFilters : ["~node3Filter~"]
|
|
2486
|
+
}];
|
|
2487
|
+
const sOutOfPlaceByParentJSON = JSON.stringify(aOutOfPlaceByParent);
|
|
2488
|
+
const oAggregation = {
|
|
2489
|
+
$DistanceFromRoot : "~$DistanceFromRoot~",
|
|
2490
|
+
$DrillState : "~$DrillState~",
|
|
2491
|
+
$LimitedDescendantCount : "~$LimitedDescendantCount~",
|
|
2492
|
+
$LimitedRank : "~$LimitedRank~",
|
|
2493
|
+
$metaPath : "~$metaPath~",
|
|
2494
|
+
$fetchMetadata : mustBeMocked
|
|
2495
|
+
};
|
|
2496
|
+
const mQueryOptions = {
|
|
2497
|
+
$apply : "~apply~",
|
|
2498
|
+
$count : "~count~",
|
|
2499
|
+
$filter : "~filter~",
|
|
2500
|
+
$orderby : "~orderby~",
|
|
2501
|
+
$select : "~select~",
|
|
2502
|
+
custom : "~custom~"
|
|
2503
|
+
};
|
|
2504
|
+
const sQueryOptionsJSON = JSON.stringify(mQueryOptions);
|
|
2505
|
+
|
|
2506
|
+
this.mock(oAggregation).expects("$fetchMetadata").withExactArgs("~$metaPath~/")
|
|
2507
|
+
.returns(SyncPromise.resolve("~$metadata~"));
|
|
2508
|
+
this.mock(_Helper).expects("selectKeyProperties")
|
|
2509
|
+
.withExactArgs(sinon.match.object, "~$metadata~")
|
|
2510
|
+
.callsFake(function (mQueryOptions) {
|
|
2511
|
+
mQueryOptions.$select.push("~key~");
|
|
2512
|
+
});
|
|
2513
|
+
|
|
2514
|
+
// code under test
|
|
2515
|
+
const mResult = _AggregationHelper.getQueryOptionsForOutOfPlaceNodesRank(
|
|
2516
|
+
aOutOfPlaceByParent, oAggregation, mQueryOptions);
|
|
2517
|
+
|
|
2518
|
+
assert.deepEqual(mResult, {
|
|
2519
|
+
$apply : "~apply~",
|
|
2520
|
+
$filter : "~node1Filter~ or ~node2Filter~ or ~node3Filter~ or ~node4Filter~"
|
|
2521
|
+
+ " or ~node5Filter~ or ~parent1Filter~",
|
|
2522
|
+
$select : [
|
|
2523
|
+
"~$DistanceFromRoot~",
|
|
2524
|
+
"~$DrillState~",
|
|
2525
|
+
"~$LimitedDescendantCount~",
|
|
2526
|
+
"~$LimitedRank~",
|
|
2527
|
+
"~key~"
|
|
2528
|
+
],
|
|
2529
|
+
$top : 6,
|
|
2530
|
+
custom : "~custom~"
|
|
2531
|
+
});
|
|
2532
|
+
assert.strictEqual(
|
|
2533
|
+
JSON.stringify(aOutOfPlaceByParent), sOutOfPlaceByParentJSON, "unchanged");
|
|
2534
|
+
assert.strictEqual(JSON.stringify(mQueryOptions), sQueryOptionsJSON, "unchanged");
|
|
2535
|
+
});
|
|
2361
2536
|
});
|
|
@@ -4090,6 +4090,8 @@ sap.ui.define([
|
|
|
4090
4090
|
.exactly(bTransient ? 1 : 0)
|
|
4091
4091
|
.withExactArgs(sinon.match.same(oElement), "transientPredicate",
|
|
4092
4092
|
sTransientPredicate);
|
|
4093
|
+
this.mock(_Helper).expects("copySelected")
|
|
4094
|
+
.withExactArgs(sinon.match.same(oOldElement), sinon.match.same(oElement));
|
|
4093
4095
|
this.mock(_Helper).expects("restoreUpdatingProperties")
|
|
4094
4096
|
.withExactArgs(sinon.match.same(oOldElement), sinon.match.same(oElement));
|
|
4095
4097
|
this.mock(_Helper).expects("buildPath")
|
|
@@ -4118,14 +4120,24 @@ sap.ui.define([
|
|
|
4118
4120
|
});
|
|
4119
4121
|
|
|
4120
4122
|
//*********************************************************************************************
|
|
4121
|
-
|
|
4123
|
+
[false, true].forEach((bHasOldElement) => {
|
|
4124
|
+
const sTitle = "Cache#replaceElement for an element that has no index, bHasOldElement="
|
|
4125
|
+
+ bHasOldElement;
|
|
4126
|
+
QUnit.test(sTitle, function (assert) {
|
|
4122
4127
|
var oCache = new _Cache(this.oRequestor, "TEAMS"),
|
|
4123
4128
|
aElements = [{a : "doNotTouch"}],
|
|
4124
4129
|
oNewElement = {a : "4711", b : "0815"},
|
|
4125
|
-
oOldElement = {a : "0815"},
|
|
4130
|
+
oOldElement = bHasOldElement ? {a : "0815"} : undefined,
|
|
4126
4131
|
mTypeForMetaPath = {};
|
|
4127
4132
|
|
|
4128
|
-
|
|
4133
|
+
if (bHasOldElement) {
|
|
4134
|
+
aElements.$byPredicate = {doNotTouch : aElements[0], "('42')" : oOldElement};
|
|
4135
|
+
this.mock(_Helper).expects("copySelected")
|
|
4136
|
+
.withExactArgs(sinon.match.same(oOldElement), sinon.match.same(oNewElement));
|
|
4137
|
+
} else {
|
|
4138
|
+
aElements.$byPredicate = {doNotTouch : aElements[0]};
|
|
4139
|
+
this.mock(_Helper).expects("copySelected").never();
|
|
4140
|
+
}
|
|
4129
4141
|
|
|
4130
4142
|
this.mock(_Cache).expects("getElementIndex").never();
|
|
4131
4143
|
this.mock(_Helper).expects("restoreUpdatingProperties")
|
|
@@ -4145,6 +4157,7 @@ sap.ui.define([
|
|
|
4145
4157
|
assert.deepEqual(aElements.$byPredicate,
|
|
4146
4158
|
{doNotTouch : aElements[0], "('42')" : oNewElement});
|
|
4147
4159
|
});
|
|
4160
|
+
});
|
|
4148
4161
|
|
|
4149
4162
|
//*********************************************************************************************
|
|
4150
4163
|
[
|
|
@@ -4444,6 +4457,7 @@ sap.ui.define([
|
|
|
4444
4457
|
QUnit.test(sTitle, function (assert) {
|
|
4445
4458
|
var oCache = new _Cache(this.oRequestor, "TEAMS", {/*mQueryOptions*/}),
|
|
4446
4459
|
oCacheMock = this.mock(oCache),
|
|
4460
|
+
oCopySelectedExpectation,
|
|
4447
4461
|
fnDataRequested = this.spy(),
|
|
4448
4462
|
oElement = {"@$ui5._" : {predicate : "('13')"}},
|
|
4449
4463
|
aElements = [oElement],
|
|
@@ -4526,13 +4540,17 @@ sap.ui.define([
|
|
|
4526
4540
|
|
|
4527
4541
|
return Promise.resolve(oInCollectionResponse);
|
|
4528
4542
|
});
|
|
4543
|
+
oCopySelectedExpectation = this.mock(_Helper).expects("copySelected")
|
|
4544
|
+
.exactly(oFixture.inCollection ? 0 : 1)
|
|
4545
|
+
.withExactArgs(sinon.match.same(aElements.$byPredicate["('13')"]),
|
|
4546
|
+
sinon.match.same(oReadResponse.value[0]));
|
|
4547
|
+
oRemoveExpectation = oCacheMock.expects("removeElement")
|
|
4548
|
+
.exactly(oFixture.inCollection ? 0 : 1)
|
|
4549
|
+
.withExactArgs(0, "('13')", sinon.match.same(aElements), "~");
|
|
4529
4550
|
oReplaceExpectation = oCacheMock.expects("replaceElement")
|
|
4530
4551
|
.withExactArgs(sinon.match.same(aElements), oFixture.inCollection ? 0 : undefined,
|
|
4531
4552
|
"('13')", sinon.match.same(oReadResponse.value[0]),
|
|
4532
4553
|
sinon.match.same(mTypeForMetaPath), "~");
|
|
4533
|
-
oRemoveExpectation = oCacheMock.expects("removeElement")
|
|
4534
|
-
.exactly(oFixture.inCollection ? 0 : 1)
|
|
4535
|
-
.withExactArgs(0, "('13')", sinon.match.same(aElements), "~");
|
|
4536
4554
|
|
|
4537
4555
|
// code under test
|
|
4538
4556
|
return oCache.refreshSingleWithRemove(oGroupLock, "~", 0, "('13')", true,
|
|
@@ -4546,6 +4564,7 @@ sap.ui.define([
|
|
|
4546
4564
|
assert.strictEqual(mQueryOptionsForPathCopy.$apply, "apply");
|
|
4547
4565
|
assert.strictEqual(mQueryOptionsForPathCopy.$search, undefined);
|
|
4548
4566
|
if (!oFixture.inCollection) {
|
|
4567
|
+
assert.ok(oRemoveExpectation.calledAfter(oCopySelectedExpectation));
|
|
4549
4568
|
assert.ok(oReplaceExpectation.calledAfter(oRemoveExpectation));
|
|
4550
4569
|
sinon.assert.calledOnceWithExactly(fnOnRemove, true);
|
|
4551
4570
|
}
|
|
@@ -13233,7 +13252,8 @@ sap.ui.define([
|
|
|
13233
13252
|
|
|
13234
13253
|
oCacheMock.expects("hasPendingChangesForPath")
|
|
13235
13254
|
.exactly("key" in oElement || oElement.bChanges ? 1 : 0)
|
|
13236
|
-
.withExactArgs(sPredicate)
|
|
13255
|
+
.withExactArgs(sPredicate, "~bIgnorePendingChanges~")
|
|
13256
|
+
.returns(oElement.bChanges);
|
|
13237
13257
|
oHelperMock.expects("getKeyFilter").exactly("key" in oElement ? 1 : 0)
|
|
13238
13258
|
.withExactArgs(sinon.match.same(oElement), oCache.sMetaPath,
|
|
13239
13259
|
sinon.match.same(mTypes))
|
|
@@ -13293,7 +13313,8 @@ sap.ui.define([
|
|
|
13293
13313
|
});
|
|
13294
13314
|
|
|
13295
13315
|
// code under test
|
|
13296
|
-
return oCache.refreshKeptElements(oGroupLock, fnOnRemove, oFixture.bDropApply
|
|
13316
|
+
return oCache.refreshKeptElements(oGroupLock, fnOnRemove, oFixture.bDropApply,
|
|
13317
|
+
"~bIgnorePendingChanges~")
|
|
13297
13318
|
.then(function (oResult) {
|
|
13298
13319
|
var mByPredicateAfterRefresh = {},
|
|
13299
13320
|
iCallCount = 0;
|
|
@@ -13318,6 +13339,25 @@ sap.ui.define([
|
|
|
13318
13339
|
});
|
|
13319
13340
|
});
|
|
13320
13341
|
|
|
13342
|
+
//*********************************************************************************************
|
|
13343
|
+
QUnit.test("refreshKeptElements w/ deleteted element", function (assert) {
|
|
13344
|
+
const oCache = _Cache.create(this.oRequestor, "Employees", {});
|
|
13345
|
+
|
|
13346
|
+
oCache.aElements.$byPredicate["('Foo')"] = {
|
|
13347
|
+
"@$ui5.context.isDeleted" : true,
|
|
13348
|
+
"@$ui5._" : {predicate : "('Foo')"}
|
|
13349
|
+
};
|
|
13350
|
+
|
|
13351
|
+
this.mock(oCache).expects("hasPendingChangesForPath").never();
|
|
13352
|
+
this.mock(oCache).expects("checkSharedRequest").withExactArgs();
|
|
13353
|
+
this.mock(oCache).expects("getTypes").never();
|
|
13354
|
+
this.mock(oCache.oRequestor).expects("request").never();
|
|
13355
|
+
|
|
13356
|
+
// code under test
|
|
13357
|
+
assert.strictEqual(oCache.refreshKeptElements({/*GroupLock*/}, {/*fnOnRemove*/}),
|
|
13358
|
+
undefined);
|
|
13359
|
+
});
|
|
13360
|
+
|
|
13321
13361
|
//*********************************************************************************************
|
|
13322
13362
|
QUnit.test("refreshKeptElements w/o kept-alive element", function (assert) {
|
|
13323
13363
|
var oCache = _Cache.create(this.oRequestor, "Employees", {});
|
|
@@ -13327,7 +13367,8 @@ sap.ui.define([
|
|
|
13327
13367
|
this.mock(oCache.oRequestor).expects("request").never();
|
|
13328
13368
|
|
|
13329
13369
|
// code under test
|
|
13330
|
-
assert.
|
|
13370
|
+
assert.strictEqual(oCache.refreshKeptElements({/*GroupLock*/}, {/*fnOnRemove*/}),
|
|
13371
|
+
undefined);
|
|
13331
13372
|
});
|
|
13332
13373
|
|
|
13333
13374
|
//*********************************************************************************************
|
|
@@ -5414,6 +5414,23 @@ sap.ui.define([
|
|
|
5414
5414
|
assert.notOk("$postBodyCollection" in oCacheEntity.nested1);
|
|
5415
5415
|
});
|
|
5416
5416
|
|
|
5417
|
+
//*********************************************************************************************
|
|
5418
|
+
QUnit.test("copySelected", function (assert) {
|
|
5419
|
+
let oTarget = {"@$ui5.context.isSelected" : false};
|
|
5420
|
+
|
|
5421
|
+
// code under test
|
|
5422
|
+
_Helper.copySelected({foo : true, "@$ui5.context.isSelected" : true}, oTarget);
|
|
5423
|
+
|
|
5424
|
+
assert.deepEqual(oTarget, {"@$ui5.context.isSelected" : true});
|
|
5425
|
+
|
|
5426
|
+
oTarget = {};
|
|
5427
|
+
|
|
5428
|
+
// code under test
|
|
5429
|
+
_Helper.copySelected({foo : true, "@$ui5.context.isSelected" : false}, oTarget);
|
|
5430
|
+
|
|
5431
|
+
assert.deepEqual(oTarget, {});
|
|
5432
|
+
});
|
|
5433
|
+
|
|
5417
5434
|
//*********************************************************************************************
|
|
5418
5435
|
QUnit.test("makeUpdateData", function (assert) {
|
|
5419
5436
|
assert.deepEqual(_Helper.makeUpdateData(["Age"], 42), {Age : 42});
|
|
@@ -8,7 +8,7 @@ sap.ui.define([
|
|
|
8
8
|
], function (Log, _Helper, _TreeState) {
|
|
9
9
|
"use strict";
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const mustBeMocked = function () { throw new Error("Must be mocked"); };
|
|
12
12
|
|
|
13
13
|
//*********************************************************************************************
|
|
14
14
|
QUnit.module("sap.ui.model.odata.v4.lib._TreeState", {
|
|
@@ -22,80 +22,85 @@ sap.ui.define([
|
|
|
22
22
|
//*********************************************************************************************
|
|
23
23
|
QUnit.test("constructor", function (assert) {
|
|
24
24
|
// code under test
|
|
25
|
-
const oTreeState = new _TreeState("~sNodeProperty~");
|
|
25
|
+
const oTreeState = new _TreeState("~sNodeProperty~", "~fnGetKeyFilter~");
|
|
26
26
|
|
|
27
27
|
assert.ok(oTreeState instanceof _TreeState);
|
|
28
28
|
assert.strictEqual(oTreeState.sNodeProperty, "~sNodeProperty~");
|
|
29
|
-
assert.
|
|
30
|
-
assert.deepEqual(
|
|
29
|
+
assert.strictEqual(oTreeState.fnGetKeyFilter, "~fnGetKeyFilter~");
|
|
30
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {});
|
|
31
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), []);
|
|
32
|
+
assert.deepEqual(oTreeState.getOutOfPlaceCount(), 0);
|
|
31
33
|
});
|
|
32
34
|
|
|
33
35
|
//*********************************************************************************************
|
|
34
36
|
QUnit.test("expand/collapse", function (assert) {
|
|
35
37
|
const oTreeState = new _TreeState("~sNodeProperty~");
|
|
36
38
|
|
|
37
|
-
this.mock(_Helper).expects("
|
|
39
|
+
this.mock(_Helper).expects("getPrivateAnnotation").thrice()
|
|
40
|
+
.withExactArgs("~oNode~", "predicate").returns("~predicate~");
|
|
41
|
+
this.mock(_Helper).expects("drillDown").twice()
|
|
38
42
|
.withExactArgs("~oNode~", "~sNodeProperty~")
|
|
39
43
|
.returns("~sNodeId~");
|
|
40
44
|
|
|
41
45
|
// code under test
|
|
42
46
|
oTreeState.expand("~oNode~");
|
|
43
47
|
|
|
44
|
-
assert.deepEqual(
|
|
45
|
-
|
|
48
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels,
|
|
49
|
+
{"~predicate~" : {NodeID : "~sNodeId~", Levels : 1}});
|
|
46
50
|
|
|
47
51
|
// code under test
|
|
48
52
|
oTreeState.expand("~oNode~");
|
|
49
53
|
|
|
50
|
-
assert.deepEqual(
|
|
51
|
-
|
|
54
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels,
|
|
55
|
+
{"~predicate~" : {NodeID : "~sNodeId~", Levels : 1}});
|
|
52
56
|
|
|
53
57
|
// code under test
|
|
54
58
|
oTreeState.collapse("~oNode~");
|
|
55
59
|
|
|
56
|
-
assert.deepEqual(
|
|
60
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {});
|
|
57
61
|
});
|
|
58
62
|
|
|
59
63
|
//*********************************************************************************************
|
|
60
64
|
QUnit.test("collapse/expand", function (assert) {
|
|
61
65
|
const oTreeState = new _TreeState("~sNodeProperty~");
|
|
62
66
|
|
|
63
|
-
this.mock(_Helper).expects("
|
|
67
|
+
this.mock(_Helper).expects("getPrivateAnnotation").thrice()
|
|
68
|
+
.withExactArgs("~oNode~", "predicate").returns("~predicate~");
|
|
69
|
+
this.mock(_Helper).expects("drillDown").twice()
|
|
64
70
|
.withExactArgs("~oNode~", "~sNodeProperty~")
|
|
65
71
|
.returns("~sNodeId~");
|
|
66
72
|
|
|
67
73
|
// code under test
|
|
68
74
|
oTreeState.collapse("~oNode~");
|
|
69
75
|
|
|
70
|
-
assert.deepEqual(
|
|
71
|
-
|
|
76
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels,
|
|
77
|
+
{"~predicate~" : {NodeID : "~sNodeId~", Levels : 0}});
|
|
72
78
|
|
|
73
79
|
// code under test
|
|
74
80
|
oTreeState.collapse("~oNode~");
|
|
75
81
|
|
|
76
|
-
assert.deepEqual(
|
|
77
|
-
|
|
82
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels,
|
|
83
|
+
{"~predicate~" : {NodeID : "~sNodeId~", Levels : 0}});
|
|
78
84
|
|
|
79
85
|
// code under test
|
|
80
86
|
oTreeState.expand("~oNode~");
|
|
81
87
|
|
|
82
|
-
assert.deepEqual(
|
|
88
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {});
|
|
83
89
|
});
|
|
84
90
|
|
|
85
91
|
//*********************************************************************************************
|
|
86
92
|
QUnit.test("delete", function (assert) {
|
|
87
93
|
const oTreeState = new _TreeState("~sNodeProperty~");
|
|
88
94
|
|
|
89
|
-
oTreeState.
|
|
90
|
-
oTreeState.
|
|
91
|
-
this.mock(_Helper).expects("
|
|
92
|
-
.withExactArgs("~oNode~", "~
|
|
93
|
-
.returns("~sNodeId~");
|
|
95
|
+
oTreeState.mPredicate2ExpandLevels["foo"] = "bar";
|
|
96
|
+
oTreeState.mPredicate2ExpandLevels["~predicate~"] = "~";
|
|
97
|
+
this.mock(_Helper).expects("getPrivateAnnotation")
|
|
98
|
+
.withExactArgs("~oNode~", "predicate").returns("~predicate~");
|
|
94
99
|
|
|
95
100
|
// code under test
|
|
96
101
|
oTreeState.delete("~oNode~");
|
|
97
102
|
|
|
98
|
-
assert.deepEqual(
|
|
103
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {foo : "bar"});
|
|
99
104
|
});
|
|
100
105
|
|
|
101
106
|
//*********************************************************************************************
|
|
@@ -103,25 +108,26 @@ sap.ui.define([
|
|
|
103
108
|
QUnit.test(sMethod + ": no sNodeProperty", function (assert) {
|
|
104
109
|
const oTreeState = new _TreeState();
|
|
105
110
|
|
|
106
|
-
oTreeState.
|
|
111
|
+
oTreeState.mPredicate2ExpandLevels["foo"] = "bar";
|
|
107
112
|
this.mock(_Helper).expects("drillDown").never();
|
|
108
113
|
|
|
109
114
|
// code under test
|
|
110
115
|
oTreeState[sMethod]("~oNode~");
|
|
111
116
|
|
|
112
|
-
assert.deepEqual(
|
|
117
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {foo : "bar"});
|
|
113
118
|
});
|
|
114
119
|
});
|
|
115
120
|
|
|
116
121
|
//*********************************************************************************************
|
|
117
122
|
QUnit.test("getExpandLevels/reset", function (assert) {
|
|
118
123
|
const oTreeState = new _TreeState("~sNodeProperty~");
|
|
124
|
+
oTreeState.oOutOfPlace = "~oOutOfPlace~";
|
|
119
125
|
|
|
120
126
|
// code under test
|
|
121
127
|
assert.strictEqual(oTreeState.getExpandLevels(), undefined);
|
|
122
128
|
|
|
123
|
-
oTreeState.
|
|
124
|
-
oTreeState.
|
|
129
|
+
oTreeState.mPredicate2ExpandLevels["foo"] = {bar : 42};
|
|
130
|
+
oTreeState.mPredicate2ExpandLevels["baz"] = {qux : 23};
|
|
125
131
|
|
|
126
132
|
// code under test
|
|
127
133
|
assert.strictEqual(oTreeState.getExpandLevels(), '[{"bar":42},{"qux":23}]');
|
|
@@ -129,6 +135,113 @@ sap.ui.define([
|
|
|
129
135
|
// code under test
|
|
130
136
|
oTreeState.reset();
|
|
131
137
|
|
|
132
|
-
assert.deepEqual(
|
|
138
|
+
assert.deepEqual(oTreeState.mPredicate2ExpandLevels, {});
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
//*********************************************************************************************
|
|
142
|
+
QUnit.test("out of place", function (assert) {
|
|
143
|
+
const fnGetKeyFilter = mustBeMocked;
|
|
144
|
+
const oTreeState = new _TreeState("~sNodeProperty~", fnGetKeyFilter);
|
|
145
|
+
|
|
146
|
+
// code under test
|
|
147
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), []);
|
|
148
|
+
|
|
149
|
+
const oHelperMock = this.mock(_Helper);
|
|
150
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oParent1~", "predicate")
|
|
151
|
+
.returns("~parent1Predicate~");
|
|
152
|
+
const oTreeStateMock = this.mock(oTreeState);
|
|
153
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oParent1~")
|
|
154
|
+
.returns("~parent1Filter~");
|
|
155
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oNode1~").returns("~node1Filter~");
|
|
156
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oNode1~", "predicate")
|
|
157
|
+
.returns("~node1Predicate~");
|
|
158
|
+
|
|
159
|
+
// code under test
|
|
160
|
+
oTreeState.setOutOfPlace("~oNode1~", "~oParent1~");
|
|
161
|
+
|
|
162
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), [{
|
|
163
|
+
nodeFilters : ["~node1Filter~"],
|
|
164
|
+
nodePredicates : ["~node1Predicate~"],
|
|
165
|
+
parentFilter : "~parent1Filter~",
|
|
166
|
+
parentPredicate : "~parent1Predicate~"
|
|
167
|
+
}]);
|
|
168
|
+
assert.strictEqual(oTreeState.getOutOfPlaceCount(), 1);
|
|
169
|
+
|
|
170
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oParent2~", "predicate")
|
|
171
|
+
.returns("~parent2Predicate~");
|
|
172
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oParent2~")
|
|
173
|
+
.returns("~parent2Filter~");
|
|
174
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oNode3~").returns("~node3Filter~");
|
|
175
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oNode3~", "predicate")
|
|
176
|
+
.returns("~node3Predicate~");
|
|
177
|
+
|
|
178
|
+
// code under test
|
|
179
|
+
oTreeState.setOutOfPlace("~oNode3~", "~oParent2~");
|
|
180
|
+
|
|
181
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), [{
|
|
182
|
+
nodeFilters : ["~node1Filter~"],
|
|
183
|
+
nodePredicates : ["~node1Predicate~"],
|
|
184
|
+
parentFilter : "~parent1Filter~",
|
|
185
|
+
parentPredicate : "~parent1Predicate~"
|
|
186
|
+
}, {
|
|
187
|
+
nodeFilters : ["~node3Filter~"],
|
|
188
|
+
nodePredicates : ["~node3Predicate~"],
|
|
189
|
+
parentFilter : "~parent2Filter~",
|
|
190
|
+
parentPredicate : "~parent2Predicate~"
|
|
191
|
+
}]);
|
|
192
|
+
assert.strictEqual(oTreeState.getOutOfPlaceCount(), 2);
|
|
193
|
+
|
|
194
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oParent1~", "predicate")
|
|
195
|
+
.returns("~parent1Predicate~");
|
|
196
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oNode2~").returns("~node2Filter~");
|
|
197
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oNode2~", "predicate")
|
|
198
|
+
.returns("~node2Predicate~");
|
|
199
|
+
|
|
200
|
+
// code under test
|
|
201
|
+
oTreeState.setOutOfPlace("~oNode2~", "~oParent1~");
|
|
202
|
+
|
|
203
|
+
// code under test
|
|
204
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), [{
|
|
205
|
+
nodeFilters : ["~node1Filter~", "~node2Filter~"],
|
|
206
|
+
nodePredicates : ["~node1Predicate~", "~node2Predicate~"],
|
|
207
|
+
parentFilter : "~parent1Filter~",
|
|
208
|
+
parentPredicate : "~parent1Predicate~"
|
|
209
|
+
}, {
|
|
210
|
+
nodeFilters : ["~node3Filter~"],
|
|
211
|
+
nodePredicates : ["~node3Predicate~"],
|
|
212
|
+
parentFilter : "~parent2Filter~",
|
|
213
|
+
parentPredicate : "~parent2Predicate~"
|
|
214
|
+
}]);
|
|
215
|
+
assert.strictEqual(oTreeState.getOutOfPlaceCount(), 3);
|
|
216
|
+
|
|
217
|
+
oTreeStateMock.expects("fnGetKeyFilter").withExactArgs("~oNode4~").returns("~node4Filter~");
|
|
218
|
+
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oNode4~", "predicate")
|
|
219
|
+
.returns("~node4Predicate~");
|
|
220
|
+
|
|
221
|
+
// code under test
|
|
222
|
+
oTreeState.setOutOfPlace("~oNode4~");
|
|
223
|
+
|
|
224
|
+
// code under test
|
|
225
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), [{
|
|
226
|
+
nodeFilters : ["~node1Filter~", "~node2Filter~"],
|
|
227
|
+
nodePredicates : ["~node1Predicate~", "~node2Predicate~"],
|
|
228
|
+
parentFilter : "~parent1Filter~",
|
|
229
|
+
parentPredicate : "~parent1Predicate~"
|
|
230
|
+
}, {
|
|
231
|
+
nodeFilters : ["~node3Filter~"],
|
|
232
|
+
nodePredicates : ["~node3Predicate~"],
|
|
233
|
+
parentFilter : "~parent2Filter~",
|
|
234
|
+
parentPredicate : "~parent2Predicate~"
|
|
235
|
+
}, {
|
|
236
|
+
nodeFilters : ["~node4Filter~"],
|
|
237
|
+
nodePredicates : ["~node4Predicate~"]
|
|
238
|
+
}]);
|
|
239
|
+
|
|
240
|
+
// code under test
|
|
241
|
+
oTreeState.reset();
|
|
242
|
+
|
|
243
|
+
// code under test
|
|
244
|
+
assert.deepEqual(oTreeState.getOutOfPlaceGroupedByParent(), []);
|
|
245
|
+
assert.strictEqual(oTreeState.getOutOfPlaceCount(), 0);
|
|
133
246
|
});
|
|
134
247
|
});
|
|
@@ -349,13 +349,15 @@ sap.ui.define([
|
|
|
349
349
|
beforeEach: function () {
|
|
350
350
|
this.clock = sinon.useFakeTimers();
|
|
351
351
|
this.fnWaitAsyncSpy = sinon.spy(_autoWaiterAsync, "waitAsync");
|
|
352
|
-
this.
|
|
352
|
+
this.fnConfigAsyncWaiterSpy = sinon.spy(_autoWaiterAsync, "extendConfig");
|
|
353
|
+
this.fnConfigWaiterSpy = sinon.spy(_autoWaiter, "extendConfig");
|
|
353
354
|
this.fnHasToWaitStub = sinon.stub(_autoWaiter, "hasToWait");
|
|
354
355
|
},
|
|
355
356
|
afterEach: function () {
|
|
356
357
|
this.clock.restore();
|
|
357
358
|
this.fnWaitAsyncSpy.restore();
|
|
358
|
-
this.
|
|
359
|
+
this.fnConfigAsyncWaiterSpy.restore();
|
|
360
|
+
this.fnConfigWaiterSpy.restore();
|
|
359
361
|
this.fnHasToWaitStub.restore();
|
|
360
362
|
}
|
|
361
363
|
});
|
|
@@ -367,7 +369,7 @@ sap.ui.define([
|
|
|
367
369
|
RecordReplay.waitForUI5({timeout: 10000, interval: 100}).then(function () {
|
|
368
370
|
assert.ok(this.fnHasToWaitStub.called, "Should call autoWaiter");
|
|
369
371
|
assert.ok(!_autoWaiter.hasToWait(), "Should wait for processing to end");
|
|
370
|
-
assert.ok(this.
|
|
372
|
+
assert.ok(this.fnConfigAsyncWaiterSpy.calledOnce, "Should configure polling parameters");
|
|
371
373
|
assert.ok(this.fnWaitAsyncSpy.calledOnce, "Should poll for autoWaiter conditions to be met");
|
|
372
374
|
}.bind(this)).catch(function (error) {
|
|
373
375
|
assert.ok(false, "Should not reach here" + error);
|
|
@@ -393,4 +395,11 @@ sap.ui.define([
|
|
|
393
395
|
|
|
394
396
|
this.clock.tick(200);
|
|
395
397
|
});
|
|
398
|
+
|
|
399
|
+
QUnit.test("Should apply default values when parameters values ommited", function (assert) {
|
|
400
|
+
RecordReplay.waitForUI5({timeout: 10000, interval: 100});
|
|
401
|
+
assert.ok(this.fnConfigWaiterSpy.calledWithMatch({timeout: 10000, interval: 100}), "the custom values are applied");
|
|
402
|
+
RecordReplay.waitForUI5().catch(function() {}); // ignore error for calling waitForUI5 twice sychronously
|
|
403
|
+
assert.ok(this.fnConfigWaiterSpy.calledWithMatch({timeout: 15000, interval: 400}), "the default values are applied");
|
|
404
|
+
});
|
|
396
405
|
});
|
|
@@ -4,12 +4,11 @@ sap.ui.define([
|
|
|
4
4
|
"sap/base/i18n/ResourceBundle",
|
|
5
5
|
"sap/ui/Device",
|
|
6
6
|
"sap/ui/base/SyncPromise",
|
|
7
|
-
"sap/ui/core/Core",
|
|
8
7
|
"sap/ui/core/Supportability",
|
|
9
8
|
"sap/ui/model/BindingMode",
|
|
10
9
|
"sap/ui/model/resource/ResourceModel",
|
|
11
10
|
"sap/ui/testlib/TestButton"
|
|
12
|
-
], function(Log, Localization, ResourceBundle, Device, SyncPromise,
|
|
11
|
+
], function(Log, Localization, ResourceBundle, Device, SyncPromise, Supportability, BindingMode,
|
|
13
12
|
ResourceModel, TestButton) {
|
|
14
13
|
/*global sinon, QUnit*/
|
|
15
14
|
/*eslint no-new: 0 */
|