@openui5/sap.ui.core 1.117.1 → 1.119.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1096) hide show
  1. package/.eslintrc.json +9 -0
  2. package/THIRDPARTY.txt +2 -2
  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/Localization.js +58 -40
  14. package/src/sap/base/i18n/ResourceBundle.js +5 -0
  15. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  16. package/src/sap/base/util/UriParameters.js +26 -19
  17. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  18. package/src/sap/base/util/restricted/_castArray.js +1 -1
  19. package/src/sap/base/util/restricted/_compact.js +1 -1
  20. package/src/sap/base/util/restricted/_curry.js +1 -1
  21. package/src/sap/base/util/restricted/_debounce.js +1 -1
  22. package/src/sap/base/util/restricted/_difference.js +1 -1
  23. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  25. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_flatten.js +1 -1
  29. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  31. package/src/sap/base/util/restricted/_intersection.js +1 -1
  32. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  34. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  36. package/src/sap/base/util/restricted/_isNil.js +1 -1
  37. package/src/sap/base/util/restricted/_max.js +1 -1
  38. package/src/sap/base/util/restricted/_merge.js +1 -1
  39. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  40. package/src/sap/base/util/restricted/_min.js +1 -1
  41. package/src/sap/base/util/restricted/_omit.js +1 -1
  42. package/src/sap/base/util/restricted/_pick.js +1 -1
  43. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  44. package/src/sap/base/util/restricted/_throttle.js +1 -1
  45. package/src/sap/base/util/restricted/_toArray.js +1 -1
  46. package/src/sap/base/util/restricted/_union.js +1 -1
  47. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  48. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  49. package/src/sap/base/util/restricted/_uniq.js +1 -1
  50. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  52. package/src/sap/base/util/restricted/_without.js +1 -1
  53. package/src/sap/base/util/restricted/_xor.js +1 -1
  54. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  55. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  56. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  58. package/src/sap/ui/Device.js +3 -3
  59. package/src/sap/ui/Global.js +4 -4
  60. package/src/sap/ui/base/BindingInfo.js +25 -3
  61. package/src/sap/ui/base/BindingParser.js +2 -1
  62. package/src/sap/ui/base/Event.js +1 -1
  63. package/src/sap/ui/base/EventProvider.js +1 -1
  64. package/src/sap/ui/base/Interface.js +1 -1
  65. package/src/sap/ui/base/ManagedObject.js +8 -4
  66. package/src/sap/ui/base/ManagedObjectMetadata.js +4 -3
  67. package/src/sap/ui/base/Metadata.js +3 -3
  68. package/src/sap/ui/base/Object.js +1 -1
  69. package/src/sap/ui/base/ObjectPool.js +1 -1
  70. package/src/sap/ui/core/.library +9 -1
  71. package/src/sap/ui/core/AccessKeysEnablement.js +2 -2
  72. package/src/sap/ui/core/AnimationMode.js +1 -1
  73. package/src/sap/ui/core/BlockLayerUtils.js +1 -1
  74. package/src/sap/ui/core/BusyIndicator.js +2 -2
  75. package/src/sap/ui/core/Component.js +85 -61
  76. package/src/sap/ui/core/ComponentContainer.js +2 -2
  77. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  78. package/src/sap/ui/core/ComponentSupport.js +1 -1
  79. package/src/sap/ui/core/Configuration.js +15 -179
  80. package/src/sap/ui/core/Control.js +22 -2
  81. package/src/sap/ui/core/Core.js +223 -128
  82. package/src/sap/ui/core/CustomData.js +1 -1
  83. package/src/sap/ui/core/CustomStyleClassSupport.js +3 -3
  84. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  85. package/src/sap/ui/core/Element.js +40 -4
  86. package/src/sap/ui/core/ElementMetadata.js +1 -1
  87. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  88. package/src/sap/ui/core/EventBus.js +19 -2
  89. package/src/sap/ui/core/FocusHandler.js +3 -24
  90. package/src/sap/ui/core/Fragment.js +2 -2
  91. package/src/sap/ui/core/HTML.js +1 -1
  92. package/src/sap/ui/core/History.js +1 -1
  93. package/src/sap/ui/core/Icon.js +2 -2
  94. package/src/sap/ui/core/IndicationColorSupport.js +2 -2
  95. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  96. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  97. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  98. package/src/sap/ui/core/InvisibleText.js +4 -7
  99. package/src/sap/ui/core/Item.js +1 -1
  100. package/src/sap/ui/core/LabelEnablement.js +11 -4
  101. package/src/sap/ui/core/LayoutData.js +1 -1
  102. package/src/sap/ui/core/Lib.js +51 -55
  103. package/src/sap/ui/core/ListItem.js +1 -1
  104. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  105. package/src/sap/ui/core/Locale.js +1 -1
  106. package/src/sap/ui/core/LocaleData.js +2 -2
  107. package/src/sap/ui/core/Manifest.js +1 -1
  108. package/src/sap/ui/core/Message.js +4 -4
  109. package/src/sap/ui/core/Messaging.js +471 -0
  110. package/src/sap/ui/core/Popup.js +3 -3
  111. package/src/sap/ui/core/RenderManager.js +15 -10
  112. package/src/sap/ui/core/Renderer.js +1 -1
  113. package/src/sap/ui/core/Rendering.js +4 -2
  114. package/src/sap/ui/core/ResizeHandler.js +15 -23
  115. package/src/sap/ui/core/ScrollBar.js +1 -1
  116. package/src/sap/ui/core/SeparatorItem.js +1 -1
  117. package/src/sap/ui/core/ShortcutHint.js +1 -1
  118. package/src/sap/ui/core/ShortcutHintsMixin.js +5 -5
  119. package/src/sap/ui/core/StashedControlSupport.js +4 -4
  120. package/src/sap/ui/core/StaticArea.js +66 -74
  121. package/src/sap/ui/core/Theming.js +99 -39
  122. package/src/sap/ui/core/Title.js +1 -1
  123. package/src/sap/ui/core/TooltipBase.js +1 -1
  124. package/src/sap/ui/core/UIArea.js +93 -24
  125. package/src/sap/ui/core/UIComponent.js +2 -2
  126. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  127. package/src/sap/ui/core/ValueStateSupport.js +2 -2
  128. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  129. package/src/sap/ui/core/XMLComposite.js +4 -2
  130. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  131. package/src/sap/ui/core/_IconRegistry.js +3 -1
  132. package/src/sap/ui/core/boot.js +9 -0
  133. package/src/sap/ui/core/cache/CacheManager.js +22 -16
  134. package/src/sap/ui/core/cache/LRUPersistentCache.js +13 -7
  135. package/src/sap/ui/core/date/UI5Date.js +1 -1
  136. package/src/sap/ui/core/delegate/ItemNavigation.js +3 -3
  137. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  138. package/src/sap/ui/core/dnd/DragAndDrop.js +1 -1
  139. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  140. package/src/sap/ui/core/dnd/DragDropInfo.js +6 -6
  141. package/src/sap/ui/core/dnd/DragInfo.js +4 -4
  142. package/src/sap/ui/core/dnd/DropInfo.js +6 -6
  143. package/src/sap/ui/core/format/DateFormat.js +4 -0
  144. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  145. package/src/sap/ui/core/getCompatibilityVersion.js +64 -0
  146. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  147. package/src/sap/ui/core/library.js +26 -50
  148. package/src/sap/ui/core/message/ControlMessageProcessor.js +4 -4
  149. package/src/sap/ui/core/message/Message.js +14 -13
  150. package/src/sap/ui/core/message/MessageManager.js +36 -459
  151. package/src/sap/ui/core/message/MessageMixin.js +5 -5
  152. package/src/sap/ui/core/message/MessageParser.js +1 -1
  153. package/src/sap/ui/core/message/MessageProcessor.js +9 -9
  154. package/src/sap/ui/core/message/MessageType.js +53 -0
  155. package/src/sap/ui/core/messagebundle.properties +3 -0
  156. package/src/sap/ui/core/messagebundle_ar.properties +3 -3
  157. package/src/sap/ui/core/messagebundle_bg.properties +4 -4
  158. package/src/sap/ui/core/messagebundle_ca.properties +2 -2
  159. package/src/sap/ui/core/messagebundle_cs.properties +5 -5
  160. package/src/sap/ui/core/messagebundle_cy.properties +2 -2
  161. package/src/sap/ui/core/messagebundle_da.properties +4 -4
  162. package/src/sap/ui/core/messagebundle_de.properties +3 -3
  163. package/src/sap/ui/core/messagebundle_el.properties +11 -11
  164. package/src/sap/ui/core/messagebundle_en.properties +4 -4
  165. package/src/sap/ui/core/messagebundle_es.properties +18 -18
  166. package/src/sap/ui/core/messagebundle_es_MX.properties +1 -1
  167. package/src/sap/ui/core/messagebundle_et.properties +1 -1
  168. package/src/sap/ui/core/messagebundle_fi.properties +2 -2
  169. package/src/sap/ui/core/messagebundle_fr.properties +22 -22
  170. package/src/sap/ui/core/messagebundle_fr_CA.properties +1 -1
  171. package/src/sap/ui/core/messagebundle_hi.properties +3 -3
  172. package/src/sap/ui/core/messagebundle_hr.properties +7 -7
  173. package/src/sap/ui/core/messagebundle_hu.properties +11 -11
  174. package/src/sap/ui/core/messagebundle_id.properties +6 -6
  175. package/src/sap/ui/core/messagebundle_it.properties +58 -58
  176. package/src/sap/ui/core/messagebundle_iw.properties +6 -6
  177. package/src/sap/ui/core/messagebundle_ja.properties +1 -1
  178. package/src/sap/ui/core/messagebundle_kk.properties +2 -2
  179. package/src/sap/ui/core/messagebundle_ko.properties +7 -7
  180. package/src/sap/ui/core/messagebundle_lt.properties +1 -1
  181. package/src/sap/ui/core/messagebundle_lv.properties +6 -6
  182. package/src/sap/ui/core/messagebundle_ms.properties +6 -6
  183. package/src/sap/ui/core/messagebundle_nl.properties +13 -13
  184. package/src/sap/ui/core/messagebundle_no.properties +9 -9
  185. package/src/sap/ui/core/messagebundle_pl.properties +3 -3
  186. package/src/sap/ui/core/messagebundle_pt.properties +9 -9
  187. package/src/sap/ui/core/messagebundle_pt_PT.properties +1 -1
  188. package/src/sap/ui/core/messagebundle_ro.properties +3 -3
  189. package/src/sap/ui/core/messagebundle_ru.properties +8 -8
  190. package/src/sap/ui/core/messagebundle_sh.properties +1 -1
  191. package/src/sap/ui/core/messagebundle_sk.properties +3 -3
  192. package/src/sap/ui/core/messagebundle_sl.properties +10 -10
  193. package/src/sap/ui/core/messagebundle_sv.properties +1 -1
  194. package/src/sap/ui/core/messagebundle_th.properties +19 -19
  195. package/src/sap/ui/core/messagebundle_tr.properties +6 -6
  196. package/src/sap/ui/core/messagebundle_uk.properties +9 -9
  197. package/src/sap/ui/core/messagebundle_vi.properties +2 -2
  198. package/src/sap/ui/core/messagebundle_zh_CN.properties +3 -3
  199. package/src/sap/ui/core/messagebundle_zh_TW.properties +25 -25
  200. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  201. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  202. package/src/sap/ui/core/mvc/JSView.js +1 -1
  203. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  204. package/src/sap/ui/core/mvc/View.js +3 -3
  205. package/src/sap/ui/core/mvc/XMLView.js +9 -2
  206. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  207. package/src/sap/ui/core/plugin/LessSupport.js +3 -3
  208. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  209. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  210. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  211. package/src/sap/ui/core/routing/Router.js +7 -1
  212. package/src/sap/ui/core/routing/async/Route.js +1 -0
  213. package/src/sap/ui/core/routing/async/Target.js +5 -4
  214. package/src/sap/ui/core/routing/sync/Route.js +1 -0
  215. package/src/sap/ui/core/routing/sync/Target.js +3 -3
  216. package/src/sap/ui/core/rules/App.support.js +30 -1
  217. package/src/sap/ui/core/rules/Config.support.js +4 -0
  218. package/src/sap/ui/core/rules/CoreHelper.support.js +3 -3
  219. package/src/sap/ui/core/rules/Theming.support.js +4 -0
  220. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  221. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  222. package/src/sap/ui/core/service/Service.js +1 -1
  223. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  224. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  225. package/src/sap/ui/core/support/Plugin.js +25 -5
  226. package/src/sap/ui/core/support/Support.js +38 -6
  227. package/src/sap/ui/core/support/ToolsAPI.js +14 -20
  228. package/src/sap/ui/core/support/controls/InteractionTree.js +0 -4
  229. package/src/sap/ui/core/support/plugins/Breakpoint.js +4 -6
  230. package/src/sap/ui/core/support/plugins/ControlTree.js +40 -24
  231. package/src/sap/ui/core/support/plugins/Debugging.js +10 -9
  232. package/src/sap/ui/core/support/plugins/Interaction.js +12 -13
  233. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -3
  234. package/src/sap/ui/core/support/plugins/Performance.js +1 -3
  235. package/src/sap/ui/core/support/plugins/Selector.js +2 -2
  236. package/src/sap/ui/core/support/plugins/TechInfo.js +32 -42
  237. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  238. package/src/sap/ui/core/support/plugins/ViewInfo.js +32 -16
  239. package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +8 -6
  240. package/src/sap/ui/core/support/usage/EventBroadcaster.js +1 -1
  241. package/src/sap/ui/core/themes/base/base.less +275 -269
  242. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  243. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  244. package/src/sap/ui/core/themes/base/global.less +8 -8
  245. package/src/sap/ui/core/theming/Parameters.js +4 -5
  246. package/src/sap/ui/core/theming/ThemeHelper.js +100 -1
  247. package/src/sap/ui/core/theming/ThemeManager.js +32 -31
  248. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  249. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  250. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  251. package/src/sap/ui/core/tmpl/Template.js +1 -1
  252. package/src/sap/ui/core/tmpl/TemplateControl.js +4 -2
  253. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  254. package/src/sap/ui/core/util/Export.js +1 -1
  255. package/src/sap/ui/core/util/ExportCell.js +1 -1
  256. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  257. package/src/sap/ui/core/util/ExportRow.js +1 -1
  258. package/src/sap/ui/core/util/ExportType.js +1 -1
  259. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  260. package/src/sap/ui/core/util/File.js +1 -1
  261. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  262. package/src/sap/ui/core/util/MockServer.js +1 -1
  263. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  264. package/src/sap/ui/core/util/XMLPreprocessor.js +53 -29
  265. package/src/sap/ui/core/util/reflection/BaseTreeModifier.js +27 -4
  266. package/src/sap/ui/core/util/reflection/JsControlTreeModifier.js +55 -30
  267. package/src/sap/ui/core/util/reflection/XmlTreeModifier.js +54 -48
  268. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +2 -2
  269. package/src/sap/ui/core/util/serializer/Serializer.js +3 -3
  270. package/src/sap/ui/core/util/serializer/ViewSerializer.js +27 -10
  271. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +2 -2
  272. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  273. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  274. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  275. package/src/sap/ui/core/webc/WebComponent.js +659 -0
  276. package/src/sap/ui/core/webc/WebComponentMetadata.js +253 -0
  277. package/src/sap/ui/core/webc/WebComponentRenderer.js +323 -0
  278. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  279. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  280. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  281. package/src/sap/ui/debug/ControlTree.js +8 -7
  282. package/src/sap/ui/debug/DebugEnv.js +18 -9
  283. package/src/sap/ui/debug/PropertyList.js +3 -3
  284. package/src/sap/ui/dom/jquery/control.js +3 -4
  285. package/src/sap/ui/events/F6Navigation.js +2 -1
  286. package/src/sap/ui/model/Binding.js +6 -6
  287. package/src/sap/ui/model/ClientModel.js +33 -1
  288. package/src/sap/ui/model/ClientPropertyBinding.js +20 -4
  289. package/src/sap/ui/model/CompositeDataState.js +1 -1
  290. package/src/sap/ui/model/CompositeType.js +1 -1
  291. package/src/sap/ui/model/Context.js +1 -1
  292. package/src/sap/ui/model/DataState.js +1 -1
  293. package/src/sap/ui/model/Filter.js +1 -1
  294. package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
  295. package/src/sap/ui/model/MetaModel.js +1 -1
  296. package/src/sap/ui/model/Model.js +4 -4
  297. package/src/sap/ui/model/SelectionModel.js +1 -1
  298. package/src/sap/ui/model/SimpleType.js +1 -1
  299. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  300. package/src/sap/ui/model/Type.js +1 -1
  301. package/src/sap/ui/model/controlhelper/TreeBindingProxy.js +27 -13
  302. package/src/sap/ui/model/json/JSONModel.js +2 -3
  303. package/src/sap/ui/model/message/MessageModel.js +3 -7
  304. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  305. package/src/sap/ui/model/odata/ODataListBinding.js +24 -0
  306. package/src/sap/ui/model/odata/ODataMessageParser.js +4 -4
  307. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  308. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  309. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  310. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +6 -0
  311. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  312. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  313. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  314. package/src/sap/ui/model/odata/type/Date.js +1 -1
  315. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  316. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  317. package/src/sap/ui/model/odata/type/DateTimeOffset.js +7 -2
  318. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -2
  319. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  320. package/src/sap/ui/model/odata/type/Double.js +1 -1
  321. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  322. package/src/sap/ui/model/odata/type/Int.js +1 -1
  323. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  324. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  325. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  326. package/src/sap/ui/model/odata/type/ODataType.js +2 -3
  327. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  328. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  329. package/src/sap/ui/model/odata/type/Single.js +1 -1
  330. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  331. package/src/sap/ui/model/odata/type/String.js +1 -1
  332. package/src/sap/ui/model/odata/type/Time.js +1 -1
  333. package/src/sap/ui/model/odata/type/TimeOfDay.js +6 -2
  334. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  335. package/src/sap/ui/model/odata/v2/Context.js +13 -5
  336. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  337. package/src/sap/ui/model/odata/v2/ODataListBinding.js +108 -59
  338. package/src/sap/ui/model/odata/v2/ODataModel.js +25 -20
  339. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -6
  340. package/src/sap/ui/model/odata/v4/Context.js +83 -23
  341. package/src/sap/ui/model/odata/v4/ODataBinding.js +13 -4
  342. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +162 -33
  343. package/src/sap/ui/model/odata/v4/ODataListBinding.js +151 -48
  344. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +1 -1
  345. package/src/sap/ui/model/odata/v4/ODataModel.js +21 -14
  346. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +4 -2
  347. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +12 -11
  348. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +234 -31
  349. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +3 -5
  350. package/src/sap/ui/model/odata/v4/lib/_Cache.js +180 -76
  351. package/src/sap/ui/model/odata/v4/lib/_Helper.js +36 -24
  352. package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -0
  353. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +17 -7
  354. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +1 -1
  355. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +28 -35
  356. package/src/sap/ui/model/odata/v4/ts.js +44 -0
  357. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  358. package/src/sap/ui/model/type/Boolean.js +1 -1
  359. package/src/sap/ui/model/type/Currency.js +1 -1
  360. package/src/sap/ui/model/type/Date.js +1 -2
  361. package/src/sap/ui/model/type/DateInterval.js +5 -5
  362. package/src/sap/ui/model/type/DateTime.js +1 -1
  363. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  364. package/src/sap/ui/model/type/FileSize.js +1 -1
  365. package/src/sap/ui/model/type/Float.js +1 -1
  366. package/src/sap/ui/model/type/Integer.js +1 -1
  367. package/src/sap/ui/model/type/String.js +1 -1
  368. package/src/sap/ui/model/type/Time.js +1 -1
  369. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  370. package/src/sap/ui/model/type/Unit.js +1 -1
  371. package/src/sap/ui/model/xml/XMLModel.js +2 -2
  372. package/src/sap/ui/model/xml/XMLPropertyBinding.js +4 -2
  373. package/src/sap/ui/performance/BeaconRequest.js +8 -10
  374. package/src/sap/ui/performance/trace/Interaction.js +11 -2
  375. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +60 -6
  376. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  377. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +10 -11
  378. package/src/sap/ui/qunit/utils/nextUIUpdate.js +51 -0
  379. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +16 -14
  380. package/src/sap/ui/test/BlanketReporterUI.view.xml +5 -2
  381. package/src/sap/ui/test/ModuleTracking.js +326 -0
  382. package/src/sap/ui/test/OpaPlugin.js +3 -3
  383. package/src/sap/ui/test/TestUtils.js +8 -7
  384. package/src/sap/ui/test/autowaiter/_UIUpdatesWaiter.js +3 -2
  385. package/src/sap/ui/test/generic/TestBase.js +1 -1
  386. package/src/sap/ui/test/matchers/Descendant.js +1 -1
  387. package/src/sap/ui/test/matchers/Sibling.js +1 -1
  388. package/src/sap/ui/test/selectors/_ControlSelectorGenerator.js +2 -0
  389. package/src/sap/ui/test/selectors/_DropdownItem.js +1 -0
  390. package/src/sap/ui/test/selectors/_LabelFor.js +3 -2
  391. package/src/sap/ui/test/selectors/_TableRowItem.js +1 -0
  392. package/src/sap/ui/test/starter/_setupAndStart.js +35 -11
  393. package/src/sap/ui/util/Storage.js +1 -1
  394. package/src/ui5loader-autoconfig.js +14 -10
  395. package/test/sap/ui/core/ComponentCleanup.html +228 -225
  396. package/test/sap/ui/core/ComponentConfig.html +1 -1
  397. package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +1 -1
  398. package/test/sap/ui/core/ComponentExtensibility_legacyAPIs.html +1 -1
  399. package/test/sap/ui/core/ComponentSimple.html +1 -1
  400. package/test/sap/ui/core/ComponentSimpleModel.html +1 -1
  401. package/test/sap/ui/core/ComponentSupport.html +1 -1
  402. package/test/sap/ui/core/DateFormat.js +3 -3
  403. package/test/sap/ui/core/EventBroadcaster.html +62 -62
  404. package/test/sap/ui/core/Formats.html +4 -2
  405. package/test/sap/ui/core/GenericEventBinding.html +53 -52
  406. package/test/sap/ui/core/HTMLControl.html +94 -93
  407. package/test/sap/ui/core/HyphenationPlayground.html +10 -9
  408. package/test/sap/ui/core/ListFormat.js +3 -3
  409. package/test/sap/ui/core/NumberFormat.js +3 -3
  410. package/test/sap/ui/core/ODataAnnotationsPerformance.html +28 -28
  411. package/test/sap/ui/core/ODataV2CanonicalRequests.html +3 -2
  412. package/test/sap/ui/core/ODataV2Messages.html +4 -3
  413. package/test/sap/ui/core/PopupWithUserSelection.html +1 -1
  414. package/test/sap/ui/core/Strings.js +3 -3
  415. package/test/sap/ui/core/Strings.view.xml +5 -1
  416. package/test/sap/ui/core/ThemeParameters.html +31 -30
  417. package/test/sap/ui/core/ValidateURL.html +143 -143
  418. package/test/sap/ui/core/demokit/sample/BusyIndicator/manifest.json +2 -1
  419. package/test/sap/ui/core/demokit/sample/Commands/Commands.html +1 -1
  420. package/test/sap/ui/core/demokit/sample/Commands/manifest.json +2 -2
  421. package/test/sap/ui/core/demokit/sample/ControlBusyIndicator/manifest.json +2 -1
  422. package/test/sap/ui/core/demokit/sample/ControllerExtension/manifest.json +1 -0
  423. package/test/sap/ui/core/demokit/sample/FieldGroup/manifest.json +1 -0
  424. package/test/sap/ui/core/demokit/sample/Html/manifest.json +1 -0
  425. package/test/sap/ui/core/demokit/sample/Html/preserveDOM/manifest.json +1 -0
  426. package/test/sap/ui/core/demokit/sample/Html/static/manifest.json +1 -0
  427. package/test/sap/ui/core/demokit/sample/HyphenationAPI/C.controller.js +3 -3
  428. package/test/sap/ui/core/demokit/sample/Icon/manifest.json +2 -1
  429. package/test/sap/ui/core/demokit/sample/InvisibleMessage/InvisibleMessage.controller.js +4 -4
  430. package/test/sap/ui/core/demokit/sample/InvisibleMessage/manifest.json +2 -1
  431. package/test/sap/ui/core/demokit/sample/InvisibleText/manifest.json +2 -1
  432. package/test/sap/ui/core/demokit/sample/MessageManager/BasicMessages/Controller.controller.js +10 -10
  433. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/Controller.controller.js +7 -7
  434. package/test/sap/ui/core/demokit/sample/MessageManager/BasicODataMessages/manifest.json +1 -0
  435. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/Component.js +3 -2
  436. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/controller/Employee.controller.js +3 -2
  437. package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/webapp/index.html +7 -8
  438. package/test/sap/ui/core/demokit/sample/OpaAction/manifest.json +1 -0
  439. package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/OpaAutoWaitParams.js +1 -1
  440. package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/applicationUnderTest/manifest.json +2 -2
  441. package/test/sap/ui/core/demokit/sample/OpaAutoWaitParams/manifest.json +2 -1
  442. package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/applicationUnderTest/manifest.json +2 -2
  443. package/test/sap/ui/core/demokit/sample/OpaBusyIndicator/manifest.json +2 -1
  444. package/test/sap/ui/core/demokit/sample/OpaById/applicationUnderTest/manifest.json +2 -2
  445. package/test/sap/ui/core/demokit/sample/OpaById/manifest.json +2 -1
  446. package/test/sap/ui/core/demokit/sample/OpaDynamicWait/applicationUnderTest/manifest.json +2 -2
  447. package/test/sap/ui/core/demokit/sample/OpaDynamicWait/manifest.json +2 -1
  448. package/test/sap/ui/core/demokit/sample/OpaGetStarted/applicationUnderTest/index.html +9 -6
  449. package/test/sap/ui/core/demokit/sample/OpaGetStarted/manifest.json +2 -1
  450. package/test/sap/ui/core/demokit/sample/OpaMatchers/applicationUnderTest/manifest.json +2 -2
  451. package/test/sap/ui/core/demokit/sample/OpaMatchers/manifest.json +2 -1
  452. package/test/sap/ui/core/demokit/sample/OpaPageObject/applicationUnderTest/manifest.json +2 -2
  453. package/test/sap/ui/core/demokit/sample/OpaPageObject/manifest.json +2 -1
  454. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/applicationUnderTest/manifest.json +2 -2
  455. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/manifest.json +2 -1
  456. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyUIComponent/applicationUnderTest/manifest.json +2 -2
  457. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyUIComponent/manifest.json +2 -1
  458. package/test/sap/ui/core/demokit/sample/OpaStaticAreaControls/applicationUnderTest/manifest.json +2 -2
  459. package/test/sap/ui/core/demokit/sample/OpaStaticAreaControls/manifest.json +2 -1
  460. package/test/sap/ui/core/demokit/sample/OpaTestLibrary/applicationUnderTest/manifest.json +2 -2
  461. package/test/sap/ui/core/demokit/sample/OpaTestLibrary/manifest.json +2 -1
  462. package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyAppInAFrameWithURLParameters/applicationUnderTest/manifest.json +2 -2
  463. package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyAppInAFrameWithURLParameters/manifest.json +2 -1
  464. package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyUIComponentWithURLParameters/applicationUnderTest/manifest.json +2 -2
  465. package/test/sap/ui/core/demokit/sample/OpaURLParameters/iStartMyUIComponentWithURLParameters/manifest.json +2 -1
  466. package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/applicationUnderTest/index.html +13 -10
  467. package/test/sap/ui/core/demokit/sample/OpaWithSupportAssistant/manifest.json +2 -1
  468. package/test/sap/ui/core/demokit/sample/PatternMatching/Patterns.html +11 -8
  469. package/test/sap/ui/core/demokit/sample/PatternMatching/manifest.json +2 -1
  470. package/test/sap/ui/core/demokit/sample/PatternMatching/patternApp/manifest.json +2 -2
  471. package/test/sap/ui/core/demokit/sample/RoutingFullscreen/RoutingFullscreen.html +11 -8
  472. package/test/sap/ui/core/demokit/sample/RoutingFullscreen/manifest.json +2 -1
  473. package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/RoutingMasterDetail.html +11 -8
  474. package/test/sap/ui/core/demokit/sample/RoutingMasterDetail/manifest.json +2 -1
  475. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/RoutingNestedComponent.html +1 -1
  476. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/manifest.json +2 -2
  477. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/categories/manifest.json +2 -1
  478. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/products/manifest.json +2 -1
  479. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/reuse/suppliers/manifest.json +2 -1
  480. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.html +1 -1
  481. package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/test/integration/opaTests.qunit.js +5 -4
  482. package/test/sap/ui/core/demokit/sample/TargetsStandalone/TargetsStandalone.html +11 -8
  483. package/test/sap/ui/core/demokit/sample/TargetsStandalone/manifest.json +2 -1
  484. package/test/sap/ui/core/demokit/sample/ThemeCustomClasses/ThemeCustomClasses.controller.js +3 -3
  485. package/test/sap/ui/core/demokit/sample/ThemeCustomClasses/manifest.json +1 -0
  486. package/test/sap/ui/core/demokit/sample/TypeCurrency/manifest.json +1 -0
  487. package/test/sap/ui/core/demokit/sample/TypeDateAsDate/manifest.json +1 -0
  488. package/test/sap/ui/core/demokit/sample/TypeDateAsString/manifest.json +1 -0
  489. package/test/sap/ui/core/demokit/sample/TypeDateTime/manifest.json +1 -0
  490. package/test/sap/ui/core/demokit/sample/TypeFileSize/manifest.json +1 -0
  491. package/test/sap/ui/core/demokit/sample/TypeFloat/manifest.json +1 -0
  492. package/test/sap/ui/core/demokit/sample/TypeInteger/manifest.json +1 -0
  493. package/test/sap/ui/core/demokit/sample/TypeTimeAsTime/manifest.json +1 -0
  494. package/test/sap/ui/core/demokit/sample/View/async/manifest.json +2 -1
  495. package/test/sap/ui/core/demokit/sample/View/preprocessor/manifest.json +2 -1
  496. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.js +9 -8
  497. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/manifest.json +2 -1
  498. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Opa.qunit.js +12 -11
  499. package/test/sap/ui/core/demokit/sample/XMLComposite/02/manifest.json +1 -0
  500. package/test/sap/ui/core/demokit/sample/common/Controller.js +8 -8
  501. package/test/sap/ui/core/demokit/sample/common/Helper.js +19 -2
  502. package/test/sap/ui/core/demokit/sample/common/init.js +25 -21
  503. package/test/sap/ui/core/demokit/sample/common/pages/Any.js +3 -0
  504. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithOPA5/WebsiteCode.js +8 -7
  505. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/applicationUnderTest/manifest.json +1 -0
  506. package/test/sap/ui/core/demokit/sample/gherkin/GherkinWithPageObjects/manifest.json +2 -1
  507. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +2 -1
  508. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/webapp/manifest.json +2 -2
  509. package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +2 -1
  510. package/test/sap/ui/core/demokit/sample/matcher/Descendant/webapp/manifest.json +2 -2
  511. package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +2 -1
  512. package/test/sap/ui/core/demokit/sample/matcher/I18NText/webapp/manifest.json +2 -2
  513. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +2 -1
  514. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/webapp/manifest.json +2 -2
  515. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/manifest.json +1 -0
  516. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/manifest.json +1 -0
  517. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/manifest.json +1 -0
  518. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +6 -2
  519. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.view.xml +7 -3
  520. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +2 -2
  521. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.view.xml +7 -4
  522. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.js +9 -8
  523. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/expandPageCollapse.js +1 -1
  524. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/tests/filter.js +1 -1
  525. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/ObjectPage.controller.js +3 -2
  526. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.js +13 -11
  527. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/ListReport.controller.js +3 -2
  528. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.js +13 -14
  529. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.js +14 -11
  530. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +4 -4
  531. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +6 -4
  532. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +6 -2
  533. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +3 -3
  534. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.js +19 -25
  535. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/GridTable.view.xml +6 -2
  536. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +19 -0
  537. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +93 -0
  538. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +89 -0
  539. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/SandboxModel.js +10 -0
  540. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +396 -0
  541. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +423 -0
  542. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +70 -0
  543. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +11 -10
  544. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.js +10 -9
  545. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.js +11 -10
  546. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.js +8 -7
  547. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +8 -10
  548. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.view.xml +5 -2
  549. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.js +16 -13
  550. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.controller.js +3 -2
  551. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.js +12 -11
  552. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/MIT.RecursiveHierarchy maintenance.html +408 -0
  553. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.js +26 -8
  554. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +78 -13
  555. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +48 -9
  556. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +379 -287
  557. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +38 -5
  558. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/createEdit.js +128 -0
  559. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/tests/pageExpandCollapse.js +24 -23
  560. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.js +11 -10
  561. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.js +10 -9
  562. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +3 -2
  563. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.js +15 -14
  564. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/pages/Main.js +9 -8
  565. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/ChangeContext.js +1 -1
  566. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/Create.js +1 -1
  567. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateMultiple.js +1 -1
  568. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -1
  569. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/MessageHandling.js +1 -1
  570. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/TypeDeterminationAndDelete.js +8 -9
  571. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/WriteNonDeferredGroup.js +1 -1
  572. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/additionalTargets.js +1 -1
  573. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.js +9 -8
  574. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/tests/AdaptSalesOrdersTable.js +1 -1
  575. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.js +10 -9
  576. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.view.xml +5 -2
  577. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.js +10 -9
  578. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/pages/Main.js +4 -2
  579. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.js +11 -10
  580. package/test/sap/ui/core/demokit/tutorial/databinding/01/package.json +2 -5
  581. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +8 -0
  582. package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/index.js +7 -3
  583. package/test/sap/ui/core/demokit/tutorial/databinding/02/package.json +2 -5
  584. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +8 -0
  585. package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/index.js +4 -3
  586. package/test/sap/ui/core/demokit/tutorial/databinding/03/package.json +2 -5
  587. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +8 -0
  588. package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/index.js +4 -3
  589. package/test/sap/ui/core/demokit/tutorial/databinding/04/package.json +2 -5
  590. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +8 -0
  591. package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/index.js +4 -3
  592. package/test/sap/ui/core/demokit/tutorial/databinding/05/package.json +2 -5
  593. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +8 -0
  594. package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/index.js +4 -3
  595. package/test/sap/ui/core/demokit/tutorial/databinding/06/package.json +2 -5
  596. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +8 -0
  597. package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/index.js +4 -3
  598. package/test/sap/ui/core/demokit/tutorial/databinding/07/package.json +2 -5
  599. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +8 -0
  600. package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/index.js +4 -3
  601. package/test/sap/ui/core/demokit/tutorial/databinding/08/package.json +2 -5
  602. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +8 -0
  603. package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/index.js +4 -3
  604. package/test/sap/ui/core/demokit/tutorial/databinding/09/package.json +2 -5
  605. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +8 -0
  606. package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/index.js +4 -3
  607. package/test/sap/ui/core/demokit/tutorial/databinding/10/package.json +2 -5
  608. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +8 -0
  609. package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/index.js +4 -3
  610. package/test/sap/ui/core/demokit/tutorial/databinding/11/package.json +2 -5
  611. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +8 -0
  612. package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/index.js +6 -4
  613. package/test/sap/ui/core/demokit/tutorial/databinding/12/package.json +2 -5
  614. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +8 -0
  615. package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/index.js +6 -4
  616. package/test/sap/ui/core/demokit/tutorial/databinding/13/package.json +2 -5
  617. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +8 -0
  618. package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/index.js +6 -4
  619. package/test/sap/ui/core/demokit/tutorial/databinding/14/package.json +2 -5
  620. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +8 -0
  621. package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/index.js +6 -4
  622. package/test/sap/ui/core/demokit/tutorial/databinding/15/package.json +2 -5
  623. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +8 -0
  624. package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/index.js +6 -4
  625. package/test/sap/ui/core/demokit/tutorial/mockserver/01/package.json +2 -5
  626. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +8 -0
  627. package/test/sap/ui/core/demokit/tutorial/mockserver/01/webapp/manifest.json +1 -1
  628. package/test/sap/ui/core/demokit/tutorial/mockserver/02/package.json +2 -5
  629. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +8 -0
  630. package/test/sap/ui/core/demokit/tutorial/mockserver/02/webapp/manifest.json +1 -1
  631. package/test/sap/ui/core/demokit/tutorial/mockserver/03/package.json +2 -5
  632. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +8 -0
  633. package/test/sap/ui/core/demokit/tutorial/mockserver/03/webapp/manifest.json +1 -1
  634. package/test/sap/ui/core/demokit/tutorial/mockserver/04/package.json +2 -5
  635. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +8 -0
  636. package/test/sap/ui/core/demokit/tutorial/mockserver/04/webapp/manifest.json +1 -1
  637. package/test/sap/ui/core/demokit/tutorial/navigation/01/package.json +2 -4
  638. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +7 -0
  639. package/test/sap/ui/core/demokit/tutorial/navigation/01/webapp/index.html +1 -1
  640. package/test/sap/ui/core/demokit/tutorial/navigation/02/package.json +2 -4
  641. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +7 -0
  642. package/test/sap/ui/core/demokit/tutorial/navigation/02/webapp/index.html +1 -1
  643. package/test/sap/ui/core/demokit/tutorial/navigation/03/package.json +2 -4
  644. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +7 -0
  645. package/test/sap/ui/core/demokit/tutorial/navigation/03/webapp/index.html +1 -1
  646. package/test/sap/ui/core/demokit/tutorial/navigation/04/package.json +2 -4
  647. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +7 -0
  648. package/test/sap/ui/core/demokit/tutorial/navigation/04/webapp/index.html +1 -1
  649. package/test/sap/ui/core/demokit/tutorial/navigation/05/package.json +2 -4
  650. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +7 -0
  651. package/test/sap/ui/core/demokit/tutorial/navigation/05/webapp/index.html +1 -1
  652. package/test/sap/ui/core/demokit/tutorial/navigation/06/package.json +2 -4
  653. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +7 -0
  654. package/test/sap/ui/core/demokit/tutorial/navigation/06/webapp/index.html +1 -1
  655. package/test/sap/ui/core/demokit/tutorial/navigation/07/package.json +2 -4
  656. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +7 -0
  657. package/test/sap/ui/core/demokit/tutorial/navigation/07/webapp/index.html +1 -1
  658. package/test/sap/ui/core/demokit/tutorial/navigation/08/package.json +2 -4
  659. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +7 -0
  660. package/test/sap/ui/core/demokit/tutorial/navigation/08/webapp/index.html +1 -1
  661. package/test/sap/ui/core/demokit/tutorial/navigation/09/package.json +2 -4
  662. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +7 -0
  663. package/test/sap/ui/core/demokit/tutorial/navigation/09/webapp/index.html +1 -1
  664. package/test/sap/ui/core/demokit/tutorial/navigation/10/package.json +2 -4
  665. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +7 -0
  666. package/test/sap/ui/core/demokit/tutorial/navigation/10/webapp/index.html +1 -1
  667. package/test/sap/ui/core/demokit/tutorial/navigation/11/package.json +2 -4
  668. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +7 -0
  669. package/test/sap/ui/core/demokit/tutorial/navigation/11/webapp/index.html +1 -1
  670. package/test/sap/ui/core/demokit/tutorial/navigation/12/package.json +2 -4
  671. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +7 -0
  672. package/test/sap/ui/core/demokit/tutorial/navigation/12/webapp/index.html +1 -1
  673. package/test/sap/ui/core/demokit/tutorial/navigation/13/package.json +2 -4
  674. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +7 -0
  675. package/test/sap/ui/core/demokit/tutorial/navigation/13/webapp/index.html +1 -1
  676. package/test/sap/ui/core/demokit/tutorial/navigation/14/package.json +2 -4
  677. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +7 -0
  678. package/test/sap/ui/core/demokit/tutorial/navigation/14/webapp/index.html +1 -1
  679. package/test/sap/ui/core/demokit/tutorial/navigation/15/package.json +2 -4
  680. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +7 -0
  681. package/test/sap/ui/core/demokit/tutorial/navigation/15/webapp/index.html +1 -1
  682. package/test/sap/ui/core/demokit/tutorial/navigation/16/package.json +2 -4
  683. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +7 -0
  684. package/test/sap/ui/core/demokit/tutorial/navigation/16/webapp/index.html +1 -1
  685. package/test/sap/ui/core/demokit/tutorial/navigation/17/package.json +4 -6
  686. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +8 -1
  687. package/test/sap/ui/core/demokit/tutorial/navigation/17/webapp/index.html +1 -1
  688. package/test/sap/ui/core/demokit/tutorial/navigation/index.html +2 -2
  689. package/test/sap/ui/core/demokit/tutorial/odatav4/01/package.json +2 -6
  690. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +9 -0
  691. package/test/sap/ui/core/demokit/tutorial/odatav4/02/package.json +2 -6
  692. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +9 -0
  693. package/test/sap/ui/core/demokit/tutorial/odatav4/03/package.json +2 -6
  694. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +9 -0
  695. package/test/sap/ui/core/demokit/tutorial/odatav4/04/package.json +2 -6
  696. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +9 -0
  697. package/test/sap/ui/core/demokit/tutorial/odatav4/05/package.json +2 -6
  698. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +9 -0
  699. package/test/sap/ui/core/demokit/tutorial/odatav4/06/package.json +2 -6
  700. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +9 -0
  701. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/controller/App.controller.js +5 -5
  702. package/test/sap/ui/core/demokit/tutorial/odatav4/07/package.json +2 -6
  703. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +9 -0
  704. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/controller/App.controller.js +7 -7
  705. package/test/sap/ui/core/demokit/tutorial/odatav4/08/package.json +2 -6
  706. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +9 -0
  707. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/controller/App.controller.js +7 -7
  708. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.js +5 -5
  709. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/pages/Tutorial.js +1 -1
  710. package/test/sap/ui/core/demokit/tutorial/odatav4/09/package.json +2 -6
  711. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +9 -0
  712. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/controller/App.controller.js +7 -7
  713. package/test/sap/ui/core/demokit/tutorial/odatav4/10/package.json +2 -6
  714. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +9 -0
  715. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/controller/App.controller.js +7 -7
  716. package/test/sap/ui/core/demokit/tutorial/odatav4/11/package.json +2 -6
  717. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +9 -0
  718. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/controller/App.controller.js +7 -7
  719. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.js +5 -5
  720. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/pages/Tutorial.js +1 -1
  721. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +2 -5
  722. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +8 -0
  723. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/manifest.json +1 -1
  724. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/webapp/test/integration/opaTests.qunit.js +6 -6
  725. package/test/sap/ui/core/frameoptions/createcontent.js +7 -6
  726. package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -1
  727. package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exStringAndFloat/Test.controller.js +3 -2
  728. package/test/sap/ui/core/internal/samples/composite/xmlcomposite/exTableWrapperOuterBinding/Test.controller.js +3 -2
  729. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -1
  730. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.js +8 -8
  731. package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -1
  732. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.html +1 -1
  733. package/test/sap/ui/core/internal/samples/odata/v2/Products/Opa.qunit.js +7 -7
  734. package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -1
  735. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +3 -2
  736. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/MIT.SalesOrders(V2).ODLB.create.html +2 -0
  737. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +4 -4
  738. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +6 -3
  739. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.html +1 -1
  740. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Opa.qunit.js +9 -6
  741. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +3 -0
  742. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/data/ODLB.create/TC3/SalesOrderSet_desc_4-1.json +16 -0
  743. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/index.html +1 -1
  744. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/tests/ODataListBinding.create/TC3_SalesOrders_InlineCreationRow.js +9 -0
  745. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +3 -2
  746. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +3 -3
  747. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +1 -1
  748. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -1
  749. package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +9 -7
  750. package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +4 -2
  751. package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +3 -2
  752. package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +49 -28
  753. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +218 -223
  754. package/test/sap/ui/core/qunit/Core.qunit.js +39 -34
  755. package/test/sap/ui/core/qunit/CoreEvents.qunit.js +17 -15
  756. package/test/sap/ui/core/qunit/Core_libraryTerminologies_integration.qunit.js +12 -11
  757. package/test/sap/ui/core/qunit/Core_repeatedExecution.qunit.js +3 -3
  758. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +122 -119
  759. package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +5 -17
  760. package/test/sap/ui/core/qunit/Declarative.qunit.js +37 -37
  761. package/test/sap/ui/core/qunit/Element_base.qunit.js +1 -1
  762. package/test/sap/ui/core/qunit/Element_data.qunit.js +5 -5
  763. package/test/sap/ui/core/qunit/Element_destroy.qunit.js +6 -4
  764. package/test/sap/ui/core/qunit/Element_focus.qunit.js +25 -24
  765. package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +3 -2
  766. package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +7 -6
  767. package/test/sap/ui/core/qunit/EventBus.qunit.js +4 -3
  768. package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +1 -1
  769. package/test/sap/ui/core/qunit/FastNavigation.qunit.js +3 -2
  770. package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +5 -5
  771. package/test/sap/ui/core/qunit/FieldGroup.qunit.js +17 -13
  772. package/test/sap/ui/core/qunit/FocusHandler.qunit.js +11 -9
  773. package/test/sap/ui/core/qunit/Fragment.qunit.js +47 -46
  774. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +63 -61
  775. package/test/sap/ui/core/qunit/HTML.qunit.js +67 -67
  776. package/test/sap/ui/core/qunit/Icon.qunit.js +66 -65
  777. package/test/sap/ui/core/qunit/IconPool.qunit.js +5 -4
  778. package/test/sap/ui/core/qunit/InvisibleText.qunit.js +17 -15
  779. package/test/sap/ui/core/qunit/Lib.qunit.js +8 -8
  780. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +24 -24
  781. package/test/sap/ui/core/qunit/ManagedObject.qunit.js +3 -3
  782. package/test/sap/ui/core/qunit/PlaceAt.qunit.js +2 -2
  783. package/test/sap/ui/core/qunit/RenderManager.qunit.js +54 -53
  784. package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +8 -9
  785. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +7 -6
  786. package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +13 -11
  787. package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +15 -14
  788. package/test/sap/ui/core/qunit/ThemeHelper.qunit.js +5 -4
  789. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +47 -79
  790. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +44 -375
  791. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +686 -0
  792. package/test/sap/ui/core/qunit/Theming.qunit.js +88 -50
  793. package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +130 -0
  794. package/test/sap/ui/core/qunit/TooltipBase.qunit.js +6 -4
  795. package/test/sap/ui/core/qunit/UIArea.qunit.js +258 -28
  796. package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.html +3 -3
  797. package/test/sap/ui/core/qunit/analytics/testsuite4analytics.qunit.js +9 -8
  798. package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +10 -10
  799. package/test/sap/ui/core/qunit/base/Config.qunit.js +12 -2
  800. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +123 -52
  801. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -0
  802. package/test/sap/ui/core/qunit/base/config/GlobalConfig.js +3 -1
  803. package/test/sap/ui/core/qunit/base/config/GlobalConfigForCascade.js +4 -1
  804. package/test/sap/ui/core/qunit/base/i18n/Localization.qunit.js +4 -3
  805. package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +13 -3
  806. package/test/sap/ui/core/qunit/base/util/UriParameters.qunit.js +27 -1
  807. package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.qunit.js +4 -4
  808. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +3 -3
  809. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal_legacyAPIs.qunit.js +13 -11
  810. package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +1 -1
  811. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.beforeBootstrap.qunit.js +22 -21
  812. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomBootTask.qunit.js +4 -9
  813. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithCustomScript_legacyAPIs.qunit.js +13 -11
  814. package/test/sap/ui/core/qunit/bootstrap/BootstrapWithNoJQuery_legacyAPIs.qunit.js +7 -5
  815. package/test/sap/ui/core/qunit/bootstrap/CalendarClassLoadingWithCustomBootTaskAndPreload.qunit.js +27 -14
  816. package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +4 -2
  817. package/test/sap/ui/core/qunit/bootstrap/CfgFromConfigAttribute.qunit.js +4 -3
  818. package/test/sap/ui/core/qunit/bootstrap/CfgFromGlobalObject.qunit.js +4 -3
  819. package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +5 -4
  820. package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +2 -198
  821. package/test/sap/ui/core/qunit/bootstrap/Configuration_language_via_URL.qunit.js +210 -0
  822. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +33 -30
  823. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +18 -6
  824. package/test/sap/ui/core/qunit/component/Component.qunit.js +26 -15
  825. package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +6 -5
  826. package/test/sap/ui/core/qunit/component/Component_dependencyLoading.qunit.js +15 -9
  827. package/test/sap/ui/core/qunit/component/Component_dependencyLoading_unavoidablySync.qunit.js +10 -6
  828. package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +4 -3
  829. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +11 -11
  830. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +4 -3
  831. package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +9 -10
  832. package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +10 -11
  833. package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +9 -11
  834. package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +9 -11
  835. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +4 -5
  836. package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +4 -3
  837. package/test/sap/ui/core/qunit/component/Metadata.qunit.js +3 -3
  838. package/test/sap/ui/core/qunit/component/Models.qunit.js +103 -44
  839. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +38 -22
  840. package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +23 -22
  841. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/manifest.json +2 -1
  842. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/manifest.json +1 -0
  843. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/manifest.json +2 -1
  844. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/manifest.json +1 -0
  845. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/manifest.json +1 -1
  846. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/manifest.json +1 -0
  847. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/componentVariant/manifest.json +1 -0
  848. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/manifest.json +1 -1
  849. package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +1 -1
  850. package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +48 -48
  851. package/test/sap/ui/core/qunit/csp/ContentSecurityPolicy.qunit.js +18 -13
  852. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +19 -18
  853. package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +13 -12
  854. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +5 -4
  855. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +7 -6
  856. package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +7 -6
  857. package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +6 -6
  858. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +20 -17
  859. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +8 -7
  860. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +1 -2
  861. package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +14 -19
  862. package/test/sap/ui/core/qunit/internal/1Ring.qunit.js +34 -22
  863. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +4 -5
  864. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
  865. package/test/sap/ui/core/qunit/internal/AnnotationParser.qunit.html +4 -4
  866. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -6
  867. package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +4 -0
  868. package/test/sap/ui/core/qunit/internal/testsuite.models.qunit.js +19 -9
  869. package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +7 -7
  870. package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
  871. package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +3 -2
  872. package/test/sap/ui/core/qunit/jquery.sap.global-config.qunit.js +2 -4
  873. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +20 -19
  874. package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +5 -9
  875. package/test/sap/ui/core/qunit/messages/Messaging.qunit.js +137 -0
  876. package/test/sap/ui/core/qunit/messages/messagesDataBinding.qunit.js +3 -1
  877. package/test/sap/ui/core/qunit/messages/messagesEnd2End.qunit.js +10 -10
  878. package/test/sap/ui/core/qunit/messages/messagesGeneral.qunit.js +42 -46
  879. package/test/sap/ui/core/qunit/messages/messagesGeneral_legacyAPIs.qunit.js +158 -0
  880. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +29 -39
  881. package/test/sap/ui/core/qunit/messages/testsuite.messaging.base.qunit.js +9 -2
  882. package/test/sap/ui/core/qunit/model/Binding.qunit.js +8 -8
  883. package/test/sap/ui/core/qunit/model/ClientPropertyBinding.qunit.js +47 -0
  884. package/test/sap/ui/core/qunit/model/controlhelper/TreeBindingProxy.qunit.js +24 -14
  885. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +7 -6
  886. package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +3 -2
  887. package/test/sap/ui/core/qunit/mvc/AsyncXMLView.qunit.js +5 -3
  888. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +3 -3
  889. package/test/sap/ui/core/qunit/mvc/View.qunit.js +5 -1
  890. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +5 -4
  891. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +8 -9
  892. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +50 -44
  893. package/test/sap/ui/core/qunit/mvc/testdata/TypedViewWithRendererRenderer.js +2 -2
  894. package/test/sap/ui/core/qunit/mvc/testdata/stashed/OP.html +1 -1
  895. package/test/sap/ui/core/qunit/mvc/testdata/stashed/manifest.json +2 -1
  896. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +18 -22
  897. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +23 -27
  898. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +10 -11
  899. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +7 -6
  900. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AsyncXMLView_legacyAPIs.qunit.js +5 -3
  901. package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +8 -7
  902. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +7 -7
  903. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +45 -51
  904. package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +52 -20
  905. package/test/sap/ui/core/qunit/odata/{ODataListBinding.qunit.js → ODataListBinding_legacyAPIs.qunit.js} +27 -0
  906. package/test/sap/ui/core/qunit/odata/ODataMessageParser.qunit.js +44 -48
  907. package/test/sap/ui/core/qunit/odata/ODataMessageParserNoFakeService.qunit.js +19 -15
  908. package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +101 -29
  909. package/test/sap/ui/core/qunit/odata/ODataMetadata.qunit.js +17 -7
  910. package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +147 -89
  911. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +1 -0
  912. package/test/sap/ui/core/qunit/odata/_AnnotationHelperBasics.qunit.js +10 -4
  913. package/test/sap/ui/core/qunit/odata/data/ODataModelFakeService.js +1 -1
  914. package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +38 -12
  915. package/test/sap/ui/core/qunit/odata/type/ODataType.qunit.js +9 -0
  916. package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +33 -12
  917. package/test/sap/ui/core/qunit/odata/v2/CanonicalRequests.qunit.js +5 -4
  918. package/test/sap/ui/core/qunit/odata/v2/Context.qunit.js +12 -0
  919. package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +485 -22
  920. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +762 -90
  921. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +149 -6
  922. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +21 -0
  923. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +1 -2
  924. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding.qunit.js +7 -207
  925. package/test/sap/ui/core/qunit/odata/v2/ODataV2ListBinding_Filter_legacyAPIs.qunit.js +281 -0
  926. package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +9 -8
  927. package/test/sap/ui/core/qunit/odata/v2/ODataV2TreeBinding.qunit.js +1 -0
  928. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +95 -85
  929. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +70 -67
  930. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +19 -20
  931. package/test/sap/ui/core/qunit/odata/v2/testsuite.odatav2.qunit.js +4 -0
  932. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +145 -35
  933. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +64 -13
  934. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +359 -78
  935. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +255 -33
  936. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2267 -148
  937. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +18 -17
  938. package/test/sap/ui/core/qunit/odata/v4/ODataParentBinding.qunit.js +19 -9
  939. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +6 -27
  940. package/test/sap/ui/core/qunit/odata/v4/data/metadata.json +3 -1
  941. package/test/sap/ui/core/qunit/odata/v4/data/metadata.xml +2 -2
  942. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +444 -53
  943. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +7 -8
  944. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +295 -161
  945. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +12 -22
  946. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +108 -10
  947. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +1 -1
  948. package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +5 -6
  949. package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +35 -46
  950. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +13 -14
  951. package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +5 -4
  952. package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +6 -5
  953. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +22 -21
  954. package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +60 -56
  955. package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +5 -7
  956. package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +5 -9
  957. package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +5 -6
  958. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +5 -4
  959. package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +21 -20
  960. package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +6 -5
  961. package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +7 -5
  962. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +4 -3
  963. package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +4 -3
  964. package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +6 -5
  965. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +28 -27
  966. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +11 -10
  967. package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +11 -10
  968. package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +5 -4
  969. package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +8 -7
  970. package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +12 -17
  971. package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +5 -6
  972. package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +6 -5
  973. package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +10 -9
  974. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +6 -7
  975. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +4 -3
  976. package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +4 -3
  977. package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +4 -3
  978. package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +4 -3
  979. package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +33 -27
  980. package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +9 -11
  981. package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +8 -9
  982. package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +5 -7
  983. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +35 -28
  984. package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +11 -9
  985. package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +5 -3
  986. package/test/sap/ui/core/qunit/routing/async/Router.qunit.js +57 -0
  987. package/test/sap/ui/core/qunit/routing/fixture/historyIframe/iframe/index.html +1 -1
  988. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/Component.js +30 -0
  989. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Child/manifest.json +25 -0
  990. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/Component.js +14 -0
  991. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/manifest.json +51 -0
  992. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/NotFound.view.xml +3 -0
  993. package/test/sap/ui/core/qunit/routing/fixture/router/component/2LevelsMultiNavTo/Parent/view/RootView.view.xml +5 -0
  994. package/test/sap/ui/core/qunit/rule/app/deprecatedJSViewUsage.qunit.js +4 -0
  995. package/test/sap/ui/core/qunit/rule/app/globalApiUsage.qunit.js +4 -0
  996. package/test/sap/ui/core/qunit/rule/app/jquerySapUsage.qunit.js +4 -0
  997. package/test/sap/ui/core/qunit/rule/app/syncXHR.qunit.js +28 -17
  998. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrap.qunit.js +7 -3
  999. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebug.qunit.js +7 -3
  1000. package/test/sap/ui/core/qunit/rule/app/syncXHRBootstrapDebugBeforeBootstrap.js +4 -0
  1001. package/test/sap/ui/core/qunit/rule/config/asynchronousXMLViews.qunit.js +13 -19
  1002. package/test/sap/ui/core/qunit/rule/misc/silentEventBus.qunit.js +8 -7
  1003. package/test/sap/ui/core/qunit/rule/model/modelSupport.qunit.js +11 -2
  1004. package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +18 -0
  1005. package/test/sap/ui/core/qunit/support/techinfo/TechnicalInfoTestbench.html +3 -1
  1006. package/test/sap/ui/core/qunit/test/starter/find/index.html +1 -1
  1007. package/test/sap/ui/core/qunit/test/starter/find/main.js +13 -9
  1008. package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +0 -6
  1009. package/test/sap/ui/core/qunit/testsuites/testsuite.base.configuration.qunit.js +1 -1
  1010. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +16 -6
  1011. package/test/sap/ui/core/qunit/testsuites/testsuite.foundation.enablement.qunit.js +7 -1
  1012. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +48 -6
  1013. package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +36 -35
  1014. package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +13 -0
  1015. package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +2 -2
  1016. package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +2 -2
  1017. package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
  1018. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +27 -31
  1019. package/test/sap/ui/core/qunit/util/Popup.qunit.js +27 -27
  1020. package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +13 -9
  1021. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +60 -7
  1022. package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +5 -5
  1023. package/test/sap/ui/core/qunit/util/jQuery.sap.measure.qunit.js +1 -1
  1024. package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +3 -2
  1025. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +38 -21
  1026. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +64 -40
  1027. package/test/sap/ui/core/qunit/util/static/TechnicalInfoTestbenchInit.js +8 -2
  1028. package/test/sap/ui/core/qunit/util/support/TechnicalInfo.qunit.js +11 -10
  1029. package/test/sap/ui/core/qunit/webc/WebComponent.qunit.js +188 -0
  1030. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.html +14 -0
  1031. package/test/sap/ui/core/qunit/webc/testsuite.webc.qunit.js +22 -0
  1032. package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +69 -8
  1033. package/test/sap/ui/core/relnotes/changes-1.117.json +1 -34
  1034. package/test/sap/ui/core/relnotes/changes-1.118.json +110 -0
  1035. package/test/sap/ui/core/relnotes/changes-1.119.json +217 -0
  1036. package/test/sap/ui/core/resources/fastnav.js +3 -2
  1037. package/test/sap/ui/core/samples/ResponsiveDemo.html +3 -3
  1038. package/test/sap/ui/core/samples/components/commands/manifest.json +2 -2
  1039. package/test/sap/ui/core/samples/components/resourcesCSS/index.html +1 -1
  1040. package/test/sap/ui/core/samples/components/sample/manifest.json +2 -1
  1041. package/test/sap/ui/core/samples/databinding/DataBindingAsyncType.html +3 -2
  1042. package/test/sap/ui/core/samples/databinding/DatabindingMessages.html +158 -153
  1043. package/test/sap/ui/core/samples/databinding/ODatabindingMessages.html +7 -9
  1044. package/test/sap/ui/core/samples/databinding/UnitTable.view.xml +9 -2
  1045. package/test/sap/ui/core/samples/databinding/UnitTableMain.js +3 -4
  1046. package/test/sap/ui/core/samples/extensions/index_legacyAPIs.html +15 -13
  1047. package/test/sap/ui/core/samples/formatting/controller/ChooseFormatOptions.controller.js +3 -2
  1048. package/test/sap/ui/core/samples/formatting/manifest.json +2 -2
  1049. package/test/sap/ui/core/samples/mvc/ExtendedXMLViewEventHandlerSyntax.html +5 -3
  1050. package/test/sap/ui/core/samples/mvc/XMLViewAsync.html +62 -61
  1051. package/test/sap/ui/core/samples/mvc/XMLViewBindableAggregation.html +1 -1
  1052. package/test/sap/ui/core/samples/routing_legacyAPIs/AsyncViews.html +124 -123
  1053. package/test/sap/ui/core/terminologies/App.controller.js +3 -2
  1054. package/test/sap/ui/core/terminologies/App.view.xml +64 -64
  1055. package/test/sap/ui/core/tmpl_legacyAPIs/TemplateSimple.html +38 -37
  1056. package/test/sap/ui/core/util/PasteHelper.html +5 -4
  1057. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  1058. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  1059. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  1060. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  1061. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  1062. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  1063. package/test/testsuite/testframe.html +4 -4
  1064. package/src/ui5-boot.js +0 -50
  1065. package/test/sap/ui/core/qunit/CoreLock.qunit.js +0 -61
  1066. package/test/sap/ui/core/qunit/internal/ODataV4.qunit.js +0 -30
  1067. package/test/sap/ui/core/qunit/messages/MessageManager.qunit.js +0 -135
  1068. package/test/sap/ui/core/samples/databinding/DataBinding.html +0 -133
  1069. package/test/sap/ui/core/samples/databinding/DataBindingCalculatedFields.html +0 -227
  1070. package/test/sap/ui/core/samples/databinding/DataBindingCompositeTypes.html +0 -273
  1071. package/test/sap/ui/core/samples/databinding/DataBindingFormat.html +0 -294
  1072. package/test/sap/ui/core/samples/databinding/DataBindingList.html +0 -288
  1073. package/test/sap/ui/core/samples/databinding/DataBindingListNamedModel.html +0 -288
  1074. package/test/sap/ui/core/samples/databinding/DataBindingListXML.html +0 -278
  1075. package/test/sap/ui/core/samples/databinding/DataBindingMasterDetail.html +0 -117
  1076. package/test/sap/ui/core/samples/databinding/DataBindingMultiModel.html +0 -152
  1077. package/test/sap/ui/core/samples/databinding/DataBindingResourceModel.html +0 -119
  1078. package/test/sap/ui/core/samples/databinding/DataBindingSortingFiltering.html +0 -101
  1079. package/test/sap/ui/core/samples/databinding/DataBindingTree.html +0 -166
  1080. package/test/sap/ui/core/samples/databinding/DataBindingTreeFilter.html +0 -117
  1081. package/test/sap/ui/core/samples/databinding/DataBindingTreeFilterXML.html +0 -103
  1082. package/test/sap/ui/core/samples/databinding/DataBindingTreeLarge.html +0 -139
  1083. package/test/sap/ui/core/samples/databinding/DataBindingTreeWithArrays.html +0 -132
  1084. package/test/sap/ui/core/samples/databinding/DataBindingTwoWay.html +0 -156
  1085. package/test/sap/ui/core/samples/databinding/DataBindingTwoWayTable.html +0 -140
  1086. package/test/sap/ui/core/samples/databinding/DataBindingTypes.html +0 -265
  1087. package/test/sap/ui/core/samples/databinding/DataBindingValidation.html +0 -194
  1088. package/test/sap/ui/core/samples/databinding/DataBindingXML.html +0 -147
  1089. package/test/sap/ui/core/samples/databinding/DataBindingXMLView.html +0 -53
  1090. package/test/sap/ui/core/samples/databinding/testdata/ListBinding.view.xml +0 -9
  1091. package/test/sap/ui/core/samples/databinding/testdata/test.view.json +0 -15
  1092. package/test/sap/ui/core/samples/databinding/testdata/test.view.xml +0 -8
  1093. /package/test/sap/ui/core/qunit/{MasterDetail.qunit.js → MasterDetail_legacyAPIs.qunit.js} +0 -0
  1094. /package/test/sap/ui/core/qunit/odata/{ODataModel.qunit.js → ODataModel_legacyAPIs.qunit.js} +0 -0
  1095. /package/test/sap/ui/core/qunit/odata/{ODataSharedMetadata.qunit.js → ODataSharedMetadata_legacyAPIs.qunit.js} +0 -0
  1096. /package/test/sap/ui/core/qunit/odata/{ODataTreeBinding.qunit.js → ODataTreeBinding_legacyAPIs.qunit.js} +0 -0
@@ -384,12 +384,10 @@ sap.ui.define([
384
384
  "@odata.etag" : sEtag
385
385
  }, {}],
386
386
  fnCallback = this.spy(),
387
- oCountExpectation,
388
387
  oDeleted = {index : "~insert~"},
389
388
  oError = new Error(""),
390
389
  oGroupLock = {getGroupId : function () {}},
391
390
  oHelperMock = this.mock(_Helper),
392
- oIndexExpectation,
393
391
  oMessage1 = {code : "CODE1"},
394
392
  oMessage2 = {code : "CODE2", persistent : true},
395
393
  oMessageExpectation,
@@ -398,14 +396,12 @@ sap.ui.define([
398
396
  oPromise,
399
397
  oRequestExpectation,
400
398
  oRequestPromise,
401
- oSpliceExpectation,
399
+ oRestoreExpectation,
402
400
  bSuccess = oFixture.iStatus === 200 || oFixture.iStatus === 404;
403
401
 
404
402
  function checkCleanedUp() {
405
403
  assert.notOk("@$ui5.context.isDeleted" in aCacheData[1]);
406
404
  assert.deepEqual(aCacheData.$deleted, ["a", "b", "c"]);
407
- assert.strictEqual(aCacheData.$created, oFixture.bCreated ? 2 : 1);
408
- assert.strictEqual(oCache.iActiveElements, oFixture.bCreated && !sPath ? 2 : 1);
409
405
  if (oFixture.bInactive) {
410
406
  sinon.assert.calledOnceWithExactly(fnCallback, 1, -1);
411
407
  } else {
@@ -427,16 +423,12 @@ sap.ui.define([
427
423
  .exactly(oFixture.bMessagesToRestore ? 1 : 0)
428
424
  .withExactArgs(undefined, oFixture.iStatus < 0
429
425
  ? [oMessage1, oMessage2] : [oMessage1]);
430
- aCacheData.$count = 2; // ensure that count is updated
431
- oCountExpectation = oHelperMock.expects("addToCount").exactly(iOnFailure)
432
- .withExactArgs(sinon.match.same(oCache.mChangeListeners), sPath,
433
- sinon.match.same(aCacheData), 1);
434
- aCacheData.$created = 1;
435
- oCache.iActiveElements = 1;
436
- oSpliceExpectation = that.mock(aCacheData).expects("splice").exactly(iOnFailure)
437
- .withExactArgs("~insert~", 0, sinon.match.same(aCacheData[1]));
438
- oIndexExpectation = that.mock(oCache).expects("adjustIndexes").exactly(iOnFailure)
439
- .withExactArgs(sPath, sinon.match.same(aCacheData), "~insert~", 1, 2);
426
+ oRestoreExpectation = that.mock(oCache).expects("restoreElement").exactly(iOnFailure)
427
+ .withExactArgs(sinon.match.same(aCacheData), "~insert~",
428
+ sinon.match.same(aCacheData[1]), sPath, 2)
429
+ .callsFake(() => {
430
+ assert.deepEqual(aCacheData.$deleted.length, 4);
431
+ });
440
432
  if (oFixture.iStatus !== 200) {
441
433
  if (oFixture.iStatus < 0) { // simulate the cancel
442
434
  oError.canceled = true;
@@ -445,9 +437,7 @@ sap.ui.define([
445
437
  oRequestExpectation.args[0][6]();
446
438
 
447
439
  assert.strictEqual(oMessageExpectation.called, !!oFixture.bMessagesToRestore);
448
- assert.ok(oCountExpectation.called);
449
- assert.ok(oSpliceExpectation.called);
450
- assert.ok(oIndexExpectation.called);
440
+ assert.ok(oRestoreExpectation.called);
451
441
  checkCleanedUp();
452
442
  }
453
443
  throw oError;
@@ -462,9 +452,6 @@ sap.ui.define([
462
452
  this.mock(oCache).expects("fetchValue")
463
453
  .withExactArgs(sinon.match.same(_GroupLock.$cached), sPath)
464
454
  .returns(SyncPromise.resolve(aCacheData));
465
- this.mock(_Cache).expects("from$skip")
466
- .withExactArgs(oFixture.bCreated ? "-1" : "0", sinon.match.same(aCacheData))
467
- .returns(1);
468
455
  oError.status = oFixture.iStatus;
469
456
  oHelperMock.expects("getPrivateAnnotation")
470
457
  .withExactArgs(aCacheData[1], "predicate").callThrough();
@@ -507,9 +494,8 @@ sap.ui.define([
507
494
  sinon.match.same(oRequestPromise));
508
495
 
509
496
  // code under test
510
- oPromise = oCache._delete(oGroupLock, "Equipments('1')",
511
- (sPath && sPath + "/") + (oFixture.bCreated ? "-1" : "0"), oFixture.oEntity,
512
- fnCallback);
497
+ oPromise = oCache._delete(oGroupLock, "Equipments('1')", (sPath && sPath + "/") + "1",
498
+ oFixture.oEntity, fnCallback);
513
499
 
514
500
  assert.strictEqual(aCacheData[1]["@$ui5.context.isDeleted"], true);
515
501
  sinon.assert.calledOnceWithExactly(fnCallback, 1, -1);
@@ -605,8 +591,7 @@ sap.ui.define([
605
591
  };
606
592
 
607
593
  oCache.fetchValue = function () {};
608
- aCacheData.$count = 2; // ensure that count is not updated
609
- this.mock(_Helper).expects("setCount").never();
594
+ this.mock(oCache).expects("restoreElement").never();
610
595
  this.mock(oCache).expects("fetchValue")
611
596
  .withExactArgs(sinon.match.same(_GroupLock.$cached), "")
612
597
  .returns(SyncPromise.resolve(aCacheData));
@@ -670,9 +655,6 @@ sap.ui.define([
670
655
  this.mock(oCache).expects("fetchValue")
671
656
  .withExactArgs(sinon.match.same(_GroupLock.$cached), "EMPLOYEE_2_EQUIPMENTS")
672
657
  .returns(SyncPromise.resolve(aCacheData));
673
- this.mock(_Cache).expects("from$skip")
674
- .withExactArgs("1", sinon.match.same(aCacheData))
675
- .returns(1);
676
658
  // not interested in buildQueryString
677
659
  this.oRequestorMock.expects("request").never();
678
660
  this.mock(oCache).expects("requestCount").never();
@@ -721,8 +703,6 @@ sap.ui.define([
721
703
  this.mock(oCache).expects("fetchValue")
722
704
  .withExactArgs(sinon.match.same(_GroupLock.$cached), "SO_2_SOITEM")
723
705
  .returns(SyncPromise.resolve(aElements));
724
- this.mock(_Cache).expects("from$skip").withExactArgs("-1", sinon.match.same(aElements))
725
- .returns(1);
726
706
  oHelperMock.expects("getPrivateAnnotation")
727
707
  .withExactArgs(sinon.match.same(oElement), "predicate").returns("n/a");
728
708
  oHelperMock.expects("getPrivateAnnotation")
@@ -738,7 +718,7 @@ sap.ui.define([
738
718
  .withExactArgs(sinon.match.same(oElement), "Deleted from deep create");
739
719
 
740
720
  // code under test
741
- oPromise = oCache._delete(oGroupLock, undefined, "SO_2_SOITEM/-1", null, fnCallback);
721
+ oPromise = oCache._delete(oGroupLock, undefined, "SO_2_SOITEM/1", null, fnCallback);
742
722
 
743
723
  assert.strictEqual(oPromise.getResult(), undefined);
744
724
  assert.deepEqual(aPostBodyCollection, ["~a~", "~c~"]);
@@ -952,7 +932,7 @@ sap.ui.define([
952
932
  //*********************************************************************************************
953
933
  QUnit.test("_Cache#removeElement for a created kept-alive context inside", function (assert) {
954
934
  var oCache = new _Cache(this.oRequestor, "EMPLOYEES"),
955
- aCacheData = [{
935
+ aElements = [{
956
936
  "@$ui5._" : {predicate : "('2')"},
957
937
  "@odata.etag" : "before"
958
938
  }, {
@@ -961,42 +941,86 @@ sap.ui.define([
961
941
  }, {
962
942
  "@odata.etag" : "after"
963
943
  }],
964
- oElement = aCacheData[1],
944
+ oElement = aElements[1],
965
945
  iIndex;
966
946
 
967
- aCacheData.$byPredicate = {
947
+ aElements.$byPredicate = {
968
948
  "($uid=id-1-23)" : oElement,
969
949
  "('1')" : oElement,
970
- "('2')" : aCacheData[0]
950
+ "('2')" : aElements[0]
971
951
  };
972
- aCacheData.$count = 42;
973
- aCacheData.$created = 23;
952
+ aElements.$count = 42;
953
+ aElements.$created = 23;
974
954
  oCache.iActiveElements = 19;
955
+ oCache.aElements = aElements;
975
956
  oCache.iLimit = 42;
976
957
  this.mock(_Cache).expects("getElementIndex")
977
- .withExactArgs(sinon.match.same(aCacheData), "('1')", 2).returns(1);
958
+ .withExactArgs(sinon.match.same(aElements), "('1')", 2).returns(1);
978
959
  this.mock(_Helper).expects("addToCount")
979
960
  .withExactArgs(sinon.match.same(oCache.mChangeListeners), "",
980
- sinon.match.same(aCacheData), -1);
961
+ sinon.match.same(aElements), -1);
981
962
  this.mock(oCache).expects("adjustIndexes")
982
- .withExactArgs("", sinon.match.same(aCacheData), 1, -1);
963
+ .withExactArgs("", sinon.match.same(aElements), 1, -1);
983
964
 
984
965
  // code under test
985
- iIndex = oCache.removeElement(aCacheData, 2, "('1')", "");
966
+ iIndex = oCache.removeElement(undefined, 2, "('1')", "");
986
967
 
987
968
  assert.strictEqual(iIndex, 1);
988
- assert.strictEqual(aCacheData.$created, 22);
969
+ assert.strictEqual(aElements.$created, 22);
989
970
  assert.strictEqual(oCache.iActiveElements, 18);
990
971
  assert.strictEqual(oCache.iLimit, 42);
991
- assert.deepEqual(aCacheData, [{
972
+ assert.deepEqual(aElements, [{
992
973
  "@$ui5._" : {predicate : "('2')"},
993
974
  "@odata.etag" : "before"
994
975
  }, {
995
976
  "@odata.etag" : "after"
996
977
  }]);
997
- assert.deepEqual(aCacheData.$byPredicate, {"('2')" : aCacheData[0]});
978
+ assert.deepEqual(aElements.$byPredicate, {"('2')" : aElements[0]});
998
979
  });
999
980
 
981
+ //*********************************************************************************************
982
+ ["", "~path~"].forEach(function (sPath) {
983
+ [false, true].forEach(function (bTransient) {
984
+ [false, true].forEach(function (bDefault) {
985
+ const sTitle = `_Cache#restoreElement, path=${sPath}, transient=${bTransient},
986
+ default=${bDefault}`;
987
+
988
+ QUnit.test(sTitle, function (assert) {
989
+ const oCache = new _Cache(this.oRequestor, "TEAMS");
990
+ oCache.iLimit = 234;
991
+ oCache.iActiveElements = 1;
992
+ const aElements = [];
993
+ aElements.$byPredicate = {};
994
+ aElements.$created = 2;
995
+ if (bDefault) {
996
+ oCache.aElements = aElements;
997
+ }
998
+ this.mock(oCache).expects("adjustIndexes")
999
+ .withExactArgs(sPath, sinon.match.same(aElements), 42, 1, "~iDeletedIndex~");
1000
+ const oHelperMock = this.mock(_Helper);
1001
+ oHelperMock.expects("getPrivateAnnotation")
1002
+ .withExactArgs("~oElement~", "transientPredicate")
1003
+ .returns(bTransient ? "($uid=id-1-23)" : undefined);
1004
+ oHelperMock.expects("addToCount")
1005
+ .withExactArgs(sinon.match.same(oCache.mChangeListeners), sPath,
1006
+ sinon.match.same(aElements), 1);
1007
+ this.mock(aElements).expects("splice").withExactArgs(42, 0, "~oElement~");
1008
+ oHelperMock.expects("getPrivateAnnotation").withExactArgs("~oElement~", "predicate")
1009
+ .returns("~predicate~");
1010
+
1011
+ // code under test
1012
+ oCache.restoreElement(bDefault ? undefined : aElements, 42, "~oElement~", sPath,
1013
+ "~iDeletedIndex~");
1014
+
1015
+ assert.strictEqual(oCache.iLimit, bTransient || sPath ? 234 : 235);
1016
+ assert.strictEqual(aElements.$created, bTransient ? 3 : 2);
1017
+ assert.strictEqual(oCache.iActiveElements, bTransient && !sPath ? 2 : 1);
1018
+ assert.deepEqual(aElements.$byPredicate, {"~predicate~" : "~oElement~"});
1019
+ });
1020
+ });
1021
+ });
1022
+ });
1023
+
1000
1024
  //*********************************************************************************************
1001
1025
  QUnit.test("_Cache#registerChangeListener", function () {
1002
1026
  var oCache = new _Cache(this.oRequestor, "TEAMS");
@@ -2762,7 +2786,6 @@ sap.ui.define([
2762
2786
  fnPatchSent = function () {},
2763
2787
  oRequestCall,
2764
2788
  oRequestLock = {unlock : function () {}},
2765
- mTypeForMetaPath = {},
2766
2789
  oUpdatePromise,
2767
2790
  that = this;
2768
2791
 
@@ -2772,7 +2795,7 @@ sap.ui.define([
2772
2795
  .withExactArgs(sinon.match.same(_GroupLock.$cached), sEntityPath)
2773
2796
  .returns(SyncPromise.resolve(oEntity));
2774
2797
  oCacheMock.expects("fetchTypes").withExactArgs()
2775
- .returns(SyncPromise.resolve(mTypeForMetaPath));
2798
+ .returns(SyncPromise.resolve({}));
2776
2799
  oHelperMock.expects("makeUpdateData")
2777
2800
  .withExactArgs(["Address", "City"], "Walldorf")
2778
2801
  .returns("~oUpdateData~");
@@ -3067,6 +3090,20 @@ sap.ui.define([
3067
3090
  });
3068
3091
  });
3069
3092
 
3093
+ //*********************************************************************************************
3094
+ QUnit.test("Cache#getTypes", function (assert) {
3095
+ var oCache = new _Cache(this.oRequestor, "TEAMS('42')/Foo"),
3096
+ oSyncPromise = {
3097
+ getResult : mustBeMocked
3098
+ };
3099
+
3100
+ this.mock(oCache).expects("fetchTypes").withExactArgs().returns(oSyncPromise);
3101
+ this.mock(oSyncPromise).expects("getResult").withExactArgs().returns("~mTypeForMetaPath~");
3102
+
3103
+ // code under test
3104
+ assert.strictEqual(oCache.getTypes(), "~mTypeForMetaPath~");
3105
+ });
3106
+
3070
3107
  //*********************************************************************************************
3071
3108
  QUnit.test("Cache#visitResponse: key predicates: ignore simple values", function () {
3072
3109
  var oCache = new _Cache(this.oRequestor, "TEAMS('42')/Foo"),
@@ -4658,8 +4695,7 @@ sap.ui.define([
4658
4695
  oCache.mLateQueryOptions = {};
4659
4696
  }
4660
4697
  oHelperMock.expects("getMetaPath").withExactArgs("").returns("~resMetaPath~");
4661
- this.mock(oCache).expects("fetchTypes")
4662
- .withExactArgs().returns(SyncPromise.resolve(mTypeForMetaPath));
4698
+ this.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
4663
4699
  oHelperMock.expects("buildPath").withExactArgs(oCache.sMetaPath, "~resMetaPath~")
4664
4700
  .returns("~metaPath~");
4665
4701
  oHelperMock.expects("getQueryOptionsForPath")
@@ -4759,8 +4795,7 @@ sap.ui.define([
4759
4795
  oCache.mLateQueryOptions = {};
4760
4796
  oHelperMock.expects("getMetaPath").withExactArgs("('31')/entity/path")
4761
4797
  .returns("entity/path");
4762
- this.mock(oCache).expects("fetchTypes")
4763
- .withExactArgs().returns(SyncPromise.resolve(mTypeForMetaPath));
4798
+ this.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
4764
4799
  oHelperMock.expects("getQueryOptionsForPath")
4765
4800
  .withExactArgs(sinon.match.same(oCache.mLateQueryOptions), "('31')/entity/path")
4766
4801
  .returns(mQueryOptionsForPath);
@@ -4882,8 +4917,7 @@ sap.ui.define([
4882
4917
  oCache.mLateQueryOptions = {};
4883
4918
  oHelperMock.expects("getMetaPath").withExactArgs("('1')/entity/path")
4884
4919
  .returns("entity/path");
4885
- this.mock(oCache).expects("fetchTypes")
4886
- .withExactArgs().returns(SyncPromise.resolve(mTypeForMetaPath));
4920
+ this.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
4887
4921
  oHelperMock.expects("buildPath").withExactArgs(oCache.sMetaPath, "entity/path")
4888
4922
  .returns(oCache.sMetaPath + "/entity/path");
4889
4923
  oHelperMock.expects("getQueryOptionsForPath")
@@ -4980,8 +5014,7 @@ sap.ui.define([
4980
5014
  };
4981
5015
 
4982
5016
  oCache.mLateQueryOptions = {};
4983
- this.mock(oCache).expects("fetchTypes").twice()
4984
- .withExactArgs().returns(SyncPromise.resolve(mTypeForMetaPath));
5017
+ this.mock(oCache).expects("getTypes").twice().withExactArgs().returns(mTypeForMetaPath);
4985
5018
  oHelperMock.expects("getQueryOptionsForPath").twice()
4986
5019
  .withExactArgs(sinon.match.same(oCache.mLateQueryOptions), "")
4987
5020
  .returns(mQueryOptionsForPath);
@@ -5056,7 +5089,7 @@ sap.ui.define([
5056
5089
  oCache.fetchValue = function () {};
5057
5090
 
5058
5091
  oCache.mLateQueryOptions = {};
5059
- this.mock(oCache).expects("fetchTypes").withExactArgs().returns(SyncPromise.resolve({}));
5092
+ this.mock(oCache).expects("getTypes").withExactArgs().returns({});
5060
5093
  this.mock(_Helper).expects("getQueryOptionsForPath")
5061
5094
  .withExactArgs(sinon.match.same(oCache.mLateQueryOptions), "")
5062
5095
  .returns(mQueryOptionsForPath);
@@ -5135,8 +5168,7 @@ sap.ui.define([
5135
5168
  $expand : {expand : {}},
5136
5169
  $select : ["select"]
5137
5170
  };
5138
- this.mock(oCache).expects("fetchTypes").withExactArgs()
5139
- .returns(SyncPromise.resolve(mTypeForMetaPath));
5171
+ this.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
5140
5172
  this.mock(_Helper).expects("getQueryOptionsForPath")
5141
5173
  .withExactArgs(sinon.match.same(oCache.mLateQueryOptions), "")
5142
5174
  .returns(mQueryOptionsForPath);
@@ -5181,6 +5213,7 @@ sap.ui.define([
5181
5213
  QUnit.test("Cache#fetchLateProperty: no late properties", function (assert) {
5182
5214
  var oCache = new _Cache(this.oRequestor, "Employees");
5183
5215
 
5216
+ this.mock(oCache).expects("getTypes").withExactArgs().returns({});
5184
5217
  this.mock(_Helper).expects("intersectQueryOptions").never();
5185
5218
  this.oRequestorMock.expects("request").never();
5186
5219
  this.mock(_Helper).expects("updateSelected").never();
@@ -5198,6 +5231,7 @@ sap.ui.define([
5198
5231
  var oCache = new _Cache(this.oRequestor, "Employees");
5199
5232
 
5200
5233
  oCache.mLateQueryOptions = {};
5234
+ this.mock(oCache).expects("getTypes").withExactArgs().returns({});
5201
5235
  this.mock(_Helper).expects("intersectQueryOptions").never();
5202
5236
  this.oRequestorMock.expects("request").never();
5203
5237
  this.mock(_Helper).expects("updateSelected").never();
@@ -5216,6 +5250,7 @@ sap.ui.define([
5216
5250
  mQueryOptionsForPath = {};
5217
5251
 
5218
5252
  oCache.mLateQueryOptions = {};
5253
+ this.mock(oCache).expects("getTypes").withExactArgs().returns({});
5219
5254
  this.mock(_Helper).expects("getMetaPath").withExactArgs("('1')").returns("");
5220
5255
  this.mock(_Helper).expects("getQueryOptionsForPath")
5221
5256
  .withExactArgs(sinon.match.same(oCache.mLateQueryOptions), "('1')")
@@ -5605,6 +5640,13 @@ sap.ui.define([
5605
5640
  "insert a created entity at the end: only non-created entities move");
5606
5641
  });
5607
5642
 
5643
+ //*********************************************************************************************
5644
+ QUnit.test("Cache#adjustIndexes: no path and no aReadRequests", function () {
5645
+ const oCache = new _Cache(this.oRequestor, "Employees"); // would be an _AggregationCache
5646
+
5647
+ oCache.adjustIndexes("", [], 1);
5648
+ });
5649
+
5608
5650
  //*********************************************************************************************
5609
5651
  [false, true].forEach(function (bSharedRequest) {
5610
5652
  QUnit.test("CollectionCache: bSharedRequest = " + bSharedRequest, function (assert) {
@@ -5760,22 +5802,67 @@ sap.ui.define([
5760
5802
  });
5761
5803
 
5762
5804
  //*********************************************************************************************
5763
- QUnit.test("Cache#getAndRemoveValue", function (assert) {
5764
- var oCache = new _Cache(this.oRequestor, "SalesOrders('1')"),
5765
- oParent = {
5766
- value : "~value~"
5767
- };
5805
+ [false, true].forEach(function (bTransferable) {
5806
+ QUnit.test(`Cache#getAndRemoveCollection: transferable=${bTransferable}`, function (assert) {
5807
+ const oCache = new _Cache(this.oRequestor, "SalesOrders('1')");
5808
+ oCache.fetchValue = function () {};
5809
+ const aCollection = [];
5810
+ if (bTransferable) {
5811
+ aCollection.$transfer = true;
5812
+ }
5813
+ const oParent = {
5814
+ collection : aCollection
5815
+ };
5768
5816
 
5769
- oCache.fetchValue = function () {};
5770
5817
  this.mock(oCache).expects("fetchValue")
5771
5818
  .withExactArgs(sinon.match.same(_GroupLock.$cached), "path/to")
5772
5819
  .returns(SyncPromise.resolve(oParent));
5773
5820
  this.mock(oCache).expects("checkSharedRequest").withExactArgs();
5774
5821
 
5775
5822
  // code under test
5776
- assert.strictEqual(oCache.getAndRemoveValue("path/to/value"), "~value~");
5823
+ assert.strictEqual(oCache.getAndRemoveCollection("path/to/collection"),
5824
+ bTransferable ? aCollection : undefined);
5825
+
5826
+ if (bTransferable) {
5827
+ assert.notOk("collection" in oParent);
5828
+ } else {
5829
+ assert.strictEqual(oParent.collection, aCollection);
5830
+ }
5831
+ assert.notOk("$transfer" in aCollection);
5832
+ });
5833
+ });
5834
+
5835
+ //*********************************************************************************************
5836
+ QUnit.test("Cache#getAndRemoveCollection: empty", function (assert) {
5837
+ const oCache = new _Cache(this.oRequestor, "SalesOrders('1')");
5838
+ oCache.fetchValue = function () {};
5839
+
5840
+ this.mock(oCache).expects("fetchValue")
5841
+ .withExactArgs(sinon.match.same(_GroupLock.$cached), "path/to")
5842
+ .returns(SyncPromise.resolve({}));
5843
+ this.mock(oCache).expects("checkSharedRequest").withExactArgs();
5777
5844
 
5778
- assert.notOk("value" in oParent);
5845
+ // code under test
5846
+ assert.strictEqual(oCache.getAndRemoveCollection("path/to/collection"), undefined);
5847
+ });
5848
+
5849
+ //*********************************************************************************************
5850
+ QUnit.test("Cache#getAndRemoveCollection: not a collection", function (assert) {
5851
+ const oCache = new _Cache(this.oRequestor, "SalesOrders('1')");
5852
+ oCache.fetchValue = function () {};
5853
+ const oParent = {
5854
+ value : "foo"
5855
+ };
5856
+
5857
+ this.mock(oCache).expects("fetchValue")
5858
+ .withExactArgs(sinon.match.same(_GroupLock.$cached), "path/to")
5859
+ .returns(SyncPromise.resolve(oParent));
5860
+ this.mock(oCache).expects("checkSharedRequest").withExactArgs();
5861
+
5862
+ assert.throws(function () {
5863
+ // code under test
5864
+ oCache.getAndRemoveCollection("path/to/value");
5865
+ }, new Error("path/to/value must point to a collection"));
5779
5866
  });
5780
5867
 
5781
5868
  //*********************************************************************************************
@@ -6628,6 +6715,8 @@ sap.ui.define([
6628
6715
  QUnit.test("CollectionCache#getExclusiveFilter: no created entities", function (assert) {
6629
6716
  var oCache = this.createCache("Employees");
6630
6717
 
6718
+ this.mock(oCache).expects("getTypes").never();
6719
+
6631
6720
  // code under test
6632
6721
  assert.strictEqual(oCache.getExclusiveFilter(), undefined);
6633
6722
  });
@@ -6653,8 +6742,7 @@ sap.ui.define([
6653
6742
  oHelperMock = this.mock(_Helper),
6654
6743
  mTypeForMetaPath = {};
6655
6744
 
6656
- this.mock(oCache).expects("fetchTypes")
6657
- .returns(SyncPromise.resolve(mTypeForMetaPath));
6745
+ this.mock(oCache).expects("getTypes").returns(mTypeForMetaPath);
6658
6746
  oCache.aElements.$created = 0;
6659
6747
  if (oFixture.single || oFixture.multiple) {
6660
6748
  oCache.aElements.unshift(oElement0);
@@ -7389,8 +7477,8 @@ sap.ui.define([
7389
7477
  });
7390
7478
 
7391
7479
  //*********************************************************************************************
7392
- [false, true].forEach(function (bError) {
7393
- QUnit.test("CollectionCache#requestElements: error=" + bError, function (assert) {
7480
+ [false, true, undefined].forEach(function (bSuccess) { // undefined -> obsolete
7481
+ QUnit.test("CollectionCache#requestElements: success=" + bSuccess, function (assert) {
7394
7482
  var oCache = this.createCache("Employees"),
7395
7483
  oCacheMock = this.mock(oCache),
7396
7484
  oCheckRangeExpectation,
@@ -7400,15 +7488,15 @@ sap.ui.define([
7400
7488
  iStart = 0,
7401
7489
  oFetchPromise = Promise.resolve("~mTypes~"),
7402
7490
  oHandleResponseExpectation,
7491
+ oPromise,
7403
7492
  oResetExpectation, // avoid "was used before it was defined"
7404
7493
  oRequestPromise = Promise.resolve().then(function () {
7405
7494
  oCheckRangeExpectation = oCacheMock.expects("checkRange")
7406
- .withExactArgs(sinon.match(function (oPromise) {
7407
- return oPromise === oFillExpectation.args[0][0];
7408
- }), iStart, iEnd);
7409
- if (bError) {
7410
- oResetExpectation = oCacheMock.expects("fill")
7411
- .withExactArgs(undefined, iStart, iEnd);
7495
+ .exactly(bSuccess !== undefined ? 1 : 0)
7496
+ .withExactArgs(sinon.match.same(oPromise), iStart, iEnd);
7497
+ oResetExpectation = oCacheMock.expects("fill").exactly(bSuccess === false ? 1 : 0)
7498
+ .withExactArgs(undefined, iStart, iEnd);
7499
+ if (bSuccess === false) {
7412
7500
  throw oError;
7413
7501
  }
7414
7502
  return "~oResult~";
@@ -7423,33 +7511,36 @@ sap.ui.define([
7423
7511
  /*oPayload*/undefined, "~fnDataRequested~")
7424
7512
  .returns(oRequestPromise);
7425
7513
  oCacheMock.expects("fetchTypes").withExactArgs().returns(oFetchPromise);
7426
- oHandleResponseExpectation = oCacheMock.expects("handleResponse").exactly(bError ? 0 : 1)
7514
+ oHandleResponseExpectation = oCacheMock.expects("handleResponse").exactly(bSuccess ? 1 : 0)
7427
7515
  .withExactArgs("~oResult~", iStart, "~mTypes~")
7428
7516
  .returns("~iFiltered~");
7429
- oCacheMock.expects("handleCount").exactly(bError ? 0 : 1)
7517
+ oCacheMock.expects("handleCount").exactly(bSuccess ? 1 : 0)
7430
7518
  .withExactArgs("~oGroupLock~", 0, iStart, iEnd, "~oResult~", "~iFiltered~");
7431
7519
  oFillExpectation = oCacheMock.expects("fill")
7432
7520
  .withExactArgs(sinon.match.instanceOf(SyncPromise), iStart, iEnd);
7433
7521
 
7434
7522
  // code under test
7435
- oCache.requestElements(iStart, iEnd, "~oGroupLock~", 0, "~fnDataRequested~");
7523
+ oPromise = oCache.requestElements(iStart, iEnd, "~oGroupLock~", 0, "~fnDataRequested~");
7436
7524
 
7525
+ assert.deepEqual(oCache.aReadRequests, [{iStart, iEnd}]);
7526
+ if (bSuccess === undefined) {
7527
+ oCache.aReadRequests[0].obsolete = true;
7528
+ }
7437
7529
  assert.strictEqual(oCache.bSentRequest, true);
7530
+ assert.strictEqual(oFillExpectation.args[0][0], oPromise);
7438
7531
 
7439
- return Promise.all([
7440
- oFetchPromise,
7441
- oRequestPromise.catch(function () {})
7442
- ]).then(function () {
7443
- var oPromise = oFillExpectation.args[0][0];
7444
-
7445
- return oPromise.then(function () {
7446
- assert.notOk(bError);
7447
- assert.ok(oCheckRangeExpectation.calledBefore(oHandleResponseExpectation));
7448
- }, function (oRequestError) {
7449
- assert.ok(bError);
7532
+ return oPromise.then(function () {
7533
+ assert.ok(bSuccess);
7534
+ assert.ok(oCheckRangeExpectation.calledBefore(oHandleResponseExpectation));
7535
+ }, function (oRequestError) {
7536
+ assert.notOk(bSuccess);
7537
+ if (bSuccess === false) {
7450
7538
  assert.strictEqual(oRequestError, oError);
7451
7539
  assert.ok(oCheckRangeExpectation.calledBefore(oResetExpectation));
7452
- });
7540
+ } else {
7541
+ assert.ok(oRequestError.canceled);
7542
+ assert.strictEqual(oRequestError.message, "Request is obsolete");
7543
+ }
7453
7544
  });
7454
7545
  });
7455
7546
  });
@@ -8037,6 +8128,7 @@ sap.ui.define([
8037
8128
  QUnit.test("CollectionCache#read: $count & create, bInactive=" + bInactive, function (assert) {
8038
8129
  var sResourcePath = "Employees",
8039
8130
  oCache = this.createCache(sResourcePath),
8131
+ fnCancelCallback = sinon.spy(),
8040
8132
  iCountAfterCreate = bInactive ? 26 : 27,
8041
8133
  oCountChangeListener = {onChange : function () {}},
8042
8134
  oCountChangeListenerMock = this.mock(oCountChangeListener),
@@ -8069,7 +8161,8 @@ sap.ui.define([
8069
8161
  oCache.registerChangeListener("$count", oCountChangeListener);
8070
8162
 
8071
8163
  return oCache.create(oGroupLock, SyncPromise.resolve("Employees"), "",
8072
- sTransientPredicate, {}, null, false, function fnSubmitCallback() {});
8164
+ sTransientPredicate, {}, false, null, function fnSubmitCallback() {},
8165
+ fnCancelCallback);
8073
8166
  })
8074
8167
  .then(function () {
8075
8168
  var oReadGroupLock = {
@@ -8086,8 +8179,14 @@ sap.ui.define([
8086
8179
  assert.strictEqual(oCache.iActiveElements, bInactive ? 0 : 1);
8087
8180
 
8088
8181
  oCountChangeListenerMock.expects("onChange").exactly(bInactive ? 0 : 1)
8089
- .withExactArgs(26, undefined);
8090
- that.mock(oGroupLock).expects("cancel").withExactArgs();
8182
+ .withExactArgs(26, undefined)
8183
+ .callsFake(function () {
8184
+ assert.strictEqual(fnCancelCallback.callCount, 0, "not yet");
8185
+ });
8186
+ that.mock(oGroupLock).expects("cancel").withExactArgs()
8187
+ .callsFake(function () {
8188
+ assert.strictEqual(fnCancelCallback.callCount, 1);
8189
+ });
8091
8190
 
8092
8191
  // code under test - cancel the create
8093
8192
  oPostRequest.args[0][6]();
@@ -8552,7 +8651,7 @@ sap.ui.define([
8552
8651
 
8553
8652
  // code under test
8554
8653
  oCache._delete(null, "TEAMS('0')/TEAM_2_EMPLOYEES",
8555
- sPathInCache + "/-1", //TODO sPathInCache + sTransientPredicate
8654
+ sPathInCache + "/1", //TODO sPathInCache + sTransientPredicate
8556
8655
  null, false, fnDeleteCallback);
8557
8656
 
8558
8657
  assert.strictEqual(aCollection.$count, 41);
@@ -8973,7 +9072,7 @@ sap.ui.define([
8973
9072
  "No 'update' allowed while waiting for server response",
8974
9073
  oError.message);
8975
9074
  });
8976
- oCache._delete(oDeleteGroupLock, "n/a", /*TODO sTransientPredicate*/"-1")
9075
+ oCache._delete(oDeleteGroupLock, "n/a", /*TODO sTransientPredicate*/"0")
8977
9076
  .then(function () {
8978
9077
  assert.ok(false, "unexpected success - _delete");
8979
9078
  }, function (oError) {
@@ -9182,6 +9281,9 @@ sap.ui.define([
9182
9281
  that.oRequestorMock.expects("relocate")
9183
9282
  .withExactArgs(sParkedGroupId, sinon.match.same(oPostBody), sUpdateGroupId);
9184
9283
 
9284
+ if (oFixture.createGroupId === "$inactive.$auto") {
9285
+ oCache.setInactive(sTransientPredicate, false); // activate
9286
+ }
9185
9287
  // code under test - first update -> relocate
9186
9288
  aPromises.push(oCache.update(oGroupLock1, "Name", "John Doe", that.spy(), "n/a",
9187
9289
  sTransientPredicate));
@@ -9202,15 +9304,9 @@ sap.ui.define([
9202
9304
  //*********************************************************************************************
9203
9305
  //TODO move to _Cache!
9204
9306
  [false, true].forEach(function (bInactive) {
9205
- [false, true].forEach(function (bStayInactive) {
9206
- [false, true].forEach(function (bAtEndOfCreated) {
9207
- var sTitle = "CollectionCache: create entity without initial data, bInactive="
9208
- + bInactive + ", bStayInactive= " + bStayInactive + ", bAtEndOfCreated="
9209
- + bAtEndOfCreated;
9210
-
9211
- if (!bInactive && bStayInactive) {
9212
- return;
9213
- }
9307
+ [false, true].forEach(function (bAtEndOfCreated) {
9308
+ var sTitle = "CollectionCache: create entity without initial data, bInactive="
9309
+ + bInactive + ", bAtEndOfCreated=" + bAtEndOfCreated;
9214
9310
 
9215
9311
  QUnit.test(sTitle, function (assert) {
9216
9312
  var oCache = _Cache.create(this.oRequestor, "Employees"),
@@ -9277,27 +9373,13 @@ sap.ui.define([
9277
9373
  }
9278
9374
 
9279
9375
  this.mock(oUpdateGroupLock).expects("getGroupId").withExactArgs().returns("updateGroup");
9280
- oHelperMock.expects("updateAll").exactly(bStayInactive ? 1 : 0)
9281
- .withExactArgs(sinon.match.same(oCache.mChangeListeners), sTransientPredicate,
9282
- sinon.match.same(oCache.aElements[bAtEndOfCreated ? 1 : 0]),
9283
- {"@$ui5.context.isInactive" : 1}).callThrough();
9284
- this.oRequestorMock.expects("relocate").exactly(bInactive && !bStayInactive ? 1 : 0)
9285
- .withExactArgs("$inactive.updateGroup",
9286
- sinon.match.same(oCache.aElements[bAtEndOfCreated ? 1 : 0]["@$ui5._"].postBody),
9287
- "updateGroup");
9288
9376
  oHelperMock.expects("updateAll")
9289
9377
  .withExactArgs({}, sTransientPredicate, sinon.match.object, {Name : "foo"});
9290
- this.mock(oCountChangeListener).expects("onChange")
9291
- .exactly(bInactive && !bStayInactive ? 1 : 0)
9292
- .withExactArgs(43, undefined);
9293
9378
  oCache.registerChangeListener("$count", oCountChangeListener);
9294
9379
  oHelperMock.expects("updateAll")
9295
9380
  .withExactArgs(sinon.match.same(oCache.mChangeListeners), sTransientPredicate,
9296
- sinon.match.same(oCache.aElements[bAtEndOfCreated ? 1 : 0]),
9297
- bInactive && !bStayInactive
9298
- ? {Name : "foo", "@$ui5.context.isInactive" : false}
9299
- : {Name : "foo"}
9300
- ).callThrough();
9381
+ sinon.match.same(oCache.aElements[bAtEndOfCreated ? 1 : 0]), {Name : "foo"})
9382
+ .callThrough();
9301
9383
  oHelperMock.expects("updateSelected")
9302
9384
  .withExactArgs(sinon.match.same(oCache.mChangeListeners), sTransientPredicate,
9303
9385
  sinon.match.same(oCache.aElements[bAtEndOfCreated ? 1 : 0]),
@@ -9310,29 +9392,20 @@ sap.ui.define([
9310
9392
  this.mock(oUpdateGroupLock).expects("unlock").withExactArgs();
9311
9393
 
9312
9394
  // code under test
9313
- oCache.update(oUpdateGroupLock, "Name", "foo", this.spy(), undefined, sTransientPredicate,
9314
- undefined, undefined, undefined, undefined, bStayInactive);
9395
+ oCache.update(oUpdateGroupLock, "Name", "foo", this.spy(), undefined, sTransientPredicate);
9315
9396
 
9316
9397
  assert.strictEqual(oCache.aElements[bAtEndOfCreated ? 1 : 0]["@$ui5._"].transient,
9317
- bStayInactive ? "$inactive.updateGroup" : "updateGroup");
9318
-
9319
- if (bInactive) {
9320
- assert.strictEqual(
9321
- _Helper.hasPrivateAnnotation(oCache.aElements[bAtEndOfCreated ? 1 : 0],
9322
- "initialData"), bStayInactive);
9323
- assert.strictEqual(
9324
- oCache.aElements[bAtEndOfCreated ? 1 : 0]["@$ui5.context.isInactive"],
9325
- bStayInactive ? 1 : false, "isInactive");
9326
- assert.strictEqual(oCache.iActiveElements, bStayInactive ? 0 : 1);
9327
- } else {
9328
- assert.strictEqual(
9329
- oCache.aElements[bAtEndOfCreated ? 1 : 0]["@$ui5.context.isInactive"], undefined);
9330
- assert.strictEqual(oCache.iActiveElements, 1);
9331
- }
9398
+ bInactive ? "$inactive.updateGroup" : "updateGroup");
9399
+ assert.strictEqual(
9400
+ _Helper.hasPrivateAnnotation(oCache.aElements[bAtEndOfCreated ? 1 : 0],
9401
+ "initialData"), bInactive);
9402
+ assert.strictEqual(
9403
+ oCache.aElements[bAtEndOfCreated ? 1 : 0]["@$ui5.context.isInactive"],
9404
+ bInactive ? true : undefined, "isInactive");
9405
+ assert.strictEqual(oCache.iActiveElements, bInactive ? 0 : 1);
9332
9406
 
9333
9407
  return oPromise;
9334
9408
  });
9335
- });
9336
9409
  });
9337
9410
  });
9338
9411
 
@@ -9644,7 +9717,7 @@ sap.ui.define([
9644
9717
 
9645
9718
  // code under test
9646
9719
  oDeletePromise = oCache._delete(null, "n/a",
9647
- /*TODO sTransientPredicate*/"-1", null, false, function () {
9720
+ /*TODO sTransientPredicate*/"0", null, false, function () {
9648
9721
  throw new Error();
9649
9722
  });
9650
9723
 
@@ -9727,7 +9800,7 @@ sap.ui.define([
9727
9800
  .returns(Promise.resolve());
9728
9801
 
9729
9802
  // code under test
9730
- return oCache._delete(oDeleteGroupLock, sEditUrl, /*TODO sTransientPredicate*/"-1",
9803
+ return oCache._delete(oDeleteGroupLock, sEditUrl, /*TODO sTransientPredicate*/"0",
9731
9804
  null, fnCallback)
9732
9805
  .then(function () {
9733
9806
  sinon.assert.calledOnceWithExactly(fnCallback, 0, -1);
@@ -9931,8 +10004,7 @@ sap.ui.define([
9931
10004
  oCacheMock.expects("keepOnlyGivenElements").exactly(bSingle ? 0 : 1)
9932
10005
  .withExactArgs(aPredicates).callThrough(); // too hard to refactor :-(
9933
10006
  // Note: fetchTypes() would have been triggered by read() already
9934
- oCacheMock.expects("fetchTypes").withExactArgs()
9935
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10007
+ oCacheMock.expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
9936
10008
  oCache.beforeUpdateSelected = function () {};
9937
10009
  for (i = 0; i < iReceivedLength; i += 1) { // prepare request/response
9938
10010
  sPredicate = "('" + oFixture.aValues[i].key + "')";
@@ -10052,7 +10124,6 @@ sap.ui.define([
10052
10124
  oPromise,
10053
10125
  mQueryOptions = {},
10054
10126
  sResourcePath = "TEAMS('42')/Foo",
10055
- mTypeForMetaPath = {},
10056
10127
  oCache = this.createCache(sResourcePath);
10057
10128
 
10058
10129
  // cache preparation
@@ -10061,8 +10132,7 @@ sap.ui.define([
10061
10132
  oCache.aElements.$byPredicate = mByPredicate;
10062
10133
  oCache.mLateQueryOptions = mLateQueryOptions;
10063
10134
 
10064
- this.mock(oCache).expects("fetchTypes").withExactArgs()
10065
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10135
+ this.mock(oCache).expects("getTypes").withExactArgs().returns({});
10066
10136
  this.mock(Object).expects("assign")
10067
10137
  .withExactArgs({}, sinon.match.same(oCache.mQueryOptions),
10068
10138
  sinon.match.same(oCache.mLateQueryOptions))
@@ -10101,10 +10171,7 @@ sap.ui.define([
10101
10171
  // Note: fill cache with more than just "visible" rows
10102
10172
  return this.mockRequestAndRead(oCache, 0, sResourcePath, 0, 4, 4, undefined, "26")
10103
10173
  .then(function () {
10104
- var mTypeForMetaPath = {};
10105
-
10106
- that.mock(oCache).expects("fetchTypes").withExactArgs()
10107
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10174
+ that.mock(oCache).expects("getTypes").withExactArgs().returns({});
10108
10175
  that.mock(_Helper).expects("intersectQueryOptions").returns({/*don't care*/});
10109
10176
  that.mock(oCache).expects("keepOnlyGivenElements").withExactArgs([])
10110
10177
  .returns([]);
@@ -10176,8 +10243,7 @@ sap.ui.define([
10176
10243
  oCache.aElements[2].Bar = {
10177
10244
  "@$ui5._" : {predicate : "(2)"}
10178
10245
  };
10179
- that.mock(oCache).expects("fetchTypes").withExactArgs()
10180
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10246
+ that.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
10181
10247
  that.mock(Object).expects("assign")
10182
10248
  .withExactArgs({}, sinon.match.same(oCache.mQueryOptions),
10183
10249
  sinon.match.same(oCache.mLateQueryOptions))
@@ -10251,8 +10317,7 @@ sap.ui.define([
10251
10317
  var mTypeForMetaPath = {};
10252
10318
 
10253
10319
  oCache.aElements[0] = undefined; // can result from a failed requestElements
10254
- oCacheMock.expects("fetchTypes").withExactArgs()
10255
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10320
+ oCacheMock.expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
10256
10321
  that.mock(Object).expects("assign")
10257
10322
  .withExactArgs({}, sinon.match.same(oCache.mQueryOptions),
10258
10323
  sinon.match.same(oCache.mLateQueryOptions))
@@ -10331,8 +10396,7 @@ sap.ui.define([
10331
10396
  oCache.aElements.push(oElement);
10332
10397
  oCache.aElements.$byPredicate["('c')"] = oElement;
10333
10398
 
10334
- this.mock(oCache).expects("fetchTypes").withExactArgs()
10335
- .returns(SyncPromise.resolve(mTypeForMetaPath));
10399
+ this.mock(oCache).expects("getTypes").withExactArgs().returns(mTypeForMetaPath);
10336
10400
  this.mock(oCache).expects("checkSharedRequest").withExactArgs();
10337
10401
  this.mock(Object).expects("assign")
10338
10402
  .withExactArgs({}, sinon.match.same(oCache.mQueryOptions),
@@ -10650,15 +10714,26 @@ sap.ui.define([
10650
10714
  oCache.mChangeListeners = mChangeListeners;
10651
10715
  oCache.sContext = "~context~";
10652
10716
  oCache.aElements.$count = oCache.iLimit = 3;
10717
+ oCache.aReadRequests = [{iStart : 1, iEnd : 2}, {iStart : 3, iEnd : 4}];
10653
10718
 
10654
10719
  oSetQueryOptionsExpectation = this.mock(oCache).expects("setQueryOptions")
10655
10720
  .withExactArgs("~mQueryOptions~", true);
10656
10721
  oFireChangeExpectation = this.mock(_Helper).expects("fireChange")
10657
- .withExactArgs({"" : "~listeners~"}, "");
10722
+ .withExactArgs({"" : "~listeners~"}, "")
10723
+ .callsFake(function () {
10724
+ assert.deepEqual(oCache.aReadRequests, [
10725
+ {iStart : 1, iEnd : 2, obsolete : true},
10726
+ {iStart : 3, iEnd : 4, obsolete : true}
10727
+ ]);
10728
+ });
10658
10729
 
10659
10730
  // code under test
10660
10731
  oCache.reset([], undefined, "~mQueryOptions~");
10661
10732
 
10733
+ assert.deepEqual(oCache.aReadRequests, [
10734
+ {iStart : 1, iEnd : 2, obsolete : true},
10735
+ {iStart : 3, iEnd : 4, obsolete : true}
10736
+ ]);
10662
10737
  assert.strictEqual(oCache.aElements, aElements);
10663
10738
  assert.strictEqual(oCache.aElements.length, 0);
10664
10739
  assert.strictEqual(oCache.aElements.$created, 0);
@@ -10685,6 +10760,40 @@ sap.ui.define([
10685
10760
  assert.strictEqual(oCache.isDeletingInOtherGroup("group"), true);
10686
10761
  });
10687
10762
 
10763
+ //*********************************************************************************************
10764
+ [false, 1].forEach(function (bInactive) {
10765
+ QUnit.test(`CollectionCache#setInactive(${bInactive})`, function (assert) {
10766
+ const iActivateCount = bInactive ? 0 : 1;
10767
+ const oCache = this.createCache("Employees");
10768
+ oCache.iActiveElements = 42;
10769
+ this.mock(oCache).expects("getValue").withExactArgs("($uid=id-1-23)").returns("~oElement~");
10770
+ this.mock(_Helper).expects("updateAll")
10771
+ .withExactArgs(sinon.match.same(oCache.mChangeListeners), "($uid=id-1-23)",
10772
+ "~oElement~", {"@$ui5.context.isInactive" : bInactive});
10773
+ this.mock(_Helper).expects("deletePrivateAnnotation").exactly(iActivateCount)
10774
+ .withExactArgs("~oElement~", "initialData");
10775
+ this.mock(_Helper).expects("addToCount").exactly(iActivateCount)
10776
+ .withExactArgs(sinon.match.same(oCache.mChangeListeners), "",
10777
+ sinon.match.same(oCache.aElements), 1);
10778
+
10779
+ // code under test
10780
+ oCache.setInactive("($uid=id-1-23)", bInactive);
10781
+
10782
+ assert.strictEqual(oCache.iActiveElements, bInactive ? 42 : 43);
10783
+ });
10784
+ });
10785
+
10786
+ //*********************************************************************************************
10787
+ QUnit.test("CollectionCache#setEmpty", function (assert) {
10788
+ const oCache = this.createCache("Employees");
10789
+
10790
+ // code under test
10791
+ oCache.setEmpty();
10792
+
10793
+ assert.strictEqual(oCache.aElements.$count, 0);
10794
+ assert.strictEqual(oCache.iLimit, 0);
10795
+ });
10796
+
10688
10797
  //*********************************************************************************************
10689
10798
  QUnit.test("SingleCache", function (assert) {
10690
10799
  var oCache,
@@ -12453,15 +12562,23 @@ sap.ui.define([
12453
12562
  });
12454
12563
 
12455
12564
  //*********************************************************************************************
12456
- QUnit.test("CollectionCache#drop", function (assert) {
12457
- var oCache = this.createCache("Employees");
12458
-
12565
+ [undefined, "($uid=id-1-23)"].forEach((sTransientPredicate) => {
12566
+ QUnit.test(`CollectionCache#drop, ${sTransientPredicate}`, function (assert) {
12567
+ const oCache = this.createCache("Employees");
12459
12568
  oCache.aElements[23] = "~b~";
12460
12569
  oCache.aElements.$byPredicate = {
12461
12570
  "('a')" : "~a~",
12462
12571
  "('b')" : "~b~",
12463
12572
  "('c')" : "~c~"
12464
12573
  };
12574
+ oCache.aElements.$created = 7;
12575
+ oCache.iActiveElements = 5;
12576
+ oCache.iLimit = 42;
12577
+ if (sTransientPredicate) {
12578
+ oCache.aElements.$byPredicate[sTransientPredicate] = "~b~";
12579
+ }
12580
+ this.mock(_Helper).expects("getPrivateAnnotation")
12581
+ .withExactArgs("~b~", "transientPredicate").returns(sTransientPredicate);
12465
12582
 
12466
12583
  // code under test
12467
12584
  oCache.drop(23, "('b')");
@@ -12472,6 +12589,22 @@ sap.ui.define([
12472
12589
  "('a')" : "~a~",
12473
12590
  "('c')" : "~c~"
12474
12591
  });
12592
+ assert.strictEqual(oCache.aElements.$created, sTransientPredicate ? 6 : 7);
12593
+ assert.strictEqual(oCache.iActiveElements, sTransientPredicate ? 4 : 5);
12594
+ assert.strictEqual(oCache.iLimit, sTransientPredicate ? 43 : 42);
12595
+ });
12596
+ });
12597
+
12598
+ //*********************************************************************************************
12599
+ QUnit.test("CollectionCache#drop: Must not drop a transient element", function (assert) {
12600
+ const oCache = this.createCache("Employees");
12601
+ oCache.aElements[23] = {"@$ui5.context.isTransient" : true};
12602
+ this.mock(_Helper).expects("getPrivateAnnotation").never();
12603
+
12604
+ assert.throws(function () {
12605
+ // code under test
12606
+ oCache.drop(23, "n/a");
12607
+ }, new Error("Must not drop a transient element"));
12475
12608
  });
12476
12609
 
12477
12610
  //*********************************************************************************************
@@ -12789,7 +12922,7 @@ sap.ui.define([
12789
12922
 
12790
12923
  // refreshKeptElements
12791
12924
  oCacheMock.expects("checkSharedRequest").withExactArgs();
12792
- oCacheMock.expects("fetchTypes").returns(SyncPromise.resolve(mTypes));
12925
+ oCacheMock.expects("getTypes").returns(mTypes);
12793
12926
  this.mock(this.oRequestor).expects("request")
12794
12927
  .withExactArgs("GET", "Employees?$filter=" + oFixture.sFilter,
12795
12928
  sinon.match.same(oGroupLock))
@@ -12833,6 +12966,7 @@ sap.ui.define([
12833
12966
  QUnit.test("refreshKeptElements w/o kept-alive element", function (assert) {
12834
12967
  var oCache = _Cache.create(this.oRequestor, "Employees", {});
12835
12968
 
12969
+ this.mock(oCache).expects("getTypes").never();
12836
12970
  this.mock(oCache).expects("checkSharedRequest").withExactArgs();
12837
12971
  this.mock(oCache.oRequestor).expects("request").never();
12838
12972