@openui5/sap.ui.core 1.122.0 → 1.123.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/.dtsgenrc +7 -1
- package/.eslintrc.json +3 -0
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -17
- 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/future.js +3 -1
- package/src/sap/base/i18n/Formatting.js +119 -94
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +7 -4
- package/src/sap/ui/base/BindingInfo.js +22 -0
- 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 +5 -14
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +15 -14
- 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 +17 -16
- 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 +53 -18
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +58 -21
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +6 -2
- package/src/sap/ui/core/Fragment.js +10 -5
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/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 +37 -21
- 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 +7 -1
- package/src/sap/ui/core/Renderer.js +4 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +2 -2
- 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 +37 -47
- 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/XMLTemplateProcessor.js +12 -0
- package/src/sap/ui/core/_IconRegistry.js +1 -0
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
- 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/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/NumberFormat.js +28 -3
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +6 -2
- 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/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 +12 -7
- 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/rules/CoreHelper.support.js +2 -3
- package/src/sap/ui/core/rules/Misc.support.js +3 -12
- package/src/sap/ui/core/rules/Theming.support.js +5 -9
- 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 -20
- 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/.theming +3 -1
- 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/theming/Parameters.js +5 -1
- 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 +2 -2
- package/src/sap/ui/core/util/ExportCell.js +2 -2
- package/src/sap/ui/core/util/ExportColumn.js +2 -2
- package/src/sap/ui/core/util/ExportRow.js +2 -2
- package/src/sap/ui/core/util/ExportType.js +2 -2
- package/src/sap/ui/core/util/ExportTypeCSV.js +2 -2
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +8 -13
- 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/dom/jquery/Aria.js +19 -0
- package/src/sap/ui/events/jquery/EventExtension.js +4 -3
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +4 -4
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +22 -33
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalVersionInfo.js +1 -1
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +7 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +11 -8
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataExpressionAddons.js +21 -0
- 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 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +17 -48
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/AnnotationHelper.js +2 -0
- package/src/sap/ui/model/odata/v4/Context.js +66 -22
- package/src/sap/ui/model/odata/v4/ODataBinding.js +10 -11
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +207 -180
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +75 -52
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +9 -11
- package/src/sap/ui/model/odata/v4/ODataModel.js +34 -35
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -9
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +20 -8
- package/src/sap/ui/model/odata/v4/SubmitMode.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +126 -46
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +56 -11
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +21 -34
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +16 -27
- package/src/sap/ui/model/odata/v4/lib/_MetadataConverter.js +2 -6
- package/src/sap/ui/model/odata/v4/lib/_MinMaxHelper.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +6 -5
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +49 -38
- package/src/sap/ui/model/odata/v4/lib/_TreeState.js +75 -24
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +3 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +4 -12
- package/src/sap/ui/model/odata/v4/lib/_V4MetadataConverter.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 +48 -4
- 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 +5 -4
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +4 -1
- package/src/sap/ui/test/ModuleTracking.js +46 -0
- package/src/sap/ui/test/OpaBuilder.js +19 -19
- package/src/sap/ui/test/autowaiter/_jsAnimationWaiter.js +39 -6
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/sap/ui/util/_enforceNoReturnValue.js +3 -1
- package/src/ui5loader-autoconfig.js +22 -16
- package/src/ui5loader.js +38 -1
- package/test/sap/ui/core/demokit/docuindex.json +17 -6
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/Controller.controller.js +30 -47
- package/test/sap/ui/core/demokit/sample/Messaging/BasicMessages/MessagePopover.fragment.xml +13 -0
- package/test/sap/ui/core/demokit/sample/Messaging/BasicMessages/View.view.xml +135 -0
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicMessages/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/Controller.controller.js +58 -0
- package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/MessagePopover.fragment.xml +13 -0
- package/test/sap/ui/core/demokit/sample/Messaging/BasicODataMessages/View.view.xml +57 -0
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/mockserver.js +11 -13
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/manifest.json +2 -2
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/manifest.json +2 -1
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/package.json +1 -1
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/Component.js +2 -2
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/App.controller.js +12 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/BaseController.js +41 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +54 -0
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/controller/NotFound.controller.js +9 -11
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/fragment/MessagePopover.fragment.xml +13 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/i18n/i18n.properties +9 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/index.html +20 -0
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/index.js +16 -0
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockserver.js +27 -27
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/manifest.json +7 -4
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/view/App.view.xml +1 -1
- package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/view/Employee.view.xml +6 -6
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/webapp/view/NotFound.view.xml +13 -0
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Types.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/common/Helper.js +8 -9
- package/test/sap/ui/core/demokit/sample/common/SandboxModelHelper.js +1 -1
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/GherkinTestRunner.html +2 -2
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/GherkinTestRunner.html +2 -2
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/GherkinTestRunner.html +2 -2
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithQUnit/Steps.js +4 -5
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithUIComponent/GherkinTestRunner.html +2 -2
- 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/v2/AutoExpand/AutoExpand.view.xml +1 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ObjectPage.controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/MIT.ListBinding.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.controller.js +5 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Main.view.xml +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/MIT.ListBindingTemplate.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +6 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/ObjectPage.controller.js +5 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/MIT.Products.html +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/pages/Main.js +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +27 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/MIT.SalesOrderTP100.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/MIT.SalesOrderTP100.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.Basics.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderAdditionalTargets.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreate.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreateMultiple.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderCreateRelative.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/MIT.SalesOrderMessageHandling.html +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +5 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.view.xml +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +7 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/MessageHandling.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/MIT.RTA.html +2 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/MIT.SalesOrdersTemplate.html +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/MIT.Sticky.html +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Main.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/pages/Main.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.view.xml +1 -1
- package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +12 -3
- package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +33 -38
- package/test/sap/ui/core/qunit/CustomThemeFallback_unavoidablySync.qunit.js +119 -0
- package/test/sap/ui/core/qunit/EventBus.qunit.js +15 -0
- package/test/sap/ui/core/qunit/Lib_terminologies.qunit.js +109 -0
- package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +19 -0
- package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.view.xml +27 -0
- package/test/sap/ui/core/qunit/app/ThemeClassParameters.qunit.js +105 -140
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +75 -2
- package/test/sap/ui/core/qunit/base/Config.qunit.js +6 -2
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +4 -1
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +6 -2
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +6 -3
- package/test/sap/ui/core/qunit/base/Config_global.qunit.html +5 -2
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +5 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +5 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +5 -1
- package/test/sap/ui/core/qunit/base/Config_url.qunit.html +5 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery-without-jquery-ui-position.qunit.html +2 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery.qunit.html +2 -1
- package/test/sap/ui/core/qunit/bootstrap/DebugMode.beforeBootstrap.qunit.js +7 -0
- package/test/sap/ui/core/qunit/bootstrap/DebugModeAsync.qunit.html +10 -4
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +7 -0
- package/test/sap/ui/core/qunit/component/Component_keepAlive.qunit.js +9 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.html +2 -2
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.html +2 -2
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.html +2 -2
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +2 -2
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +2 -2
- package/test/sap/ui/core/qunit/gherkin/testHarnessTests.js +1 -1
- package/test/sap/ui/core/qunit/i18n/GenericLocaleData.qunit.js +1 -1
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +15 -15
- package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +7 -1
- package/test/sap/ui/core/qunit/loader/config.qunit.js +14 -6
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +288 -0
- package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +12 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +7 -2
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +223 -40
- package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBinding.qunit.js +78 -7
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +142 -17
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +93 -87
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +116 -86
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1828 -548
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +26 -23
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +9 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +251 -113
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +50 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +31 -11
- package/test/sap/ui/core/qunit/odata/v4/lib/_Parser.qunit.js +8 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +46 -31
- package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +144 -45
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/v4/lib/data/v2/QM_INSP_PLAN_SRV/metadata.xml +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/data/v2/QM_INSP_PLAN_SRV/metadata_only.xml +3 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +82 -0
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/i18n/i18n_fr.properties +1 -0
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/i18n/terminologies/oil/i18n_fr.properties +2 -0
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/simple/library-preload.js +2 -2
- package/test/sap/ui/core/qunit/testdata/uilib-custom-theme-fallback/themes/sap_hcb/library.css +3 -0
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +19 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +14 -0
- package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +37 -20
- package/test/sap/ui/core/qunit/types/NumberFormatCurrencies.qunit.js +21 -0
- package/test/sap/ui/core/qunit/types/Types.qunit.js +126 -15
- package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +58 -4
- package/test/sap/ui/core/relnotes/changes-1.122.json +0 -22
- package/test/sap/ui/core/relnotes/changes-1.123.json +47 -0
- package/test/sap/ui/core/samples/databinding/DataBindingDeclarativeSyntax.js +55 -56
- package/test/sap/ui/core/samples/databinding/DatabindingDeclarativeSyntax.html +4 -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/testsuite/js/testfwk.js +47 -64
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/MessagePopover.fragment.xml +0 -13
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/View.view.xml +0 -136
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +0 -74
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/MessagePopover.fragment.xml +0 -13
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/View.view.xml +0 -58
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +0 -11
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/App.controller.js +0 -14
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/BaseController.js +0 -55
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +0 -56
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/fragment/MessagePopover.fragment.xml +0 -13
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/i18n/i18n.properties +0 -5
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +0 -42
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/view/NotFound.view.xml +0 -11
- package/test/sap/ui/core/qunit/app/beforeBootstrap.js +0 -19
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.html +0 -24
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/metadata.xml +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/mockdata/Employees.json +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/BasicODataMessages/localService/response/ODataErrorResponse.json +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/metadata.xml +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockdata/Employees.json +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/mockdata/Employees_3.json +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/response/ODataErrorResponseTemplate.json +0 -0
- /package/test/sap/ui/core/demokit/sample/{MessageManager → Messaging}/ODataBackendMessagesComp/webapp/localService/response/SAP-Message-Header.json +0 -0
|
@@ -729,16 +729,19 @@ sap.ui.define([
|
|
|
729
729
|
assert.strictEqual(
|
|
730
730
|
oCache.calculateKeyPredicate("~oElement~", "~mTypeForMetaPath~", "~metapath~"),
|
|
731
731
|
"~sPredicate~");
|
|
732
|
+
|
|
733
|
+
if (oPICT.oParentGroupNode) {
|
|
734
|
+
assert.strictEqual(oCache.$parentFilter, "~filter~");
|
|
735
|
+
} else {
|
|
736
|
+
assert.notOk("$parentFilter" in oCache);
|
|
737
|
+
}
|
|
732
738
|
});
|
|
733
739
|
});
|
|
734
740
|
|
|
735
741
|
//*********************************************************************************************
|
|
736
742
|
[undefined, {}].forEach(function (oParentGroupNode, i) {
|
|
737
743
|
QUnit.test("createGroupLevelCache: recursive hierarchy, #" + i, function (assert) {
|
|
738
|
-
var oAggregation = {
|
|
739
|
-
hierarchyQualifier : "X",
|
|
740
|
-
$metaPath : "/meta/path"
|
|
741
|
-
},
|
|
744
|
+
var oAggregation = {hierarchyQualifier : "X"},
|
|
742
745
|
oCache = {},
|
|
743
746
|
mCacheQueryOptions = {},
|
|
744
747
|
iLevel = oParentGroupNode ? 3 : 1,
|
|
@@ -756,7 +759,7 @@ sap.ui.define([
|
|
|
756
759
|
.withExactArgs(sinon.match.same(oParentGroupNode), "filter").returns(undefined);
|
|
757
760
|
this.mock(oAggregationCache).expects("getTypes").withExactArgs().returns("~getTypes~");
|
|
758
761
|
this.mock(_Helper).expects("getKeyFilter")
|
|
759
|
-
.withExactArgs(sinon.match.same(oParentGroupNode), "/
|
|
762
|
+
.withExactArgs(sinon.match.same(oParentGroupNode), "/Foo", "~getTypes~")
|
|
760
763
|
.returns("~filter~");
|
|
761
764
|
}
|
|
762
765
|
this.mock(_AggregationHelper).expects("getAllProperties").never();
|
|
@@ -794,6 +797,12 @@ sap.ui.define([
|
|
|
794
797
|
assert.strictEqual(
|
|
795
798
|
oCache.calculateKeyPredicate("~oElement~", "~mTypeForMetaPath~", "~metapath~"),
|
|
796
799
|
"~sPredicate~");
|
|
800
|
+
|
|
801
|
+
if (oParentGroupNode) {
|
|
802
|
+
assert.strictEqual(oCache.$parentFilter, "~filter~");
|
|
803
|
+
} else {
|
|
804
|
+
assert.notOk("$parentFilter" in oCache);
|
|
805
|
+
}
|
|
797
806
|
});
|
|
798
807
|
});
|
|
799
808
|
|
|
@@ -1066,7 +1075,6 @@ sap.ui.define([
|
|
|
1066
1075
|
$DistanceFromRoot : "DistFromRoot",
|
|
1067
1076
|
$DrillState : "myDrillState",
|
|
1068
1077
|
$LimitedDescendantCount : "LtdDescendant_Count",
|
|
1069
|
-
$metaPath : "~metaPath~",
|
|
1070
1078
|
$NodeProperty : "NodeID",
|
|
1071
1079
|
$path : "/path",
|
|
1072
1080
|
aggregate : {},
|
|
@@ -1087,7 +1095,7 @@ sap.ui.define([
|
|
|
1087
1095
|
oCache.aElements[25] = {"@$ui5.node.level" : 5};
|
|
1088
1096
|
oCache.aElements[26] = {"@$ui5.node.level" : 3};
|
|
1089
1097
|
const oHelperMock = this.mock(_Helper);
|
|
1090
|
-
oHelperMock.expects("getKeyFilter").withExactArgs(oNode, "
|
|
1098
|
+
oHelperMock.expects("getKeyFilter").withExactArgs(oNode, "/Foo", "~Types~")
|
|
1091
1099
|
.returns("~Key~");
|
|
1092
1100
|
this.mock(this.oRequestor).expects("buildQueryString")
|
|
1093
1101
|
.withExactArgs(null, {$apply : "ancestors($root/path,X,NodeID,filter(~Key~),1)"})
|
|
@@ -1139,7 +1147,7 @@ sap.ui.define([
|
|
|
1139
1147
|
"LtdDescendant_Count"], "~GroupLock~", true)
|
|
1140
1148
|
.resolves();
|
|
1141
1149
|
oNodePropertyExpectation = oCacheMock.expects("requestNodeProperty")
|
|
1142
|
-
.withExactArgs("~Parent~", "~GroupLock~")
|
|
1150
|
+
.withExactArgs("~Parent~", "~GroupLock~", false)
|
|
1143
1151
|
.resolves();
|
|
1144
1152
|
|
|
1145
1153
|
return {value : ["~Parent~"]};
|
|
@@ -1173,7 +1181,6 @@ sap.ui.define([
|
|
|
1173
1181
|
$DistanceFromRoot : "DistFromRoot",
|
|
1174
1182
|
$DrillState : "myDrillState",
|
|
1175
1183
|
$LimitedDescendantCount : "LtdDescendant_Count",
|
|
1176
|
-
$metaPath : "~metaPath~",
|
|
1177
1184
|
$NodeProperty : "NodeID",
|
|
1178
1185
|
$path : "/path",
|
|
1179
1186
|
aggregate : {},
|
|
@@ -1188,7 +1195,7 @@ sap.ui.define([
|
|
|
1188
1195
|
const oNode = {};
|
|
1189
1196
|
oCache.aElements[22] = {"@$ui5.node.level" : 0};
|
|
1190
1197
|
oCache.aElements[23] = oNode;
|
|
1191
|
-
this.mock(_Helper).expects("getKeyFilter").withExactArgs(oNode, "
|
|
1198
|
+
this.mock(_Helper).expects("getKeyFilter").withExactArgs(oNode, "/Foo", "~Types~")
|
|
1192
1199
|
.returns("~Key~");
|
|
1193
1200
|
this.mock(this.oRequestor).expects("buildQueryString")
|
|
1194
1201
|
.withExactArgs(null, {$apply : "ancestors($root/path,X,NodeID,filter(~Key~),1)"})
|
|
@@ -1231,7 +1238,6 @@ sap.ui.define([
|
|
|
1231
1238
|
$DistanceFromRoot : "DistFromRoot",
|
|
1232
1239
|
$DrillState : "myDrillState",
|
|
1233
1240
|
$LimitedDescendantCount : "LtdDescendant_Count",
|
|
1234
|
-
$metaPath : "~metaPath~",
|
|
1235
1241
|
$NodeProperty : "NodeID",
|
|
1236
1242
|
$path : "/path",
|
|
1237
1243
|
aggregate : {},
|
|
@@ -1246,7 +1252,7 @@ sap.ui.define([
|
|
|
1246
1252
|
const oNode = {};
|
|
1247
1253
|
oCache.aElements[22] = {"@$ui5.node.level" : 0};
|
|
1248
1254
|
oCache.aElements[23] = oNode;
|
|
1249
|
-
this.mock(_Helper).expects("getKeyFilter").withExactArgs(oNode, "
|
|
1255
|
+
this.mock(_Helper).expects("getKeyFilter").withExactArgs(oNode, "/Foo", "~Types~")
|
|
1250
1256
|
.returns("~Key~");
|
|
1251
1257
|
this.mock(this.oRequestor).expects("buildQueryString")
|
|
1252
1258
|
.withExactArgs(null, {$apply : "ancestors($root/path,X,NodeID,filter(~Key~),1)"})
|
|
@@ -1757,33 +1763,41 @@ sap.ui.define([
|
|
|
1757
1763
|
iFirstLevelLength : 3,
|
|
1758
1764
|
iExpectedStart : 0,
|
|
1759
1765
|
iExpectedLength : 33
|
|
1760
|
-
}, {
|
|
1766
|
+
}, { // prefetch wins; less than iStart
|
|
1761
1767
|
iFirstLevelIndex : 25,
|
|
1762
1768
|
iFirstLevelLength : 1,
|
|
1763
1769
|
iOutOfPlaceCount : 5,
|
|
1764
1770
|
iPrefetchLength : 10,
|
|
1765
|
-
iExpectedStart :
|
|
1766
|
-
iExpectedLength :
|
|
1767
|
-
}, {
|
|
1768
|
-
iFirstLevelIndex :
|
|
1769
|
-
iFirstLevelLength : 1,
|
|
1770
|
-
iOutOfPlaceCount : 5,
|
|
1771
|
-
iExpectedStart : 0,
|
|
1772
|
-
iExpectedLength : 42
|
|
1773
|
-
}, {
|
|
1774
|
-
iFirstLevelIndex : 20,
|
|
1771
|
+
iExpectedStart : 15,
|
|
1772
|
+
iExpectedLength : 21
|
|
1773
|
+
}, { // out of place count wins; less than iStart
|
|
1774
|
+
iFirstLevelIndex : 25,
|
|
1775
1775
|
iFirstLevelLength : 1,
|
|
1776
|
-
iOutOfPlaceCount :
|
|
1777
|
-
iPrefetchLength :
|
|
1776
|
+
iOutOfPlaceCount : 10,
|
|
1777
|
+
iPrefetchLength : 5,
|
|
1778
1778
|
iExpectedStart : 15,
|
|
1779
|
-
iExpectedLength :
|
|
1780
|
-
}, {
|
|
1779
|
+
iExpectedLength : 16
|
|
1780
|
+
}, { // prefetch wins; more than iStart
|
|
1781
|
+
iFirstLevelIndex : 2,
|
|
1782
|
+
iFirstLevelLength : 1,
|
|
1783
|
+
iOutOfPlaceCount : 3,
|
|
1784
|
+
iPrefetchLength : 5,
|
|
1785
|
+
iExpectedStart : 0,
|
|
1786
|
+
iExpectedLength : 8
|
|
1787
|
+
}, { // out of place count wins; more than iStart
|
|
1781
1788
|
iFirstLevelIndex : 2,
|
|
1782
1789
|
iFirstLevelLength : 1,
|
|
1783
1790
|
iOutOfPlaceCount : 5,
|
|
1784
|
-
iPrefetchLength :
|
|
1791
|
+
iPrefetchLength : 1,
|
|
1792
|
+
iExpectedStart : 0,
|
|
1793
|
+
iExpectedLength : 4
|
|
1794
|
+
}, { // oFirstLevel already requested data
|
|
1795
|
+
bHasGrandTotal : false,
|
|
1796
|
+
bHasRequestedData : true,
|
|
1797
|
+
iFirstLevelIndex : 0,
|
|
1798
|
+
iFirstLevelLength : 3,
|
|
1785
1799
|
iExpectedStart : 0,
|
|
1786
|
-
iExpectedLength :
|
|
1800
|
+
iExpectedLength : 23
|
|
1787
1801
|
}].forEach(function (oFixture, i) {
|
|
1788
1802
|
QUnit.test("readFirst: #" + i, function (assert) {
|
|
1789
1803
|
var oAggregation = { // filled before by buildApply
|
|
@@ -1820,6 +1834,7 @@ sap.ui.define([
|
|
|
1820
1834
|
oCache.oGrandTotalPromise = SyncPromise.resolve(oGrandTotal);
|
|
1821
1835
|
_Helper.setPrivateAnnotation(oGrandTotal, "copy", oGrandTotalCopy);
|
|
1822
1836
|
}
|
|
1837
|
+
oCache.oFirstLevel.bSentRequest = oFixture.bHasRequestedData;
|
|
1823
1838
|
for (i = 0; i < Math.min(iExpectedLength, 42); i += 1) {
|
|
1824
1839
|
oReadResult.value.push({});
|
|
1825
1840
|
}
|
|
@@ -1828,8 +1843,12 @@ sap.ui.define([
|
|
|
1828
1843
|
.returns(oFixture.iOutOfPlaceCount ?? 0);
|
|
1829
1844
|
this.mock(oCache.oFirstLevel).expects("read")
|
|
1830
1845
|
.withExactArgs(iExpectedStart, iExpectedLength, 0, "~oGroupLock~", "~fnDataRequested~")
|
|
1831
|
-
.
|
|
1832
|
-
|
|
1846
|
+
.callsFake(function () {
|
|
1847
|
+
oCache.oFirstLevel.bSentRequest = true;
|
|
1848
|
+
return SyncPromise.resolve(Promise.resolve(oReadResult));
|
|
1849
|
+
});
|
|
1850
|
+
this.mock(oCache).expects("requestOutOfPlaceNodes")
|
|
1851
|
+
.exactly(oFixture.bHasRequestedData ? 0 : 1).withExactArgs("~oGroupLock~")
|
|
1833
1852
|
.returns([Promise.resolve("~outOfPlaceResult0~"),
|
|
1834
1853
|
Promise.resolve("~outOfPlaceResult1~"), Promise.resolve("~outOfPlaceResult2~")]);
|
|
1835
1854
|
if (oFixture.bHasGrandTotal) {
|
|
@@ -1871,7 +1890,10 @@ sap.ui.define([
|
|
|
1871
1890
|
.returns("~placeholder~" + i);
|
|
1872
1891
|
}
|
|
1873
1892
|
const oHandleOutOfPlaceNodesExpectation = this.mock(oCache).expects("handleOutOfPlaceNodes")
|
|
1874
|
-
.withExactArgs(
|
|
1893
|
+
.withExactArgs(oFixture.bHasRequestedData
|
|
1894
|
+
? []
|
|
1895
|
+
: ["~outOfPlaceResult0~", "~outOfPlaceResult1~", "~outOfPlaceResult2~"]
|
|
1896
|
+
);
|
|
1875
1897
|
|
|
1876
1898
|
// code under test
|
|
1877
1899
|
return oCache.readFirst(oFixture.iFirstLevelIndex, oFixture.iFirstLevelLength,
|
|
@@ -2877,12 +2899,8 @@ sap.ui.define([
|
|
|
2877
2899
|
cache : oGroupLevelCache,
|
|
2878
2900
|
groupLevelCount : 7,
|
|
2879
2901
|
spliced : [{
|
|
2880
|
-
"@$ui5._" : {
|
|
2881
|
-
|
|
2882
|
-
predicate : "('A')",
|
|
2883
|
-
rank : 23
|
|
2884
|
-
},
|
|
2885
|
-
"@$ui5.node.level" : 10
|
|
2902
|
+
"@$ui5._" : {placeholder : true},
|
|
2903
|
+
"@$ui5.node.level" : 0
|
|
2886
2904
|
}, {
|
|
2887
2905
|
"@$ui5._" : {placeholder : true, predicate : "n/a", rank : 24},
|
|
2888
2906
|
"@$ui5.node.level" : 11
|
|
@@ -2902,8 +2920,12 @@ sap.ui.define([
|
|
|
2902
2920
|
},
|
|
2903
2921
|
"@$ui5.node.level" : 12
|
|
2904
2922
|
}, {
|
|
2905
|
-
"@$ui5._" : {
|
|
2906
|
-
|
|
2923
|
+
"@$ui5._" : {
|
|
2924
|
+
parent : oCache.oFirstLevel, // unrealistic!
|
|
2925
|
+
predicate : "('A')",
|
|
2926
|
+
rank : 27
|
|
2927
|
+
},
|
|
2928
|
+
"@$ui5.node.level" : 10
|
|
2907
2929
|
}],
|
|
2908
2930
|
rank : 42
|
|
2909
2931
|
},
|
|
@@ -2923,6 +2945,7 @@ sap.ui.define([
|
|
|
2923
2945
|
if (bStale) {
|
|
2924
2946
|
oGroupNode["@$ui5._"].spliced.$stale = true;
|
|
2925
2947
|
}
|
|
2948
|
+
oGroupNode["@$ui5._"].spliced.$level = 9;
|
|
2926
2949
|
oGroupNode["@$ui5._"].spliced.$rank = 12;
|
|
2927
2950
|
aElements = [{}, oGroupNode, {}, {}];
|
|
2928
2951
|
oCache.aElements = aElements.slice();
|
|
@@ -2944,12 +2967,12 @@ sap.ui.define([
|
|
|
2944
2967
|
.withExactArgs(sinon.match.same(_GroupLock.$cached), sinon.match.same(aSpliced[2]))
|
|
2945
2968
|
.returns(SyncPromise.resolve(100));
|
|
2946
2969
|
if (bStale) {
|
|
2947
|
-
oCacheMock.expects("turnIntoPlaceholder")
|
|
2948
|
-
.withExactArgs(sinon.match.same(aSpliced[0]), "('A')");
|
|
2949
2970
|
oCacheMock.expects("turnIntoPlaceholder")
|
|
2950
2971
|
.withExactArgs(sinon.match.same(aSpliced[2]), "('C')");
|
|
2951
2972
|
oCacheMock.expects("turnIntoPlaceholder")
|
|
2952
2973
|
.withExactArgs(sinon.match.same(aSpliced[3]), "('created')");
|
|
2974
|
+
oCacheMock.expects("turnIntoPlaceholder")
|
|
2975
|
+
.withExactArgs(sinon.match.same(aSpliced[4]), "('A')");
|
|
2953
2976
|
oCacheMock.expects("turnIntoPlaceholder")
|
|
2954
2977
|
.withExactArgs(sinon.match.same(aSpliced[200000]), "('D')");
|
|
2955
2978
|
} else {
|
|
@@ -2973,8 +2996,7 @@ sap.ui.define([
|
|
|
2973
2996
|
["0", "1", "2", "3", "4", "5", "6", "200002", "200003", "200004", "$byPredicate",
|
|
2974
2997
|
"$count"]);
|
|
2975
2998
|
assert.strictEqual(oCache.aElements[2], aSpliced[0]);
|
|
2976
|
-
assert.strictEqual(aSpliced[0]["@$ui5.node.level"],
|
|
2977
|
-
assert.strictEqual(aSpliced[0]["@$ui5._"].rank, 53);
|
|
2999
|
+
assert.strictEqual(aSpliced[0]["@$ui5.node.level"], 0, "unchanged");
|
|
2978
3000
|
assert.strictEqual(oCache.aElements[3], aSpliced[1]);
|
|
2979
3001
|
assert.strictEqual(aSpliced[1]["@$ui5.node.level"], 7);
|
|
2980
3002
|
assert.strictEqual(aSpliced[1]["@$ui5._"].rank, 24);
|
|
@@ -2984,7 +3006,8 @@ sap.ui.define([
|
|
|
2984
3006
|
assert.strictEqual(_Helper.hasPrivateAnnotation(aSpliced[2], "expanding"), bStale,
|
|
2985
3007
|
"deleted only if not stale");
|
|
2986
3008
|
assert.notOk("rank" in aSpliced[3]["@$ui5._"]);
|
|
2987
|
-
assert.strictEqual(aSpliced[4]["@$ui5.node.level"],
|
|
3009
|
+
assert.strictEqual(aSpliced[4]["@$ui5.node.level"], 6);
|
|
3010
|
+
assert.strictEqual(aSpliced[4]["@$ui5._"].rank, 57);
|
|
2988
3011
|
assert.strictEqual(oCache.aElements[200002], aSpliced[200000]);
|
|
2989
3012
|
assert.strictEqual(aSpliced[200000]["@$ui5.node.level"], 6);
|
|
2990
3013
|
assert.strictEqual(aSpliced[200000]["@$ui5._"].rank, 200023);
|
|
@@ -2994,10 +3017,10 @@ sap.ui.define([
|
|
|
2994
3017
|
assert.strictEqual(oCache.aElements[200004], aElements[3]);
|
|
2995
3018
|
|
|
2996
3019
|
assert.deepEqual(oCache.aElements.$byPredicate, bStale ? {} : {
|
|
2997
|
-
"('A')" : aSpliced[0],
|
|
2998
3020
|
"('C')" : aSpliced[2],
|
|
2999
3021
|
"('created')" : aSpliced[3],
|
|
3000
3022
|
"($uid=1-23)" : aSpliced[3],
|
|
3023
|
+
"('A')" : aSpliced[4],
|
|
3001
3024
|
"('D')" : aSpliced[200000]
|
|
3002
3025
|
});
|
|
3003
3026
|
});
|
|
@@ -3213,7 +3236,8 @@ sap.ui.define([
|
|
|
3213
3236
|
collapsed : oCollapsed,
|
|
3214
3237
|
predicate : "('1')",
|
|
3215
3238
|
rank : "~rank~"
|
|
3216
|
-
}
|
|
3239
|
+
},
|
|
3240
|
+
"@$ui5.node.level" : "~level~"
|
|
3217
3241
|
}, {
|
|
3218
3242
|
"@$ui5._" : {predicate : "('2')", transientPredicate : "($uid=1-23)"}
|
|
3219
3243
|
}, {
|
|
@@ -3232,6 +3256,7 @@ sap.ui.define([
|
|
|
3232
3256
|
rank : "~rank~"
|
|
3233
3257
|
},
|
|
3234
3258
|
"@$ui5.node.isExpanded" : false,
|
|
3259
|
+
"@$ui5.node.level" : "~level~",
|
|
3235
3260
|
A : "10" // placeholder for an aggregate with subtotals
|
|
3236
3261
|
}, {
|
|
3237
3262
|
"@$ui5._" : {predicate : "('4')"}
|
|
@@ -3288,6 +3313,7 @@ sap.ui.define([
|
|
|
3288
3313
|
"('1')" : aElements[1],
|
|
3289
3314
|
"('4')" : aElements[4]
|
|
3290
3315
|
});
|
|
3316
|
+
assert.strictEqual(aElements[1]["@$ui5._"].spliced.$level, "~level~");
|
|
3291
3317
|
assert.strictEqual(aElements[1]["@$ui5._"].spliced.$rank, "~rank~");
|
|
3292
3318
|
});
|
|
3293
3319
|
});
|
|
@@ -4572,7 +4598,7 @@ new parent was expanded before = ${bSpliced}, make root = ${bMakeRoot}`;
|
|
|
4572
4598
|
|
|
4573
4599
|
assert.strictEqual(oSyncPromise.isPending(), true);
|
|
4574
4600
|
|
|
4575
|
-
return oSyncPromise.then(function (iResult) {
|
|
4601
|
+
return oSyncPromise.then(function ([iResult]) {
|
|
4576
4602
|
assert.strictEqual(iResult, !bParentIsLeaf ? "~iResult~" : 1);
|
|
4577
4603
|
assert.deepEqual(oCache.aElements, bParentIsLeaf
|
|
4578
4604
|
? ["a", "~oOldParent~", "d", "e", "f", "g", oParentNode, oChildNode, "i"]
|
|
@@ -4690,6 +4716,8 @@ make root = ${bMakeRoot}`;
|
|
|
4690
4716
|
}
|
|
4691
4717
|
|
|
4692
4718
|
QUnit.test(sTitle, async function (assert) {
|
|
4719
|
+
var oUpdateExistingExpectation;
|
|
4720
|
+
|
|
4693
4721
|
const oCache = _AggregationCache.create(this.oRequestor, "n/a", "", {}, {
|
|
4694
4722
|
$ParentNavigationProperty : "myParent",
|
|
4695
4723
|
expandTo : Number.MAX_SAFE_INTEGER,
|
|
@@ -4699,8 +4727,9 @@ make root = ${bMakeRoot}`;
|
|
|
4699
4727
|
"@$ui5.node.isExpanded" : bNewParentExpanded,
|
|
4700
4728
|
"@$ui5.node.level" : 9
|
|
4701
4729
|
};
|
|
4730
|
+
// Note: oParentNode's index in aElements MUST not matter!
|
|
4702
4731
|
oCache.aElements
|
|
4703
|
-
= ["a", "~oOldParent~", "~oChildNode~", "d", "e", "f", "g",
|
|
4732
|
+
= ["a", "~oOldParent~", "~oChildNode~", "d", "e", "f", "g", "h", "i"];
|
|
4704
4733
|
oCache.aElements.$byPredicate = {
|
|
4705
4734
|
"('23')" : "~oChildNode~",
|
|
4706
4735
|
"('42')" : oParentNode
|
|
@@ -4721,9 +4750,12 @@ make root = ${bMakeRoot}`;
|
|
|
4721
4750
|
}, {"myParent@odata.bind" : bMakeRoot ? null : "Foo('42')"},
|
|
4722
4751
|
/*fnSubmit*/null, /*fnCancel*/sinon.match.func)
|
|
4723
4752
|
.resolves({"@odata.etag" : "etag"});
|
|
4724
|
-
|
|
4725
|
-
.withExactArgs(
|
|
4726
|
-
|
|
4753
|
+
oCacheMock.expects("expand").exactly(bNewParentExpanded === false ? 1 : 0)
|
|
4754
|
+
.withExactArgs(_GroupLock.$cached, "('42')").returns(SyncPromise.resolve(47));
|
|
4755
|
+
oHelperMock.expects("updateAll")
|
|
4756
|
+
.exactly(oParentNode && bNewParentExpanded === undefined ? 1 : 0)
|
|
4757
|
+
.withExactArgs(sinon.match.same(oCache.mChangeListeners), "('42')",
|
|
4758
|
+
sinon.match.same(oParentNode), {"@$ui5.node.isExpanded" : true});
|
|
4727
4759
|
oHelperMock.expects("getPrivateAnnotation")
|
|
4728
4760
|
.withExactArgs("~oChildNode~", "descendants", 0).returns(4);
|
|
4729
4761
|
oCacheMock.expects("adjustDescendantCount")
|
|
@@ -4731,48 +4763,40 @@ make root = ${bMakeRoot}`;
|
|
|
4731
4763
|
.callsFake(function () {
|
|
4732
4764
|
assert.notOk(oUpdateExistingExpectation.called, "old level needed!");
|
|
4733
4765
|
assert.deepEqual(oCache.aElements,
|
|
4734
|
-
["a", "~oOldParent~", "~oChildNode~", "d", "e", "f", "g",
|
|
4735
|
-
"not spliced yet");
|
|
4736
|
-
});
|
|
4737
|
-
oCacheMock.expects("shiftRank").withExactArgs(2, -(4 + 1))
|
|
4738
|
-
.callsFake(function () {
|
|
4739
|
-
assert.deepEqual(oCache.aElements,
|
|
4740
|
-
["a", "~oOldParent~", "~oChildNode~", "d", "e", "f", "g", oParentNode, "i"],
|
|
4766
|
+
["a", "~oOldParent~", "~oChildNode~", "d", "e", "f", "g", "h", "i"],
|
|
4741
4767
|
"not spliced yet");
|
|
4742
4768
|
});
|
|
4743
4769
|
oHelperMock.expects("getPrivateAnnotation")
|
|
4744
4770
|
.withExactArgs("~oChildNode~", "rank").returns("~rank~");
|
|
4771
|
+
const oShiftRankForMoveExpectation = oCacheMock.expects("shiftRankForMove")
|
|
4772
|
+
.withExactArgs("~rank~", 4 + 1, 17);
|
|
4745
4773
|
this.mock(oCache.oFirstLevel).expects("move").withExactArgs("~rank~", 17, 4 + 1);
|
|
4746
|
-
|
|
4747
|
-
.withExactArgs("
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
.callsFake(function () {
|
|
4752
|
-
assert.ok(oSetRankExpectation.called, "new rank needed");
|
|
4753
|
-
assert.deepEqual(oCache.aElements,
|
|
4754
|
-
["a", "~oOldParent~", "d", "e", "f", "g", oParentNode, "~oChildNode~", "i"],
|
|
4755
|
-
"already moved");
|
|
4774
|
+
oUpdateExistingExpectation = oHelperMock.expects("updateExisting")
|
|
4775
|
+
.withExactArgs(sinon.match.same(oCache.mChangeListeners), "('23')", "~oChildNode~", {
|
|
4776
|
+
"@odata.etag" : "etag",
|
|
4777
|
+
"@$ui5.node.level" : bMakeRoot ? 1 : 10,
|
|
4778
|
+
"@$ui5.context.isTransient" : undefined
|
|
4756
4779
|
});
|
|
4780
|
+
oHelperMock.expects("setPrivateAnnotation").withExactArgs("~oChildNode~", "rank", 17);
|
|
4781
|
+
const oGetArrayIndexExpectation = oCacheMock.expects("getArrayIndex").withExactArgs(17)
|
|
4782
|
+
.returns(7);
|
|
4757
4783
|
oCacheMock.expects("adjustDescendantCount")
|
|
4758
4784
|
.withExactArgs("~oChildNode~", 7, +(4 + 1))
|
|
4759
4785
|
.callsFake(function () {
|
|
4760
4786
|
assert.deepEqual(oCache.aElements,
|
|
4761
|
-
["a", "~oOldParent~", "d", "e", "f", "g",
|
|
4787
|
+
["a", "~oOldParent~", "d", "e", "f", "g", "h", "~oChildNode~", "i"],
|
|
4762
4788
|
"already moved");
|
|
4763
4789
|
});
|
|
4764
|
-
oHelperMock.expects("updateAll")
|
|
4765
|
-
.exactly(oParentNode && bNewParentExpanded === undefined ? 1 : 0)
|
|
4766
|
-
.withExactArgs(sinon.match.same(oCache.mChangeListeners), "('42')",
|
|
4767
|
-
sinon.match.same(oParentNode), {"@$ui5.node.isExpanded" : true});
|
|
4768
4790
|
|
|
4769
4791
|
// code under test
|
|
4770
|
-
const iResult
|
|
4792
|
+
const [iResult, iNewIndex]
|
|
4771
4793
|
= await oCache.move("~oGroupLock~", "Foo('23')", bMakeRoot ? undefined : "Foo('42')");
|
|
4772
4794
|
|
|
4773
4795
|
assert.strictEqual(iResult, bNewParentExpanded === false ? 47 + 1 : 1);
|
|
4796
|
+
assert.strictEqual(iNewIndex, 7);
|
|
4774
4797
|
assert.deepEqual(oCache.aElements,
|
|
4775
|
-
["a", "~oOldParent~", "d", "e", "f", "g",
|
|
4798
|
+
["a", "~oOldParent~", "d", "e", "f", "g", "h", "~oChildNode~", "i"]);
|
|
4799
|
+
assert.ok(oShiftRankForMoveExpectation.calledBefore(oGetArrayIndexExpectation));
|
|
4776
4800
|
});
|
|
4777
4801
|
});
|
|
4778
4802
|
});
|
|
@@ -4873,7 +4897,7 @@ make root = ${bMakeRoot}`;
|
|
|
4873
4897
|
return Promise.resolve("~iRank~");
|
|
4874
4898
|
});
|
|
4875
4899
|
oNodeExpectation = that.mock(oCache).expects("requestNodeProperty")
|
|
4876
|
-
.withExactArgs(sinon.match.same(oEntityData), "~oGroupLock~")
|
|
4900
|
+
.withExactArgs(sinon.match.same(oEntityData), "~oGroupLock~", true)
|
|
4877
4901
|
.returns(new Promise(function (resolve0) {
|
|
4878
4902
|
setTimeout(function () {
|
|
4879
4903
|
bNodePropertyCompleted = true;
|
|
@@ -5137,39 +5161,97 @@ make root = ${bMakeRoot}`;
|
|
|
5137
5161
|
});
|
|
5138
5162
|
});
|
|
5139
5163
|
|
|
5164
|
+
//*********************************************************************************************
|
|
5165
|
+
QUnit.test("shiftRankForMove", function (assert) {
|
|
5166
|
+
const oCache = _AggregationCache.create(this.oRequestor, "Foo", "", {}, {
|
|
5167
|
+
hierarchyQualifier : "X"
|
|
5168
|
+
});
|
|
5169
|
+
|
|
5170
|
+
function setup(aRanks) {
|
|
5171
|
+
return aRanks.map(function (iRank) {
|
|
5172
|
+
return {"@$ui5._" : {rank : iRank}};
|
|
5173
|
+
});
|
|
5174
|
+
}
|
|
5175
|
+
|
|
5176
|
+
// Note: order does not really matter
|
|
5177
|
+
// "The subtree itself is unaffected and may, but need not be present."
|
|
5178
|
+
// 2: subtree's root node, 3: missing, 4: part of subtree
|
|
5179
|
+
oCache.aElements = setup([0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11]);
|
|
5180
|
+
|
|
5181
|
+
function expect(aExpectedRanks) {
|
|
5182
|
+
assert.deepEqual(
|
|
5183
|
+
oCache.aElements.map((oElement) => oElement["@$ui5._"].rank),
|
|
5184
|
+
aExpectedRanks
|
|
5185
|
+
);
|
|
5186
|
+
}
|
|
5187
|
+
|
|
5188
|
+
// code under test
|
|
5189
|
+
oCache.shiftRankForMove(2, 3, 2);
|
|
5190
|
+
|
|
5191
|
+
expect([0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11]);
|
|
5192
|
+
|
|
5193
|
+
// code under test
|
|
5194
|
+
oCache.shiftRankForMove(2, 3, 7);
|
|
5195
|
+
|
|
5196
|
+
expect([0, 1, 2, 4, 5 - 3, 6 - 3, 7 - 3, 8 - 3, 9 - 3, 10, 11]);
|
|
5197
|
+
|
|
5198
|
+
// 7: subtree's root node, 8: missing, 9: part of subtree
|
|
5199
|
+
oCache.aElements = setup([0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11]);
|
|
5200
|
+
|
|
5201
|
+
// code under test
|
|
5202
|
+
oCache.shiftRankForMove(7, 3, 2);
|
|
5203
|
+
|
|
5204
|
+
expect([0, 1, 2 + 3, 3 + 3, 4 + 3, 5 + 3, 6 + 3, 7, 9, 10, 11]);
|
|
5205
|
+
});
|
|
5206
|
+
|
|
5140
5207
|
//*********************************************************************************************
|
|
5141
5208
|
[true, false].forEach((bInheritResult) => {
|
|
5142
|
-
|
|
5209
|
+
[true, false].forEach((bDropFilter) => {
|
|
5210
|
+
const sTitle = "requestProperties: bInheritResult = " + bInheritResult
|
|
5211
|
+
+ ", bDropFilter = " + bDropFilter;
|
|
5212
|
+
|
|
5213
|
+
QUnit.test(sTitle, async function (assert) {
|
|
5143
5214
|
const oCache = _AggregationCache.create(this.oRequestor, "Foo", "", {}, {
|
|
5144
5215
|
hierarchyQualifier : "X",
|
|
5145
|
-
$LimitedRank : "~LimitedRank~"
|
|
5146
|
-
$metaPath : "/meta/path"
|
|
5216
|
+
$LimitedRank : "~LimitedRank~"
|
|
5147
5217
|
});
|
|
5148
|
-
const oParentCache = {
|
|
5218
|
+
const oParentCache = {
|
|
5219
|
+
$parentFilter : "~parentFilter~",
|
|
5220
|
+
getQueryOptions : mustBeMocked
|
|
5221
|
+
};
|
|
5149
5222
|
const aSelect = ["path/to/property0", "path/to/property1"];
|
|
5150
5223
|
const oHelperMock = this.mock(_Helper);
|
|
5151
5224
|
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oElement~", "parent")
|
|
5152
5225
|
.returns(oParentCache);
|
|
5153
|
-
this.mock(oParentCache).expects("getQueryOptions").
|
|
5226
|
+
this.mock(oParentCache).expects("getQueryOptions").exactly(bDropFilter ? 0 : 1)
|
|
5227
|
+
.withExactArgs()
|
|
5228
|
+
// Note: buildApply4Hierarchy has already removed $$filterBeforeAggregate, $filter,
|
|
5229
|
+
// and $orderby and integrated these into $apply!
|
|
5154
5230
|
.returns({
|
|
5155
|
-
$$filterBeforeAggregate : "n/a",
|
|
5156
5231
|
$apply : "A.P.P.L.E.",
|
|
5157
5232
|
$count : "n/a",
|
|
5158
5233
|
$expand : "n/a",
|
|
5159
|
-
$filter : "n/a",
|
|
5160
|
-
$orderby : "n/a",
|
|
5161
|
-
$search : "n/a",
|
|
5162
5234
|
$select : ["n/a"],
|
|
5163
5235
|
foo : "bar",
|
|
5164
5236
|
"sap-client" : "123"
|
|
5165
5237
|
});
|
|
5166
5238
|
this.mock(oCache).expects("getTypes").withExactArgs().returns("~getTypes~");
|
|
5239
|
+
this.mock(_AggregationHelper).expects("dropFilter").exactly(bDropFilter ? 1 : 0)
|
|
5240
|
+
.withExactArgs(sinon.match.same(oCache.oAggregation),
|
|
5241
|
+
sinon.match.same(oCache.mQueryOptions), "~parentFilter~")
|
|
5242
|
+
.returns({
|
|
5243
|
+
$apply : "A.P.P.L.E.",
|
|
5244
|
+
foo : "bar",
|
|
5245
|
+
"sap-client" : "123"
|
|
5246
|
+
});
|
|
5167
5247
|
oHelperMock.expects("getKeyFilter")
|
|
5168
|
-
.withExactArgs("~oElement~", "/
|
|
5248
|
+
.withExactArgs("~oElement~", "/Foo", "~getTypes~").returns("~filter~");
|
|
5169
5249
|
this.mock(oCache.oRequestor).expects("buildQueryString")
|
|
5170
|
-
.withExactArgs("/
|
|
5250
|
+
.withExactArgs("/Foo", {
|
|
5171
5251
|
$apply : "A.P.P.L.E.",
|
|
5172
|
-
$filter : "~filter~"
|
|
5252
|
+
$filter : "~filter~",
|
|
5253
|
+
foo : "bar",
|
|
5254
|
+
"sap-client" : "123"
|
|
5173
5255
|
}, false, true)
|
|
5174
5256
|
.returns("~queryString~");
|
|
5175
5257
|
const oGroupLock = {getUnlockedCopy : mustBeMocked};
|
|
@@ -5177,7 +5259,7 @@ make root = ${bMakeRoot}`;
|
|
|
5177
5259
|
.returns("~oGroupLockCopy~");
|
|
5178
5260
|
this.mock(oCache.oRequestor).expects("request")
|
|
5179
5261
|
.withExactArgs("GET", "Foo~queryString~", "~oGroupLockCopy~", undefined, undefined,
|
|
5180
|
-
undefined, undefined, "/
|
|
5262
|
+
undefined, undefined, "/Foo", undefined, false, {$select : aSelect},
|
|
5181
5263
|
sinon.match.same(oCache))
|
|
5182
5264
|
.resolves({
|
|
5183
5265
|
"@odata.context" : "n/a",
|
|
@@ -5194,8 +5276,10 @@ make root = ${bMakeRoot}`;
|
|
|
5194
5276
|
|
|
5195
5277
|
assert.strictEqual(
|
|
5196
5278
|
// code under test
|
|
5197
|
-
await oCache
|
|
5198
|
-
|
|
5279
|
+
await oCache
|
|
5280
|
+
.requestProperties("~oElement~", aSelect, oGroupLock, bInheritResult, bDropFilter),
|
|
5281
|
+
bInheritResult ? undefined : "~oResult~");
|
|
5282
|
+
});
|
|
5199
5283
|
});
|
|
5200
5284
|
});
|
|
5201
5285
|
|
|
@@ -5226,12 +5310,12 @@ make root = ${bMakeRoot}`;
|
|
|
5226
5310
|
this.mock(_Helper).expects("drillDown").withExactArgs("~oElement~", "path/to/NodeID")
|
|
5227
5311
|
.returns(undefined);
|
|
5228
5312
|
this.mock(oCache).expects("requestProperties")
|
|
5229
|
-
.withExactArgs("~oElement~", ["path/to/NodeID"], "~oGroupLock~", true)
|
|
5313
|
+
.withExactArgs("~oElement~", ["path/to/NodeID"], "~oGroupLock~", true, "~bDropFilter~")
|
|
5230
5314
|
.resolves(undefined);
|
|
5231
5315
|
|
|
5232
5316
|
assert.strictEqual(
|
|
5233
5317
|
// code under test
|
|
5234
|
-
await oCache.requestNodeProperty("~oElement~", "~oGroupLock~"),
|
|
5318
|
+
await oCache.requestNodeProperty("~oElement~", "~oGroupLock~", "~bDropFilter~"),
|
|
5235
5319
|
undefined, "without a defined result");
|
|
5236
5320
|
});
|
|
5237
5321
|
|
|
@@ -5248,7 +5332,7 @@ make root = ${bMakeRoot}`;
|
|
|
5248
5332
|
|
|
5249
5333
|
assert.strictEqual(
|
|
5250
5334
|
// code under test
|
|
5251
|
-
await oCache.requestNodeProperty("~oElement~", "~oGroupLock~"),
|
|
5335
|
+
await oCache.requestNodeProperty("~oElement~", "~oGroupLock~", "n/a"),
|
|
5252
5336
|
undefined, "without a defined result");
|
|
5253
5337
|
});
|
|
5254
5338
|
|
|
@@ -5293,6 +5377,8 @@ make root = ${bMakeRoot}`;
|
|
|
5293
5377
|
"If-Match" : sinon.match.same(oElement)
|
|
5294
5378
|
})
|
|
5295
5379
|
.callsFake(() => {
|
|
5380
|
+
this.mock(oCache.oTreeState).expects("delete")
|
|
5381
|
+
.withExactArgs(sinon.match.same(oElement));
|
|
5296
5382
|
this.mock(_Cache).expects("getElementIndex")
|
|
5297
5383
|
.withExactArgs(sinon.match.same(oCache.aElements), "~predicate~", 2)
|
|
5298
5384
|
.returns(4);
|
|
@@ -5593,18 +5679,16 @@ make root = ${bMakeRoot}`;
|
|
|
5593
5679
|
});
|
|
5594
5680
|
|
|
5595
5681
|
//*********************************************************************************************
|
|
5596
|
-
QUnit.test("handleOutOfPlaceNodes", function () {
|
|
5682
|
+
QUnit.test("handleOutOfPlaceNodes", function (assert) {
|
|
5597
5683
|
const oCache = _AggregationCache.create(this.oRequestor, "Foo", "", {}, {
|
|
5598
5684
|
hierarchyQualifier : "X",
|
|
5685
|
+
$DrillState : "~DrillState~",
|
|
5599
5686
|
$LimitedRank : "~LimitedRank~"
|
|
5600
5687
|
});
|
|
5601
|
-
oCache.aElements.$byPredicate = {
|
|
5602
|
-
"~predicate2~" : "~node2~",
|
|
5603
|
-
"~predicate4~" : "~node4~"
|
|
5604
|
-
};
|
|
5688
|
+
oCache.aElements.$byPredicate = {"~predicate2~" : "~node2~"};
|
|
5605
5689
|
const oRankResult = {
|
|
5606
5690
|
value : ["~parent1RankResult~", "~node2RankResult~", "~node3RankResult~",
|
|
5607
|
-
"~node1RankResult~", "~parent2RankResult~"
|
|
5691
|
+
"~node1RankResult~", "~parent2RankResult~"]
|
|
5608
5692
|
};
|
|
5609
5693
|
const oOutOfPlaceNodeResult1 = {
|
|
5610
5694
|
value : ["~node1Data~", "~node2Data~"]
|
|
@@ -5615,9 +5699,13 @@ make root = ${bMakeRoot}`;
|
|
|
5615
5699
|
const oOutOfPlaceNodeResult3 = {
|
|
5616
5700
|
value : ["~node4Data~"]
|
|
5617
5701
|
};
|
|
5702
|
+
const oOutOfPlaceNodeResult4 = {
|
|
5703
|
+
value : ["~node5Data~"]
|
|
5704
|
+
};
|
|
5618
5705
|
const oCacheMock = this.mock(oCache);
|
|
5619
5706
|
const oFirstLevelMock = this.mock(oCache.oFirstLevel);
|
|
5620
5707
|
const oHelperMock = this.mock(_Helper);
|
|
5708
|
+
const oTreeStateMock = this.mock(oCache.oTreeState);
|
|
5621
5709
|
|
|
5622
5710
|
oCacheMock.expects("getTypes").atLeast(1).withExactArgs().returns("~types~");
|
|
5623
5711
|
// oRankResult
|
|
@@ -5636,12 +5724,26 @@ make root = ${bMakeRoot}`;
|
|
|
5636
5724
|
oHelperMock.expects("getKeyPredicate")
|
|
5637
5725
|
.withExactArgs("~parent2RankResult~", "/Foo", "~types~")
|
|
5638
5726
|
.returns("~parent2Predicate~");
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
.returns("~predicate4~"
|
|
5727
|
+
|
|
5728
|
+
oTreeStateMock.expects("getOutOfPlacePredicates").withExactArgs()
|
|
5729
|
+
.returns(["~predicate1~", "~predicate2~", "~predicate3~", "~predicate4~",
|
|
5730
|
+
"~predicate5~", "~predicate6NowInPlace~", "~predicate7NowInPlace~"]);
|
|
5731
|
+
|
|
5732
|
+
// parent1
|
|
5733
|
+
// node1
|
|
5734
|
+
// node2
|
|
5735
|
+
// node3
|
|
5736
|
+
// parent2 (collapsed)
|
|
5737
|
+
// node4 (no rank)
|
|
5738
|
+
// node5 (no rank)
|
|
5739
|
+
|
|
5642
5740
|
// "~node1Data~"
|
|
5643
5741
|
oHelperMock.expects("getKeyPredicate").withExactArgs("~node1Data~", "/Foo", "~types~")
|
|
5644
5742
|
.returns("~predicate1~");
|
|
5743
|
+
oTreeStateMock.expects("getOutOfPlace").withExactArgs("~predicate1~")
|
|
5744
|
+
.returns({parentPredicate : "~parent1Predicate~"});
|
|
5745
|
+
oHelperMock.expects("drillDown").withExactArgs("~parent1RankResult~", "~DrillState~")
|
|
5746
|
+
.returns("expanded");
|
|
5645
5747
|
oHelperMock.expects("merge").withExactArgs("~node1Data~", "~node1RankResult~");
|
|
5646
5748
|
oHelperMock.expects("drillDown").withExactArgs("~node1Data~", "~LimitedRank~").returns("4");
|
|
5647
5749
|
oFirstLevelMock.expects("calculateKeyPredicate")
|
|
@@ -5650,12 +5752,14 @@ make root = ${bMakeRoot}`;
|
|
|
5650
5752
|
.callsFake(function () {
|
|
5651
5753
|
oCache.aElements.$byPredicate["~predicate1~"] = "~node1Data~";
|
|
5652
5754
|
});
|
|
5653
|
-
// "~node2Data~"
|
|
5755
|
+
// "~node2Data~": already in $byPredicate
|
|
5654
5756
|
oHelperMock.expects("getKeyPredicate").withExactArgs("~node2Data~", "/Foo", "~types~")
|
|
5655
5757
|
.returns("~predicate2~");
|
|
5656
5758
|
// "~node3Data~"
|
|
5657
5759
|
oHelperMock.expects("getKeyPredicate").withExactArgs("~node3Data~", "/Foo", "~types~")
|
|
5658
5760
|
.returns("~predicate3~");
|
|
5761
|
+
oTreeStateMock.expects("getOutOfPlace").withExactArgs("~predicate3~")
|
|
5762
|
+
.returns({/*no parentPredicate*/});
|
|
5659
5763
|
oHelperMock.expects("merge").withExactArgs("~node3Data~", "~node3RankResult~");
|
|
5660
5764
|
oHelperMock.expects("drillDown").withExactArgs("~node3Data~", "~LimitedRank~").returns("5");
|
|
5661
5765
|
oFirstLevelMock.expects("calculateKeyPredicate")
|
|
@@ -5664,11 +5768,27 @@ make root = ${bMakeRoot}`;
|
|
|
5664
5768
|
.callsFake(function () {
|
|
5665
5769
|
oCache.aElements.$byPredicate["~predicate3~"] = "~node3Data~";
|
|
5666
5770
|
});
|
|
5667
|
-
// "~node4Data~"
|
|
5771
|
+
// "~node4Data~": parent is collapsed
|
|
5668
5772
|
oHelperMock.expects("getKeyPredicate").withExactArgs("~node4Data~", "/Foo", "~types~")
|
|
5669
5773
|
.returns("~predicate4~");
|
|
5774
|
+
oTreeStateMock.expects("getOutOfPlace").withExactArgs("~predicate4~")
|
|
5775
|
+
.returns({parentPredicate : "~parent2Predicate~"});
|
|
5776
|
+
oHelperMock.expects("drillDown").withExactArgs("~parent2RankResult~", "~DrillState~")
|
|
5777
|
+
.returns("collapsed");
|
|
5778
|
+
// "~node5Data~": below node4 (no rank)
|
|
5779
|
+
oHelperMock.expects("getKeyPredicate").withExactArgs("~node5Data~", "/Foo", "~types~")
|
|
5780
|
+
.returns("~predicate5~");
|
|
5781
|
+
oTreeStateMock.expects("getOutOfPlace").withExactArgs("~predicate5~")
|
|
5782
|
+
.returns({parentPredicate : "~predicate4~"});
|
|
5783
|
+
|
|
5784
|
+
const oDeleteOutOfPlace6Expectation = oTreeStateMock.expects("deleteOutOfPlace")
|
|
5785
|
+
.withExactArgs("~predicate6NowInPlace~");
|
|
5786
|
+
const oDeleteOutOfPlace7Expectation = oTreeStateMock.expects("deleteOutOfPlace")
|
|
5787
|
+
.withExactArgs("~predicate7NowInPlace~");
|
|
5788
|
+
|
|
5670
5789
|
// move nodes
|
|
5671
|
-
|
|
5790
|
+
const oOutOfPlaceGroupedByParentExpectation = oTreeStateMock
|
|
5791
|
+
.expects("getOutOfPlaceGroupedByParent").withExactArgs()
|
|
5672
5792
|
.returns([{
|
|
5673
5793
|
nodePredicates : "~parent1NodePredicates~",
|
|
5674
5794
|
parentPredicate : "~parent1Predicate~"
|
|
@@ -5687,8 +5807,13 @@ make root = ${bMakeRoot}`;
|
|
|
5687
5807
|
oCacheMock.expects("moveOutOfPlaceNodes").withExactArgs(undefined, "~rootNodePredicates~");
|
|
5688
5808
|
|
|
5689
5809
|
// code under test
|
|
5690
|
-
oCache.handleOutOfPlaceNodes(
|
|
5691
|
-
|
|
5810
|
+
oCache.handleOutOfPlaceNodes([oRankResult, oOutOfPlaceNodeResult1, oOutOfPlaceNodeResult2,
|
|
5811
|
+
oOutOfPlaceNodeResult3, oOutOfPlaceNodeResult4]);
|
|
5812
|
+
|
|
5813
|
+
assert.ok(oDeleteOutOfPlace6Expectation
|
|
5814
|
+
.calledBefore(oOutOfPlaceGroupedByParentExpectation));
|
|
5815
|
+
assert.ok(oDeleteOutOfPlace7Expectation
|
|
5816
|
+
.calledBefore(oOutOfPlaceGroupedByParentExpectation));
|
|
5692
5817
|
});
|
|
5693
5818
|
|
|
5694
5819
|
//*********************************************************************************************
|
|
@@ -5739,11 +5864,13 @@ make root = ${bMakeRoot}`;
|
|
|
5739
5864
|
hierarchyQualifier : "X",
|
|
5740
5865
|
$LimitedRank : "~LimitedRank~"
|
|
5741
5866
|
});
|
|
5742
|
-
|
|
5867
|
+
const oNode3 = {"@$ui5.node.isExpanded" : true};
|
|
5868
|
+
oCache.aElements
|
|
5869
|
+
= ["~foo~", "~parent~", "~node2~", "~bar~", "~node1~", oNode3, "~node4~"];
|
|
5743
5870
|
oCache.aElements.$byPredicate = {
|
|
5744
5871
|
"~predicate1~" : "~node1~",
|
|
5745
5872
|
"~predicate2~" : "~node2~",
|
|
5746
|
-
"~predicate3~" :
|
|
5873
|
+
"~predicate3~" : oNode3
|
|
5747
5874
|
};
|
|
5748
5875
|
|
|
5749
5876
|
const oHelperMock = this.mock(_Helper);
|
|
@@ -5751,15 +5878,26 @@ make root = ${bMakeRoot}`;
|
|
|
5751
5878
|
.returns(0);
|
|
5752
5879
|
oHelperMock.expects("getPrivateAnnotation").withExactArgs("~parent~", "rank")
|
|
5753
5880
|
.returns("~iParentRank~");
|
|
5881
|
+
this.mock(oCache).expects("collapse").withExactArgs("~predicate3~")
|
|
5882
|
+
.callsFake(function () {
|
|
5883
|
+
assert.strictEqual(oCache.aElements.indexOf(oNode3), 5, "not yet moved");
|
|
5884
|
+
});
|
|
5885
|
+
this.mock(oCache).expects("expand")
|
|
5886
|
+
.withExactArgs(sinon.match.same(_GroupLock.$cached), "~predicate3~")
|
|
5887
|
+
.callsFake(function () {
|
|
5888
|
+
assert.strictEqual(oCache.aElements.indexOf(oNode3), 2,
|
|
5889
|
+
"moved immediately behind parent (snapshot)");
|
|
5890
|
+
});
|
|
5754
5891
|
|
|
5755
5892
|
// code under test
|
|
5756
5893
|
oCache.moveOutOfPlaceNodes("~iParentRank~",
|
|
5757
5894
|
// the order is important: node2 is not moved, moving node3 shifts the location of
|
|
5758
5895
|
// node1 which must be searched again (aElements.indexOf(...))
|
|
5759
|
-
|
|
5896
|
+
// node4 has changed its parent
|
|
5897
|
+
["~predicate2~", "~predicate3~", "~predicate4~", "~predicate1~"]);
|
|
5760
5898
|
|
|
5761
5899
|
assert.deepEqual(oCache.aElements,
|
|
5762
|
-
["~foo~", "~parent~", "~node1~", "~
|
|
5900
|
+
["~foo~", "~parent~", "~node1~", oNode3, "~node2~", "~bar~", "~node4~"]);
|
|
5763
5901
|
});
|
|
5764
5902
|
|
|
5765
5903
|
//*********************************************************************************************
|