@openui5/sap.ui.core 1.120.3 → 1.120.4
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 +2 -1
- package/src/sap/base/i18n/ResourceBundle.js +16 -19
- 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/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 +1 -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 +2 -2
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/Component.js +1 -1
- 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 +2 -2
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/Core.js +1 -1
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +1 -1
- package/src/sap/ui/core/Element.js +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/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/RenderManager.js +1 -1
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/ResizeHandler.js +1 -1
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +1 -1
- package/src/sap/ui/core/UIArea.js +1 -1
- package/src/sap/ui/core/UIComponent.js +1 -1
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/cldr/ar.json +1 -0
- package/src/sap/ui/core/cldr/ar_EG.json +1 -0
- package/src/sap/ui/core/cldr/ar_SA.json +1 -0
- package/src/sap/ui/core/cldr/bg.json +1 -0
- package/src/sap/ui/core/cldr/ca.json +1 -0
- package/src/sap/ui/core/cldr/cnr.json +6169 -0
- package/src/sap/ui/core/cldr/cs.json +1 -0
- package/src/sap/ui/core/cldr/cy.json +1 -0
- package/src/sap/ui/core/cldr/da.json +1 -0
- package/src/sap/ui/core/cldr/de.json +1 -0
- package/src/sap/ui/core/cldr/de_AT.json +1 -0
- package/src/sap/ui/core/cldr/de_CH.json +1 -0
- package/src/sap/ui/core/cldr/el.json +1 -0
- package/src/sap/ui/core/cldr/el_CY.json +1 -0
- package/src/sap/ui/core/cldr/en.json +1 -0
- package/src/sap/ui/core/cldr/en_AU.json +1 -0
- package/src/sap/ui/core/cldr/en_GB.json +1 -0
- package/src/sap/ui/core/cldr/en_HK.json +1 -0
- package/src/sap/ui/core/cldr/en_IE.json +1 -0
- package/src/sap/ui/core/cldr/en_IN.json +1 -0
- package/src/sap/ui/core/cldr/en_NZ.json +1 -0
- package/src/sap/ui/core/cldr/en_PG.json +1 -0
- package/src/sap/ui/core/cldr/en_SG.json +1 -0
- package/src/sap/ui/core/cldr/en_ZA.json +1 -0
- package/src/sap/ui/core/cldr/es.json +1 -0
- package/src/sap/ui/core/cldr/es_AR.json +1 -0
- package/src/sap/ui/core/cldr/es_BO.json +1 -0
- package/src/sap/ui/core/cldr/es_CL.json +1 -0
- package/src/sap/ui/core/cldr/es_CO.json +1 -0
- package/src/sap/ui/core/cldr/es_MX.json +1 -0
- package/src/sap/ui/core/cldr/es_PE.json +1 -0
- package/src/sap/ui/core/cldr/es_UY.json +1 -0
- package/src/sap/ui/core/cldr/es_VE.json +1 -0
- package/src/sap/ui/core/cldr/et.json +1 -0
- package/src/sap/ui/core/cldr/fa.json +2 -0
- package/src/sap/ui/core/cldr/fi.json +1 -0
- package/src/sap/ui/core/cldr/fr.json +1 -0
- package/src/sap/ui/core/cldr/fr_BE.json +1 -0
- package/src/sap/ui/core/cldr/fr_CA.json +1 -0
- package/src/sap/ui/core/cldr/fr_CH.json +1 -0
- package/src/sap/ui/core/cldr/fr_LU.json +1 -0
- package/src/sap/ui/core/cldr/he.json +2 -0
- package/src/sap/ui/core/cldr/hi.json +1 -0
- package/src/sap/ui/core/cldr/hr.json +1 -0
- package/src/sap/ui/core/cldr/hu.json +1 -0
- package/src/sap/ui/core/cldr/id.json +1 -0
- package/src/sap/ui/core/cldr/it.json +1 -0
- package/src/sap/ui/core/cldr/it_CH.json +1 -0
- package/src/sap/ui/core/cldr/ja.json +1 -0
- package/src/sap/ui/core/cldr/kk.json +1 -0
- package/src/sap/ui/core/cldr/ko.json +1 -0
- package/src/sap/ui/core/cldr/lt.json +1 -0
- package/src/sap/ui/core/cldr/lv.json +1 -0
- package/src/sap/ui/core/cldr/mk.json +6045 -0
- package/src/sap/ui/core/cldr/ms.json +1 -0
- package/src/sap/ui/core/cldr/nb.json +2 -0
- package/src/sap/ui/core/cldr/nl.json +1 -0
- package/src/sap/ui/core/cldr/nl_BE.json +1 -0
- package/src/sap/ui/core/cldr/pl.json +1 -0
- package/src/sap/ui/core/cldr/pt.json +1 -0
- package/src/sap/ui/core/cldr/pt_PT.json +1 -0
- package/src/sap/ui/core/cldr/ro.json +1 -0
- package/src/sap/ui/core/cldr/ru.json +1 -0
- package/src/sap/ui/core/cldr/ru_UA.json +1 -0
- package/src/sap/ui/core/cldr/sk.json +1 -0
- package/src/sap/ui/core/cldr/sl.json +1 -0
- package/src/sap/ui/core/cldr/sr.json +1 -0
- package/src/sap/ui/core/cldr/sr_Latn.json +1 -0
- package/src/sap/ui/core/cldr/sv.json +1 -0
- package/src/sap/ui/core/cldr/th.json +1 -0
- package/src/sap/ui/core/cldr/tr.json +1 -0
- package/src/sap/ui/core/cldr/uk.json +1 -0
- package/src/sap/ui/core/cldr/vi.json +1 -0
- package/src/sap/ui/core/cldr/zh_CN.json +1 -0
- package/src/sap/ui/core/cldr/zh_HK.json +2 -0
- package/src/sap/ui/core/cldr/zh_SG.json +2 -0
- package/src/sap/ui/core/cldr/zh_TW.json +21 -20
- 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/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/FileSizeFormat.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 +1 -1
- package/src/sap/ui/core/library.js +3 -3
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +1 -1
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/messagebundle_it.properties +2 -2
- package/src/sap/ui/core/messagebundle_ja.properties +2 -2
- package/src/sap/ui/core/messagebundle_mk.properties +2 -2
- package/src/sap/ui/core/messagebundle_sh.properties +67 -67
- package/src/sap/ui/core/messagebundle_sk.properties +1 -1
- package/src/sap/ui/core/messagebundle_sr.properties +352 -0
- package/src/sap/ui/core/messagebundle_uk.properties +2 -2
- package/src/sap/ui/core/messagebundle_vi.properties +2 -2
- 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/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/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/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/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +1 -1
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +61 -20
- 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/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +28 -14
- package/src/sap/ui/model/odata/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/ODataUtils.js +12 -11
- package/src/sap/ui/model/odata/_ODataMetaModelUtils.js +1 -1
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/Context.js +4 -2
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +31 -10
- package/src/sap/ui/model/odata/v4/ODataModel.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +15 -3
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +8 -0
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +19 -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 +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/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/util/Storage.js +1 -1
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
- 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/tutorial/databinding/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
- package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +217 -6
- package/test/sap/ui/core/qunit/analytics/o4aMetadata.js +2 -0
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +1 -1
- package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +34 -1
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +51 -4
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +42 -116
- package/test/sap/ui/core/qunit/model/FAR_CUSTOMER_LINE_ITEMS.metadata.xml +2 -0
- package/test/sap/ui/core/qunit/odata/ODataMetadataNoFakeService.qunit.js +154 -0
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +10 -2
- package/test/sap/ui/core/qunit/odata/_ODataMetaModelUtils.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +265 -0
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +26 -2
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +50 -15
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +237 -12
- package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +27 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +41 -7
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +25 -0
- package/test/sap/ui/core/qunit/types/FileSizeFormat.qunit.js +19 -1
- package/test/sap/ui/core/relnotes/changes-1.120.json +31 -0
|
@@ -13,6 +13,12 @@ sap.ui.define([
|
|
|
13
13
|
], function(timezones, Log, Localization, LoaderExtensions, CalendarType, Configuration, Locale,
|
|
14
14
|
LocaleData, CalendarWeekNumbering, TimezoneUtil) {
|
|
15
15
|
"use strict";
|
|
16
|
+
const aSupportedLanguages = ["ar", "ar_EG", "ar_SA", "bg", "ca", "cnr", "cs", "cy", "da", "de", "de_AT", "de_CH",
|
|
17
|
+
"el", "el_CY", "en", "en_AU", "en_GB", "en_HK", "en_IE", "en_IN", "en_NZ", "en_PG", "en_SG", "en_ZA", "es",
|
|
18
|
+
"es_AR", "es_BO", "es_CL", "es_CO", "es_MX", "es_PE", "es_UY", "es_VE", "et", "fa", "fi", "fr", "fr_BE",
|
|
19
|
+
"fr_CA", "fr_CH", "fr_LU", "he", "hi", "hr", "hu", "id", "it", "it_CH", "ja", "kk", "ko", "lt", "lv", "mk",
|
|
20
|
+
"ms", "nb", "nl", "nl_BE", "pl", "pt", "pt_PT", "ro", "ru", "ru_UA", "sk", "sl", "sr", "sr_Latn", "sv", "th",
|
|
21
|
+
"tr", "uk", "vi", "zh_CN", "zh_HK", "zh_SG", "zh_TW"];
|
|
16
22
|
|
|
17
23
|
QUnit.module("Locale Data Loading", {
|
|
18
24
|
beforeEach: function(assert) {
|
|
@@ -25,6 +31,11 @@ sap.ui.define([
|
|
|
25
31
|
}
|
|
26
32
|
});
|
|
27
33
|
|
|
34
|
+
//*********************************************************************************************
|
|
35
|
+
QUnit.test("Supported languages", function(assert) {
|
|
36
|
+
assert.deepEqual(LocaleData._cldrLocales.slice().sort(), aSupportedLanguages.slice().sort());
|
|
37
|
+
});
|
|
38
|
+
|
|
28
39
|
QUnit.test("LocaleData caching of data", function(assert) {
|
|
29
40
|
LocaleData.getInstance(new Locale("en_US"));
|
|
30
41
|
// Get Instance again to test cache
|
|
@@ -77,10 +88,8 @@ sap.ui.define([
|
|
|
77
88
|
assert.equal(oLocaleData.sCLDRLocaleId, "en");
|
|
78
89
|
});
|
|
79
90
|
|
|
80
|
-
var aLanguages = LocaleData._cldrLocales.slice();
|
|
81
|
-
aLanguages.push("sh");
|
|
82
91
|
|
|
83
|
-
|
|
92
|
+
aSupportedLanguages.forEach(function(sLanguage) {
|
|
84
93
|
QUnit.test("getCurrentLanguageName '" + sLanguage + "'", function(assert) {
|
|
85
94
|
var oLocaleData = new LocaleData(new Locale(sLanguage));
|
|
86
95
|
var oLanguagesObject = oLocaleData.getLanguages();
|
|
@@ -88,120 +97,37 @@ sap.ui.define([
|
|
|
88
97
|
assert.ok(oLocaleData.getCurrentLanguageName(), "Current language is present for locale: '" + sLanguage + "'");
|
|
89
98
|
});
|
|
90
99
|
});
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: sr");
|
|
113
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "српски", "current language is present for locale: sr");
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
QUnit.test("getCurrentLanguageName specific iw", function(assert) {
|
|
117
|
-
var oLocale = new Locale("iw"),
|
|
118
|
-
oLocaleData = new LocaleData(oLocale);
|
|
119
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
120
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: iw");
|
|
121
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "עברית", "current language is present for locale: iw");
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
QUnit.test("getCurrentLanguageName specific he", function(assert) {
|
|
125
|
-
var oLocale = new Locale("he"),
|
|
126
|
-
oLocaleData = new LocaleData(oLocale);
|
|
127
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
128
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: he");
|
|
129
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "עברית", "current language is present for locale: he");
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
QUnit.test("getCurrentLanguageName specific iw-x-sapufmt", function(assert) {
|
|
133
|
-
var oLocale = new Locale("iw-x-sapufmt"),
|
|
134
|
-
oLocaleData = new LocaleData(oLocale);
|
|
135
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
136
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: iw-x-sapufmt");
|
|
137
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "עברית", "current language is present for locale: iw-x-sapufmt");
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
QUnit.test("getCurrentLanguageName specific he-x-sapufmt", function(assert) {
|
|
141
|
-
var oLocale = new Locale("he-x-sapufmt"),
|
|
142
|
-
oLocaleData = new LocaleData(oLocale);
|
|
143
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
144
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: he-x-sapufmt");
|
|
145
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "עברית", "current language is present for locale: he-x-sapufmt");
|
|
146
|
-
});
|
|
147
|
-
|
|
100
|
+
[
|
|
101
|
+
{sLocale: "cnr", sName: "crnogorski"},
|
|
102
|
+
{sLocale: "cnr_ME", sName: "crnogorski (Crna Gora)"},
|
|
103
|
+
{sLocale: "he", sName: "עברית"},
|
|
104
|
+
{sLocale: "iw", sName: "עברית"},
|
|
105
|
+
{sLocale: "mk", sName: "македонски"},
|
|
106
|
+
{sLocale: "mk_MK", sName: "македонски (Северна Македонија)"},
|
|
107
|
+
{sLocale: "sh", sName: "srpskohrvatski"},
|
|
108
|
+
{sLocale: "sr-Latn", sName: "srpskohrvatski"},
|
|
109
|
+
{sLocale: "sr_Latn_RS", sName: "srpskohrvatski (Srbija)"},
|
|
110
|
+
{sLocale: "sr", sName: "српски"},
|
|
111
|
+
{sLocale: "sr_RS", sName: "српски (Србија)"},
|
|
112
|
+
{sLocale: "sr_Cyrl", sName: "српски (ћирилица)"},
|
|
113
|
+
{sLocale: "sr_Cyrl_RS", sName: "српски (ћирилица)"},
|
|
114
|
+
{sLocale: "de-x-sapufmt", sName: "Deutsch"},
|
|
115
|
+
{sLocale: "en-GB-x-sapufmt", sName: "British English"},
|
|
116
|
+
{sLocale: "he-x-sapufmt", sName: "עברית"},
|
|
117
|
+
{sLocale: "iw-x-sapufmt", sName: "עברית"},
|
|
118
|
+
{sLocale: "sr-Cyrl-x-sapufmt", sName: "српски (ћирилица)"},
|
|
119
|
+
{sLocale: "sr-Latn-x-sapufmt", sName: "srpskohrvatski"},
|
|
120
|
+
{sLocale: "zh-Hant-x-sapufmt", sName: "繁體中文"},
|
|
148
121
|
// neither ji nor yi is present as CLDR data (en.json is used then)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
assert.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
QUnit.test("getCurrentLanguageName specific yi", function(assert) {
|
|
158
|
-
var oLocale = new Locale("yi"),
|
|
159
|
-
oLocaleData = new LocaleData(oLocale);
|
|
160
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
161
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: yi");
|
|
162
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "Yiddish", "current language is present for locale: yi");
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
QUnit.test("getCurrentLanguageName specific de-x-sapufmt", function(assert) {
|
|
166
|
-
var oLocale = new Locale("de-x-sapufmt"),
|
|
167
|
-
oLocaleData = new LocaleData(oLocale);
|
|
168
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
169
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: de-x-sapufmt");
|
|
170
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "Deutsch", "current language is present for locale: de-x-sapufmt");
|
|
171
|
-
});
|
|
172
|
-
|
|
173
|
-
QUnit.test("getCurrentLanguageName specific en-GB-x-sapufmt", function(assert) {
|
|
174
|
-
var oLocale = new Locale("en-GB-x-sapufmt"),
|
|
175
|
-
oLocaleData = new LocaleData(oLocale);
|
|
176
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
177
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: en-GB-x-sapufmt");
|
|
178
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "British English", "current language is present for locale: en-GB-x-sapufmt");
|
|
179
|
-
});
|
|
180
|
-
|
|
181
|
-
QUnit.test("getCurrentLanguageName specific zh-Hant-x-sapufmt", function(assert) {
|
|
182
|
-
var oLocale = new Locale("zh-Hant-x-sapufmt"),
|
|
183
|
-
oLocaleData = new LocaleData(oLocale);
|
|
184
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
185
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: zh-Hant-x-sapufmt");
|
|
186
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "繁體中文", "current language is present for locale: zh-Hant-x-sapufmt");
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
QUnit.test("getCurrentLanguageName specific sr-Latn-x-sapufmt", function(assert) {
|
|
190
|
-
var oLocale = new Locale("sr-Latn-x-sapufmt"),
|
|
191
|
-
oLocaleData = new LocaleData(oLocale);
|
|
192
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
193
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: sr-Latn-x-sapufmt");
|
|
194
|
-
assert.equal(oLocaleData.getCurrentLanguageName(), "srpskohrvatski", "current language is present for locale: sr-Latn-x-sapufmt");
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
QUnit.test("getCurrentLanguageName specific sr-Cyrl-x-sapufmt", function(assert) {
|
|
198
|
-
var oLocale = new Locale("sr-Cyrl-x-sapufmt"),
|
|
199
|
-
oLocaleData = new LocaleData(oLocale);
|
|
200
|
-
var oLanguagesObject = oLocaleData.getLanguages();
|
|
201
|
-
assert.ok(Object.keys(oLanguagesObject).length > 0, "languages are present for locale: sr-Cyrl-x-sapufmt");
|
|
202
|
-
assert.strictEqual(oLocaleData.getCurrentLanguageName(), "српски (ћирилица)",
|
|
203
|
-
"used derived script name for locale sr-Cyrl-x-sapufmt");
|
|
122
|
+
{sLocale: "ji", sName: "Yiddish"},
|
|
123
|
+
{sLocale: "yi", sName: "Yiddish"}
|
|
124
|
+
].forEach((oFixture) => {
|
|
125
|
+
QUnit.test("getCurrentLanguageName specific " + oFixture.sLocale, function(assert) {
|
|
126
|
+
const oLocaleData = new LocaleData(new Locale(oFixture.sLocale));
|
|
127
|
+
assert.ok(Object.keys(oLocaleData.getLanguages()).length > 0, "languages are present");
|
|
128
|
+
assert.equal(oLocaleData.getCurrentLanguageName(), oFixture.sName, "current language is present");
|
|
204
129
|
});
|
|
130
|
+
});
|
|
205
131
|
|
|
206
132
|
QUnit.test("getCurrentLanguageName: calls getLanguageName", function(assert) {
|
|
207
133
|
const oLocaleData = {
|
|
@@ -749,7 +675,7 @@ sap.ui.define([
|
|
|
749
675
|
"Etc/Zulu"
|
|
750
676
|
];
|
|
751
677
|
|
|
752
|
-
|
|
678
|
+
aSupportedLanguages.forEach(function (sLocale) {
|
|
753
679
|
QUnit.test("getTimezoneTranslations for " + sLocale + " and ensure bijective mapping", function(assert) {
|
|
754
680
|
var oLocaleData = new LocaleData(new Locale(sLocale));
|
|
755
681
|
var mTimezoneTranslations = oLocaleData.getTimezoneTranslations();
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
<Property Name="Customer" Type="Edm.String" MaxLength="10" sap:aggregation-role="dimension" sap:display-format="UpperCase" sap:text="CustomerName" sap:label="Customer" sap:creatable="false" sap:updatable="false" sap:value-list="standard"/>
|
|
23
23
|
<Property Name="CustomerName" Type="Edm.String" MaxLength="80" sap:unicode="false" sap:label="Customer Name" sap:creatable="false" sap:updatable="false" />
|
|
24
24
|
<Property Name="GeneratedID" Type="Edm.String" Nullable="false" sap:aggregation-role="dimension" sap:creatable="false" sap:updatable="false" sap:sortable="false" sap:filterable="false"/>
|
|
25
|
+
<!-- property of type Edm.Time for grouping SNOW: CS20230006325114 -->
|
|
26
|
+
<Property Name="CreationTime" Type="Edm.Time" Nullable="false" sap:aggregation-role="dimension" sap:creatable="false" sap:updatable="false"/>
|
|
25
27
|
<!-- property with sap:value-list but no value list provided in separate load -->
|
|
26
28
|
<Property Name="Invalid" Type="Edm.String" sap:value-list="standard"/>
|
|
27
29
|
<!-- property with ComplexType having a sap:value-list annotated property -->
|
|
@@ -650,4 +650,158 @@ sap.ui.define([
|
|
|
650
650
|
|
|
651
651
|
return pMetadataLoaded;
|
|
652
652
|
});
|
|
653
|
+
|
|
654
|
+
//*********************************************************************************************
|
|
655
|
+
QUnit.test("_getPropertyMetadata: no entity type given", function (assert) {
|
|
656
|
+
// code under test
|
|
657
|
+
assert.strictEqual(ODataMetadata.prototype._getPropertyMetadata.call(/*not relevant*/null), undefined);
|
|
658
|
+
});
|
|
659
|
+
|
|
660
|
+
//*********************************************************************************************
|
|
661
|
+
QUnit.test("_getPropertyMetadata: unknown type property", function (assert) {
|
|
662
|
+
// code under test
|
|
663
|
+
assert.strictEqual(
|
|
664
|
+
ODataMetadata.prototype._getPropertyMetadata.call(/*not relevant*/null, /*oEntityType*/{}, "~property"),
|
|
665
|
+
undefined);
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
//*********************************************************************************************
|
|
669
|
+
["/~property" , "~property", "~property/", "/~property/"].forEach(function (sPath) {
|
|
670
|
+
QUnit.test("_getPropertyMetadata: known type property, sPath=" + sPath, function (assert) {
|
|
671
|
+
var oPropertyMetadata = {name: "~property", type: "Edm.String"},
|
|
672
|
+
oEntityType = {
|
|
673
|
+
property: [{name: "foo", type: "bar"}, oPropertyMetadata]
|
|
674
|
+
},
|
|
675
|
+
oResult;
|
|
676
|
+
|
|
677
|
+
// code under test
|
|
678
|
+
oResult = ODataMetadata.prototype._getPropertyMetadata.call(/*not relevant*/null, oEntityType, sPath);
|
|
679
|
+
|
|
680
|
+
assert.strictEqual(oResult, oPropertyMetadata);
|
|
681
|
+
assert.deepEqual(oResult, {name: "~property", type: "Edm.String"});
|
|
682
|
+
});
|
|
683
|
+
});
|
|
684
|
+
|
|
685
|
+
//*********************************************************************************************
|
|
686
|
+
QUnit.test("_getPropertyMetadata: entity type property addressed via navigation properties", function (assert) {
|
|
687
|
+
var oMetadata = {
|
|
688
|
+
_getEntityTypeByNavProperty() {},
|
|
689
|
+
_getPropertyMetadata() {}
|
|
690
|
+
},
|
|
691
|
+
oMetadataMock = this.mock(oMetadata),
|
|
692
|
+
oEntityType = {property: []};
|
|
693
|
+
|
|
694
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs(sinon.match.same(oEntityType), "~nav0")
|
|
695
|
+
.returns("~entityType0");
|
|
696
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs("~entityType0", "~nav1")
|
|
697
|
+
.returns("~entityType1");
|
|
698
|
+
oMetadataMock.expects("_getPropertyMetadata").withExactArgs("~entityType1", "~property")
|
|
699
|
+
.returns("~oPropertyMetadata");
|
|
700
|
+
|
|
701
|
+
// code under test
|
|
702
|
+
assert.strictEqual(
|
|
703
|
+
ODataMetadata.prototype._getPropertyMetadata.call(oMetadata, oEntityType, "~nav0/~nav1/~property"),
|
|
704
|
+
"~oPropertyMetadata");
|
|
705
|
+
});
|
|
706
|
+
|
|
707
|
+
//*********************************************************************************************
|
|
708
|
+
QUnit.test("_getPropertyMetadata: first part is not a complex type, nav. property or property", function (assert) {
|
|
709
|
+
var oMetadata = {
|
|
710
|
+
_getEntityTypeByNavProperty() {}
|
|
711
|
+
},
|
|
712
|
+
oMetadataMock = this.mock(oMetadata),
|
|
713
|
+
oEntityType = {property: []};
|
|
714
|
+
|
|
715
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs(sinon.match.same(oEntityType), "~nav0")
|
|
716
|
+
.returns(undefined);
|
|
717
|
+
|
|
718
|
+
// code under test
|
|
719
|
+
assert.strictEqual(
|
|
720
|
+
ODataMetadata.prototype._getPropertyMetadata.call(oMetadata, oEntityType, "~nav0/~property"),
|
|
721
|
+
undefined);
|
|
722
|
+
});
|
|
723
|
+
|
|
724
|
+
//*********************************************************************************************
|
|
725
|
+
QUnit.test("_getPropertyMetadata: path segment may be a complex type", function (assert) {
|
|
726
|
+
var oMetadata = {
|
|
727
|
+
_getEntityTypeByNavProperty() {},
|
|
728
|
+
_getPropertyMetadata() {}
|
|
729
|
+
},
|
|
730
|
+
oMetadataMock = this.mock(oMetadata),
|
|
731
|
+
oEntityType = {property: []};
|
|
732
|
+
|
|
733
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs(sinon.match.same(oEntityType), "~nav0")
|
|
734
|
+
.returns("~entityType0");
|
|
735
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs("~entityType0", "~maybeComplex")
|
|
736
|
+
.returns(undefined);
|
|
737
|
+
oMetadataMock.expects("_getPropertyMetadata").withExactArgs("~entityType0", "~maybeComplex/~property")
|
|
738
|
+
.returns("~recursiveCallResult");
|
|
739
|
+
|
|
740
|
+
// code under test
|
|
741
|
+
assert.strictEqual(
|
|
742
|
+
ODataMetadata.prototype._getPropertyMetadata.call(oMetadata, oEntityType, "~nav0/~maybeComplex/~property"),
|
|
743
|
+
"~recursiveCallResult");
|
|
744
|
+
});
|
|
745
|
+
|
|
746
|
+
//*********************************************************************************************
|
|
747
|
+
QUnit.test("_getPropertyMetadata: complex type property", function (assert) {
|
|
748
|
+
var oMetadata = {
|
|
749
|
+
_getObjectMetadata() {},
|
|
750
|
+
_getPropertyMetadata() {},
|
|
751
|
+
_splitName() {}
|
|
752
|
+
},
|
|
753
|
+
oEntityType = {property: [{name: "~complex", type: "~complexType"}]};
|
|
754
|
+
|
|
755
|
+
this.mock(oMetadata).expects("_splitName").withExactArgs("~complexType")
|
|
756
|
+
.returns({name: "~complexTypeName", namespace: "~namespace"});
|
|
757
|
+
this.mock(oMetadata).expects("_getObjectMetadata")
|
|
758
|
+
.withExactArgs("complexType", "~complexTypeName", "~namespace")
|
|
759
|
+
.returns("~oComplexEntityType");
|
|
760
|
+
this.mock(oMetadata).expects("_getPropertyMetadata").withExactArgs("~oComplexEntityType", "~property")
|
|
761
|
+
.returns("~oComplexTypePropertyMetadata");
|
|
762
|
+
|
|
763
|
+
// code under test
|
|
764
|
+
assert.strictEqual(
|
|
765
|
+
ODataMetadata.prototype._getPropertyMetadata.call(oMetadata, oEntityType, "~complex/~property"),
|
|
766
|
+
"~oComplexTypePropertyMetadata");
|
|
767
|
+
});
|
|
768
|
+
|
|
769
|
+
//*********************************************************************************************
|
|
770
|
+
QUnit.test("_getPropertyMetadata: complex type property addressed via navigation properties", function (assert) {
|
|
771
|
+
var oMetadata = {
|
|
772
|
+
_getEntityTypeByNavProperty() {},
|
|
773
|
+
_getPropertyMetadata() {}
|
|
774
|
+
},
|
|
775
|
+
oMetadataMock = this.mock(oMetadata),
|
|
776
|
+
oEntityType = {property: []};
|
|
777
|
+
|
|
778
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs(sinon.match.same(oEntityType), "~nav0")
|
|
779
|
+
.returns("~entityType0");
|
|
780
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs("~entityType0", "~nav1")
|
|
781
|
+
.returns("~entityType1");
|
|
782
|
+
oMetadataMock.expects("_getEntityTypeByNavProperty").withExactArgs("~entityType1", "~complex")
|
|
783
|
+
.returns(undefined);
|
|
784
|
+
oMetadataMock.expects("_getPropertyMetadata").withExactArgs("~entityType1", "~complex/~property")
|
|
785
|
+
.returns("~oComplexTypePropertyMetadata");
|
|
786
|
+
|
|
787
|
+
// code under test
|
|
788
|
+
assert.strictEqual(
|
|
789
|
+
ODataMetadata.prototype._getPropertyMetadata.call(oMetadata, oEntityType, "~nav0/~nav1/~complex/~property"),
|
|
790
|
+
"~oComplexTypePropertyMetadata");
|
|
791
|
+
});
|
|
792
|
+
|
|
793
|
+
//*********************************************************************************************
|
|
794
|
+
QUnit.test("_getPropertyMetadata: with metadata path", function (assert) {
|
|
795
|
+
var oPropertyMetadata = {name: "~property", type: "Edm.String"},
|
|
796
|
+
oEntityType = {
|
|
797
|
+
property: [oPropertyMetadata]
|
|
798
|
+
},
|
|
799
|
+
oResult;
|
|
800
|
+
|
|
801
|
+
// code under test
|
|
802
|
+
oResult = ODataMetadata.prototype._getPropertyMetadata.call({}, oEntityType, "~property/@sap:label");
|
|
803
|
+
|
|
804
|
+
assert.strictEqual(oResult, oPropertyMetadata);
|
|
805
|
+
assert.deepEqual(oResult, {name: "~property", type: "Edm.String"});
|
|
806
|
+
});
|
|
653
807
|
});
|
|
@@ -804,13 +804,21 @@ sap.ui.define([
|
|
|
804
804
|
//*********************************************************************************************
|
|
805
805
|
QUnit.test("_getReadRange with placeholder", function (assert) {
|
|
806
806
|
const oPlaceholder = {placeholder : true};
|
|
807
|
-
|
|
808
|
-
oPlaceholder
|
|
807
|
+
let aElements = [oPlaceholder, oPlaceholder, {}, {}, {}, oPlaceholder, oPlaceholder,
|
|
808
|
+
oPlaceholder];
|
|
809
809
|
|
|
810
810
|
assert.deepEqual(
|
|
811
811
|
// code under test
|
|
812
812
|
ODataUtils._getReadRange(aElements, 2, 3, 4, (oElement) => oElement.placeholder),
|
|
813
813
|
{start : 0, length : 9}
|
|
814
814
|
);
|
|
815
|
+
|
|
816
|
+
aElements = [oPlaceholder, oPlaceholder, {}, {}, {}];
|
|
817
|
+
|
|
818
|
+
assert.deepEqual(
|
|
819
|
+
// code under test - do not call callback with undefined
|
|
820
|
+
ODataUtils._getReadRange(aElements, 2, 3, 4, (oElement) => oElement.placeholder),
|
|
821
|
+
{start : 0, length : 9}
|
|
822
|
+
);
|
|
815
823
|
});
|
|
816
824
|
});
|
|
@@ -837,8 +837,8 @@ sap.ui.define([
|
|
|
837
837
|
oUtilsMock = this.mock(Utils);
|
|
838
838
|
|
|
839
839
|
// Associations, ComplexTypes and EntityType of Schema0
|
|
840
|
-
oLift0 = oUtilsMock.expects("liftSAPData")
|
|
841
|
-
ignoreAnnotationsFromMetadata);
|
|
840
|
+
oLift0 = oUtilsMock.expects("liftSAPData")
|
|
841
|
+
.withExactArgs(sinon.match.same(oSchema0), undefined, ignoreAnnotationsFromMetadata);
|
|
842
842
|
oVisitAssociation0 = oUtilsMock.expects("visitParents")
|
|
843
843
|
.withExactArgs(sinon.match.same(oSchema0), sinon.match.same(oAnnotations),
|
|
844
844
|
"association", sinon.match.func);
|
|
@@ -849,8 +849,8 @@ sap.ui.define([
|
|
|
849
849
|
.withExactArgs(sinon.match.same(oSchema0), sinon.match.same(oAnnotations),
|
|
850
850
|
"entityType", sinon.match.same(Utils.visitEntityType), undefined, ignoreAnnotationsFromMetadata);
|
|
851
851
|
// Associations, ComplexTypes and EntityType of Schema1
|
|
852
|
-
oLift1 = oUtilsMock.expects("liftSAPData")
|
|
853
|
-
ignoreAnnotationsFromMetadata);
|
|
852
|
+
oLift1 = oUtilsMock.expects("liftSAPData")
|
|
853
|
+
.withExactArgs(sinon.match.same(oSchema1), undefined, ignoreAnnotationsFromMetadata);
|
|
854
854
|
oVisitAssociation1 = oUtilsMock.expects("visitParents")
|
|
855
855
|
.withExactArgs(sinon.match.same(oSchema1), sinon.match.same(oAnnotations),
|
|
856
856
|
"association", sinon.match.func);
|