@openui5/sap.ui.core 1.124.2 → 1.126.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 (734) hide show
  1. package/.eslintrc.json +4 -1
  2. package/.reuse/dep5 +9 -4
  3. package/THIRDPARTY.txt +13 -6
  4. package/package.json +1 -1
  5. package/src/jquery.sap.global.js +1 -1
  6. package/src/jquery.sap.properties.js +1 -1
  7. package/src/jquery.sap.resources.js +1 -1
  8. package/src/jquery.sap.script.js +1 -1
  9. package/src/jquery.sap.storage.js +3 -3
  10. package/src/sap/base/Event.js +1 -1
  11. package/src/sap/base/Eventing.js +1 -1
  12. package/src/sap/base/Log.js +0 -16
  13. package/src/sap/base/config.js +1 -1
  14. package/src/sap/base/i18n/LanguageTag.js +1 -1
  15. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  16. package/src/sap/base/util/ObjectPath.js +6 -6
  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 +35 -10
  59. package/src/sap/ui/Global.js +6 -6
  60. package/src/sap/ui/base/Event.js +1 -1
  61. package/src/sap/ui/base/EventProvider.js +1 -1
  62. package/src/sap/ui/base/Interface.js +1 -1
  63. package/src/sap/ui/base/ManagedObject.js +16 -1
  64. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  65. package/src/sap/ui/base/Metadata.js +1 -1
  66. package/src/sap/ui/base/Object.js +1 -1
  67. package/src/sap/ui/base/ObjectPool.js +1 -1
  68. package/src/sap/ui/core/.library +3 -3
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/Component.js +22 -5
  71. package/src/sap/ui/core/ComponentContainer.js +1 -1
  72. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  73. package/src/sap/ui/core/ComponentSupport.js +1 -1
  74. package/src/sap/ui/core/Configuration.js +1 -1
  75. package/src/sap/ui/core/Control.js +1 -1
  76. package/src/sap/ui/core/Core.js +31 -29
  77. package/src/sap/ui/core/CustomData.js +1 -1
  78. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  79. package/src/sap/ui/core/Element.js +1 -1
  80. package/src/sap/ui/core/ElementMetadata.js +4 -3
  81. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  82. package/src/sap/ui/core/EventBus.js +1 -1
  83. package/src/sap/ui/core/ExtensionPoint.js +23 -9
  84. package/src/sap/ui/core/Fragment.js +15 -1
  85. package/src/sap/ui/core/HTML.js +1 -1
  86. package/src/sap/ui/core/History.js +1 -1
  87. package/src/sap/ui/core/Icon.js +84 -50
  88. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  89. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  90. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  91. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  92. package/src/sap/ui/core/InvisibleText.js +1 -1
  93. package/src/sap/ui/core/Item.js +1 -1
  94. package/src/sap/ui/core/LabelEnablement.js +66 -1
  95. package/src/sap/ui/core/LayoutData.js +1 -1
  96. package/src/sap/ui/core/Lib.js +2 -2
  97. package/src/sap/ui/core/ListItem.js +1 -1
  98. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  99. package/src/sap/ui/core/Locale.js +1 -1
  100. package/src/sap/ui/core/LocaleData.js +148 -102
  101. package/src/sap/ui/core/Manifest.js +1 -1
  102. package/src/sap/ui/core/Message.js +1 -1
  103. package/src/sap/ui/core/RenderManager.js +1 -1
  104. package/src/sap/ui/core/Renderer.js +1 -1
  105. package/src/sap/ui/core/ResizeHandler.js +1 -1
  106. package/src/sap/ui/core/ScrollBar.js +1 -1
  107. package/src/sap/ui/core/SeparatorItem.js +1 -1
  108. package/src/sap/ui/core/Title.js +1 -1
  109. package/src/sap/ui/core/TooltipBase.js +1 -1
  110. package/src/sap/ui/core/UIArea.js +2 -2
  111. package/src/sap/ui/core/UIComponent.js +23 -16
  112. package/src/sap/ui/core/UIComponentMetadata.js +1 -1
  113. package/src/sap/ui/core/ValueStateSupport.js +1 -1
  114. package/src/sap/ui/core/VariantLayoutData.js +1 -1
  115. package/src/sap/ui/core/XMLComposite.js +1 -1
  116. package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
  117. package/src/sap/ui/core/XMLTemplateProcessor.js +110 -74
  118. package/src/sap/ui/core/boot.js +1 -6
  119. package/src/sap/ui/core/cldr/zh_TW.json +20 -20
  120. package/src/sap/ui/core/date/UI5Date.js +1 -1
  121. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  122. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  123. package/src/sap/ui/core/dnd/DragAndDrop.js +180 -33
  124. package/src/sap/ui/core/dnd/DragDropBase.js +13 -2
  125. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  126. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  127. package/src/sap/ui/core/dnd/DropInfo.js +6 -3
  128. package/src/sap/ui/core/fieldhelp/FieldHelp.js +389 -0
  129. package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +62 -0
  130. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  131. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  132. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  133. package/src/sap/ui/core/hyphenation/Hyphenation.js +2 -1
  134. package/src/sap/ui/core/library.js +49 -9
  135. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  136. package/src/sap/ui/core/message/Message.js +1 -1
  137. package/src/sap/ui/core/message/MessageManager.js +1 -1
  138. package/src/sap/ui/core/message/MessageParser.js +1 -1
  139. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  140. package/src/sap/ui/core/mvc/Controller.js +77 -77
  141. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  142. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  143. package/src/sap/ui/core/mvc/JSView.js +1 -1
  144. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  145. package/src/sap/ui/core/mvc/View.js +10 -2
  146. package/src/sap/ui/core/mvc/XMLProcessingMode.js +4 -1
  147. package/src/sap/ui/core/mvc/XMLView.js +33 -5
  148. package/src/sap/ui/core/mvc/XMLViewRenderer.js +40 -7
  149. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  150. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  151. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  152. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  153. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  154. package/src/sap/ui/core/routing/async/TargetCache.js +12 -1
  155. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  156. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  157. package/src/sap/ui/core/service/Service.js +1 -1
  158. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  159. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  160. package/src/sap/ui/core/support/Plugin.js +1 -1
  161. package/src/sap/ui/core/support/Support.js +1 -1
  162. package/src/sap/ui/core/support/bootstrapFallback.js +1 -1
  163. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  164. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  165. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  167. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  168. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  169. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  170. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  171. package/src/sap/ui/core/themes/sap_hcb/base_BlindLayer.less +37 -0
  172. package/src/sap/ui/core/themes/sap_hcb/base_BrowserScrollbar.less +36 -0
  173. package/src/sap/ui/core/themes/sap_hcb/base_BusyIndicator.less +19 -0
  174. package/src/sap/ui/core/themes/sap_hcb/base_CommandShortcutHints.less +20 -0
  175. package/src/sap/ui/core/themes/sap_hcb/base_DragAndDrop.less +76 -0
  176. package/src/sap/ui/core/themes/sap_hcb/base_Icon.less +144 -0
  177. package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +292 -0
  178. package/src/sap/ui/core/themes/sap_hcb/base_SAP-icons.less +10 -0
  179. package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +20 -0
  180. package/src/sap/ui/core/themes/sap_hcb/base_Shadow.less +3 -0
  181. package/src/sap/ui/core/themes/sap_hcb/base_TechnicalInfo.less +157 -0
  182. package/src/sap/ui/core/themes/sap_hcb/base_View.less +12 -0
  183. package/src/sap/ui/core/themes/sap_hcb/base_media.less +36 -0
  184. package/src/sap/ui/core/themes/sap_hcb/base_parameterClasses.less +83 -0
  185. package/src/sap/ui/core/themes/sap_hcb/base_shared.less +340 -0
  186. package/src/sap/ui/core/themes/sap_hcb/library.source.less +27 -1
  187. package/src/sap/ui/core/theming/Parameters.js +66 -6
  188. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  189. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  190. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  191. package/src/sap/ui/core/tmpl/Template.js +1 -1
  192. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  193. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  194. package/src/sap/ui/core/util/Export.js +1 -1
  195. package/src/sap/ui/core/util/ExportCell.js +1 -1
  196. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  197. package/src/sap/ui/core/util/ExportRow.js +1 -1
  198. package/src/sap/ui/core/util/ExportType.js +1 -1
  199. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  200. package/src/sap/ui/core/util/File.js +1 -1
  201. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  202. package/src/sap/ui/core/util/MockServer.js +1 -1
  203. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  204. package/src/sap/ui/core/util/XMLPreprocessor.js +14 -15
  205. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  206. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  207. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  208. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  209. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  210. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  211. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  212. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  213. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  214. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  215. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  216. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  217. package/src/sap/ui/debug/ControlTree.js +1 -1
  218. package/src/sap/ui/debug/DebugEnv.js +1 -1
  219. package/src/sap/ui/debug/PropertyList.js +1 -1
  220. package/src/sap/ui/dom/jquery/control.js +6 -3
  221. package/src/sap/ui/model/Binding.js +38 -0
  222. package/src/sap/ui/model/ClientModel.js +1 -1
  223. package/src/sap/ui/model/CompositeDataState.js +1 -1
  224. package/src/sap/ui/model/CompositeType.js +1 -1
  225. package/src/sap/ui/model/DataState.js +1 -1
  226. package/src/sap/ui/model/ManagedObjectBindingSupport.js +5 -0
  227. package/src/sap/ui/model/MetaModel.js +1 -1
  228. package/src/sap/ui/model/Model.js +1 -1
  229. package/src/sap/ui/model/SelectionModel.js +1 -1
  230. package/src/sap/ui/model/SimpleType.js +1 -1
  231. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  232. package/src/sap/ui/model/Type.js +1 -1
  233. package/src/sap/ui/model/analytics/AnalyticalBinding.js +8 -12
  234. package/src/sap/ui/model/base/ManagedObjectModel.js +12 -2
  235. package/src/sap/ui/model/json/JSONModel.js +6 -5
  236. package/src/sap/ui/model/message/MessageModel.js +1 -1
  237. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  238. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  239. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  240. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  241. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  242. package/src/sap/ui/model/odata/ODataUtils.js +22 -14
  243. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  244. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  245. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  246. package/src/sap/ui/model/odata/type/Date.js +1 -1
  247. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  248. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  249. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  250. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  251. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  252. package/src/sap/ui/model/odata/type/Double.js +1 -1
  253. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  254. package/src/sap/ui/model/odata/type/Int.js +1 -1
  255. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  256. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  257. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  258. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  259. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  260. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  261. package/src/sap/ui/model/odata/type/Single.js +1 -1
  262. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  263. package/src/sap/ui/model/odata/type/String.js +1 -1
  264. package/src/sap/ui/model/odata/type/Time.js +1 -1
  265. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  266. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  267. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  268. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  269. package/src/sap/ui/model/odata/v2/ODataModel.js +50 -6
  270. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  271. package/src/sap/ui/model/odata/v4/Context.js +127 -46
  272. package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
  273. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +72 -73
  274. package/src/sap/ui/model/odata/v4/ODataListBinding.js +406 -250
  275. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +49 -47
  276. package/src/sap/ui/model/odata/v4/ODataModel.js +271 -217
  277. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +205 -205
  278. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +11 -10
  279. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +232 -61
  280. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +53 -9
  281. package/src/sap/ui/model/odata/v4/lib/_Cache.js +53 -59
  282. package/src/sap/ui/model/odata/v4/lib/_Helper.js +140 -80
  283. package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -3
  284. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +98 -90
  285. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +1 -1
  286. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +22 -22
  287. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +63 -63
  288. package/src/sap/ui/model/resource/ResourceModel.js +7 -2
  289. package/src/sap/ui/model/type/Boolean.js +1 -1
  290. package/src/sap/ui/model/type/Currency.js +1 -1
  291. package/src/sap/ui/model/type/Date.js +1 -1
  292. package/src/sap/ui/model/type/DateInterval.js +1 -1
  293. package/src/sap/ui/model/type/DateTime.js +1 -1
  294. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  295. package/src/sap/ui/model/type/FileSize.js +1 -1
  296. package/src/sap/ui/model/type/Float.js +1 -1
  297. package/src/sap/ui/model/type/Integer.js +1 -1
  298. package/src/sap/ui/model/type/String.js +1 -1
  299. package/src/sap/ui/model/type/Time.js +1 -1
  300. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  301. package/src/sap/ui/model/type/Unit.js +1 -1
  302. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  303. package/src/sap/ui/performance/trace/FESR.js +1 -1
  304. package/src/sap/ui/qunit/qunit-coverage-istanbul.js +1 -1
  305. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  306. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  307. package/src/sap/ui/test/OpaPlugin.js +36 -12
  308. package/src/sap/ui/test/generic/TestBase.js +1 -1
  309. package/src/sap/ui/test/starter/_utils.js +18 -3
  310. package/src/sap/ui/util/Storage.js +1 -1
  311. package/src/ui5loader-autoconfig.js +0 -25
  312. package/test/sap/ui/core/BindableResponseHeaders.html +5 -6
  313. package/test/sap/ui/core/ComponentCleanup.html +46 -46
  314. package/test/sap/ui/core/ComponentManifestFirst.html +26 -20
  315. package/test/sap/ui/core/ContextMenuSupport.html +9 -10
  316. package/test/sap/ui/core/DesigntimeOverview.html +1 -1
  317. package/test/sap/ui/core/EventBroadcaster.html +2 -2
  318. package/test/sap/ui/core/FieldGroup.html +70 -61
  319. package/test/sap/ui/core/GenericEventBinding.html +26 -23
  320. package/test/sap/ui/core/HTMLControl.html +46 -38
  321. package/test/sap/ui/core/HTMLSanitizer.html +70 -45
  322. package/test/sap/ui/core/IntervalTrigger.html +22 -21
  323. package/test/sap/ui/core/InvisibleControls.html +72 -72
  324. package/test/sap/ui/core/InvisibleText.html +2 -2
  325. package/test/sap/ui/core/LRUPersistentCache.html +19 -18
  326. package/test/sap/ui/core/LabelEnablement.html +18 -29
  327. package/test/sap/ui/core/Localization.html +40 -65
  328. package/test/sap/ui/core/Localization_HeapUsage.html +11 -12
  329. package/test/sap/ui/core/ManagedObjectModel.html +6 -7
  330. package/test/sap/ui/core/ODataAnnotationsPerformance.html +592 -602
  331. package/test/sap/ui/core/ODataV2CanonicalRequests.html +16 -13
  332. package/test/sap/ui/core/ODataV2Messages.html +15 -12
  333. package/test/sap/ui/core/ODataV2MessagesPerf.html +156 -132
  334. package/test/sap/ui/core/Popup.html +18 -14
  335. package/test/sap/ui/core/PopupWithUserSelection.html +4 -4
  336. package/test/sap/ui/core/StashedControlSupport.html +1 -1
  337. package/test/sap/ui/core/ThemeParameters.html +32 -20
  338. package/test/sap/ui/core/ValidateURL.html +109 -75
  339. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
  340. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.html +2 -1
  341. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +2 -12
  342. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Component.js +1 -4
  343. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Detail.controller.js +0 -1
  344. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Main.controller.js +0 -1
  345. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Opa.qunit.html +0 -1
  346. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/extension/Component.js +1 -5
  347. package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/manifest.json +2 -10
  348. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/Component.js +4 -1
  349. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/manifest.json +37 -0
  350. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/Component.js +5 -1
  351. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/manifest.json +42 -0
  352. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Component.js +6 -3
  353. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Main.view.xml +4 -1
  354. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/manifest.json +49 -0
  355. package/test/sap/ui/core/demokit/sample/common/Controller.js +2 -2
  356. package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -2
  357. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/Component.js +1 -0
  362. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTime/manifest.json +1 -2
  363. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/Component.js +1 -0
  364. package/test/sap/ui/core/demokit/sample/odata/types/v2/DateTimeOffset/manifest.json +1 -2
  365. package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/Component.js +1 -0
  366. package/test/sap/ui/core/demokit/sample/odata/types/v2/Time/manifest.json +1 -2
  367. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/Component.js +1 -0
  368. package/test/sap/ui/core/demokit/sample/odata/types/v4/Date/manifest.json +1 -2
  369. package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/Component.js +1 -0
  370. package/test/sap/ui/core/demokit/sample/odata/types/v4/DateTimeOffset/manifest.json +1 -2
  371. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/Component.js +1 -0
  372. package/test/sap/ui/core/demokit/sample/odata/types/v4/TimeOfDay/manifest.json +1 -2
  373. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Component.js +1 -0
  374. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +35 -31
  375. package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/manifest.json +1 -10
  376. package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/Component.js +1 -0
  377. package/test/sap/ui/core/demokit/sample/odata/v4/ConsumeV2Service/manifest.json +2 -11
  378. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Component.js +1 -0
  379. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +71 -68
  380. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/Opa.qunit.html +0 -1
  381. package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/manifest.json +3 -11
  382. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Component.js +1 -0
  383. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/Opa.qunit.html +0 -1
  384. package/test/sap/ui/core/demokit/sample/odata/v4/DeepCreate/manifest.json +7 -16
  385. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Component.js +1 -0
  386. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Main.controller.js +3 -3
  387. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/Opa.qunit.html +0 -1
  388. package/test/sap/ui/core/demokit/sample/odata/v4/Draft/manifest.json +1 -10
  389. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Component.js +1 -0
  390. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/FieldGroups.view.xml +0 -1
  391. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/Opa.qunit.html +0 -1
  392. package/test/sap/ui/core/demokit/sample/odata/v4/FieldGroups/manifest.json +3 -11
  393. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/Component.js +1 -0
  394. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +46 -43
  395. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.view.xml +12 -10
  396. package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/manifest.json +3 -11
  397. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Component.js +1 -0
  398. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Main.controller.js +21 -18
  399. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/Opa.qunit.html +0 -1
  400. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/manifest.json +4 -7
  401. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/Component.js +1 -0
  402. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/SandboxModel.js +6 -6
  403. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/manifest.json +1 -10
  404. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Component.js +1 -0
  405. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +130 -38
  406. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +35 -43
  407. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +1 -10
  408. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Component.js +1 -0
  409. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +25 -22
  410. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.html +0 -1
  411. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.OptimisticBatch.qunit.js +5 -4
  412. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Opa.qunit.html +0 -1
  413. package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/manifest.json +3 -7
  414. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Component.js +1 -0
  415. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/Opa.qunit.html +0 -1
  416. package/test/sap/ui/core/demokit/sample/odata/v4/ListBinding/manifest.json +3 -11
  417. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Component.js +1 -0
  418. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Opa.qunit.html +0 -1
  419. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/manifest.json +2 -10
  420. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Component.js +1 -0
  421. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +60 -57
  422. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Opa.qunit.html +0 -1
  423. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/manifest.json +4 -6
  424. package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/Component.js +1 -0
  425. package/test/sap/ui/core/demokit/sample/odata/v4/MusicArtists/manifest.json +3 -11
  426. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Component.js +1 -0
  427. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Main.view.xml +0 -1
  428. package/test/sap/ui/core/demokit/sample/odata/v4/Products/Opa.qunit.html +0 -1
  429. package/test/sap/ui/core/demokit/sample/odata/v4/Products/manifest.json +3 -10
  430. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Component.js +1 -0
  431. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/Opa.qunit.html +0 -1
  432. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +194 -90
  433. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +102 -58
  434. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +135 -39
  435. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/data/metadata.xml +14 -0
  436. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/manifest.json +1 -10
  437. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +4 -3
  438. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Component.js +1 -0
  439. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/Opa.qunit.html +0 -1
  440. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V2/manifest.json +2 -11
  441. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Component.js +1 -0
  442. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/Opa.qunit.html +0 -1
  443. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrderTP100_V4/manifest.json +2 -11
  444. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +19 -2
  445. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Opa.qunit.html +0 -1
  446. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/manifest.json +3 -10
  447. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -8
  448. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Component.js +1 -0
  449. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -2
  450. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Opa.qunit.html +0 -1
  451. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/manifest.json +6 -5
  452. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Component.js +1 -0
  453. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Opa.qunit.html +0 -1
  454. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/manifest.json +2 -10
  455. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Component.js +1 -0
  456. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Opa.qunit.html +0 -1
  457. package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/manifest.json +3 -10
  458. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/Opa.qunit.html +0 -1
  459. package/test/sap/ui/core/demokit/sample/odata/v4/Sticky/manifest.json +3 -11
  460. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  461. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  462. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  463. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  464. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  465. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  466. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  467. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  468. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  469. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  470. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  471. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  472. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  473. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  474. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  475. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  476. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  477. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  478. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  479. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  480. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  481. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  482. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  483. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  484. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  485. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  486. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  487. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  488. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  489. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  490. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  491. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  492. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  493. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  494. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  495. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  496. package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +1 -0
  497. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  498. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/Component.js +1 -0
  499. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/index.html +0 -1
  500. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +4 -4
  501. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/manifest.json +2 -13
  502. package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +1 -0
  503. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  504. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/Component.js +1 -0
  505. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/index.html +0 -1
  506. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +4 -4
  507. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/manifest.json +2 -13
  508. package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +1 -0
  509. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  510. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/Component.js +1 -0
  511. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/index.html +0 -1
  512. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +4 -4
  513. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/manifest.json +2 -13
  514. package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +1 -0
  515. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  516. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/Component.js +1 -0
  517. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/index.html +0 -1
  518. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +4 -4
  519. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/manifest.json +2 -13
  520. package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +1 -0
  521. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  522. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/Component.js +1 -0
  523. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/index.html +0 -1
  524. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +4 -4
  525. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/manifest.json +2 -13
  526. package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +1 -0
  527. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  528. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/Component.js +1 -0
  529. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/index.html +0 -1
  530. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +4 -4
  531. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/manifest.json +2 -13
  532. package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +1 -0
  533. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  534. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/Component.js +1 -0
  535. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/index.html +0 -1
  536. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +4 -4
  537. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/manifest.json +2 -13
  538. package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +1 -0
  539. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  540. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/Component.js +1 -0
  541. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/index.html +0 -1
  542. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +4 -4
  543. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/manifest.json +2 -13
  544. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/test/integration/opaTests.qunit.html +0 -1
  545. package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +1 -0
  546. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  547. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/Component.js +1 -0
  548. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/index.html +0 -1
  549. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +4 -4
  550. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/manifest.json +2 -11
  551. package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +1 -0
  552. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  553. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/Component.js +1 -0
  554. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/index.html +0 -1
  555. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +4 -4
  556. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/manifest.json +2 -11
  557. package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +1 -0
  558. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  559. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/Component.js +1 -0
  560. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/index.html +0 -1
  561. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +4 -4
  562. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/manifest.json +2 -11
  563. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/test/integration/opaTests.qunit.html +0 -1
  564. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  565. package/test/sap/ui/core/getComputedStyle.html +2 -1
  566. package/test/sap/ui/core/getComputedStyleFF.html +1 -1
  567. package/test/sap/ui/core/internal/samples/client/MusicCollection/Component.js +5 -8
  568. package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.controller.js +6 -2
  569. package/test/sap/ui/core/internal/samples/client/MusicCollection/Main.view.xml +7 -3
  570. package/test/sap/ui/core/internal/samples/client/MusicCollection/index.html +1 -3
  571. package/test/sap/ui/core/internal/samples/client/MusicCollection/manifest.json +1 -13
  572. package/test/sap/ui/core/internal/samples/odata/twoFields/Component.js +3 -45
  573. package/test/sap/ui/core/internal/samples/odata/twoFields/Main.controller.js +37 -1
  574. package/test/sap/ui/core/internal/samples/odata/twoFields/Main.view.xml +5 -5
  575. package/test/sap/ui/core/internal/samples/odata/twoFields/Opa.qunit.html +1 -3
  576. package/test/sap/ui/core/internal/samples/odata/twoFields/index.html +1 -3
  577. package/test/sap/ui/core/internal/samples/odata/twoFields/manifest.json +1 -11
  578. package/test/sap/ui/core/internal/samples/odata/v2/Products/Component.js +3 -22
  579. package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.controller.js +16 -22
  580. package/test/sap/ui/core/internal/samples/odata/v2/Products/Main.view.xml +3 -2
  581. package/test/sap/ui/core/internal/samples/odata/v2/Products/SandboxModel.js +1 -1
  582. package/test/sap/ui/core/internal/samples/odata/v2/Products/index.html +1 -3
  583. package/test/sap/ui/core/internal/samples/odata/v2/Products/manifest.json +2 -13
  584. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +1 -0
  585. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.controller.js +49 -41
  586. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +6 -4
  587. package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/manifest.json +3 -12
  588. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Component.js +1 -0
  589. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.controller.js +2 -2
  590. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +7 -6
  591. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/index.html +1 -3
  592. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/manifest.json +1 -11
  593. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +96 -92
  594. package/test/sap/ui/core/qunit/Fragment.qunit.js +20 -20
  595. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +4 -4
  596. package/test/sap/ui/core/qunit/Icon.qunit.js +217 -1
  597. package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +24 -0
  598. package/test/sap/ui/core/qunit/RenderManager.qunit.js +18 -5
  599. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +15 -18
  600. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +80 -0
  601. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -0
  602. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +6 -14
  603. package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +2 -1
  604. package/test/sap/ui/core/qunit/base/Config.qunit.js +117 -114
  605. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +3 -3
  606. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +98 -95
  607. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +20 -45
  608. package/test/sap/ui/core/qunit/base/Config_global.qunit.html +2 -2
  609. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -2
  610. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +2 -2
  611. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +17 -16
  612. package/test/sap/ui/core/qunit/base/Config_url.qunit.html +2 -2
  613. package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.beforeBootstrap.js +6 -0
  614. package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.qunit.js +4 -4
  615. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +30 -10
  616. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +5 -1
  617. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +2 -2
  618. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +36 -1
  619. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +475 -290
  620. package/test/sap/ui/core/qunit/component/Models.qunit.js +0 -70
  621. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +86 -0
  622. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +86 -1
  623. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Cell_Found.fragment.xml +5 -0
  624. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EP_In_Product_Table_Column.fragment.xml +5 -0
  625. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/EPinNestedView.view.xml +51 -0
  626. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/ExtensionPointProvider.js +27 -4
  627. package/test/sap/ui/core/qunit/component/testdata/customizing/customer/ext/Main.view.xml +5 -0
  628. package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Main.view.xml +0 -1
  629. package/test/sap/ui/core/qunit/component/testdata/customizing/sap/Sub2.view.xml +1 -3
  630. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +231 -5
  631. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +14 -2
  632. package/test/sap/ui/core/qunit/fieldhelp/FieldHelp.qunit.js +1146 -0
  633. package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +55 -0
  634. package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.html +12 -0
  635. package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.js +50 -0
  636. package/test/sap/ui/core/qunit/generic/ControlRenderer.qunit.js +4 -1
  637. package/test/sap/ui/core/qunit/generic/legacy/ControlRenderer.qunit.js +4 -0
  638. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
  639. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +6 -0
  640. package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +1 -1
  641. package/test/sap/ui/core/qunit/jquery-mobile-custom.beforeBootstrap.js +11 -0
  642. package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
  643. package/test/sap/ui/core/qunit/loader/amd/base_tag/_launchTest.js +2 -4
  644. package/test/sap/ui/core/qunit/loader/amd/config_paths/_launchTest.js +2 -4
  645. package/test/sap/ui/core/qunit/loader/amd/config_paths_relative/_launchTest.js +2 -4
  646. package/test/sap/ui/core/qunit/loader/amdAPIs.qunit.js +3 -0
  647. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -6
  648. package/test/sap/ui/core/qunit/loader/config.qunit.js +41 -2
  649. package/test/sap/ui/core/qunit/model/Binding.qunit.js +13 -0
  650. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +2 -2
  651. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +8 -6
  652. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +7 -7
  653. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +131 -22
  654. package/test/sap/ui/core/qunit/mvc/testdata/Async.view.xml +1 -2
  655. package/test/sap/ui/core/qunit/mvc/testdata/asyncHooks.view.xml +1 -3
  656. package/test/sap/ui/core/qunit/mvc/testdata/cache.view.xml +1 -1
  657. package/test/sap/ui/core/qunit/mvc/testdata/legacy/test.view.xml +32 -0
  658. package/test/sap/ui/core/qunit/mvc/testdata/test.view.xml +2 -15
  659. package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +9 -4
  660. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -12
  661. package/test/sap/ui/core/qunit/odata/type/testsuite.odata.types.qunit.js +1 -0
  662. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +285 -12
  663. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +55 -6
  664. package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +18 -0
  665. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +118 -61
  666. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +17 -17
  667. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +559 -74
  668. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +42 -42
  669. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2695 -97
  670. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +125 -12
  671. package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +7 -6
  672. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +12 -13
  673. package/test/sap/ui/core/qunit/odata/v4/_AnnotationHelperExpression.qunit.js +3 -3
  674. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +796 -110
  675. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +102 -2
  676. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +48 -57
  677. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +141 -33
  678. package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +2 -2
  679. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +175 -69
  680. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +3 -3
  681. package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -1
  682. package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +17 -14
  683. package/test/sap/ui/core/qunit/routing/async/Views.qunit.js +3 -0
  684. package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +6 -1
  685. package/test/sap/ui/core/qunit/test/starter/find/main.js +6 -4
  686. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/library.css +2 -0
  687. package/test/sap/ui/core/qunit/testdata/routing/HistoryIFrame.html +2 -1
  688. package/test/sap/ui/core/qunit/testsuite.qunit.js +1 -0
  689. package/test/sap/ui/core/qunit/testsuites/testsuite.browser.runtime.qunit.js +5 -1
  690. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -1
  691. package/test/sap/ui/core/qunit/ui/Device.qunit.js +92 -25
  692. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectMetadata.qunit.js +3 -0
  693. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +47 -1
  694. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +20 -20
  695. package/test/sap/ui/core/relnotes/changes-1.124.json +1 -66
  696. package/test/sap/ui/core/relnotes/changes-1.125.json +32 -0
  697. package/test/sap/ui/core/relnotes/changes-1.126.json +47 -0
  698. package/test/sap/ui/core/samples/ResponsiveDemo.html +97 -103
  699. package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
  700. package/test/sap/ui/core/samples/draganddrop/DragAndDrop.html +2 -2
  701. package/test/sap/ui/core/samples/mvc/Product.html +1 -7
  702. package/test/sap/ui/core/samples/mvc/ViewPreprocessor.html +20 -12
  703. package/test/sap/ui/core/samples/mvc/XMLView.html +77 -24
  704. package/test/sap/ui/core/samples/mvc/XMLViewAsync.html +13 -19
  705. package/test/sap/ui/core/samples/mvc/controller/Async.controller.js +0 -1
  706. package/test/sap/ui/core/samples/mvc/controller/Product.controller.js +0 -1
  707. package/test/sap/ui/core/samples/mvc/views/Async.view.xml +16 -57
  708. package/test/sap/ui/core/samples/mvc/views/Dummy.fragment.xml +2 -2
  709. package/test/sap/ui/core/samples/mvc/views/Dummy.view.xml +2 -2
  710. package/test/sap/ui/core/samples/mvc/views/Product.view.xml +16 -57
  711. package/test/sap/ui/core/util/PasteHelper.html +148 -147
  712. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  713. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  714. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  715. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  716. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  717. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
  718. package/test/testsuite/js/settings.js +5 -4
  719. package/test/testsuite/styles/main.css +5 -0
  720. package/test/sap/ui/core/ResourceRoots.html +0 -28
  721. package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/component.json +0 -17
  722. package/test/sap/ui/core/demokit/sample/ViewTemplate/types/component.json +0 -18
  723. package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/component.json +0 -30
  724. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/AutoExpand.view.xml +0 -52
  725. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Component.js +0 -30
  726. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/Sandbox.js +0 -51
  727. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L0_top5.json +0 -32
  728. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_A_skip8.json +0 -138
  729. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_B.json +0 -17
  730. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_C.json +0 -17
  731. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/Items_L1_top8.json +0 -93
  732. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/data/metadata.xml +0 -2322
  733. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/i18n/i18n.properties +0 -3
  734. package/test/sap/ui/core/demokit/sample/odata/v2/AutoExpand/manifest.json +0 -69
@@ -52,10 +52,9 @@ sap.ui.define([
52
52
  afterEach: destroyComponentAndContainer
53
53
  });
54
54
 
55
- QUnit.test("simple resolution", async function(assert) {
56
- assert.expect(31);
55
+ QUnit.test("simple resolution", function(assert) {
56
+ assert.expect(32);
57
57
  var oView = oComponent.getRootControl();
58
- await oView.loaded();
59
58
 
60
59
  assert.ok(ExtensionPoint._fnExtensionProvider, "ExtensionPointProvider added");
61
60
 
@@ -75,46 +74,45 @@ sap.ui.define([
75
74
 
76
75
  // view content on top level
77
76
  var aViewContent = oView.getContent();
78
- assert.strictEqual(aViewContent.length, 33, "Correct # of controls inside View content aggregation");
79
-
80
- assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
81
- assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
82
- assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
83
- assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
84
- assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
85
- assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
86
- assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
87
- assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
88
- assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
89
- assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
90
- assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
91
- assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
92
- assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
93
- assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
94
- assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
95
- assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
96
- assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
97
- assert.strictEqual(aViewContent[32].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
77
+ assert.strictEqual(aViewContent.length, 34, "Correct # of controls inside View content aggregation");
78
+
79
+ assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--Panel_With_Nested_View", "Main.view content is in correct order"); // Main
80
+ assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
81
+ assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
82
+ assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
83
+ assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
84
+ assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
85
+ assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
86
+ assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
87
+ assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
88
+ assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
89
+ assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
90
+ assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
91
+ assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
92
+ assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
93
+ assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
94
+ assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
95
+ assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
96
+ assert.strictEqual(aViewContent[32].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
97
+ assert.strictEqual(aViewContent[33].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
98
98
 
99
99
  var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
100
100
  assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
101
101
 
102
- // Wait for nested View and its EPs (id: EPinBinding_in_nestedView, s.a.) in nested View should be available
103
- const oNestedView = aViewContent[32];
104
- await oNestedView.loaded();
102
+ const oNestedView = oView.byId("EPinBinding_in_nestedView");
103
+
105
104
  assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
106
105
  assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
107
106
  });
108
107
 
109
- QUnit.test("ExtensionPoint on top-level of XMLView", async function(assert) {
110
- assert.expect(51);
108
+ QUnit.test("ExtensionPoint on top-level of XMLView", function(assert) {
109
+ assert.expect(52);
111
110
  var oView = oComponent.getRootControl();
112
- await oView.loaded();
113
111
 
114
112
  assert.ok(ExtensionPoint._fnExtensionProvider, "ExtensionPointProvider added");
115
113
 
116
114
  var aViewContent = oView.getContent();
117
- assert.strictEqual(aViewContent.length, 33, "Correct # of controls inside View content aggregation");
115
+ assert.strictEqual(aViewContent.length, 34, "Correct # of controls inside View content aggregation");
118
116
 
119
117
  // View Content Aggregation
120
118
  assert.strictEqual(aViewContent[0].getId(), "ExtComponent---mainView--zero--defaultButton", "EP0 content is in correct order"); // EP0
@@ -132,24 +130,27 @@ sap.ui.define([
132
130
  assert.strictEqual(aViewContent[12].getId(), "ExtComponent---mainView--tn1--customButton2", "tn1 Fragment is in correct order"); // tn1 Fragment customButton2
133
131
  assert.strictEqual(aViewContent[13].getId(), "ExtComponent---mainView--myTable", "Table is in correct order"); // myTable
134
132
  assert.strictEqual(aViewContent[14].getId(), "ExtComponent---mainView--myListItem", "ColumnListItem is in correct order"); // myListItem
135
- assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
136
- assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
137
- assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
138
- assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
139
- assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
140
- assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
141
- assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
142
- assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
143
- assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
144
- assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
145
- assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
146
- assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
147
- assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
148
- assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
149
- assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
150
- assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
151
- assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
152
- assert.strictEqual(aViewContent[32].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
133
+
134
+ assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--Panel_With_Nested_View", "ColumnListItem is in correct order"); // myListItem
135
+
136
+ assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
137
+ assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
138
+ assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
139
+ assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
140
+ assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
141
+ assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
142
+ assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
143
+ assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
144
+ assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
145
+ assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
146
+ assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
147
+ assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
148
+ assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
149
+ assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
150
+ assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
151
+ assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
152
+ assert.strictEqual(aViewContent[32].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
153
+ assert.strictEqual(aViewContent[33].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
153
154
 
154
155
  var oTable = aViewContent[13];
155
156
  var aTableItems = oTable.getItems();
@@ -179,9 +180,7 @@ sap.ui.define([
179
180
  var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
180
181
  assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
181
182
 
182
- // Wait for nested View and its EPs (id: EPinBinding_in_nestedView, s.a.) in nested View should be available
183
- const oNestedView = aViewContent[32];
184
- await oNestedView.loaded();
183
+ const oNestedView = oView.byId("EPinBinding_in_nestedView");
185
184
  assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
186
185
  assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
187
186
  });
@@ -192,72 +191,73 @@ sap.ui.define([
192
191
  });
193
192
 
194
193
  QUnit.test("simple resolution", function(assert) {
195
- assert.expect(43);
194
+ assert.expect(44);
196
195
  var oView = oComponent.getRootControl();
197
- return oView.loaded().then(function() {
198
- assert.strictEqual(ExtensionPoint._fnExtensionProvider(), undefined, "ExtensionPointProvider exists, but no module returned");
199
196
 
200
- var aViewContent = oView.getContent();
201
- assert.strictEqual(aViewContent.length, 31, "Correct # of controls inside View content aggregation");
202
-
203
- assert.strictEqual(aViewContent[0].getId(), "ExtComponent---mainView--zero--defaultButton", "EP0 is not included: default content is in correct order"); // EP0
204
- assert.strictEqual(aViewContent[1].getId(), "ExtComponent---mainView--button0", "button0 is in correct order"); // Button0
205
- assert.strictEqual(aViewContent[2].getId(), "ExtComponent---mainView--Panel", "Panel is in correct order"); // Panel
206
- assert.strictEqual(aViewContent[3].getId(), "ExtComponent---mainView--button5", "button5 is in correct order"); // button5
207
- assert.strictEqual(aViewContent[4].getId(), "ExtComponent---mainView--button6", "button6 is in correct order"); // button6
208
- assert.strictEqual(aViewContent[5].getId(), "ExtComponent---mainView--nine_nine--defaultButton", "EP99 is not included: default content is in correct order"); // EP99 button0
209
- assert.strictEqual(aViewContent[6].getId(), "ExtComponent---mainView--shifty--customButton1", "shifty Fragment content is in correct order"); // shifty Fragment customButton1
210
- assert.strictEqual(aViewContent[7].getId(), "ExtComponent---mainView--shifty--customButton2", "shifty Fragment content is in correct order"); // shifty Fragment customButton2
211
- assert.strictEqual(aViewContent[8].getId(), "ExtComponent---mainView--button7", "button7 is in correct order"); // button7
212
- assert.strictEqual(aViewContent[9].getId(), "ExtComponent---mainView--tn1--customButton1", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton1
213
- assert.strictEqual(aViewContent[10].getId(), "ExtComponent---mainView--tn1--customButton2", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton2
214
- assert.strictEqual(aViewContent[11].getId(), "ExtComponent---mainView--myTable", "Table is in correct order"); // myTable
215
- assert.strictEqual(aViewContent[12].getId(), "ExtComponent---mainView--myListItem", "ColumnListItem is in correct order"); // myListItem
216
- assert.strictEqual(aViewContent[13].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
217
- assert.strictEqual(aViewContent[14].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
218
- assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
219
- assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
220
- assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
221
- assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
222
- assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
223
- assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
224
- assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
225
- assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
226
- assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
227
- assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
228
- assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
229
- assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
230
- assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
231
- assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
232
- assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
233
- assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
234
-
235
- // table
236
- var oTable = aViewContent[11];
237
- var aTableItems = oTable.getItems();
238
- assert.strictEqual(aTableItems.length, 4, "Number of Table Items is correct");
239
-
240
- // panel
241
- var oPanel = oView.byId("Panel");
242
- var aPanelContent = oPanel.getContent();
243
- assert.strictEqual(aPanelContent.length, 5, "ExtensionView content added to view");
244
-
245
- assert.strictEqual(aPanelContent[0].getId(), "ExtComponent---mainView--button1", "Main.view content is in correct order"); // Main
246
- assert.strictEqual(aPanelContent[1].getId(), "ExtComponent---mainView--button2", "Main.view content is in correct order"); // Main
247
- assert.strictEqual(aPanelContent[2].getId(), "ExtComponent---mainView--button3", "Main.view content is in correct order"); // Main
248
- assert.strictEqual(aPanelContent[3].getId(), "ExtComponent---mainView--defaultFragment--defaultButton", "EP2 default content is in correct order"); // EP2
249
- assert.strictEqual(aPanelContent[4].getId(), "ExtComponent---mainView--button4", "Main.view content is in correct order"); // Main
250
-
251
- var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
252
- assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
253
-
254
- // Default content for EPs in nested View should be available
255
- var oNestedView = aViewContent[30];
256
- return oNestedView.loaded().then(function() {
257
- assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
258
- assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
259
- });
260
- });
197
+ assert.strictEqual(ExtensionPoint._fnExtensionProvider(), undefined, "ExtensionPointProvider exists, but no module returned");
198
+
199
+ var aViewContent = oView.getContent();
200
+ assert.strictEqual(aViewContent.length, 32, "Correct # of controls inside View content aggregation");
201
+
202
+ assert.strictEqual(aViewContent[0].getId(), "ExtComponent---mainView--zero--defaultButton", "EP0 is not included: default content is in correct order"); // EP0
203
+ assert.strictEqual(aViewContent[1].getId(), "ExtComponent---mainView--button0", "button0 is in correct order"); // Button0
204
+ assert.strictEqual(aViewContent[2].getId(), "ExtComponent---mainView--Panel", "Panel is in correct order"); // Panel
205
+ assert.strictEqual(aViewContent[3].getId(), "ExtComponent---mainView--button5", "button5 is in correct order"); // button5
206
+ assert.strictEqual(aViewContent[4].getId(), "ExtComponent---mainView--button6", "button6 is in correct order"); // button6
207
+ assert.strictEqual(aViewContent[5].getId(), "ExtComponent---mainView--nine_nine--defaultButton", "EP99 is not included: default content is in correct order"); // EP99 button0
208
+ assert.strictEqual(aViewContent[6].getId(), "ExtComponent---mainView--shifty--customButton1", "shifty Fragment content is in correct order"); // shifty Fragment customButton1
209
+ assert.strictEqual(aViewContent[7].getId(), "ExtComponent---mainView--shifty--customButton2", "shifty Fragment content is in correct order"); // shifty Fragment customButton2
210
+ assert.strictEqual(aViewContent[8].getId(), "ExtComponent---mainView--button7", "button7 is in correct order"); // button7
211
+ assert.strictEqual(aViewContent[9].getId(), "ExtComponent---mainView--tn1--customButton1", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton1
212
+ assert.strictEqual(aViewContent[10].getId(), "ExtComponent---mainView--tn1--customButton2", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton2
213
+ assert.strictEqual(aViewContent[11].getId(), "ExtComponent---mainView--myTable", "Table is in correct order"); // myTable
214
+ assert.strictEqual(aViewContent[12].getId(), "ExtComponent---mainView--myListItem", "ColumnListItem is in correct order"); // myListItem
215
+
216
+ // panel with a nested view
217
+ assert.strictEqual(aViewContent[13].getId(), "ExtComponent---mainView--Panel_With_Nested_View", "ColumnListItem is in correct order"); // myListItem
218
+
219
+ assert.strictEqual(aViewContent[14].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
220
+ assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
221
+ assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
222
+ assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
223
+ assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
224
+ assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
225
+ assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
226
+ assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
227
+ assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
228
+ assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
229
+ assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
230
+ assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
231
+ assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
232
+ assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
233
+ assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
234
+ assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
235
+ assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
236
+ assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
237
+
238
+ // table
239
+ var oTable = aViewContent[11];
240
+ var aTableItems = oTable.getItems();
241
+ assert.strictEqual(aTableItems.length, 4, "Number of Table Items is correct");
242
+
243
+ // panel
244
+ var oPanel = oView.byId("Panel");
245
+ var aPanelContent = oPanel.getContent();
246
+ assert.strictEqual(aPanelContent.length, 5, "ExtensionView content added to view");
247
+
248
+ assert.strictEqual(aPanelContent[0].getId(), "ExtComponent---mainView--button1", "Main.view content is in correct order"); // Main
249
+ assert.strictEqual(aPanelContent[1].getId(), "ExtComponent---mainView--button2", "Main.view content is in correct order"); // Main
250
+ assert.strictEqual(aPanelContent[2].getId(), "ExtComponent---mainView--button3", "Main.view content is in correct order"); // Main
251
+ assert.strictEqual(aPanelContent[3].getId(), "ExtComponent---mainView--defaultFragment--defaultButton", "EP2 default content is in correct order"); // EP2
252
+ assert.strictEqual(aPanelContent[4].getId(), "ExtComponent---mainView--button4", "Main.view content is in correct order"); // Main
253
+
254
+ var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
255
+ assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
256
+
257
+ // Default content for EPs in nested View should be available
258
+ var oNestedView = oView.byId("EPinBinding_in_nestedView");
259
+ assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
260
+ assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
261
261
  });
262
262
 
263
263
  QUnit.module("ExtensionPoint w/o Provider (Async)", {
@@ -266,75 +266,77 @@ sap.ui.define([
266
266
  });
267
267
 
268
268
  QUnit.test("simple resolution", function(assert) {
269
- assert.expect(42);
269
+ assert.expect(43);
270
270
  var oView = oComponent.getRootControl();
271
- return oView.loaded().then(function() {
272
- assert.ok(!ExtensionPoint._fnExtensionProvider, "ExtensionPointProvider added");
273
271
 
274
- var aViewContent = oView.getContent();
275
- assert.strictEqual(aViewContent.length, 31, "Correct # of controls inside View content aggregation");
276
-
277
- assert.strictEqual(aViewContent[0].getId(), "ExtComponent---mainView--zero--defaultButton", "EP0 is not included: default content is in correct order"); // EP0
278
- assert.strictEqual(aViewContent[1].getId(), "ExtComponent---mainView--button0", "button0 is in correct order"); // Button0
279
- assert.strictEqual(aViewContent[2].getId(), "ExtComponent---mainView--Panel", "Panel is in correct order"); // Panel
280
- assert.strictEqual(aViewContent[3].getId(), "ExtComponent---mainView--button5", "button5 is in correct order"); // button5
281
- assert.strictEqual(aViewContent[4].getId(), "ExtComponent---mainView--button6", "button6 is in correct order"); // button6
282
- assert.strictEqual(aViewContent[5].getId(), "ExtComponent---mainView--nine_nine--defaultButton", "EP99 is not included: default content is in correct order"); // EP99 button0
283
- assert.strictEqual(aViewContent[6].getId(), "ExtComponent---mainView--shifty--customButton1", "shifty Fragment content is in correct order"); // shifty Fragment customButton1
284
- assert.strictEqual(aViewContent[7].getId(), "ExtComponent---mainView--shifty--customButton2", "shifty Fragment content is in correct order"); // shifty Fragment customButton2
285
- assert.strictEqual(aViewContent[8].getId(), "ExtComponent---mainView--button7", "button7 is in correct order"); // button7
286
- assert.strictEqual(aViewContent[9].getId(), "ExtComponent---mainView--tn1--customButton1", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton1
287
- assert.strictEqual(aViewContent[13].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
288
- assert.strictEqual(aViewContent[14].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
289
- assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
290
- assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
291
- assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
292
- assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
293
- assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
294
- assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
295
- assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
296
- assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
297
- assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
298
- assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
299
- assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
300
- assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
301
- assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
302
- assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
303
- assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
304
- assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
305
-
306
- // table
307
- var oTable = aViewContent[11];
308
- var aTableItems = oTable.getItems();
309
- assert.strictEqual(aTableItems.length, 4, "Number of Table Items is correct");
310
-
311
- // panel
312
- var oPanel = oView.byId("Panel");
313
- var aPanelContent = oPanel.getContent();
314
- assert.strictEqual(aPanelContent.length, 5, "ExtensionView content added to view");
315
-
316
- assert.strictEqual(aPanelContent[0].getId(), "ExtComponent---mainView--button1", "Main.view content is in correct order"); // Main
317
- assert.strictEqual(aPanelContent[1].getId(), "ExtComponent---mainView--button2", "Main.view content is in correct order"); // Main
318
- assert.strictEqual(aPanelContent[2].getId(), "ExtComponent---mainView--button3", "Main.view content is in correct order"); // Main
319
- assert.strictEqual(aPanelContent[3].getId(), "ExtComponent---mainView--defaultFragment--defaultButton", "EP2 default content is in correct order"); // EP2
320
- assert.strictEqual(aPanelContent[4].getId(), "ExtComponent---mainView--button4", "Main.view content is in correct order"); // Main
321
-
322
- // check rendering result for top-level extension points
323
- // EP0
324
- assert.ok(oView.byId("zero--defaultButton").getDomRef(), "Default Button in EP_Zero is rendered");
325
- // EP99
326
- assert.ok(oView.byId("nine_nine--defaultButton").getDomRef(), "Default Button in EP99 is rendered");
327
-
328
- var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
329
- assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
330
-
331
- // Default content for EPs in nested View should be available
332
- var oNestedView = aViewContent[30];
333
- return oNestedView.loaded().then(function() {
334
- assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
335
- assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
336
- });
337
- });
272
+ assert.ok(!ExtensionPoint._fnExtensionProvider, "ExtensionPointProvider added");
273
+
274
+ var aViewContent = oView.getContent();
275
+ assert.strictEqual(aViewContent.length, 32, "Correct # of controls inside View content aggregation");
276
+
277
+ assert.strictEqual(aViewContent[0].getId(), "ExtComponent---mainView--zero--defaultButton", "EP0 is not included: default content is in correct order"); // EP0
278
+ assert.strictEqual(aViewContent[1].getId(), "ExtComponent---mainView--button0", "button0 is in correct order"); // Button0
279
+ assert.strictEqual(aViewContent[2].getId(), "ExtComponent---mainView--Panel", "Panel is in correct order"); // Panel
280
+ assert.strictEqual(aViewContent[3].getId(), "ExtComponent---mainView--button5", "button5 is in correct order"); // button5
281
+ assert.strictEqual(aViewContent[4].getId(), "ExtComponent---mainView--button6", "button6 is in correct order"); // button6
282
+ assert.strictEqual(aViewContent[5].getId(), "ExtComponent---mainView--nine_nine--defaultButton", "EP99 is not included: default content is in correct order"); // EP99 button0
283
+ assert.strictEqual(aViewContent[6].getId(), "ExtComponent---mainView--shifty--customButton1", "shifty Fragment content is in correct order"); // shifty Fragment customButton1
284
+ assert.strictEqual(aViewContent[7].getId(), "ExtComponent---mainView--shifty--customButton2", "shifty Fragment content is in correct order"); // shifty Fragment customButton2
285
+ assert.strictEqual(aViewContent[8].getId(), "ExtComponent---mainView--button7", "button7 is in correct order"); // button7
286
+ assert.strictEqual(aViewContent[9].getId(), "ExtComponent---mainView--tn1--customButton1", "EP23 is not included: default content is in correct order"); // tn1 Fragment customButton1
287
+
288
+ // Panel with nested view
289
+ assert.strictEqual(aViewContent[13].getId(), "ExtComponent---mainView--Panel_With_Nested_View", "Main.view content is in correct order"); // Main
290
+
291
+ assert.strictEqual(aViewContent[14].getId(), "ExtComponent---mainView--ButtonInRootEP", "Main.view content is in correct order"); // Main
292
+ assert.strictEqual(aViewContent[15].getId(), "ExtComponent---mainView--EPinEPButton", "Main.view content is in correct order"); // Main
293
+ assert.strictEqual(aViewContent[16].getId(), "ExtComponent---mainView--EPinEPButton2", "Main.view content is in correct order"); // Main
294
+ assert.strictEqual(aViewContent[17].getId(), "ExtComponent---mainView--EPinEPButton3", "Main.view content is in correct order"); // Main
295
+ assert.strictEqual(aViewContent[18].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting", "Main.view content is in correct order"); // Main
296
+ assert.strictEqual(aViewContent[19].getId(), "ExtComponent---mainView--EPinEPButtonDeepNesting2", "Main.view content is in correct order"); // Main
297
+ assert.strictEqual(aViewContent[20].getId(), "ExtComponent---mainView--ButtonInRootEP2", "Main.view content is in correct order"); // Main
298
+ assert.strictEqual(aViewContent[21].getId(), "ExtComponent---mainView--ButtonInRootEP3", "Main.view content is in correct order"); // Main
299
+ assert.strictEqual(aViewContent[22].getId(), "ExtComponent---mainView--EPinEPButton4", "Main.view content is in correct order"); // Main
300
+ assert.strictEqual(aViewContent[23].getId(), "ExtComponent---mainView--ButtonInRootEP4", "Main.view content is in correct order"); // Main
301
+ assert.strictEqual(aViewContent[24].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
302
+ assert.strictEqual(aViewContent[25].getId(), "ExtComponent---mainView--EPinEPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
303
+ assert.strictEqual(aViewContent[26].getId(), "ExtComponent---mainView--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
304
+ assert.strictEqual(aViewContent[27].getId(), "ExtComponent---mainView--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
305
+ assert.strictEqual(aViewContent[28].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButton", "Main.view content is in correct order"); // Main
306
+ assert.strictEqual(aViewContent[29].getId(), "ExtComponent---mainView--NestingFragment--EPRootFragment--extEPButtonChild", "Main.view content is in correct order"); // Main
307
+ assert.strictEqual(aViewContent[30].getId(), "ExtComponent---mainView--EPinBinding--supplier_panel", "Main.view content is in correct order"); // Main
308
+ assert.strictEqual(aViewContent[31].getId(), "ExtComponent---mainView--EPinBinding_in_nestedView", "Main.view content is in correct order"); // Main (nested view with EPs)
309
+
310
+ // table
311
+ var oTable = aViewContent[11];
312
+ var aTableItems = oTable.getItems();
313
+ assert.strictEqual(aTableItems.length, 4, "Number of Table Items is correct");
314
+
315
+ // panel
316
+ var oPanel = oView.byId("Panel");
317
+ var aPanelContent = oPanel.getContent();
318
+ assert.strictEqual(aPanelContent.length, 5, "ExtensionView content added to view");
319
+
320
+ assert.strictEqual(aPanelContent[0].getId(), "ExtComponent---mainView--button1", "Main.view content is in correct order"); // Main
321
+ assert.strictEqual(aPanelContent[1].getId(), "ExtComponent---mainView--button2", "Main.view content is in correct order"); // Main
322
+ assert.strictEqual(aPanelContent[2].getId(), "ExtComponent---mainView--button3", "Main.view content is in correct order"); // Main
323
+ assert.strictEqual(aPanelContent[3].getId(), "ExtComponent---mainView--defaultFragment--defaultButton", "EP2 default content is in correct order"); // EP2
324
+ assert.strictEqual(aPanelContent[4].getId(), "ExtComponent---mainView--button4", "Main.view content is in correct order"); // Main
325
+
326
+ // check rendering result for top-level extension points
327
+ // EP0
328
+ assert.ok(oView.byId("zero--defaultButton").getDomRef(), "Default Button in EP_Zero is rendered");
329
+ // EP99
330
+ assert.ok(oView.byId("nine_nine--defaultButton").getDomRef(), "Default Button in EP99 is rendered");
331
+
332
+ var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
333
+ assert.strictEqual(oOwnerComponent.getId(), "ExtComponent", "Panel has the correct OwnerComponent");
334
+
335
+ // Default content for EPs in nested View should be available
336
+ var oNestedView = oView.byId("EPinBinding_in_nestedView");
337
+
338
+ assert.ok(oNestedView.byId("TableRowButton") != null, "Default Content 'TableRowButton' in nested View is available");
339
+ assert.ok(oNestedView.byId("PanelButton") != null, "Default Content 'PanelButton' in nested View is available");
338
340
  });
339
341
 
340
342
  QUnit.module("ExtensionPoint Provider arguments", {
@@ -394,119 +396,302 @@ sap.ui.define([
394
396
  }.bind(this));
395
397
  });
396
398
 
397
- QUnit.test("via XMLView: async", function(assert) {
398
- assert.expect(47);
399
+
400
+ // matches if the "view" property in the EP info object for flex is of type "sap.ui.core.mvc.View"
401
+ const oViewClassMatcher = sinon.match((v) => {return v?.getMetadata().isA("sap.ui.core.mvc.View");});
402
+
403
+ // matches the control against the given ID
404
+ const idMatcher = (sId) => {
405
+ return sinon.match((v) => {return v?.getId() === sId;});
406
+ };
407
+
408
+ /**
409
+ * Asserts if we made the correct calls to the registered ExtensionPointProvider.
410
+ * This includes information about the targetControl, closestBindingCarrier,
411
+ * the target aggregation and the index therein.
412
+ *
413
+ * @param {function} assert the QUnit assert function
414
+ */
415
+ function assertExtensionPointProviderSpies(assert, oView) {
416
+
417
+ // inspect EP Provider calls
418
+ assert.equal(this.oEPSpy.getCalls().length, 21, "21 Calls to the EP Provider");
419
+
420
+ // EP 1
421
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
422
+ name: "EP1",
423
+ view: oViewClassMatcher
424
+ })), "EP 'EP1' registered");
425
+
426
+ // EP 2
427
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
428
+ name: "EP2",
429
+ view: oViewClassMatcher
430
+ })), "EP 'EP2' registered");
431
+
432
+ // Closest Binding Carrier Test: EPinBinding from Fragement
433
+ // EP Product_Table_Cell_Ext
434
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
435
+ name: "Product_Table_Cell_Ext",
436
+ view: oViewClassMatcher,
437
+ closestAggregationBindingCarrier: "myView--EPinBinding--product_table",
438
+ closestAggregationBinding: "items"
439
+ })), "EP 'Product_Table_Cell_Ext' registered");
440
+
441
+ // EP Product_Table_Column_Ext
442
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
443
+ name: "Product_Table_Column_Ext",
444
+ view: oViewClassMatcher,
445
+ closestAggregationBindingCarrier: "myView--EPinBinding--supplier_panel",
446
+ closestAggregationBinding: "content"
447
+ })), "EP 'Product_Table_Column_Ext' registered");
448
+
449
+ // EP Panel_Button_Ext
450
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
451
+ name: "Panel_Button_Ext",
452
+ view: oViewClassMatcher,
453
+ closestAggregationBindingCarrier: "myView--EPinBinding--supplier_panel",
454
+ closestAggregationBinding: "content"
455
+ })), "EP 'Panel_Button_Ext' registered");
456
+
457
+ // EP 0
458
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
459
+ name: "EP0",
460
+ view: oViewClassMatcher
461
+ })), "EP 'EP0' registered");
462
+
463
+ // EP 99
464
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
465
+ name: "EP99",
466
+ view: oViewClassMatcher
467
+ })), "EP 'EP99' registered");
468
+
469
+ // EP 23
470
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
471
+ name: "EP23",
472
+ view: oViewClassMatcher
473
+ })), "EP 'EP23' registered");
474
+
475
+ // EP Table
476
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
477
+ name: "EPTable",
478
+ view: oViewClassMatcher
479
+ })), "EP 'EPTable' registered");
480
+
481
+ // --- 5 EPs contained in EPinNestedView.view.xml ---
482
+ assertNestedViewExtensionPoints.call(this, assert);
483
+
484
+ //EPinEPRoot
485
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
486
+ name: "EPinEPRoot",
487
+ view: oViewClassMatcher
488
+ })), "EP 'EPinEPRoot' registered");
489
+
490
+ //EPinRootFragmentRoot
491
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
492
+ name: "EPinRootFragment",
493
+ view: oViewClassMatcher
494
+ })), "EP 'EPinRootFragment' registered");
495
+
496
+ // EP Root
497
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
498
+ name: "EPRoot",
499
+ view: oViewClassMatcher,
500
+ fragmentId: "EPRootFragment"
501
+ })), "EP 'EPRoot' registered");
502
+
503
+ // NestingFragment --> EP Root
504
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
505
+ name: "EPRoot",
506
+ view: oViewClassMatcher,
507
+ fragmentId: "NestingFragment--EPRootFragment"
508
+ })), "EP 'EPRoot' in NestingFragment registered");
509
+
510
+ // Closest Binding Carrier Test: EPinBinding from nested View
511
+ // EP Product_Table_Cell_Ext_In_View
512
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
513
+ name: "Product_Table_Cell_Ext_In_View",
514
+ view: oViewClassMatcher,
515
+ closestAggregationBindingCarrier: "myView--EPinBinding_in_nestedView--product_table",
516
+ closestAggregationBinding: "items"
517
+ })), "EP 'Product_Table_Cell_Ext_In_View' registered");
518
+
519
+ // EP Product_Table_Column_Ext_In_View
520
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
521
+ name: "Product_Table_Column_Ext_In_View",
522
+ view: oViewClassMatcher,
523
+ closestAggregationBindingCarrier: "myView--EPinBinding_in_nestedView",
524
+ closestAggregationBinding: "dependents"
525
+ })), "EP 'Product_Table_Column_Ext_In_View' registered");
526
+
527
+ // EP Panel_Button_Ext_In_View
528
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
529
+ name: "Panel_Button_Ext_In_View",
530
+ view: oViewClassMatcher,
531
+ closestAggregationBindingCarrier: "myView--EPinBinding_in_nestedView",
532
+ closestAggregationBinding: "dependents"
533
+ })), "EP 'Panel_Button_Ext_In_View' registered");
534
+
535
+ }
536
+
537
+ /**
538
+ * Asserts the EPs inside the nested view.
539
+ *
540
+ * @param {function} assert the QUnit assert function
541
+ */
542
+ function assertNestedViewExtensionPoints(assert) {
543
+ // EP_In_Product_Table_Column - 1st
544
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
545
+ name: "EP_In_Product_Table_Column",
546
+ view: idMatcher("myView--EPs_In_Nested_View"),
547
+ aggregationName: "header",
548
+ targetControl: idMatcher("myView--EPs_In_Nested_View--column_0")
549
+ })), "EP 'EPinNestedView > EP_In_Product_Table_Column' (1) registered");
550
+
551
+ // EP_In_Product_Table_Column - 2nd
552
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
553
+ name: "EP_In_Product_Table_Column",
554
+ view: idMatcher("myView--EPs_In_Nested_View"),
555
+ aggregationName: "header",
556
+ targetControl: idMatcher("myView--EPs_In_Nested_View--column_1")
557
+ })), "EP 'EPinNestedView > EP_In_Product_Table_Column' (2) registered");
558
+
559
+ // EP_In_Product_Table_Cell_Not_Found
560
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
561
+ name: "EP_In_Product_Table_Cell_Not_Found",
562
+ view: idMatcher("myView--EPs_In_Nested_View"),
563
+ aggregationName: "cells",
564
+ targetControl: idMatcher("myView--EPs_In_Nested_View--list_item_0")
565
+ })), "EP 'EPinNestedView > EP_In_Product_Table_Cell_Not_Found' registered");
566
+
567
+ // EP_In_Product_Table_Cell_Found
568
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
569
+ name: "EP_In_Product_Table_Cell_Found",
570
+ view: idMatcher("myView--EPs_In_Nested_View"),
571
+ aggregationName: "cells",
572
+ targetControl: idMatcher("myView--EPs_In_Nested_View--list_item_1")
573
+ })), "EP 'EPinNestedView > EP_In_Product_Table_Cell_Found' registered");
574
+
575
+ // EP_in_Panel
576
+ assert.ok(this.oEPSpy.calledWith(sinon.match({
577
+ name: "EP_in_Panel",
578
+ view: idMatcher("myView--EPs_In_Nested_View"),
579
+ aggregationName: "content",
580
+ targetControl: idMatcher("myView--EPs_In_Nested_View") // target is the "content" aggr. of the nested view
581
+ })), "EP 'EPinNestedView > EP_in_Panel' registered");
582
+ }
583
+
584
+ /**
585
+ * Evaluates if the control tree of the given View is correct.
586
+ * We test if nested Views, Fragments and ExtensionPoints resolve in the correct
587
+ * order and the controls are correctly aggregated.
588
+ *
589
+ * @param {function} assert the QUnit assert function
590
+ */
591
+ function assertControlTreeCorrectness(assert, oView) {
592
+ // the Main View
593
+ const aActualContentAggregationOfOuterView = oView.getContent().map((oChild) => {
594
+ return oChild.getId();
595
+ });
596
+ const aExpectedContentAggregationOfOuterView = [
597
+ "myView--zero--defaultButton",
598
+ "myView--button0",
599
+ "myView--Panel",
600
+ "myView--button5",
601
+ "myView--button6",
602
+ "myView--ep99--button0",
603
+ "myView--ep99--input0",
604
+ "myView--ep99--input1",
605
+ "myView--shifty--customButton1",
606
+ "myView--shifty--customButton2",
607
+ "myView--button7",
608
+ "myView--tn1--customButton1",
609
+ "myView--tn1--customButton2",
610
+ "myView--myTable",
611
+ "myView--myListItem",
612
+ "myView--Panel_With_Nested_View",
613
+ "myView--ButtonInRootEP",
614
+ "myView--EPinEPButton",
615
+ "myView--EPinEPButton2",
616
+ "myView--EPinEPButton3",
617
+ "myView--EPinEPButtonDeepNesting",
618
+ "myView--EPinEPButtonDeepNesting2",
619
+ "myView--ButtonInRootEP2",
620
+ "myView--ButtonInRootEP3",
621
+ "myView--EPinEPButton4",
622
+ "myView--ButtonInRootEP4",
623
+ "myView--EPinEPRootFragment--extEPButton",
624
+ "myView--EPinEPRootFragment--extEPButtonChild",
625
+ "myView--EPRootFragment--extEPButton",
626
+ "myView--EPRootFragment--extEPButtonChild",
627
+ "myView--NestingFragment--EPRootFragment--extEPButton",
628
+ "myView--NestingFragment--EPRootFragment--extEPButtonChild",
629
+ "myView--EPinBinding--supplier_panel",
630
+ "myView--EPinBinding_in_nestedView"
631
+ ];
632
+
633
+ assert.deepEqual(aActualContentAggregationOfOuterView, aExpectedContentAggregationOfOuterView, "Content Aggregation of View is correct.");
634
+
635
+ // check the nested View's content
636
+ const oNestedView = oView.byId("EPs_In_Nested_View");
637
+ assert.ok(oNestedView.isA("sap.ui.core.mvc.XMLView"), "Nested View is available");
638
+
639
+ // top level content
640
+ const aActualContentAggregationOfNestedView = oNestedView.getContent().map((oChild) => {
641
+ return oChild.getId();
642
+ });
643
+ const aExpectedContentAggregationOfNestedView = ['myView--EPs_In_Nested_View--product_table', 'myView--EPs_In_Nested_View--PanelButton'];
644
+
645
+ assert.deepEqual(aActualContentAggregationOfNestedView, aExpectedContentAggregationOfNestedView, "Nested Views' top-level content is correct.");
646
+
647
+ // Table content
648
+ const oTable = oNestedView.byId("product_table");
649
+
650
+ // -- columns
651
+ const aColumns = oTable.getColumns();
652
+
653
+ assert.deepEqual(aColumns.map((oCol) => {
654
+ return oCol.getId();
655
+ }), ["myView--EPs_In_Nested_View--column_0", "myView--EPs_In_Nested_View--column_1"],
656
+ "Columns are correctly ordered, including their nested EPs.");
657
+
658
+ assert.equal(aColumns[0].getHeader().getText(), "Table Header Text from EP Fragment: EP_In_Product_Table_Column.fragment.xml", "sap.m.Text from EP 'EP_In_Product_Table_Column' is correctly inserted into Column's 'header' aggregation.");
659
+ assert.equal(aColumns[1].getHeader().getText(), "Table Header Text from EP Fragment: EP_In_Product_Table_Column.fragment.xml", "sap.m.Text from EP 'EP_In_Product_Table_Column' is correctly inserted into Column's 'header' aggregation.");
660
+
661
+ // -- items
662
+ const aItems = oTable.getItems();
663
+
664
+ assert.deepEqual(aItems.map((oCLI) => {
665
+ return oCLI.getId();
666
+ }), ["myView--EPs_In_Nested_View--list_item_0", "myView--EPs_In_Nested_View--list_item_1"], "ColumnListItems are correctly ordered.");
667
+
668
+ // -- items -- cells
669
+
670
+ // 1st Item must have a cell with an EP's default content
671
+ const oCell0 = aItems[0].getCells()[0];
672
+ assert.ok(oCell0.isA("sap.m.Button"), "1st CLI's cell content is a 'sap.m.Button'.");
673
+ assert.equal(oCell0.getId(), "myView--EPs_In_Nested_View--TableRowButton", "1st CLI's cell is correct Button control with correct ID.");
674
+
675
+ // 2nd Item must have a cell with an EP's resolved content (a sap.m.Input field)
676
+ const oCell1 = aItems[1].getCells()[0];
677
+ assert.ok(oCell1.isA("sap.m.Input"), "2nd CLI's cell content is a 'sap.m.Input'.");
678
+ assert.equal(oCell1.getId(), "myView--EPs_In_Nested_View--column_list_item_fragment--Input_From_EP", "2nd CLI's cell is correct Input control with correct ID.");
679
+ }
680
+
681
+ QUnit.test("via XMLView: async", async function(assert) {
682
+ assert.expect(33);
399
683
 
400
684
  // load the view
401
- return XMLView.create({
685
+ const oView = await XMLView.create({
402
686
  viewName: "testdata.customizing.customer.ext.Main",
403
687
  id: "myView"
404
- }).then(function(oView) {
405
- var oNestedView = oView.byId("EPinBinding_in_nestedView");
406
- return oNestedView.loaded().then(function() {
407
- // inspect EP Provider calls
408
- assert.equal(this.oEPSpy.args.length, 16, "16 Calls to the EP Provider");
409
-
410
- // EP 1
411
- var oArgsEP1 = this.oEPSpy.args[0][0];
412
- assert.equal(oArgsEP1.name, "EP1", "EP1");
413
- assert.ok(oArgsEP1.view.getMetadata().isA("sap.ui.core.mvc.View"), "EP1: View instance is correct");
414
-
415
- // EP 2
416
- var oArgsEP2 = this.oEPSpy.args[1][0];
417
- assert.equal(oArgsEP2.name, "EP2", "EP2");
418
- assert.ok(oArgsEP2.view.getMetadata().isA("sap.ui.core.mvc.View"), "EP2: View instance is correct");
419
-
420
- // Closest Binding Carrier Test: EPinBinding from Fragement
421
- // EP Product_Table_Cell_Ext
422
- var oArgsProductTableCellInFragment = this.oEPSpy.args[2][0];
423
- assert.equal(oArgsProductTableCellInFragment.name, "Product_Table_Cell_Ext", "Product_Table_Cell_Ext");
424
- assert.ok(oArgsProductTableCellInFragment.view.getMetadata().isA("sap.ui.core.mvc.View"), "Product_Table_Cell_Ext: View instance is correct");
425
- assert.equal(oArgsProductTableCellInFragment.closestAggregationBindingCarrier, "myView--EPinBinding--product_table", "BindingCarrier ID set correctly");
426
- assert.equal(oArgsProductTableCellInFragment.closestAggregationBinding, "items", "BindingCarrier aggregation set cortrectly");
427
-
428
- // EP Product_Table_Column_Ext
429
- var oArgsProductTableColumnInFragment = this.oEPSpy.args[3][0];
430
- assert.equal(oArgsProductTableColumnInFragment.name, "Product_Table_Column_Ext", "Product_Table_Column_Ext");
431
- assert.ok(oArgsProductTableColumnInFragment.view.getMetadata().isA("sap.ui.core.mvc.View"), "Product_Table_Column_Ext: View instance is correct");
432
- assert.equal(oArgsProductTableColumnInFragment.closestAggregationBindingCarrier, "myView--EPinBinding--supplier_panel", "BindingCarrier ID set correctly");
433
- assert.equal(oArgsProductTableColumnInFragment.closestAggregationBinding, "content", "BindingCarrier aggregation set cortrectly");
434
-
435
- // EP Panel_Button_Ext
436
- var oArgsPanelButtonInFragment = this.oEPSpy.args[4][0];
437
- assert.equal(oArgsPanelButtonInFragment.name, "Panel_Button_Ext", "Panel_Button_Ext");
438
- assert.ok(oArgsPanelButtonInFragment.view.getMetadata().isA("sap.ui.core.mvc.View"), "Panel_Button_Ext: View instance is correct");
439
- assert.equal(oArgsPanelButtonInFragment.closestAggregationBindingCarrier, "myView--EPinBinding--supplier_panel", "BindingCarrier ID set correctly");
440
- assert.equal(oArgsPanelButtonInFragment.closestAggregationBinding, "content", "BindingCarrier aggregation set cortrectly");
441
-
442
- // EP 0
443
- var oArgsEP0 = this.oEPSpy.args[5][0];
444
- assert.equal(oArgsEP0.name, "EP0", "EP0");
445
- assert.ok(oArgsEP0.view.getMetadata().isA("sap.ui.core.mvc.View"), "EP0: View instance is correct");
446
-
447
- // EP 99
448
- var oArgsEP99 = this.oEPSpy.args[6][0];
449
- assert.equal(oArgsEP99.name, "EP99", "EP99");
450
- assert.ok(oArgsEP99.view.getMetadata().isA("sap.ui.core.mvc.View"), "EP99: View instance is correct");
451
-
452
- // EP 23
453
- var oArgsEP23 = this.oEPSpy.args[7][0];
454
- assert.equal(oArgsEP23.name, "EP23", "EP23");
455
- assert.ok(oArgsEP23.view.getMetadata().isA("sap.ui.core.mvc.View"), "EP23: View instance is correct");
456
-
457
- // EP Table
458
- var oArgsEPTable = this.oEPSpy.args[8][0];
459
- assert.equal(oArgsEPTable.name, "EPTable", "EPTable");
460
- assert.ok(oArgsEPTable.view.getMetadata().isA("sap.ui.core.mvc.View"), "EPTable: View instance is correct");
461
-
462
- //EPinEPRoot
463
- var oArgsEPinEP = this.oEPSpy.args[9][0];
464
- assert.equal(oArgsEPinEP.name, "EPinEPRoot", "EPinEPRoot");
465
- assert.ok(oArgsEPinEP.view.getMetadata().isA("sap.ui.core.mvc.View"), "EPinEPRoot: View instance is correct");
466
-
467
- //EPinRootFragmentRoot
468
- var oArgsEPinRootFragment = this.oEPSpy.args[10][0];
469
- assert.equal(oArgsEPinRootFragment.name, "EPinRootFragment", "EPinRootFragment");
470
- assert.ok(oArgsEPinRootFragment.view.getMetadata().isA("sap.ui.core.mvc.View"), "EPinRootFragment: View instance is correct");
471
-
472
- // EP Root
473
- var oArgsEPRoot = this.oEPSpy.args[11][0];
474
- assert.equal(oArgsEPRoot.name, "EPRoot", "EPRoot");
475
- assert.ok(oArgsEPRoot.view.getMetadata().isA("sap.ui.core.mvc.View"), "EPRoot: View instance is correct");
476
- assert.equal(oArgsEPRoot.fragmentId, "EPRootFragment", "Local Fragment-ID is passed for 'EPRootFragment'");
477
-
478
- // NestingFragment --> EP Root
479
- var oArgsEPRootNested = this.oEPSpy.args[12][0];
480
- assert.equal(oArgsEPRootNested.name, "EPRoot", "EPRoot");
481
- assert.ok(oArgsEPRootNested.view.getMetadata().isA("sap.ui.core.mvc.View"), "EPRoot: View instance is correct");
482
- assert.equal(oArgsEPRootNested.fragmentId, "NestingFragment--EPRootFragment", "Local Fragment-ID is passed for 'EPRootFragment'");
483
-
484
- // Closest Binding Carrier Test: EPinBinding from nested View
485
- // EP Product_Table_Cell_Ext_In_View
486
- var oArgsProductTableCellInView = this.oEPSpy.args[13][0];
487
- assert.equal(oArgsProductTableCellInView.name, "Product_Table_Cell_Ext_In_View", "Product_Table_Cell_Ext_In_View");
488
- assert.ok(oArgsProductTableCellInView.view.getMetadata().isA("sap.ui.core.mvc.View"), "Product_Table_Cell_Ext_In_View: View instance is correct");
489
- assert.equal(oArgsProductTableCellInView.closestAggregationBindingCarrier, "myView--EPinBinding_in_nestedView--product_table", "BindingCarrier ID set correctly");
490
- assert.equal(oArgsProductTableCellInView.closestAggregationBinding, "items", "BindingCarrier aggregation set cortrectly");
491
-
492
- // EP Product_Table_Column_Ext_In_View
493
- var oArgsProductTableColumnInView = this.oEPSpy.args[14][0];
494
- assert.equal(oArgsProductTableColumnInView.name, "Product_Table_Column_Ext_In_View", "Product_Table_Column_Ext_In_View");
495
- assert.ok(oArgsProductTableColumnInView.view.getMetadata().isA("sap.ui.core.mvc.View"), "Product_Table_Column_Ext_In_View: View instance is correct");
496
- assert.equal(oArgsProductTableColumnInView.closestAggregationBindingCarrier, "myView--EPinBinding_in_nestedView", "BindingCarrier ID set correctly");
497
- assert.equal(oArgsProductTableColumnInView.closestAggregationBinding, "dependents", "BindingCarrier aggregation set cortrectly");
498
-
499
- // EP Panel_Button_Ext_In_View
500
- var oArgsPanelButtonInView = this.oEPSpy.args[15][0];
501
- assert.equal(oArgsPanelButtonInView.name, "Panel_Button_Ext_In_View", "Panel_Button_Ext_In_View");
502
- assert.ok(oArgsPanelButtonInView.view.getMetadata().isA("sap.ui.core.mvc.View"), "Panel_Button_Ext_In_View: View instance is correct");
503
- assert.equal(oArgsPanelButtonInView.closestAggregationBindingCarrier, "myView--EPinBinding_in_nestedView", "BindingCarrier ID set correctly");
504
- assert.equal(oArgsPanelButtonInView.closestAggregationBinding, "dependents", "BindingCarrier aggregation set cortrectly");
505
-
506
- oView.destroy();
507
- }.bind(this));
508
- }.bind(this));
688
+ });
689
+
690
+ assertExtensionPointProviderSpies.bind(this)(assert, oView);
691
+
692
+ assertControlTreeCorrectness.bind(this)(assert, oView);
509
693
 
694
+ oView.destroy();
510
695
  });
511
696
 
512
697
  QUnit.module("Delayed Extension Point", {