@openui5/sap.ui.core 1.125.0 → 1.126.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dtsgenrc +76 -0
- package/.eslintrc.json +4 -1
- package/.reuse/dep5 +4 -4
- package/THIRDPARTY.txt +6 -6
- 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/Log.js +0 -16
- package/src/sap/base/config.js +1 -1
- package/src/sap/base/i18n/LanguageTag.js +1 -1
- package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
- package/src/sap/base/util/ObjectPath.js +6 -6
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/ui/Device.js +35 -10
- package/src/sap/ui/Global.js +6 -6
- 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 +16 -1
- package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
- package/src/sap/ui/base/Metadata.js +1 -1
- package/src/sap/ui/base/Object.js +1 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +1 -8
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +17 -3
- package/src/sap/ui/core/ComponentContainer.js +1 -1
- package/src/sap/ui/core/ComponentMetadata.js +1 -1
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +1 -1
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +14 -5
- 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 +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +1 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +1 -1
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +1 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +1 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +2 -2
- 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 +148 -102
- package/src/sap/ui/core/Manifest.js +1 -1
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +2 -2
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/boot.js +1 -6
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
- package/src/sap/ui/core/dnd/DragAndDrop.js +151 -10
- package/src/sap/ui/core/dnd/DragDropBase.js +13 -2
- 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/{model → core/fieldhelp}/FieldHelp.js +92 -65
- package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +62 -0
- package/src/sap/ui/core/format/FormatUtils.js +1 -1
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
- package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -1
- package/src/sap/ui/core/library.js +49 -9
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/mvc/ControllerExtension.js +16 -0
- package/src/sap/ui/core/mvc/HTMLView.js +1 -1
- package/src/sap/ui/core/mvc/JSONView.js +1 -1
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +1 -1
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/plugin/LessSupport.js +1 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/Support.js +1 -1
- package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
- package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +1 -1
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
- package/src/sap/ui/core/themes/sap_hcb/base_BlindLayer.less +37 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BrowserScrollbar.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_BusyIndicator.less +19 -0
- package/src/sap/ui/core/themes/sap_hcb/base_CommandShortcutHints.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_DragAndDrop.less +76 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Icon.less +144 -0
- package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +292 -0
- package/src/sap/ui/core/themes/sap_hcb/base_SAP-icons.less +10 -0
- package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +20 -0
- package/src/sap/ui/core/themes/sap_hcb/base_Shadow.less +3 -0
- package/src/sap/ui/core/themes/sap_hcb/base_TechnicalInfo.less +157 -0
- package/src/sap/ui/core/themes/sap_hcb/base_View.less +12 -0
- package/src/sap/ui/core/themes/sap_hcb/base_media.less +36 -0
- package/src/sap/ui/core/themes/sap_hcb/base_parameterClasses.less +83 -0
- package/src/sap/ui/core/themes/sap_hcb/base_shared.less +340 -0
- package/src/sap/ui/core/themes/sap_hcb/library.source.less +27 -1
- package/src/sap/ui/core/theming/Parameters.js +68 -8
- 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 +2 -2
- package/src/sap/ui/core/util/MockServer.js +1 -2
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +14 -15
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +1 -1
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/Binding.js +28 -0
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +1 -1
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +5 -0
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/base/ManagedObjectModel.js +12 -2
- package/src/sap/ui/model/json/JSONModel.js +16 -11
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +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 +7 -2
- package/src/sap/ui/model/odata/ODataUtils.js +22 -14
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +92 -43
- package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -7
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +176 -87
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +9 -9
- package/src/sap/ui/model/odata/v4/ODataModel.js +36 -9
- package/src/sap/ui/model/odata/v4/ODataParentBinding.js +3 -3
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +12 -11
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +176 -75
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +48 -9
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +15 -17
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +49 -14
- package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -3
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -12
- package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +2 -2
- package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -3
- package/src/sap/ui/model/resource/ResourceModel.js +1 -1
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/performance/trace/FESR.js +2 -2
- package/src/sap/ui/performance/trace/Interaction.js +1 -1
- package/src/sap/ui/performance/trace/Passport.js +1 -1
- package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/starter/_utils.js +18 -3
- package/src/sap/ui/util/Mobile.js +7 -4
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +0 -25
- package/test/sap/ui/core/BindableResponseHeaders.html +1 -2
- package/test/sap/ui/core/ODataV2CanonicalRequests.html +8 -5
- package/test/sap/ui/core/ODataV2Messages.html +14 -11
- package/test/sap/ui/core/ODataV2MessagesPerf.html +34 -9
- package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.html +2 -1
- package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +2 -12
- package/test/sap/ui/core/demokit/sample/common/Controller.js +2 -2
- package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -2
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/SandboxModel.js +6 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +110 -21
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +35 -43
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +118 -26
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +99 -90
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +87 -40
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +4 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +18 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -8
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +4 -4
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +3 -3
- package/test/sap/ui/core/qunit/CommandExecution.qunit.js +96 -92
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +24 -0
- package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +80 -0
- package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -0
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +1 -1
- package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +2 -1
- package/test/sap/ui/core/qunit/base/Config.qunit.js +117 -114
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +3 -3
- package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +98 -95
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +20 -45
- package/test/sap/ui/core/qunit/base/Config_global.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +2 -2
- package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +17 -16
- package/test/sap/ui/core/qunit/base/Config_url.qunit.html +2 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.beforeBootstrap.js +6 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.qunit.js +4 -4
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +30 -10
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +5 -1
- package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +159 -3
- package/test/sap/ui/core/qunit/{model → fieldhelp}/FieldHelp.qunit.js +306 -24
- package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +55 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.html +12 -0
- package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.js +50 -0
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +6 -1
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/jquery-mobile-custom.beforeBootstrap.js +11 -0
- package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
- package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +21 -0
- package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -6
- package/test/sap/ui/core/qunit/loader/config.qunit.js +41 -2
- package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +9 -4
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -12
- package/test/sap/ui/core/qunit/odata/type/testsuite.odata.types.qunit.js +1 -0
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +202 -73
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +94 -2
- package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +4 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +106 -103
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +20 -20
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +370 -109
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +42 -42
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2260 -177
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -7
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +7 -6
- package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +13 -14
- package/test/sap/ui/core/qunit/odata/v4/_AnnotationHelperExpression.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +592 -169
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +82 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +44 -47
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +80 -20
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +2 -2
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +175 -69
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -1
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +9 -7
- package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +6 -1
- package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/library.css +2 -0
- package/test/sap/ui/core/qunit/testsuite.qunit.js +1 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.browser.runtime.qunit.js +5 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +0 -3
- package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -1
- package/test/sap/ui/core/qunit/ui/Device.qunit.js +68 -25
- package/test/sap/ui/core/qunit/ui5classes/ManagedObjectMetadata.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/Mobile.qunit.js +12 -7
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +20 -20
- package/test/sap/ui/core/relnotes/changes-1.125.json +1 -6
- package/test/sap/ui/core/relnotes/changes-1.126.json +63 -0
- package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
- package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
|
@@ -200,98 +200,102 @@ sap.ui.define([
|
|
|
200
200
|
});
|
|
201
201
|
|
|
202
202
|
|
|
203
|
-
var sView =
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
203
|
+
var sView = `
|
|
204
|
+
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
|
|
205
|
+
<App id="commands">
|
|
206
|
+
<Page id="page" title="Commands" binding="{odata>/}" >
|
|
207
|
+
<dependents>
|
|
208
|
+
<core:CommandExecution id="CE_SAVE" command="Save" enabled="true" execute=".onSave" />
|
|
209
|
+
<core:CommandExecution id="CE_EXIT" command="Exit" enabled="true" execute=".onExit" />
|
|
210
|
+
<Popover id="popoverCommand" title="Popover" class="sapUiContentPadding">
|
|
211
|
+
<dependents>
|
|
212
|
+
<core:CommandExecution id="CE_SAVE_POPOVER" enabled="false" command="Save" execute=".onSave" />
|
|
213
|
+
</dependents>
|
|
214
|
+
<footer>
|
|
215
|
+
<Toolbar>
|
|
216
|
+
<Button text="Delete" press="cmd:Exit" enabled="{$cmd>Delete/enabled}" />
|
|
217
|
+
<ToolbarSpacer />
|
|
218
|
+
<Button text="Save" press="cmd:Save" enabled="{$cmd>Save/enabled}" />
|
|
219
|
+
</Toolbar>
|
|
220
|
+
</footer>
|
|
221
|
+
<Input value="{viewModel>/value}" />
|
|
222
|
+
</Popover>
|
|
223
|
+
</dependents>
|
|
224
|
+
<Panel id="PANEL" headerText="Button">
|
|
225
|
+
<headerToolbar>
|
|
226
|
+
<Toolbar>
|
|
227
|
+
<Button text="TBButton" />
|
|
228
|
+
</Toolbar>
|
|
229
|
+
</headerToolbar>
|
|
230
|
+
<dependents>
|
|
231
|
+
<core:CommandExecution id="CE_SAVE_PANEL" command="Save" enabled="true" execute=".onSave" />
|
|
232
|
+
</dependents>
|
|
233
|
+
<Panel id="PANEL2" headerText="innerButton">
|
|
234
|
+
<dependents>
|
|
235
|
+
<core:CommandExecution id="CE_CREATE_INNER" command="Create" enabled="true" execute=".onExit" />
|
|
236
|
+
<core:CommandExecution id="CE_SAVE_INNER" command="Save" enabled="true" execute=".onSave" />
|
|
237
|
+
<core:CommandExecution id="CE_EXIT_INNER" command="Exit" enabled="true" execute=".onExit" />
|
|
238
|
+
</dependents>
|
|
239
|
+
<Button text="Save" press="cmd:Save" />
|
|
240
|
+
</Panel>
|
|
241
|
+
<Button text="Save" press="cmd:Save" />
|
|
242
|
+
</Panel>
|
|
243
|
+
<Panel headerText="sap.m.Input">
|
|
244
|
+
<Input id="myInput" value="{viewModel>/value}" />
|
|
245
|
+
<Table>
|
|
246
|
+
<columns>
|
|
247
|
+
<Column width="12em">
|
|
248
|
+
<Text text="Product" />
|
|
249
|
+
</Column>
|
|
250
|
+
</columns>
|
|
251
|
+
<items>
|
|
252
|
+
<ColumnListItem>
|
|
253
|
+
<dependents>
|
|
254
|
+
<core:CommandExecution id="CE_SAVE_ITEM" command="Save" enabled="true" execute=".onSave" />
|
|
255
|
+
<core:CommandExecution id="CE_EXIT_ITEM" command="Exit" enabled="true" execute=".onExit" />
|
|
256
|
+
</dependents>
|
|
257
|
+
<cells>
|
|
258
|
+
<Text text="Name"/>
|
|
259
|
+
</cells>
|
|
260
|
+
</ColumnListItem>
|
|
261
|
+
</items>
|
|
262
|
+
</Table>
|
|
263
|
+
</Panel>
|
|
264
|
+
</Page>
|
|
265
|
+
</App>
|
|
266
|
+
</mvc:View>
|
|
267
|
+
`;
|
|
268
|
+
|
|
269
|
+
var sView2 = `
|
|
270
|
+
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
|
|
271
|
+
<core:ComponentContainer id="CC" binding="{odata>/}" >
|
|
272
|
+
<core:dependents>
|
|
273
|
+
<core:CommandExecution command="Save" enabled="true" execute=".onSave" />
|
|
274
|
+
<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
|
|
275
|
+
</core:dependents>
|
|
276
|
+
</core:ComponentContainer>
|
|
277
|
+
</mvc:View>
|
|
278
|
+
`;
|
|
279
|
+
|
|
280
|
+
var sView3 = `
|
|
281
|
+
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
|
|
282
|
+
<Panel>
|
|
283
|
+
<dependents>
|
|
284
|
+
<core:CommandExecution command="Save" enabled="true" execute=".onSave" />
|
|
285
|
+
<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
|
|
286
|
+
</dependents>
|
|
287
|
+
<Panel headerText="innerButton" id="PANELV31">
|
|
288
|
+
<dependents>
|
|
289
|
+
<core:CommandExecution command="Save" enabled="true" execute=".onSave" />
|
|
290
|
+
<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
|
|
291
|
+
</dependents>
|
|
292
|
+
</Panel>
|
|
293
|
+
<Panel headerText="innerButton" id="PANELV32">
|
|
294
|
+
<mvc:XMLView async="true" id="EMBEDDEDVIEW" viewName="my.command.Command2"/>
|
|
295
|
+
</Panel>
|
|
296
|
+
</Panel>
|
|
297
|
+
</mvc:View>
|
|
298
|
+
`;
|
|
295
299
|
|
|
296
300
|
sap.ui.require.preload({
|
|
297
301
|
"my/command/Command.view.xml": sView
|
|
@@ -719,6 +719,30 @@ sap.ui.define([
|
|
|
719
719
|
oLengthBinding.detachChange(fHandler2);
|
|
720
720
|
});
|
|
721
721
|
|
|
722
|
+
QUnit.test("ManagedObject Model - List Binding (length & startIndex)", function (assert) {
|
|
723
|
+
const oBinding = this.oManagedObjectModel.bindList("/subObjects");
|
|
724
|
+
const fHandler = function() {}; // just a dummy handler
|
|
725
|
+
oBinding.attachChange(fHandler);
|
|
726
|
+
|
|
727
|
+
this.obj.addSubObj(this.subObj);
|
|
728
|
+
this.obj.addSubObj(this.subObj2);
|
|
729
|
+
this.obj.addSubObj(this.subObj3);
|
|
730
|
+
|
|
731
|
+
let aContexts = oBinding.getContexts(0, 2);
|
|
732
|
+
assert.equal(aContexts.length, 2, "Contexts length");
|
|
733
|
+
assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj, true, "Contexts[0] are correctly applied");
|
|
734
|
+
assert.equal(this.oManagedObjectModel.getProperty("", aContexts[1]) === this.subObj2, true, "Contexts[1] are correctly applied");
|
|
735
|
+
|
|
736
|
+
aContexts = oBinding.getContexts(1, 2);
|
|
737
|
+
assert.equal(aContexts.length, 2, "Contexts length");
|
|
738
|
+
assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj2, true, "Contexts[0] are correctly applied");
|
|
739
|
+
assert.equal(this.oManagedObjectModel.getProperty("", aContexts[1]) === this.subObj3, true, "Contexts[1] are correctly applied");
|
|
740
|
+
|
|
741
|
+
aContexts = oBinding.getContexts(-1, 1);
|
|
742
|
+
assert.equal(aContexts.length, 1, "Contexts length");
|
|
743
|
+
assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj3, true, "Contexts[0] are correctly applied");
|
|
744
|
+
});
|
|
745
|
+
|
|
722
746
|
QUnit.test("ManagedObject Model - getManagedObject", function (assert) {
|
|
723
747
|
var oModel = this.oManagedObjectModel;
|
|
724
748
|
|
|
@@ -385,4 +385,84 @@ sap.ui.define([
|
|
|
385
385
|
});
|
|
386
386
|
});
|
|
387
387
|
});
|
|
388
|
+
|
|
389
|
+
QUnit.test("Relative URLs in parameters", async function(assert) {
|
|
390
|
+
|
|
391
|
+
const sPath = new URI(sap.ui.require.toUrl("testdata/core"), document.baseURI).toString();
|
|
392
|
+
const coreBase1x1Gif = sap.ui.require.toUrl("sap/ui/core/themes/base/img/1x1.gif");
|
|
393
|
+
|
|
394
|
+
await Library.load("testlibs.themeParameters.lib4");
|
|
395
|
+
|
|
396
|
+
return new Promise((endTest, reject) => {
|
|
397
|
+
Theming.attachApplied(() => {
|
|
398
|
+
const expected = {
|
|
399
|
+
url1: sPath + "/testdata/libraries/themeParameters/lib4/img1.jpg",
|
|
400
|
+
url2: sPath + "/testdata/libraries/themeParameters/lib4/foo/img2.jpg",
|
|
401
|
+
url3: sPath + "/testdata/libraries/themeParameters/lib4/foo/bar/img3.jpg",
|
|
402
|
+
url4: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
|
|
403
|
+
url5: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
|
|
404
|
+
url6: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
|
|
405
|
+
url7: "blob:http://example.com/6e88648c-00e1-4512-9695-5b702d8455b4",
|
|
406
|
+
url8: "data:text/plain;utf-8,foo",
|
|
407
|
+
url9: {
|
|
408
|
+
plain: "none",
|
|
409
|
+
themeImageDefault: coreBase1x1Gif
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
const actualPlain = Parameters.get({
|
|
414
|
+
name: ["sapUiThemeParamUrl1", "sapUiThemeParamUrl2", "sapUiThemeParamUrl3",
|
|
415
|
+
"sapUiThemeParamUrl4", "sapUiThemeParamUrl5", "sapUiThemeParamUrl6",
|
|
416
|
+
"sapUiThemeParamUrl7", "sapUiThemeParamUrl8", "sapUiThemeParamUrl9"
|
|
417
|
+
]
|
|
418
|
+
});
|
|
419
|
+
|
|
420
|
+
// plain values available after library load
|
|
421
|
+
// Result must be in CSS-URL syntax
|
|
422
|
+
assert.equal(actualPlain["sapUiThemeParamUrl1"], "url('" + expected.url1 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/img1.jpg'.");
|
|
423
|
+
assert.equal(actualPlain["sapUiThemeParamUrl2"], "url('" + expected.url2 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/foo/img2.jpg'.");
|
|
424
|
+
assert.equal(actualPlain["sapUiThemeParamUrl3"], "url('" + expected.url3 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/foo/bar/img3.jpg'.");
|
|
425
|
+
assert.equal(actualPlain["sapUiThemeParamUrl4"], "url('" + expected.url4 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
|
|
426
|
+
assert.equal(actualPlain["sapUiThemeParamUrl5"], "url('" + expected.url5 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
|
|
427
|
+
assert.equal(actualPlain["sapUiThemeParamUrl6"], "url('" + expected.url6 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
|
|
428
|
+
assert.equal(actualPlain["sapUiThemeParamUrl7"], "url('" + expected.url7 + "')", "Relative URL should be resolved correctly 'blob:http://example.com/6e88648c-00e1-4512-9695-5b702d8455b4'.");
|
|
429
|
+
assert.equal(actualPlain["sapUiThemeParamUrl8"], "url('" + expected.url8 + "')", "Relative URL should be resolved correctly 'data:text/plain;utf-8,foo'.");
|
|
430
|
+
assert.equal(actualPlain["sapUiThemeParamUrl9"], expected.url9.plain, "'none' should stay as defined");
|
|
431
|
+
|
|
432
|
+
const actualParsed = Parameters.get({
|
|
433
|
+
name: ["sapUiThemeParamUrl1", "sapUiThemeParamUrl2", "sapUiThemeParamUrl3",
|
|
434
|
+
"sapUiThemeParamUrl4", "sapUiThemeParamUrl5", "sapUiThemeParamUrl6",
|
|
435
|
+
"sapUiThemeParamUrl7", "sapUiThemeParamUrl8"
|
|
436
|
+
],
|
|
437
|
+
_restrictedParseUrls: true
|
|
438
|
+
});
|
|
439
|
+
|
|
440
|
+
// Additional parsing of CSS-URLs
|
|
441
|
+
// Result must be identical wrt. to the original URLs (s.a.)
|
|
442
|
+
assert.equal(actualParsed["sapUiThemeParamUrl1"], expected.url1, "Theme Image value should be correct for 'sapUiThemeParamUrl1'.");
|
|
443
|
+
assert.equal(actualParsed["sapUiThemeParamUrl2"], expected.url2, "Theme Image value should be correct for 'sapUiThemeParamUrl2'.");
|
|
444
|
+
assert.equal(actualParsed["sapUiThemeParamUrl3"], expected.url3, "Theme Image value should be correct for 'sapUiThemeParamUrl3'.");
|
|
445
|
+
assert.equal(actualParsed["sapUiThemeParamUrl4"], expected.url4, "Theme Image value should be correct for 'sapUiThemeParamUrl4'.");
|
|
446
|
+
assert.equal(actualParsed["sapUiThemeParamUrl5"], expected.url5, "Theme Image value should be correct for 'sapUiThemeParamUrl5'.");
|
|
447
|
+
assert.equal(actualParsed["sapUiThemeParamUrl6"], expected.url6, "Theme Image value should be correct for 'sapUiThemeParamUrl6'.");
|
|
448
|
+
assert.equal(actualParsed["sapUiThemeParamUrl7"], expected.url7, "Theme Image value should be correct for 'sapUiThemeParamUrl7'.");
|
|
449
|
+
assert.equal(actualParsed["sapUiThemeParamUrl8"], expected.url8, "Theme Image value should be correct for 'sapUiThemeParamUrl8'.");
|
|
450
|
+
|
|
451
|
+
// Value 'none' is parsed to <undefined>, which leads to the default value
|
|
452
|
+
const actualParsedWithDefaults = Object.assign({
|
|
453
|
+
"sapUiThemeParamUrl9": coreBase1x1Gif
|
|
454
|
+
}, Parameters.get({
|
|
455
|
+
name: ["sapUiThemeParamUrl9"],
|
|
456
|
+
_restrictedParseUrls: true
|
|
457
|
+
}));
|
|
458
|
+
|
|
459
|
+
assert.equal(actualParsedWithDefaults["sapUiThemeParamUrl9"], expected.url9.themeImageDefault, "Theme Image value should be 'sap/ui/core/themes/base/img/1x1.gif' for parameter value 'none'.");
|
|
460
|
+
|
|
461
|
+
// No sync XHR, since we wait for the Library to load and the theme-applied event
|
|
462
|
+
assert.strictEqual(checkLibraryParametersJsonRequestForLib("4").length, 0, "library-parameters.json requested once for testlibs.themeParameters.lib4");
|
|
463
|
+
|
|
464
|
+
endTest();
|
|
465
|
+
});
|
|
466
|
+
});
|
|
467
|
+
});
|
|
388
468
|
});
|
|
@@ -379,6 +379,7 @@ sap.ui.define([
|
|
|
379
379
|
assert.equal(Parameters._getThemeImage("sapUiThemeParamUrl9"), expected.url9.themeImage, "Theme Image value should be 'null' for parameter value 'none'.");
|
|
380
380
|
assert.equal(Parameters._getThemeImage("sapUiThemeParamUrl9", true), expected.url9.themeImageForce, "Theme Image value should be 'sap/ui/core/themes/base/img/1x1.gif' for parameter value 'none' (force).");
|
|
381
381
|
|
|
382
|
+
// We expect a sync XHR, since we don't wait for the theme change/applied event
|
|
382
383
|
assert.strictEqual(checkLibraryParametersJsonRequestForLib("4").length, 1, "library-parameters.json requested once for testlibs.themeParameters.lib4");
|
|
383
384
|
});
|
|
384
385
|
});
|
|
@@ -3531,7 +3531,7 @@ sap.ui.define([
|
|
|
3531
3531
|
// code under test
|
|
3532
3532
|
assert.deepEqual(
|
|
3533
3533
|
oBinding._calculateRequiredGroupSection("/", 42, 15, 10),
|
|
3534
|
-
{startIndex :
|
|
3534
|
+
{startIndex : 31, length : 42 + 15 + 10 + 3 - 31});
|
|
3535
3535
|
|
|
3536
3536
|
// code under test
|
|
3537
3537
|
assert.deepEqual(
|
|
@@ -4,130 +4,133 @@
|
|
|
4
4
|
/*global QUnit */
|
|
5
5
|
QUnit.config.autostart = false;
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
"sap/base/config",
|
|
9
|
-
"sap/base/Log",
|
|
10
|
-
"sap/ui/thirdparty/sinon"
|
|
11
|
-
], function (
|
|
12
|
-
BaseConfiguration,
|
|
13
|
-
Log,
|
|
14
|
-
sinon
|
|
15
|
-
) {
|
|
7
|
+
globalThis.fnInit = () => {
|
|
16
8
|
"use strict";
|
|
17
|
-
var oLog = Log.getLogger("test", 6);
|
|
18
|
-
var oLogSpy = sinon.spy(oLog, "error");
|
|
19
|
-
sap.ui.loader._.logger = oLog;
|
|
20
9
|
|
|
21
|
-
|
|
10
|
+
sap.ui.require([
|
|
11
|
+
"sap/base/config",
|
|
12
|
+
"sap/base/Log",
|
|
13
|
+
"sap/ui/thirdparty/sinon"
|
|
14
|
+
], (
|
|
15
|
+
BaseConfiguration,
|
|
16
|
+
Log,
|
|
17
|
+
sinon
|
|
18
|
+
) => {
|
|
19
|
+
var oLog = Log.getLogger("test", 6);
|
|
20
|
+
var oLogSpy = sinon.spy(oLog, "error");
|
|
21
|
+
sap.ui.loader._.logger = oLog;
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
assert.expect(20);
|
|
23
|
+
QUnit.module("Base Configuration");
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
name: "sapUiContext",
|
|
29
|
-
type: BaseConfiguration.Type.String,
|
|
30
|
-
external: true
|
|
31
|
-
});
|
|
25
|
+
QUnit.test("Basic: Check getter on provider level", function(assert) {
|
|
26
|
+
assert.expect(20);
|
|
32
27
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
var sDuplicateKey = sContext.startsWith("global") ? oParams.duplicateParam.replace("sap-ui-", "") : oParams.duplicateParam;
|
|
40
|
-
var sOrigKey = sContext.startsWith("global") ? oParams.origParam.replace("sap-ui-", "") : oParams.origParam;
|
|
41
|
-
assert.ok(oLogSpy.calledWith("Configuration option '" + sDuplicateKey + "' was already set by '" + sOrigKey + "' and will be ignored!"), "Logged invalid configuration option '" + sDuplicateKey + "'");
|
|
42
|
-
});
|
|
28
|
+
// sContext is derived via URL parameter to handle provider specific behavior
|
|
29
|
+
var sContext = BaseConfiguration.get({
|
|
30
|
+
name: "sapUiContext",
|
|
31
|
+
type: BaseConfiguration.Type.String,
|
|
32
|
+
external: true
|
|
33
|
+
});
|
|
43
34
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
35
|
+
[
|
|
36
|
+
{ duplicateParam: "sap-ui-FooBar", origParam: "sap-ui-fooBar"},
|
|
37
|
+
{ duplicateParam: "sap-ui-foo-bar", origParam: "sap-ui-fooBar"},
|
|
38
|
+
{ duplicateParam: "sap-ui-sapUiFooBar", origParam: "sap-ui-sap-ui-fooBar"},
|
|
39
|
+
{ duplicateParam: "sap-ui-initial-falsy-value", origParam: "sap-ui-initialFalsyValue"}
|
|
40
|
+
].forEach(function (oParams) {
|
|
41
|
+
var sDuplicateKey = sContext.startsWith("global") ? oParams.duplicateParam.replace("sap-ui-", "") : oParams.duplicateParam;
|
|
42
|
+
var sOrigKey = sContext.startsWith("global") ? oParams.origParam.replace("sap-ui-", "") : oParams.origParam;
|
|
43
|
+
assert.ok(oLogSpy.calledWith("Configuration option '" + sDuplicateKey + "' was already set by '" + sOrigKey + "' and will be ignored!"), "Logged invalid configuration option '" + sDuplicateKey + "'");
|
|
44
|
+
});
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
type: BaseConfiguration.Type.String,
|
|
57
|
-
external: true
|
|
58
|
-
}), "value2", "BaseConfiguration.get for param 'sapUiHubeldubel' returns value 'value2'");
|
|
59
|
-
assert.strictEqual(BaseConfiguration.get({
|
|
60
|
-
name: "sapUihubeldubel",
|
|
61
|
-
type: BaseConfiguration.Type.String,
|
|
62
|
-
external: true
|
|
63
|
-
}), "", "BaseConfiguration.get for param 'sapUihubeldubel' returns internal default value ''");
|
|
64
|
-
assert.strictEqual(BaseConfiguration.get({
|
|
65
|
-
name: "sapUiFooBar",
|
|
66
|
-
type: BaseConfiguration.Type.String,
|
|
67
|
-
external: true
|
|
68
|
-
}), "value3", "BaseConfiguration.get for param 'sapUiFooBar' returns correct value 'value3'");
|
|
69
|
-
assert.strictEqual(BaseConfiguration.get({
|
|
70
|
-
name: "sapUiFoobar",
|
|
71
|
-
type: BaseConfiguration.Type.String,
|
|
72
|
-
external: true
|
|
73
|
-
}), "value5", "BaseConfiguration.get for param 'sapUiFoobar' returns correct value 'value5'");
|
|
74
|
-
assert.strictEqual(
|
|
75
|
-
BaseConfiguration.get({
|
|
76
|
-
name: "sapUi5ooBar",
|
|
77
|
-
type: BaseConfiguration.Type.String,
|
|
78
|
-
external: true
|
|
79
|
-
}), "value7", "BaseConfiguration.get for param 'sapUi5ooBar' returns correct value 'value7'");
|
|
80
|
-
assert.throws(function () {
|
|
81
|
-
BaseConfiguration.get({
|
|
82
|
-
name: "sapUiSap-ui-fooBar",
|
|
46
|
+
["sap-ui-sap/foo/bar"].forEach(function (sInvalidKey) {
|
|
47
|
+
sInvalidKey = sContext.startsWith("global") ? sInvalidKey.replace("sap-ui-", "") : sInvalidKey;
|
|
48
|
+
assert.ok(oLogSpy.calledWith("Invalid configuration option '" + sInvalidKey + "' in " + sContext + "!"), "Logged invalid configuration option '" + sInvalidKey + "'");
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
52
|
+
name: "sapUiHubelDubel",
|
|
83
53
|
type: BaseConfiguration.Type.String,
|
|
84
54
|
external: true
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
55
|
+
}), "value1", "BaseConfiguration.get for param 'sapUiHubelDubel' returns value 'value1'");
|
|
56
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
57
|
+
name: "sapUiHubeldubel",
|
|
58
|
+
type: BaseConfiguration.Type.String,
|
|
59
|
+
external: true
|
|
60
|
+
}), "value2", "BaseConfiguration.get for param 'sapUiHubeldubel' returns value 'value2'");
|
|
61
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
62
|
+
name: "sapUihubeldubel",
|
|
63
|
+
type: BaseConfiguration.Type.String,
|
|
64
|
+
external: true
|
|
65
|
+
}), "", "BaseConfiguration.get for param 'sapUihubeldubel' returns internal default value ''");
|
|
66
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
67
|
+
name: "sapUiFooBar",
|
|
68
|
+
type: BaseConfiguration.Type.String,
|
|
69
|
+
external: true
|
|
70
|
+
}), "value3", "BaseConfiguration.get for param 'sapUiFooBar' returns correct value 'value3'");
|
|
71
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
72
|
+
name: "sapUiFoobar",
|
|
73
|
+
type: BaseConfiguration.Type.String,
|
|
74
|
+
external: true
|
|
75
|
+
}), "value5", "BaseConfiguration.get for param 'sapUiFoobar' returns correct value 'value5'");
|
|
76
|
+
assert.strictEqual(
|
|
93
77
|
BaseConfiguration.get({
|
|
94
|
-
name: "
|
|
78
|
+
name: "sapUi5ooBar",
|
|
95
79
|
type: BaseConfiguration.Type.String,
|
|
96
80
|
external: true
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
81
|
+
}), "value7", "BaseConfiguration.get for param 'sapUi5ooBar' returns correct value 'value7'");
|
|
82
|
+
assert.throws(function () {
|
|
83
|
+
BaseConfiguration.get({
|
|
84
|
+
name: "sapUiSap-ui-fooBar",
|
|
85
|
+
type: BaseConfiguration.Type.String,
|
|
86
|
+
external: true
|
|
87
|
+
});
|
|
88
|
+
}, new TypeError("Invalid configuration key 'sapUiSap-ui-fooBar'!"), "BaseConfiguration.get for param 'sapUiSap-ui-fooBar' throws error");
|
|
89
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
90
|
+
name: "sapUiSapUiFooBar",
|
|
91
|
+
type: BaseConfiguration.Type.String,
|
|
92
|
+
external: true
|
|
93
|
+
}), "value8", "BaseConfiguration.get for param 'sapUiSapUiFooBar' returns correct value 'value8'");
|
|
94
|
+
assert.throws(function () {
|
|
95
|
+
BaseConfiguration.get({
|
|
96
|
+
name: "sapUiSap.foo.bar",
|
|
97
|
+
type: BaseConfiguration.Type.String,
|
|
98
|
+
external: true
|
|
99
|
+
});
|
|
100
|
+
}, new TypeError("Invalid configuration key 'sapUiSap.foo.bar'!"), "BaseConfiguration.get for param 'sapUiSap.foo.bar' throws error");
|
|
101
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
102
|
+
name: "sapUiXxBarFoo",
|
|
103
|
+
type: BaseConfiguration.Type.String,
|
|
104
|
+
external: true
|
|
105
|
+
}), "value11", "BaseConfiguration.get for param 'sapUiXxBarFoo' returns correct value 'value11'");
|
|
106
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
107
|
+
name: "sapUiBarFoo",
|
|
108
|
+
type: BaseConfiguration.Type.String,
|
|
109
|
+
external: true
|
|
110
|
+
}), "value11", "BaseConfiguration.get for param 'sapUiBarFoo' returns correct value 'value11'");
|
|
111
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
112
|
+
name: "sapUiXxFarBoo",
|
|
113
|
+
type: BaseConfiguration.Type.String,
|
|
114
|
+
external: true
|
|
115
|
+
}), "value12", "BaseConfiguration.get for param 'sapUiXxFarBoo' returns correct value 'value12'");
|
|
116
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
117
|
+
name: "sapUiFarBoo",
|
|
118
|
+
type: BaseConfiguration.Type.String,
|
|
119
|
+
external: true
|
|
120
|
+
}), "value12", "BaseConfiguration.get for param 'sapUiFarBoo' returns correct value 'value12'");
|
|
121
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
122
|
+
name: "sapUshellFooBar",
|
|
123
|
+
type: BaseConfiguration.Type.String,
|
|
124
|
+
external: true
|
|
125
|
+
// sContext is derived via URL parameter to handle provider specific behavior
|
|
126
|
+
}), sContext.startsWith("global") ? "" : "value14", "BaseConfiguration.get for param 'sapUshellFooBar' returns correct value 'value14' or '' in global context (sap-ui-prefixed)");
|
|
127
|
+
assert.strictEqual(BaseConfiguration.get({
|
|
128
|
+
name: "sapUiInitialFalsyValue",
|
|
129
|
+
type: BaseConfiguration.Type.Boolean,
|
|
130
|
+
external: true
|
|
131
|
+
}), false, "BaseConfiguration.get for param 'sapUiInitialFalsyValue' returns correct value 'false'");
|
|
132
|
+
});
|
|
131
133
|
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
+
QUnit.start();
|
|
135
|
+
});
|
|
136
|
+
};
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
|
|
6
6
|
<!-- Initialization -->
|
|
7
|
-
<script src="../../../../../../resources/
|
|
8
|
-
<script id="sap-ui-bootstrap" src="../../../../../../resources/ui5loader-autoconfig.js"
|
|
7
|
+
<script id="sap-ui-bootstrap" src="../../../../../../resources/sap-ui-core.js"
|
|
9
8
|
data-sap-ui-async="true"
|
|
10
9
|
data-sap-ui-compat-version="edge"
|
|
11
10
|
|
|
@@ -23,7 +22,8 @@
|
|
|
23
22
|
data-sap-ui-xxbar-foo="value12"
|
|
24
23
|
data-sap-ui-xx-far-boo="value13"
|
|
25
24
|
data-sap-ui-sap;ui;bar="value14"
|
|
26
|
-
data-sap-ushell-foo-bar="value15"
|
|
25
|
+
data-sap-ushell-foo-bar="value15"
|
|
26
|
+
data-sap-ui-on-init="fnInit"></script>
|
|
27
27
|
|
|
28
28
|
<link href="../../../../../../resources/sap/ui/thirdparty/qunit-2.css" rel="stylesheet" media="screen">
|
|
29
29
|
<script src="../../../../../../resources/sap/ui/thirdparty/qunit-2.js"></script>
|