@openui5/sap.ui.core 1.126.0 → 1.127.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 (649) hide show
  1. package/.dtsgenrc +76 -0
  2. package/THIRDPARTY.txt +1 -1
  3. package/package.json +1 -1
  4. package/src/jquery.sap.global.js +1 -1
  5. package/src/jquery.sap.properties.js +1 -1
  6. package/src/jquery.sap.resources.js +1 -1
  7. package/src/jquery.sap.script.js +1 -1
  8. package/src/jquery.sap.storage.js +3 -3
  9. package/src/sap/base/Event.js +1 -1
  10. package/src/sap/base/Eventing.js +1 -1
  11. package/src/sap/base/config.js +1 -1
  12. package/src/sap/base/i18n/LanguageTag.js +1 -1
  13. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  14. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  15. package/src/sap/base/util/restricted/_castArray.js +1 -1
  16. package/src/sap/base/util/restricted/_compact.js +1 -1
  17. package/src/sap/base/util/restricted/_curry.js +1 -1
  18. package/src/sap/base/util/restricted/_debounce.js +1 -1
  19. package/src/sap/base/util/restricted/_difference.js +1 -1
  20. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  21. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  22. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  23. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  24. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  25. package/src/sap/base/util/restricted/_flatten.js +1 -1
  26. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  27. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  28. package/src/sap/base/util/restricted/_intersection.js +1 -1
  29. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  30. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  31. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  32. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  33. package/src/sap/base/util/restricted/_isNil.js +1 -1
  34. package/src/sap/base/util/restricted/_max.js +1 -1
  35. package/src/sap/base/util/restricted/_merge.js +1 -1
  36. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  37. package/src/sap/base/util/restricted/_min.js +1 -1
  38. package/src/sap/base/util/restricted/_omit.js +1 -1
  39. package/src/sap/base/util/restricted/_pick.js +1 -1
  40. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  41. package/src/sap/base/util/restricted/_throttle.js +1 -1
  42. package/src/sap/base/util/restricted/_toArray.js +1 -1
  43. package/src/sap/base/util/restricted/_union.js +1 -1
  44. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  45. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  46. package/src/sap/base/util/restricted/_uniq.js +1 -1
  47. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  48. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  49. package/src/sap/base/util/restricted/_without.js +1 -1
  50. package/src/sap/base/util/restricted/_xor.js +1 -1
  51. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  52. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  53. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  54. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  55. package/src/sap/ui/Device.js +3 -3
  56. package/src/sap/ui/Global.js +5 -15
  57. package/src/sap/ui/base/BindingInfo.js +45 -24
  58. package/src/sap/ui/base/DataType.js +19 -0
  59. package/src/sap/ui/base/Event.js +1 -1
  60. package/src/sap/ui/base/EventProvider.js +1 -1
  61. package/src/sap/ui/base/Interface.js +31 -1
  62. package/src/sap/ui/base/ManagedObject.js +3 -4
  63. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  64. package/src/sap/ui/base/Metadata.js +1 -1
  65. package/src/sap/ui/base/Object.js +1 -1
  66. package/src/sap/ui/base/ObjectPool.js +1 -1
  67. package/src/sap/ui/core/.library +1 -1
  68. package/src/sap/ui/core/.theming +8 -0
  69. package/src/sap/ui/core/BusyIndicator.js +1 -1
  70. package/src/sap/ui/core/Component.js +1 -1
  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 +2 -2
  76. package/src/sap/ui/core/Core.js +57 -2
  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 +166 -16
  80. package/src/sap/ui/core/ElementMetadata.js +1 -1
  81. package/src/sap/ui/core/EnabledPropagator.js +17 -31
  82. package/src/sap/ui/core/EventBus.js +1 -1
  83. package/src/sap/ui/core/Fragment.js +1 -1
  84. package/src/sap/ui/core/HTML.js +1 -1
  85. package/src/sap/ui/core/History.js +1 -1
  86. package/src/sap/ui/core/Icon.js +1 -1
  87. package/src/sap/ui/core/IndicationColorSupport.js +1 -1
  88. package/src/sap/ui/core/IntervalTrigger.js +1 -1
  89. package/src/sap/ui/core/InvisibleMessage.js +1 -1
  90. package/src/sap/ui/core/InvisibleRenderer.js +1 -1
  91. package/src/sap/ui/core/InvisibleText.js +1 -1
  92. package/src/sap/ui/core/Item.js +2 -2
  93. package/src/sap/ui/core/LabelEnablement.js +1 -1
  94. package/src/sap/ui/core/LayoutData.js +1 -1
  95. package/src/sap/ui/core/ListItem.js +1 -1
  96. package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
  97. package/src/sap/ui/core/Locale.js +1 -1
  98. package/src/sap/ui/core/LocaleData.js +118 -55
  99. package/src/sap/ui/core/Manifest.js +1 -1
  100. package/src/sap/ui/core/Message.js +1 -1
  101. package/src/sap/ui/core/Popup.js +8 -0
  102. package/src/sap/ui/core/RenderManager.js +1 -1
  103. package/src/sap/ui/core/Renderer.js +1 -1
  104. package/src/sap/ui/core/ResizeHandler.js +1 -1
  105. package/src/sap/ui/core/ScrollBar.js +1 -1
  106. package/src/sap/ui/core/SeparatorItem.js +1 -1
  107. package/src/sap/ui/core/Theming.js +4 -4
  108. package/src/sap/ui/core/Title.js +2 -2
  109. package/src/sap/ui/core/TooltipBase.js +2 -2
  110. package/src/sap/ui/core/UIArea.js +1 -1
  111. package/src/sap/ui/core/UIComponent.js +1 -1
  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/cache/CacheManagerNOP.js +3 -0
  118. package/src/sap/ui/core/cache/LRUPersistentCache.js +13 -4
  119. package/src/sap/ui/core/date/UI5Date.js +1 -1
  120. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  121. package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
  122. package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
  123. package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
  124. package/src/sap/ui/core/dnd/DragInfo.js +1 -1
  125. package/src/sap/ui/core/dnd/DropInfo.js +1 -1
  126. package/src/sap/ui/core/fieldhelp/FieldHelp.js +53 -11
  127. package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +4 -0
  128. package/src/sap/ui/core/format/FormatUtils.js +1 -1
  129. package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
  130. package/src/sap/ui/core/getCompatibilityVersion.js +1 -1
  131. package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
  132. package/src/sap/ui/core/library.js +37 -21
  133. package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
  134. package/src/sap/ui/core/message/Message.js +1 -1
  135. package/src/sap/ui/core/message/MessageManager.js +1 -1
  136. package/src/sap/ui/core/message/MessageParser.js +1 -1
  137. package/src/sap/ui/core/message/MessageProcessor.js +1 -1
  138. package/src/sap/ui/core/messagebundle_en_US_sappsd.properties +30 -18
  139. package/src/sap/ui/core/messagebundle_en_US_saptrc.properties +294 -282
  140. package/src/sap/ui/core/mvc/ControllerExtension.js +16 -0
  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 +1 -1
  146. package/src/sap/ui/core/mvc/XMLView.js +4 -4
  147. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  148. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  149. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  150. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  151. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  152. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  153. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  154. package/src/sap/ui/core/service/Service.js +1 -1
  155. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  156. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  157. package/src/sap/ui/core/support/Plugin.js +1 -1
  158. package/src/sap/ui/core/support/Support.js +1 -1
  159. package/src/sap/ui/core/support/ToolsAPI.js +5 -5
  160. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  161. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  162. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  163. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  164. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  165. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  166. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  167. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  168. package/src/sap/ui/core/themes/base/base.less +119 -49
  169. package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
  170. package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
  171. package/src/sap/ui/core/themes/base/library.source.less +2 -0
  172. package/src/sap/ui/core/themes/base/skeleton.less +958 -0
  173. package/src/sap/ui/core/theming/ThemeManager.js +56 -73
  174. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  175. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  176. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  177. package/src/sap/ui/core/tmpl/Template.js +1 -1
  178. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  179. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  180. package/src/sap/ui/core/util/Export.js +1 -1
  181. package/src/sap/ui/core/util/ExportCell.js +1 -1
  182. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  183. package/src/sap/ui/core/util/ExportRow.js +1 -1
  184. package/src/sap/ui/core/util/ExportType.js +1 -1
  185. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  186. package/src/sap/ui/core/util/File.js +1 -1
  187. package/src/sap/ui/core/util/LibraryInfo.js +1 -1
  188. package/src/sap/ui/core/util/MockServer.js +1 -1
  189. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  190. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  191. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  192. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  193. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  194. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  195. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  196. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  197. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  198. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  199. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  200. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  201. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  202. package/src/sap/ui/debug/ControlTree.js +1 -1
  203. package/src/sap/ui/debug/DebugEnv.js +1 -1
  204. package/src/sap/ui/debug/PropertyList.js +1 -1
  205. package/src/sap/ui/dom/findTabbable.js +244 -0
  206. package/src/sap/ui/dom/isElementCovered.js +51 -0
  207. package/src/sap/ui/events/F6Navigation.js +10 -164
  208. package/src/sap/ui/model/ClientModel.js +1 -1
  209. package/src/sap/ui/model/CompositeDataState.js +1 -1
  210. package/src/sap/ui/model/CompositeType.js +1 -1
  211. package/src/sap/ui/model/DataState.js +1 -1
  212. package/src/sap/ui/model/MetaModel.js +1 -1
  213. package/src/sap/ui/model/Model.js +1 -1
  214. package/src/sap/ui/model/SelectionModel.js +1 -1
  215. package/src/sap/ui/model/SimpleType.js +1 -1
  216. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  217. package/src/sap/ui/model/Type.js +1 -1
  218. package/src/sap/ui/model/json/JSONModel.js +1 -1
  219. package/src/sap/ui/model/message/MessageModel.js +1 -1
  220. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  221. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  222. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  223. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  224. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  225. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  226. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  227. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  228. package/src/sap/ui/model/odata/type/Date.js +1 -1
  229. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  230. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  231. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  232. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  233. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  234. package/src/sap/ui/model/odata/type/Double.js +1 -1
  235. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  236. package/src/sap/ui/model/odata/type/Int.js +1 -1
  237. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  238. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  239. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  240. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  241. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  242. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  243. package/src/sap/ui/model/odata/type/Single.js +1 -1
  244. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  245. package/src/sap/ui/model/odata/type/String.js +1 -1
  246. package/src/sap/ui/model/odata/type/Time.js +1 -1
  247. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  248. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  249. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  250. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  251. package/src/sap/ui/model/odata/v2/ODataModel.js +144 -14
  252. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  253. package/src/sap/ui/model/odata/v4/Context.js +18 -8
  254. package/src/sap/ui/model/odata/v4/ODataBinding.js +1 -1
  255. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +12 -9
  256. package/src/sap/ui/model/odata/v4/ODataListBinding.js +30 -14
  257. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +254 -189
  258. package/src/sap/ui/model/odata/v4/ODataModel.js +51 -13
  259. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +4 -1
  260. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +68 -32
  261. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +9 -6
  262. package/src/sap/ui/model/odata/v4/lib/_Cache.js +7 -7
  263. package/src/sap/ui/model/odata/v4/lib/_Helper.js +17 -11
  264. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +11 -3
  265. package/src/sap/ui/model/odata/v4/lib/_TreeState.js +10 -4
  266. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  267. package/src/sap/ui/model/type/Boolean.js +1 -1
  268. package/src/sap/ui/model/type/Currency.js +1 -1
  269. package/src/sap/ui/model/type/Date.js +1 -1
  270. package/src/sap/ui/model/type/DateInterval.js +1 -1
  271. package/src/sap/ui/model/type/DateTime.js +1 -1
  272. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  273. package/src/sap/ui/model/type/FileSize.js +1 -1
  274. package/src/sap/ui/model/type/Float.js +1 -1
  275. package/src/sap/ui/model/type/Integer.js +1 -1
  276. package/src/sap/ui/model/type/String.js +1 -1
  277. package/src/sap/ui/model/type/Time.js +1 -1
  278. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  279. package/src/sap/ui/model/type/Unit.js +1 -1
  280. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  281. package/src/sap/ui/performance/trace/FESR.js +3 -0
  282. package/src/sap/ui/performance/trace/Interaction.js +4 -2
  283. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  284. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  285. package/src/sap/ui/qunit/utils/nextUIUpdate.js +7 -53
  286. package/src/sap/ui/qunit/utils/waitForThemeApplied.js +6 -42
  287. package/src/sap/ui/test/ModuleTracking.js +1 -1
  288. package/src/sap/ui/test/generic/TestBase.js +1 -1
  289. package/src/sap/ui/test/generic/Utils.js +3 -7
  290. package/src/sap/ui/test/opaQunit.js +3 -3
  291. package/src/sap/ui/test/utils/nextUIUpdate.js +64 -0
  292. package/src/sap/ui/test/utils/waitForThemeApplied.js +58 -0
  293. package/src/sap/ui/util/Storage.js +1 -1
  294. package/src/ui5loader.js +9 -0
  295. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
  296. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  297. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  298. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  299. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  300. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/SandboxModel.js +1 -1
  301. package/test/sap/ui/core/demokit/sample/odata/v4/FlexibleColumnLayout/data/SalesOrderList('0500000000')-requestSideEffects.json +14 -14
  302. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +32 -2
  303. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +22 -0
  304. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Component.js +69 -0
  305. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/MIT.ListBindingTemplate.AnnotationChanges.html +63 -0
  306. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Main.view.xml +19 -7
  307. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/SandboxModel.js +1 -4
  308. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/data/equipments.json +37 -22
  309. package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/data/localAnnotations.xml +10 -2
  310. package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +5 -5
  311. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +32 -2
  312. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +30 -0
  313. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +12 -6
  314. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.controller.js +7 -0
  315. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.view.xml +2 -0
  316. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/SandboxModel.js +14 -14
  317. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/pages/Main.js +1 -1
  318. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  319. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  320. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  321. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  322. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  323. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  324. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  325. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  326. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  327. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  328. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  329. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  330. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  331. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  332. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  333. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  335. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  336. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  337. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  338. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  339. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  340. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  341. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  342. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  343. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  344. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  345. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  346. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  347. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  348. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  350. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  351. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  353. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  354. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  356. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  362. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  363. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  365. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/package.json +3 -0
  366. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  367. package/test/sap/ui/core/qunit/BlockLayerUtils.qunit.js +1 -1
  368. package/test/sap/ui/core/qunit/CalculatedFields.qunit.js +1 -1
  369. package/test/sap/ui/core/qunit/ContextMenuSupport.qunit.js +1 -1
  370. package/test/sap/ui/core/qunit/ControlDefinition.qunit.js +2 -2
  371. package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +1 -1
  372. package/test/sap/ui/core/qunit/Core.qunit.js +1 -1
  373. package/test/sap/ui/core/qunit/CustomStyleClassSupport.qunit.js +1 -1
  374. package/test/sap/ui/core/qunit/CustomThemeFallback.qunit.js +1 -1
  375. package/test/sap/ui/core/qunit/CustomThemeFallback_unavoidablySync.qunit.js +1 -1
  376. package/test/sap/ui/core/qunit/Element_data.qunit.js +1 -1
  377. package/test/sap/ui/core/qunit/Element_destroy.qunit.js +1 -1
  378. package/test/sap/ui/core/qunit/Element_focus.qunit.js +196 -3
  379. package/test/sap/ui/core/qunit/Element_metadata_selector.qunit.js +1 -1
  380. package/test/sap/ui/core/qunit/EnabledPropagator.qunit.js +2 -3
  381. package/test/sap/ui/core/qunit/FastNavigationWithWebComponents.qunit.js +1 -1
  382. package/test/sap/ui/core/qunit/FieldGroup.qunit.js +1 -1
  383. package/test/sap/ui/core/qunit/FocusHandler.qunit.js +1 -1
  384. package/test/sap/ui/core/qunit/Fragment.qunit.js +1 -1
  385. package/test/sap/ui/core/qunit/Fragment_legacyAPIs.qunit.js +1 -1
  386. package/test/sap/ui/core/qunit/HTML.qunit.js +1 -1
  387. package/test/sap/ui/core/qunit/Icon.qunit.js +1 -1
  388. package/test/sap/ui/core/qunit/InvisibleText.qunit.js +1 -1
  389. package/test/sap/ui/core/qunit/LRUPersistentCache.qunit.js +8 -4
  390. package/test/sap/ui/core/qunit/LocalBusyIndicator.qunit.js +1 -1
  391. package/test/sap/ui/core/qunit/RenderManager.qunit.js +1 -1
  392. package/test/sap/ui/core/qunit/Rendering.qunit.js +1 -1
  393. package/test/sap/ui/core/qunit/ResizeHandler.qunit.js +1 -1
  394. package/test/sap/ui/core/qunit/ScrollBar.qunit.js +1 -1
  395. package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +1 -1
  396. package/test/sap/ui/core/qunit/StashedControlSupport.qunit.js +1 -1
  397. package/test/sap/ui/core/qunit/StashedControlSupport_unavoidablySync.qunit.js +1 -1
  398. package/test/sap/ui/core/qunit/ThemeManager.qunit.js +1 -1
  399. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +1 -1
  400. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -1
  401. package/test/sap/ui/core/qunit/Theming.qunit.js +1 -1
  402. package/test/sap/ui/core/qunit/Theming_default_and_fallback.qunit.js +1 -1
  403. package/test/sap/ui/core/qunit/TooltipBase.qunit.js +1 -1
  404. package/test/sap/ui/core/qunit/UIArea.qunit.js +1 -1
  405. package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.qunit.js +1 -1
  406. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +1 -8
  407. package/test/sap/ui/core/qunit/component/Component.qunit.js +36 -36
  408. package/test/sap/ui/core/qunit/component/ComponentContainer.qunit.js +2 -10
  409. package/test/sap/ui/core/qunit/component/ComponentContainer_unavoidablySync.qunit.js +2 -10
  410. package/test/sap/ui/core/qunit/component/ComponentSupport.qunit.js +5 -5
  411. package/test/sap/ui/core/qunit/component/Component_containedInLibrary.qunit.js +10 -10
  412. package/test/sap/ui/core/qunit/component/Component_dependencyLoading.qunit.js +7 -7
  413. package/test/sap/ui/core/qunit/component/Component_dependencyLoading_unavoidablySync.qunit.js +6 -6
  414. package/test/sap/ui/core/qunit/component/Component_unavoidablySync.qunit.js +8 -8
  415. package/test/sap/ui/core/qunit/component/Customizing.qunit.js +1 -1
  416. package/test/sap/ui/core/qunit/component/Customizing_async.qunit.js +3 -3
  417. package/test/sap/ui/core/qunit/component/Customizing_disabled.qunit.js +1 -1
  418. package/test/sap/ui/core/qunit/component/Customizing_legacyAPIs.qunit.js +2 -2
  419. package/test/sap/ui/core/qunit/component/Customizing_multi.qunit.js +1 -1
  420. package/test/sap/ui/core/qunit/component/Customizing_unavoidablySync.qunit.js +1 -1
  421. package/test/sap/ui/core/qunit/component/ExtensionPoint.qunit.js +3 -3
  422. package/test/sap/ui/core/qunit/component/ExtensionPoint_unavoidablySync.qunit.js +1 -1
  423. package/test/sap/ui/core/qunit/component/Manifest.qunit.js +10 -10
  424. package/test/sap/ui/core/qunit/component/Manifest_unavoidablySync.qunit.js +1 -1
  425. package/test/sap/ui/core/qunit/component/Metadata.qunit.js +47 -47
  426. package/test/sap/ui/core/qunit/component/Metadata_unavoidablySync.qunit.js +33 -33
  427. package/test/sap/ui/core/qunit/component/Models.qunit.js +57 -57
  428. package/test/sap/ui/core/qunit/component/Models_unavoidablySync.qunit.js +12 -12
  429. package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +2 -2
  430. package/test/sap/ui/core/qunit/component/UIComponent_unavoidablySync.qunit.js +1 -1
  431. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/Component.js +2 -2
  432. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component1/manifest.json +3 -3
  433. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/Component.js +2 -2
  434. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component2/manifest.json +1 -1
  435. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/Component.js +2 -2
  436. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component3/manifest.json +2 -2
  437. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/Component.js +2 -2
  438. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component4/manifest.json +2 -2
  439. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/Component.js +2 -2
  440. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component5/manifest.json +2 -2
  441. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/Component.js +2 -2
  442. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/component6/manifest.json +2 -2
  443. package/test/sap/ui/core/qunit/component/testdata/dependencyLoading/componentVariant/manifest.json +2 -2
  444. package/test/sap/ui/core/qunit/component/testdata/embedded/Component.js +2 -2
  445. package/test/sap/ui/core/qunit/component/testdata/embedded/manifest.json +2 -2
  446. package/test/sap/ui/core/qunit/component/testdata/inherit/Component.js +2 -2
  447. package/test/sap/ui/core/qunit/component/testdata/inherit/component.json +1 -1
  448. package/test/sap/ui/core/qunit/component/testdata/inherit/manifest.json +9 -9
  449. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/Component.js +2 -2
  450. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/component.json +1 -1
  451. package/test/sap/ui/core/qunit/component/testdata/inherit/parent/manifest.json +9 -9
  452. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/Component.js +2 -2
  453. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/manifest.json +3 -3
  454. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/Component.js +2 -2
  455. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentA/manifest.json +2 -2
  456. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/Component.js +2 -2
  457. package/test/sap/ui/core/qunit/component/testdata/inheritAsync/parentB/manifest.json +3 -3
  458. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/Component.js +2 -2
  459. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/manifest.json +3 -3
  460. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/Component.js +2 -2
  461. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentA/manifest.json +2 -2
  462. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/Component.js +2 -2
  463. package/test/sap/ui/core/qunit/component/testdata/inheritAsyncError/parentB/manifest.json +3 -3
  464. package/test/sap/ui/core/qunit/component/testdata/manifestload/manifest.json +2 -2
  465. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/Component.js +1 -1
  466. package/test/sap/ui/core/qunit/component/testdata/minUI5Version/manifest.json +1 -1
  467. package/test/sap/ui/core/qunit/component/testdata/mixed/Component.js +1 -1
  468. package/test/sap/ui/core/qunit/component/testdata/mixed/manifest.json +9 -9
  469. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/Component.js +1 -1
  470. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/component.json +8 -8
  471. package/test/sap/ui/core/qunit/component/testdata/mixed_legacyAPIs/manifest.json +9 -9
  472. package/test/sap/ui/core/qunit/component/testdata/modelsMisc/Component.js +1 -1
  473. package/test/sap/ui/core/qunit/component/testdata/modelsMisc/manifest.json +1 -1
  474. package/test/sap/ui/core/qunit/component/testdata/other/Component.js +2 -2
  475. package/test/sap/ui/core/qunit/component/testdata/routerClass/Component.js +1 -1
  476. package/test/sap/ui/core/qunit/component/testdata/routerClass/manifest.json +2 -2
  477. package/test/sap/ui/core/qunit/component/testdata/routerPreloading/Component.js +1 -1
  478. package/test/sap/ui/core/qunit/component/testdata/routerPreloading/manifest.json +2 -2
  479. package/test/sap/ui/core/qunit/component/testdata/routing/Component.js +2 -2
  480. package/test/sap/ui/core/qunit/component/testdata/routing/RouterExtension.js +1 -1
  481. package/test/sap/ui/core/qunit/component/testdata/routing/TestView.js +1 -8
  482. package/test/sap/ui/core/qunit/component/testdata/routing/targets/Component.js +2 -2
  483. package/test/sap/ui/core/qunit/component/testdata/routing_legacyAPIs/Component.js +5 -5
  484. package/test/sap/ui/core/qunit/component/testdata/routing_legacyAPIs/targets/Component.js +5 -5
  485. package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/Component.js +1 -1
  486. package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/manifest.json +2 -2
  487. package/test/sap/ui/core/qunit/component/testdata/terminologies/Component.js +1 -1
  488. package/test/sap/ui/core/qunit/component/testdata/terminologies/Main.controller.js +1 -1
  489. package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Component.js +1 -1
  490. package/test/sap/ui/core/qunit/component/testdata/terminologies/component1/Main.controller.js +1 -1
  491. package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Component.js +1 -1
  492. package/test/sap/ui/core/qunit/component/testdata/terminologies/component2/Main.controller.js +1 -1
  493. package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Component.js +1 -1
  494. package/test/sap/ui/core/qunit/component/testdata/terminologies/component3/Main.controller.js +1 -1
  495. package/test/sap/ui/core/qunit/component/testdata/terminologies/component4/Component.js +1 -1
  496. package/test/sap/ui/core/qunit/component/testdata/terminologies/component4/Main.controller.js +1 -1
  497. package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Component.js +1 -1
  498. package/test/sap/ui/core/qunit/component/testdata/terminologies/component5/Main.controller.js +1 -1
  499. package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Component.js +1 -1
  500. package/test/sap/ui/core/qunit/component/testdata/terminologies/reuse/Main.controller.js +1 -1
  501. package/test/sap/ui/core/qunit/component/testdata/v1/Component.js +2 -2
  502. package/test/sap/ui/core/qunit/component/testdata/v1/component.json +8 -8
  503. package/test/sap/ui/core/qunit/component/testdata/v1empty/Component.js +2 -2
  504. package/test/sap/ui/core/qunit/component/testdata/v1empty/component.json +1 -1
  505. package/test/sap/ui/core/qunit/component/testdata/v1inline/Component.js +10 -10
  506. package/test/sap/ui/core/qunit/component/testdata/v1missing/Component.js +2 -2
  507. package/test/sap/ui/core/qunit/component/testdata/v2/Component.js +2 -2
  508. package/test/sap/ui/core/qunit/component/testdata/v2/manifest.json +9 -9
  509. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/Component.js +2 -2
  510. package/test/sap/ui/core/qunit/component/testdata/v2asyncRootView/manifest.json +9 -9
  511. package/test/sap/ui/core/qunit/component/testdata/v2empty/Component.js +1 -1
  512. package/test/sap/ui/core/qunit/component/testdata/v2empty/manifest.json +1 -1
  513. package/test/sap/ui/core/qunit/component/testdata/v2inline/Component.js +10 -10
  514. package/test/sap/ui/core/qunit/component/testdata/v2missing/Component.js +1 -1
  515. package/test/sap/ui/core/qunit/component/testdata/v2models/empty/Component.js +3 -3
  516. package/test/sap/ui/core/qunit/component/testdata/v2models/empty/manifest.json +1 -1
  517. package/test/sap/ui/core/qunit/component/testdata/v2models/extension/Component.js +4 -4
  518. package/test/sap/ui/core/qunit/component/testdata/v2models/parent/Component.js +12 -12
  519. package/test/sap/ui/core/qunit/component/testdata/v2models/parent/CustomModel.js +2 -2
  520. package/test/sap/ui/core/qunit/component/testdata/v2models/parent/ModelNotDefined.js +2 -2
  521. package/test/sap/ui/core/qunit/component/testdata/v2models/parentValid/Component.js +11 -11
  522. package/test/sap/ui/core/qunit/component/testdata/v2models/ui5Urls/Component.js +2 -2
  523. package/test/sap/ui/core/qunit/component/testdata/v2models/ui5Urls/manifest.json +2 -2
  524. package/test/sap/ui/core/qunit/component/testdata/v2version/Component.js +2 -2
  525. package/test/sap/ui/core/qunit/component/testdata/v2version/manifest.json +2 -2
  526. package/test/sap/ui/core/qunit/component/testdata/v4models/Component.js +3 -3
  527. package/test/sap/ui/core/qunit/component/testdata/v4models/cacheTokens/Component.js +3 -3
  528. package/test/sap/ui/core/qunit/component/testdata/v4models/sapSystem/Component.js +2 -2
  529. package/test/sap/ui/core/qunit/component/testdata/v4models/sapSystem/manifest.json +1 -1
  530. package/test/sap/ui/core/qunit/component/testdata/v4models/unsupportedVersion/Component.js +3 -3
  531. package/test/sap/ui/core/qunit/component/testdata/verticalLayout/Component.js +1 -1
  532. package/test/sap/ui/core/qunit/component/testdata/verticalLayout_legacyAPIs/Component.js +1 -1
  533. package/test/sap/ui/core/qunit/component/testdata/view/Main.controller.js +2 -2
  534. package/test/sap/ui/core/qunit/component/testdata/view/Main.view.xml +1 -1
  535. package/test/sap/ui/core/qunit/component/testdata/view/MainAsync.view.xml +1 -1
  536. package/test/sap/ui/core/qunit/component/testdata/view/MainAsyncWithWrongNesting.view.xml +1 -1
  537. package/test/sap/ui/core/qunit/component/testdata/view/Nested.view.xml +1 -1
  538. package/test/sap/ui/core/qunit/component/testsuite.component.qunit.js +2 -8
  539. package/test/sap/ui/core/qunit/composite/XMLComposite.qunit.js +1 -1
  540. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +1 -1
  541. package/test/sap/ui/core/qunit/dnd/DragInfo.qunit.js +1 -1
  542. package/test/sap/ui/core/qunit/dnd/DropInfo.qunit.js +1 -1
  543. package/test/sap/ui/core/qunit/fieldhelp/FieldHelp.qunit.js +184 -51
  544. package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +2 -0
  545. package/test/sap/ui/core/qunit/generic/ControlMemoryLeaks.qunit.js +1 -1
  546. package/test/sap/ui/core/qunit/generic/DuplicateIdCheck.qunit.js +1 -1
  547. package/test/sap/ui/core/qunit/generic/legacy/ControlIterator.qunit.js +1 -1
  548. package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +1 -1
  549. package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +1 -1
  550. package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +188 -61
  551. package/test/sap/ui/core/qunit/isBehindOtherElement.qunit.js +1 -1
  552. package/test/sap/ui/core/qunit/jquery.sap.events.qunit.js +1 -1
  553. package/test/sap/ui/core/qunit/jquery.sap.ui.qunit.js +1 -1
  554. package/test/sap/ui/core/qunit/messages/messagesUsage.qunit.js +1 -1
  555. package/test/sap/ui/core/qunit/mvc/AnyView.qunit.js +1 -1
  556. package/test/sap/ui/core/qunit/mvc/AnyViewAsync.qunit.js +1 -1
  557. package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +1 -1
  558. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync_unavoidablyUsingInlineStyle.qunit.js +1 -1
  559. package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +1 -1
  560. package/test/sap/ui/core/qunit/mvc/XMLView.qunit.js +1 -1
  561. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +1 -1
  562. package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing_legacyAPIs.qunit.js +1 -1
  563. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyViewAsync_legacyAPIs.qunit.js +1 -1
  564. package/test/sap/ui/core/qunit/mvc_legacyAPIs/AnyView_legacyAPIs.qunit.js +1 -1
  565. package/test/sap/ui/core/qunit/mvc_legacyAPIs/HTMLView_legacyAPIs.qunit.js +1 -1
  566. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLTemplateProcessorRequireXML_legacyAPIs.qunit.js +1 -1
  567. package/test/sap/ui/core/qunit/mvc_legacyAPIs/XMLView_legacyAPIs.qunit.js +1 -1
  568. package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +1 -1
  569. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +511 -21
  570. package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +382 -3
  571. package/test/sap/ui/core/qunit/odata/v2/V2ODataModel.qunit.js +1 -1
  572. package/test/sap/ui/core/qunit/odata/v2/V2ODataModelB.qunit.js +1 -1
  573. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +28 -4
  574. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +34 -20
  575. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +80 -15
  576. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +90 -6
  577. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1201 -202
  578. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +34 -0
  579. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +38 -0
  580. package/test/sap/ui/core/qunit/odata/v4/data/annotations_tea_busi.xml +14 -0
  581. package/test/sap/ui/core/qunit/odata/v4/data/metadata_tea_busi_supplier.xml +36 -0
  582. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +319 -38
  583. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +22 -9
  584. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +2 -2
  585. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +53 -10
  586. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +6 -0
  587. package/test/sap/ui/core/qunit/odata/v4/lib/_TreeState.qunit.js +30 -1
  588. package/test/sap/ui/core/qunit/opa/Opa5PageObject.qunit.js +1 -1
  589. package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +1 -1
  590. package/test/sap/ui/core/qunit/opa/RecordReplay.qunit.js +1 -1
  591. package/test/sap/ui/core/qunit/opa/_ControlFinder.qunit.js +1 -1
  592. package/test/sap/ui/core/qunit/opa/actions/Action.qunit.js +1 -1
  593. package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +1 -1
  594. package/test/sap/ui/core/qunit/opa/actions/Press.qunit.js +1 -1
  595. package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +1 -1
  596. package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +1 -1
  597. package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +1 -1
  598. package/test/sap/ui/core/qunit/opa/autowaiter/_navigationContainerWaiter.js +1 -1
  599. package/test/sap/ui/core/qunit/opa/autowaiter/_resourceWaiter.js +1 -1
  600. package/test/sap/ui/core/qunit/opa/fixture/bindingPath.js +1 -1
  601. package/test/sap/ui/core/qunit/opa/matchers/Interactable.qunit.js +1 -1
  602. package/test/sap/ui/core/qunit/opa/matchers/LabelFor.qunit.js +1 -1
  603. package/test/sap/ui/core/qunit/opa/matchers/Sibling.qunit.js +1 -1
  604. package/test/sap/ui/core/qunit/opa/matchers/Visible.qunit.js +1 -1
  605. package/test/sap/ui/core/qunit/opa/matchers/_Busy.qunit.js +1 -1
  606. package/test/sap/ui/core/qunit/opa/matchers/_Editable.qunit.js +1 -1
  607. package/test/sap/ui/core/qunit/opa/matchers/_Enabled.qunit.js +1 -1
  608. package/test/sap/ui/core/qunit/opa/matchers/_Visitor.qunit.js +1 -1
  609. package/test/sap/ui/core/qunit/opa/opa5/actions.qunit.js +1 -1
  610. package/test/sap/ui/core/qunit/opa/opa5/basics.qunit.js +1 -1
  611. package/test/sap/ui/core/qunit/opa/opa5/logging.qunit.js +1 -1
  612. package/test/sap/ui/core/qunit/opa/opa5/matchers.qunit.js +1 -1
  613. package/test/sap/ui/core/qunit/opa/selectors/_BindingPath.js +1 -1
  614. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorGenerator.js +1 -1
  615. package/test/sap/ui/core/qunit/opa/selectors/_ControlSelectorValidator.js +1 -1
  616. package/test/sap/ui/core/qunit/opa/selectors/_DropdownItem.js +1 -1
  617. package/test/sap/ui/core/qunit/opa/selectors/_GlobalID.js +1 -1
  618. package/test/sap/ui/core/qunit/opa/selectors/_LabelFor.js +1 -1
  619. package/test/sap/ui/core/qunit/opa/selectors/_Properties.js +1 -1
  620. package/test/sap/ui/core/qunit/opa/selectors/_Selector.js +1 -1
  621. package/test/sap/ui/core/qunit/opa/selectors/_TableRowItem.js +1 -1
  622. package/test/sap/ui/core/qunit/opa/selectors/_ViewID.js +1 -1
  623. package/test/sap/ui/core/qunit/opa/testsuite.opa.qunit.js +448 -426
  624. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +8 -4
  625. package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +1 -1
  626. package/test/sap/ui/core/qunit/routing/Placeholder.qunit.js +1 -1
  627. package/test/sap/ui/core/qunit/routing/PlaceholderOptOut.qunit.js +1 -1
  628. package/test/sap/ui/core/qunit/tmpl/Template.qunit.js +1 -1
  629. package/test/sap/ui/core/qunit/ui5classes/ManagedObject.qunit.js +62 -1
  630. package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +1 -1
  631. package/test/sap/ui/core/qunit/util/LabelEnablement.qunit.js +1 -1
  632. package/test/sap/ui/core/qunit/util/Popup.qunit.js +1 -1
  633. package/test/sap/ui/core/qunit/util/ResponsivePaddingsEnablement.qunit.js +1 -1
  634. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +1 -1
  635. package/test/sap/ui/core/qunit/util/jquery.sap.dom.qunit.js +1 -1
  636. package/test/sap/ui/core/qunit/util/reflection/BaseTreeModifier.qunit.js +3 -3
  637. package/test/sap/ui/core/qunit/util/reflection/JsControlTreeModifier.qunit.js +3 -3
  638. package/test/sap/ui/core/qunit/util/reflection/XmlTreeModifier.qunit.js +3 -3
  639. package/test/sap/ui/core/qunit/util/reflection/testdata/comp/Component.js +10 -0
  640. package/test/sap/ui/core/qunit/util/reflection/testsuite.reflection.qunit.html +14 -0
  641. package/test/sap/ui/core/qunit/util/reflection/testsuite.reflection.qunit.js +30 -0
  642. package/test/sap/ui/core/qunit/util/testsuite.util.qunit.js +3 -56
  643. package/test/sap/ui/core/relnotes/changes-1.126.json +1 -1
  644. package/test/sap/ui/core/relnotes/changes-1.127.json +52 -0
  645. package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
  646. package/test/sap/ui/qunit/TestRunner.js +721 -521
  647. package/test/sap/ui/qunit/testrunner.css +123 -20
  648. package/test/sap/ui/qunit/testrunner.html +57 -287
  649. /package/test/sap/ui/core/qunit/{component/testdata/other → util/reflection/testdata/comp}/fragment-withTemplating.fragment.xml +0 -0
@@ -3,6 +3,7 @@ sap.ui.define([
3
3
  "./helper/_timezones",
4
4
  "sap/base/Log",
5
5
  "sap/base/i18n/Formatting",
6
+ "sap/base/i18n/LanguageTag",
6
7
  "sap/base/i18n/Localization",
7
8
  "sap/base/i18n/date/TimezoneUtils",
8
9
  "sap/base/util/LoaderExtensions",
@@ -12,8 +13,8 @@ sap.ui.define([
12
13
  "sap/ui/core/Locale",
13
14
  "sap/ui/core/LocaleData",
14
15
  "sap/ui/core/date/CalendarWeekNumbering"
15
- ], function(timezones, Log, Formatting, Localization, TimezoneUtils, LoaderExtensions, CalendarType, Configuration, Lib,
16
- Locale, LocaleData, CalendarWeekNumbering) {
16
+ ], function(timezones, Log, Formatting, LanguageTag, Localization, TimezoneUtils, LoaderExtensions, CalendarType,
17
+ Configuration, Lib, Locale, LocaleData, CalendarWeekNumbering) {
17
18
  "use strict";
18
19
  const aSupportedLanguages = ["ar", "ar_EG", "ar_SA", "bg", "ca", "cnr", "cs", "cy", "da", "de", "de_AT", "de_CH",
19
20
  "el", "el_CY", "en", "en_AU", "en_GB", "en_HK", "en_IE", "en_IN", "en_NZ", "en_PG", "en_SG", "en_ZA", "es",
@@ -22,14 +23,18 @@ sap.ui.define([
22
23
  "ms", "nb", "nl", "nl_BE", "pl", "pt", "pt_PT", "ro", "ru", "ru_UA", "sk", "sl", "sr", "sr_Latn", "sv", "th",
23
24
  "tr", "uk", "vi", "zh_CN", "zh_HK", "zh_SG", "zh_TW"];
24
25
 
25
- QUnit.module("Locale Data Loading", {
26
- beforeEach: function(assert) {
26
+ QUnit.module("sap.ui.core.LocaleData", {
27
+ beforeEach: function () {
27
28
  this.oLogMock = this.mock(Log);
28
29
  this.oLogMock.expects("error").never();
29
30
  this.oLogMock.expects("warning").never();
30
- this.loadResourceSpy = this.spy(LoaderExtensions, "loadResource");
31
- }, afterEach: function(assert) {
32
- this.loadResourceSpy.restore();
31
+ Formatting.setUnitMappings();
32
+ Formatting.setCustomUnits();
33
+ LocaleData._mTimezoneTranslations = {};
34
+ },
35
+ after() {
36
+ // Only required after the test run is through for performance reasons
37
+ LocaleData._resetLocaleDataCache();
33
38
  }
34
39
  });
35
40
 
@@ -38,56 +43,63 @@ sap.ui.define([
38
43
  assert.deepEqual(LocaleData._cldrLocales.slice().sort(), aSupportedLanguages.slice().sort());
39
44
  });
40
45
 
46
+ //*********************************************************************************************
41
47
  QUnit.test("LocaleData caching of data", function(assert) {
48
+ LocaleData._resetLocaleDataCache();
49
+ const oLoadResourceSpy = this.spy(LoaderExtensions, "loadResource");
42
50
  LocaleData.getInstance(new Locale("en_US"));
43
51
  // Get Instance again to test cache
44
52
  LocaleData.getInstance(new Locale("en_US"));
45
- assert.equal(this.loadResourceSpy.callCount, 1, "called only once for same locale");
53
+ assert.strictEqual(oLoadResourceSpy.callCount, 1, "called only once for same locale");
46
54
  });
47
55
 
56
+ //*********************************************************************************************
48
57
  QUnit.test("LocaleData mapping", function(assert) {
58
+ LocaleData._resetLocaleDataCache();
59
+ const oLoadResourceSpy = this.spy(LoaderExtensions, "loadResource");
49
60
  // Serbian Latin
50
61
  // sr_Latn -> sr-Latn
51
62
  var oLocaleData = LocaleData.getInstance(new Locale("sr_Latn"));
52
- assert.equal(this.loadResourceSpy.callCount, 1, "called for sr_Latn");
53
- assert.equal(this.loadResourceSpy.getCall(0).args[0], "sap/ui/core/cldr/sr_Latn.json", "sr_Latn is loaded");
54
- assert.equal(oLocaleData.sCLDRLocaleId, "sr-Latn");
63
+ assert.strictEqual(oLoadResourceSpy.callCount, 1, "called for sr_Latn");
64
+ assert.strictEqual(oLoadResourceSpy.getCall(0).args[0], "sap/ui/core/cldr/sr_Latn.json", "sr_Latn is loaded");
65
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "sr-Latn");
55
66
 
56
67
  // sh -> sr-Latn
57
68
  oLocaleData = LocaleData.getInstance(new Locale("sh"));
58
- assert.equal(this.loadResourceSpy.callCount, 1, "not called for sh because sr_Latn already loaded");
59
- assert.equal(this.loadResourceSpy.getCall(0).args[0], "sap/ui/core/cldr/sr_Latn.json", "sr_Latn already loaded");
60
- assert.equal(oLocaleData.sCLDRLocaleId, "sr-Latn");
69
+ assert.strictEqual(oLoadResourceSpy.callCount, 1, "not called for sh because sr_Latn already loaded");
70
+ assert.strictEqual(oLoadResourceSpy.getCall(0).args[0],
71
+ "sap/ui/core/cldr/sr_Latn.json", "sr_Latn already loaded");
72
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "sr-Latn");
61
73
 
62
74
  // sr -> sr
63
75
  oLocaleData = LocaleData.getInstance(new Locale("sr"));
64
- assert.equal(this.loadResourceSpy.callCount, 2, "called for sr");
65
- assert.equal(this.loadResourceSpy.getCall(1).args[0], "sap/ui/core/cldr/sr.json", "sr is loaded");
66
- assert.equal(oLocaleData.sCLDRLocaleId, "sr");
76
+ assert.strictEqual(oLoadResourceSpy.callCount, 2, "called for sr");
77
+ assert.strictEqual(oLoadResourceSpy.getCall(1).args[0], "sap/ui/core/cldr/sr.json", "sr is loaded");
78
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "sr");
67
79
 
68
80
  // zh_Hant -> zh-TW
69
81
  oLocaleData = LocaleData.getInstance(new Locale("zh_Hant"));
70
- assert.equal(oLocaleData.sCLDRLocaleId, "zh-TW");
82
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "zh-TW");
71
83
 
72
84
  // zh_Hans -> zh-CN
73
85
  oLocaleData = LocaleData.getInstance(new Locale("zh_Hans"));
74
- assert.equal(oLocaleData.sCLDRLocaleId, "zh-CN");
86
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "zh-CN");
75
87
 
76
88
  // no -> nb
77
89
  oLocaleData = LocaleData.getInstance(new Locale("no"));
78
- assert.equal(oLocaleData.sCLDRLocaleId, "nb");
90
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "nb");
79
91
 
80
92
  // de_CH (with region) -> de-CH
81
93
  oLocaleData = LocaleData.getInstance(new Locale("de_CH"));
82
- assert.equal(oLocaleData.sCLDRLocaleId, "de-CH");
94
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "de-CH");
83
95
 
84
96
  // de (without region) -> de
85
97
  oLocaleData = LocaleData.getInstance(new Locale("de"));
86
- assert.equal(oLocaleData.sCLDRLocaleId, "de");
98
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "de");
87
99
 
88
100
  // invalid (falls back to en) -> en
89
101
  oLocaleData = LocaleData.getInstance(new Locale("invalid"));
90
- assert.equal(oLocaleData.sCLDRLocaleId, "en");
102
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "en");
91
103
  });
92
104
 
93
105
  aSupportedLanguages.forEach(function(sLanguage) {
@@ -98,6 +110,8 @@ sap.ui.define([
98
110
  assert.ok(oLocaleData.getCurrentLanguageName(), "Current language is present for locale: '" + sLanguage + "'");
99
111
  });
100
112
  });
113
+
114
+ //*********************************************************************************************
101
115
  [
102
116
  {sLocale: "cnr", sName: "crnogorski"},
103
117
  {sLocale: "cnr_ME", sName: "crnogorski (Crna Gora)"},
@@ -145,28 +159,6 @@ sap.ui.define([
145
159
  assert.strictEqual(LocaleData.prototype.getCurrentLanguageName.call(oLocaleData), "~name");
146
160
  });
147
161
 
148
- QUnit.module("Locale data types", {
149
- beforeEach: function(assert) {
150
- this.oLogMock = this.mock(Log);
151
- this.oLogMock.expects("error").never();
152
- this.oLogMock.expects("warning").never();
153
- //ensure custom unit mappings and custom units are reset
154
- Formatting.setUnitMappings();
155
- Formatting.setCustomUnits();
156
-
157
- assert.equal(Formatting.getCustomUnits(), undefined, "units must be undefined");
158
- assert.equal(Formatting.getUnitMappings(), undefined, "unit mappings must be undefined");
159
- }, afterEach: function(assert) {
160
- //ensure custom unit mappings and custom units are reset
161
- Formatting.setUnitMappings();
162
- Formatting.setCustomUnits();
163
-
164
- assert.equal(Formatting.getCustomUnits(), undefined, "units must be undefined");
165
- assert.equal(Formatting.getUnitMappings(), undefined, "unit mappings must be undefined");
166
- }
167
- });
168
-
169
-
170
162
  QUnit.test("Currency digits", function(assert) {
171
163
  var oLocaleData = LocaleData.getInstance(new Locale("en_US"));
172
164
  assert.equal(oLocaleData.getCurrencyDigits("USD"), 2, "2 digits fuer USD");
@@ -448,9 +440,6 @@ sap.ui.define([
448
440
  "Legacy unit is not found in custom unit mapping");
449
441
  assert.strictEqual(oLocaleData.getUnitFormat("concentr-milligram-per-deciliter").displayName, "mg/dL",
450
442
  "Legacy unit is mapped to new unit in CLDR");
451
-
452
- //reset unit mappings
453
- Formatting.setUnitMappings();
454
443
  });
455
444
 
456
445
  QUnit.test("Unit Mappings", function(assert) {
@@ -603,19 +592,6 @@ sap.ui.define([
603
592
  assert.equal(oLocaleData.getCurrencyDigits("JPY"), 0, "number of digits for Japanese Yen");
604
593
  });
605
594
 
606
- QUnit.module("sap.ui.core.LocaleData", {
607
- beforeEach: function () {
608
- this.oLogMock = this.mock(Log);
609
- this.oLogMock.expects("error").never();
610
- this.oLogMock.expects("warning").never();
611
- LocaleData._mTimezoneTranslations = {};
612
- },
613
- after: function () {
614
- // Make sure that the translation cache is deleted to reduce the memory consumption after the test
615
- LocaleData._mTimezoneTranslations = {};
616
- }
617
- });
618
-
619
595
  QUnit.test("getCurrencySymbols", function(assert) {
620
596
  Formatting.addCustomCurrencies({
621
597
  "BTC": {
@@ -1439,4 +1415,155 @@ sap.ui.define([
1439
1415
  "~result");
1440
1416
  });
1441
1417
  });
1418
+
1419
+ //*********************************************************************************************
1420
+ QUnit.test("_resetLocaleDataCache", function(assert) {
1421
+ LocaleData._resetLocaleDataCache();
1422
+ const oLoadResourceSpy = this.spy(LoaderExtensions, "loadResource");
1423
+
1424
+ // code under test - loadResource is called once
1425
+ LocaleData.getInstance(new Locale("de_DE"));
1426
+ LocaleData.getInstance(new Locale("de_DE"));
1427
+
1428
+ assert.strictEqual(oLoadResourceSpy.callCount, 1);
1429
+
1430
+ // code under test - loadResource is called again after the reset of the cache
1431
+ LocaleData._resetLocaleDataCache();
1432
+ LocaleData.getInstance(new Locale("de_DE"));
1433
+
1434
+ assert.strictEqual(oLoadResourceSpy.callCount, 2);
1435
+ });
1436
+
1437
+ //*********************************************************************************************
1438
+ QUnit.test("requestInstance", function(assert) {
1439
+ LocaleData._resetLocaleDataCache();
1440
+ const oLoaderExtensionsMock = this.mock(LoaderExtensions);
1441
+ oLoaderExtensionsMock.expects("loadResource")
1442
+ .withExactArgs("sap/ui/core/cldr/ar_SA.json", {"async": true, dataType: "json", failOnError: false})
1443
+ .returns(Promise.resolve({"scripts": {"baz": "foo"}, "weekData-firstDay": 1, "__fallbackLocale": "ar"}));
1444
+ oLoaderExtensionsMock.expects("loadResource")
1445
+ .withExactArgs("sap/ui/core/cldr/ar.json", {"async": true, dataType: "json", failOnError: false})
1446
+ .returns(Promise.resolve({"scripts": {"foo": "bar"}, "weekData-firstDay": 0}));
1447
+
1448
+ // code under test
1449
+ const pLocaleData = LocaleData.requestInstance(new LanguageTag("ar_SA"));
1450
+
1451
+ assert.ok(pLocaleData instanceof Promise);
1452
+
1453
+ return pLocaleData.then((oLocaleData) => {
1454
+ assert.ok(oLocaleData instanceof LocaleData);
1455
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "ar-SA");
1456
+ assert.strictEqual(oLocaleData.getFirstDayOfWeek(), 1, "Specific data wins over fallback data");
1457
+ assert.deepEqual(oLocaleData.getScripts(), {"baz": "foo", "foo": "bar"}, "'foo' is added from locale 'ar'");
1458
+ assert.ok(!oLocaleData.hasOwnProperty("loaded"));
1459
+
1460
+ // code under test - no request when synchronously creating a LocaleData instance for the same language tag
1461
+ const oSyncLocaleData = LocaleData.getInstance(new LanguageTag("ar_SA"));
1462
+
1463
+ assert.deepEqual(oLocaleData, oSyncLocaleData);
1464
+ });
1465
+ });
1466
+
1467
+ //*********************************************************************************************
1468
+ QUnit.test("requestInstance for custom locale", function(assert) {
1469
+ LocaleData._resetLocaleDataCache();
1470
+ this.mock(LoaderExtensions).expects("loadResource")
1471
+ .withExactArgs("sap/ui/core/cldr/de.json", {"async": true, dataType: "json", failOnError: false})
1472
+ .returns(Promise.resolve({"scripts": {"baz": "foo"}}));
1473
+ const oFormattingMock = this.mock(Formatting);
1474
+ oFormattingMock.expects("getCustomLocaleData").withExactArgs().returns("~mCustomLocaleData");
1475
+
1476
+ // code under test
1477
+ const pLocaleData = LocaleData.requestInstance(new LanguageTag("de-x-sapufmt"));
1478
+
1479
+ assert.ok(pLocaleData instanceof Promise);
1480
+
1481
+ return pLocaleData.then((oLocaleData) => {
1482
+ assert.ok(oLocaleData instanceof LocaleData);
1483
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "de");
1484
+ assert.deepEqual(oLocaleData.getScripts(), {"baz":"foo"});
1485
+ assert.strictEqual(oLocaleData.mCustomData, "~mCustomLocaleData");
1486
+
1487
+ oFormattingMock.expects("getCustomLocaleData").withExactArgs().returns("~mCustomLocaleData");
1488
+
1489
+ // code under test - sync loading the same language tag
1490
+ const oSyncLocaleData = LocaleData.getInstance(new LanguageTag("de-x-sapufmt"));
1491
+
1492
+ assert.deepEqual(oLocaleData, oSyncLocaleData);
1493
+ });
1494
+ });
1495
+
1496
+ //*********************************************************************************************
1497
+ QUnit.test("requestInstance: loadResource returns null", function(assert) {
1498
+ LocaleData._resetLocaleDataCache();
1499
+ const oLoaderExtensionsMock = this.mock(LoaderExtensions);
1500
+ oLoaderExtensionsMock.expects("loadResource")
1501
+ .withExactArgs("sap/ui/core/cldr/de.json", {"async": true, dataType: "json", failOnError: false})
1502
+ .returns(Promise.resolve(null));
1503
+ oLoaderExtensionsMock.expects("loadResource")
1504
+ .withExactArgs("sap/ui/core/cldr/en.json", {"async": true, dataType: "json", failOnError: false})
1505
+ .returns(Promise.resolve({"scripts": {"baz": "foo"}}));
1506
+
1507
+ // code under test
1508
+ const pLocaleData = LocaleData.requestInstance(new LanguageTag("de"));
1509
+
1510
+ assert.ok(pLocaleData instanceof Promise);
1511
+
1512
+ return pLocaleData.then((oLocaleData) => {
1513
+ assert.ok(oLocaleData instanceof LocaleData);
1514
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "en");
1515
+ assert.deepEqual(oLocaleData.getScripts(), {"baz": "foo"});
1516
+ });
1517
+ });
1518
+
1519
+ //*********************************************************************************************
1520
+ // SNOW: DINC0216128 - As described in the ticket, as of now must allow synchronous request to overtake the async
1521
+ // loading of the locale data
1522
+ QUnit.test("requestInstance: loadResource is called for synchronous request while async request is still running",
1523
+ function(assert) {
1524
+ LocaleData._resetLocaleDataCache();
1525
+ const oLoaderExtensionsMock = this.mock(LoaderExtensions);
1526
+ oLoaderExtensionsMock.expects("loadResource")
1527
+ .withExactArgs("sap/ui/core/cldr/de.json", {"async": true, dataType: "json", failOnError: false})
1528
+ .returns(Promise.resolve({"scripts": {"baz": "foo"}}));
1529
+ oLoaderExtensionsMock.expects("loadResource")
1530
+ .withExactArgs("sap/ui/core/cldr/de.json", {"async": undefined, dataType: "json", failOnError: false})
1531
+ .returns({"scripts": {"baz": "foo"}});
1532
+
1533
+ // code under test
1534
+ const pLocaleData = LocaleData.requestInstance(new LanguageTag("de"));
1535
+ const oSyncLocaleData = LocaleData.getInstance(new LanguageTag("de"));
1536
+
1537
+ assert.ok(pLocaleData instanceof Promise);
1538
+ assert.ok(oSyncLocaleData instanceof LocaleData);
1539
+ assert.deepEqual(oSyncLocaleData.getScripts(), {"baz": "foo"});
1540
+
1541
+ return pLocaleData.then((oLocaleData) => {
1542
+ assert.deepEqual(oLocaleData, oSyncLocaleData);
1543
+ });
1544
+ });
1545
+
1546
+ //*********************************************************************************************
1547
+ // SNOW: DINC0216128 - If a second async request for locale data is triggered it must be ignored
1548
+ QUnit.test("requestInstance: loadResource is only called once for async requestInstance",
1549
+ function(assert) {
1550
+ LocaleData._resetLocaleDataCache();
1551
+ const oLoaderExtensionsMock = this.mock(LoaderExtensions);
1552
+ oLoaderExtensionsMock.expects("loadResource")
1553
+ .withExactArgs("sap/ui/core/cldr/de.json", {"async": true, dataType: "json", failOnError: false})
1554
+ .returns(Promise.resolve({"scripts": {"baz": "foo"}}));
1555
+
1556
+ // code under test
1557
+ const pLocaleData = LocaleData.requestInstance(new LanguageTag("de"));
1558
+ // this request must not trigger another loading of resources
1559
+ LocaleData.requestInstance(new LanguageTag("de"));
1560
+
1561
+ assert.ok(pLocaleData instanceof Promise);
1562
+
1563
+ return pLocaleData.then((oLocaleData) => {
1564
+ assert.ok(oLocaleData instanceof LocaleData);
1565
+ assert.strictEqual(oLocaleData.sCLDRLocaleId, "de");
1566
+ assert.deepEqual(oLocaleData.getScripts(), {"baz": "foo"});
1567
+ });
1568
+ });
1442
1569
  });
@@ -7,7 +7,7 @@ sap.ui.define([
7
7
  "sap/m/Page",
8
8
  "sap/ui/dom/isBehindOtherElement",
9
9
  "sap/ui/thirdparty/jquery",
10
- "sap/ui/qunit/utils/nextUIUpdate"
10
+ "sap/ui/test/utils/nextUIUpdate"
11
11
  ], function(App, Button, Input, MessagePopover, Page, isBehindOtherElement, jQuery, nextUIUpdate) {
12
12
  "use strict";
13
13
 
@@ -6,7 +6,7 @@ sap.ui.define([
6
6
  "sap/ui/core/Control",
7
7
  "sap/ui/events/F6Navigation",
8
8
  "sap/ui/qunit/QUnitUtils",
9
- "sap/ui/qunit/utils/nextUIUpdate",
9
+ "sap/ui/test/utils/nextUIUpdate",
10
10
  // provides jQuery.sap.keyCodes
11
11
  "jquery.sap.keycodes"
12
12
  ], function(jQuery, Localization, Device, Control, F6Navigation, qutils, nextUIUpdate) {
@@ -4,7 +4,7 @@ sap.ui.define([
4
4
  "sap/ui/core/Control",
5
5
  "sap/ui/core/Element",
6
6
  "sap/ui/core/UIAreaRegistry",
7
- "sap/ui/qunit/utils/nextUIUpdate"
7
+ "sap/ui/test/utils/nextUIUpdate"
8
8
  ], function(jQuery, Control, Element, UIAreaRegistry, nextUIUpdate) {
9
9
  "use strict";
10
10
 
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  'sap/ui/model/json/JSONModel',
15
15
  'sap/ui/core/UIComponent',
16
16
  'sap/ui/qunit/utils/createAndAppendDiv',
17
- "sap/ui/qunit/utils/nextUIUpdate",
17
+ "sap/ui/test/utils/nextUIUpdate",
18
18
  "sap/ui/test/TestUtils"
19
19
  ], function(isPlainObject, Input, Model, Integer, Message, MessageType, Messaging, library, Component, ComponentContainer, Element, JSONModel, UIComponent, createAndAppendDiv, nextUIUpdate, TestUtils){
20
20
  "use strict";
@@ -4,7 +4,7 @@ sap.ui.define([
4
4
  "sap/ui/core/mvc/Controller",
5
5
  "sap/ui/qunit/QUnitUtils",
6
6
  "sap/ui/qunit/utils/createAndAppendDiv",
7
- "sap/ui/qunit/utils/nextUIUpdate"
7
+ "sap/ui/test/utils/nextUIUpdate"
8
8
  ], function(Device, Controller, qutils, createAndAppendDiv, nextUIUpdate) {
9
9
  "use strict";
10
10
 
@@ -3,7 +3,7 @@ sap.ui.define([
3
3
  "sap/base/util/ObjectPath",
4
4
  "sap/ui/core/mvc/View",
5
5
  "sap/ui/qunit/utils/createAndAppendDiv",
6
- "sap/ui/qunit/utils/nextUIUpdate",
6
+ "sap/ui/test/utils/nextUIUpdate",
7
7
  "sap/ui/thirdparty/jquery"
8
8
  ], function(ObjectPath, View, createAndAppendDiv, nextUIUpdate, jQuery) {
9
9
  "use strict";
@@ -8,7 +8,7 @@ sap.ui.define([
8
8
  'sap/ui/core/mvc/Controller',
9
9
  'sap/base/future',
10
10
  'sap/base/Log',
11
- 'sap/ui/qunit/utils/nextUIUpdate'
11
+ 'sap/ui/test/utils/nextUIUpdate'
12
12
  ], function(Component, Fragment, Element, ElementRegistry, XMLView, Controller, future, Log, nextUIUpdate) {
13
13
  "use strict";
14
14
 
@@ -1,7 +1,7 @@
1
1
  /*global QUnit */
2
2
  sap.ui.define([
3
3
  "sap/ui/core/mvc/XMLView",
4
- "sap/ui/qunit/utils/nextUIUpdate"
4
+ "sap/ui/test/utils/nextUIUpdate"
5
5
  ], function(XMLView, nextUIUpdate) {
6
6
  "use strict";
7
7
 
@@ -9,7 +9,7 @@ sap.ui.define([
9
9
  "sap/ui/model/json/JSONModel",
10
10
  "sap/ui/core/mvc/XMLView",
11
11
  "sap/ui/core/routing/HashChanger",
12
- "sap/ui/qunit/utils/nextUIUpdate"
12
+ "sap/ui/test/utils/nextUIUpdate"
13
13
  ], function(Component, View,
14
14
  InstanceManager, future, Log, merge, JSONModel, XMLView, HashChanger, nextUIUpdate) {
15
15
  "use strict";
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  'sap/m/Panel',
19
19
  './AnyView.qunit',
20
20
  'sap/ui/thirdparty/jquery',
21
- "sap/ui/qunit/utils/nextUIUpdate"
21
+ "sap/ui/test/utils/nextUIUpdate"
22
22
  ], function(future, Log, Localization, ResourceBundle, Element, coreLibrary, Controller, View, XMLView, RenderManager, JSONModel, ResourceModel, VerticalLayout, XMLHelper, Button, Panel, testsuite, jQuery, nextUIUpdate) {
23
23
  "use strict";
24
24
 
@@ -12,7 +12,7 @@ sap.ui.define([
12
12
  'sap/ui/base/SyncPromise',
13
13
  "sap/ui/core/mvc/XMLView",
14
14
  "sap/ui/core/StashedControlSupport",
15
- "sap/ui/qunit/utils/nextUIUpdate"
15
+ "sap/ui/test/utils/nextUIUpdate"
16
16
  ], function(future, Log, Controller, UIComponent, Component, Element, Panel, HBox, MyGlobal, SyncPromise, XMLView, StashedControlSupport, nextUIUpdate) {
17
17
 
18
18
  "use strict";
@@ -9,7 +9,7 @@ sap.ui.define([
9
9
  'sap/ui/base/SyncPromise',
10
10
  "sap/ui/core/mvc/XMLProcessingMode",
11
11
  "sap/ui/core/StashedControlSupport",
12
- "sap/ui/qunit/utils/nextUIUpdate"
12
+ "sap/ui/test/utils/nextUIUpdate"
13
13
  ], function(UIComponent, Component, Element, Panel, HBox, MyGlobal, SyncPromise, XMLProcessingMode, StashedControlSupport, nextUIUpdate) {
14
14
 
15
15
  "use strict";
@@ -6,7 +6,7 @@ sap.ui.define([
6
6
  "sap/ui/core/mvc/JSView",
7
7
  "sap/ui/core/mvc/XMLView",
8
8
  "sap/ui/core/mvc/HTMLView",
9
- "sap/ui/qunit/utils/nextUIUpdate",
9
+ "sap/ui/test/utils/nextUIUpdate",
10
10
  "sap/ui/thirdparty/jquery"
11
11
  ], function(ObjectPath, View, JSONView, JSView, XMLView, HTMLView, nextUIUpdate, jQuery) {
12
12
  "use strict";
@@ -8,7 +8,7 @@ sap.ui.define([
8
8
  "sap/ui/core/mvc/XMLView",
9
9
  "sap/ui/core/mvc/HTMLView",
10
10
  "sap/ui/qunit/QUnitUtils",
11
- "sap/ui/qunit/utils/nextUIUpdate"
11
+ "sap/ui/test/utils/nextUIUpdate"
12
12
  ], function(ObjectPath, Device, Controller, JSONView, JSView, XMLView, HTMLView, qutils, nextUIUpdate) {
13
13
  "use strict";
14
14
 
@@ -1,7 +1,7 @@
1
1
  /*global QUnit */
2
2
  sap.ui.define([
3
3
  'sap/ui/core/library',
4
- "sap/ui/qunit/utils/nextUIUpdate",
4
+ "sap/ui/test/utils/nextUIUpdate",
5
5
  './AnyView_legacyAPIs.qunit'
6
6
  ], function(coreLibrary, nextUIUpdate, testsuite) {
7
7
  "use strict";
@@ -6,7 +6,7 @@ sap.ui.define([
6
6
  "sap/base/util/merge",
7
7
  "sap/ui/model/json/JSONModel",
8
8
  "sap/ui/core/routing/HashChanger",
9
- "sap/ui/qunit/utils/nextUIUpdate"
9
+ "sap/ui/test/utils/nextUIUpdate"
10
10
  ], function(View, InstanceManager, Log, merge, JSONModel, HashChanger, nextUIUpdate) {
11
11
  "use strict";
12
12
 
@@ -14,7 +14,7 @@ sap.ui.define([
14
14
  'sap/m/Panel',
15
15
  './AnyView_legacyAPIs.qunit',
16
16
  'sap/ui/thirdparty/jquery',
17
- "sap/ui/qunit/utils/nextUIUpdate"
17
+ "sap/ui/test/utils/nextUIUpdate"
18
18
  ], function(Log, Localization, Element, coreLibrary, View, XMLView, RenderManager, JSONModel, VerticalLayout, XMLHelper, Button, Panel, testsuite, jQuery, nextUIUpdate) {
19
19
  "use strict";
20
20
 
@@ -6,7 +6,7 @@ sap.ui.define([
6
6
  "sap/ui/model/odata/ODataModel",
7
7
  "sap/ui/model/odata/v2/ODataModel",
8
8
  "sap/ui/util/XMLHelper",
9
- "sap/ui/qunit/utils/nextUIUpdate"
9
+ "sap/ui/test/utils/nextUIUpdate"
10
10
  ], function(Log, Localization, fakeService, ODataAnnotations, V1ODataModel, V2ODataModel, XMLHelper, nextUIUpdate) {
11
11
  "use strict";
12
12