@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
@@ -0,0 +1,161 @@
1
+ /* global QUnit, sinon */
2
+ sap.ui.define(["sap/ui/base/ManagedObjectRegistry", "sap/ui/base/ManagedObject"],
3
+ function (ManagedObjectRegistry, ManagedObject) {
4
+ "use strict";
5
+
6
+ function createInstance(aInstanceId, FNClass) {
7
+ var aInstance = [];
8
+ var sTimeStamp = Date.now().toString(); // Ensure that ids are unique
9
+ aInstanceId.forEach(function (sId) {
10
+ aInstance.push(new FNClass(sId + sTimeStamp));
11
+ });
12
+ return aInstance;
13
+ }
14
+
15
+ function destroyInstance(aInstance) {
16
+ aInstance.forEach(function (oInstance) {
17
+ oInstance.destroy();
18
+ });
19
+ }
20
+
21
+ QUnit.module("ManagedObjectRegistry (Happy Path)");
22
+
23
+ QUnit.test("Should mixin register/deregister", function (assert) {
24
+ var Foo = ManagedObject.extend("Foo", {
25
+ constructor: function () {
26
+ ManagedObject.apply(this, arguments);
27
+ }
28
+ });
29
+
30
+ const registry = ManagedObjectRegistry.create();
31
+ registry.init(Foo);
32
+
33
+ assert.ok(Foo.prototype.register, "Has register prototype function");
34
+ assert.ok(Foo.prototype.deregister, "Has deregister prototype function");
35
+ });
36
+
37
+ QUnit.test("Construction and destruction", function (assert) {
38
+ var aInstanceId = ["A", "B", "C"];
39
+ var Foo = ManagedObject.extend("Foo", {
40
+ constructor: function () {
41
+ ManagedObject.apply(this, arguments);
42
+ }
43
+ });
44
+
45
+ const registry = ManagedObjectRegistry.create();
46
+ registry.init(Foo);
47
+
48
+ var aInstance = createInstance(aInstanceId, Foo);
49
+ assert.equal(registry.size, 3, "3 instances added");
50
+ destroyInstance(aInstance);
51
+ assert.equal(registry.size, 0, "3 instances removed");
52
+ });
53
+
54
+ QUnit.test("Should retrieve added instances as copy", function (assert) {
55
+ var Foo = ManagedObject.extend("Foo", {
56
+ constructor: function () {
57
+ ManagedObject.apply(this, arguments);
58
+ }
59
+ });
60
+
61
+ const registry = ManagedObjectRegistry.create();
62
+ registry.init(Foo);
63
+
64
+ var oFoo = new Foo("A");
65
+
66
+ var mElementsInRegistry = registry.all();
67
+ assert.equal(Object.keys(mElementsInRegistry).length, 1, "Contains 1 instance in map");
68
+ assert.equal(Object.getPrototypeOf(mElementsInRegistry), null, "Retrieved object contains no prototype functions");
69
+
70
+ oFoo.destroy();
71
+ });
72
+
73
+ QUnit.test("Should retrieve instance by id", function (assert) {
74
+ var Foo = ManagedObject.extend("Foo", {
75
+ constructor: function () {
76
+ ManagedObject.apply(this, arguments);
77
+ }
78
+ });
79
+
80
+ const registry = ManagedObjectRegistry.create();
81
+ registry.init(Foo);
82
+
83
+ var oFoo1 = new Foo("A");
84
+ var oFoo2 = new Foo("B");
85
+
86
+ assert.ok(registry.get("B"), "Retrieves instance with id B");
87
+ destroyInstance([oFoo1, oFoo2]);
88
+ });
89
+
90
+ QUnit.test("Should execute callback for all instances", function (assert) {
91
+ var Foo = ManagedObject.extend("Foo", {
92
+ constructor: function () {
93
+ ManagedObject.apply(this, arguments);
94
+ }
95
+ });
96
+
97
+ const registry = ManagedObjectRegistry.create();
98
+ registry.init(Foo);
99
+
100
+ var aCallbackCallee = [];
101
+ var oFoo1 = new Foo("A");
102
+ var oFoo2 = new Foo("B");
103
+ var oFoo3 = new Foo("C");
104
+
105
+ var fnCallback = function(oInstance, sId) {
106
+ aCallbackCallee.push(oInstance);
107
+ };
108
+ var fnCallbackSpy = sinon.spy(fnCallback);
109
+
110
+ registry.forEach(fnCallbackSpy);
111
+ assert.equal(fnCallbackSpy.callCount, 3, "Executed callback 3 times");
112
+ assert.ok(aCallbackCallee.indexOf(oFoo1) !== -1, "Executed callback for oFoo1");
113
+ assert.ok(aCallbackCallee.indexOf(oFoo2) !== -1, "Executed callback for oFoo2");
114
+ assert.ok(aCallbackCallee.indexOf(oFoo3) !== -1, "Executed callback for oFoo3");
115
+
116
+ destroyInstance([oFoo1, oFoo2, oFoo3]);
117
+ });
118
+
119
+ QUnit.module("ManagedObjectRegistry (Sad Path)");
120
+
121
+ QUnit.test("Should ensure that static registry property is immutable", function (assert) {
122
+ var Foo = ManagedObject.extend("Foo", {
123
+ constructor: function () {
124
+ ManagedObject.apply(this, arguments);
125
+ }
126
+ });
127
+
128
+ const registry = ManagedObjectRegistry.create();
129
+ registry.init(Foo);
130
+
131
+ assert.throws(function () {
132
+ registry.mutator = null;
133
+ }, "Throw on mutation");
134
+ });
135
+
136
+
137
+ QUnit.test("Should ensure that extended function is subclass of ManagedObject", function (assert) {
138
+ assert.throws(function () {
139
+ const registry = ManagedObjectRegistry.create();
140
+ registry.init(function Foo() { });
141
+ }, new TypeError("ManagedObjectRegistry mixin can only be applied to subclasses of sap.ui.base.ManagedObject"),
142
+ "throws because function is not subclass of ManagedObject");
143
+ });
144
+
145
+ QUnit.test("Should throw when object with same id is added", function (assert) {
146
+ var Foo = ManagedObject.extend("Foo", {
147
+ constructor: function () {
148
+ ManagedObject.apply(this, arguments);
149
+ }
150
+ });
151
+
152
+ const registry = ManagedObjectRegistry.create();
153
+ registry.init(Foo);
154
+
155
+ assert.throws(function () {
156
+ new Foo("A");
157
+ new Foo("A");
158
+ }, new Error("Error: adding object \"object\" with duplicate id 'A'"), "Same ids are not allowed");
159
+ });
160
+
161
+ });
@@ -0,0 +1,150 @@
1
+ /* global QUnit, sinon */
2
+ sap.ui.define(["sap/ui/base/ManagedObjectRegistry", "sap/ui/base/ManagedObject"],
3
+ function (ManagedObjectRegistry, ManagedObject) {
4
+ "use strict";
5
+
6
+ function createInstance(aInstanceId, FNClass) {
7
+ var aInstance = [];
8
+ var sTimeStamp = Date.now().toString(); // Ensure that ids are unique
9
+ aInstanceId.forEach(function (sId) {
10
+ aInstance.push(new FNClass(sId + sTimeStamp));
11
+ });
12
+ return aInstance;
13
+ }
14
+
15
+ function destroyInstance(aInstance) {
16
+ aInstance.forEach(function (oInstance) {
17
+ oInstance.destroy();
18
+ });
19
+ }
20
+
21
+ QUnit.module("ManagedObjectRegistry (Happy Path)");
22
+
23
+ QUnit.test("Should mixin object", function (assert) {
24
+ var Foo = ManagedObject.extend("Foo", {
25
+ constructor: function () {
26
+ ManagedObject.apply(this, arguments);
27
+ }
28
+ });
29
+
30
+ ManagedObjectRegistry.apply(Foo);
31
+
32
+ assert.ok(Foo.prototype.register, "Has register prototype function");
33
+ assert.ok(Foo.prototype.deregister, "Has deregister prototype function");
34
+ assert.ok(Foo.hasOwnProperty("registry"), "Extended object has static property \"registry\"");
35
+ });
36
+
37
+ QUnit.test("Construction and destruction", function (assert) {
38
+ var aInstanceId = ["A", "B", "C"];
39
+ var Foo = ManagedObject.extend("Foo", {
40
+ constructor: function () {
41
+ ManagedObject.apply(this, arguments);
42
+ }
43
+ });
44
+ ManagedObjectRegistry.apply(Foo);
45
+
46
+ var aInstance = createInstance(aInstanceId, Foo);
47
+ assert.equal(Foo.registry.size, 3, "3 instances added");
48
+ destroyInstance(aInstance);
49
+ assert.equal(Foo.registry.size, 0, "3 instances removed");
50
+ });
51
+
52
+ QUnit.test("Should retrieve added instances as copy", function (assert) {
53
+ var Foo = ManagedObject.extend("Foo", {
54
+ constructor: function () {
55
+ ManagedObject.apply(this, arguments);
56
+ }
57
+ });
58
+
59
+ ManagedObjectRegistry.apply(Foo);
60
+
61
+ var oFoo = new Foo("A");
62
+
63
+ var mElementsInRegistry = Foo.registry.all();
64
+ assert.equal(Object.keys(mElementsInRegistry).length, 1, "Contains 1 instance in map");
65
+ assert.equal(Object.getPrototypeOf(mElementsInRegistry), null, "Retrieved object contains no prototype functions");
66
+
67
+ oFoo.destroy();
68
+ });
69
+
70
+ QUnit.test("Should retrieve instance by id", function (assert) {
71
+ var Foo = ManagedObject.extend("Foo", {
72
+ constructor: function () {
73
+ ManagedObject.apply(this, arguments);
74
+ }
75
+ });
76
+
77
+ ManagedObjectRegistry.apply(Foo);
78
+
79
+ var oFoo1 = new Foo("A");
80
+ var oFoo2 = new Foo("B");
81
+
82
+ assert.ok(Foo.registry.get("B"), "Retrieves instance with id B");
83
+ destroyInstance([oFoo1, oFoo2]);
84
+ });
85
+
86
+ QUnit.test("Should execute callback for all instances", function (assert) {
87
+ var Foo = ManagedObject.extend("Foo", {
88
+ constructor: function () {
89
+ ManagedObject.apply(this, arguments);
90
+ }
91
+ });
92
+
93
+ ManagedObjectRegistry.apply(Foo);
94
+ var aCallbackCallee = [];
95
+ var oFoo1 = new Foo("A");
96
+ var oFoo2 = new Foo("B");
97
+ var oFoo3 = new Foo("C");
98
+
99
+ var fnCallback = function(oInstance, sId) {
100
+ aCallbackCallee.push(oInstance);
101
+ };
102
+ var fnCallbackSpy = sinon.spy(fnCallback);
103
+
104
+ Foo.registry.forEach(fnCallbackSpy);
105
+ assert.equal(fnCallbackSpy.callCount, 3, "Executed callback 3 times");
106
+ assert.ok(aCallbackCallee.indexOf(oFoo1) !== -1, "Executed callback for oFoo1");
107
+ assert.ok(aCallbackCallee.indexOf(oFoo2) !== -1, "Executed callback for oFoo2");
108
+ assert.ok(aCallbackCallee.indexOf(oFoo3) !== -1, "Executed callback for oFoo3");
109
+
110
+ destroyInstance([oFoo1, oFoo2, oFoo3]);
111
+ });
112
+
113
+ QUnit.module("ManagedObjectRegistry (Sad Path)");
114
+
115
+ QUnit.test("Should ensure that static registry property is immutable", function (assert) {
116
+ var Foo = ManagedObject.extend("Foo", {
117
+ constructor: function () {
118
+ ManagedObject.apply(this, arguments);
119
+ }
120
+ });
121
+ ManagedObjectRegistry.apply(Foo);
122
+
123
+ assert.throws(function () {
124
+ Foo.registry.mutator = null;
125
+ }, "Throw on mutation");
126
+ });
127
+
128
+
129
+ QUnit.test("Should ensure that extended function is subclass of ManagedObject", function (assert) {
130
+ assert.throws(function () {
131
+ ManagedObjectRegistry.apply(function Foo() { });
132
+ }, new TypeError("ManagedObjectRegistry mixin can only be applied to subclasses of sap.ui.base.ManagedObject"),
133
+ "throws because function is not subclass of ManagedObject");
134
+ });
135
+
136
+ QUnit.test("Should throw when object with same id is added", function (assert) {
137
+ var Foo = ManagedObject.extend("Foo", {
138
+ constructor: function () {
139
+ ManagedObject.apply(this, arguments);
140
+ }
141
+ });
142
+ ManagedObjectRegistry.apply(Foo);
143
+
144
+ assert.throws(function () {
145
+ new Foo("A");
146
+ new Foo("A");
147
+ }, new Error("Error: adding object \"object\" with duplicate id 'A'"), "Same ids are not allowed");
148
+ });
149
+
150
+ });
@@ -0,0 +1,84 @@
1
+ sap.ui.define(function() {
2
+
3
+ "use strict";
4
+ return {
5
+ name: "TestSuite for BaseObject, ManagedObject and their Helpers",
6
+ defaults: {
7
+ loader:{
8
+ paths:{
9
+ "fixture": "test-resources/sap/ui/core/qunit/ui5classes/fixture/"
10
+ }
11
+ },
12
+ qunit: {
13
+ version: 2
14
+ },
15
+ sinon: {
16
+ version: 4
17
+ },
18
+ module: "./{name}.qunit"
19
+ },
20
+ tests: {
21
+ AlternativeTypes: {
22
+ title: "QUnit Page for AlternativeTypes",
23
+ loader: {
24
+ paths: {
25
+ "sap/ui/testlib": "test-resources/sap/ui/core/qunit/testdata/uilib/"
26
+ }
27
+ },
28
+ ui5: {
29
+ libs: "sap.ui.testlib"
30
+ }
31
+ },
32
+ DataType: {
33
+ coverage : {
34
+ only : "sap/ui/base/DataType"
35
+ },
36
+ title: "QUnit Page for sap/ui/base/DataType"
37
+ },
38
+ ManagedObject: {
39
+ title: "sap.ui.base.ManagedObject"
40
+ },
41
+ ManagedObject_BindingParser: {
42
+ title: "sap.ui.base.ManagedObject (no core boot)",
43
+ bootCore: false
44
+ },
45
+ ManagedObject_forwardAggregation: {
46
+ title: "sap.ui.base.ManagedObject (forward Aggregation)"
47
+ },
48
+ ManagedObject_isPropertyInitial: {
49
+ title: "sap.ui.base.ManagedObject (is Property Initial)"
50
+ },
51
+ ManagedObjectObserver: {
52
+ title: "sap.ui.base.ManagedObjectObserver"
53
+ },
54
+ ManagedObjectRegistry: {
55
+ title: "sap.ui.base.ManagedObjectRegistry"
56
+ },
57
+ ManagedObjectRegistry_legacyAPIs: {
58
+ title: "sap.ui.base.ManagedObjectRegistry_legacyAPIs"
59
+ },
60
+ ManagedObjectMetadata: {
61
+ title: "sap.ui.base.ManagedObjectMetadata",
62
+ sinon: {
63
+ version: 1, // bridge does not support nested modules
64
+ qunitBridge: true
65
+ }
66
+ },
67
+ /**
68
+ * @deprecated As of version 1.111 Mostly testing deprecated APIs
69
+ */
70
+ Metadata: {
71
+ title: "sap.ui.base.Metadata"
72
+ },
73
+ Object: {
74
+ title: "sap.ui.base.Object"
75
+ },
76
+ /**
77
+ * @deprecated As of version 1.111
78
+ */
79
+ Object_legacyAPIs: {
80
+ title: "sap.ui.base.Object (legacy APIs)"
81
+ }
82
+ }
83
+ };
84
+ });
@@ -6,11 +6,12 @@ sap.ui.define([
6
6
  "sap/m/Image",
7
7
  "sap/m/Label",
8
8
  "sap/ui/core/UIArea",
9
+ "sap/ui/core/UIAreaRegistry",
9
10
  "sap/ui/core/mvc/XMLView",
10
11
  "sap/ui/core/util/serializer/ViewSerializer",
11
12
  "sap/ui/qunit/utils/createAndAppendDiv"
12
13
  ],
13
- function (Log, Button, Image, Label, UIArea, XMLView, ViewSerializer, createAndAppendDiv) {
14
+ function (Log, Button, Image, Label, UIArea, UIAreaRegistry, XMLView, ViewSerializer, createAndAppendDiv) {
14
15
  "use strict";
15
16
 
16
17
  createAndAppendDiv(["xmlViewArea", "xmlViewWithoutControllerArea"]);
@@ -68,7 +69,7 @@ sap.ui.define([
68
69
  });
69
70
 
70
71
  QUnit.test("Serialize, Re-Instantiate and Check an XML View", function (assert) {
71
- var oViewSerializer = new ViewSerializer(UIArea.registry.get("xmlViewArea"), null, "sap.m");
72
+ var oViewSerializer = new ViewSerializer(UIAreaRegistry.get("xmlViewArea"), null, "sap.m");
72
73
 
73
74
  var mXMLViews = oViewSerializer.serializeToXML();
74
75
  var sXMLResult = mXMLViews["serializer.view.TestXml"];
@@ -84,7 +85,7 @@ sap.ui.define([
84
85
  });
85
86
 
86
87
  QUnit.test("Serialize, Check if a view that has no controller is still serializable", function (assert) {
87
- var oViewSerializer = new ViewSerializer(UIArea.registry.get("xmlViewWithoutControllerArea"), null, "sap.m");
88
+ var oViewSerializer = new ViewSerializer(UIAreaRegistry.get("xmlViewWithoutControllerArea"), null, "sap.m");
88
89
 
89
90
  var mXMLViews = oViewSerializer.serializeToXML();
90
91
  var sResult = mXMLViews["serializer.view.TestViewWithoutController"];
@@ -438,5 +438,230 @@
438
438
  ]
439
439
  }
440
440
  ]
441
+ },
442
+ "1.120.2": {
443
+ "date": "December 2023",
444
+ "notes": [
445
+ {
446
+ "id": "fa524006c44e83ff1f045be04a397c2382ebc896",
447
+ "type": "FIX",
448
+ "text": " Add 'FUTURE FATAL' Marker for error/warning logs",
449
+ "references": [
450
+ {
451
+ "type": "BCP",
452
+ "reference": ""
453
+ }
454
+ ]
455
+ },
456
+ {
457
+ "id": "b910288d2ef9b5a568ef6e02dd4f18c3d0c5ec3b",
458
+ "type": "FIX",
459
+ "text": " sap.ui.model.odata.v4.lib._CollectionCache#read: avoid endless busy indicator sometimes when scrolling up",
460
+ "references": [
461
+ {
462
+ "type": "BCP",
463
+ "reference": ""
464
+ }
465
+ ]
466
+ },
467
+ {
468
+ "id": "c776473e21141e6449663689f0ea7744a406bd8c",
469
+ "type": "FIX",
470
+ "text": " CLDR: allow user input based on historical variants for month abbreviations",
471
+ "references": [
472
+ {
473
+ "type": "BCP",
474
+ "reference": "2380137559"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "id": "e1d0c83dc46fb8a43896d52dcd1374f0e1a5bdb9",
480
+ "type": "FIX",
481
+ "text": " core.Lib: Add debug log statement when registering enums",
482
+ "references": [
483
+ {
484
+ "type": "BCP",
485
+ "reference": ""
486
+ }
487
+ ]
488
+ },
489
+ {
490
+ "id": "4f27ed11de744b0af2ab5c975441b04781573db9",
491
+ "type": "FIX",
492
+ "text": " Introduce sap/ui/core/ElementRegistry/ComponentRegistry/UIAreaRegistry",
493
+ "references": [
494
+ {
495
+ "type": "BCP",
496
+ "reference": ""
497
+ }
498
+ ]
499
+ },
500
+ {
501
+ "id": "d5c21234e93bf8c49b160260924231a5c74936d4",
502
+ "type": "FIX",
503
+ "text": " core/qunit: Deprecate ControlRenderer test",
504
+ "references": [
505
+ {
506
+ "type": "BCP",
507
+ "reference": ""
508
+ }
509
+ ]
510
+ },
511
+ {
512
+ "id": "66cbd78ca43eec4347f71d2f2f7f4d838ab00d73",
513
+ "type": "FIX",
514
+ "text": " core/routing: find parent route from the router of the inheritance parent",
515
+ "references": [
516
+ {
517
+ "type": "BCP",
518
+ "reference": "002075129400009859762023"
519
+ }
520
+ ]
521
+ },
522
+ {
523
+ "id": "8dc6069a1c360553ea78afc2590af8af3378e6c2",
524
+ "type": "FIX",
525
+ "text": " XMLTemplateProcessor: Reintroduce FUTURE-FATAL log for missing control classes",
526
+ "references": [
527
+ {
528
+ "type": "BCP",
529
+ "reference": ""
530
+ }
531
+ ]
532
+ },
533
+ {
534
+ "id": "7255d2ac1d4dbbf0211050fbc9033b986da90509",
535
+ "type": "FIX",
536
+ "text": " sap.ui.model.FilterProcessor.combineFilters: combine Filter.NONE with other filters",
537
+ "references": [
538
+ {
539
+ "type": "BCP",
540
+ "reference": "2380132519"
541
+ }
542
+ ]
543
+ },
544
+ {
545
+ "id": "a93abb73f5b5a62a99073d2e40c42c43b72d4962",
546
+ "type": "FIX",
547
+ "text": " core/XMLTemplateProcessor: load class of nested view before instance creation",
548
+ "references": [
549
+ {
550
+ "type": "BCP",
551
+ "reference": ""
552
+ }
553
+ ]
554
+ },
555
+ {
556
+ "id": "a11ff7effe5c7953fb6129dd3cc66078d527a76e",
557
+ "type": "FIX",
558
+ "text": " sap.ui.model.odata.ODataMessageParser#_createTarget: normalize also the full target",
559
+ "references": [
560
+ {
561
+ "type": "BCP",
562
+ "reference": "2370146338"
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "id": "1d01293c83c42f2ae2b9f4d837c8b872dff638d7",
568
+ "type": "FIX",
569
+ "text": " sap.ui.model.analytics.odata4analytics.FilterExpression#renderUI5FilterArray: fix sorting of filters",
570
+ "references": [
571
+ {
572
+ "type": "BCP",
573
+ "reference": "002075129500009851762023"
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "id": "59c08dae771b6a19f2961cebca8ba9d639475847",
579
+ "type": "FIX",
580
+ "text": " sap.ui.core.message.Message fix references to MessageType",
581
+ "references": [
582
+ {
583
+ "type": "BCP",
584
+ "reference": ""
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "id": "86d9b992f1c93649c0e53b414114169061f19886",
590
+ "type": "FIX",
591
+ "text": " Deprecate sap.ui.core.Message/MessageType",
592
+ "references": [
593
+ {
594
+ "type": "BCP",
595
+ "reference": ""
596
+ }
597
+ ]
598
+ },
599
+ {
600
+ "id": "59f0716e512e0a355df4a9305399cbab553a318f",
601
+ "type": "FIX",
602
+ "text": " Deprecate public registry of Component, Element and UIArea",
603
+ "references": [
604
+ {
605
+ "type": "BCP",
606
+ "reference": ""
607
+ }
608
+ ]
609
+ },
610
+ {
611
+ "id": "3daff460c7f10d5aad3d077522ce58e8714062d3",
612
+ "type": "FIX",
613
+ "text": " Views: Cloning a View is deprecated in favor of the specific factory functions",
614
+ "references": [
615
+ {
616
+ "type": "BCP",
617
+ "reference": ""
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "id": "0c6f59fa5db2a9b981f049bd3b029b9d8f98c00f",
623
+ "type": "FIX",
624
+ "text": " Ensure correct 'resource-root' and 'theme-root' configuration",
625
+ "references": [
626
+ {
627
+ "type": "BCP",
628
+ "reference": "002028376700065110512023"
629
+ }
630
+ ]
631
+ },
632
+ {
633
+ "id": "864aa716ad7cf92e208349b578f3a6ee65c3fd3d",
634
+ "type": "FIX",
635
+ "text": " sap.ui.test.action.EnterText: Revert restriction",
636
+ "references": [
637
+ {
638
+ "type": "BCP",
639
+ "reference": "2370143073"
640
+ }
641
+ ]
642
+ },
643
+ {
644
+ "id": "0deed48088af2e884eb6bb2ab502298b76694890",
645
+ "type": "FIX",
646
+ "text": " Lib/ui5loader: Provide deprecation message for pseudo-modules",
647
+ "references": [
648
+ {
649
+ "type": "BCP",
650
+ "reference": "2370138723"
651
+ }
652
+ ]
653
+ },
654
+ {
655
+ "id": "3c7eea4b30f97ce1e1e1370926c5b64d18a32400",
656
+ "type": "FIX",
657
+ "text": " core/Shortcut: trigger \"blur\" within a timeout",
658
+ "references": [
659
+ {
660
+ "type": "BCP",
661
+ "reference": "002075129500007245922023"
662
+ }
663
+ ]
664
+ }
665
+ ]
441
666
  }
442
667
  }