@openui5/sap.ui.core 1.117.1 → 1.118.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/jquery.sap.global.js +1 -1
- package/src/jquery.sap.properties.js +1 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +1 -1
- package/src/jquery.sap.storage.js +3 -3
- package/src/sap/base/Event.js +1 -1
- package/src/sap/base/Eventing.js +1 -1
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/Localization.js +42 -39
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +4 -4
- package/src/sap/ui/base/BindingParser.js +2 -1
- package/src/sap/ui/base/Event.js +1 -1
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +7 -3
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +9 -1
- package/src/sap/ui/core/AnimationMode.js +1 -1
- package/src/sap/ui/core/BlockLayerUtils.js +1 -1
- package/src/sap/ui/core/BusyIndicator.js +2 -2
- package/src/sap/ui/core/Component.js +22 -15
- package/src/sap/ui/core/ComponentContainer.js +2 -2
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -13
- package/src/sap/ui/core/Control.js +21 -1
- package/src/sap/ui/core/Core.js +67 -41
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +1 -1
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +1 -1
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +1 -1
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +2 -2
- package/src/sap/ui/core/IndicationColorSupport.js +2 -2
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +3 -6
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +9 -13
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +2 -2
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Messaging.js +472 -0
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +3 -2
- package/src/sap/ui/core/ResizeHandler.js +1 -4
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/ShortcutHint.js +1 -1
- package/src/sap/ui/core/Theming.js +28 -31
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +85 -17
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +2 -2
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/_IconRegistry.js +1 -1
- package/src/sap/ui/core/boot.js +9 -0
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +4 -0
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +18 -47
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +37 -459
- package/src/sap/ui/core/message/MessageMixin.js +3 -3
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +9 -9
- package/src/sap/ui/core/message/MessageType.js +53 -0
- package/src/sap/ui/core/messagebundle.properties +3 -0
- package/src/sap/ui/core/messagebundle_ar.properties +1 -1
- package/src/sap/ui/core/messagebundle_bg.properties +1 -1
- package/src/sap/ui/core/messagebundle_ca.properties +1 -1
- package/src/sap/ui/core/messagebundle_cs.properties +1 -1
- package/src/sap/ui/core/messagebundle_cy.properties +1 -1
- package/src/sap/ui/core/messagebundle_da.properties +1 -1
- package/src/sap/ui/core/messagebundle_de.properties +1 -1
- package/src/sap/ui/core/messagebundle_el.properties +1 -1
- package/src/sap/ui/core/messagebundle_es.properties +1 -1
- package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
- package/src/sap/ui/core/messagebundle_et.properties +1 -1
- package/src/sap/ui/core/messagebundle_fi.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr.properties +1 -1
- package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
- package/src/sap/ui/core/messagebundle_hi.properties +1 -1
- package/src/sap/ui/core/messagebundle_hr.properties +1 -1
- package/src/sap/ui/core/messagebundle_hu.properties +1 -1
- package/src/sap/ui/core/messagebundle_id.properties +1 -1
- package/src/sap/ui/core/messagebundle_it.properties +1 -1
- package/src/sap/ui/core/messagebundle_iw.properties +1 -1
- package/src/sap/ui/core/messagebundle_ja.properties +1 -1
- package/src/sap/ui/core/messagebundle_kk.properties +1 -1
- package/src/sap/ui/core/messagebundle_ko.properties +1 -1
- package/src/sap/ui/core/messagebundle_lt.properties +1 -1
- package/src/sap/ui/core/messagebundle_lv.properties +1 -1
- package/src/sap/ui/core/messagebundle_ms.properties +1 -1
- package/src/sap/ui/core/messagebundle_nl.properties +1 -1
- package/src/sap/ui/core/messagebundle_no.properties +1 -1
- package/src/sap/ui/core/messagebundle_pl.properties +1 -1
- package/src/sap/ui/core/messagebundle_pt.properties +1 -1
- package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
- package/src/sap/ui/core/messagebundle_ro.properties +1 -1
- package/src/sap/ui/core/messagebundle_ru.properties +1 -1
- package/src/sap/ui/core/messagebundle_sh.properties +1 -1
- package/src/sap/ui/core/messagebundle_sk.properties +1 -1
- package/src/sap/ui/core/messagebundle_sl.properties +1 -1
- package/src/sap/ui/core/messagebundle_sv.properties +9 -9
- package/src/sap/ui/core/messagebundle_th.properties +1 -1
- package/src/sap/ui/core/messagebundle_tr.properties +1 -1
- package/src/sap/ui/core/messagebundle_uk.properties +1 -1
- package/src/sap/ui/core/messagebundle_vi.properties +1 -1
- package/src/sap/ui/core/messagebundle_zh_CN.properties +1 -1
- package/src/sap/ui/core/messagebundle_zh_TW.properties +1 -1
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +9 -2
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Router.js +7 -1
- package/src/sap/ui/core/routing/async/Route.js +1 -0
- package/src/sap/ui/core/routing/sync/Route.js +1 -0
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +25 -5
- package/src/sap/ui/core/support/Support.js +34 -4
- package/src/sap/ui/core/support/ToolsAPI.js +6 -16
- package/src/sap/ui/core/support/controls/InteractionTree.js +0 -4
- package/src/sap/ui/core/support/plugins/Breakpoint.js +0 -2
- package/src/sap/ui/core/support/plugins/ControlTree.js +10 -12
- package/src/sap/ui/core/support/plugins/Debugging.js +10 -9
- package/src/sap/ui/core/support/plugins/Interaction.js +12 -13
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -3
- package/src/sap/ui/core/support/plugins/Performance.js +1 -3
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +32 -42
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +27 -13
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +4 -4
- package/src/sap/ui/core/theming/ThemeHelper.js +100 -0
- package/src/sap/ui/core/theming/ThemeManager.js +18 -18
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +53 -29
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +659 -0
- package/src/sap/ui/core/webc/WebComponentMetadata.js +253 -0
- package/src/sap/ui/core/webc/WebComponentRenderer.js +323 -0
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +4 -3
- package/src/sap/ui/debug/DebugEnv.js +4 -4
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +6 -6
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientPropertyBinding.js +3 -3
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/Context.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +4 -4
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +27 -13
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +24 -0
- package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +6 -0
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +7 -2
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +6 -2
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +23 -3
- package/src/sap/ui/model/odata/v2/ODataModel.js +6 -6
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -6
- package/src/sap/ui/model/odata/v4/Context.js +26 -16
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -2
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +62 -29
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataModel.js +17 -10
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +5 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +129 -6
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +102 -57
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +30 -4
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -0
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +14 -4
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +28 -35
- package/src/sap/ui/model/odata/v4/ts.js +44 -0
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +5 -4
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/trace/Interaction.js +11 -2
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +10 -11
- package/src/sap/ui/qunit/utils/nextUIUpdate.js +51 -0
- package/src/sap/ui/test/ModuleTracking.js +326 -0
- package/src/sap/ui/test/TestUtils.js +7 -6
- package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +3 -2
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +2 -0
- package/src/sap/ui/test/selectors/_DropdownItem.js +1 -0
- package/src/sap/ui/test/selectors/_TableRowItem.js +1 -0
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +14 -10
- package/test/sap/ui/core/ComponentCleanup.html +228 -225
- package/test/sap/ui/core/ComponentConfig.html +1 -1
- package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +1 -1
- package/test/sap/ui/core/ComponentExtensibility_legacyAPIs.html +1 -1
- package/test/sap/ui/core/ComponentSimple.html +1 -1
- package/test/sap/ui/core/ComponentSimpleModel.html +1 -1
- package/test/sap/ui/core/ComponentSupport.html +1 -1
- package/test/sap/ui/core/DateFormat.js +3 -3
- package/test/sap/ui/core/EventBroadcaster.html +62 -62
- package/test/sap/ui/core/Formats.html +4 -2
- package/test/sap/ui/core/GenericEventBinding.html +53 -52
- package/test/sap/ui/core/ListFormat.js +3 -3
- package/test/sap/ui/core/NumberFormat.js +3 -3
- package/test/sap/ui/core/ODataAnnotationsPerformance.html +28 -28
- package/test/sap/ui/core/ODataV2CanonicalRequests.html +3 -2
- package/test/sap/ui/core/ODataV2Messages.html +4 -3
- package/test/sap/ui/core/PopupWithUserSelection.html +1 -1
- package/test/sap/ui/core/Strings.js +3 -3
- package/test/sap/ui/core/ValidateURL.html +143 -143
- package/test/sap/ui/core/demokit/sample/Commands/Commands.html +1 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/Controller.controller.js +10 -10
- package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +7 -7
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/Component.js +3 -2
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +7 -8
- package/test/sap/ui/core/demokit/sample/OpaGetStarted/applicationUnderTest/index.html +9 -6
- package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/applicationUnderTest/index.html +13 -10
- package/test/sap/ui/core/demokit/sample/PatternMatching/Patterns.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingFullscreen/RoutingFullscreen.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/RoutingMasterDetail.html +11 -8
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/RoutingNestedComponent.html +1 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.html +1 -1
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.js +5 -4
- package/test/sap/ui/core/demokit/sample/TargetsStandalone/TargetsStandalone.html +11 -8
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +12 -11
- package/test/sap/ui/core/demokit/sample/common/Controller.js +6 -7
- package/test/sap/ui/core/demokit/sample/common/Helper.js +6 -2
- package/test/sap/ui/core/demokit/sample/common/init.js +25 -21
- package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/WebsiteCode.js +8 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +12 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ListReport.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +4 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +3 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +19 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +93 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +85 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/SandboxModel.js +10 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +396 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +423 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +70 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +11 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +8 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +8 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +12 -11
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.controller.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +11 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/MIT.RecursiveHierarchy maintenance.html +408 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.js +26 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +54 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +24 -10
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +352 -287
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +38 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +128 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +23 -22
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +15 -14
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +9 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +10 -9
- package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +7 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +4 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +6 -4
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/02/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/03/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/04/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/05/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/06/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/07/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/08/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/09/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/10/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/11/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/12/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/13/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/14/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/15/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/package.json +2 -4
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +7 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/16/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/package.json +4 -6
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +8 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/index.html +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/pages/Tutorial.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/package.json +2 -6
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +9 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +7 -7
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.js +5 -5
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/pages/Tutorial.js +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +2 -5
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +8 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/test/integration/opaTests.qunit.js +6 -6
- package/test/sap/ui/core/frameoptions/createcontent.js +7 -6
- package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -1
- package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exStringAndFloat/Test.controller.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.js +8 -8
- package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +7 -7
- package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +3 -3
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.js +9 -6
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/index.html +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +3 -2
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +3 -3
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -1
- package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +9 -7
- package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +4 -2
- package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +3 -2
- package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +11 -10
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +218 -223
- package/test/sap/ui/core/qunit/Core.qunit.js +35 -31
- package/test/sap/ui/core/qunit/CoreEvents.qunit.js +17 -15
- package/test/sap/ui/core/qunit/Core_repeatedExecution.qunit.js +3 -3
- package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +4 -3
- package/test/sap/ui/core/qunit/Element_data.qunit.js +5 -5
- package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -4
- package/test/sap/ui/core/qunit/Element_focus.qunit.js +25 -24
- package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +3 -2
- package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +7 -6
- package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +1 -1
- package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +5 -5
- package/test/sap/ui/core/qunit/FieldGroup.qunit.js +9 -6
- package/test/sap/ui/core/qunit/FocusHandler.qunit.js +7 -6
- package/test/sap/ui/core/qunit/Fragment.qunit.js +35 -34
- package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +51 -50
- package/test/sap/ui/core/qunit/HTML.qunit.js +32 -32
- package/test/sap/ui/core/qunit/Icon.qunit.js +66 -65
- package/test/sap/ui/core/qunit/IconPool.qunit.js +2 -1
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +13 -12
- package/test/sap/ui/core/qunit/Lib.qunit.js +8 -8
- package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +24 -24
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +54 -53
- package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +8 -9
- package/test/sap/ui/core/qunit/ScrollBar.qunit.js +7 -6
- package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +13 -11
- package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +6 -5
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +5 -4
- package/test/sap/ui/core/qunit/Theming.qunit.js +88 -50
- package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +130 -0
- package/test/sap/ui/core/qunit/TooltipBase.qunit.js +4 -3
- package/test/sap/ui/core/qunit/UIArea.qunit.js +248 -18
- package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.js +9 -8
- package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +10 -10
- package/test/sap/ui/core/qunit/base/Config.qunit.js +12 -2
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +123 -52
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -0
- package/test/sap/ui/core/qunit/base/config/GlobalConfig.js +3 -1
- package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +4 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +3 -3
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal_legacyAPIs.qunit.js +13 -11
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomScript_legacyAPIs.qunit.js +13 -11
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery_legacyAPIs.qunit.js +7 -5
- package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +12 -14
- package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +3 -2
- package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +1 -1
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +12 -6
- package/test/sap/ui/core/qunit/component/Component.qunit.js +14 -15
- package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/Customizing.qunit.js +4 -5
- package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +4 -6
- package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +3 -5
- package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +3 -6
- package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +5 -8
- package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +4 -5
- package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +4 -3
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +19 -19
- package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +19 -19
- package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +43 -43
- package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +18 -13
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +19 -18
- package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +13 -12
- package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +5 -4
- package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +7 -6
- package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +7 -6
- package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +6 -6
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +20 -17
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +8 -7
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -2
- package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +14 -19
- package/test/sap/ui/core/qunit/internal/1Ring.qunit.js +34 -22
- package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -6
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +4 -0
- package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +7 -7
- package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
- package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +3 -2
- package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +16 -16
- package/test/sap/ui/core/qunit/messages/{MessageManager.qunit.js → Messaging.qunit.js} +46 -49
- package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -1
- package/test/sap/ui/core/qunit/messages/messagesEnd2End.qunit.js +10 -10
- package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +36 -46
- package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +25 -36
- package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +2 -2
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +8 -8
- package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +24 -14
- package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +7 -6
- package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +3 -2
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +5 -4
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +8 -9
- package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +45 -40
- package/test/sap/ui/core/qunit/mvc/testdata/stashed/OP.html +1 -1
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +15 -20
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +20 -25
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +10 -11
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +7 -6
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +8 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +7 -7
- package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +40 -47
- package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +52 -20
- package/test/sap/ui/core/qunit/odata/{ODataListBinding.qunit.js → ODataListBinding_legacyAPIs.qunit.js} +27 -0
- package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +44 -48
- package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +8 -8
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +66 -29
- package/test/sap/ui/core/qunit/odata/ODataMetadata.qunit.js +17 -7
- package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +147 -89
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +33 -12
- package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +33 -12
- package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +5 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +63 -13
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +281 -59
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +28 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +21 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +1 -2
- package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding.qunit.js +7 -207
- package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding_Filter_legacyAPIs.qunit.js +281 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +9 -8
- package/test/sap/ui/core/qunit/odata/v2/ODataV2TreeBinding.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +95 -85
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +70 -67
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +19 -20
- package/test/sap/ui/core/qunit/odata/v2/testsuite.odatav2.qunit.js +4 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +50 -27
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +5 -0
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +4 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +103 -14
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1027 -31
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +18 -17
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +272 -36
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +115 -82
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +10 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +108 -10
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +1 -1
- package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +5 -6
- package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +29 -42
- package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +13 -14
- package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -4
- package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +22 -21
- package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +60 -56
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +5 -7
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +5 -9
- package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +5 -6
- package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -4
- package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +21 -20
- package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +6 -5
- package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +7 -5
- package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -3
- package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +4 -3
- package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +28 -27
- package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +11 -10
- package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +11 -10
- package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +5 -4
- package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +8 -7
- package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +12 -17
- package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +5 -6
- package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +6 -5
- package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +10 -9
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +6 -7
- package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +4 -3
- package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +33 -27
- package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +7 -10
- package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +5 -7
- package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +5 -7
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +35 -28
- package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +11 -9
- package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +5 -3
- package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +57 -0
- package/test/sap/ui/core/qunit/routing/fixture/historyIframe/iframe/index.html +1 -1
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/Component.js +30 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/manifest.json +25 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/Component.js +14 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/manifest.json +51 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/NotFound.view.xml +3 -0
- package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/RootView.view.xml +5 -0
- package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +24 -17
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +3 -3
- package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +3 -3
- package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +9 -18
- package/test/sap/ui/core/qunit/support/techinfo/TechnicalInfoTestbench.html +3 -1
- package/test/sap/ui/core/qunit/test/starter/find/index.html +1 -1
- package/test/sap/ui/core/qunit/test/starter/find/main.js +3 -2
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
- package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +10 -6
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +27 -4
- package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +36 -35
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +13 -0
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
- package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +2 -2
- package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
- package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +27 -31
- package/test/sap/ui/core/qunit/util/Popup.qunit.js +27 -27
- package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +13 -9
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +37 -6
- package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +3 -2
- package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +8 -8
- package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +24 -24
- package/test/sap/ui/core/qunit/util/static/TechnicalInfoTestbenchInit.js +8 -2
- package/test/sap/ui/core/qunit/webc/WebComponent.qunit.js +188 -0
- package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.html +14 -0
- package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.js +22 -0
- package/test/sap/ui/core/relnotes/changes-1.117.json +1 -34
- package/test/sap/ui/core/relnotes/changes-1.118.json +143 -0
- package/test/sap/ui/core/samples/components/resourcesCSS/index.html +1 -1
- package/test/sap/ui/core/samples/databinding/DataBinding.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +3 -2
- package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingList.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +102 -113
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +3 -1
- package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +90 -89
- package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +149 -148
- package/test/sap/ui/core/samples/databinding/DataBindingXML.html +3 -2
- package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +158 -153
- package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +4 -6
- package/test/sap/ui/core/samples/databinding/UnitTableMain.js +3 -4
- package/test/sap/ui/core/samples/extensions/index_legacyAPIs.html +15 -13
- package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +3 -2
- package/test/sap/ui/core/samples/mvc/ExtendedXMLViewEventHandlerSyntax.html +5 -3
- package/test/sap/ui/core/samples/mvc/XMLViewBindableAggregation.html +1 -1
- package/test/testsuite/testframe.html +4 -4
- package/src/ui5-boot.js +0 -50
- package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
- package/test/sap/ui/core/qunit/internal/ODataV4.qunit.js +0 -30
- /package/test/sap/ui/core/qunit/{MasterDetail.qunit.js → MasterDetail_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataModel.qunit.js → ODataModel_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataSharedMetadata.qunit.js → ODataSharedMetadata_legacyAPIs.qunit.js} +0 -0
- /package/test/sap/ui/core/qunit/odata/{ODataTreeBinding.qunit.js → ODataTreeBinding_legacyAPIs.qunit.js} +0 -0
|
@@ -14,6 +14,8 @@ sap.ui.define([
|
|
|
14
14
|
"sap/ui/base/EventProvider",
|
|
15
15
|
"sap/ui/base/SyncPromise",
|
|
16
16
|
"sap/ui/core/Configuration",
|
|
17
|
+
"sap/ui/core/Messaging",
|
|
18
|
+
"sap/ui/core/Rendering",
|
|
17
19
|
"sap/ui/core/mvc/Controller",
|
|
18
20
|
"sap/ui/core/mvc/View",
|
|
19
21
|
"sap/ui/model/ChangeReason",
|
|
@@ -34,10 +36,10 @@ sap.ui.define([
|
|
|
34
36
|
// load Table resources upfront to avoid loading times > 1 second for the first test using Table
|
|
35
37
|
"sap/ui/table/Table"
|
|
36
38
|
], function (Log, uid, UriParameters, ColumnListItem, CustomListItem, FlexBox, _MessageStrip, Text,
|
|
37
|
-
Device, EventProvider, SyncPromise, Configuration,
|
|
38
|
-
FilterOperator, FilterType, Sorter, OperationMode, AnnotationHelper,
|
|
39
|
-
ODataMetaModel, ODataModel, ODataPropertyBinding, ValueListType, _Helper,
|
|
40
|
-
XMLHelper) {
|
|
39
|
+
Device, EventProvider, SyncPromise, Configuration, Messaging, Rendering, Controller, View,
|
|
40
|
+
ChangeReason, Filter, FilterOperator, FilterType, Sorter, OperationMode, AnnotationHelper,
|
|
41
|
+
ODataListBinding, ODataMetaModel, ODataModel, ODataPropertyBinding, ValueListType, _Helper,
|
|
42
|
+
TestUtils, XMLHelper) {
|
|
41
43
|
/*eslint no-sparse-arrays: 0, "max-len": ["error", {"code": 100,
|
|
42
44
|
"ignorePattern": "/sap/opu/odata4/|\" :$|\" : \\{$|\\{meta>"}], */
|
|
43
45
|
"use strict";
|
|
@@ -554,7 +556,7 @@ sap.ui.define([
|
|
|
554
556
|
if (that.oModel) {
|
|
555
557
|
that.oModel.destroy();
|
|
556
558
|
}
|
|
557
|
-
|
|
559
|
+
Messaging.removeAllMessages();
|
|
558
560
|
// reset the language
|
|
559
561
|
Configuration.setLanguage(sDefaultLanguage);
|
|
560
562
|
}
|
|
@@ -665,9 +667,9 @@ sap.ui.define([
|
|
|
665
667
|
}
|
|
666
668
|
delete this.mListChanges[sControlId];
|
|
667
669
|
}
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
670
|
+
|
|
671
|
+
if (Rendering.isPending() || this.oModel && this.oModel.aPrerenderingTasks
|
|
672
|
+
|| Messaging.getMessageModel().getObject("/").length < this.aMessages.length) {
|
|
671
673
|
setTimeout(this.checkFinish.bind(this, assert), 10);
|
|
672
674
|
} else if (this.resolve) {
|
|
673
675
|
this.resolve();
|
|
@@ -681,7 +683,7 @@ sap.ui.define([
|
|
|
681
683
|
* @param {object} assert The QUnit assert object
|
|
682
684
|
*/
|
|
683
685
|
checkMessages : function (assert) {
|
|
684
|
-
var aCurrentMessages =
|
|
686
|
+
var aCurrentMessages = Messaging.getMessageModel()
|
|
685
687
|
.getObject("/").map(function (oMessage) {
|
|
686
688
|
var aTargets = oMessage.getTargets().map(function (sTarget) {
|
|
687
689
|
return normalizeUID(sTarget);
|
|
@@ -1583,7 +1585,7 @@ sap.ui.define([
|
|
|
1583
1585
|
|
|
1584
1586
|
oView.setModel(that.oModel);
|
|
1585
1587
|
// enable parse error messages in the message manager
|
|
1586
|
-
|
|
1588
|
+
Messaging.registerObject(oView, true);
|
|
1587
1589
|
// Place the view in the page so that it is actually rendered. In some situations,
|
|
1588
1590
|
// esp. for the sap.ui.table.Table this is essential.
|
|
1589
1591
|
oView.placeAt("qunit-fixture");
|
|
@@ -24820,11 +24822,6 @@ sap.ui.define([
|
|
|
24820
24822
|
]);
|
|
24821
24823
|
assert.strictEqual(oListBinding.getCount(), 1, "count of nodes"); // code under test
|
|
24822
24824
|
|
|
24823
|
-
assert.throws(function () {
|
|
24824
|
-
// code under test (JIRA: CPOUI5ODATAV4-1851)
|
|
24825
|
-
oRoot.delete();
|
|
24826
|
-
}, new Error("Cannot delete " + oRoot + " when using data aggregation"));
|
|
24827
|
-
|
|
24828
24825
|
assert.throws(function () {
|
|
24829
24826
|
// code under test (JIRA: CPOUI5ODATAV4-1851)
|
|
24830
24827
|
oRoot.requestRefresh();
|
|
@@ -24874,7 +24871,7 @@ sap.ui.define([
|
|
|
24874
24871
|
assert.strictEqual(oRoot.getProperty("defaultChannel"), "260", "360 has been ignored");
|
|
24875
24872
|
|
|
24876
24873
|
that.expectMessages([]);
|
|
24877
|
-
|
|
24874
|
+
Messaging.removeAllMessages(); // clean up
|
|
24878
24875
|
|
|
24879
24876
|
// Note: why is there no separate GET? because we have already loaded messages above!
|
|
24880
24877
|
// that.expectRequest("Artists(ArtistID='0',IsActiveEntity=true)?$select=Messages");
|
|
@@ -27474,13 +27471,686 @@ sap.ui.define([
|
|
|
27474
27471
|
});
|
|
27475
27472
|
});
|
|
27476
27473
|
|
|
27474
|
+
//*********************************************************************************************
|
|
27475
|
+
// Scenario: Deferred delete and reinsert of a top-level node in a recursive hierarchy. Only
|
|
27476
|
+
// one node, so that the parent would have to become a leaf if there were one.
|
|
27477
|
+
// JIRA: CPOUI5ODATAV4-2224
|
|
27478
|
+
QUnit.test("Recursive Hierarchy: delete top-level", async function (assert) {
|
|
27479
|
+
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
27480
|
+
const sView = `
|
|
27481
|
+
<Table id="table" items="{path : '/EMPLOYEES',
|
|
27482
|
+
parameters : {
|
|
27483
|
+
$$aggregation : {
|
|
27484
|
+
hierarchyQualifier : 'OrgChart'
|
|
27485
|
+
}
|
|
27486
|
+
}}">
|
|
27487
|
+
<Text text="{ID}"/>
|
|
27488
|
+
<Text id="name" text="{Name}"/>
|
|
27489
|
+
</Table>`;
|
|
27490
|
+
|
|
27491
|
+
this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
|
|
27492
|
+
+ "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID'"
|
|
27493
|
+
+ ",Levels=1)"
|
|
27494
|
+
+ "&$select=DrillState,ID,Name&$count=true&$skip=0&$top=100", {
|
|
27495
|
+
"@odata.count" : "1",
|
|
27496
|
+
value : [{
|
|
27497
|
+
ID : "0",
|
|
27498
|
+
Name : "Alpha"
|
|
27499
|
+
}]
|
|
27500
|
+
})
|
|
27501
|
+
.expectChange("name", ["Alpha"]);
|
|
27502
|
+
|
|
27503
|
+
await this.createView(assert, sView, oModel);
|
|
27504
|
+
|
|
27505
|
+
const oTable = this.oView.byId("table");
|
|
27506
|
+
const oAlpha = oTable.getItems()[0].getBindingContext();
|
|
27507
|
+
// code under test
|
|
27508
|
+
const oDeletePromise = oAlpha.delete("doNotSubmit");
|
|
27509
|
+
|
|
27510
|
+
await resolveLater(); // no observable changes
|
|
27511
|
+
|
|
27512
|
+
checkTable("after delete", assert, oTable, [], [], 0);
|
|
27513
|
+
|
|
27514
|
+
this.expectCanceledError("Failed to delete /EMPLOYEES('0')",
|
|
27515
|
+
"Request canceled: DELETE EMPLOYEES('0'); group: doNotSubmit")
|
|
27516
|
+
.expectChange("name", ["Alpha"]);
|
|
27517
|
+
|
|
27518
|
+
// code under test
|
|
27519
|
+
oAlpha.resetChanges();
|
|
27520
|
+
|
|
27521
|
+
await Promise.all([
|
|
27522
|
+
checkCanceled(assert, oDeletePromise),
|
|
27523
|
+
this.waitForChanges(assert, "cancel delete")
|
|
27524
|
+
]);
|
|
27525
|
+
|
|
27526
|
+
checkTable("after reinsert", assert, oTable, ["/EMPLOYEES('0')"], [
|
|
27527
|
+
["0", "Alpha"]
|
|
27528
|
+
], 1);
|
|
27529
|
+
});
|
|
27530
|
+
|
|
27531
|
+
//*********************************************************************************************
|
|
27532
|
+
// Scenario: Deferred delete of Gamma, a leaf in a recursive hierarchy which is not the only
|
|
27533
|
+
// child of its parent. Before the delete ensure that there are two invisible elements (Delta,
|
|
27534
|
+
// Epsilon). See that Gamma is deleted on the UI immediately. Request side effects so that
|
|
27535
|
+
// Epsilon is removed again. Scroll down to see that Epsilon and Zeta are requested correctly.
|
|
27536
|
+
// Cancel the delete and check that Gamma is restored correcty. Scroll down to the end to see
|
|
27537
|
+
// that Eta and Theta are requested correctly.
|
|
27538
|
+
// ("Pi" is attached to a name when it is read a second time.)
|
|
27539
|
+
// JIRA: CPOUI5ODATAV4-2224
|
|
27540
|
+
QUnit.test("Recursive Hierarchy: delete second leaf", function (assert) {
|
|
27541
|
+
var oDeletePromise, oGamma, oTable;
|
|
27542
|
+
|
|
27543
|
+
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
27544
|
+
const sView = `
|
|
27545
|
+
<t:Table id="table" rows="{path : '/EMPLOYEES',
|
|
27546
|
+
parameters : {
|
|
27547
|
+
$$aggregation : {
|
|
27548
|
+
hierarchyQualifier : 'OrgChart'
|
|
27549
|
+
}
|
|
27550
|
+
}}" threshold="0" visibleRowCount="3" >
|
|
27551
|
+
<Text text="{= %{@$ui5.node.isExpanded} }"/>
|
|
27552
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
27553
|
+
<Text text="{ID}"/>
|
|
27554
|
+
<Text text="{MANAGER_ID}"/>
|
|
27555
|
+
<Text id="name" text="{Name}"/>
|
|
27556
|
+
</t:Table>`;
|
|
27557
|
+
const that = this;
|
|
27558
|
+
|
|
27559
|
+
// 0 Alpha
|
|
27560
|
+
// 1 Beta
|
|
27561
|
+
// 2 Gamma (deleted)
|
|
27562
|
+
// 3 Delta (read via expand, comes into view due to delete)
|
|
27563
|
+
// 4 Epsilon (exists hidden during delete, then dropped and read again via paging)
|
|
27564
|
+
// 5 Zeta (read via paging after delete)
|
|
27565
|
+
// 6 Eta (read via paging after reset)
|
|
27566
|
+
// 7 Theta
|
|
27567
|
+
this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
|
|
27568
|
+
+ "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID'"
|
|
27569
|
+
+ ",Levels=1)"
|
|
27570
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=3", {
|
|
27571
|
+
"@odata.count" : "2",
|
|
27572
|
+
value : [{
|
|
27573
|
+
DrillState : "collapsed",
|
|
27574
|
+
ID : "0",
|
|
27575
|
+
MANAGER_ID : null,
|
|
27576
|
+
Name : "Alpha"
|
|
27577
|
+
}, {
|
|
27578
|
+
DrillState : "collapsed",
|
|
27579
|
+
ID : "7",
|
|
27580
|
+
MANAGER_ID : null,
|
|
27581
|
+
Name : "Theta"
|
|
27582
|
+
}]
|
|
27583
|
+
})
|
|
27584
|
+
.expectChange("name", ["Alpha", "Theta"]);
|
|
27585
|
+
|
|
27586
|
+
return this.createView(assert, sView, oModel).then(function () {
|
|
27587
|
+
oTable = that.oView.byId("table");
|
|
27588
|
+
|
|
27589
|
+
that.expectRequest("EMPLOYEES?"
|
|
27590
|
+
+ "$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
|
|
27591
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=3", {
|
|
27592
|
+
"@odata.count" : "6",
|
|
27593
|
+
value : [{
|
|
27594
|
+
DrillState : "collapsed",
|
|
27595
|
+
ID : "1",
|
|
27596
|
+
MANAGER_ID : "0",
|
|
27597
|
+
Name : "Beta"
|
|
27598
|
+
}, {
|
|
27599
|
+
DrillState : "leaf",
|
|
27600
|
+
ID : "2",
|
|
27601
|
+
MANAGER_ID : "0",
|
|
27602
|
+
Name : "Gamma"
|
|
27603
|
+
}, {
|
|
27604
|
+
DrillState : "leaf",
|
|
27605
|
+
ID : "3",
|
|
27606
|
+
MANAGER_ID : "0",
|
|
27607
|
+
Name : "Delta"
|
|
27608
|
+
}]
|
|
27609
|
+
})
|
|
27610
|
+
.expectChange("name", [, "Beta", "Gamma"]);
|
|
27611
|
+
|
|
27612
|
+
oTable.getRows()[0].getBindingContext().expand();
|
|
27613
|
+
|
|
27614
|
+
return that.waitForChanges(assert, "expand");
|
|
27615
|
+
}).then(function () {
|
|
27616
|
+
that.expectRequest("EMPLOYEES"
|
|
27617
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
|
|
27618
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$skip=3&$top=1", {
|
|
27619
|
+
value : [{
|
|
27620
|
+
DrillState : "leaf",
|
|
27621
|
+
ID : "4",
|
|
27622
|
+
MANAGER_ID : "0",
|
|
27623
|
+
Name : "Epsilon"
|
|
27624
|
+
}]
|
|
27625
|
+
})
|
|
27626
|
+
.expectChange("name", [,, "Gamma", "Delta", "Epsilon"]);
|
|
27627
|
+
|
|
27628
|
+
// code under test
|
|
27629
|
+
oTable.setFirstVisibleRow(2);
|
|
27630
|
+
|
|
27631
|
+
return that.waitForChanges(assert, "scroll down");
|
|
27632
|
+
}).then(function () {
|
|
27633
|
+
that.expectChange("name", ["Alpha", "Beta", "Gamma"]);
|
|
27634
|
+
|
|
27635
|
+
// code under test
|
|
27636
|
+
oTable.setFirstVisibleRow(0);
|
|
27637
|
+
|
|
27638
|
+
return that.waitForChanges(assert, "scroll up");
|
|
27639
|
+
}).then(function () {
|
|
27640
|
+
checkTable("before delete", assert, oTable, [
|
|
27641
|
+
"/EMPLOYEES('0')",
|
|
27642
|
+
"/EMPLOYEES('1')",
|
|
27643
|
+
"/EMPLOYEES('2')",
|
|
27644
|
+
"/EMPLOYEES('3')",
|
|
27645
|
+
"/EMPLOYEES('4')",
|
|
27646
|
+
"/EMPLOYEES('7')"
|
|
27647
|
+
], [
|
|
27648
|
+
[true, 1, "0", "", "Alpha"],
|
|
27649
|
+
[false, 2, "1", "0", "Beta"],
|
|
27650
|
+
[undefined, 2, "2", "0", "Gamma"]
|
|
27651
|
+
], 8);
|
|
27652
|
+
|
|
27653
|
+
that.expectChange("name", [,, "Delta"]);
|
|
27654
|
+
|
|
27655
|
+
oGamma = oTable.getRows()[2].getBindingContext();
|
|
27656
|
+
// code under test
|
|
27657
|
+
oDeletePromise = oGamma.delete("doNotSubmit");
|
|
27658
|
+
|
|
27659
|
+
return that.waitForChanges(assert, "delete");
|
|
27660
|
+
}).then(function () {
|
|
27661
|
+
checkTable("after delete", assert, oTable, [
|
|
27662
|
+
"/EMPLOYEES('0')",
|
|
27663
|
+
"/EMPLOYEES('1')",
|
|
27664
|
+
"/EMPLOYEES('3')",
|
|
27665
|
+
"/EMPLOYEES('4')",
|
|
27666
|
+
"/EMPLOYEES('7')"
|
|
27667
|
+
], [
|
|
27668
|
+
[true, 1, "0", "", "Alpha"],
|
|
27669
|
+
[false, 2, "1", "0", "Beta"],
|
|
27670
|
+
[undefined, 2, "3", "0", "Delta"]
|
|
27671
|
+
], 7);
|
|
27672
|
+
|
|
27673
|
+
that.expectRequest("EMPLOYEES?$select=ID,Name"
|
|
27674
|
+
+ "&$filter=ID eq '0' or ID eq '1' or ID eq '3'&$top=3", {
|
|
27675
|
+
value : [{
|
|
27676
|
+
ID : "0",
|
|
27677
|
+
Name : "Alpha Pi"
|
|
27678
|
+
}, {
|
|
27679
|
+
ID : "1",
|
|
27680
|
+
Name : "Beta Pi"
|
|
27681
|
+
}, {
|
|
27682
|
+
ID : "3",
|
|
27683
|
+
Name : "Delta Pi"
|
|
27684
|
+
}]
|
|
27685
|
+
})
|
|
27686
|
+
.expectChange("name", ["Alpha Pi", "Beta Pi", "Delta Pi"]);
|
|
27687
|
+
|
|
27688
|
+
return Promise.all([
|
|
27689
|
+
// code under test
|
|
27690
|
+
oGamma.getBinding().getHeaderContext().requestSideEffects(["Name"]),
|
|
27691
|
+
that.waitForChanges(assert, "side effects")
|
|
27692
|
+
]);
|
|
27693
|
+
}).then(function () {
|
|
27694
|
+
that.expectRequest("EMPLOYEES"
|
|
27695
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
|
|
27696
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$filter=not (ID eq '2')"
|
|
27697
|
+
+ "&$skip=2&$top=2", {
|
|
27698
|
+
"@odata.count" : "5",
|
|
27699
|
+
value : [{
|
|
27700
|
+
DrillState : "leaf",
|
|
27701
|
+
ID : "4",
|
|
27702
|
+
MANAGER_ID : "0",
|
|
27703
|
+
Name : "Epsilon Pi"
|
|
27704
|
+
}, {
|
|
27705
|
+
DrillState : "collapsed",
|
|
27706
|
+
ID : "5",
|
|
27707
|
+
MANAGER_ID : "0",
|
|
27708
|
+
Name : "Zeta"
|
|
27709
|
+
}]
|
|
27710
|
+
})
|
|
27711
|
+
.expectChange("name", [,, "Delta Pi", "Epsilon Pi", "Zeta"]);
|
|
27712
|
+
|
|
27713
|
+
// code under test
|
|
27714
|
+
oTable.setFirstVisibleRow(2);
|
|
27715
|
+
|
|
27716
|
+
return that.waitForChanges(assert, "scroll while deleted");
|
|
27717
|
+
}).then(function () {
|
|
27718
|
+
checkTable("after scroll while deleted", assert, oTable, [
|
|
27719
|
+
"/EMPLOYEES('0')",
|
|
27720
|
+
"/EMPLOYEES('1')",
|
|
27721
|
+
"/EMPLOYEES('3')",
|
|
27722
|
+
"/EMPLOYEES('4')",
|
|
27723
|
+
"/EMPLOYEES('5')"
|
|
27724
|
+
], [
|
|
27725
|
+
[undefined, 2, "3", "0", "Delta Pi"],
|
|
27726
|
+
[undefined, 2, "4", "0", "Epsilon Pi"],
|
|
27727
|
+
[false, 2, "5", "0", "Zeta"]
|
|
27728
|
+
], 7);
|
|
27729
|
+
|
|
27730
|
+
that.expectCanceledError("Failed to delete /EMPLOYEES('2')",
|
|
27731
|
+
"Request canceled: DELETE EMPLOYEES('2'); group: doNotSubmit")
|
|
27732
|
+
.expectChange("name", [,, "Gamma", "Delta Pi", "Epsilon Pi", "Zeta"]);
|
|
27733
|
+
|
|
27734
|
+
// code under test
|
|
27735
|
+
oGamma.resetChanges();
|
|
27736
|
+
|
|
27737
|
+
return checkCanceled(assert, oDeletePromise);
|
|
27738
|
+
}).then(function () {
|
|
27739
|
+
checkTable("after reset", assert, oTable, [
|
|
27740
|
+
"/EMPLOYEES('0')",
|
|
27741
|
+
"/EMPLOYEES('1')",
|
|
27742
|
+
"/EMPLOYEES('2')",
|
|
27743
|
+
"/EMPLOYEES('3')",
|
|
27744
|
+
"/EMPLOYEES('4')",
|
|
27745
|
+
"/EMPLOYEES('5')"
|
|
27746
|
+
], [
|
|
27747
|
+
[undefined, 2, "2", "0", "Gamma"],
|
|
27748
|
+
[undefined, 2, "3", "0", "Delta Pi"],
|
|
27749
|
+
[undefined, 2, "4", "0", "Epsilon Pi"]
|
|
27750
|
+
], 8);
|
|
27751
|
+
|
|
27752
|
+
that.expectRequest("EMPLOYEES"
|
|
27753
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
|
|
27754
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$skip=5&$top=1", {
|
|
27755
|
+
value : [{
|
|
27756
|
+
DrillState : "collapsed",
|
|
27757
|
+
ID : "6",
|
|
27758
|
+
MANAGER_ID : "0",
|
|
27759
|
+
Name : "Eta"
|
|
27760
|
+
}]
|
|
27761
|
+
})
|
|
27762
|
+
.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
|
|
27763
|
+
+ "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart'"
|
|
27764
|
+
+ ",NodeProperty='ID',Levels=1)"
|
|
27765
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$skip=1&$top=1", {
|
|
27766
|
+
value : [{
|
|
27767
|
+
DrillState : "collapsed",
|
|
27768
|
+
ID : "7",
|
|
27769
|
+
MANAGER_ID : null,
|
|
27770
|
+
Name : "Theta Pi"
|
|
27771
|
+
}]
|
|
27772
|
+
})
|
|
27773
|
+
.expectChange("name", [,,,,,, "Eta", "Theta Pi"]);
|
|
27774
|
+
|
|
27775
|
+
// code under test
|
|
27776
|
+
oTable.setFirstVisibleRow(5);
|
|
27777
|
+
|
|
27778
|
+
return that.waitForChanges(assert, "scroll to bottom");
|
|
27779
|
+
}).then(function () {
|
|
27780
|
+
checkTable("after scroll to bottom", assert, oTable, [
|
|
27781
|
+
"/EMPLOYEES('0')",
|
|
27782
|
+
"/EMPLOYEES('1')",
|
|
27783
|
+
"/EMPLOYEES('2')",
|
|
27784
|
+
"/EMPLOYEES('3')",
|
|
27785
|
+
"/EMPLOYEES('4')",
|
|
27786
|
+
"/EMPLOYEES('5')",
|
|
27787
|
+
"/EMPLOYEES('6')",
|
|
27788
|
+
"/EMPLOYEES('7')"
|
|
27789
|
+
], [
|
|
27790
|
+
[false, 2, "5", "0", "Zeta"],
|
|
27791
|
+
[false, 2, "6", "0", "Eta"],
|
|
27792
|
+
[false, 1, "7", "", "Theta Pi"]
|
|
27793
|
+
], 8);
|
|
27794
|
+
});
|
|
27795
|
+
});
|
|
27796
|
+
|
|
27797
|
+
//*********************************************************************************************
|
|
27798
|
+
// Scenario: Deferred delete of a non-leaf node with loaded children in a recursive hierarchy
|
|
27799
|
+
// which is the only child of its parent. Two variants: delete while collapsed and while
|
|
27800
|
+
// expanded.
|
|
27801
|
+
// * Expand Alpha and Beta.
|
|
27802
|
+
// * Collapse Beta (in variant 1).
|
|
27803
|
+
// * Delete Beta in an API group. See that Alpha becomes a leaf.
|
|
27804
|
+
// * Cancel the delete.
|
|
27805
|
+
// * Expand Beta without a further request (in variant 1).
|
|
27806
|
+
// * See that Alpha is expanded, and that Gamma is shown again.
|
|
27807
|
+
// JIRA: CPOUI5ODATAV4-2224
|
|
27808
|
+
[false, true].forEach(function (bExpanded) {
|
|
27809
|
+
const sState = bExpanded ? "expanded" : "collapsed";
|
|
27810
|
+
QUnit.test(`Recursive Hierarchy: delete single ${sState} child`, async function (assert) {
|
|
27811
|
+
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
27812
|
+
const sView = `
|
|
27813
|
+
<Table id="table" items="{path : '/EMPLOYEES',
|
|
27814
|
+
parameters : {
|
|
27815
|
+
$$aggregation : {
|
|
27816
|
+
hierarchyQualifier : 'OrgChart'
|
|
27817
|
+
}
|
|
27818
|
+
}}">
|
|
27819
|
+
<Text id="expanded" text="{= %{@$ui5.node.isExpanded} }"/>
|
|
27820
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
27821
|
+
<Text text="{ID}"/>
|
|
27822
|
+
<Text text="{MANAGER_ID}"/>
|
|
27823
|
+
<Text id="name" text="{Name}"/>
|
|
27824
|
+
</Table>`;
|
|
27825
|
+
|
|
27826
|
+
// 0 Alpha
|
|
27827
|
+
// 1 Beta (deleted while Gamma is loaded)
|
|
27828
|
+
// 2 Gamma (must not get lost)
|
|
27829
|
+
// 3 Delta (only helps with the eventing)
|
|
27830
|
+
this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
|
|
27831
|
+
+ "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID'"
|
|
27832
|
+
+ ",Levels=1)"
|
|
27833
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=100", {
|
|
27834
|
+
"@odata.count" : "2",
|
|
27835
|
+
value : [{
|
|
27836
|
+
DrillState : "collapsed",
|
|
27837
|
+
ID : "0",
|
|
27838
|
+
MANAGER_ID : null,
|
|
27839
|
+
Name : "Alpha"
|
|
27840
|
+
}, {
|
|
27841
|
+
DrillState : "collapsed",
|
|
27842
|
+
ID : "3",
|
|
27843
|
+
MANAGER_ID : null,
|
|
27844
|
+
Name : "Delta"
|
|
27845
|
+
}]
|
|
27846
|
+
})
|
|
27847
|
+
.expectChange("expanded", [false, false])
|
|
27848
|
+
.expectChange("name", ["Alpha", "Delta"]);
|
|
27849
|
+
|
|
27850
|
+
await this.createView(assert, sView, oModel);
|
|
27851
|
+
|
|
27852
|
+
this.expectRequest("EMPLOYEES"
|
|
27853
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '0'),1)"
|
|
27854
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=100", {
|
|
27855
|
+
"@odata.count" : "1",
|
|
27856
|
+
value : [{
|
|
27857
|
+
DrillState : "collapsed",
|
|
27858
|
+
ID : "1",
|
|
27859
|
+
MANAGER_ID : "0",
|
|
27860
|
+
Name : "Beta"
|
|
27861
|
+
}]
|
|
27862
|
+
})
|
|
27863
|
+
.expectChange("expanded", [true,, false])
|
|
27864
|
+
.expectChange("name", [, "Beta", "Delta"]);
|
|
27865
|
+
|
|
27866
|
+
const oTable = this.oView.byId("table");
|
|
27867
|
+
oTable.getItems()[0].getBindingContext().expand();
|
|
27868
|
+
|
|
27869
|
+
await this.waitForChanges(assert, "expand Alpha");
|
|
27870
|
+
|
|
27871
|
+
this.expectRequest("EMPLOYEES"
|
|
27872
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '1'),1)"
|
|
27873
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=100", {
|
|
27874
|
+
"@odata.count" : "1",
|
|
27875
|
+
value : [{
|
|
27876
|
+
DrillState : "collapsed",
|
|
27877
|
+
ID : "2",
|
|
27878
|
+
MANAGER_ID : "1",
|
|
27879
|
+
Name : "Gamma"
|
|
27880
|
+
}]
|
|
27881
|
+
})
|
|
27882
|
+
.expectChange("expanded", [, true,, false])
|
|
27883
|
+
.expectChange("name", [,, "Gamma", "Delta"]);
|
|
27884
|
+
|
|
27885
|
+
const oBeta = oTable.getItems()[1].getBindingContext();
|
|
27886
|
+
oBeta.expand();
|
|
27887
|
+
|
|
27888
|
+
await this.waitForChanges(assert, "expand Beta");
|
|
27889
|
+
|
|
27890
|
+
checkTable("after expand", assert, oTable, [
|
|
27891
|
+
"/EMPLOYEES('0')",
|
|
27892
|
+
"/EMPLOYEES('1')",
|
|
27893
|
+
"/EMPLOYEES('2')",
|
|
27894
|
+
"/EMPLOYEES('3')"
|
|
27895
|
+
], [
|
|
27896
|
+
[true, 1, "0", "", "Alpha"],
|
|
27897
|
+
[true, 2, "1", "0", "Beta"],
|
|
27898
|
+
[false, 3, "2", "1", "Gamma"],
|
|
27899
|
+
[false, 1, "3", "", "Delta"]
|
|
27900
|
+
], 4);
|
|
27901
|
+
|
|
27902
|
+
if (bExpanded) {
|
|
27903
|
+
this.expectChange("expanded", [, false]); // Beta is collapsed before being deleted
|
|
27904
|
+
} else {
|
|
27905
|
+
this.expectChange("expanded", [, false])
|
|
27906
|
+
.expectChange("name", [,, "Delta"]);
|
|
27907
|
+
|
|
27908
|
+
oBeta.collapse();
|
|
27909
|
+
|
|
27910
|
+
await this.waitForChanges(assert, "collapse Beta");
|
|
27911
|
+
|
|
27912
|
+
checkTable("after collapse", assert, oTable, [
|
|
27913
|
+
"/EMPLOYEES('0')",
|
|
27914
|
+
"/EMPLOYEES('1')",
|
|
27915
|
+
"/EMPLOYEES('3')"
|
|
27916
|
+
], [
|
|
27917
|
+
[true, 1, "0", "", "Alpha"],
|
|
27918
|
+
[false, 2, "1", "0", "Beta"],
|
|
27919
|
+
[false, 1, "3", "", "Delta"]
|
|
27920
|
+
], 3);
|
|
27921
|
+
}
|
|
27922
|
+
|
|
27923
|
+
this.expectChange("expanded", [undefined]) // Alpha is now a leaf
|
|
27924
|
+
.expectChange("name", [, "Delta"]);
|
|
27925
|
+
|
|
27926
|
+
// code under test
|
|
27927
|
+
const oDeletePromise = oBeta.delete("doNotSubmit");
|
|
27928
|
+
|
|
27929
|
+
await this.waitForChanges(assert, "delete Beta");
|
|
27930
|
+
|
|
27931
|
+
checkTable("after delete", assert, oTable, [
|
|
27932
|
+
"/EMPLOYEES('0')",
|
|
27933
|
+
"/EMPLOYEES('3')"
|
|
27934
|
+
], [
|
|
27935
|
+
[undefined, 1, "0", "", "Alpha"], // now a leaf
|
|
27936
|
+
[false, 1, "3", "", "Delta"]
|
|
27937
|
+
], 2);
|
|
27938
|
+
|
|
27939
|
+
this.expectCanceledError("Failed to delete /EMPLOYEES('1')",
|
|
27940
|
+
"Request canceled: DELETE EMPLOYEES('1'); group: doNotSubmit");
|
|
27941
|
+
if (bExpanded) {
|
|
27942
|
+
// Alpha is expanded again, Beta is expanded after being restored
|
|
27943
|
+
this.expectChange("expanded", [true, true, false, false])
|
|
27944
|
+
.expectChange("name", [, "Beta", "Gamma", "Delta"]);
|
|
27945
|
+
} else {
|
|
27946
|
+
this.expectChange("expanded", [true,, false]) // Alpha is expanded again
|
|
27947
|
+
.expectChange("name", [, "Beta", "Delta"]);
|
|
27948
|
+
}
|
|
27949
|
+
|
|
27950
|
+
// code under test
|
|
27951
|
+
oBeta.resetChanges();
|
|
27952
|
+
|
|
27953
|
+
await Promise.all([
|
|
27954
|
+
checkCanceled(assert, oDeletePromise),
|
|
27955
|
+
this.waitForChanges(assert, "cancel")
|
|
27956
|
+
]);
|
|
27957
|
+
|
|
27958
|
+
if (!bExpanded) {
|
|
27959
|
+
checkTable("after reset", assert, oTable, [
|
|
27960
|
+
"/EMPLOYEES('0')",
|
|
27961
|
+
"/EMPLOYEES('1')",
|
|
27962
|
+
"/EMPLOYEES('3')"
|
|
27963
|
+
], [
|
|
27964
|
+
[true, 1, "0", "", "Alpha"], // expanded again
|
|
27965
|
+
[false, 2, "1", "0", "Beta"],
|
|
27966
|
+
[false, 1, "3", "", "Delta"]
|
|
27967
|
+
], 3);
|
|
27968
|
+
|
|
27969
|
+
this.expectChange("expanded", [, true, , false])
|
|
27970
|
+
.expectChange("name", [, , "Gamma", "Delta"]);
|
|
27971
|
+
|
|
27972
|
+
// code under test
|
|
27973
|
+
oBeta.expand();
|
|
27974
|
+
|
|
27975
|
+
await this.waitForChanges(assert, "expand again");
|
|
27976
|
+
}
|
|
27977
|
+
|
|
27978
|
+
checkTable("finally", assert, oTable, [
|
|
27979
|
+
"/EMPLOYEES('0')",
|
|
27980
|
+
"/EMPLOYEES('1')",
|
|
27981
|
+
"/EMPLOYEES('2')",
|
|
27982
|
+
"/EMPLOYEES('3')"
|
|
27983
|
+
], [
|
|
27984
|
+
[true, 1, "0", "", "Alpha"],
|
|
27985
|
+
[true, 2, "1", "0", "Beta"],
|
|
27986
|
+
[false, 3, "2", "1", "Gamma"],
|
|
27987
|
+
[false, 1, "3", "", "Delta"]
|
|
27988
|
+
], 4);
|
|
27989
|
+
});
|
|
27990
|
+
});
|
|
27991
|
+
|
|
27992
|
+
//*********************************************************************************************
|
|
27993
|
+
// Scenario: Deferred delete in a recursive hierarchy. Before reinserting the node, delete two
|
|
27994
|
+
// other nodes, so that both the parent's position and the deleted node's position within the
|
|
27995
|
+
// level cache change.
|
|
27996
|
+
// * Expand Beta
|
|
27997
|
+
// * Deferred delete Delta
|
|
27998
|
+
// * Delete Gamma (Beta becomes leaf) and Alpha
|
|
27999
|
+
// * Reinsert Delta (Beta becomes expanded again)
|
|
28000
|
+
// JIRA: CPOUI5ODATAV4-2224
|
|
28001
|
+
QUnit.test("Recursive Hierarchy: delete and change reinsertion index", async function (assert) {
|
|
28002
|
+
const oModel = this.createTeaBusiModel({autoExpandSelect : true});
|
|
28003
|
+
const sView = `
|
|
28004
|
+
<Table id="table" items="{path : '/EMPLOYEES',
|
|
28005
|
+
parameters : {
|
|
28006
|
+
$$aggregation : {
|
|
28007
|
+
hierarchyQualifier : 'OrgChart'
|
|
28008
|
+
}
|
|
28009
|
+
}}">
|
|
28010
|
+
<Text id="expanded" text="{= %{@$ui5.node.isExpanded} }"/>
|
|
28011
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
28012
|
+
<Text text="{ID}"/>
|
|
28013
|
+
<Text text="{MANAGER_ID}"/>
|
|
28014
|
+
<Text id="name" text="{Name}"/>
|
|
28015
|
+
</Table>`;
|
|
28016
|
+
|
|
28017
|
+
// 0 Alpha (delete to change Beta's index)
|
|
28018
|
+
// 1 Beta
|
|
28019
|
+
// 2 Gamma (delete to change Delta's index in the level cache and make Beta a leaf)
|
|
28020
|
+
// 3 Delta (deferred delete and reinsert)
|
|
28021
|
+
// 4 Epsilon
|
|
28022
|
+
this.expectRequest("EMPLOYEES?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels"
|
|
28023
|
+
+ "(HierarchyNodes=$root/EMPLOYEES,HierarchyQualifier='OrgChart',NodeProperty='ID'"
|
|
28024
|
+
+ ",Levels=1)"
|
|
28025
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=100", {
|
|
28026
|
+
"@odata.count" : "3",
|
|
28027
|
+
value : [{
|
|
28028
|
+
DrillState : "collapsed",
|
|
28029
|
+
ID : "0",
|
|
28030
|
+
MANAGER_ID : null,
|
|
28031
|
+
Name : "Alpha"
|
|
28032
|
+
}, {
|
|
28033
|
+
DrillState : "collapsed",
|
|
28034
|
+
ID : "1",
|
|
28035
|
+
MANAGER_ID : null,
|
|
28036
|
+
Name : "Beta"
|
|
28037
|
+
}, {
|
|
28038
|
+
DrillState : "collapsed",
|
|
28039
|
+
ID : "4",
|
|
28040
|
+
MANAGER_ID : null,
|
|
28041
|
+
Name : "Epsilon"
|
|
28042
|
+
}]
|
|
28043
|
+
})
|
|
28044
|
+
.expectChange("expanded", [false, false, false])
|
|
28045
|
+
.expectChange("name", ["Alpha", "Beta", "Epsilon"]);
|
|
28046
|
+
|
|
28047
|
+
await this.createView(assert, sView, oModel);
|
|
28048
|
+
|
|
28049
|
+
this.expectRequest("EMPLOYEES"
|
|
28050
|
+
+ "?$apply=descendants($root/EMPLOYEES,OrgChart,ID,filter(ID eq '1'),1)"
|
|
28051
|
+
+ "&$select=DrillState,ID,MANAGER_ID,Name&$count=true&$skip=0&$top=100", {
|
|
28052
|
+
"@odata.count" : "2",
|
|
28053
|
+
value : [{
|
|
28054
|
+
DrillState : "collapsed",
|
|
28055
|
+
ID : "2",
|
|
28056
|
+
MANAGER_ID : "1",
|
|
28057
|
+
Name : "Gamma"
|
|
28058
|
+
}, {
|
|
28059
|
+
DrillState : "leaf",
|
|
28060
|
+
ID : "3",
|
|
28061
|
+
MANAGER_ID : "1",
|
|
28062
|
+
Name : "Delta"
|
|
28063
|
+
}]
|
|
28064
|
+
})
|
|
28065
|
+
.expectChange("expanded", [, true,, undefined, false])
|
|
28066
|
+
.expectChange("name", [,, "Gamma", "Delta", "Epsilon"]);
|
|
28067
|
+
|
|
28068
|
+
const oTable = this.oView.byId("table");
|
|
28069
|
+
oTable.getItems()[1].getBindingContext().expand();
|
|
28070
|
+
|
|
28071
|
+
await this.waitForChanges(assert, "expand Beta");
|
|
28072
|
+
|
|
28073
|
+
checkTable("before delete", assert, oTable, [
|
|
28074
|
+
"/EMPLOYEES('0')",
|
|
28075
|
+
"/EMPLOYEES('1')",
|
|
28076
|
+
"/EMPLOYEES('2')",
|
|
28077
|
+
"/EMPLOYEES('3')",
|
|
28078
|
+
"/EMPLOYEES('4')"
|
|
28079
|
+
], [
|
|
28080
|
+
[false, 1, "0", "", "Alpha"],
|
|
28081
|
+
[true, 1, "1", "", "Beta"],
|
|
28082
|
+
[false, 2, "2", "1", "Gamma"],
|
|
28083
|
+
[undefined, 2, "3", "1", "Delta"],
|
|
28084
|
+
[false, 1, "4", "", "Epsilon"]
|
|
28085
|
+
], 5);
|
|
28086
|
+
|
|
28087
|
+
this.expectChange("expanded", [,,, false])
|
|
28088
|
+
.expectChange("name", [,,, "Epsilon"]);
|
|
28089
|
+
|
|
28090
|
+
// code under test
|
|
28091
|
+
const oDelta = oTable.getItems()[3].getBindingContext();
|
|
28092
|
+
const oDeleteDeltaPromise = oDelta.delete("doNotSubmit");
|
|
28093
|
+
|
|
28094
|
+
await this.waitForChanges(assert, "delete Delta");
|
|
28095
|
+
|
|
28096
|
+
this.expectChange("expanded", [undefined, false])
|
|
28097
|
+
.expectChange("name", ["Beta", "Epsilon"])
|
|
28098
|
+
.expectRequest("DELETE EMPLOYEES('2')")
|
|
28099
|
+
.expectRequest("DELETE EMPLOYEES('0')");
|
|
28100
|
+
|
|
28101
|
+
// code under test
|
|
28102
|
+
const oDeleteGammaPromise = oTable.getItems()[2].getBindingContext().delete();
|
|
28103
|
+
const oDeleteAlphaPromise = oTable.getItems()[0].getBindingContext().delete();
|
|
28104
|
+
|
|
28105
|
+
await Promise.all([
|
|
28106
|
+
oDeleteGammaPromise,
|
|
28107
|
+
oDeleteAlphaPromise,
|
|
28108
|
+
this.waitForChanges(assert, "delete Gamma and Alpha")
|
|
28109
|
+
]);
|
|
28110
|
+
|
|
28111
|
+
checkTable("after delete", assert, oTable, [
|
|
28112
|
+
"/EMPLOYEES('1')",
|
|
28113
|
+
"/EMPLOYEES('4')"
|
|
28114
|
+
], [
|
|
28115
|
+
[undefined, 1, "1", "", "Beta"],
|
|
28116
|
+
[false, 1, "4", "", "Epsilon"]
|
|
28117
|
+
], 2);
|
|
28118
|
+
|
|
28119
|
+
this.expectCanceledError("Failed to delete /EMPLOYEES('3')",
|
|
28120
|
+
"Request canceled: DELETE EMPLOYEES('3'); group: doNotSubmit")
|
|
28121
|
+
.expectChange("expanded", [true, undefined, false])
|
|
28122
|
+
.expectChange("name", [, "Delta", "Epsilon"]);
|
|
28123
|
+
|
|
28124
|
+
// code under test
|
|
28125
|
+
oDelta.resetChanges();
|
|
28126
|
+
|
|
28127
|
+
await Promise.all([
|
|
28128
|
+
checkCanceled(assert, oDeleteDeltaPromise),
|
|
28129
|
+
this.waitForChanges(assert, "reinsert delta")
|
|
28130
|
+
]);
|
|
28131
|
+
|
|
28132
|
+
checkTable("after reinsert", assert, oTable, [
|
|
28133
|
+
"/EMPLOYEES('1')",
|
|
28134
|
+
"/EMPLOYEES('3')",
|
|
28135
|
+
"/EMPLOYEES('4')"
|
|
28136
|
+
], [
|
|
28137
|
+
[true, 1, "1", "", "Beta"],
|
|
28138
|
+
[undefined, 2, "3", "1", "Delta"],
|
|
28139
|
+
[false, 1, "4", "", "Epsilon"]
|
|
28140
|
+
], 3);
|
|
28141
|
+
});
|
|
28142
|
+
|
|
27477
28143
|
//*********************************************************************************************
|
|
27478
28144
|
// Scenario: Show the single root node of a recursive hierarchy, which happens to be a leaf.
|
|
27479
28145
|
// Create two new child nodes underneath.
|
|
27480
28146
|
// Note: The "_Friend" navigation property is misused in order to have an artist play the role
|
|
27481
28147
|
// of a hierarchy directory. This way, a draft root object is available (as needed by real
|
|
27482
28148
|
// services).
|
|
27483
|
-
// JIRA: CPOUI5ODATAV4-
|
|
28149
|
+
// JIRA: CPOUI5ODATAV4-2225
|
|
28150
|
+
//
|
|
28151
|
+
// Create new child and cancel immediately (JIRA: CPOUI5ODATAV4-2272)
|
|
28152
|
+
// @odata.bind in POST relative to resource path (BCP: 2380119648)
|
|
28153
|
+
// Delete the second child again. (JIRA: CPOUI5ODATAV4-2224)
|
|
27484
28154
|
QUnit.test("Recursive Hierarchy: create new children", function (assert) {
|
|
27485
28155
|
var oChild, oListBinding, fnRespond, oRoot, oTable;
|
|
27486
28156
|
|
|
@@ -27541,12 +28211,19 @@ sap.ui.define([
|
|
|
27541
28211
|
oListBinding.create({}, /*bSkipRefresh*/true);
|
|
27542
28212
|
}); // TypeError: Cannot read properties of undefined (reading 'getCanonicalPath')
|
|
27543
28213
|
|
|
28214
|
+
// code under test (JIRA: CPOUI5ODATAV4-2272)
|
|
28215
|
+
const oLostChild = oListBinding.create({
|
|
28216
|
+
"@$ui5.node.parent" : oRoot,
|
|
28217
|
+
Name : "n/a"
|
|
28218
|
+
}, /*bSkipRefresh*/true);
|
|
28219
|
+
oModel.resetChanges();
|
|
28220
|
+
|
|
27544
28221
|
that.expectChange("name", [, "Beta"])
|
|
27545
28222
|
.expectRequest({
|
|
27546
28223
|
method : "POST",
|
|
27547
28224
|
url : sFriend.slice(1),
|
|
27548
28225
|
payload : {
|
|
27549
|
-
"BestFriend@odata.bind" : "Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28226
|
+
"BestFriend@odata.bind" : "../Artists(ArtistID='0',IsActiveEntity=false)",
|
|
27550
28227
|
Name : "Beta"
|
|
27551
28228
|
}
|
|
27552
28229
|
}, new Promise(function (resolve) {
|
|
@@ -27564,7 +28241,10 @@ sap.ui.define([
|
|
|
27564
28241
|
Name : "Beta"
|
|
27565
28242
|
}, /*bSkipRefresh*/true);
|
|
27566
28243
|
|
|
27567
|
-
return
|
|
28244
|
+
return Promise.all([
|
|
28245
|
+
checkCanceled(assert, oLostChild.created()),
|
|
28246
|
+
that.waitForChanges(assert, "create 1st child")
|
|
28247
|
+
]);
|
|
27568
28248
|
}).then(function () {
|
|
27569
28249
|
checkTable("during creation", assert, oTable, [
|
|
27570
28250
|
sFriend + "(ArtistID='0',IsActiveEntity=false)",
|
|
@@ -27603,15 +28283,23 @@ sap.ui.define([
|
|
|
27603
28283
|
Name : "Beta: β"
|
|
27604
28284
|
});
|
|
27605
28285
|
|
|
28286
|
+
// code under test (JIRA: CPOUI5ODATAV4-2272)
|
|
28287
|
+
const oLostChild = oListBinding.create({
|
|
28288
|
+
"@$ui5.node.parent" : oRoot,
|
|
28289
|
+
Name : "n/a"
|
|
28290
|
+
}, /*bSkipRefresh*/true);
|
|
28291
|
+
oModel.resetChanges();
|
|
28292
|
+
|
|
27606
28293
|
that.expectChange("name", [, "Gamma", "Beta: β"])
|
|
27607
28294
|
.expectRequest({
|
|
27608
28295
|
method : "POST",
|
|
27609
28296
|
url : sFriend.slice(1),
|
|
27610
28297
|
payload : {
|
|
27611
|
-
"BestFriend@odata.bind" : "Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28298
|
+
"BestFriend@odata.bind" : "../Artists(ArtistID='0',IsActiveEntity=false)",
|
|
27612
28299
|
Name : "Gamma"
|
|
27613
28300
|
}
|
|
27614
28301
|
}, {
|
|
28302
|
+
"@odata.etag" : "etag2.0",
|
|
27615
28303
|
ArtistID : "2",
|
|
27616
28304
|
IsActiveEntity : false,
|
|
27617
28305
|
Name : "Gamma: γ" // side effect
|
|
@@ -27627,6 +28315,7 @@ sap.ui.define([
|
|
|
27627
28315
|
assert.strictEqual(oChild.getIndex(), 1);
|
|
27628
28316
|
|
|
27629
28317
|
return Promise.all([
|
|
28318
|
+
checkCanceled(assert, oLostChild.created()),
|
|
27630
28319
|
oChild.created(),
|
|
27631
28320
|
that.waitForChanges(assert, "create 2nd child")
|
|
27632
28321
|
]);
|
|
@@ -27640,9 +28329,301 @@ sap.ui.define([
|
|
|
27640
28329
|
[undefined, 2, "Gamma: γ"],
|
|
27641
28330
|
[undefined, 2, "Beta: β"]
|
|
27642
28331
|
]);
|
|
28332
|
+
|
|
28333
|
+
that.expectChange("name", [, "Beta: β"])
|
|
28334
|
+
.expectRequest({
|
|
28335
|
+
method : "DELETE",
|
|
28336
|
+
headers : {
|
|
28337
|
+
"If-Match" : "etag2.0"
|
|
28338
|
+
},
|
|
28339
|
+
url : "Artists(ArtistID='2',IsActiveEntity=false)"
|
|
28340
|
+
});
|
|
28341
|
+
|
|
28342
|
+
return Promise.all([
|
|
28343
|
+
// code under test
|
|
28344
|
+
oChild.delete(),
|
|
28345
|
+
that.waitForChanges(assert, "delete 2nd child")
|
|
28346
|
+
]);
|
|
28347
|
+
}).then(function () {
|
|
28348
|
+
checkTable("after deletion", assert, oTable, [
|
|
28349
|
+
sFriend + "(ArtistID='0',IsActiveEntity=false)",
|
|
28350
|
+
sFriend + "(ArtistID='1',IsActiveEntity=false)"
|
|
28351
|
+
], [
|
|
28352
|
+
[true, 1, "Alpha"],
|
|
28353
|
+
[undefined, 2, "Beta: β"],
|
|
28354
|
+
["", "", ""]
|
|
28355
|
+
]);
|
|
27643
28356
|
});
|
|
27644
28357
|
});
|
|
27645
28358
|
|
|
28359
|
+
//*********************************************************************************************
|
|
28360
|
+
// Scenario: Show the single root node of a recursive hierarchy and expand it. Not all children
|
|
28361
|
+
// are loaded, but some placeholders remain. Create two new child nodes underneath the root.
|
|
28362
|
+
// Scroll down to load the other children.
|
|
28363
|
+
// JIRA: CPOUI5ODATAV4-2260
|
|
28364
|
+
//
|
|
28365
|
+
// Create new child and cancel immediately (JIRA: CPOUI5ODATAV4-2272)
|
|
28366
|
+
// Also delete instead of cancelling (JIRA: CPOUI5ODATAV4-2274)
|
|
28367
|
+
[false, true].forEach(function (bDelete) {
|
|
28368
|
+
const sTitle = `Recursive Hierarchy: create new children & placeholders, delete=${bDelete}`;
|
|
28369
|
+
|
|
28370
|
+
QUnit.test(sTitle, function (assert) {
|
|
28371
|
+
var oListBinding, oRoot, oTable;
|
|
28372
|
+
|
|
28373
|
+
const oModel = this.createSpecialCasesModel({autoExpandSelect : true});
|
|
28374
|
+
const sView = `
|
|
28375
|
+
<t:Table id="table" rows="{path : '/Artists',
|
|
28376
|
+
parameters : {
|
|
28377
|
+
$$aggregation : {
|
|
28378
|
+
hierarchyQualifier : 'OrgChart'
|
|
28379
|
+
}
|
|
28380
|
+
}}" threshold="0" visibleRowCount="3">
|
|
28381
|
+
<Text text="{= %{@$ui5.node.isExpanded} }"/>
|
|
28382
|
+
<Text text="{= %{@$ui5.node.level} }"/>
|
|
28383
|
+
<Text id="id" text="{ArtistID}"/>\
|
|
28384
|
+
<Text id="name" text="{Name}"/>
|
|
28385
|
+
</t:Table>`;
|
|
28386
|
+
const that = this;
|
|
28387
|
+
|
|
28388
|
+
this.expectRequest({
|
|
28389
|
+
batchNo : 1,
|
|
28390
|
+
url : "Artists?$apply=com.sap.vocabularies.Hierarchy.v1.TopLevels("
|
|
28391
|
+
+ "HierarchyNodes=$root/Artists,HierarchyQualifier='OrgChart'"
|
|
28392
|
+
+ ",NodeProperty='_/NodeID',Levels=1)"
|
|
28393
|
+
+ "&$select=ArtistID,IsActiveEntity,Name,_/DrillState,_/NodeID"
|
|
28394
|
+
+ "&$count=true&$skip=0&$top=3"
|
|
28395
|
+
}, {
|
|
28396
|
+
"@odata.count" : "1",
|
|
28397
|
+
value : [{
|
|
28398
|
+
ArtistID : "0",
|
|
28399
|
+
IsActiveEntity : false,
|
|
28400
|
+
Name : "Alpha",
|
|
28401
|
+
_ : {
|
|
28402
|
+
// DescendantCount : "0", // not needed w/o expandTo
|
|
28403
|
+
// DistanceFromRoot : "0", // not needed w/o expandTo
|
|
28404
|
+
DrillState : "collapsed",
|
|
28405
|
+
NodeID : "0,false"
|
|
28406
|
+
}
|
|
28407
|
+
}]
|
|
28408
|
+
})
|
|
28409
|
+
.expectChange("id", ["0"])
|
|
28410
|
+
.expectChange("name", ["Alpha"]);
|
|
28411
|
+
|
|
28412
|
+
return this.createView(assert, sView, oModel).then(function () {
|
|
28413
|
+
oTable = that.oView.byId("table");
|
|
28414
|
+
oRoot = oTable.getRows()[0].getBindingContext();
|
|
28415
|
+
oListBinding = oRoot.getBinding();
|
|
28416
|
+
|
|
28417
|
+
checkTable("root is leaf", assert, oTable, [
|
|
28418
|
+
"/Artists(ArtistID='0',IsActiveEntity=false)"
|
|
28419
|
+
], [
|
|
28420
|
+
[false, 1, "0", "Alpha"],
|
|
28421
|
+
["", "", "", ""],
|
|
28422
|
+
["", "", "", ""]
|
|
28423
|
+
]);
|
|
28424
|
+
|
|
28425
|
+
that.expectRequest("Artists?$apply=descendants($root/Artists,OrgChart,_/NodeID"
|
|
28426
|
+
+ ",filter(ArtistID eq '0' and IsActiveEntity eq false),1)"
|
|
28427
|
+
+ "&$select=ArtistID,IsActiveEntity,Name,_/DrillState,_/NodeID"
|
|
28428
|
+
+ "&$count=true&$skip=0&$top=3", {
|
|
28429
|
+
"@odata.count" : "5",
|
|
28430
|
+
value : [{
|
|
28431
|
+
ArtistID : "1",
|
|
28432
|
+
IsActiveEntity : false,
|
|
28433
|
+
Name : "Beta",
|
|
28434
|
+
_ : {
|
|
28435
|
+
DrillState : "leaf",
|
|
28436
|
+
NodeID : "1,false"
|
|
28437
|
+
}
|
|
28438
|
+
}, {
|
|
28439
|
+
ArtistID : "2",
|
|
28440
|
+
IsActiveEntity : false,
|
|
28441
|
+
Name : "Gamma",
|
|
28442
|
+
_ : {
|
|
28443
|
+
DrillState : "leaf",
|
|
28444
|
+
NodeID : "2,false"
|
|
28445
|
+
}
|
|
28446
|
+
}, {
|
|
28447
|
+
ArtistID : "3",
|
|
28448
|
+
IsActiveEntity : false,
|
|
28449
|
+
Name : "Delta",
|
|
28450
|
+
_ : {
|
|
28451
|
+
DrillState : "leaf",
|
|
28452
|
+
NodeID : "3,false"
|
|
28453
|
+
}
|
|
28454
|
+
}]
|
|
28455
|
+
})
|
|
28456
|
+
.expectChange("id", [, "1", "2"])
|
|
28457
|
+
.expectChange("name", [, "Beta", "Gamma"]);
|
|
28458
|
+
|
|
28459
|
+
// code under test
|
|
28460
|
+
oRoot.expand();
|
|
28461
|
+
|
|
28462
|
+
return that.waitForChanges(assert, "expand");
|
|
28463
|
+
}).then(function () {
|
|
28464
|
+
checkTable("after expand", assert, oTable, [
|
|
28465
|
+
"/Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28466
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
28467
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)",
|
|
28468
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)"
|
|
28469
|
+
], [
|
|
28470
|
+
[true, 1, "0", "Alpha"],
|
|
28471
|
+
[undefined, 2, "1", "Beta"],
|
|
28472
|
+
[undefined, 2, "2", "Gamma"]
|
|
28473
|
+
], 6);
|
|
28474
|
+
|
|
28475
|
+
// code under test (JIRA: CPOUI5ODATAV4-2272, JIRA: CPOUI5ODATAV4-2274)
|
|
28476
|
+
const oLostChild = oListBinding.create({
|
|
28477
|
+
"@$ui5.node.parent" : oRoot,
|
|
28478
|
+
Name : "n/a"
|
|
28479
|
+
}, /*bSkipRefresh*/true);
|
|
28480
|
+
if (bDelete) {
|
|
28481
|
+
oLostChild.delete();
|
|
28482
|
+
} else {
|
|
28483
|
+
oModel.resetChanges();
|
|
28484
|
+
}
|
|
28485
|
+
|
|
28486
|
+
that.expectChange("id", [, "", "1"])
|
|
28487
|
+
.expectChange("name", [, "1st new child", "Beta"])
|
|
28488
|
+
.expectRequest({
|
|
28489
|
+
method : "POST",
|
|
28490
|
+
url : "Artists",
|
|
28491
|
+
payload : {
|
|
28492
|
+
"BestFriend@odata.bind" : "Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28493
|
+
Name : "1st new child"
|
|
28494
|
+
}
|
|
28495
|
+
}, {
|
|
28496
|
+
ArtistID : "11",
|
|
28497
|
+
IsActiveEntity : false,
|
|
28498
|
+
Name : "First new child" // side effect
|
|
28499
|
+
})
|
|
28500
|
+
.expectChange("id", [, "11"])
|
|
28501
|
+
.expectChange("name", [, "First new child"]);
|
|
28502
|
+
|
|
28503
|
+
// code under test
|
|
28504
|
+
const oChild = oListBinding.create({
|
|
28505
|
+
"@$ui5.node.parent" : oRoot,
|
|
28506
|
+
Name : "1st new child"
|
|
28507
|
+
}, /*bSkipRefresh*/true);
|
|
28508
|
+
|
|
28509
|
+
return Promise.all([
|
|
28510
|
+
checkCanceled(assert, oLostChild.created()),
|
|
28511
|
+
oChild.created(),
|
|
28512
|
+
that.waitForChanges(assert, "create 1st child")
|
|
28513
|
+
]);
|
|
28514
|
+
}).then(function () {
|
|
28515
|
+
that.expectChange("id", [, "", "11"])
|
|
28516
|
+
.expectChange("name", [, "2nd new child", "First new child"])
|
|
28517
|
+
.expectRequest({
|
|
28518
|
+
method : "POST",
|
|
28519
|
+
url : "Artists",
|
|
28520
|
+
payload : {
|
|
28521
|
+
"BestFriend@odata.bind" : "Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28522
|
+
Name : "2nd new child"
|
|
28523
|
+
}
|
|
28524
|
+
}, {
|
|
28525
|
+
ArtistID : "12",
|
|
28526
|
+
IsActiveEntity : false,
|
|
28527
|
+
Name : "Second new child" // side effect
|
|
28528
|
+
})
|
|
28529
|
+
.expectChange("id", [, "12"])
|
|
28530
|
+
.expectChange("name", [, "Second new child"]);
|
|
28531
|
+
|
|
28532
|
+
// code under test
|
|
28533
|
+
const oChild = oListBinding.create({
|
|
28534
|
+
"@$ui5.node.parent" : oRoot,
|
|
28535
|
+
Name : "2nd new child"
|
|
28536
|
+
}, /*bSkipRefresh*/true);
|
|
28537
|
+
|
|
28538
|
+
return Promise.all([
|
|
28539
|
+
oChild.created(),
|
|
28540
|
+
that.waitForChanges(assert, "create 2nd child")
|
|
28541
|
+
]);
|
|
28542
|
+
}).then(function () {
|
|
28543
|
+
checkTable("after creation", assert, oTable, [
|
|
28544
|
+
"/Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28545
|
+
"/Artists(ArtistID='12',IsActiveEntity=false)",
|
|
28546
|
+
"/Artists(ArtistID='11',IsActiveEntity=false)",
|
|
28547
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
28548
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)",
|
|
28549
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)"
|
|
28550
|
+
], [
|
|
28551
|
+
[true, 1, "0", "Alpha"],
|
|
28552
|
+
[undefined, 2, "12", "Second new child"],
|
|
28553
|
+
[undefined, 2, "11", "First new child"]
|
|
28554
|
+
], 8);
|
|
28555
|
+
|
|
28556
|
+
that.expectChange("id", [,,, "1", "2", "3"])
|
|
28557
|
+
.expectChange("name", [,,, "Beta", "Gamma", "Delta"]);
|
|
28558
|
+
|
|
28559
|
+
// code under test
|
|
28560
|
+
oTable.setFirstVisibleRow(3);
|
|
28561
|
+
|
|
28562
|
+
return that.waitForChanges(assert, "scroll down");
|
|
28563
|
+
}).then(function () {
|
|
28564
|
+
checkTable("after scroll down", assert, oTable, [
|
|
28565
|
+
"/Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28566
|
+
"/Artists(ArtistID='12',IsActiveEntity=false)",
|
|
28567
|
+
"/Artists(ArtistID='11',IsActiveEntity=false)",
|
|
28568
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
28569
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)",
|
|
28570
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)"
|
|
28571
|
+
], [
|
|
28572
|
+
[undefined, 2, "1", "Beta"],
|
|
28573
|
+
[undefined, 2, "2", "Gamma"],
|
|
28574
|
+
[undefined, 2, "3", "Delta"]
|
|
28575
|
+
], 8);
|
|
28576
|
+
|
|
28577
|
+
that.expectRequest("Artists?$apply=descendants($root/Artists,OrgChart,_/NodeID"
|
|
28578
|
+
+ ",filter(ArtistID eq '0' and IsActiveEntity eq false),1)"
|
|
28579
|
+
+ "&$select=ArtistID,IsActiveEntity,Name,_/DrillState,_/NodeID"
|
|
28580
|
+
+ "&$filter=not (ArtistID eq '11' and IsActiveEntity eq false"
|
|
28581
|
+
+ " or ArtistID eq '12' and IsActiveEntity eq false)"
|
|
28582
|
+
+ "&$skip=3&$top=2", {
|
|
28583
|
+
value : [{
|
|
28584
|
+
ArtistID : "4",
|
|
28585
|
+
IsActiveEntity : false,
|
|
28586
|
+
Name : "Epsilon",
|
|
28587
|
+
_ : {
|
|
28588
|
+
DrillState : "leaf",
|
|
28589
|
+
NodeID : "4,false"
|
|
28590
|
+
}
|
|
28591
|
+
}, {
|
|
28592
|
+
ArtistID : "5",
|
|
28593
|
+
IsActiveEntity : false,
|
|
28594
|
+
Name : "Zeta",
|
|
28595
|
+
_ : {
|
|
28596
|
+
DrillState : "leaf",
|
|
28597
|
+
NodeID : "5,false"
|
|
28598
|
+
}
|
|
28599
|
+
}]
|
|
28600
|
+
})
|
|
28601
|
+
.expectChange("id", [,,,,, "3", "4", "5"])
|
|
28602
|
+
.expectChange("name", [,,,,, "Delta", "Epsilon", "Zeta"]);
|
|
28603
|
+
|
|
28604
|
+
// code under test
|
|
28605
|
+
oTable.setFirstVisibleRow(5);
|
|
28606
|
+
|
|
28607
|
+
return that.waitForChanges(assert, "scroll to bottom");
|
|
28608
|
+
}).then(function () {
|
|
28609
|
+
checkTable("after scroll to bottom", assert, oTable, [
|
|
28610
|
+
"/Artists(ArtistID='0',IsActiveEntity=false)",
|
|
28611
|
+
"/Artists(ArtistID='12',IsActiveEntity=false)",
|
|
28612
|
+
"/Artists(ArtistID='11',IsActiveEntity=false)",
|
|
28613
|
+
"/Artists(ArtistID='1',IsActiveEntity=false)",
|
|
28614
|
+
"/Artists(ArtistID='2',IsActiveEntity=false)",
|
|
28615
|
+
"/Artists(ArtistID='3',IsActiveEntity=false)",
|
|
28616
|
+
"/Artists(ArtistID='4',IsActiveEntity=false)",
|
|
28617
|
+
"/Artists(ArtistID='5',IsActiveEntity=false)"
|
|
28618
|
+
], [
|
|
28619
|
+
[undefined, 2, "3", "Delta"],
|
|
28620
|
+
[undefined, 2, "4", "Epsilon"],
|
|
28621
|
+
[undefined, 2, "5", "Zeta"]
|
|
28622
|
+
]);
|
|
28623
|
+
});
|
|
28624
|
+
});
|
|
28625
|
+
});
|
|
28626
|
+
|
|
27646
28627
|
//*********************************************************************************************
|
|
27647
28628
|
// Scenario: Application tries to overwrite client-side instance annotations.
|
|
27648
28629
|
// JIRA: CPOUI5UISERVICESV3-1220
|
|
@@ -28895,8 +29876,6 @@ sap.ui.define([
|
|
|
28895
29876
|
|
|
28896
29877
|
return that.waitForChanges(assert);
|
|
28897
29878
|
}).then(function () {
|
|
28898
|
-
var oMessageManager = sap.ui.getCore().getMessageManager();
|
|
28899
|
-
|
|
28900
29879
|
// 4c. Patching a property via the wrong context must not succeed
|
|
28901
29880
|
// We're not interested in the exact errors, only in some failure
|
|
28902
29881
|
that.oLogMock.expects("error").twice();
|
|
@@ -28905,8 +29884,8 @@ sap.ui.define([
|
|
|
28905
29884
|
.setProperty("BestFriend/Name", "n/a")
|
|
28906
29885
|
.then(mustFail(assert), function () {
|
|
28907
29886
|
// expect one message and remove it again
|
|
28908
|
-
assert.strictEqual(
|
|
28909
|
-
|
|
29887
|
+
assert.strictEqual(Messaging.getMessageModel().getObject("/").length, 1);
|
|
29888
|
+
Messaging.removeAllMessages();
|
|
28910
29889
|
|
|
28911
29890
|
assert.strictEqual(oReturnValueContext.getProperty("BestFriend/Name"),
|
|
28912
29891
|
"Sgt. Pepper (modified)");
|
|
@@ -32161,7 +33140,7 @@ sap.ui.define([
|
|
|
32161
33140
|
]);
|
|
32162
33141
|
}).then(function () {
|
|
32163
33142
|
// remove persistent, technical messages from above
|
|
32164
|
-
|
|
33143
|
+
Messaging.removeAllMessages();
|
|
32165
33144
|
|
|
32166
33145
|
that.expectMessages([]);
|
|
32167
33146
|
|
|
@@ -34942,7 +35921,7 @@ sap.ui.define([
|
|
|
34942
35921
|
type : "Error"
|
|
34943
35922
|
}]);
|
|
34944
35923
|
|
|
34945
|
-
|
|
35924
|
+
Messaging.removeAllMessages();
|
|
34946
35925
|
|
|
34947
35926
|
return Promise.all([
|
|
34948
35927
|
// code under test
|
|
@@ -34975,7 +35954,7 @@ sap.ui.define([
|
|
|
34975
35954
|
type : "Warning"
|
|
34976
35955
|
}]);
|
|
34977
35956
|
|
|
34978
|
-
|
|
35957
|
+
Messaging.removeAllMessages();
|
|
34979
35958
|
|
|
34980
35959
|
// code under test
|
|
34981
35960
|
oTable.getItems("items")[0].getCells()[1].getBinding("value")
|
|
@@ -38355,7 +39334,7 @@ sap.ui.define([
|
|
|
38355
39334
|
assert.equal(oTableBinding.getLength(), 3);
|
|
38356
39335
|
|
|
38357
39336
|
// remove persistent, technical messages from above
|
|
38358
|
-
|
|
39337
|
+
Messaging.removeAllMessages();
|
|
38359
39338
|
that.expectMessages([]);
|
|
38360
39339
|
|
|
38361
39340
|
oCausingError = oFixture.expectations.call(that);
|
|
@@ -38459,7 +39438,7 @@ sap.ui.define([
|
|
|
38459
39438
|
var oError = createErrorInsideBatch();
|
|
38460
39439
|
|
|
38461
39440
|
// remove persistent, technical messages from above
|
|
38462
|
-
|
|
39441
|
+
Messaging.removeAllMessages();
|
|
38463
39442
|
|
|
38464
39443
|
that.oLogMock.expects("error")
|
|
38465
39444
|
.withExactArgs("POST on 'SalesOrderList' failed; will be repeated automatically",
|
|
@@ -41497,7 +42476,7 @@ sap.ui.define([
|
|
|
41497
42476
|
type : "Success"
|
|
41498
42477
|
}]);
|
|
41499
42478
|
|
|
41500
|
-
|
|
42479
|
+
Messaging.removeAllMessages();
|
|
41501
42480
|
oInput.getBinding("value").setValue("F3");
|
|
41502
42481
|
|
|
41503
42482
|
return Promise.all([
|
|
@@ -47365,6 +48344,14 @@ sap.ui.define([
|
|
|
47365
48344
|
assert.strictEqual(oBinding.hasPendingChanges(true), false);
|
|
47366
48345
|
oBinding.filter(new Filter("MANAGER_ID", FilterOperator.NE, 666));
|
|
47367
48346
|
|
|
48347
|
+
// code under test BCP: 2380097809
|
|
48348
|
+
const aContexts = oBinding.getAllCurrentContexts();
|
|
48349
|
+
|
|
48350
|
+
assert.strictEqual(aContexts.length, 3);
|
|
48351
|
+
assert.strictEqual(aContexts[0], oContextC);
|
|
48352
|
+
assert.strictEqual(aContexts[1], oContextB);
|
|
48353
|
+
assert.strictEqual(aContexts[2], oContextA);
|
|
48354
|
+
|
|
47368
48355
|
return that.waitForChanges(assert, "filter");
|
|
47369
48356
|
}).then(function () {
|
|
47370
48357
|
that.expectRequest("TEAMS?$count=true&$select=Name,Team_Id&$orderby=Team_Id desc"
|
|
@@ -49382,9 +50369,16 @@ sap.ui.define([
|
|
|
49382
50369
|
oBinding = that.oView.byId("table").getBinding("items");
|
|
49383
50370
|
|
|
49384
50371
|
oBinding.attachCreateActivate(function (oEvent) {
|
|
49385
|
-
|
|
50372
|
+
const oContext = oEvent.getParameter("context");
|
|
50373
|
+
assert.ok(oContext.isInactive());
|
|
50374
|
+
assert.strictEqual(
|
|
50375
|
+
oContext.isInactive(),
|
|
50376
|
+
oContext.getProperty("@$ui5.context.isInactive"));
|
|
50377
|
+
if (!oContext.getProperty("Team_Id")) {
|
|
49386
50378
|
// code under test
|
|
49387
50379
|
oEvent.preventDefault();
|
|
50380
|
+
} else {
|
|
50381
|
+
oContext.setProperty("BudgetCurrency", "EUR");
|
|
49388
50382
|
}
|
|
49389
50383
|
});
|
|
49390
50384
|
|
|
@@ -49432,6 +50426,7 @@ sap.ui.define([
|
|
|
49432
50426
|
method : "POST",
|
|
49433
50427
|
url : "TEAMS",
|
|
49434
50428
|
payload : {
|
|
50429
|
+
BudgetCurrency : "EUR",
|
|
49435
50430
|
Name : "Team #1 edited",
|
|
49436
50431
|
Team_Id : "TEAM_01"
|
|
49437
50432
|
}
|
|
@@ -49484,6 +50479,7 @@ sap.ui.define([
|
|
|
49484
50479
|
method : "POST",
|
|
49485
50480
|
url : "TEAMS",
|
|
49486
50481
|
payload : {
|
|
50482
|
+
BudgetCurrency : "EUR",
|
|
49487
50483
|
Name : "Team #2 inactive",
|
|
49488
50484
|
Team_Id : "TEAM_02"
|
|
49489
50485
|
}
|