@openui5/sap.ui.core 1.125.0 → 1.126.1

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 (464) hide show
  1. package/.dtsgenrc +76 -0
  2. package/.eslintrc.json +4 -1
  3. package/.reuse/dep5 +4 -4
  4. package/THIRDPARTY.txt +6 -6
  5. package/package.json +1 -1
  6. package/src/jquery.sap.global.js +1 -1
  7. package/src/jquery.sap.properties.js +1 -1
  8. package/src/jquery.sap.resources.js +1 -1
  9. package/src/jquery.sap.script.js +1 -1
  10. package/src/jquery.sap.storage.js +3 -3
  11. package/src/sap/base/Event.js +1 -1
  12. package/src/sap/base/Eventing.js +1 -1
  13. package/src/sap/base/Log.js +0 -16
  14. package/src/sap/base/config.js +1 -1
  15. package/src/sap/base/i18n/LanguageTag.js +1 -1
  16. package/src/sap/base/i18n/date/TimezoneUtils.js +1 -1
  17. package/src/sap/base/util/ObjectPath.js +6 -6
  18. package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
  19. package/src/sap/base/util/restricted/_castArray.js +1 -1
  20. package/src/sap/base/util/restricted/_compact.js +1 -1
  21. package/src/sap/base/util/restricted/_curry.js +1 -1
  22. package/src/sap/base/util/restricted/_debounce.js +1 -1
  23. package/src/sap/base/util/restricted/_difference.js +1 -1
  24. package/src/sap/base/util/restricted/_differenceBy.js +1 -1
  25. package/src/sap/base/util/restricted/_differenceWith.js +1 -1
  26. package/src/sap/base/util/restricted/_flatMap.js +1 -1
  27. package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
  28. package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
  29. package/src/sap/base/util/restricted/_flatten.js +1 -1
  30. package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
  31. package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
  32. package/src/sap/base/util/restricted/_intersection.js +1 -1
  33. package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
  34. package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
  35. package/src/sap/base/util/restricted/_isEqual.js +1 -1
  36. package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
  37. package/src/sap/base/util/restricted/_isNil.js +1 -1
  38. package/src/sap/base/util/restricted/_max.js +1 -1
  39. package/src/sap/base/util/restricted/_merge.js +1 -1
  40. package/src/sap/base/util/restricted/_mergeWith.js +1 -1
  41. package/src/sap/base/util/restricted/_min.js +1 -1
  42. package/src/sap/base/util/restricted/_omit.js +1 -1
  43. package/src/sap/base/util/restricted/_pick.js +1 -1
  44. package/src/sap/base/util/restricted/_pickBy.js +1 -1
  45. package/src/sap/base/util/restricted/_throttle.js +1 -1
  46. package/src/sap/base/util/restricted/_toArray.js +1 -1
  47. package/src/sap/base/util/restricted/_union.js +1 -1
  48. package/src/sap/base/util/restricted/_unionBy.js +1 -1
  49. package/src/sap/base/util/restricted/_unionWith.js +1 -1
  50. package/src/sap/base/util/restricted/_uniq.js +1 -1
  51. package/src/sap/base/util/restricted/_uniqBy.js +1 -1
  52. package/src/sap/base/util/restricted/_uniqWith.js +1 -1
  53. package/src/sap/base/util/restricted/_without.js +1 -1
  54. package/src/sap/base/util/restricted/_xor.js +1 -1
  55. package/src/sap/base/util/restricted/_xorBy.js +1 -1
  56. package/src/sap/base/util/restricted/_xorWith.js +1 -1
  57. package/src/sap/base/util/restricted/_zipObject.js +1 -1
  58. package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
  59. package/src/sap/ui/Device.js +35 -10
  60. package/src/sap/ui/Global.js +6 -6
  61. package/src/sap/ui/base/Event.js +1 -1
  62. package/src/sap/ui/base/EventProvider.js +1 -1
  63. package/src/sap/ui/base/Interface.js +1 -1
  64. package/src/sap/ui/base/ManagedObject.js +16 -1
  65. package/src/sap/ui/base/ManagedObjectMetadata.js +1 -1
  66. package/src/sap/ui/base/Metadata.js +1 -1
  67. package/src/sap/ui/base/Object.js +1 -1
  68. package/src/sap/ui/base/ObjectPool.js +1 -1
  69. package/src/sap/ui/core/.library +1 -8
  70. package/src/sap/ui/core/BusyIndicator.js +1 -1
  71. package/src/sap/ui/core/Component.js +17 -3
  72. package/src/sap/ui/core/ComponentContainer.js +1 -1
  73. package/src/sap/ui/core/ComponentMetadata.js +1 -1
  74. package/src/sap/ui/core/ComponentSupport.js +1 -1
  75. package/src/sap/ui/core/Configuration.js +1 -1
  76. package/src/sap/ui/core/Control.js +1 -1
  77. package/src/sap/ui/core/Core.js +14 -5
  78. package/src/sap/ui/core/CustomData.js +1 -1
  79. package/src/sap/ui/core/DeclarativeSupport.js +1 -1
  80. package/src/sap/ui/core/Element.js +1 -1
  81. package/src/sap/ui/core/ElementMetadata.js +1 -1
  82. package/src/sap/ui/core/EnabledPropagator.js +1 -1
  83. package/src/sap/ui/core/EventBus.js +1 -1
  84. package/src/sap/ui/core/Fragment.js +1 -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 +1 -1
  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 +1 -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 +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/boot.js +1 -6
  118. package/src/sap/ui/core/date/UI5Date.js +1 -1
  119. package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
  120. package/src/sap/ui/core/delegate/ScrollEnablement.js +2 -2
  121. package/src/sap/ui/core/dnd/DragAndDrop.js +151 -10
  122. package/src/sap/ui/core/dnd/DragDropBase.js +13 -2
  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/{model → core/fieldhelp}/FieldHelp.js +92 -65
  127. package/src/sap/ui/core/fieldhelp/FieldHelpUtil.js +62 -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 +2 -1
  132. package/src/sap/ui/core/library.js +49 -9
  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/mvc/ControllerExtension.js +16 -0
  139. package/src/sap/ui/core/mvc/HTMLView.js +1 -1
  140. package/src/sap/ui/core/mvc/JSONView.js +1 -1
  141. package/src/sap/ui/core/mvc/JSView.js +1 -1
  142. package/src/sap/ui/core/mvc/TemplateView.js +1 -1
  143. package/src/sap/ui/core/mvc/View.js +1 -1
  144. package/src/sap/ui/core/mvc/XMLView.js +1 -1
  145. package/src/sap/ui/core/plugin/DeclarativeSupport.js +1 -1
  146. package/src/sap/ui/core/plugin/LessSupport.js +1 -1
  147. package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
  148. package/src/sap/ui/core/postmessage/Bus.js +1 -1
  149. package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
  150. package/src/sap/ui/core/search/OpenSearchProvider.js +1 -1
  151. package/src/sap/ui/core/search/SearchProvider.js +1 -1
  152. package/src/sap/ui/core/service/Service.js +1 -1
  153. package/src/sap/ui/core/service/ServiceFactory.js +1 -1
  154. package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
  155. package/src/sap/ui/core/support/Plugin.js +1 -1
  156. package/src/sap/ui/core/support/Support.js +1 -1
  157. package/src/sap/ui/core/support/plugins/ControlTree.js +1 -1
  158. package/src/sap/ui/core/support/plugins/Interaction.js +1 -1
  159. package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
  160. package/src/sap/ui/core/support/plugins/Performance.js +1 -1
  161. package/src/sap/ui/core/support/plugins/Selector.js +1 -1
  162. package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
  163. package/src/sap/ui/core/support/plugins/Trace.js +1 -1
  164. package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
  165. package/src/sap/ui/core/support/trace/E2eTraceLib.js +1 -1
  166. package/src/sap/ui/core/themes/sap_hcb/base_BlindLayer.less +37 -0
  167. package/src/sap/ui/core/themes/sap_hcb/base_BrowserScrollbar.less +36 -0
  168. package/src/sap/ui/core/themes/sap_hcb/base_BusyIndicator.less +19 -0
  169. package/src/sap/ui/core/themes/sap_hcb/base_CommandShortcutHints.less +20 -0
  170. package/src/sap/ui/core/themes/sap_hcb/base_DragAndDrop.less +76 -0
  171. package/src/sap/ui/core/themes/sap_hcb/base_Icon.less +144 -0
  172. package/src/sap/ui/core/themes/sap_hcb/base_LocalBusyIndicator.less +292 -0
  173. package/src/sap/ui/core/themes/sap_hcb/base_SAP-icons.less +10 -0
  174. package/src/sap/ui/core/themes/sap_hcb/base_ScrollBar.less +20 -0
  175. package/src/sap/ui/core/themes/sap_hcb/base_Shadow.less +3 -0
  176. package/src/sap/ui/core/themes/sap_hcb/base_TechnicalInfo.less +157 -0
  177. package/src/sap/ui/core/themes/sap_hcb/base_View.less +12 -0
  178. package/src/sap/ui/core/themes/sap_hcb/base_media.less +36 -0
  179. package/src/sap/ui/core/themes/sap_hcb/base_parameterClasses.less +83 -0
  180. package/src/sap/ui/core/themes/sap_hcb/base_shared.less +340 -0
  181. package/src/sap/ui/core/themes/sap_hcb/library.source.less +27 -1
  182. package/src/sap/ui/core/theming/Parameters.js +68 -8
  183. package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
  184. package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
  185. package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
  186. package/src/sap/ui/core/tmpl/Template.js +1 -1
  187. package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
  188. package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
  189. package/src/sap/ui/core/util/Export.js +1 -1
  190. package/src/sap/ui/core/util/ExportCell.js +1 -1
  191. package/src/sap/ui/core/util/ExportColumn.js +1 -1
  192. package/src/sap/ui/core/util/ExportRow.js +1 -1
  193. package/src/sap/ui/core/util/ExportType.js +1 -1
  194. package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
  195. package/src/sap/ui/core/util/File.js +1 -1
  196. package/src/sap/ui/core/util/LibraryInfo.js +2 -2
  197. package/src/sap/ui/core/util/MockServer.js +1 -2
  198. package/src/sap/ui/core/util/PasteHelper.js +1 -1
  199. package/src/sap/ui/core/util/XMLPreprocessor.js +14 -15
  200. package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
  201. package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
  202. package/src/sap/ui/core/util/serializer/ViewSerializer.js +1 -1
  203. package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
  204. package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
  205. package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
  206. package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
  207. package/src/sap/ui/core/webc/WebComponent.js +1 -1
  208. package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
  209. package/src/sap/ui/core/ws/ReadyState.js +1 -1
  210. package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
  211. package/src/sap/ui/core/ws/WebSocket.js +1 -1
  212. package/src/sap/ui/debug/ControlTree.js +1 -1
  213. package/src/sap/ui/debug/DebugEnv.js +1 -1
  214. package/src/sap/ui/debug/PropertyList.js +1 -1
  215. package/src/sap/ui/model/Binding.js +28 -0
  216. package/src/sap/ui/model/ClientModel.js +1 -1
  217. package/src/sap/ui/model/CompositeDataState.js +1 -1
  218. package/src/sap/ui/model/CompositeType.js +1 -1
  219. package/src/sap/ui/model/DataState.js +1 -1
  220. package/src/sap/ui/model/ManagedObjectBindingSupport.js +5 -0
  221. package/src/sap/ui/model/MetaModel.js +1 -1
  222. package/src/sap/ui/model/Model.js +1 -1
  223. package/src/sap/ui/model/SelectionModel.js +1 -1
  224. package/src/sap/ui/model/SimpleType.js +1 -1
  225. package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
  226. package/src/sap/ui/model/Type.js +1 -1
  227. package/src/sap/ui/model/base/ManagedObjectModel.js +12 -2
  228. package/src/sap/ui/model/json/JSONModel.js +16 -11
  229. package/src/sap/ui/model/message/MessageModel.js +1 -1
  230. package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
  231. package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
  232. package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
  233. package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
  234. package/src/sap/ui/model/odata/ODataModel.js +1 -1
  235. package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +7 -2
  236. package/src/sap/ui/model/odata/ODataUtils.js +22 -14
  237. package/src/sap/ui/model/odata/type/Boolean.js +1 -1
  238. package/src/sap/ui/model/odata/type/Byte.js +1 -1
  239. package/src/sap/ui/model/odata/type/Currency.js +1 -1
  240. package/src/sap/ui/model/odata/type/Date.js +1 -1
  241. package/src/sap/ui/model/odata/type/DateTime.js +1 -1
  242. package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
  243. package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
  244. package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
  245. package/src/sap/ui/model/odata/type/Decimal.js +1 -1
  246. package/src/sap/ui/model/odata/type/Double.js +1 -1
  247. package/src/sap/ui/model/odata/type/Guid.js +1 -1
  248. package/src/sap/ui/model/odata/type/Int.js +1 -1
  249. package/src/sap/ui/model/odata/type/Int16.js +1 -1
  250. package/src/sap/ui/model/odata/type/Int32.js +1 -1
  251. package/src/sap/ui/model/odata/type/Int64.js +1 -1
  252. package/src/sap/ui/model/odata/type/ODataType.js +1 -1
  253. package/src/sap/ui/model/odata/type/Raw.js +1 -1
  254. package/src/sap/ui/model/odata/type/SByte.js +1 -1
  255. package/src/sap/ui/model/odata/type/Single.js +1 -1
  256. package/src/sap/ui/model/odata/type/Stream.js +1 -1
  257. package/src/sap/ui/model/odata/type/String.js +1 -1
  258. package/src/sap/ui/model/odata/type/Time.js +1 -1
  259. package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
  260. package/src/sap/ui/model/odata/type/Unit.js +1 -1
  261. package/src/sap/ui/model/odata/v2/Context.js +1 -1
  262. package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
  263. package/src/sap/ui/model/odata/v2/ODataModel.js +1 -1
  264. package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +1 -1
  265. package/src/sap/ui/model/odata/v4/Context.js +92 -43
  266. package/src/sap/ui/model/odata/v4/ODataBinding.js +20 -20
  267. package/src/sap/ui/model/odata/v4/ODataContextBinding.js +6 -7
  268. package/src/sap/ui/model/odata/v4/ODataListBinding.js +176 -87
  269. package/src/sap/ui/model/odata/v4/ODataMetaModel.js +9 -9
  270. package/src/sap/ui/model/odata/v4/ODataModel.js +36 -9
  271. package/src/sap/ui/model/odata/v4/ODataParentBinding.js +3 -3
  272. package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +12 -11
  273. package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +176 -75
  274. package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +48 -9
  275. package/src/sap/ui/model/odata/v4/lib/_Cache.js +15 -17
  276. package/src/sap/ui/model/odata/v4/lib/_Helper.js +49 -14
  277. package/src/sap/ui/model/odata/v4/lib/_Parser.js +3 -3
  278. package/src/sap/ui/model/odata/v4/lib/_Requestor.js +20 -12
  279. package/src/sap/ui/model/odata/v4/lib/_V2MetadataConverter.js +2 -2
  280. package/src/sap/ui/model/odata/v4/lib/_V2Requestor.js +3 -3
  281. package/src/sap/ui/model/resource/ResourceModel.js +1 -1
  282. package/src/sap/ui/model/type/Boolean.js +1 -1
  283. package/src/sap/ui/model/type/Currency.js +1 -1
  284. package/src/sap/ui/model/type/Date.js +1 -1
  285. package/src/sap/ui/model/type/DateInterval.js +1 -1
  286. package/src/sap/ui/model/type/DateTime.js +1 -1
  287. package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
  288. package/src/sap/ui/model/type/FileSize.js +1 -1
  289. package/src/sap/ui/model/type/Float.js +1 -1
  290. package/src/sap/ui/model/type/Integer.js +1 -1
  291. package/src/sap/ui/model/type/String.js +1 -1
  292. package/src/sap/ui/model/type/Time.js +1 -1
  293. package/src/sap/ui/model/type/TimeInterval.js +1 -1
  294. package/src/sap/ui/model/type/Unit.js +1 -1
  295. package/src/sap/ui/model/xml/XMLModel.js +1 -1
  296. package/src/sap/ui/performance/trace/FESR.js +2 -2
  297. package/src/sap/ui/performance/trace/Interaction.js +1 -1
  298. package/src/sap/ui/performance/trace/Passport.js +1 -1
  299. package/src/sap/ui/qunit/utils/ControlIterator.js +1 -1
  300. package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
  301. package/src/sap/ui/test/generic/TestBase.js +1 -1
  302. package/src/sap/ui/test/starter/_utils.js +18 -3
  303. package/src/sap/ui/util/Mobile.js +7 -4
  304. package/src/sap/ui/util/Storage.js +1 -1
  305. package/src/ui5loader-autoconfig.js +0 -25
  306. package/test/sap/ui/core/BindableResponseHeaders.html +1 -2
  307. package/test/sap/ui/core/ODataV2CanonicalRequests.html +8 -5
  308. package/test/sap/ui/core/ODataV2Messages.html +14 -11
  309. package/test/sap/ui/core/ODataV2MessagesPerf.html +34 -9
  310. package/test/sap/ui/core/demokit/sample/Messaging/ODataBackendMessagesComp/ui5.yaml +1 -1
  311. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.html +2 -1
  312. package/test/sap/ui/core/demokit/sample/OpaStartup/iStartMyAppInAFrame/iStartMyAppInAFrame.js +2 -12
  313. package/test/sap/ui/core/demokit/sample/common/Controller.js +2 -2
  314. package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -2
  315. package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +1 -1
  316. package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +1 -1
  317. package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +1 -1
  318. package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +1 -1
  319. package/test/sap/ui/core/demokit/sample/odata/v4/GridTable/SandboxModel.js +6 -6
  320. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +110 -21
  321. package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +35 -43
  322. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +118 -26
  323. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +99 -90
  324. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +87 -40
  325. package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/pages/Main.js +4 -3
  326. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Component.js +18 -0
  327. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/tests/CreateRelative.js +1 -8
  328. package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersRTATest/Main.controller.js +1 -2
  329. package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +1 -1
  330. package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +1 -1
  331. package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +1 -1
  332. package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +1 -1
  333. package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +1 -1
  334. package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +1 -1
  335. package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +1 -1
  336. package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +1 -1
  337. package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +1 -1
  338. package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +1 -1
  339. package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +1 -1
  340. package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +1 -1
  341. package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +1 -1
  342. package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +1 -1
  343. package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +1 -1
  344. package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +1 -1
  345. package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +1 -1
  346. package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +1 -1
  347. package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +1 -1
  348. package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +1 -1
  349. package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +1 -1
  350. package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +1 -1
  351. package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +1 -1
  352. package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +1 -1
  353. package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +1 -1
  354. package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +1 -1
  355. package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +1 -1
  356. package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +1 -1
  357. package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +1 -1
  358. package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +1 -1
  359. package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +1 -1
  360. package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +1 -1
  361. package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +1 -1
  362. package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +1 -1
  363. package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +1 -1
  364. package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +1 -1
  365. package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +1 -1
  366. package/test/sap/ui/core/demokit/tutorial/odatav4/01/webapp/localService/mockserver.js +4 -4
  367. package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +1 -1
  368. package/test/sap/ui/core/demokit/tutorial/odatav4/02/webapp/localService/mockserver.js +4 -4
  369. package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +1 -1
  370. package/test/sap/ui/core/demokit/tutorial/odatav4/03/webapp/localService/mockserver.js +4 -4
  371. package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +1 -1
  372. package/test/sap/ui/core/demokit/tutorial/odatav4/04/webapp/localService/mockserver.js +4 -4
  373. package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +1 -1
  374. package/test/sap/ui/core/demokit/tutorial/odatav4/05/webapp/localService/mockserver.js +4 -4
  375. package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +1 -1
  376. package/test/sap/ui/core/demokit/tutorial/odatav4/06/webapp/localService/mockserver.js +4 -4
  377. package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +1 -1
  378. package/test/sap/ui/core/demokit/tutorial/odatav4/07/webapp/localService/mockserver.js +4 -4
  379. package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +1 -1
  380. package/test/sap/ui/core/demokit/tutorial/odatav4/08/webapp/localService/mockserver.js +4 -4
  381. package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +1 -1
  382. package/test/sap/ui/core/demokit/tutorial/odatav4/09/webapp/localService/mockserver.js +4 -4
  383. package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +1 -1
  384. package/test/sap/ui/core/demokit/tutorial/odatav4/10/webapp/localService/mockserver.js +4 -4
  385. package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +1 -1
  386. package/test/sap/ui/core/demokit/tutorial/odatav4/11/webapp/localService/mockserver.js +4 -4
  387. package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +1 -1
  388. package/test/sap/ui/core/internal/samples/odata/v2/TreeTable/Main.view.xml +3 -3
  389. package/test/sap/ui/core/qunit/CommandExecution.qunit.js +96 -92
  390. package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +24 -0
  391. package/test/sap/ui/core/qunit/ThemeParameters.qunit.js +80 -0
  392. package/test/sap/ui/core/qunit/ThemeParameters_legacyAPIs.qunit.js +1 -0
  393. package/test/sap/ui/core/qunit/analytics/AnalyticalBinding.qunit.js +1 -1
  394. package/test/sap/ui/core/qunit/app/testsuite.app.qunit.js +2 -1
  395. package/test/sap/ui/core/qunit/base/Config.qunit.js +117 -114
  396. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.html +3 -3
  397. package/test/sap/ui/core/qunit/base/Config_bootstrap.qunit.js +98 -95
  398. package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +20 -45
  399. package/test/sap/ui/core/qunit/base/Config_global.qunit.html +2 -2
  400. package/test/sap/ui/core/qunit/base/Config_meta.qunit.html +2 -2
  401. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.html +2 -2
  402. package/test/sap/ui/core/qunit/base/Config_noUrl.qunit.js +17 -16
  403. package/test/sap/ui/core/qunit/base/Config_url.qunit.html +2 -2
  404. package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.beforeBootstrap.js +6 -0
  405. package/test/sap/ui/core/qunit/bootstrap/BootstrapMainModule.qunit.js +4 -4
  406. package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.js +30 -10
  407. package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +5 -1
  408. package/test/sap/ui/core/qunit/dnd/DragAndDrop.qunit.js +159 -3
  409. package/test/sap/ui/core/qunit/{model → fieldhelp}/FieldHelp.qunit.js +306 -24
  410. package/test/sap/ui/core/qunit/fieldhelp/FieldHelpUtil.qunit.js +55 -0
  411. package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.html +12 -0
  412. package/test/sap/ui/core/qunit/fieldhelp/testsuite.fieldhelp.qunit.js +50 -0
  413. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +1 -1
  414. package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +6 -1
  415. package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +1 -1
  416. package/test/sap/ui/core/qunit/jquery-mobile-custom.beforeBootstrap.js +11 -0
  417. package/test/sap/ui/core/qunit/jquery-mobile-custom.qunit.js +3 -3
  418. package/test/sap/ui/core/qunit/json/JSONModel.qunit.js +21 -0
  419. package/test/sap/ui/core/qunit/loader/asyncMode.qunit.js +2 -6
  420. package/test/sap/ui/core/qunit/loader/config.qunit.js +41 -2
  421. package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +9 -4
  422. package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -12
  423. package/test/sap/ui/core/qunit/odata/type/testsuite.odata.types.qunit.js +1 -0
  424. package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +202 -73
  425. package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +94 -2
  426. package/test/sap/ui/core/qunit/odata/v2/data/ZUI5_GWSAMPLE_BASIC.metadata.xml +4 -0
  427. package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +106 -103
  428. package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +3 -3
  429. package/test/sap/ui/core/qunit/odata/v4/ODataContextBinding.qunit.js +20 -20
  430. package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +370 -109
  431. package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +42 -42
  432. package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +2260 -177
  433. package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +39 -7
  434. package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +7 -6
  435. package/test/sap/ui/core/qunit/odata/v4/ODataPropertyBinding.qunit.js +13 -14
  436. package/test/sap/ui/core/qunit/odata/v4/_AnnotationHelperExpression.qunit.js +3 -3
  437. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +592 -169
  438. package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +82 -2
  439. package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +44 -47
  440. package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +80 -20
  441. package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +2 -2
  442. package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +175 -69
  443. package/test/sap/ui/core/qunit/odata/v4/lib/_V2Requestor.qunit.js +3 -3
  444. package/test/sap/ui/core/qunit/odata/v4/testsuite.odatav4.qunit.js +1 -1
  445. package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +9 -7
  446. package/test/sap/ui/core/qunit/rule/testsuite.rule.qunit.js +6 -1
  447. package/test/sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/library.css +2 -0
  448. package/test/sap/ui/core/qunit/testsuite.qunit.js +1 -0
  449. package/test/sap/ui/core/qunit/testsuites/testsuite.browser.runtime.qunit.js +5 -1
  450. package/test/sap/ui/core/qunit/testsuites/testsuite.databinding.qunit.js +0 -3
  451. package/test/sap/ui/core/qunit/testsuites/testsuite.theming.qunit.js +4 -1
  452. package/test/sap/ui/core/qunit/ui/Device.qunit.js +68 -25
  453. package/test/sap/ui/core/qunit/ui5classes/ManagedObjectMetadata.qunit.js +3 -0
  454. package/test/sap/ui/core/qunit/util/Mobile.qunit.js +12 -7
  455. package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +20 -20
  456. package/test/sap/ui/core/relnotes/changes-1.125.json +1 -6
  457. package/test/sap/ui/core/relnotes/changes-1.126.json +63 -0
  458. package/test/sap/ui/core/samples/databinding/UnitTable/ui5.yaml +1 -1
  459. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/firstItem-contextMenu.ref.lnk +1 -1
  460. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/initial.ref.lnk +1 -1
  461. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/lastItem-contextMenu.ref.lnk +1 -1
  462. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/leftDownBtn-contextMenu.ref.lnk +1 -1
  463. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/myButtonSample-contextMenu.ref.lnk +1 -1
  464. package/test/sap/ui/core/visual/images/ContextMenuSupport/windows/1600x1200/chrome/horizon/ltr/cozy/rightDownBtn-contextMenu.ref.lnk +1 -1
@@ -200,98 +200,102 @@ sap.ui.define([
200
200
  });
201
201
 
202
202
 
203
- var sView = '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">'
204
- + '<App id="commands">'
205
- + '<Page id="page" title="Commands" '
206
- + 'binding="{odata>/}" >'
207
- + '<dependents>'
208
- + '<core:CommandExecution id="CE_SAVE" command="Save" enabled="true" execute=".onSave" />'
209
- + '<core:CommandExecution id="CE_EXIT" command="Exit" enabled="true" execute=".onExit" />'
210
- + '<Popover '
211
- + 'id="popoverCommand" '
212
- + 'title="Popover" '
213
- + 'class="sapUiContentPadding"> '
214
- + '<dependents>'
215
- + '<core:CommandExecution id="CE_SAVE_POPOVER" enabled="false" command="Save" execute=".onSave" />'
216
- + '</dependents>'
217
- + '<footer>'
218
- + '<Toolbar>'
219
- + '<Button text="Delete" press="cmd:Exit" enabled="{$cmd>Delete/enabled}" />'
220
- + '<ToolbarSpacer />'
221
- + '<Button text="Save" press="cmd:Save" enabled="{$cmd>Save/enabled}" />'
222
- + '</Toolbar>'
223
- + '</footer>'
224
- + '<Input value="{viewModel>/value}" />'
225
- + '</Popover>'
226
- + '</dependents>'
227
- + '<Panel id="PANEL" headerText="Button">'
228
- + '<headerToolbar>'
229
- + '<Toolbar>'
230
- + '<Button text="TBButton" />'
231
- + '</Toolbar>'
232
- + '</headerToolbar>'
233
- + '<dependents>'
234
- + '<core:CommandExecution id="CE_SAVE_PANEL" command="Save" enabled="true" execute=".onSave" />'
235
- + '</dependents>'
236
- + '<Panel id="PANEL2" headerText="innerButton">'
237
- + '<dependents>'
238
- + '<core:CommandExecution id="CE_CREATE_INNER" command="Create" enabled="true" execute=".onExit" />'
239
- + '<core:CommandExecution id="CE_SAVE_INNER" command="Save" enabled="true" execute=".onSave" />'
240
- + '<core:CommandExecution id="CE_EXIT_INNER" command="Exit" enabled="true" execute=".onExit" />'
241
- + '</dependents>'
242
- + '<Button text="Save" press="cmd:Save" />'
243
- + '</Panel>'
244
- + '<Button text="Save" press="cmd:Save" />'
245
- + '</Panel>'
246
- + '<Panel headerText="sap.m.Input">'
247
- + '<Input id="myInput" value="{viewModel>/value}" />'
248
- + '<Table>'
249
- + '<columns>'
250
- + '<Column width="12em">'
251
- + '<Text text="Product" />'
252
- + '</Column>'
253
- + '</columns>'
254
- + '<items>'
255
- + '<StandardListItem title="Name">'
256
- + '<dependents>'
257
- + '<core:CommandExecution id="CE_SAVE_ITEM" command="Save" enabled="true" execute=".onSave" />'
258
- + '<core:CommandExecution id="CE_EXIT_ITEM" command="Exit" enabled="true" execute=".onExit" />'
259
- + '</dependents>'
260
- + '</StandardListItem>'
261
- + '</items>'
262
- + '</Table>'
263
- + '</Panel>'
264
- + '</Page>'
265
- + '</App>'
266
- + '</mvc:View>';
267
-
268
- var sView2 = '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">'
269
- + '<core:ComponentContainer id="CC" '
270
- + 'binding="{odata>/}" >'
271
- + '<core:dependents>'
272
- + '<core:CommandExecution command="Save" enabled="true" execute=".onSave" />'
273
- + '<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />'
274
- + '</core:dependents>'
275
- + '</core:ComponentContainer>'
276
- + '</mvc:View>';
277
-
278
- var sView3 = '<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">'
279
- + '<Panel>'
280
- + '<dependents>'
281
- + '<core:CommandExecution command="Save" enabled="true" execute=".onSave" />'
282
- + '<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />'
283
- + '</dependents>'
284
- + '<Panel headerText="innerButton" id="PANELV31">'
285
- + '<dependents>'
286
- + '<core:CommandExecution command="Save" enabled="true" execute=".onSave" />'
287
- + '<core:CommandExecution command="Exit" enabled="true" execute=".onExit" />'
288
- + '</dependents>'
289
- + '</Panel>'
290
- + '<Panel headerText="innerButton" id="PANELV32">'
291
- + '<mvc:XMLView async="true" id="EMBEDDEDVIEW" viewName="my.command.Command2"/>'
292
- + '</Panel>'
293
- + '</Panel>'
294
- + '</mvc:View>';
203
+ var sView = `
204
+ <mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
205
+ <App id="commands">
206
+ <Page id="page" title="Commands" binding="{odata>/}" >
207
+ <dependents>
208
+ <core:CommandExecution id="CE_SAVE" command="Save" enabled="true" execute=".onSave" />
209
+ <core:CommandExecution id="CE_EXIT" command="Exit" enabled="true" execute=".onExit" />
210
+ <Popover id="popoverCommand" title="Popover" class="sapUiContentPadding">
211
+ <dependents>
212
+ <core:CommandExecution id="CE_SAVE_POPOVER" enabled="false" command="Save" execute=".onSave" />
213
+ </dependents>
214
+ <footer>
215
+ <Toolbar>
216
+ <Button text="Delete" press="cmd:Exit" enabled="{$cmd>Delete/enabled}" />
217
+ <ToolbarSpacer />
218
+ <Button text="Save" press="cmd:Save" enabled="{$cmd>Save/enabled}" />
219
+ </Toolbar>
220
+ </footer>
221
+ <Input value="{viewModel>/value}" />
222
+ </Popover>
223
+ </dependents>
224
+ <Panel id="PANEL" headerText="Button">
225
+ <headerToolbar>
226
+ <Toolbar>
227
+ <Button text="TBButton" />
228
+ </Toolbar>
229
+ </headerToolbar>
230
+ <dependents>
231
+ <core:CommandExecution id="CE_SAVE_PANEL" command="Save" enabled="true" execute=".onSave" />
232
+ </dependents>
233
+ <Panel id="PANEL2" headerText="innerButton">
234
+ <dependents>
235
+ <core:CommandExecution id="CE_CREATE_INNER" command="Create" enabled="true" execute=".onExit" />
236
+ <core:CommandExecution id="CE_SAVE_INNER" command="Save" enabled="true" execute=".onSave" />
237
+ <core:CommandExecution id="CE_EXIT_INNER" command="Exit" enabled="true" execute=".onExit" />
238
+ </dependents>
239
+ <Button text="Save" press="cmd:Save" />
240
+ </Panel>
241
+ <Button text="Save" press="cmd:Save" />
242
+ </Panel>
243
+ <Panel headerText="sap.m.Input">
244
+ <Input id="myInput" value="{viewModel>/value}" />
245
+ <Table>
246
+ <columns>
247
+ <Column width="12em">
248
+ <Text text="Product" />
249
+ </Column>
250
+ </columns>
251
+ <items>
252
+ <ColumnListItem>
253
+ <dependents>
254
+ <core:CommandExecution id="CE_SAVE_ITEM" command="Save" enabled="true" execute=".onSave" />
255
+ <core:CommandExecution id="CE_EXIT_ITEM" command="Exit" enabled="true" execute=".onExit" />
256
+ </dependents>
257
+ <cells>
258
+ <Text text="Name"/>
259
+ </cells>
260
+ </ColumnListItem>
261
+ </items>
262
+ </Table>
263
+ </Panel>
264
+ </Page>
265
+ </App>
266
+ </mvc:View>
267
+ `;
268
+
269
+ var sView2 = `
270
+ <mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
271
+ <core:ComponentContainer id="CC" binding="{odata>/}" >
272
+ <core:dependents>
273
+ <core:CommandExecution command="Save" enabled="true" execute=".onSave" />
274
+ <core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
275
+ </core:dependents>
276
+ </core:ComponentContainer>
277
+ </mvc:View>
278
+ `;
279
+
280
+ var sView3 = `
281
+ <mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns:core="sap.ui.core" xmlns="sap.m" controllerName="my.command.Command" displayBlock="true">
282
+ <Panel>
283
+ <dependents>
284
+ <core:CommandExecution command="Save" enabled="true" execute=".onSave" />
285
+ <core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
286
+ </dependents>
287
+ <Panel headerText="innerButton" id="PANELV31">
288
+ <dependents>
289
+ <core:CommandExecution command="Save" enabled="true" execute=".onSave" />
290
+ <core:CommandExecution command="Exit" enabled="true" execute=".onExit" />
291
+ </dependents>
292
+ </Panel>
293
+ <Panel headerText="innerButton" id="PANELV32">
294
+ <mvc:XMLView async="true" id="EMBEDDEDVIEW" viewName="my.command.Command2"/>
295
+ </Panel>
296
+ </Panel>
297
+ </mvc:View>
298
+ `;
295
299
 
296
300
  sap.ui.require.preload({
297
301
  "my/command/Command.view.xml": sView
@@ -719,6 +719,30 @@ sap.ui.define([
719
719
  oLengthBinding.detachChange(fHandler2);
720
720
  });
721
721
 
722
+ QUnit.test("ManagedObject Model - List Binding (length & startIndex)", function (assert) {
723
+ const oBinding = this.oManagedObjectModel.bindList("/subObjects");
724
+ const fHandler = function() {}; // just a dummy handler
725
+ oBinding.attachChange(fHandler);
726
+
727
+ this.obj.addSubObj(this.subObj);
728
+ this.obj.addSubObj(this.subObj2);
729
+ this.obj.addSubObj(this.subObj3);
730
+
731
+ let aContexts = oBinding.getContexts(0, 2);
732
+ assert.equal(aContexts.length, 2, "Contexts length");
733
+ assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj, true, "Contexts[0] are correctly applied");
734
+ assert.equal(this.oManagedObjectModel.getProperty("", aContexts[1]) === this.subObj2, true, "Contexts[1] are correctly applied");
735
+
736
+ aContexts = oBinding.getContexts(1, 2);
737
+ assert.equal(aContexts.length, 2, "Contexts length");
738
+ assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj2, true, "Contexts[0] are correctly applied");
739
+ assert.equal(this.oManagedObjectModel.getProperty("", aContexts[1]) === this.subObj3, true, "Contexts[1] are correctly applied");
740
+
741
+ aContexts = oBinding.getContexts(-1, 1);
742
+ assert.equal(aContexts.length, 1, "Contexts length");
743
+ assert.equal(this.oManagedObjectModel.getProperty("", aContexts[0]) === this.subObj3, true, "Contexts[0] are correctly applied");
744
+ });
745
+
722
746
  QUnit.test("ManagedObject Model - getManagedObject", function (assert) {
723
747
  var oModel = this.oManagedObjectModel;
724
748
 
@@ -385,4 +385,84 @@ sap.ui.define([
385
385
  });
386
386
  });
387
387
  });
388
+
389
+ QUnit.test("Relative URLs in parameters", async function(assert) {
390
+
391
+ const sPath = new URI(sap.ui.require.toUrl("testdata/core"), document.baseURI).toString();
392
+ const coreBase1x1Gif = sap.ui.require.toUrl("sap/ui/core/themes/base/img/1x1.gif");
393
+
394
+ await Library.load("testlibs.themeParameters.lib4");
395
+
396
+ return new Promise((endTest, reject) => {
397
+ Theming.attachApplied(() => {
398
+ const expected = {
399
+ url1: sPath + "/testdata/libraries/themeParameters/lib4/img1.jpg",
400
+ url2: sPath + "/testdata/libraries/themeParameters/lib4/foo/img2.jpg",
401
+ url3: sPath + "/testdata/libraries/themeParameters/lib4/foo/bar/img3.jpg",
402
+ url4: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
403
+ url5: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
404
+ url6: sPath + "/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/",
405
+ url7: "blob:http://example.com/6e88648c-00e1-4512-9695-5b702d8455b4",
406
+ url8: "data:text/plain;utf-8,foo",
407
+ url9: {
408
+ plain: "none",
409
+ themeImageDefault: coreBase1x1Gif
410
+ }
411
+ };
412
+
413
+ const actualPlain = Parameters.get({
414
+ name: ["sapUiThemeParamUrl1", "sapUiThemeParamUrl2", "sapUiThemeParamUrl3",
415
+ "sapUiThemeParamUrl4", "sapUiThemeParamUrl5", "sapUiThemeParamUrl6",
416
+ "sapUiThemeParamUrl7", "sapUiThemeParamUrl8", "sapUiThemeParamUrl9"
417
+ ]
418
+ });
419
+
420
+ // plain values available after library load
421
+ // Result must be in CSS-URL syntax
422
+ assert.equal(actualPlain["sapUiThemeParamUrl1"], "url('" + expected.url1 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/img1.jpg'.");
423
+ assert.equal(actualPlain["sapUiThemeParamUrl2"], "url('" + expected.url2 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/foo/img2.jpg'.");
424
+ assert.equal(actualPlain["sapUiThemeParamUrl3"], "url('" + expected.url3 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/foo/bar/img3.jpg'.");
425
+ assert.equal(actualPlain["sapUiThemeParamUrl4"], "url('" + expected.url4 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
426
+ assert.equal(actualPlain["sapUiThemeParamUrl5"], "url('" + expected.url5 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
427
+ assert.equal(actualPlain["sapUiThemeParamUrl6"], "url('" + expected.url6 + "')", "Relative URL should be resolved correctly 'sap/ui/core/qunit/testdata/libraries/themeParameters/lib4/themes/sap_horizon_hcb/'.");
428
+ assert.equal(actualPlain["sapUiThemeParamUrl7"], "url('" + expected.url7 + "')", "Relative URL should be resolved correctly 'blob:http://example.com/6e88648c-00e1-4512-9695-5b702d8455b4'.");
429
+ assert.equal(actualPlain["sapUiThemeParamUrl8"], "url('" + expected.url8 + "')", "Relative URL should be resolved correctly 'data:text/plain;utf-8,foo'.");
430
+ assert.equal(actualPlain["sapUiThemeParamUrl9"], expected.url9.plain, "'none' should stay as defined");
431
+
432
+ const actualParsed = Parameters.get({
433
+ name: ["sapUiThemeParamUrl1", "sapUiThemeParamUrl2", "sapUiThemeParamUrl3",
434
+ "sapUiThemeParamUrl4", "sapUiThemeParamUrl5", "sapUiThemeParamUrl6",
435
+ "sapUiThemeParamUrl7", "sapUiThemeParamUrl8"
436
+ ],
437
+ _restrictedParseUrls: true
438
+ });
439
+
440
+ // Additional parsing of CSS-URLs
441
+ // Result must be identical wrt. to the original URLs (s.a.)
442
+ assert.equal(actualParsed["sapUiThemeParamUrl1"], expected.url1, "Theme Image value should be correct for 'sapUiThemeParamUrl1'.");
443
+ assert.equal(actualParsed["sapUiThemeParamUrl2"], expected.url2, "Theme Image value should be correct for 'sapUiThemeParamUrl2'.");
444
+ assert.equal(actualParsed["sapUiThemeParamUrl3"], expected.url3, "Theme Image value should be correct for 'sapUiThemeParamUrl3'.");
445
+ assert.equal(actualParsed["sapUiThemeParamUrl4"], expected.url4, "Theme Image value should be correct for 'sapUiThemeParamUrl4'.");
446
+ assert.equal(actualParsed["sapUiThemeParamUrl5"], expected.url5, "Theme Image value should be correct for 'sapUiThemeParamUrl5'.");
447
+ assert.equal(actualParsed["sapUiThemeParamUrl6"], expected.url6, "Theme Image value should be correct for 'sapUiThemeParamUrl6'.");
448
+ assert.equal(actualParsed["sapUiThemeParamUrl7"], expected.url7, "Theme Image value should be correct for 'sapUiThemeParamUrl7'.");
449
+ assert.equal(actualParsed["sapUiThemeParamUrl8"], expected.url8, "Theme Image value should be correct for 'sapUiThemeParamUrl8'.");
450
+
451
+ // Value 'none' is parsed to <undefined>, which leads to the default value
452
+ const actualParsedWithDefaults = Object.assign({
453
+ "sapUiThemeParamUrl9": coreBase1x1Gif
454
+ }, Parameters.get({
455
+ name: ["sapUiThemeParamUrl9"],
456
+ _restrictedParseUrls: true
457
+ }));
458
+
459
+ assert.equal(actualParsedWithDefaults["sapUiThemeParamUrl9"], expected.url9.themeImageDefault, "Theme Image value should be 'sap/ui/core/themes/base/img/1x1.gif' for parameter value 'none'.");
460
+
461
+ // No sync XHR, since we wait for the Library to load and the theme-applied event
462
+ assert.strictEqual(checkLibraryParametersJsonRequestForLib("4").length, 0, "library-parameters.json requested once for testlibs.themeParameters.lib4");
463
+
464
+ endTest();
465
+ });
466
+ });
467
+ });
388
468
  });
@@ -379,6 +379,7 @@ sap.ui.define([
379
379
  assert.equal(Parameters._getThemeImage("sapUiThemeParamUrl9"), expected.url9.themeImage, "Theme Image value should be 'null' for parameter value 'none'.");
380
380
  assert.equal(Parameters._getThemeImage("sapUiThemeParamUrl9", true), expected.url9.themeImageForce, "Theme Image value should be 'sap/ui/core/themes/base/img/1x1.gif' for parameter value 'none' (force).");
381
381
 
382
+ // We expect a sync XHR, since we don't wait for the theme change/applied event
382
383
  assert.strictEqual(checkLibraryParametersJsonRequestForLib("4").length, 1, "library-parameters.json requested once for testlibs.themeParameters.lib4");
383
384
  });
384
385
  });
@@ -3531,7 +3531,7 @@ sap.ui.define([
3531
3531
  // code under test
3532
3532
  assert.deepEqual(
3533
3533
  oBinding._calculateRequiredGroupSection("/", 42, 15, 10),
3534
- {startIndex : 32, length : 42 + 15 + 10 - 32});
3534
+ {startIndex : 31, length : 42 + 15 + 10 + 3 - 31});
3535
3535
 
3536
3536
  // code under test
3537
3537
  assert.deepEqual(
@@ -7,7 +7,8 @@ sap.ui.define(function () {
7
7
  ui5: {
8
8
  resourceroots: {
9
9
  "test": "test-resources/sap/ui/core/qunit/app/fixture/"
10
- }
10
+ },
11
+ libs: ["sap.ui.core"]
11
12
  }
12
13
  },
13
14
  tests: {
@@ -4,130 +4,133 @@
4
4
  /*global QUnit */
5
5
  QUnit.config.autostart = false;
6
6
 
7
- sap.ui.require([
8
- "sap/base/config",
9
- "sap/base/Log",
10
- "sap/ui/thirdparty/sinon"
11
- ], function (
12
- BaseConfiguration,
13
- Log,
14
- sinon
15
- ) {
7
+ globalThis.fnInit = () => {
16
8
  "use strict";
17
- var oLog = Log.getLogger("test", 6);
18
- var oLogSpy = sinon.spy(oLog, "error");
19
- sap.ui.loader._.logger = oLog;
20
9
 
21
- QUnit.module("Base Configuration");
10
+ sap.ui.require([
11
+ "sap/base/config",
12
+ "sap/base/Log",
13
+ "sap/ui/thirdparty/sinon"
14
+ ], (
15
+ BaseConfiguration,
16
+ Log,
17
+ sinon
18
+ ) => {
19
+ var oLog = Log.getLogger("test", 6);
20
+ var oLogSpy = sinon.spy(oLog, "error");
21
+ sap.ui.loader._.logger = oLog;
22
22
 
23
- QUnit.test("Basic: Check getter on provider level", function(assert) {
24
- assert.expect(20);
23
+ QUnit.module("Base Configuration");
25
24
 
26
- // sContext is derived via URL parameter to handle provider specific behavior
27
- var sContext = BaseConfiguration.get({
28
- name: "sapUiContext",
29
- type: BaseConfiguration.Type.String,
30
- external: true
31
- });
25
+ QUnit.test("Basic: Check getter on provider level", function(assert) {
26
+ assert.expect(20);
32
27
 
33
- [
34
- { duplicateParam: "sap-ui-FooBar", origParam: "sap-ui-fooBar"},
35
- { duplicateParam: "sap-ui-foo-bar", origParam: "sap-ui-fooBar"},
36
- { duplicateParam: "sap-ui-sapUiFooBar", origParam: "sap-ui-sap-ui-fooBar"},
37
- { duplicateParam: "sap-ui-initial-falsy-value", origParam: "sap-ui-initialFalsyValue"}
38
- ].forEach(function (oParams) {
39
- var sDuplicateKey = sContext.startsWith("global") ? oParams.duplicateParam.replace("sap-ui-", "") : oParams.duplicateParam;
40
- var sOrigKey = sContext.startsWith("global") ? oParams.origParam.replace("sap-ui-", "") : oParams.origParam;
41
- assert.ok(oLogSpy.calledWith("Configuration option '" + sDuplicateKey + "' was already set by '" + sOrigKey + "' and will be ignored!"), "Logged invalid configuration option '" + sDuplicateKey + "'");
42
- });
28
+ // sContext is derived via URL parameter to handle provider specific behavior
29
+ var sContext = BaseConfiguration.get({
30
+ name: "sapUiContext",
31
+ type: BaseConfiguration.Type.String,
32
+ external: true
33
+ });
43
34
 
44
- ["sap-ui-sap/foo/bar"].forEach(function (sInvalidKey) {
45
- sInvalidKey = sContext.startsWith("global") ? sInvalidKey.replace("sap-ui-", "") : sInvalidKey;
46
- assert.ok(oLogSpy.calledWith("Invalid configuration option '" + sInvalidKey + "' in " + sContext + "!"), "Logged invalid configuration option '" + sInvalidKey + "'");
47
- });
35
+ [
36
+ { duplicateParam: "sap-ui-FooBar", origParam: "sap-ui-fooBar"},
37
+ { duplicateParam: "sap-ui-foo-bar", origParam: "sap-ui-fooBar"},
38
+ { duplicateParam: "sap-ui-sapUiFooBar", origParam: "sap-ui-sap-ui-fooBar"},
39
+ { duplicateParam: "sap-ui-initial-falsy-value", origParam: "sap-ui-initialFalsyValue"}
40
+ ].forEach(function (oParams) {
41
+ var sDuplicateKey = sContext.startsWith("global") ? oParams.duplicateParam.replace("sap-ui-", "") : oParams.duplicateParam;
42
+ var sOrigKey = sContext.startsWith("global") ? oParams.origParam.replace("sap-ui-", "") : oParams.origParam;
43
+ assert.ok(oLogSpy.calledWith("Configuration option '" + sDuplicateKey + "' was already set by '" + sOrigKey + "' and will be ignored!"), "Logged invalid configuration option '" + sDuplicateKey + "'");
44
+ });
48
45
 
49
- assert.strictEqual(BaseConfiguration.get({
50
- name: "sapUiHubelDubel",
51
- type: BaseConfiguration.Type.String,
52
- external: true
53
- }), "value1", "BaseConfiguration.get for param 'sapUiHubelDubel' returns value 'value1'");
54
- assert.strictEqual(BaseConfiguration.get({
55
- name: "sapUiHubeldubel",
56
- type: BaseConfiguration.Type.String,
57
- external: true
58
- }), "value2", "BaseConfiguration.get for param 'sapUiHubeldubel' returns value 'value2'");
59
- assert.strictEqual(BaseConfiguration.get({
60
- name: "sapUihubeldubel",
61
- type: BaseConfiguration.Type.String,
62
- external: true
63
- }), "", "BaseConfiguration.get for param 'sapUihubeldubel' returns internal default value ''");
64
- assert.strictEqual(BaseConfiguration.get({
65
- name: "sapUiFooBar",
66
- type: BaseConfiguration.Type.String,
67
- external: true
68
- }), "value3", "BaseConfiguration.get for param 'sapUiFooBar' returns correct value 'value3'");
69
- assert.strictEqual(BaseConfiguration.get({
70
- name: "sapUiFoobar",
71
- type: BaseConfiguration.Type.String,
72
- external: true
73
- }), "value5", "BaseConfiguration.get for param 'sapUiFoobar' returns correct value 'value5'");
74
- assert.strictEqual(
75
- BaseConfiguration.get({
76
- name: "sapUi5ooBar",
77
- type: BaseConfiguration.Type.String,
78
- external: true
79
- }), "value7", "BaseConfiguration.get for param 'sapUi5ooBar' returns correct value 'value7'");
80
- assert.throws(function () {
81
- BaseConfiguration.get({
82
- name: "sapUiSap-ui-fooBar",
46
+ ["sap-ui-sap/foo/bar"].forEach(function (sInvalidKey) {
47
+ sInvalidKey = sContext.startsWith("global") ? sInvalidKey.replace("sap-ui-", "") : sInvalidKey;
48
+ assert.ok(oLogSpy.calledWith("Invalid configuration option '" + sInvalidKey + "' in " + sContext + "!"), "Logged invalid configuration option '" + sInvalidKey + "'");
49
+ });
50
+
51
+ assert.strictEqual(BaseConfiguration.get({
52
+ name: "sapUiHubelDubel",
83
53
  type: BaseConfiguration.Type.String,
84
54
  external: true
85
- });
86
- }, new TypeError("Invalid configuration key 'sapUiSap-ui-fooBar'!"), "BaseConfiguration.get for param 'sapUiSap-ui-fooBar' throws error");
87
- assert.strictEqual(BaseConfiguration.get({
88
- name: "sapUiSapUiFooBar",
89
- type: BaseConfiguration.Type.String,
90
- external: true
91
- }), "value8", "BaseConfiguration.get for param 'sapUiSapUiFooBar' returns correct value 'value8'");
92
- assert.throws(function () {
55
+ }), "value1", "BaseConfiguration.get for param 'sapUiHubelDubel' returns value 'value1'");
56
+ assert.strictEqual(BaseConfiguration.get({
57
+ name: "sapUiHubeldubel",
58
+ type: BaseConfiguration.Type.String,
59
+ external: true
60
+ }), "value2", "BaseConfiguration.get for param 'sapUiHubeldubel' returns value 'value2'");
61
+ assert.strictEqual(BaseConfiguration.get({
62
+ name: "sapUihubeldubel",
63
+ type: BaseConfiguration.Type.String,
64
+ external: true
65
+ }), "", "BaseConfiguration.get for param 'sapUihubeldubel' returns internal default value ''");
66
+ assert.strictEqual(BaseConfiguration.get({
67
+ name: "sapUiFooBar",
68
+ type: BaseConfiguration.Type.String,
69
+ external: true
70
+ }), "value3", "BaseConfiguration.get for param 'sapUiFooBar' returns correct value 'value3'");
71
+ assert.strictEqual(BaseConfiguration.get({
72
+ name: "sapUiFoobar",
73
+ type: BaseConfiguration.Type.String,
74
+ external: true
75
+ }), "value5", "BaseConfiguration.get for param 'sapUiFoobar' returns correct value 'value5'");
76
+ assert.strictEqual(
93
77
  BaseConfiguration.get({
94
- name: "sapUiSap.foo.bar",
78
+ name: "sapUi5ooBar",
95
79
  type: BaseConfiguration.Type.String,
96
80
  external: true
97
- });
98
- }, new TypeError("Invalid configuration key 'sapUiSap.foo.bar'!"), "BaseConfiguration.get for param 'sapUiSap.foo.bar' throws error");
99
- assert.strictEqual(BaseConfiguration.get({
100
- name: "sapUiXxBarFoo",
101
- type: BaseConfiguration.Type.String,
102
- external: true
103
- }), "value11", "BaseConfiguration.get for param 'sapUiXxBarFoo' returns correct value 'value11'");
104
- assert.strictEqual(BaseConfiguration.get({
105
- name: "sapUiBarFoo",
106
- type: BaseConfiguration.Type.String,
107
- external: true
108
- }), "value11", "BaseConfiguration.get for param 'sapUiBarFoo' returns correct value 'value11'");
109
- assert.strictEqual(BaseConfiguration.get({
110
- name: "sapUiXxFarBoo",
111
- type: BaseConfiguration.Type.String,
112
- external: true
113
- }), "value12", "BaseConfiguration.get for param 'sapUiXxFarBoo' returns correct value 'value12'");
114
- assert.strictEqual(BaseConfiguration.get({
115
- name: "sapUiFarBoo",
116
- type: BaseConfiguration.Type.String,
117
- external: true
118
- }), "value12", "BaseConfiguration.get for param 'sapUiFarBoo' returns correct value 'value12'");
119
- assert.strictEqual(BaseConfiguration.get({
120
- name: "sapUshellFooBar",
121
- type: BaseConfiguration.Type.String,
122
- external: true
123
- // sContext is derived via URL parameter to handle provider specific behavior
124
- }), sContext.startsWith("global") ? "" : "value14", "BaseConfiguration.get for param 'sapUshellFooBar' returns correct value 'value14' or '' in global context (sap-ui-prefixed)");
125
- assert.strictEqual(BaseConfiguration.get({
126
- name: "sapUiInitialFalsyValue",
127
- type: BaseConfiguration.Type.Boolean,
128
- external: true
129
- }), false, "BaseConfiguration.get for param 'sapUiInitialFalsyValue' returns correct value 'false'");
130
- });
81
+ }), "value7", "BaseConfiguration.get for param 'sapUi5ooBar' returns correct value 'value7'");
82
+ assert.throws(function () {
83
+ BaseConfiguration.get({
84
+ name: "sapUiSap-ui-fooBar",
85
+ type: BaseConfiguration.Type.String,
86
+ external: true
87
+ });
88
+ }, new TypeError("Invalid configuration key 'sapUiSap-ui-fooBar'!"), "BaseConfiguration.get for param 'sapUiSap-ui-fooBar' throws error");
89
+ assert.strictEqual(BaseConfiguration.get({
90
+ name: "sapUiSapUiFooBar",
91
+ type: BaseConfiguration.Type.String,
92
+ external: true
93
+ }), "value8", "BaseConfiguration.get for param 'sapUiSapUiFooBar' returns correct value 'value8'");
94
+ assert.throws(function () {
95
+ BaseConfiguration.get({
96
+ name: "sapUiSap.foo.bar",
97
+ type: BaseConfiguration.Type.String,
98
+ external: true
99
+ });
100
+ }, new TypeError("Invalid configuration key 'sapUiSap.foo.bar'!"), "BaseConfiguration.get for param 'sapUiSap.foo.bar' throws error");
101
+ assert.strictEqual(BaseConfiguration.get({
102
+ name: "sapUiXxBarFoo",
103
+ type: BaseConfiguration.Type.String,
104
+ external: true
105
+ }), "value11", "BaseConfiguration.get for param 'sapUiXxBarFoo' returns correct value 'value11'");
106
+ assert.strictEqual(BaseConfiguration.get({
107
+ name: "sapUiBarFoo",
108
+ type: BaseConfiguration.Type.String,
109
+ external: true
110
+ }), "value11", "BaseConfiguration.get for param 'sapUiBarFoo' returns correct value 'value11'");
111
+ assert.strictEqual(BaseConfiguration.get({
112
+ name: "sapUiXxFarBoo",
113
+ type: BaseConfiguration.Type.String,
114
+ external: true
115
+ }), "value12", "BaseConfiguration.get for param 'sapUiXxFarBoo' returns correct value 'value12'");
116
+ assert.strictEqual(BaseConfiguration.get({
117
+ name: "sapUiFarBoo",
118
+ type: BaseConfiguration.Type.String,
119
+ external: true
120
+ }), "value12", "BaseConfiguration.get for param 'sapUiFarBoo' returns correct value 'value12'");
121
+ assert.strictEqual(BaseConfiguration.get({
122
+ name: "sapUshellFooBar",
123
+ type: BaseConfiguration.Type.String,
124
+ external: true
125
+ // sContext is derived via URL parameter to handle provider specific behavior
126
+ }), sContext.startsWith("global") ? "" : "value14", "BaseConfiguration.get for param 'sapUshellFooBar' returns correct value 'value14' or '' in global context (sap-ui-prefixed)");
127
+ assert.strictEqual(BaseConfiguration.get({
128
+ name: "sapUiInitialFalsyValue",
129
+ type: BaseConfiguration.Type.Boolean,
130
+ external: true
131
+ }), false, "BaseConfiguration.get for param 'sapUiInitialFalsyValue' returns correct value 'false'");
132
+ });
131
133
 
132
- QUnit.start();
133
- });
134
+ QUnit.start();
135
+ });
136
+ };
@@ -4,8 +4,7 @@
4
4
  <meta charset="utf-8">
5
5
 
6
6
  <!-- Initialization -->
7
- <script src="../../../../../../resources/ui5loader.js"></script>
8
- <script id="sap-ui-bootstrap" src="../../../../../../resources/ui5loader-autoconfig.js"
7
+ <script id="sap-ui-bootstrap" src="../../../../../../resources/sap-ui-core.js"
9
8
  data-sap-ui-async="true"
10
9
  data-sap-ui-compat-version="edge"
11
10
 
@@ -23,7 +22,8 @@
23
22
  data-sap-ui-xxbar-foo="value12"
24
23
  data-sap-ui-xx-far-boo="value13"
25
24
  data-sap-ui-sap;ui;bar="value14"
26
- data-sap-ushell-foo-bar="value15"></script>
25
+ data-sap-ushell-foo-bar="value15"
26
+ data-sap-ui-on-init="fnInit"></script>
27
27
 
28
28
  <link href="../../../../../../resources/sap/ui/thirdparty/qunit-2.css" rel="stylesheet" media="screen">
29
29
  <script src="../../../../../../resources/sap/ui/thirdparty/qunit-2.js"></script>