@openui5/sap.ui.core 1.120.1 → 1.120.2

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.
Files changed (476) hide show
  1. package/.reuse/dep5 +1 -1
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/Event.js +1 -1
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/i18n/LanguageTag.js +1 -1
  13. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +3 -3
  56. package/src/sap/ui/Global.js +4 -4
  57. package/src/sap/ui/base/BindingParser.js +4 -4
  58. package/src/sap/ui/base/DataType.js +5 -5
  59. package/src/sap/ui/base/Event.js +1 -1
  60. package/src/sap/ui/base/EventProvider.js +1 -1
  61. package/src/sap/ui/base/Interface.js +1 -1
  62. package/src/sap/ui/base/ManagedObject.js +9 -9
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/ManagedObjectRegistry.js +186 -169
  65. package/src/sap/ui/base/Metadata.js +1 -1
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/core/.library +3 -3
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/Component.js +30 -144
  71. package/src/sap/ui/core/ComponentContainer.js +3 -3
  72. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  73. package/src/sap/ui/core/ComponentRegistry.js +153 -0
  74. package/src/sap/ui/core/ComponentSupport.js +3 -3
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +6 -4
  77. package/src/sap/ui/core/Core.js +6 -4
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +25 -141
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/ElementRegistry.js +159 -0
  83. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  84. package/src/sap/ui/core/EventBus.js +1 -1
  85. package/src/sap/ui/core/ExtensionPoint.js +5 -5
  86. package/src/sap/ui/core/FocusHandler.js +3 -2
  87. package/src/sap/ui/core/Fragment.js +5 -5
  88. package/src/sap/ui/core/HTML.js +1 -1
  89. package/src/sap/ui/core/History.js +1 -1
  90. package/src/sap/ui/core/Icon.js +1 -1
  91. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  92. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  93. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  94. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  95. package/src/sap/ui/core/InvisibleText.js +1 -1
  96. package/src/sap/ui/core/Item.js +1 -1
  97. package/src/sap/ui/core/LabelEnablement.js +1 -1
  98. package/src/sap/ui/core/LayoutData.js +1 -1
  99. package/src/sap/ui/core/Lib.js +7 -7
  100. package/src/sap/ui/core/ListItem.js +1 -1
  101. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  102. package/src/sap/ui/core/Locale.js +1 -1
  103. package/src/sap/ui/core/LocaleData.js +55 -11
  104. package/src/sap/ui/core/Manifest.js +4 -5
  105. package/src/sap/ui/core/Message.js +2 -1
  106. package/src/sap/ui/core/Messaging.js +2 -2
  107. package/src/sap/ui/core/RenderManager.js +1 -1
  108. package/src/sap/ui/core/Renderer.js +1 -1
  109. package/src/sap/ui/core/ResizeHandler.js +1 -1
  110. package/src/sap/ui/core/ScrollBar.js +1 -1
  111. package/src/sap/ui/core/SeparatorItem.js +1 -1
  112. package/src/sap/ui/core/Shortcut.js +15 -9
  113. package/src/sap/ui/core/StaticArea.js +4 -1
  114. package/src/sap/ui/core/Theming.js +3 -3
  115. package/src/sap/ui/core/Title.js +1 -1
  116. package/src/sap/ui/core/TooltipBase.js +1 -1
  117. package/src/sap/ui/core/UIArea.js +51 -13
  118. package/src/sap/ui/core/UIAreaRegistry.js +150 -0
  119. package/src/sap/ui/core/UIComponent.js +3 -3
  120. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  121. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  122. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  123. package/src/sap/ui/core/XMLComposite.js +1 -1
  124. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  125. package/src/sap/ui/core/XMLTemplateProcessor.js +95 -76
  126. package/src/sap/ui/core/cldr/Unicode-Data-Files-LICENSE.txt +1 -1
  127. package/src/sap/ui/core/cldr/cy.json +12 -3
  128. package/src/sap/ui/core/cldr/en_AU.json +48 -12
  129. package/src/sap/ui/core/cldr/en_GB.json +24 -6
  130. package/src/sap/ui/core/cldr/en_HK.json +24 -6
  131. package/src/sap/ui/core/cldr/en_IE.json +24 -6
  132. package/src/sap/ui/core/cldr/en_IN.json +24 -6
  133. package/src/sap/ui/core/cldr/en_NZ.json +24 -6
  134. package/src/sap/ui/core/cldr/en_PG.json +24 -6
  135. package/src/sap/ui/core/cldr/en_SG.json +24 -6
  136. package/src/sap/ui/core/cldr/en_ZA.json +24 -6
  137. package/src/sap/ui/core/cldr/es.json +288 -72
  138. package/src/sap/ui/core/cldr/es_AR.json +288 -72
  139. package/src/sap/ui/core/cldr/es_BO.json +288 -72
  140. package/src/sap/ui/core/cldr/es_CL.json +144 -36
  141. package/src/sap/ui/core/cldr/es_CO.json +144 -36
  142. package/src/sap/ui/core/cldr/es_MX.json +288 -72
  143. package/src/sap/ui/core/cldr/fa.json +48 -12
  144. package/src/sap/ui/core/cldr/id.json +56 -14
  145. package/src/sap/ui/core/cldr/kk.json +184 -46
  146. package/src/sap/ui/core/cldr/ms.json +56 -14
  147. package/src/sap/ui/core/cldr/nb.json +36 -9
  148. package/src/sap/ui/core/cldr/nl.json +264 -66
  149. package/src/sap/ui/core/cldr/nl_BE.json +264 -66
  150. package/src/sap/ui/core/cldr/pt.json +288 -72
  151. package/src/sap/ui/core/cldr/pt_PT.json +288 -72
  152. package/src/sap/ui/core/cldr/sr.json +96 -24
  153. package/src/sap/ui/core/cldr/sr_Latn.json +72 -18
  154. package/src/sap/ui/core/date/UI5Date.js +1 -1
  155. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  156. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  157. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  158. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  159. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  160. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  161. package/src/sap/ui/core/format/DateFormat.js +25 -13
  162. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  163. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  164. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  165. package/src/sap/ui/core/library.js +9 -3
  166. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  167. package/src/sap/ui/core/message/Message.js +7 -7
  168. package/src/sap/ui/core/message/MessageManager.js +1 -1
  169. package/src/sap/ui/core/message/MessageParser.js +1 -1
  170. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  171. package/src/sap/ui/core/message/MessageType.js +1 -1
  172. package/src/sap/ui/core/mvc/Controller.js +15 -13
  173. package/src/sap/ui/core/mvc/ControllerExtension.js +7 -5
  174. package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
  175. package/src/sap/ui/core/mvc/ControllerMetadata.js +1 -1
  176. package/src/sap/ui/core/mvc/EventHandlerResolver.js +4 -4
  177. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  178. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  179. package/src/sap/ui/core/mvc/JSView.js +1 -1
  180. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  181. package/src/sap/ui/core/mvc/View.js +20 -9
  182. package/src/sap/ui/core/mvc/XMLView.js +8 -2
  183. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  184. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  185. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  186. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  187. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  188. package/src/sap/ui/core/routing/History.js +1 -1
  189. package/src/sap/ui/core/routing/Route.js +6 -6
  190. package/src/sap/ui/core/routing/Router.js +6 -6
  191. package/src/sap/ui/core/routing/Targets.js +3 -3
  192. package/src/sap/ui/core/routing/async/Target.js +2 -2
  193. package/src/sap/ui/core/routing/async/Targets.js +1 -1
  194. package/src/sap/ui/core/rules/Misc.support.js +3 -3
  195. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  196. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  197. package/src/sap/ui/core/service/Service.js +1 -1
  198. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  199. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  200. package/src/sap/ui/core/support/Plugin.js +1 -1
  201. package/src/sap/ui/core/support/Support.js +1 -1
  202. package/src/sap/ui/core/support/plugins/ControlTree.js +6 -4
  203. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  204. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  205. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  206. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  207. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  208. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  209. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  210. package/src/sap/ui/core/theming/Parameters.js +7 -7
  211. package/src/sap/ui/core/theming/ThemeHelper.js +2 -2
  212. package/src/sap/ui/core/theming/ThemeManager.js +2 -2
  213. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  214. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  215. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  216. package/src/sap/ui/core/tmpl/Template.js +1 -1
  217. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  218. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  219. package/src/sap/ui/core/util/Export.js +1 -1
  220. package/src/sap/ui/core/util/ExportCell.js +1 -1
  221. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  222. package/src/sap/ui/core/util/ExportRow.js +1 -1
  223. package/src/sap/ui/core/util/ExportType.js +1 -1
  224. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  225. package/src/sap/ui/core/util/File.js +1 -1
  226. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  227. package/src/sap/ui/core/util/MockServer.js +34 -3
  228. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  229. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  230. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  231. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  232. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  233. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  234. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  235. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  236. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  237. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  238. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  239. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  240. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  241. package/src/sap/ui/debug/ControlTree.js +1 -1
  242. package/src/sap/ui/debug/DebugEnv.js +1 -1
  243. package/src/sap/ui/debug/PropertyList.js +1 -1
  244. package/src/sap/ui/model/Binding.js +2 -2
  245. package/src/sap/ui/model/ClientModel.js +1 -1
  246. package/src/sap/ui/model/CompositeDataState.js +5 -5
  247. package/src/sap/ui/model/CompositeType.js +1 -1
  248. package/src/sap/ui/model/DataState.js +10 -10
  249. package/src/sap/ui/model/FilterProcessor.js +8 -5
  250. package/src/sap/ui/model/ManagedObjectBindingSupport.js +2 -2
  251. package/src/sap/ui/model/MetaModel.js +1 -1
  252. package/src/sap/ui/model/Model.js +1 -1
  253. package/src/sap/ui/model/SelectionModel.js +1 -1
  254. package/src/sap/ui/model/SimpleType.js +1 -1
  255. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  256. package/src/sap/ui/model/Type.js +1 -1
  257. package/src/sap/ui/model/analytics/odata4analytics.js +6 -6
  258. package/src/sap/ui/model/json/JSONModel.js +1 -1
  259. package/src/sap/ui/model/message/MessageModel.js +1 -1
  260. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  261. package/src/sap/ui/model/odata/ODataMessageParser.js +3 -3
  262. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  263. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  264. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  265. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  266. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  267. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  268. package/src/sap/ui/model/odata/type/Date.js +1 -1
  269. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  270. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  271. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  272. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  273. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  274. package/src/sap/ui/model/odata/type/Double.js +1 -1
  275. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  276. package/src/sap/ui/model/odata/type/Int.js +1 -1
  277. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  278. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  279. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  280. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  281. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  282. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  283. package/src/sap/ui/model/odata/type/Single.js +1 -1
  284. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  285. package/src/sap/ui/model/odata/type/String.js +1 -1
  286. package/src/sap/ui/model/odata/type/Time.js +1 -1
  287. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  288. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  289. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  290. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  291. package/src/sap/ui/model/odata/v2/ODataModel.js +4 -4
  292. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  293. package/src/sap/ui/model/odata/v4/Context.js +32 -27
  294. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
  295. package/src/sap/ui/model/odata/v4/ODataListBinding.js +198 -155
  296. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  297. package/src/sap/ui/model/odata/v4/ODataModel.js +9 -4
  298. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +9 -6
  299. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
  300. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +220 -85
  301. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +33 -20
  302. package/src/sap/ui/model/odata/v4/lib/_Cache.js +70 -18
  303. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +9 -5
  304. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  305. package/src/sap/ui/model/type/Boolean.js +1 -1
  306. package/src/sap/ui/model/type/Currency.js +1 -1
  307. package/src/sap/ui/model/type/Date.js +1 -1
  308. package/src/sap/ui/model/type/DateInterval.js +1 -1
  309. package/src/sap/ui/model/type/DateTime.js +1 -1
  310. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  311. package/src/sap/ui/model/type/FileSize.js +1 -1
  312. package/src/sap/ui/model/type/Float.js +1 -1
  313. package/src/sap/ui/model/type/Integer.js +1 -1
  314. package/src/sap/ui/model/type/String.js +1 -1
  315. package/src/sap/ui/model/type/Time.js +1 -1
  316. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  317. package/src/sap/ui/model/type/Unit.js +1 -1
  318. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  319. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  320. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +5 -5
  321. package/src/sap/ui/test/BranchTracking.js +4 -0
  322. package/src/sap/ui/test/actions/EnterText.js +1 -5
  323. package/src/sap/ui/test/generic/GenericTestCollection.js +1 -0
  324. package/src/sap/ui/test/generic/TestBase.js +4 -4
  325. package/src/sap/ui/test/generic/Utils.js +3 -2
  326. package/src/sap/ui/util/Storage.js +1 -1
  327. package/src/ui5loader-autoconfig.js +23 -15
  328. package/src/ui5loader.js +9 -4
  329. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +1 -1
  330. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Template.controller.js +3 -3
  331. package/test/sap/ui/core/demokit/sample/common/Controller.js +0 -1
  332. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  333. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  335. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  336. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +1 -1
  337. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +14 -1
  338. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +6 -0
  339. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/MIT.MultipleInlineCreationRowsGrid.html +5 -0
  340. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +9 -2
  341. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +23 -0
  342. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/pages/Main.js +58 -1
  343. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +75 -30
  344. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +19 -1
  345. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +84 -28
  346. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +3 -3
  347. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  348. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  350. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  351. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  353. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  354. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  356. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  362. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  363. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  365. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  366. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  367. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  368. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  369. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  370. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  371. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  372. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  373. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  374. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  375. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  377. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  379. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  380. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  381. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  383. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  384. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  385. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  386. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  387. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  388. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  389. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  390. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  391. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  392. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  393. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  394. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  395. package/test/sap/ui/core/qunit/BindingParser.qunit.js +4 -4
  396. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +3 -1
  397. package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
  398. package/test/sap/ui/core/qunit/DataBinding.qunit.js +6 -6
  399. package/test/sap/ui/core/qunit/Declarative.qunit.js +6 -6
  400. package/test/sap/ui/core/qunit/Element_base.qunit.js +8 -7
  401. package/test/sap/ui/core/qunit/Element_base_legacyAPIs.qunit.js +48 -0
  402. package/test/sap/ui/core/qunit/Element_closestTo.qunit.js +1 -1
  403. package/test/sap/ui/core/qunit/Fragment.qunit.js +63 -13
  404. package/test/sap/ui/core/qunit/HTML.qunit.js +5 -5
  405. package/test/sap/ui/core/qunit/Lib.qunit.js +19 -2
  406. package/test/sap/ui/core/qunit/PlaceAt.qunit.js +6 -6
  407. package/test/sap/ui/core/qunit/Shortcut.qunit.js +9 -1
  408. package/test/sap/ui/core/qunit/UIArea.qunit.js +7 -6
  409. package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +41 -0
  410. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.html +7 -5
  411. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +46 -7
  412. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +24 -21
  413. package/test/sap/ui/core/qunit/component/Component.qunit.js +9 -8
  414. package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +1 -1
  415. package/test/sap/ui/core/qunit/component/Models.qunit.js +29 -30
  416. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +3 -3
  417. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +4 -3
  418. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +6 -7
  419. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +3 -2
  420. package/test/sap/ui/core/qunit/generic/legacy/testsuite.generic.qunit.js +3 -0
  421. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +65 -0
  422. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +12 -12
  423. package/test/sap/ui/core/qunit/loader/syncMode_unavoidablySync.qunit.js +54 -1
  424. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +3 -1
  425. package/test/sap/ui/core/qunit/mockserver/testdata/shopping/Products.json +1 -1
  426. package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +22 -8
  427. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +3 -0
  428. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -2
  429. package/test/sap/ui/core/qunit/mvc/EventHandlerResolver.qunit.js +2 -2
  430. package/test/sap/ui/core/qunit/mvc/View.qunit.js +38 -35
  431. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +1 -1
  432. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +1 -1
  433. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +5 -5
  434. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
  435. package/test/sap/ui/core/qunit/mvc/extensions/ControllerMetadata.qunit.js +6 -2
  436. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +12 -0
  437. package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +12 -0
  438. package/test/sap/ui/core/qunit/mvc/extensions/testdata/AnotherMain.controller.js +3 -1
  439. package/test/sap/ui/core/qunit/mvc/testdata/XMLViewEmbeddingTypedViews.view.xml +1 -1
  440. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +26 -7
  441. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +5 -5
  442. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +2 -2
  443. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +36 -34
  444. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +69 -0
  445. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +43 -22
  446. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +318 -217
  447. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2111 -124
  448. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +43 -35
  449. package/test/sap/ui/core/qunit/odata/v4/data/metadata_special_cases.xml +20 -2
  450. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +453 -125
  451. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +70 -33
  452. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +256 -8
  453. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +10 -2
  454. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +38 -14
  455. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +102 -52
  456. package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +1 -1
  457. package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +4 -5
  458. package/test/sap/ui/core/qunit/routing/async/TitleHistory.qunit.js +1 -1
  459. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/Component.js +1 -0
  460. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Child/manifest.json +1 -5
  461. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/Component.js +1 -0
  462. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/Parent/manifest.json +1 -5
  463. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/Component.js +15 -0
  464. package/test/sap/ui/core/qunit/routing/fixture/router/component/parentRoute/ParentExtended/manifest.json +8 -0
  465. package/test/sap/ui/core/qunit/routing/sync/Router.qunit.js +2 -2
  466. package/test/sap/ui/core/qunit/routing/sync/Targets.qunit.js +2 -3
  467. package/test/sap/ui/core/qunit/testdata/fragments/XMLTestFragmentWithXMLView.fragment.xml +5 -0
  468. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  469. package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +4 -0
  470. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +190 -0
  471. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  472. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry.qunit.js +161 -0
  473. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectRegistry_legacyAPIs.qunit.js +150 -0
  474. package/test/sap/ui/core/qunit/ui5classes/testsuite.ui5classes.qunit.js +84 -0
  475. package/test/sap/ui/core/qunit/util/ViewSerializer.qunit.js +4 -3
  476. package/test/sap/ui/core/relnotes/changes-1.120.json +225 -0
@@ -432,7 +432,7 @@ sap.ui.define([
432
432
  });
433
433
 
434
434
 
435
- assert.ok(oLogSpy.withArgs("The 'viewName' option shouldn't be used in Route. please use 'view' instead").calledOnce, "The error log is done and the log message is correct");
435
+ assert.ok(oLogSpy.calledWith(sinon.match(/The 'viewName' option shouldn't be used in Route. please use 'view' instead/)), "The error log is done and the log message is correct");
436
436
  });
437
437
 
438
438
  QUnit.test("subroute handling", function(assert) {
@@ -2476,70 +2476,120 @@ sap.ui.define([
2476
2476
  QUnit.module("nested components", {
2477
2477
  beforeEach: function() {
2478
2478
  hasher.setHash("");
2479
- return Component.create({
2480
- name: "qunit.router.component.parentRoute.Parent",
2481
- id: "parent"
2482
- }).then(function(oComponent) {
2483
- var that = this;
2484
- this.oParentComponent = oComponent;
2485
- this.oParentComponent.getRouter().initialize();
2486
2479
 
2487
- var oRootView = oComponent.getRootControl();
2488
- var oComponentContainer = oRootView.byId("container");
2489
-
2490
- return new Promise(function(resolve, reject) {
2491
- oRootView.placeAt("qunit-fixture");
2492
- oComponentContainer.attachComponentCreated(function(oEvent) {
2493
- that.oChildComponent = oEvent.getParameter("component");
2494
- resolve();
2480
+ this.createComponent = function(sComponentName) {
2481
+ return Component.create({
2482
+ name: sComponentName,
2483
+ id: "parent"
2484
+ }).then(function(oComponent) {
2485
+ var that = this;
2486
+ this.oParentComponent = oComponent;
2487
+ this.oParentComponent.getRouter().initialize();
2488
+
2489
+ this.oRootView = oComponent.getRootControl();
2490
+ var oComponentContainer = that.oRootView.byId("container");
2491
+
2492
+ return new Promise(function(resolve, reject) {
2493
+ that.oRootView.placeAt("qunit-fixture");
2494
+ oComponentContainer.attachComponentCreated(function(oEvent) {
2495
+ that.oChildComponent = oEvent.getParameter("component");
2496
+ resolve();
2497
+ });
2495
2498
  });
2496
- });
2497
- }.bind(this));
2499
+ }.bind(this));
2500
+ };
2498
2501
  },
2499
2502
  afterEach: function () {
2503
+ this.oRootView.destroy();
2500
2504
  this.oParentComponent.destroy();
2501
2505
  this.oChildComponent.destroy();
2502
2506
  }
2503
2507
  });
2504
2508
 
2505
2509
  QUnit.test("fire events", function(assert) {
2506
- // Arrange
2507
- var oParentRouteMatchedEvent,
2508
- oParentRouteMatchedEventSpy = sinon.spy(function(oEvent) {
2509
- // save the oEvent because EventProvider will overwrite it otherwise
2510
- oParentRouteMatchedEvent = deepExtend({}, oEvent);
2511
- }),
2512
- oParentRoutePatternMatchedEventSpy = sinon.spy(),
2513
- oChildRouteMatchedEvent,
2514
- oChildRouteMatchedEventSpy = sinon.spy(function(oEvent) {
2515
- oChildRouteMatchedEvent = deepExtend({}, oEvent);
2516
- }),
2517
- oChildRoutePatternMatchedEventSpy = sinon.spy(),
2518
- oParentRoute = this.oParentComponent.getRouter().getRoute("category"),
2519
- oChildRoute = this.oChildComponent.getRouter().getRoute("product"),
2520
- oParentRouteMatchedSpy = sinon.spy(oParentRoute, "_routeMatched"),
2521
- oChildRouteMatchedSpy = sinon.spy(oChildRoute, "_routeMatched");
2510
+ return this.createComponent("qunit.router.component.parentRoute.Parent")
2511
+ .then(function() {
2512
+ // Arrange
2513
+ var oParentRouteMatchedEvent,
2514
+ oParentRouteMatchedEventSpy = this.spy(function(oEvent) {
2515
+ // save the oEvent because EventProvider will overwrite it otherwise
2516
+ oParentRouteMatchedEvent = deepExtend({}, oEvent);
2517
+ }),
2518
+ oParentRoutePatternMatchedEventSpy = this.spy(),
2519
+ oChildRouteMatchedEvent,
2520
+ oChildRouteMatchedEventSpy = this.spy(function(oEvent) {
2521
+ oChildRouteMatchedEvent = deepExtend({}, oEvent);
2522
+ }),
2523
+ oChildRoutePatternMatchedEventSpy = this.spy(),
2524
+ oParentRoute = this.oParentComponent.getRouter().getRoute("category"),
2525
+ oChildRoute = this.oChildComponent.getRouter().getRoute("product"),
2526
+ oParentRouteMatchedSpy = this.spy(oParentRoute, "_routeMatched"),
2527
+ oChildRouteMatchedSpy = this.spy(oChildRoute, "_routeMatched");
2528
+
2529
+ oParentRoute.attachMatched(oParentRouteMatchedEventSpy);
2530
+ oParentRoute.attachPatternMatched(oParentRoutePatternMatchedEventSpy);
2531
+ oChildRoute.attachMatched(oChildRouteMatchedEventSpy);
2532
+ oChildRoute.attachPatternMatched(oChildRoutePatternMatchedEventSpy);
2533
+
2534
+ // Act
2535
+ hasher.setHash("category/0/product/0");
2522
2536
 
2523
- oParentRoute.attachMatched(oParentRouteMatchedEventSpy);
2524
- oParentRoute.attachPatternMatched(oParentRoutePatternMatchedEventSpy);
2525
- oChildRoute.attachMatched(oChildRouteMatchedEventSpy);
2526
- oChildRoute.attachPatternMatched(oChildRoutePatternMatchedEventSpy);
2537
+ // Assert
2538
+ assert.strictEqual(oParentRouteMatchedSpy.callCount, 1, "Parent should be matched");
2539
+ assert.strictEqual(oChildRouteMatchedSpy.callCount, 1, "Child is matched");
2540
+
2541
+ return Promise.all([oParentRouteMatchedSpy.returnValues[0], oChildRouteMatchedSpy.returnValues[0]]).then(function() {
2542
+ assert.strictEqual(oParentRouteMatchedEventSpy.callCount, 1, "routeMatched fired for parent route");
2543
+ assert.strictEqual(oParentRoutePatternMatchedEventSpy.callCount, 0, "routePatternMatched not fired for parent route");
2544
+ assert.strictEqual(oParentRouteMatchedEvent.getParameter("nestedRoute"), oChildRoute, "childRoute is passed to event listeners");
2545
+ assert.strictEqual(oChildRouteMatchedEventSpy.callCount, 1, "routeMatched fired for child route");
2546
+ assert.strictEqual(oChildRoutePatternMatchedEventSpy.callCount, 1, "routePatternMatched fired for child route");
2547
+ assert.strictEqual(oChildRouteMatchedEvent.getParameter("nestedRoute"), undefined, "no route is passed to event listeners");
2548
+ });
2549
+ }.bind(this));
2550
+ });
2527
2551
 
2528
- // Act
2529
- hasher.setHash("category/0/product/0");
2552
+ QUnit.test("fire events with extended parent component", function(assert) {
2553
+ return this.createComponent("qunit.router.component.parentRoute.ParentExtended")
2554
+ .then(function() {
2555
+ // Arrange
2556
+ var oParentRouteMatchedEvent,
2557
+ oParentRouteMatchedEventSpy = this.spy(function(oEvent) {
2558
+ // save the oEvent because EventProvider will overwrite it otherwise
2559
+ oParentRouteMatchedEvent = deepExtend({}, oEvent);
2560
+ }),
2561
+ oParentRoutePatternMatchedEventSpy = this.spy(),
2562
+ oChildRouteMatchedEvent,
2563
+ oChildRouteMatchedEventSpy = this.spy(function(oEvent) {
2564
+ oChildRouteMatchedEvent = deepExtend({}, oEvent);
2565
+ }),
2566
+ oChildRoutePatternMatchedEventSpy = this.spy(),
2567
+ oParentRoute = this.oParentComponent.getRouter().getRoute("category"),
2568
+ oChildRoute = this.oChildComponent.getRouter().getRoute("product"),
2569
+ oParentRouteMatchedSpy = this.spy(oParentRoute, "_routeMatched"),
2570
+ oChildRouteMatchedSpy = this.spy(oChildRoute, "_routeMatched");
2571
+
2572
+ oParentRoute.attachMatched(oParentRouteMatchedEventSpy);
2573
+ oParentRoute.attachPatternMatched(oParentRoutePatternMatchedEventSpy);
2574
+ oChildRoute.attachMatched(oChildRouteMatchedEventSpy);
2575
+ oChildRoute.attachPatternMatched(oChildRoutePatternMatchedEventSpy);
2576
+
2577
+ // Act
2578
+ hasher.setHash("category/0/product/0");
2530
2579
 
2531
- // Assert
2532
- assert.strictEqual(oParentRouteMatchedSpy.callCount, 1, "Parent should be matched");
2533
- assert.strictEqual(oChildRouteMatchedSpy.callCount, 1, "Child is matched");
2534
-
2535
- return Promise.all([oParentRouteMatchedSpy.returnValues[0], oChildRouteMatchedSpy.returnValues[0]]).then(function() {
2536
- assert.strictEqual(oParentRouteMatchedEventSpy.callCount, 1, "routeMatched fired for parent route");
2537
- assert.strictEqual(oParentRoutePatternMatchedEventSpy.callCount, 0, "routePatternMatched not fired for parent route");
2538
- assert.strictEqual(oParentRouteMatchedEvent.getParameter("nestedRoute"), oChildRoute, "childRoute is passed to event listeners");
2539
- assert.strictEqual(oChildRouteMatchedEventSpy.callCount, 1, "routeMatched fired for child route");
2540
- assert.strictEqual(oChildRoutePatternMatchedEventSpy.callCount, 1, "routePatternMatched fired for child route");
2541
- assert.strictEqual(oChildRouteMatchedEvent.getParameter("nestedRoute"), undefined, "no route is passed to event listeners");
2542
- });
2580
+ // Assert
2581
+ assert.strictEqual(oParentRouteMatchedSpy.callCount, 1, "Parent should be matched");
2582
+ assert.strictEqual(oChildRouteMatchedSpy.callCount, 1, "Child is matched");
2583
+
2584
+ return Promise.all([oParentRouteMatchedSpy.returnValues[0], oChildRouteMatchedSpy.returnValues[0]]).then(function() {
2585
+ assert.strictEqual(oParentRouteMatchedEventSpy.callCount, 1, "routeMatched fired for parent route");
2586
+ assert.strictEqual(oParentRoutePatternMatchedEventSpy.callCount, 0, "routePatternMatched not fired for parent route");
2587
+ assert.strictEqual(oParentRouteMatchedEvent.getParameter("nestedRoute"), oChildRoute, "childRoute is passed to event listeners");
2588
+ assert.strictEqual(oChildRouteMatchedEventSpy.callCount, 1, "routeMatched fired for child route");
2589
+ assert.strictEqual(oChildRoutePatternMatchedEventSpy.callCount, 1, "routePatternMatched fired for child route");
2590
+ assert.strictEqual(oChildRouteMatchedEvent.getParameter("nestedRoute"), undefined, "no route is passed to event listeners");
2591
+ });
2592
+ }.bind(this));
2543
2593
  });
2544
2594
 
2545
2595
  function resetBrowserHash() {
@@ -302,7 +302,7 @@ sap.ui.define([
302
302
  }, function(oError) {
303
303
  // Assert
304
304
  assert.ok(oError instanceof Error, "The promise is rejected with an error object");
305
- assert.equal(oError.message, "The target myTarget has a control id or a parent but no 'controlAggregation' was set, so the target could not be displayed. - Target: myTarget", "The error message is correct");
305
+ assert.ok(oError.message.includes("The target myTarget has a control id or a parent but no 'controlAggregation' was set, so the target could not be displayed. - Target: myTarget"), "The error message is correct");
306
306
  });
307
307
  });
308
308
 
@@ -355,7 +355,7 @@ sap.ui.define([
355
355
  // Act
356
356
  return this.oTargets.display("foo").then(function(aViewInfos) {
357
357
  assert.strictEqual(aViewInfos[0].name, "foo", "Matching target info is returned");
358
- assert.strictEqual(aViewInfos[0].error, "The target with the name \"foo\" does not exist!", "Matching error message is returned");
358
+ assert.ok(aViewInfos[0].error.includes("The target with the name \"foo\" does not exist!"), "Matching error message is returned");
359
359
  // Assert
360
360
  sinon.assert.calledWith(oErrorStub, sinon.match(/does not exist/), sinon.match(this.oTargets));
361
361
  }.bind(this));
@@ -377,7 +377,7 @@ sap.ui.define([
377
377
  assert.ok(Array.isArray(aViewInfos), "Did resolve with an array of the view infos");
378
378
  assert.strictEqual(aViewInfos.length, 2, "Did resolve with two viewinfos");
379
379
  assert.strictEqual(aViewInfos[1].name, "firstTarget", "Did resolve with first target");
380
- assert.strictEqual(aViewInfos[0].error, "The target with the name \"foo\" does not exist!", "Did resolve with the error message of the erroneous target");
380
+ assert.ok(aViewInfos[0].error.includes("The target with the name \"foo\" does not exist!"), "Did resolve with the error message of the erroneous target");
381
381
  }.bind(this));
382
382
  });
383
383
 
@@ -1030,9 +1030,8 @@ sap.ui.define([
1030
1030
  return oDisplayed.then(function() {
1031
1031
  // Assert
1032
1032
  assert.ok(fnEventSpy.notCalled, "the event isn't fired");
1033
- sinon.assert.calledWith(
1034
- oLogSpy,
1035
- "The target with the name \"foo\" where the titleChanged event should be fired does not exist!",
1033
+ assert.ok(
1034
+ oLogSpy.calledWith(sinon.match(/The target with the name \"foo\" where the titleChanged event should be fired does not exist!/)),
1036
1035
  this.oTargets
1037
1036
  );
1038
1037
  }.bind(this));
@@ -634,7 +634,7 @@ sap.ui.define([
634
634
 
635
635
  return this.oRouteMatchedSpies["product"].returnValues[0].then(function() {
636
636
  // Assert
637
- sinon.assert.calledWith(this.spy, "Routes with dynamic parts cannot be resolved as home route.");
637
+ assert.ok(this.spy.calledWith(sinon.match(/Routes with dynamic parts cannot be resolved as home route./)));
638
638
  assert.strictEqual(oParameters.history.length, 0, "Home route shouldn't be added to history.");
639
639
  assert.deepEqual(this.oRouter.getTitleHistory()[0], {
640
640
  hash: "/product",
@@ -5,6 +5,7 @@ sap.ui.define([
5
5
 
6
6
  var Component = UIComponent.extend("qunit.router.component.parentRoute.Child.Component", {
7
7
  metadata : {
8
+ interfaces: ["sap.ui.core.IAsyncContentCreation"],
8
9
  manifest: "json"
9
10
  },
10
11
  init : function() {
@@ -8,13 +8,9 @@
8
8
  "sap.ui5": {
9
9
  "rootView": {
10
10
  "viewName": "qunit.router.component.parentRoute.Child.view.RootView",
11
- "type": "XML",
12
- "async": true
11
+ "type": "XML"
13
12
  },
14
13
  "routing": {
15
- "config": {
16
- "async": true
17
- },
18
14
  "routes": [
19
15
  {
20
16
  "pattern": "product/{id}",
@@ -5,6 +5,7 @@ sap.ui.define([
5
5
 
6
6
  var Component = UIComponent.extend("qunit.router.component.parentRoute.Parent.Component", {
7
7
  metadata : {
8
+ interfaces: ["sap.ui.core.IAsyncContentCreation"],
8
9
  manifest: "json"
9
10
  }
10
11
  });
@@ -8,13 +8,9 @@
8
8
  "sap.ui5": {
9
9
  "rootView": {
10
10
  "viewName": "qunit.router.component.parentRoute.Parent.view.RootView",
11
- "type": "XML",
12
- "async": true
11
+ "type": "XML"
13
12
  },
14
13
  "routing": {
15
- "config": {
16
- "async": true
17
- },
18
14
  "routes": [
19
15
  {
20
16
  "pattern": "category/{id}",
@@ -0,0 +1,15 @@
1
+ sap.ui.define([
2
+ 'qunit/router/component/parentRoute/Parent/Component'
3
+ ], function(ParentComponent) {
4
+ "use strict";
5
+
6
+ var Component = ParentComponent.extend("qunit.router.component.parentRoute.ParentExtended.Component", {
7
+ metadata : {
8
+ interfaces: ["sap.ui.core.IAsyncContentCreation"],
9
+ manifest: "json"
10
+ }
11
+ });
12
+
13
+ return Component;
14
+
15
+ });
@@ -0,0 +1,8 @@
1
+ {
2
+ "sap.app": {
3
+ "id": "qunit.router.component.parentRoute.ParentExtended",
4
+ "applicationVersion": {
5
+ "version": "1.0.0"
6
+ }
7
+ }
8
+ }
@@ -330,7 +330,7 @@ sap.ui.define([
330
330
  router.parse("view1");
331
331
 
332
332
  assert.strictEqual(oRoute._oConfig.name, "name", "Route has correct name");
333
- assert.ok(oLogSpy.withArgs("The 'viewName' option shouldn't be used in Route. please use 'view' instead").calledOnce, "The error log is done and the log message is correct");
333
+ assert.ok(oLogSpy.calledWith(sinon.match(/The 'viewName' option shouldn't be used in Route. please use 'view' instead/)), "The error log is done and the log message is correct");
334
334
 
335
335
  oViewCreateStub.restore();
336
336
  oLogSpy.restore();
@@ -1976,7 +1976,7 @@ sap.ui.define([
1976
1976
 
1977
1977
  this.oRouter.attachRouteMatched(function() {
1978
1978
  // Assert
1979
- sinon.assert.calledWith(this.spy, "Routes with dynamic parts cannot be resolved as home route.");
1979
+ assert.ok(this.spy.calledWith(sinon.match(/Routes with dynamic parts cannot be resolved as home route./)));
1980
1980
  assert.strictEqual(oParameters.history.length, 0, "Home route shouldn't be added to history.");
1981
1981
  assert.deepEqual(this.oRouter.getTitleHistory()[0], {
1982
1982
  hash: "/product",
@@ -757,9 +757,8 @@ sap.ui.define([
757
757
 
758
758
  // Assert
759
759
  assert.ok(fnEventSpy.notCalled, "the event isn't fired");
760
- sinon.assert.calledWith(
761
- oLogSpy,
762
- "The target with the name \"foo\" where the titleChanged event should be fired does not exist!",
760
+ assert.ok(oLogSpy.calledWith(
761
+ sinon.match(/The target with the name \"foo\" where the titleChanged event should be fired does not exist!/)),
763
762
  this.oTargets
764
763
  );
765
764
  });
@@ -0,0 +1,5 @@
1
+ <layout:HorizontalLayout xmlns:layout="sap.ui.layout" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m">
2
+ <Button id="btn1InXmlFragment" text="Hello XML World" press="doSomething"/>
3
+ <Button text="{/someText}" />
4
+ <mvc:View viewName="testdata.fragments.views.View" async="true" type="XML" />
5
+ </layout:HorizontalLayout>
@@ -20,7 +20,7 @@ sap.ui.define([], function() {
20
20
  page: "test-resources/sap/ui/core/qunit/base/Config_bootstrap.qunit.html"
21
21
  },
22
22
  "base/Config_cascade": {
23
- page: "test-resources/sap/ui/core/qunit/base/Config_cascade.qunit.html?sap-ui-paramA=url"
23
+ page: "test-resources/sap/ui/core/qunit/base/Config_cascade.qunit.html?sap-ui-paramA=url&sap-ui-param-merged-object={\"objectKeyUrl\":\"urlObject\"}"
24
24
  },
25
25
  "base/Config_noUrl": {
26
26
  page: "test-resources/sap/ui/core/qunit/base/Config_noUrl.qunit.html?sap-ui-foo-bar=url"
@@ -51,6 +51,9 @@ sap.ui.define(function() {
51
51
  libs: "sap.m"
52
52
  }
53
53
  },
54
+ /**
55
+ * @deprecated since 1.120
56
+ */
54
57
  ControlRenderer: {
55
58
  title: "sap.ui.core.Control (ControlRenderer)"
56
59
  },
@@ -75,6 +78,7 @@ sap.ui.define(function() {
75
78
  },
76
79
  module: [
77
80
  "testdata/core/Element_base.qunit",
81
+ "testdata/core/Element_base_legacyAPIs.qunit",
78
82
  "testdata/core/Element_contextualSettings.qunit",
79
83
  "testdata/core/Element_data.qunit",
80
84
  "testdata/core/Element_delegates.qunit",
@@ -5225,4 +5225,194 @@ sap.ui.define([
5225
5225
  // code under test
5226
5226
  assert.strictEqual(DateFormat.prototype.parse.call(oFormat, "~value"), "~dateObject");
5227
5227
  });
5228
+
5229
+ //*****************************************************************************************************************
5230
+ // BCP: 2380137559
5231
+ QUnit.test("DateFormat: alternative month abbreviations (integrative test)", function (assert) {
5232
+ Configuration.setLanguage("en_GB");
5233
+ const oDateFormat = DateFormat.getDateInstance();
5234
+ const oDate = UI5Date.getInstance(2023, 8, 15);
5235
+
5236
+ // code under test - format based on current CLDR version
5237
+ assert.strictEqual(oDateFormat.format(oDate), "15 Sept 2023");
5238
+
5239
+ // code under test - parse abreviated month based on current CLDR version (43.0)
5240
+ assert.strictEqual(oDateFormat.parse("15 Sept 2023").getTime(), oDate.getTime());
5241
+
5242
+ // code under test - parsing abreviated month based on older CLDR version (41.0) still possible
5243
+ assert.strictEqual(oDateFormat.parse("15 Sep 2023").getTime(), oDate.getTime());
5244
+ });
5245
+
5246
+ //*****************************************************************************************************************
5247
+ QUnit.test("DateFormat#init", function (assert) {
5248
+ const oLocalData = {
5249
+ _getMonthsWithAlternatives() {},
5250
+ _getMonthsStandAloneWithAlternatives() {},
5251
+ getDayPeriods() {},
5252
+ getDays() {},
5253
+ getDaysStandAlone() {},
5254
+ getEras() {},
5255
+ getFlexibleDayPeriods() {},
5256
+ getFlexibleDayPeriodsStandAlone() {},
5257
+ getMonths() {},
5258
+ getMonthsStandAlone() {},
5259
+ getQuarters() {},
5260
+ getQuartersStandAlone() {}
5261
+ };
5262
+ const oDateFormat = {
5263
+ oFormatOptions: {calendarType: "~calendarType", pattern: "~pattern"},
5264
+ oLocaleData: oLocalData,
5265
+ getAllowedCharacters() {},
5266
+ parseCldrDatePattern() {}
5267
+ };
5268
+ const oLocalDataMock = this.mock(oLocalData);
5269
+ oLocalDataMock.expects("_getMonthsWithAlternatives").withExactArgs("abbreviated", "~calendarType")
5270
+ .returns("~aMonthsAbbrev");
5271
+ oLocalDataMock.expects("getMonths").withExactArgs("wide", "~calendarType").returns("~aMonthsWide");
5272
+ oLocalDataMock.expects("getMonths").withExactArgs("narrow", "~calendarType").returns("~aMonthsNarrow");
5273
+ oLocalDataMock.expects("_getMonthsStandAloneWithAlternatives").withExactArgs("abbreviated", "~calendarType")
5274
+ .returns("~aMonthsAbbrevSt");
5275
+ oLocalDataMock.expects("getMonthsStandAlone").withExactArgs("wide", "~calendarType").returns("~aMonthsWideSt");
5276
+ oLocalDataMock.expects("getMonthsStandAlone").withExactArgs("narrow", "~calendarType")
5277
+ .returns("~aMonthsNarrowSt");
5278
+ oLocalDataMock.expects("getDays").withExactArgs("abbreviated", "~calendarType").returns("~aDaysAbbrev");
5279
+ oLocalDataMock.expects("getDays").withExactArgs("wide", "~calendarType").returns("~aDaysWide");
5280
+ oLocalDataMock.expects("getDays").withExactArgs("narrow", "~calendarType").returns("~aDaysNarrow");
5281
+ oLocalDataMock.expects("getDays").withExactArgs("short", "~calendarType").returns("~aDaysShort");
5282
+ oLocalDataMock.expects("getDaysStandAlone").withExactArgs("abbreviated", "~calendarType")
5283
+ .returns("~aDaysAbbrevSt");
5284
+ oLocalDataMock.expects("getDaysStandAlone").withExactArgs("wide", "~calendarType").returns("~aDaysWideSt");
5285
+ oLocalDataMock.expects("getDaysStandAlone").withExactArgs("narrow", "~calendarType").returns("~aDaysNarrowSt");
5286
+ oLocalDataMock.expects("getDaysStandAlone").withExactArgs("short", "~calendarType").returns("~aDaysShortSt");
5287
+ oLocalDataMock.expects("getQuarters").withExactArgs("abbreviated", "~calendarType").returns("~aQuartersAbbrev");
5288
+ oLocalDataMock.expects("getQuarters").withExactArgs("wide", "~calendarType").returns("~aQuartersWide");
5289
+ oLocalDataMock.expects("getQuarters").withExactArgs("narrow", "~calendarType").returns("~aQuartersNarrow");
5290
+ oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("abbreviated", "~calendarType")
5291
+ .returns("~aQuartersAbbrevSt");
5292
+ oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("wide", "~calendarType")
5293
+ .returns("~aQuartersWideSt");
5294
+ oLocalDataMock.expects("getQuartersStandAlone").withExactArgs("narrow", "~calendarType")
5295
+ .returns("~aQuartersNarrowSt");
5296
+ oLocalDataMock.expects("getEras").withExactArgs("abbreviated", "~calendarType").returns("~aErasAbbrev");
5297
+ oLocalDataMock.expects("getEras").withExactArgs("wide", "~calendarType").returns("~aErasWide");
5298
+ oLocalDataMock.expects("getEras").withExactArgs("narrow", "~calendarType").returns("~aErasNarrow");
5299
+ oLocalDataMock.expects("getDayPeriods").withExactArgs("abbreviated", "~calendarType")
5300
+ .returns("~aDayPeriodsAbbrev");
5301
+ oLocalDataMock.expects("getDayPeriods").withExactArgs("wide", "~calendarType").returns("~aDayPeriodsWide");
5302
+ oLocalDataMock.expects("getDayPeriods").withExactArgs("narrow", "~calendarType").returns("~aDayPeriodsNarrow");
5303
+ oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("abbreviated", "~calendarType")
5304
+ .returns("~oFlexibleDayPeriodsAbbrev");
5305
+ oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("wide", "~calendarType")
5306
+ .returns("~oFlexibleDayPeriodsWide");
5307
+ oLocalDataMock.expects("getFlexibleDayPeriods").withExactArgs("narrow", "~calendarType")
5308
+ .returns("~oFlexibleDayPeriodsNarrow");
5309
+ oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("abbreviated", "~calendarType")
5310
+ .returns("~oFlexibleDayPeriodsAbbrevSt");
5311
+ oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("wide", "~calendarType")
5312
+ .returns("~oFlexibleDayPeriodsWideSt");
5313
+ oLocalDataMock.expects("getFlexibleDayPeriodsStandAlone").withExactArgs("narrow", "~calendarType")
5314
+ .returns("~oFlexibleDayPeriodsNarrowSt");
5315
+ this.mock(oDateFormat).expects("parseCldrDatePattern").withExactArgs("~pattern").returns("~aFormatArray");
5316
+ this.mock(oDateFormat).expects("getAllowedCharacters").withExactArgs("~aFormatArray")
5317
+ .returns("~sAllowedCharacters");
5318
+
5319
+ // code under test
5320
+ DateFormat.prototype.init.call(oDateFormat);
5321
+
5322
+ assert.strictEqual(oDateFormat.aMonthsAbbrev, "~aMonthsAbbrev");
5323
+ assert.strictEqual(oDateFormat.aMonthsWide, "~aMonthsWide");
5324
+ assert.strictEqual(oDateFormat.aMonthsNarrow, "~aMonthsNarrow");
5325
+ assert.strictEqual(oDateFormat.aMonthsAbbrevSt, "~aMonthsAbbrevSt");
5326
+ assert.strictEqual(oDateFormat.aMonthsWideSt, "~aMonthsWideSt");
5327
+ assert.strictEqual(oDateFormat.aMonthsNarrowSt, "~aMonthsNarrowSt");
5328
+ assert.strictEqual(oDateFormat.aDaysAbbrev, "~aDaysAbbrev");
5329
+ assert.strictEqual(oDateFormat.aDaysWide, "~aDaysWide");
5330
+ assert.strictEqual(oDateFormat.aDaysNarrow, "~aDaysNarrow");
5331
+ assert.strictEqual(oDateFormat.aDaysShort, "~aDaysShort");
5332
+ assert.strictEqual(oDateFormat.aDaysAbbrevSt, "~aDaysAbbrevSt");
5333
+ assert.strictEqual(oDateFormat.aDaysWideSt, "~aDaysWideSt");
5334
+ assert.strictEqual(oDateFormat.aDaysNarrowSt, "~aDaysNarrowSt");
5335
+ assert.strictEqual(oDateFormat.aDaysShortSt, "~aDaysShortSt");
5336
+ assert.strictEqual(oDateFormat.aQuartersAbbrev, "~aQuartersAbbrev");
5337
+ assert.strictEqual(oDateFormat.aQuartersWide, "~aQuartersWide");
5338
+ assert.strictEqual(oDateFormat.aQuartersNarrow, "~aQuartersNarrow");
5339
+ assert.strictEqual(oDateFormat.aQuartersAbbrevSt, "~aQuartersAbbrevSt");
5340
+ assert.strictEqual(oDateFormat.aQuartersWideSt, "~aQuartersWideSt");
5341
+ assert.strictEqual(oDateFormat.aQuartersNarrowSt, "~aQuartersNarrowSt");
5342
+ assert.strictEqual(oDateFormat.aErasNarrow, "~aErasNarrow");
5343
+ assert.strictEqual(oDateFormat.aErasAbbrev, "~aErasAbbrev");
5344
+ assert.strictEqual(oDateFormat.aErasWide, "~aErasWide");
5345
+ assert.strictEqual(oDateFormat.aDayPeriodsAbbrev, "~aDayPeriodsAbbrev");
5346
+ assert.strictEqual(oDateFormat.aDayPeriodsNarrow, "~aDayPeriodsNarrow");
5347
+ assert.strictEqual(oDateFormat.aDayPeriodsWide, "~aDayPeriodsWide");
5348
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsAbbrev, "~oFlexibleDayPeriodsAbbrev");
5349
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsNarrow, "~oFlexibleDayPeriodsNarrow");
5350
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsWide, "~oFlexibleDayPeriodsWide");
5351
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsAbbrevSt, "~oFlexibleDayPeriodsAbbrevSt");
5352
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsNarrowSt, "~oFlexibleDayPeriodsNarrowSt");
5353
+ assert.strictEqual(oDateFormat.oFlexibleDayPeriodsWideSt, "~oFlexibleDayPeriodsWideSt");
5354
+ assert.strictEqual(oDateFormat.aFormatArray, "~aFormatArray");
5355
+ assert.strictEqual(oDateFormat.sAllowedCharacters, "~sAllowedCharacters");
5356
+ });
5357
+
5358
+ //*****************************************************************************************************************
5359
+ QUnit.test("DateFormat#findEntry", function (assert) {
5360
+ const oParseHelperMock = this.mock(DateFormat._oParseHelper);
5361
+ oParseHelperMock.expects("startsWithIgnoreCase").never();
5362
+
5363
+ // code under test
5364
+ assert.deepEqual(DateFormat._oParseHelper.findEntry("foo", [], "~sLocale"), {index: -1, length: 0});
5365
+
5366
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "f", "~sLocale").returns(true);
5367
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "foo", "~sLocale").returns(true);
5368
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "FooBar", "~sLocale").returns(false);
5369
+
5370
+ // code under test
5371
+ assert.deepEqual(
5372
+ DateFormat._oParseHelper.findEntry("~value", ["f", "foo", "fo", "FooBar", "baz"], "~sLocale"),
5373
+ {index: 1, length: 3});
5374
+
5375
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "a", "~sLocale").returns(false);
5376
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "f", "~sLocale").returns(true);
5377
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt1", "~sLocale").returns(false);
5378
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt2", "~sLocale").returns(true);
5379
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "alt99", "~sLocale").returns(true);
5380
+ oParseHelperMock.expects("startsWithIgnoreCase").withExactArgs("~value", "FooBar", "~sLocale").returns(false);
5381
+
5382
+ // code under test
5383
+ assert.deepEqual(
5384
+ DateFormat._oParseHelper.findEntry("~value", ["a", "f", "x", ["alt1", "alt2", "alt3", "alt99"], "FooBar"],
5385
+ "~sLocale"),
5386
+ {index: 3, length: 5});
5387
+ });
5388
+
5389
+ //*****************************************************************************************************************
5390
+ QUnit.test("oSymbols.M#format: abbreviations contains array", function (assert) {
5391
+ const oField = {digits: 3};
5392
+ const oFormat = {aMonthsAbbrev: ["foo", "bar", ["baz", "qux"]]};
5393
+ // code under test
5394
+ assert.strictEqual(
5395
+ DateFormat.prototype.oSymbols.M.format(oField, new Date(Date.UTC(2023, 1, 1)), undefined, oFormat),
5396
+ "bar");
5397
+
5398
+ // code under test
5399
+ assert.strictEqual(
5400
+ DateFormat.prototype.oSymbols.M.format(oField, new Date(Date.UTC(2023, 2, 1)), undefined, oFormat),
5401
+ "baz");
5402
+ });
5403
+
5404
+ //*****************************************************************************************************************
5405
+ QUnit.test("oSymbols.L#format: abbreviations contains array", function (assert) {
5406
+ const oField = {digits: 3};
5407
+ const oFormat = {aMonthsAbbrevSt: ["foo", "bar", ["baz", "qux"]]};
5408
+ // code under test
5409
+ assert.strictEqual(
5410
+ DateFormat.prototype.oSymbols.L.format(oField, new Date(Date.UTC(2023, 1, 1)), undefined, oFormat),
5411
+ "bar");
5412
+
5413
+ // code under test
5414
+ assert.strictEqual(
5415
+ DateFormat.prototype.oSymbols.L.format(oField, new Date(Date.UTC(2023, 2, 1)), undefined, oFormat),
5416
+ "baz");
5417
+ });
5228
5418
  });
@@ -110,7 +110,7 @@ sap.ui.define([
110
110
  "Cannot format date interval: " + oDate1 + " is expected as an Array but given the wrong format");
111
111
  assert.strictEqual(oDateInterval.formatValue([oDate1], "string"), "", "format type with invalid parameter");
112
112
  // logged by DataType.getType
113
- this.oLogMock.expects("error").withExactArgs("data type 'untype' could not be found.");
113
+ this.oLogMock.expects("error").withExactArgs("[FUTURE FATAL] data type 'untype' could not be found.");
114
114
  checkFormatException(assert, oDateInterval, [oDate1, oDate2], "untype",
115
115
  "Don't know how to format Date to untype");
116
116
 
@@ -142,7 +142,7 @@ sap.ui.define([
142
142
  [oDate1, oDate2], "Interval string can be parsed into an array of dates");
143
143
  checkParseException(assert, oDateInterval, "Nov 6", "string", "DateInterval.Invalid");
144
144
  // logged by DataType.getType
145
- this.oLogMock.expects("error").withExactArgs("data type 'untype' could not be found.");
145
+ this.oLogMock.expects("error").withExactArgs("[FUTURE FATAL] data type 'untype' could not be found.");
146
146
  checkParseException(assert, oDateInterval, "Nov 6 - Dec 6, 2003", "untype",
147
147
  "Don't know how to parse a date interval from untype");
148
148