@openui5/sap.ui.core 1.119.1 → 1.120.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.
- package/THIRDPARTY.txt +6 -6
- package/package.json +1 -1
- package/src/jquery.sap.global.js +40 -111
- package/src/jquery.sap.properties.js +7 -1
- package/src/jquery.sap.resources.js +1 -1
- package/src/jquery.sap.script.js +5 -3
- package/src/jquery.sap.storage.js +6 -3
- package/src/sap/base/Event.js +32 -78
- package/src/sap/base/Eventing.js +114 -271
- package/src/sap/base/Log.js +21 -1
- package/src/sap/base/config.js +14 -9
- package/src/sap/base/i18n/Formatting.js +400 -256
- package/src/sap/base/i18n/LanguageTag.js +64 -66
- package/src/sap/base/i18n/Localization.js +125 -87
- package/src/sap/base/i18n/ResourceBundle.js +1 -1
- package/src/sap/base/i18n/date/CalendarType.js +2 -2
- package/src/sap/base/i18n/date/CalendarWeekNumbering.js +2 -2
- package/src/sap/base/i18n/date/TimezoneUtils.js +43 -6
- package/src/sap/base/util/LoaderExtensions.js +8 -2
- package/src/sap/base/util/mixedFetch.js +1 -0
- package/src/sap/base/util/resolveReference.js +31 -13
- package/src/sap/base/util/restricted/_CancelablePromise.js +1 -1
- package/src/sap/base/util/restricted/_castArray.js +1 -1
- package/src/sap/base/util/restricted/_compact.js +1 -1
- package/src/sap/base/util/restricted/_curry.js +1 -1
- package/src/sap/base/util/restricted/_debounce.js +1 -1
- package/src/sap/base/util/restricted/_difference.js +1 -1
- package/src/sap/base/util/restricted/_differenceBy.js +1 -1
- package/src/sap/base/util/restricted/_differenceWith.js +1 -1
- package/src/sap/base/util/restricted/_flatMap.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDeep.js +1 -1
- package/src/sap/base/util/restricted/_flatMapDepth.js +1 -1
- package/src/sap/base/util/restricted/_flatten.js +1 -1
- package/src/sap/base/util/restricted/_flattenDeep.js +1 -1
- package/src/sap/base/util/restricted/_flattenDepth.js +1 -1
- package/src/sap/base/util/restricted/_intersection.js +1 -1
- package/src/sap/base/util/restricted/_intersectionBy.js +1 -1
- package/src/sap/base/util/restricted/_intersectionWith.js +1 -1
- package/src/sap/base/util/restricted/_isEqual.js +1 -1
- package/src/sap/base/util/restricted/_isEqualWith.js +1 -1
- package/src/sap/base/util/restricted/_isNil.js +1 -1
- package/src/sap/base/util/restricted/_max.js +1 -1
- package/src/sap/base/util/restricted/_merge.js +1 -1
- package/src/sap/base/util/restricted/_mergeWith.js +1 -1
- package/src/sap/base/util/restricted/_min.js +1 -1
- package/src/sap/base/util/restricted/_omit.js +1 -1
- package/src/sap/base/util/restricted/_pick.js +1 -1
- package/src/sap/base/util/restricted/_pickBy.js +1 -1
- package/src/sap/base/util/restricted/_throttle.js +1 -1
- package/src/sap/base/util/restricted/_toArray.js +1 -1
- package/src/sap/base/util/restricted/_union.js +1 -1
- package/src/sap/base/util/restricted/_unionBy.js +1 -1
- package/src/sap/base/util/restricted/_unionWith.js +1 -1
- package/src/sap/base/util/restricted/_uniq.js +1 -1
- package/src/sap/base/util/restricted/_uniqBy.js +1 -1
- package/src/sap/base/util/restricted/_uniqWith.js +1 -1
- package/src/sap/base/util/restricted/_without.js +1 -1
- package/src/sap/base/util/restricted/_xor.js +1 -1
- package/src/sap/base/util/restricted/_xorBy.js +1 -1
- package/src/sap/base/util/restricted/_xorWith.js +1 -1
- package/src/sap/base/util/restricted/_zipObject.js +1 -1
- package/src/sap/base/util/restricted/_zipObjectDeep.js +1 -1
- package/src/sap/base/util/syncFetch.js +1 -0
- package/src/sap/ui/Device.js +3 -3
- package/src/sap/ui/Global.js +6 -7
- package/src/sap/ui/base/BindingInfo.js +3 -3
- package/src/sap/ui/base/BindingParser.js +5 -2
- package/src/sap/ui/base/DataType.js +57 -1
- package/src/sap/ui/base/DesignTime.js +69 -0
- package/src/sap/ui/base/Event.js +2 -2
- package/src/sap/ui/base/EventProvider.js +1 -1
- package/src/sap/ui/base/ExpressionParser.js +25 -4
- package/src/sap/ui/base/Interface.js +1 -1
- package/src/sap/ui/base/ManagedObject.js +102 -85
- package/src/sap/ui/base/ManagedObjectMetadata.js +53 -31
- package/src/sap/ui/base/ManagedObjectObserver.js +1 -0
- package/src/sap/ui/base/Metadata.js +3 -3
- package/src/sap/ui/base/Object.js +19 -1
- package/src/sap/ui/base/ObjectPool.js +1 -1
- package/src/sap/ui/core/.library +3 -3
- package/src/sap/ui/core/AnimationMode.js +2 -2
- package/src/sap/ui/core/AppCacheBuster.js +30 -18
- package/src/sap/ui/core/BusyIndicator.js +1 -1
- package/src/sap/ui/core/CalendarType.js +6 -0
- package/src/sap/ui/core/Component.js +175 -86
- package/src/sap/ui/core/ComponentContainer.js +6 -5
- package/src/sap/ui/core/ComponentMetadata.js +3 -4
- package/src/sap/ui/core/ComponentSupport.js +1 -1
- package/src/sap/ui/core/Configuration.js +395 -709
- package/src/sap/ui/core/Control.js +1 -1
- package/src/sap/ui/core/ControlBehavior.js +37 -28
- package/src/sap/ui/core/Core.js +338 -216
- package/src/sap/ui/core/CustomData.js +1 -1
- package/src/sap/ui/core/DeclarativeSupport.js +3 -1
- package/src/sap/ui/core/Element.js +24 -10
- package/src/sap/ui/core/ElementMetadata.js +1 -1
- package/src/sap/ui/core/EnabledPropagator.js +3 -2
- package/src/sap/ui/core/EventBus.js +1 -1
- package/src/sap/ui/core/Fragment.js +3 -3
- package/src/sap/ui/core/HTML.js +1 -1
- package/src/sap/ui/core/History.js +1 -1
- package/src/sap/ui/core/Icon.js +1 -1
- package/src/sap/ui/core/IndicationColorSupport.js +13 -1
- package/src/sap/ui/core/IntervalTrigger.js +1 -1
- package/src/sap/ui/core/InvisibleMessage.js +2 -3
- package/src/sap/ui/core/InvisibleRenderer.js +1 -1
- package/src/sap/ui/core/InvisibleText.js +17 -1
- package/src/sap/ui/core/Item.js +1 -1
- package/src/sap/ui/core/LabelEnablement.js +8 -1
- package/src/sap/ui/core/LayoutData.js +1 -1
- package/src/sap/ui/core/Lib.js +253 -57
- package/src/sap/ui/core/ListItem.js +1 -1
- package/src/sap/ui/core/LocalBusyIndicator.js +1 -1
- package/src/sap/ui/core/Locale.js +1 -1
- package/src/sap/ui/core/LocaleData.js +118 -32
- package/src/sap/ui/core/Manifest.js +4 -2
- package/src/sap/ui/core/Message.js +1 -1
- package/src/sap/ui/core/Placeholder.js +18 -0
- package/src/sap/ui/core/Popup.js +5 -0
- package/src/sap/ui/core/RenderManager.js +21 -17
- package/src/sap/ui/core/Renderer.js +1 -1
- package/src/sap/ui/core/Rendering.js +51 -47
- package/src/sap/ui/core/ResizeHandler.js +2 -2
- package/src/sap/ui/core/ScrollBar.js +1 -1
- package/src/sap/ui/core/SeparatorItem.js +1 -1
- package/src/sap/ui/core/Shortcut.js +5 -3
- package/src/sap/ui/core/Supportability.js +146 -0
- package/src/sap/ui/core/Theming.js +130 -88
- package/src/sap/ui/core/Title.js +1 -1
- package/src/sap/ui/core/TooltipBase.js +4 -3
- package/src/sap/ui/core/UIArea.js +5 -4
- package/src/sap/ui/core/UIComponent.js +38 -12
- package/src/sap/ui/core/UIComponentMetadata.js +1 -1
- package/src/sap/ui/core/ValueStateSupport.js +1 -1
- package/src/sap/ui/core/VariantLayoutData.js +1 -1
- package/src/sap/ui/core/XMLComposite.js +1 -1
- package/src/sap/ui/core/XMLCompositeMetadata.js +1 -1
- package/src/sap/ui/core/XMLTemplateProcessor.js +3 -3
- package/src/sap/ui/core/_IconRegistry.js +13 -6
- package/src/sap/ui/core/cldr/ar.json +143 -137
- package/src/sap/ui/core/cldr/ar_EG.json +143 -137
- package/src/sap/ui/core/cldr/ar_SA.json +143 -137
- package/src/sap/ui/core/cldr/bg.json +423 -423
- package/src/sap/ui/core/cldr/ca.json +541 -494
- package/src/sap/ui/core/cldr/cs.json +475 -364
- package/src/sap/ui/core/cldr/cy.json +656 -477
- package/src/sap/ui/core/cldr/da.json +334 -275
- package/src/sap/ui/core/cldr/de.json +388 -291
- package/src/sap/ui/core/cldr/de_AT.json +388 -291
- package/src/sap/ui/core/cldr/de_CH.json +394 -297
- package/src/sap/ui/core/cldr/el.json +169 -166
- package/src/sap/ui/core/cldr/el_CY.json +169 -166
- package/src/sap/ui/core/cldr/en.json +558 -521
- package/src/sap/ui/core/cldr/en_AU.json +558 -520
- package/src/sap/ui/core/cldr/en_GB.json +476 -439
- package/src/sap/ui/core/cldr/en_HK.json +520 -482
- package/src/sap/ui/core/cldr/en_IE.json +486 -448
- package/src/sap/ui/core/cldr/en_IN.json +466 -428
- package/src/sap/ui/core/cldr/en_NZ.json +506 -468
- package/src/sap/ui/core/cldr/en_PG.json +506 -468
- package/src/sap/ui/core/cldr/en_SG.json +506 -468
- package/src/sap/ui/core/cldr/en_ZA.json +486 -448
- package/src/sap/ui/core/cldr/es.json +473 -468
- package/src/sap/ui/core/cldr/es_AR.json +445 -440
- package/src/sap/ui/core/cldr/es_BO.json +479 -474
- package/src/sap/ui/core/cldr/es_CL.json +469 -464
- package/src/sap/ui/core/cldr/es_CO.json +387 -381
- package/src/sap/ui/core/cldr/es_MX.json +502 -497
- package/src/sap/ui/core/cldr/es_PE.json +455 -450
- package/src/sap/ui/core/cldr/es_UY.json +479 -474
- package/src/sap/ui/core/cldr/es_VE.json +499 -494
- package/src/sap/ui/core/cldr/et.json +378 -320
- package/src/sap/ui/core/cldr/fa.json +104 -104
- package/src/sap/ui/core/cldr/fi.json +401 -315
- package/src/sap/ui/core/cldr/fr.json +391 -385
- package/src/sap/ui/core/cldr/fr_BE.json +391 -385
- package/src/sap/ui/core/cldr/fr_CA.json +499 -493
- package/src/sap/ui/core/cldr/fr_CH.json +334 -328
- package/src/sap/ui/core/cldr/fr_LU.json +391 -385
- package/src/sap/ui/core/cldr/he.json +291 -159
- package/src/sap/ui/core/cldr/hi.json +157 -128
- package/src/sap/ui/core/cldr/hr.json +514 -461
- package/src/sap/ui/core/cldr/hu.json +287 -257
- package/src/sap/ui/core/cldr/id.json +463 -416
- package/src/sap/ui/core/cldr/it.json +468 -413
- package/src/sap/ui/core/cldr/it_CH.json +468 -413
- package/src/sap/ui/core/cldr/ja.json +98 -61
- package/src/sap/ui/core/cldr/kk.json +631 -571
- package/src/sap/ui/core/cldr/ko.json +79 -71
- package/src/sap/ui/core/cldr/lt.json +361 -270
- package/src/sap/ui/core/cldr/lv.json +234 -242
- package/src/sap/ui/core/cldr/ms.json +463 -408
- package/src/sap/ui/core/cldr/nb.json +176 -143
- package/src/sap/ui/core/cldr/nl.json +463 -393
- package/src/sap/ui/core/cldr/nl_BE.json +463 -393
- package/src/sap/ui/core/cldr/pl.json +633 -344
- package/src/sap/ui/core/cldr/pt.json +447 -336
- package/src/sap/ui/core/cldr/pt_PT.json +488 -449
- package/src/sap/ui/core/cldr/ro.json +477 -383
- package/src/sap/ui/core/cldr/ru.json +367 -332
- package/src/sap/ui/core/cldr/ru_UA.json +361 -326
- package/src/sap/ui/core/cldr/sk.json +502 -537
- package/src/sap/ui/core/cldr/sl.json +168 -161
- package/src/sap/ui/core/cldr/sr.json +276 -225
- package/src/sap/ui/core/cldr/sr_Latn.json +972 -907
- package/src/sap/ui/core/cldr/sv.json +420 -346
- package/src/sap/ui/core/cldr/th.json +117 -94
- package/src/sap/ui/core/cldr/tr.json +413 -359
- package/src/sap/ui/core/cldr/uk.json +395 -368
- package/src/sap/ui/core/cldr/vi.json +392 -379
- package/src/sap/ui/core/cldr/zh_CN.json +91 -33
- package/src/sap/ui/core/cldr/zh_HK.json +90 -32
- package/src/sap/ui/core/cldr/zh_SG.json +90 -32
- package/src/sap/ui/core/cldr/zh_TW.json +75 -51
- package/src/sap/ui/core/date/CalendarWeekNumbering.js +6 -0
- package/src/sap/ui/core/date/Islamic.js +4 -4
- package/src/sap/ui/core/date/UI5Date.js +1 -1
- package/src/sap/ui/core/date/_Calendars.js +5 -2
- package/src/sap/ui/core/delegate/ItemNavigation.js +1 -1
- package/src/sap/ui/core/delegate/ScrollEnablement.js +1 -1
- package/src/sap/ui/core/dnd/DragAndDrop.js +3 -2
- package/src/sap/ui/core/dnd/DragDropBase.js +1 -1
- package/src/sap/ui/core/dnd/DragDropInfo.js +1 -1
- package/src/sap/ui/core/dnd/DragInfo.js +1 -1
- package/src/sap/ui/core/dnd/DropInfo.js +1 -1
- package/src/sap/ui/core/format/DateFormat.js +33 -21
- package/src/sap/ui/core/format/NumberFormat.js +3 -2
- package/src/sap/ui/core/format/TimezoneUtil.js +1 -1
- package/src/sap/ui/core/getCompatibilityVersion.js +2 -2
- package/src/sap/ui/core/hyphenation/Hyphenation.js +1 -1
- package/src/sap/ui/core/library.js +128 -8
- package/src/sap/ui/core/message/ControlMessageProcessor.js +1 -1
- package/src/sap/ui/core/message/Message.js +2 -2
- package/src/sap/ui/core/message/MessageManager.js +1 -1
- package/src/sap/ui/core/message/MessageParser.js +1 -1
- package/src/sap/ui/core/message/MessageProcessor.js +1 -1
- package/src/sap/ui/core/message/MessageType.js +2 -1
- package/src/sap/ui/core/messagebundle.properties +24 -0
- package/src/sap/ui/core/messagebundle_ar.properties +15 -3
- package/src/sap/ui/core/messagebundle_bg.properties +14 -2
- package/src/sap/ui/core/messagebundle_ca.properties +13 -1
- package/src/sap/ui/core/messagebundle_cs.properties +15 -3
- package/src/sap/ui/core/messagebundle_cy.properties +16 -4
- package/src/sap/ui/core/messagebundle_da.properties +15 -3
- package/src/sap/ui/core/messagebundle_de.properties +15 -3
- package/src/sap/ui/core/messagebundle_el.properties +16 -4
- package/src/sap/ui/core/messagebundle_en.properties +12 -0
- package/src/sap/ui/core/messagebundle_en_GB.properties +16 -4
- package/src/sap/ui/core/messagebundle_es.properties +15 -3
- package/src/sap/ui/core/messagebundle_es_MX.properties +15 -3
- package/src/sap/ui/core/messagebundle_et.properties +15 -3
- package/src/sap/ui/core/messagebundle_fi.properties +15 -3
- package/src/sap/ui/core/messagebundle_fr.properties +15 -3
- package/src/sap/ui/core/messagebundle_fr_CA.properties +14 -2
- package/src/sap/ui/core/messagebundle_hi.properties +16 -4
- package/src/sap/ui/core/messagebundle_hr.properties +14 -2
- package/src/sap/ui/core/messagebundle_hu.properties +16 -4
- package/src/sap/ui/core/messagebundle_id.properties +15 -3
- package/src/sap/ui/core/messagebundle_it.properties +17 -5
- package/src/sap/ui/core/messagebundle_iw.properties +15 -3
- package/src/sap/ui/core/messagebundle_ja.properties +25 -13
- package/src/sap/ui/core/messagebundle_kk.properties +15 -3
- package/src/sap/ui/core/messagebundle_ko.properties +14 -2
- package/src/sap/ui/core/messagebundle_lt.properties +15 -3
- package/src/sap/ui/core/messagebundle_lv.properties +15 -3
- package/src/sap/ui/core/messagebundle_mk.properties +352 -0
- package/src/sap/ui/core/messagebundle_ms.properties +15 -3
- package/src/sap/ui/core/messagebundle_nl.properties +15 -3
- package/src/sap/ui/core/messagebundle_no.properties +14 -2
- package/src/sap/ui/core/messagebundle_pl.properties +15 -3
- package/src/sap/ui/core/messagebundle_pt.properties +15 -3
- package/src/sap/ui/core/messagebundle_pt_PT.properties +14 -2
- package/src/sap/ui/core/messagebundle_ro.properties +15 -3
- package/src/sap/ui/core/messagebundle_ru.properties +15 -3
- package/src/sap/ui/core/messagebundle_sh.properties +43 -31
- package/src/sap/ui/core/messagebundle_sk.properties +16 -4
- package/src/sap/ui/core/messagebundle_sl.properties +15 -3
- package/src/sap/ui/core/messagebundle_sv.properties +22 -10
- package/src/sap/ui/core/messagebundle_th.properties +15 -3
- package/src/sap/ui/core/messagebundle_tr.properties +15 -3
- package/src/sap/ui/core/messagebundle_uk.properties +18 -6
- package/src/sap/ui/core/messagebundle_vi.properties +18 -6
- package/src/sap/ui/core/messagebundle_zh_CN.properties +15 -3
- package/src/sap/ui/core/messagebundle_zh_TW.properties +15 -3
- package/src/sap/ui/core/mvc/Controller.js +22 -16
- package/src/sap/ui/core/mvc/ControllerExtensionProvider.js +1 -1
- package/src/sap/ui/core/mvc/EventHandlerResolver.js +5 -15
- package/src/sap/ui/core/mvc/HTMLView.js +2 -2
- package/src/sap/ui/core/mvc/JSONView.js +4 -1
- package/src/sap/ui/core/mvc/JSONViewRenderer.js +1 -0
- package/src/sap/ui/core/mvc/JSView.js +1 -1
- package/src/sap/ui/core/mvc/OverrideExecution.js +4 -4
- package/src/sap/ui/core/mvc/TemplateView.js +1 -1
- package/src/sap/ui/core/mvc/View.js +25 -15
- package/src/sap/ui/core/mvc/ViewType.js +2 -0
- package/src/sap/ui/core/mvc/XMLView.js +1 -1
- package/src/sap/ui/core/plugin/DeclarativeSupport.js +2 -1
- package/src/sap/ui/core/plugin/LessSupport.js +3 -1
- package/src/sap/ui/core/plugin/TemplatingSupport.js +1 -1
- package/src/sap/ui/core/postmessage/Bus.js +1 -1
- package/src/sap/ui/core/postmessage/confirmationDialog.js +1 -1
- package/src/sap/ui/core/routing/Router.js +2 -4
- package/src/sap/ui/core/routing/Target.js +1 -3
- package/src/sap/ui/core/routing/Targets.js +2 -3
- package/src/sap/ui/core/routing/Views.js +2 -3
- package/src/sap/ui/core/routing/async/Target.js +1 -1
- package/src/sap/ui/core/rules/Config.support.js +11 -17
- package/src/sap/ui/core/search/OpenSearchProvider.js +2 -1
- package/src/sap/ui/core/search/SearchProvider.js +2 -1
- package/src/sap/ui/core/service/Service.js +1 -1
- package/src/sap/ui/core/service/ServiceFactory.js +1 -1
- package/src/sap/ui/core/service/ServiceFactoryRegistry.js +1 -1
- package/src/sap/ui/core/support/Hotkeys.js +5 -3
- package/src/sap/ui/core/support/Plugin.js +1 -1
- package/src/sap/ui/core/support/RuleEngineOpaExtension.js +1 -3
- package/src/sap/ui/core/support/Support.js +3 -5
- package/src/sap/ui/core/support/ToolsAPI.js +15 -11
- package/src/sap/ui/core/support/plugins/ControlTree.js +2 -2
- package/src/sap/ui/core/support/plugins/Interaction.js +4 -4
- package/src/sap/ui/core/support/plugins/LocalStorage.js +1 -1
- package/src/sap/ui/core/support/plugins/Performance.js +1 -1
- package/src/sap/ui/core/support/plugins/Selector.js +7 -5
- package/src/sap/ui/core/support/plugins/TechInfo.js +1 -1
- package/src/sap/ui/core/support/plugins/Trace.js +1 -1
- package/src/sap/ui/core/support/plugins/ViewInfo.js +1 -1
- package/src/sap/ui/core/support/techinfo/TechnicalInfo.js +3 -1
- package/src/sap/ui/core/syncStyleClass.js +2 -2
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.ttf +0 -0
- package/src/sap/ui/core/themes/base/fonts/SAP-icons.woff2 +0 -0
- package/src/sap/ui/core/themes/base/global.less +9 -9
- package/src/sap/ui/core/theming/Parameters.js +18 -19
- package/src/sap/ui/core/theming/ThemeManager.js +23 -4
- package/src/sap/ui/core/tmpl/DOMAttribute.js +1 -1
- package/src/sap/ui/core/tmpl/DOMElement.js +1 -1
- package/src/sap/ui/core/tmpl/HandlebarsTemplate.js +1 -1
- package/src/sap/ui/core/tmpl/Template.js +1 -1
- package/src/sap/ui/core/tmpl/TemplateControl.js +1 -1
- package/src/sap/ui/core/util/AsyncHintsHelper.js +1 -1
- package/src/sap/ui/core/util/Export.js +1 -1
- package/src/sap/ui/core/util/ExportCell.js +1 -1
- package/src/sap/ui/core/util/ExportColumn.js +1 -1
- package/src/sap/ui/core/util/ExportRow.js +1 -1
- package/src/sap/ui/core/util/ExportType.js +1 -1
- package/src/sap/ui/core/util/ExportTypeCSV.js +1 -1
- package/src/sap/ui/core/util/File.js +1 -1
- package/src/sap/ui/core/util/LibraryInfo.js +1 -1
- package/src/sap/ui/core/util/MockServer.js +1 -1
- package/src/sap/ui/core/util/PasteHelper.js +1 -1
- package/src/sap/ui/core/util/XMLPreprocessor.js +3 -0
- package/src/sap/ui/core/util/_LocalizationHelper.js +122 -0
- package/src/sap/ui/core/util/serializer/HTMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/Serializer.js +1 -1
- package/src/sap/ui/core/util/serializer/ViewSerializer.js +4 -4
- package/src/sap/ui/core/util/serializer/XMLViewSerializer.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/Delegate.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/HTML.js +1 -1
- package/src/sap/ui/core/util/serializer/delegate/XML.js +1 -1
- package/src/sap/ui/core/webc/WebComponent.js +1 -1
- package/src/sap/ui/core/webc/WebComponentMetadata.js +1 -1
- package/src/sap/ui/core/ws/ReadyState.js +1 -1
- package/src/sap/ui/core/ws/SapPcpWebSocket.js +1 -1
- package/src/sap/ui/core/ws/WebSocket.js +1 -1
- package/src/sap/ui/debug/ControlTree.js +1 -1
- package/src/sap/ui/debug/DebugEnv.js +29 -7
- package/src/sap/ui/debug/PropertyList.js +1 -1
- package/src/sap/ui/model/ClientListBinding.js +9 -4
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +9 -4
- package/src/sap/ui/model/CompositeDataState.js +1 -1
- package/src/sap/ui/model/CompositeType.js +1 -1
- package/src/sap/ui/model/DataState.js +2 -2
- package/src/sap/ui/model/Filter.js +39 -1
- package/src/sap/ui/model/FilterProcessor.js +15 -5
- package/src/sap/ui/model/ListBinding.js +5 -0
- package/src/sap/ui/model/ManagedObjectBindingSupport.js +4 -4
- package/src/sap/ui/model/MetaModel.js +1 -1
- package/src/sap/ui/model/Model.js +14 -8
- package/src/sap/ui/model/SelectionModel.js +1 -1
- package/src/sap/ui/model/SimpleType.js +1 -1
- package/src/sap/ui/model/TreeAutoExpandMode.js +1 -1
- package/src/sap/ui/model/TreeBinding.js +3 -0
- package/src/sap/ui/model/Type.js +1 -1
- package/src/sap/ui/model/analytics/AnalyticalBinding.js +3 -1
- package/src/sap/ui/model/json/JSONListBinding.js +3 -1
- package/src/sap/ui/model/json/JSONModel.js +1 -1
- package/src/sap/ui/model/json/JSONTreeBinding.js +3 -2
- package/src/sap/ui/model/message/MessageListBinding.js +3 -0
- package/src/sap/ui/model/message/MessageModel.js +1 -1
- package/src/sap/ui/model/odata/AnnotationHelper.js +9 -3
- package/src/sap/ui/model/odata/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/ODataListBinding.js +8 -2
- package/src/sap/ui/model/odata/ODataMessageParser.js +1 -1
- package/src/sap/ui/model/odata/ODataMetaModel.js +1 -1
- package/src/sap/ui/model/odata/ODataMetadata.js +1 -1
- package/src/sap/ui/model/odata/ODataModel.js +9 -5
- package/src/sap/ui/model/odata/ODataPropertyBinding.js +1 -2
- package/src/sap/ui/model/odata/ODataTreeBinding.js +2 -0
- package/src/sap/ui/model/odata/ODataTreeBindingFlat.js +9 -14
- package/src/sap/ui/model/odata/type/Boolean.js +1 -1
- package/src/sap/ui/model/odata/type/Byte.js +1 -1
- package/src/sap/ui/model/odata/type/Currency.js +1 -1
- package/src/sap/ui/model/odata/type/Date.js +1 -1
- package/src/sap/ui/model/odata/type/DateTime.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeBase.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeOffset.js +1 -1
- package/src/sap/ui/model/odata/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/ui/model/odata/type/Decimal.js +1 -1
- package/src/sap/ui/model/odata/type/Double.js +1 -1
- package/src/sap/ui/model/odata/type/Guid.js +1 -1
- package/src/sap/ui/model/odata/type/Int.js +1 -1
- package/src/sap/ui/model/odata/type/Int16.js +1 -1
- package/src/sap/ui/model/odata/type/Int32.js +1 -1
- package/src/sap/ui/model/odata/type/Int64.js +1 -1
- package/src/sap/ui/model/odata/type/ODataType.js +1 -1
- package/src/sap/ui/model/odata/type/Raw.js +1 -1
- package/src/sap/ui/model/odata/type/SByte.js +1 -1
- package/src/sap/ui/model/odata/type/Single.js +1 -1
- package/src/sap/ui/model/odata/type/Stream.js +1 -1
- package/src/sap/ui/model/odata/type/String.js +1 -1
- package/src/sap/ui/model/odata/type/Time.js +1 -1
- package/src/sap/ui/model/odata/type/TimeOfDay.js +1 -1
- package/src/sap/ui/model/odata/type/Unit.js +1 -1
- package/src/sap/ui/model/odata/v2/Context.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataAnnotations.js +1 -1
- package/src/sap/ui/model/odata/v2/ODataListBinding.js +40 -15
- package/src/sap/ui/model/odata/v2/ODataModel.js +26 -62
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +38 -4
- package/src/sap/ui/model/odata/v4/Context.js +81 -7
- package/src/sap/ui/model/odata/v4/ODataBinding.js +3 -0
- package/src/sap/ui/model/odata/v4/ODataContextBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/ODataListBinding.js +217 -75
- package/src/sap/ui/model/odata/v4/ODataMetaModel.js +2 -2
- package/src/sap/ui/model/odata/v4/ODataModel.js +6 -6
- package/src/sap/ui/model/odata/v4/ODataPropertyBinding.js +1 -1
- package/src/sap/ui/model/odata/v4/lib/_AggregationCache.js +406 -199
- package/src/sap/ui/model/odata/v4/lib/_AggregationHelper.js +12 -7
- package/src/sap/ui/model/odata/v4/lib/_Cache.js +53 -30
- package/src/sap/ui/model/odata/v4/lib/_Helper.js +6 -4
- package/src/sap/ui/model/odata/v4/lib/_Requestor.js +6 -6
- package/src/sap/ui/model/resource/ResourceModel.js +5 -6
- package/src/sap/ui/model/type/Boolean.js +1 -1
- package/src/sap/ui/model/type/Currency.js +1 -1
- package/src/sap/ui/model/type/Date.js +1 -1
- package/src/sap/ui/model/type/DateInterval.js +1 -1
- package/src/sap/ui/model/type/DateTime.js +1 -1
- package/src/sap/ui/model/type/DateTimeInterval.js +1 -1
- package/src/sap/ui/model/type/FileSize.js +1 -1
- package/src/sap/ui/model/type/Float.js +1 -1
- package/src/sap/ui/model/type/Integer.js +1 -1
- package/src/sap/ui/model/type/String.js +1 -1
- package/src/sap/ui/model/type/Time.js +1 -1
- package/src/sap/ui/model/type/TimeInterval.js +1 -1
- package/src/sap/ui/model/type/Unit.js +1 -1
- package/src/sap/ui/model/xml/XMLListBinding.js +3 -0
- package/src/sap/ui/model/xml/XMLModel.js +1 -1
- package/src/sap/ui/model/xml/XMLTreeBinding.js +3 -0
- package/src/sap/ui/performance/BeaconRequest.js +2 -2
- package/src/sap/ui/performance/trace/Interaction.js +20 -16
- package/src/sap/ui/qunit/QUnitUtils.js +64 -45
- package/src/sap/ui/qunit/qunit-coverage.js +6 -0
- package/src/sap/ui/qunit/utils/ControlIterator.js +31 -1
- package/src/sap/ui/qunit/utils/MemoryLeakCheck.js +1 -1
- package/src/sap/ui/security/Security.js +128 -0
- package/src/sap/ui/test/BlanketReporter.js +2 -3
- package/src/sap/ui/test/BlanketReporterUI.view.xml +1 -1
- package/src/sap/ui/test/BranchTracking.js +2 -3
- package/src/sap/ui/test/ModuleTracking.js +48 -20
- package/src/sap/ui/test/OpaExtension.js +3 -3
- package/src/sap/ui/test/OpaPlugin.js +16 -6
- package/src/sap/ui/test/TestUtils.js +7 -4
- package/src/sap/ui/test/_BrowserLogCollector.js +1 -0
- package/src/sap/ui/test/_ControlFinder.js +3 -2
- package/src/sap/ui/test/_LogCollector.js +1 -0
- package/src/sap/ui/test/_UsageReport.js +115 -114
- package/src/sap/ui/test/actions/EnterText.js +24 -2
- package/src/sap/ui/test/autowaiter/WaiterBase.js +1 -0
- package/src/sap/ui/test/autowaiter/_moduleWaiter.js +1 -2
- package/src/sap/ui/test/autowaiter/_timeoutWaiter.js +1 -1
- package/src/sap/ui/test/generic/GenericTestCollection.js +5 -0
- package/src/sap/ui/test/generic/TestBase.js +1 -1
- package/src/sap/ui/test/generic/Utils.js +1 -1
- package/src/sap/ui/test/matchers/LabelFor.js +2 -12
- package/src/sap/ui/test/matchers/Matcher.js +1 -1
- package/src/sap/ui/test/pipelines/PipelineFactory.js +1 -0
- package/src/sap/ui/test/selectors/_Selector.js +1 -1
- package/src/sap/ui/util/Storage.js +1 -1
- package/src/ui5loader-autoconfig.js +84 -11
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/manifest.json +3 -10
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/MessageManager/ODataBackendMessagesComp/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/RoutingNestedComponent/localService/mockserver.js +3 -4
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/ChartAnnotation.fragment.xml +7 -7
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Detail.view.xml +12 -13
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Facets.fragment.xml +4 -4
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Field.fragment.xml +8 -8
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/FormFacet.fragment.xml +3 -5
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/LabeledField.fragment.xml +3 -3
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/Table.fragment.xml +10 -10
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/TableFacet.fragment.xml +3 -3
- package/test/sap/ui/core/demokit/sample/ViewTemplate/scenario/extension/HeaderInfo.fragment.xml +1 -1
- package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/Field.fragment.xml +2 -2
- package/test/sap/ui/core/demokit/sample/ViewTemplate/tiny/Template.view.xml +19 -21
- package/test/sap/ui/core/demokit/sample/ViewTemplate/types/TemplateV4.view.xml +2 -2
- package/test/sap/ui/core/demokit/sample/ViewTemplate/valuelist/Component.js +2 -3
- package/test/sap/ui/core/demokit/sample/common/SandboxModelHelper.js +2 -3
- package/test/sap/ui/core/demokit/sample/common/ValueHelp.js +2 -3
- package/test/sap/ui/core/demokit/sample/common/pages/Any.js +7 -8
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/BindingPath/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/Component.js +1 -1
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/Descendant/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/I18NText/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/manifest.json +3 -11
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/package.json +13 -0
- package/test/sap/ui/core/demokit/sample/matcher/LabelFor/ui5.yaml +11 -0
- package/test/sap/ui/core/demokit/sample/odata/v4/Ancestry/Main.controller.js +15 -6
- package/test/sap/ui/core/demokit/sample/odata/v4/DataAggregation/DataAggregation.controller.js +2 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/FlatDataAggregation/FlatDataAggregation.controller.js +3 -4
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.controller.js +39 -16
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/Main.view.xml +18 -21
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/all.json +509 -395
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/data/metadata.xml +586 -422
- package/test/sap/ui/core/demokit/sample/odata/v4/HierarchyBindAction/manifest.json +1 -1
- package/test/sap/ui/core/demokit/sample/odata/v4/LateProperties/Main.controller.js +2 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Facets.fragment.xml +22 -23
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/FormattedText.fragment.xml +2 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/ListBindingTemplate/Main.view.xml +7 -7
- package/test/sap/ui/core/demokit/sample/odata/v4/MultipleInlineCreationRowsGrid/Main.controller.js +0 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.controller.js +54 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/RecursiveHierarchy.view.xml +34 -9
- package/test/sap/ui/core/demokit/sample/odata/v4/RecursiveHierarchy/SandboxModel.js +156 -23
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrders/Main.view.xml +3 -2
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Facets.fragment.xml +22 -23
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/FormattedText.fragment.xml +2 -3
- package/test/sap/ui/core/demokit/sample/odata/v4/SalesOrdersTemplate/Main.view.xml +5 -5
- package/test/sap/ui/core/demokit/sample/odata/v4/ServerDrivenPaging/Main.controller.js +2 -3
- package/test/sap/ui/core/demokit/tutorial/databinding/01/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/01/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/01/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/02/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/02/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/Component.js +9 -25
- package/test/sap/ui/core/demokit/tutorial/databinding/03/manifest.json +20 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/03/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/04/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/04/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/Component.js +9 -26
- package/test/sap/ui/core/demokit/tutorial/databinding/05/manifest.json +21 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/05/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/Component.js +9 -27
- package/test/sap/ui/core/demokit/tutorial/databinding/06/manifest.json +22 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/06/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/07/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/07/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/Component.js +9 -28
- package/test/sap/ui/core/demokit/tutorial/databinding/08/manifest.json +23 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/08/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/09/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/09/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/10/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/10/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/databinding/11/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/11/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/12/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/12/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/13/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/13/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/databinding/14/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/14/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/Component.js +9 -32
- package/test/sap/ui/core/demokit/tutorial/databinding/15/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/15/webapp/manifest.json +5 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/Component.js +9 -30
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/manifest.json +24 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/manifest.json +27 -0
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/01/Component.js +9 -33
- package/test/sap/ui/core/demokit/tutorial/navigation/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/02/Component.js +9 -35
- package/test/sap/ui/core/demokit/tutorial/navigation/02/manifest.json +30 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/03/Component.js +9 -37
- package/test/sap/ui/core/demokit/tutorial/navigation/03/manifest.json +32 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/04/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/04/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/05/Component.js +9 -38
- package/test/sap/ui/core/demokit/tutorial/navigation/05/manifest.json +33 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/06/Component.js +9 -40
- package/test/sap/ui/core/demokit/tutorial/navigation/06/manifest.json +35 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/07/Component.js +9 -42
- package/test/sap/ui/core/demokit/tutorial/navigation/07/manifest.json +37 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/08/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/08/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/09/Component.js +9 -45
- package/test/sap/ui/core/demokit/tutorial/navigation/09/manifest.json +40 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/10/Component.js +9 -47
- package/test/sap/ui/core/demokit/tutorial/navigation/10/manifest.json +42 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/11/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/11/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/12/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/12/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/13/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/13/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/14/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/14/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/15/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/15/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/16/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/16/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/17/Component.js +9 -52
- package/test/sap/ui/core/demokit/tutorial/navigation/17/manifest.json +47 -0
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/Component.js +3 -27
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/manifest.json +28 -0
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/Component.js +9 -29
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/manifest.json +25 -0
- package/test/sap/ui/core/demokit/tutorial/troubleshooting/01/ui5.yaml +2 -2
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Component.js +2 -3
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/Main.view.xml +1 -1
- package/test/sap/ui/core/internal/samples/odata/v2/SalesOrders/SandboxModel.js +2 -3
- package/test/sap/ui/core/qunit/ClientModel.qunit.js +28 -28
- package/test/sap/ui/core/qunit/CompositeBinding.qunit.js +18 -0
- package/test/sap/ui/core/qunit/ControlRenderer.qunit.js +4 -3
- package/test/sap/ui/core/qunit/Core.qunit.js +5 -14
- package/test/sap/ui/core/qunit/Core_libraryPreloadFiles.qunit.js +4 -4
- package/test/sap/ui/core/qunit/Core_libraryPreloadFiles_unavoidablyUsingEval.qunit.js +6 -6
- package/test/sap/ui/core/qunit/Core_unavoidablyUsingEval.qunit.js +31 -30
- package/test/sap/ui/core/qunit/DataState.qunit.js +7 -4
- package/test/sap/ui/core/qunit/DuplicateIds.qunit.js +3 -0
- package/test/sap/ui/core/qunit/DuplicateIds_noError.qunit.js +4 -0
- package/test/sap/ui/core/qunit/Element_metadata_renderer.qunit.js +6 -0
- package/test/sap/ui/core/qunit/ExpressionParser.qunit.js +144 -85
- package/test/sap/ui/core/qunit/HTML.qunit.js +87 -84
- package/test/sap/ui/core/qunit/InvisibleText.qunit.js +22 -1
- package/test/sap/ui/core/qunit/LRUPersistentCache.qunit.js +4 -4
- package/test/sap/ui/core/qunit/Lib.qunit.js +64 -1
- package/test/sap/ui/core/qunit/ListBinding.qunit.js +14 -1
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +90 -4
- package/test/sap/ui/core/qunit/ManagedObjectMetadata.qunit.js +41 -40
- package/test/sap/ui/core/qunit/ManagedObjectModel.qunit.js +2 -1
- package/test/sap/ui/core/qunit/{ManagedObject_noBoot.qunit.js → ManagedObject_BindingParser.qunit.js} +10 -9
- package/test/sap/ui/core/qunit/Object.qunit.js +36 -0
- package/test/sap/ui/core/qunit/RenderManager.qunit.js +86 -94
- package/test/sap/ui/core/qunit/ShortcutHints.qunit.js +11 -97
- package/test/sap/ui/core/qunit/StaticBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/UIArea.qunit.js +34 -35
- package/test/sap/ui/core/qunit/analytics/AnalyticalTreeBindingAdapter.qunit.js +3 -0
- package/test/sap/ui/core/qunit/analytics/ODataModelAdapter.qunit.js +3 -0
- package/test/sap/ui/core/qunit/analytics/odata4analytics.qunit.js +3 -0
- package/test/sap/ui/core/qunit/app/DesignMode_controllerDeactivated.qunit.js +5 -6
- package/test/sap/ui/core/qunit/app/DesignMode_suppressedDeactivation.qunit.js +5 -6
- package/test/sap/ui/core/qunit/app/MessageListBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/app/_createDesignModeTests_legacyAPIs.qunit.js +8 -10
- package/test/sap/ui/core/qunit/base/Config_cascade.qunit.js +2 -2
- package/test/sap/ui/core/qunit/base/i18n/Formatting.qunit.js +49 -30
- package/test/sap/ui/core/qunit/base/i18n/ResourceBundle.qunit.js +123 -10
- package/test/sap/ui/core/qunit/base/util/resolveReference.qunit.js +9 -0
- package/test/sap/ui/core/qunit/base/util/testdata/MyModule.js +5 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapCustomBootTaskPreloadCss.beforeBootstrap.qunit.js +4 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapMinimal.qunit.html +1 -0
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload.qunit.js +9 -10
- package/test/sap/ui/core/qunit/bootstrap/BootstrapPreload_legacyAPIs.qunit.js +0 -2
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithinBody.qunit.html +2 -1
- package/test/sap/ui/core/qunit/bootstrap/BootstrapWithinHead.qunit.html +2 -1
- package/test/sap/ui/core/qunit/bootstrap/Configuration.qunit.js +122 -266
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibConfigured.qunit.html +22 -0
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibConfigured.qunit.js +22 -0
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibLoaded.qunit.html +22 -0
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibLoaded.qunit.js +16 -0
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibNotLoaded.qunit.html +22 -0
- package/test/sap/ui/core/qunit/bootstrap/ConfigurationFlexibility_LibNotLoaded.qunit.js +14 -0
- package/test/sap/ui/core/qunit/bootstrap/ControlBehavior.qunit.js +110 -0
- package/test/sap/ui/core/qunit/bootstrap/PreloadCfg.qunit.js +4 -3
- package/test/sap/ui/core/qunit/bootstrap/ResourceRoot_ResourcesURL_Standard.qunit.html +1 -1
- package/test/sap/ui/core/qunit/bootstrap/ThemeVersion.beforeBootstrap.qunit.js +2 -3
- package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted.qunit.js +39 -34
- package/test/sap/ui/core/qunit/bootstrap/_checkCoreAndLibraryBooted_legacyAPIs.qunit.js +5 -1
- package/test/sap/ui/core/qunit/bootstrap/testsuite.bootstrap.qunit.js +51 -15
- package/test/sap/ui/core/qunit/compat_legacyAPIs/jquery-compat.qunit.html +23 -0
- package/test/sap/ui/core/qunit/compat_legacyAPIs/jquery-compat.qunit.js +1 -1
- package/test/sap/ui/core/qunit/compat_legacyAPIs/jquery.sap.stubs.qunit.js +16 -20
- package/test/sap/ui/core/qunit/compat_legacyAPIs/testsuite.compat.qunit.js +1 -4
- package/test/sap/ui/core/qunit/component/Component.qunit.js +100 -7
- package/test/sap/ui/core/qunit/component/Models.qunit.js +3 -1
- package/test/sap/ui/core/qunit/component/Preloading.qunit.js +8 -12
- package/test/sap/ui/core/qunit/component/UIComponent.qunit.js +8 -2
- package/test/sap/ui/core/qunit/component/testdata/routerPreloading/Component.js +23 -0
- package/test/sap/ui/core/qunit/component/testdata/routerPreloading/Main.view.xml +8 -0
- package/test/sap/ui/core/qunit/component/testdata/routerPreloading/manifest.json +34 -0
- package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/Component.js +23 -0
- package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/Main.view.xml +8 -0
- package/test/sap/ui/core/qunit/component/testdata/targetsPreloading/manifest.json +28 -0
- package/test/sap/ui/core/qunit/date/_Calendars.qunit.js +52 -0
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaks.qunit.js +18 -0
- package/test/sap/ui/core/qunit/generic/legacy/ControlMemoryLeaksUsingIterator.qunit.js +3 -4
- package/test/sap/ui/core/qunit/generic/legacy/DuplicateIdCheck.qunit.js +18 -0
- package/test/sap/ui/core/qunit/generic/legacy/SettersContextReturn.qunit.js +15 -0
- package/test/sap/ui/core/qunit/generic/testsuite.generic.qunit.js +21 -0
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessAmbiguous.js +2 -3
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessDuplicate.js +2 -3
- package/test/sap/ui/core/qunit/gherkin/fixture/testHarnessFailing.js +2 -3
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.html +16 -0
- package/test/sap/ui/core/qunit/gherkin/opa5TestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.html +16 -0
- package/test/sap/ui/core/qunit/gherkin/qUnitTestHarness.qunit.js +1 -1
- package/test/sap/ui/core/qunit/gherkin/testsuite.gherkin.qunit.js +3 -2
- package/test/sap/ui/core/qunit/i18n/Buddhist.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/GenericLocaleData.qunit.js +217 -114
- package/test/sap/ui/core/qunit/i18n/Islamic.qunit.js +7 -4
- package/test/sap/ui/core/qunit/i18n/Japanese.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/LocaleData.qunit.js +341 -7
- package/test/sap/ui/core/qunit/i18n/Persian.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/UniversalDate.qunit.js +3 -0
- package/test/sap/ui/core/qunit/i18n/UniversalDateUtils.qunit.js +10 -1
- package/test/sap/ui/core/qunit/i18n/helper/_timezones.js +17 -11
- package/test/sap/ui/core/qunit/i18n/testsuite.i18n.qunit.js +7 -1
- package/test/sap/ui/core/qunit/internal/1Ring.qunit.html +5 -1
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.html +2 -2
- package/test/sap/ui/core/qunit/internal/1RingModels.qunit.js +1 -0
- package/test/sap/ui/core/qunit/internal/AnnotationParser.qunit.html +1 -2
- package/test/sap/ui/core/qunit/internal/ODataV4.qunit.html +6 -1
- package/test/sap/ui/core/qunit/internal/testsuite.feature-odata-v4.qunit.js +2 -1
- package/test/sap/ui/core/qunit/jquery.sap.global-config.qunit.html +24 -0
- package/test/sap/ui/core/qunit/jquery.sap.global-config.qunit.js +12 -6
- package/test/sap/ui/core/qunit/jquery.sap.global-config_beforeBootstrap.qunit.js +1 -1
- package/test/sap/ui/core/qunit/json/JSONListBinding.qunit.js +30 -0
- package/test/sap/ui/core/qunit/loader/exposeAsAMDLoader.qunit.html +1 -0
- package/test/sap/ui/core/qunit/model/Binding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/ClientListBinding.qunit.js +5 -2
- package/test/sap/ui/core/qunit/model/ClientPropertyBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +5 -2
- package/test/sap/ui/core/qunit/model/ClientTreeBindingAdapter.qunit.js +6 -0
- package/test/sap/ui/core/qunit/model/CompositeDataState.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/Context.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/ContextBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/Filter.qunit.js +49 -0
- package/test/sap/ui/core/qunit/model/FilterProcessor.qunit.js +68 -1
- package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +23 -5
- package/test/sap/ui/core/qunit/model/Model.qunit.js +46 -2
- package/test/sap/ui/core/qunit/model/PropertyBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/Sorter.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/TreeBinding.qunit.js +43 -3
- package/test/sap/ui/core/qunit/model/TreeBindingAdapter.qunit.js +3 -0
- package/test/sap/ui/core/qunit/mvc/Controller.qunit.js +107 -93
- package/test/sap/ui/core/qunit/mvc/View.qunit.js +3 -0
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessor.qunit.js +17 -14
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorAsync.qunit.js +23 -12
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML.qunit.js +29 -82
- package/test/sap/ui/core/qunit/mvc/XMLTemplateProcessorRequireXML_unavoidablySync.qunit.js +123 -0
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions.qunit.js +4 -0
- package/test/sap/ui/core/qunit/mvc/extensions/Controllerextensions_legacy.qunit.js +4 -0
- package/test/sap/ui/core/qunit/mvc/testsuite.mvc.qunit.js +16 -0
- package/test/sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.qunit.js +408 -419
- package/test/sap/ui/core/qunit/odata/AnnotationHelper.qunit.js +6 -4
- package/test/sap/ui/core/qunit/odata/ODataAnnotations.qunit.js +16 -0
- package/test/sap/ui/core/qunit/odata/ODataMetaModel.qunit.js +8 -1
- package/test/sap/ui/core/qunit/odata/ODataModel_legacyAPIs.qunit.js +22 -22
- package/test/sap/ui/core/qunit/odata/ODataTreeBindingAdapter.qunit.js +1 -1
- package/test/sap/ui/core/qunit/odata/ODataUtils.qunit.js +5 -1
- package/test/sap/ui/core/qunit/odata/type/DateTimeBase.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/type/DateTimeWithTimezone.qunit.js +6 -6
- package/test/sap/ui/core/qunit/odata/type/Time.qunit.js +3 -4
- package/test/sap/ui/core/qunit/odata/type/TimeOfDay.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/v2/ODataListBindingNoFakeService.qunit.js +52 -29
- package/test/sap/ui/core/qunit/odata/v2/ODataModel.integration.qunit.js +952 -292
- package/test/sap/ui/core/qunit/odata/v2/ODataModelNoFakeService.qunit.js +8 -15
- package/test/sap/ui/core/qunit/odata/v2/ODataPropertyBindingNoFakeService.qunit.js +6 -7
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingFlatNoFakeService.qunit.js +215 -1
- package/test/sap/ui/core/qunit/odata/v2/ODataTreeBindingNoFakeService.qunit.js +211 -20
- package/test/sap/ui/core/qunit/odata/v2/ODataV2Model.qunit.js +32 -36
- package/test/sap/ui/core/qunit/odata/v2/V2ODataModelDataState.qunit.js +3 -2
- package/test/sap/ui/core/qunit/odata/v4/Context.qunit.js +69 -2
- package/test/sap/ui/core/qunit/odata/v4/ODataBinding.qunit.js +19 -9
- package/test/sap/ui/core/qunit/odata/v4/ODataListBinding.qunit.js +601 -99
- package/test/sap/ui/core/qunit/odata/v4/ODataMetaModel.qunit.js +5 -5
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1896 -407
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.qunit.js +7 -5
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.realOData.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationCache.qunit.js +909 -422
- package/test/sap/ui/core/qunit/odata/v4/lib/_AggregationHelper.qunit.js +21 -6
- package/test/sap/ui/core/qunit/odata/v4/lib/_Cache.qunit.js +104 -33
- package/test/sap/ui/core/qunit/odata/v4/lib/_Helper.qunit.js +8 -0
- package/test/sap/ui/core/qunit/odata/v4/lib/_MetadataRequestor.qunit.js +4 -4
- package/test/sap/ui/core/qunit/odata/v4/lib/_Requestor.qunit.js +9 -9
- package/test/sap/ui/core/qunit/odata/v4/lib/_V2MetadataConverter.qunit.js +3 -3
- package/test/sap/ui/core/qunit/odata/v4/lib/_V4MetadataConverter.qunit.js +3 -3
- package/test/sap/ui/core/qunit/opa/OpaPlugin.qunit.js +16 -0
- package/test/sap/ui/core/qunit/opa/_LogCollector.qunit.js +17 -9
- package/test/sap/ui/core/qunit/opa/actions/EnterText.qunit.js +66 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssAnimationWaiter.js +3 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_cssTransitionWaiter.js +3 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_jsAnimationWaiter.js +3 -3
- package/test/sap/ui/core/qunit/opa/autowaiter/_timeoutWaiter.js +11 -0
- package/test/sap/ui/core/qunit/opa/fixture/miniUI5Site.js +14 -8
- package/test/sap/ui/core/qunit/opa/fixture/uncaughtError.js +18 -12
- package/test/sap/ui/core/qunit/performance/BeaconRequest.qunit.js +18 -2
- package/test/sap/ui/core/qunit/performance/trace/FESR.qunit.js +11 -2
- package/test/sap/ui/core/qunit/performance/trace/Interaction.qunit.js +4 -7
- package/test/sap/ui/core/qunit/resource/ResourceBinding.qunit.js +1 -0
- package/test/sap/ui/core/qunit/resource/ResourceModel.qunit.js +5 -4
- package/test/sap/ui/core/qunit/routing/async/Target.qunit.js +20 -18
- package/test/sap/ui/core/qunit/routing/async/Targets.qunit.js +1 -4
- package/test/sap/ui/core/qunit/routing/fixture/routingConfig/Component.js +2 -25
- package/test/sap/ui/core/qunit/routing/fixture/routingConfig/manifest.json +28 -0
- package/test/sap/ui/core/qunit/rule/misc/silentEventBus.qunit.js +1 -2
- package/test/sap/ui/core/qunit/testdata/libraries/scenario11/lib1/library.js +11 -0
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library-preload.js +3 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib1/library.js +3 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library-preload.js +3 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib2/library.js +3 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library-preload.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib3/library.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library-preload.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib5/library.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library-preload.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib6/library.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library-preload.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/scenario14/lib8/library.js +2 -1
- package/test/sap/ui/core/qunit/testdata/libraries/terminologies/integration/lib/library-preload.js +1 -1
- package/test/sap/ui/core/qunit/testdata/shortcutHints/Component.js +9 -0
- package/test/sap/ui/core/qunit/testdata/shortcutHints/RootView.controller.js +8 -0
- package/test/sap/ui/core/qunit/testdata/shortcutHints/RootView.view.xml +16 -0
- package/test/sap/ui/core/qunit/testdata/shortcutHints/lib/MyControl.js +27 -0
- package/test/sap/ui/core/qunit/testdata/shortcutHints/manifest.json +26 -0
- package/test/sap/ui/core/qunit/testdata/uilib-custom-theme-fallback/library.js +4 -5
- package/test/sap/ui/core/qunit/testdata/uilib-failing-css-import/library.js +5 -6
- package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_expression.controller.js +2 -1
- package/test/sap/ui/core/qunit/testdata/xml-require/view/XMLTemplateProcessorAsync_require_expression.view.xml +18 -1
- package/test/sap/ui/core/qunit/testsuite.core.framework.qunit.js +3 -0
- package/test/sap/ui/core/qunit/testsuites/testsuite.control.framework.qunit.js +0 -4
- package/test/sap/ui/core/qunit/testsuites/testsuite.foundation.enablement.qunit.js +6 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.managed.object.qunit.js +4 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.modular.core.qunit.js +1 -1
- package/test/sap/ui/core/qunit/testsuites/testsuite.security.qunit.js +3 -9
- package/test/sap/ui/core/qunit/types/DataType.qunit.js +14 -3
- package/test/sap/ui/core/qunit/types/Date.qunit.js +3 -0
- package/test/sap/ui/core/qunit/types/DateFormat.qunit.js +391 -147
- package/test/sap/ui/core/qunit/types/DateFormatTimezones.qunit.js +32 -29
- package/test/sap/ui/core/qunit/types/DateInterval.qunit.js +7 -4
- package/test/sap/ui/core/qunit/types/FileSizeFormat.qunit.js +5 -1
- package/test/sap/ui/core/qunit/types/ListFormat.qunit.js +3 -0
- package/test/sap/ui/core/qunit/types/NumberFormat.qunit.js +4 -3
- package/test/sap/ui/core/qunit/types/NumberFormatCurrencies.qunit.js +5 -4
- package/test/sap/ui/core/qunit/types/NumberFormatCurrenciesTrailing.qunit.js +4 -3
- package/test/sap/ui/core/qunit/types/SimpleType.qunit.js +3 -0
- package/test/sap/ui/core/qunit/types/TimezoneUtil.qunit.js +23 -0
- package/test/sap/ui/core/qunit/types/Types.qunit.js +44 -10
- package/test/sap/ui/core/qunit/types/testsuite.types.qunit.js +3 -0
- package/test/sap/ui/core/qunit/util/InvisibleMessage.qunit.js +4 -4
- package/test/sap/ui/core/qunit/util/XMLPreprocessor.qunit.js +592 -83
- package/test/sap/ui/core/qunit/util/beforeBootstrap/jQuery.sap.FrameOptions-allowlist.js +7 -0
- package/test/sap/ui/core/qunit/util/beforeBootstrap/jQuery.sap.FrameOptions-frameOptions.js +7 -0
- package/test/sap/ui/core/qunit/{bootstrap/CfgFromGlobalObject.qunit.html → util/jQuery.sap.FrameOptions-meta-tag-override-mode.qunit.html} +7 -11
- package/test/sap/ui/core/qunit/util/jQuery.sap.FrameOptions-meta-tag-override-mode.qunit.js +3 -4
- package/test/sap/ui/core/qunit/util/jQuery.sap.FrameOptions-meta-tag-override-service.qunit.html +26 -0
- package/test/sap/ui/core/qunit/util/jQuery.sap.FrameOptions-meta-tag-override-service.qunit.js +3 -4
- package/test/sap/ui/core/qunit/{bootstrap/CfgDefaults.qunit.html → util/jQuery.sap.FrameOptions-meta-tag.qunit.html} +5 -8
- package/test/sap/ui/core/qunit/util/jQuery.sap.FrameOptions-meta-tag.qunit.js +3 -4
- package/test/sap/ui/core/qunit/util/jQuery.sap.Version.qunit.js +10 -10
- package/test/sap/ui/core/qunit/util/jquery.sap.logger.qunit.html +18 -0
- package/test/sap/ui/core/qunit/util/jquery.sap.resources.qunit.js +1 -1
- package/test/sap/ui/core/qunit/util/testsuite.util.qunit.js +1 -3
- package/test/sap/ui/core/qunit/xml/XMLListBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/xml/XMLModel.qunit.js +3 -0
- package/test/sap/ui/core/qunit/xml/XMLPropertyBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/xml/XMLTreeBinding.qunit.js +3 -0
- package/test/sap/ui/core/relnotes/changes-1.119.json +1 -12
- package/test/sap/ui/core/relnotes/changes-1.120.json +442 -0
- package/test/sap/ui/core/terminologies/App.controller.js +2 -3
- package/test/sap/ui/core/terminologies/main.js +2 -3
- package/test/sap/ui/test/qunit/TestUtils.qunit.js +3 -3
- package/src/sap/ui/core/ConfigTest.js +0 -17
- package/src/sap/ui/core/_ConfigurationProvider.js +0 -187
- package/test/sap/ui/core/ComponentExtensibility_CustomizingDisabled.html +0 -57
- package/test/sap/ui/core/qunit/bootstrap/CfgDefaults.qunit.js +0 -71
- package/test/sap/ui/core/qunit/bootstrap/CfgFromConfigAttribute.qunit.html +0 -29
- package/test/sap/ui/core/qunit/bootstrap/CfgFromConfigAttribute.qunit.js +0 -40
- package/test/sap/ui/core/qunit/bootstrap/CfgFromGlobalObject.beforeBootstrap.qunit.js +0 -20
- package/test/sap/ui/core/qunit/bootstrap/CfgFromGlobalObject.qunit.js +0 -40
- package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.html +0 -42
- package/test/sap/ui/core/qunit/bootstrap/CfgFromTagAttributes.qunit.js +0 -49
- package/test/sap/ui/core/qunit/util/BusyIndicatorNoCore.qunit.js +0 -96
- package/test/sap/ui/core/qunit/util/beforeBootstrap/jQuery.sap.FrameOptions-meta-tag.js +0 -10
- package/test/sap/ui/core/samples/mvc/JSONView.html +0 -65
|
@@ -108,16 +108,40 @@ sap.ui.define([
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
|
-
* Creates an <mvc:View> tag with namespace definitions.
|
|
111
|
+
* Creates an <mvc:View> tag with namespace definitions and requires modules.
|
|
112
|
+
*
|
|
112
113
|
* @param {string} [sPrefix="template"]
|
|
113
114
|
* the prefix for the template namespace
|
|
115
|
+
* @param {Object<string,object>} [mRequiredModules]
|
|
116
|
+
* map from alias to module content which should be required
|
|
117
|
+
* @param {object} [that]
|
|
118
|
+
* the test context
|
|
114
119
|
* @returns {string}
|
|
115
120
|
* <mvc:View> tag
|
|
116
121
|
*/
|
|
117
|
-
function mvcView(sPrefix) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
122
|
+
function mvcView(sPrefix, mRequiredModules, that) {
|
|
123
|
+
var sAlias,
|
|
124
|
+
mAlias2Path = {},
|
|
125
|
+
sFakePath,
|
|
126
|
+
sView = '<mvc:View'
|
|
127
|
+
+ ' xmlns="sap.ui.core"'
|
|
128
|
+
+ ' xmlns:mvc="sap.ui.core.mvc"'
|
|
129
|
+
+ ' xmlns:' + (sPrefix || "template")
|
|
130
|
+
+ '="http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"';
|
|
131
|
+
|
|
132
|
+
if (mRequiredModules) {
|
|
133
|
+
for (sAlias in mRequiredModules) {
|
|
134
|
+
sFakePath = "foo/" + sAlias;
|
|
135
|
+
mAlias2Path[sAlias] = sFakePath;
|
|
136
|
+
that.expectRequire(true, [sFakePath], function () {
|
|
137
|
+
return [mRequiredModules[sAlias]];
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return sView
|
|
142
|
+
+ ' template:require="' + JSON.stringify(mAlias2Path).replaceAll('"', "'") + '">';
|
|
143
|
+
}
|
|
144
|
+
return sView + '>';
|
|
121
145
|
}
|
|
122
146
|
|
|
123
147
|
/**
|
|
@@ -304,8 +328,6 @@ sap.ui.define([
|
|
|
304
328
|
// do not rely on ERROR vs. DEBUG due to minified sources
|
|
305
329
|
Log.setLevel(Log.Level.DEBUG, sComponent);
|
|
306
330
|
|
|
307
|
-
this.oObjectPathMock = this.mock(ObjectPath);
|
|
308
|
-
|
|
309
331
|
this.oLogMock = this.mock(Log);
|
|
310
332
|
this.oLogMock.expects("warning").never();
|
|
311
333
|
this.oLogMock.expects("error").never();
|
|
@@ -562,8 +584,10 @@ sap.ui.define([
|
|
|
562
584
|
}, 0); // simulate AMD
|
|
563
585
|
});
|
|
564
586
|
}
|
|
587
|
+
/**@deprecated As of version 1.120.0*/
|
|
565
588
|
this.oSapUiMock.expects("requireSync").never();
|
|
566
589
|
} else {
|
|
590
|
+
/**@deprecated As of version 1.120.0*/
|
|
567
591
|
aURNs.forEach(function (sURN, i) {
|
|
568
592
|
that.oSapUiMock.expects("requireSync").withArgs(sURN)
|
|
569
593
|
.callsFake(i === 0 ? fnCallback : undefined);
|
|
@@ -581,6 +605,8 @@ sap.ui.define([
|
|
|
581
605
|
* @param {string} sExpectedMessage
|
|
582
606
|
* no caller identification expected;
|
|
583
607
|
* "{0}" is replaced with the line of the view content which has id="unexpected"
|
|
608
|
+
* @returns {sap.ui.base.SyncPromise}
|
|
609
|
+
* A sync promise for timing
|
|
584
610
|
*/
|
|
585
611
|
unexpected : function (assert, aViewContent, sExpectedMessage) {
|
|
586
612
|
var iUnexpected;
|
|
@@ -591,7 +617,7 @@ sap.ui.define([
|
|
|
591
617
|
}
|
|
592
618
|
});
|
|
593
619
|
|
|
594
|
-
this.checkError(assert, aViewContent, sExpectedMessage, undefined, iUnexpected);
|
|
620
|
+
return this.checkError(assert, aViewContent, sExpectedMessage, undefined, iUnexpected);
|
|
595
621
|
}
|
|
596
622
|
});
|
|
597
623
|
|
|
@@ -623,14 +649,14 @@ sap.ui.define([
|
|
|
623
649
|
Log.setLevel(Log.Level.ERROR, sComponent);
|
|
624
650
|
}
|
|
625
651
|
|
|
626
|
-
this.check(assert, aViewContent);
|
|
652
|
+
return this.check(assert, aViewContent);
|
|
627
653
|
});
|
|
628
654
|
});
|
|
629
655
|
});
|
|
630
656
|
|
|
631
657
|
//*********************************************************************************************
|
|
632
658
|
QUnit.test("XML with template:if test='true'", function (assert) {
|
|
633
|
-
this.check(assert, [
|
|
659
|
+
return this.check(assert, [
|
|
634
660
|
mvcView(),
|
|
635
661
|
'<template:if test="true">',
|
|
636
662
|
'<In id="first"/>',
|
|
@@ -650,7 +676,7 @@ sap.ui.define([
|
|
|
650
676
|
warn(this.oLogMock, "Warning(s) during processing of qux", null)
|
|
651
677
|
.exactly(bWarn ? 1 : 0);
|
|
652
678
|
|
|
653
|
-
this.check(assert, [
|
|
679
|
+
return this.check(assert, [
|
|
654
680
|
mvcView(),
|
|
655
681
|
'<template:if test="true"/>', // 1st warning
|
|
656
682
|
'<template:if test="true"/>', // 2nd warning
|
|
@@ -661,7 +687,7 @@ sap.ui.define([
|
|
|
661
687
|
|
|
662
688
|
//*********************************************************************************************
|
|
663
689
|
QUnit.test("XML with multiple template:if", function (assert) {
|
|
664
|
-
this.check(assert, [
|
|
690
|
+
return this.check(assert, [
|
|
665
691
|
mvcView(),
|
|
666
692
|
'<template:if test="true">',
|
|
667
693
|
'<In id="true"/>',
|
|
@@ -675,7 +701,7 @@ sap.ui.define([
|
|
|
675
701
|
|
|
676
702
|
//*********************************************************************************************
|
|
677
703
|
QUnit.test("XML with nested template:if (as last child)", function (assert) {
|
|
678
|
-
this.check(assert, [
|
|
704
|
+
return this.check(assert, [
|
|
679
705
|
mvcView(),
|
|
680
706
|
'<template:if test="true">',
|
|
681
707
|
'<In id="true"/>',
|
|
@@ -689,7 +715,7 @@ sap.ui.define([
|
|
|
689
715
|
|
|
690
716
|
//*********************************************************************************************
|
|
691
717
|
QUnit.test("XML with nested template:if (as inner child)", function (assert) {
|
|
692
|
-
this.check(assert, [
|
|
718
|
+
return this.check(assert, [
|
|
693
719
|
mvcView(),
|
|
694
720
|
'<template:if test="true">',
|
|
695
721
|
'<In id="true"/>',
|
|
@@ -733,7 +759,7 @@ sap.ui.define([
|
|
|
733
759
|
function (assert) {
|
|
734
760
|
this.oSapUiMock.expects("require").on(sap.ui)
|
|
735
761
|
.atLeast(0) // only for the 1st run
|
|
736
|
-
.withArgs(
|
|
762
|
+
.withArgs("sap/ui/model/type/Boolean").callThrough();
|
|
737
763
|
return this.check(assert, [
|
|
738
764
|
mvcView("t"),
|
|
739
765
|
'<t:if test="{path: \'/flag\', type: \'sap.ui.model.type.Boolean\'}">',
|
|
@@ -752,7 +778,7 @@ sap.ui.define([
|
|
|
752
778
|
["false", false, 0, null, undefined, NaN, ""].forEach(function (oFlag) {
|
|
753
779
|
QUnit.test("XML with template:if test='{/flag}', falsy, flag = " + oFlag,
|
|
754
780
|
function (assert) {
|
|
755
|
-
this.check(assert, [
|
|
781
|
+
return this.check(assert, [
|
|
756
782
|
mvcView(),
|
|
757
783
|
'<template:if test="{/flag}">',
|
|
758
784
|
'<Out/>',
|
|
@@ -772,7 +798,7 @@ sap.ui.define([
|
|
|
772
798
|
function (assert) {
|
|
773
799
|
var oModel = new JSONModel({flag: oFlag});
|
|
774
800
|
|
|
775
|
-
this.check(assert, [
|
|
801
|
+
return this.check(assert, [
|
|
776
802
|
mvcView(),
|
|
777
803
|
'<template:if test="{flag}">',
|
|
778
804
|
'<In id="flag"/>',
|
|
@@ -794,7 +820,7 @@ sap.ui.define([
|
|
|
794
820
|
}
|
|
795
821
|
}
|
|
796
822
|
};
|
|
797
|
-
this.check(assert, [
|
|
823
|
+
return this.check(assert, [
|
|
798
824
|
mvcView(),
|
|
799
825
|
'<template:if test="{formatter: \'foo.Helper.not\', path:\'/flag\'}">',
|
|
800
826
|
'<In id="flag"/>',
|
|
@@ -862,14 +888,13 @@ sap.ui.define([
|
|
|
862
888
|
};
|
|
863
889
|
|
|
864
890
|
if (bWarn && oFixture.aDebugMessages) {
|
|
865
|
-
this.checkTracing(assert, true, oFixture.aDebugMessages,
|
|
866
|
-
|
|
867
|
-
}, vExpected);
|
|
868
|
-
} else {
|
|
869
|
-
this.check(assert, aViewContent, {
|
|
870
|
-
models : new JSONModel({flag : true})
|
|
871
|
-
}, vExpected);
|
|
891
|
+
return this.checkTracing(assert, true, oFixture.aDebugMessages,
|
|
892
|
+
aViewContent, {models : new JSONModel({flag : true})}, vExpected);
|
|
872
893
|
}
|
|
894
|
+
|
|
895
|
+
return this.check(assert, aViewContent, {
|
|
896
|
+
models : new JSONModel({flag : true})
|
|
897
|
+
}, vExpected);
|
|
873
898
|
}
|
|
874
899
|
);
|
|
875
900
|
});
|
|
@@ -943,7 +968,7 @@ sap.ui.define([
|
|
|
943
968
|
aViewContent[1])
|
|
944
969
|
.exactly(bWarn ? 1 : 0); // do not construct arguments in vain!
|
|
945
970
|
|
|
946
|
-
this.check(assert, aViewContent, {
|
|
971
|
+
return this.check(assert, aViewContent, {
|
|
947
972
|
models : new JSONModel()
|
|
948
973
|
}, vExpected);
|
|
949
974
|
});
|
|
@@ -959,7 +984,7 @@ sap.ui.define([
|
|
|
959
984
|
}
|
|
960
985
|
}
|
|
961
986
|
};
|
|
962
|
-
this.check(assert, [
|
|
987
|
+
return this.check(assert, [
|
|
963
988
|
mvcView(),
|
|
964
989
|
'<template:if test="false">',
|
|
965
990
|
'<template:if test="{formatter: \'foo.Helper.forbidden\', path:\'/flag\'}"/>',
|
|
@@ -972,7 +997,7 @@ sap.ui.define([
|
|
|
972
997
|
|
|
973
998
|
//*********************************************************************************************
|
|
974
999
|
QUnit.test("XML with template:if test='false' and template:then", function (assert) {
|
|
975
|
-
this.check(assert, [
|
|
1000
|
+
return this.check(assert, [
|
|
976
1001
|
mvcView(),
|
|
977
1002
|
'<template:if test="false">',
|
|
978
1003
|
'<template:then>',
|
|
@@ -985,7 +1010,7 @@ sap.ui.define([
|
|
|
985
1010
|
|
|
986
1011
|
//*********************************************************************************************
|
|
987
1012
|
QUnit.test("XML with template:if test='true' and template:then", function (assert) {
|
|
988
|
-
this.check(assert, [
|
|
1013
|
+
return this.check(assert, [
|
|
989
1014
|
mvcView(),
|
|
990
1015
|
'<template:if test="true">',
|
|
991
1016
|
'<!-- some comment node -->',
|
|
@@ -999,7 +1024,7 @@ sap.ui.define([
|
|
|
999
1024
|
|
|
1000
1025
|
//*********************************************************************************************
|
|
1001
1026
|
QUnit.test("XML with nested template:if test='true' and template:then", function (assert) {
|
|
1002
|
-
this.check(assert, [
|
|
1027
|
+
return this.check(assert, [
|
|
1003
1028
|
mvcView(),
|
|
1004
1029
|
// it is essential for the test that there is not tag between the if's
|
|
1005
1030
|
'<template:if test="true">',
|
|
@@ -1015,7 +1040,7 @@ sap.ui.define([
|
|
|
1015
1040
|
|
|
1016
1041
|
//*********************************************************************************************
|
|
1017
1042
|
QUnit.test("XML with template:if test='true' and template:then/else", function (assert) {
|
|
1018
|
-
this.check(assert, [
|
|
1043
|
+
return this.check(assert, [
|
|
1019
1044
|
mvcView(),
|
|
1020
1045
|
'<template:if test="true">',
|
|
1021
1046
|
'<template:then>',
|
|
@@ -1032,7 +1057,7 @@ sap.ui.define([
|
|
|
1032
1057
|
|
|
1033
1058
|
//*********************************************************************************************
|
|
1034
1059
|
QUnit.test("XML with template:if test='false' and template:then/else", function (assert) {
|
|
1035
|
-
this.check(assert, [
|
|
1060
|
+
return this.check(assert, [
|
|
1036
1061
|
mvcView(),
|
|
1037
1062
|
'<template:if test="false">',
|
|
1038
1063
|
'<template:then>',
|
|
@@ -1049,7 +1074,7 @@ sap.ui.define([
|
|
|
1049
1074
|
//*********************************************************************************************
|
|
1050
1075
|
QUnit.test("XML with nested template:if test='true' and template:then/else",
|
|
1051
1076
|
function (assert) {
|
|
1052
|
-
this.check(assert, [
|
|
1077
|
+
return this.check(assert, [
|
|
1053
1078
|
mvcView(),
|
|
1054
1079
|
'<template:if test="true">',
|
|
1055
1080
|
'<In id="true"/>',
|
|
@@ -1142,7 +1167,7 @@ sap.ui.define([
|
|
|
1142
1167
|
|
|
1143
1168
|
//*********************************************************************************************
|
|
1144
1169
|
QUnit.test('<template:elseif>: if is true', function (assert) {
|
|
1145
|
-
this.check(assert, [
|
|
1170
|
+
return this.check(assert, [
|
|
1146
1171
|
mvcView(),
|
|
1147
1172
|
'<template:if test="true">',
|
|
1148
1173
|
'<template:then>',
|
|
@@ -1162,7 +1187,7 @@ sap.ui.define([
|
|
|
1162
1187
|
|
|
1163
1188
|
//*********************************************************************************************
|
|
1164
1189
|
QUnit.test('<template:elseif>: all false, w/ else', function (assert) {
|
|
1165
|
-
this.check(assert, [
|
|
1190
|
+
return this.check(assert, [
|
|
1166
1191
|
mvcView(),
|
|
1167
1192
|
'<template:if test="false">',
|
|
1168
1193
|
'<template:then>',
|
|
@@ -1181,7 +1206,7 @@ sap.ui.define([
|
|
|
1181
1206
|
|
|
1182
1207
|
//*********************************************************************************************
|
|
1183
1208
|
QUnit.test('<template:elseif>: all false, w/o else', function (assert) {
|
|
1184
|
-
this.check(assert, [
|
|
1209
|
+
return this.check(assert, [
|
|
1185
1210
|
mvcView(),
|
|
1186
1211
|
'<template:if test="false">',
|
|
1187
1212
|
'<template:then>',
|
|
@@ -1197,7 +1222,7 @@ sap.ui.define([
|
|
|
1197
1222
|
|
|
1198
1223
|
//*********************************************************************************************
|
|
1199
1224
|
QUnit.test('<template:elseif>: elseif is true', function (assert) {
|
|
1200
|
-
this.check(assert, [
|
|
1225
|
+
return this.check(assert, [
|
|
1201
1226
|
mvcView(),
|
|
1202
1227
|
'<template:if test="false">',
|
|
1203
1228
|
'<template:then>',
|
|
@@ -1230,7 +1255,7 @@ sap.ui.define([
|
|
|
1230
1255
|
}
|
|
1231
1256
|
};
|
|
1232
1257
|
|
|
1233
|
-
this.check(assert, [
|
|
1258
|
+
return this.check(assert, [
|
|
1234
1259
|
mvcView().replace(">", ' xmlns:html="http://www.w3.org/1999/xhtml">'),
|
|
1235
1260
|
'<!-- some comment node -->', // to test skipping of none ELEMENT_NODES while visiting
|
|
1236
1261
|
'<Label text="{formatter: \'foo.Helper.help\','
|
|
@@ -1280,7 +1305,7 @@ sap.ui.define([
|
|
|
1280
1305
|
var sTitle = "binding resolution: ignore [object Object], debug = " + bDebug;
|
|
1281
1306
|
|
|
1282
1307
|
QUnit.test(sTitle, function (assert) {
|
|
1283
|
-
this.checkTracing(assert, bDebug, [
|
|
1308
|
+
return this.checkTracing(assert, bDebug, [
|
|
1284
1309
|
{m : "[ 0] Start processing qux"},
|
|
1285
1310
|
{m : "[ 0] text = [object Object]", d : 1},
|
|
1286
1311
|
{m : "[ 0] Ignoring [object Array] value for attribute text", d : 3},
|
|
@@ -1572,7 +1597,7 @@ sap.ui.define([
|
|
|
1572
1597
|
}
|
|
1573
1598
|
};
|
|
1574
1599
|
|
|
1575
|
-
this.checkTracing(assert, bDebug, [
|
|
1600
|
+
return this.checkTracing(assert, bDebug, [
|
|
1576
1601
|
{m : "[ 0] Start processing qux"},
|
|
1577
1602
|
{m : "[ 0] undefined = /somewhere/com.sap.vocabularies.UI.v1.HeaderInfo"},
|
|
1578
1603
|
{m : "[ 0] Removed attribute text", d : 1},
|
|
@@ -1649,7 +1674,7 @@ sap.ui.define([
|
|
|
1649
1674
|
}
|
|
1650
1675
|
};
|
|
1651
1676
|
|
|
1652
|
-
this.checkTracing(assert, bDebug, [
|
|
1677
|
+
return this.checkTracing(assert, bDebug, [
|
|
1653
1678
|
{m : "[ 0] Start processing qux"},
|
|
1654
1679
|
{m : "[ 0] Error in formatter of attribute text Error: deliberate failure",
|
|
1655
1680
|
d : 1},
|
|
@@ -1683,7 +1708,7 @@ sap.ui.define([
|
|
|
1683
1708
|
|
|
1684
1709
|
//*********************************************************************************************
|
|
1685
1710
|
QUnit.test("template:with", function (assert) {
|
|
1686
|
-
this.check(assert, [
|
|
1711
|
+
return this.check(assert, [
|
|
1687
1712
|
mvcView(),
|
|
1688
1713
|
'<template:with path="/some/random/path">',
|
|
1689
1714
|
'<template:if test="{flag}">',
|
|
@@ -1721,7 +1746,7 @@ sap.ui.define([
|
|
|
1721
1746
|
.withExactArgs("/some/#random/path")
|
|
1722
1747
|
.returns(oMetaModel.createBindingContext("/some/random/path"));
|
|
1723
1748
|
|
|
1724
|
-
this.check(assert, [
|
|
1749
|
+
return this.check(assert, [
|
|
1725
1750
|
mvcView(),
|
|
1726
1751
|
'<template:with path="/some/#random/path" var="path">',
|
|
1727
1752
|
'<template:if test="{path>flag}">',
|
|
@@ -1736,6 +1761,9 @@ sap.ui.define([
|
|
|
1736
1761
|
//TODO createBindingContext should also be used w/o var
|
|
1737
1762
|
|
|
1738
1763
|
//*********************************************************************************************
|
|
1764
|
+
/**
|
|
1765
|
+
* @deprecated As of version 1.120.0
|
|
1766
|
+
*/
|
|
1739
1767
|
[false, true].forEach(function (bHasHelper) {
|
|
1740
1768
|
QUnit.test("template:with and 'named context', has helper = " + bHasHelper,
|
|
1741
1769
|
function (assert) {
|
|
@@ -1744,7 +1772,7 @@ sap.ui.define([
|
|
|
1744
1772
|
help : function () {} // empty helper must not make any difference
|
|
1745
1773
|
}
|
|
1746
1774
|
};
|
|
1747
|
-
this.check(assert, [
|
|
1775
|
+
return this.check(assert, [
|
|
1748
1776
|
mvcView(),
|
|
1749
1777
|
'<template:with path="/some" var="some">',
|
|
1750
1778
|
'<template:with path="some>random/path" var="path"'
|
|
@@ -1770,9 +1798,44 @@ sap.ui.define([
|
|
|
1770
1798
|
);
|
|
1771
1799
|
});
|
|
1772
1800
|
|
|
1801
|
+
//*********************************************************************************************
|
|
1802
|
+
[false, true].forEach(function (bHasHelper) {
|
|
1803
|
+
QUnit.test("template:with and 'named context', has helper = " + bHasHelper,
|
|
1804
|
+
function (assert) {
|
|
1805
|
+
return this.check(assert, [
|
|
1806
|
+
mvcView("", {
|
|
1807
|
+
Helper : {
|
|
1808
|
+
// empty helper must not make any difference
|
|
1809
|
+
help : function () { }
|
|
1810
|
+
}
|
|
1811
|
+
}, this),
|
|
1812
|
+
'<template:with path="/some" var="some">',
|
|
1813
|
+
'<template:with path="some>random/path" var="path"'
|
|
1814
|
+
+ (bHasHelper ? ' helper="Helper.help"' : '') + '>',
|
|
1815
|
+
'<template:if test="{path>flag}">',
|
|
1816
|
+
'<In id="flag"/>',
|
|
1817
|
+
'</template:if>',
|
|
1818
|
+
'</template:with>',
|
|
1819
|
+
'</template:with>',
|
|
1820
|
+
'</mvc:View>'
|
|
1821
|
+
], {
|
|
1822
|
+
models : new JSONModel({
|
|
1823
|
+
some : {
|
|
1824
|
+
random : {
|
|
1825
|
+
path : {
|
|
1826
|
+
flag : true
|
|
1827
|
+
}
|
|
1828
|
+
}
|
|
1829
|
+
}
|
|
1830
|
+
})
|
|
1831
|
+
});
|
|
1832
|
+
}
|
|
1833
|
+
);
|
|
1834
|
+
});
|
|
1835
|
+
|
|
1773
1836
|
//*********************************************************************************************
|
|
1774
1837
|
QUnit.test("template:with and 'named context', missing variable name", function (assert) {
|
|
1775
|
-
this.checkError(assert, [
|
|
1838
|
+
return this.checkError(assert, [
|
|
1776
1839
|
mvcView(),
|
|
1777
1840
|
'<template:with path="/unused" var=""/>',
|
|
1778
1841
|
'</mvc:View>'
|
|
@@ -1781,7 +1844,7 @@ sap.ui.define([
|
|
|
1781
1844
|
|
|
1782
1845
|
//*********************************************************************************************
|
|
1783
1846
|
QUnit.test("template:with and 'named context', missing model", function (assert) {
|
|
1784
|
-
this.checkError(assert, [
|
|
1847
|
+
return this.checkError(assert, [
|
|
1785
1848
|
mvcView(),
|
|
1786
1849
|
'<template:with path="some>random/path" var="path"/>', // "some" not defined here!
|
|
1787
1850
|
'</mvc:View>'
|
|
@@ -1790,7 +1853,7 @@ sap.ui.define([
|
|
|
1790
1853
|
|
|
1791
1854
|
//*********************************************************************************************
|
|
1792
1855
|
QUnit.test("template:with and 'named context', missing context", function (assert) {
|
|
1793
|
-
this.checkError(assert, [
|
|
1856
|
+
return this.checkError(assert, [
|
|
1794
1857
|
mvcView(),
|
|
1795
1858
|
'<template:with path="some/random/place" var="place"/>',
|
|
1796
1859
|
'</mvc:View>'
|
|
@@ -1800,6 +1863,9 @@ sap.ui.define([
|
|
|
1800
1863
|
});
|
|
1801
1864
|
|
|
1802
1865
|
//*********************************************************************************************
|
|
1866
|
+
/**
|
|
1867
|
+
* @deprecated As of version 1.120.0
|
|
1868
|
+
*/
|
|
1803
1869
|
[false, true].forEach(function (bAsync) {
|
|
1804
1870
|
[false, true].forEach(function (bWithVar) {
|
|
1805
1871
|
QUnit.test("template:with and helper, async = " + bAsync + ", with var = " + bWithVar,
|
|
@@ -1844,6 +1910,50 @@ sap.ui.define([
|
|
|
1844
1910
|
});
|
|
1845
1911
|
|
|
1846
1912
|
//*********************************************************************************************
|
|
1913
|
+
[false, true].forEach(function (bWithVar) {
|
|
1914
|
+
QUnit.test("template:with and helper, with var = " + bWithVar,
|
|
1915
|
+
function (assert) {
|
|
1916
|
+
var oModel = new JSONModel({
|
|
1917
|
+
target : {
|
|
1918
|
+
flag : true
|
|
1919
|
+
}
|
|
1920
|
+
});
|
|
1921
|
+
|
|
1922
|
+
return this.checkTracing(assert, true, [
|
|
1923
|
+
{m : "[ 0] Start processing qux"},
|
|
1924
|
+
{m : "[ 1] " + (bWithVar ? "target" : "") + " = /target", d : 1},
|
|
1925
|
+
{m : "[ 2] test == true --> true", d : 2},
|
|
1926
|
+
{m : "[ 2] Finished", d : "</template:if>"},
|
|
1927
|
+
{m : "[ 1] Finished", d : "</template:with>"},
|
|
1928
|
+
{m : "[ 0] Finished processing qux"}
|
|
1929
|
+
], [
|
|
1930
|
+
mvcView("", {
|
|
1931
|
+
Helper : {
|
|
1932
|
+
help : function (oContext) {
|
|
1933
|
+
assert.ok(oContext instanceof Context);
|
|
1934
|
+
assert.strictEqual(oContext.getModel(), oModel);
|
|
1935
|
+
assert.strictEqual(oContext.getPath(), "/some/random/path");
|
|
1936
|
+
return Promise.resolve("/target");
|
|
1937
|
+
}
|
|
1938
|
+
}
|
|
1939
|
+
}, this),
|
|
1940
|
+
'<template:with path="/some/random/path" helper="Helper.help"'
|
|
1941
|
+
+ (bWithVar ? ' var="target"' : '') + '>',
|
|
1942
|
+
'<template:if test="{' + (bWithVar ? 'target>' : '') + 'flag}">',
|
|
1943
|
+
'<In id="flag"/>',
|
|
1944
|
+
'</template:if>',
|
|
1945
|
+
'</template:with>',
|
|
1946
|
+
'</mvc:View>'
|
|
1947
|
+
], {
|
|
1948
|
+
models : oModel
|
|
1949
|
+
}, /*vExpected*/undefined, true);
|
|
1950
|
+
});
|
|
1951
|
+
});
|
|
1952
|
+
|
|
1953
|
+
//*********************************************************************************************
|
|
1954
|
+
/**
|
|
1955
|
+
* @deprecated As of version 1.120.0
|
|
1956
|
+
*/
|
|
1847
1957
|
[false, true].forEach(function (bWithVar) {
|
|
1848
1958
|
QUnit.test("template:with and helper changing the model, with var = " + bWithVar,
|
|
1849
1959
|
function (assert) {
|
|
@@ -1864,7 +1974,7 @@ sap.ui.define([
|
|
|
1864
1974
|
}
|
|
1865
1975
|
}
|
|
1866
1976
|
};
|
|
1867
|
-
this.check(assert, [
|
|
1977
|
+
return this.check(assert, [
|
|
1868
1978
|
mvcView(),
|
|
1869
1979
|
'<template:with path="/some/random/path" helper="foo.Helper.help"'
|
|
1870
1980
|
+ (bWithVar ? ' var="target"' : '') + '>',
|
|
@@ -1884,10 +1994,52 @@ sap.ui.define([
|
|
|
1884
1994
|
});
|
|
1885
1995
|
|
|
1886
1996
|
//*********************************************************************************************
|
|
1997
|
+
[false, true].forEach(function (bWithVar) {
|
|
1998
|
+
QUnit.test("template:with and helper changing the model, with var = " + bWithVar,
|
|
1999
|
+
function (assert) {
|
|
2000
|
+
var oMetaModel = new JSONModel({
|
|
2001
|
+
target : {
|
|
2002
|
+
flag : true
|
|
2003
|
+
}
|
|
2004
|
+
}),
|
|
2005
|
+
oModel = new JSONModel();
|
|
2006
|
+
|
|
2007
|
+
return this.check(assert, [
|
|
2008
|
+
mvcView("", {
|
|
2009
|
+
Helper : {
|
|
2010
|
+
help : function (oContext) {
|
|
2011
|
+
assert.ok(oContext instanceof Context);
|
|
2012
|
+
assert.strictEqual(oContext.getModel(), oModel);
|
|
2013
|
+
assert.strictEqual(oContext.getPath(), "/some/random/path");
|
|
2014
|
+
return oMetaModel.createBindingContext("/target");
|
|
2015
|
+
}
|
|
2016
|
+
}
|
|
2017
|
+
}, this),
|
|
2018
|
+
'<template:with path="/some/random/path" helper="Helper.help"'
|
|
2019
|
+
+ (bWithVar ? ' var="target"' : '') + '>',
|
|
2020
|
+
'<template:if test="{' + (bWithVar ? 'target>' : '') + 'flag}">',
|
|
2021
|
+
'<In id="flag"/>',
|
|
2022
|
+
'</template:if>',
|
|
2023
|
+
'</template:with>',
|
|
2024
|
+
'</mvc:View>'
|
|
2025
|
+
], {
|
|
2026
|
+
models : {
|
|
2027
|
+
meta : oMetaModel,
|
|
2028
|
+
"undefined" : oModel
|
|
2029
|
+
}
|
|
2030
|
+
});
|
|
2031
|
+
}
|
|
2032
|
+
);
|
|
2033
|
+
});
|
|
2034
|
+
|
|
2035
|
+
//*********************************************************************************************
|
|
2036
|
+
/**
|
|
2037
|
+
* @deprecated As of version 1.120.0
|
|
2038
|
+
*/
|
|
1887
2039
|
[undefined, {}].forEach(function (fnHelper) {
|
|
1888
2040
|
QUnit.test("template:with and helper = " + fnHelper, function (assert) {
|
|
1889
2041
|
window.foo = fnHelper;
|
|
1890
|
-
this.checkError(assert, [
|
|
2042
|
+
return this.checkError(assert, [
|
|
1891
2043
|
mvcView(),
|
|
1892
2044
|
'<template:with path="/unused" var="target" helper="foo"/>',
|
|
1893
2045
|
'</mvc:View>'
|
|
@@ -1897,9 +2049,24 @@ sap.ui.define([
|
|
|
1897
2049
|
});
|
|
1898
2050
|
});
|
|
1899
2051
|
|
|
2052
|
+
//*********************************************************************************************
|
|
2053
|
+
[undefined, {}].forEach(function (fnHelper) {
|
|
2054
|
+
QUnit.test("template:with and helper = " + fnHelper, function (assert) {
|
|
2055
|
+
return this.checkError(assert, [
|
|
2056
|
+
mvcView("", {
|
|
2057
|
+
Helper : fnHelper
|
|
2058
|
+
}, this),
|
|
2059
|
+
'<template:with path="/unused" var="target" helper="foo"/>',
|
|
2060
|
+
'</mvc:View>'
|
|
2061
|
+
], "Cannot resolve helper for {0}", {
|
|
2062
|
+
models : new JSONModel()
|
|
2063
|
+
});
|
|
2064
|
+
});
|
|
2065
|
+
});
|
|
2066
|
+
|
|
1900
2067
|
//*********************************************************************************************
|
|
1901
2068
|
QUnit.test('<template:with helper=".">', function (assert) {
|
|
1902
|
-
this.checkError(assert, [
|
|
2069
|
+
return this.checkError(assert, [
|
|
1903
2070
|
mvcView(),
|
|
1904
2071
|
'<template:with path="/unused" var="target" helper="."/>',
|
|
1905
2072
|
'</mvc:View>'
|
|
@@ -1909,6 +2076,9 @@ sap.ui.define([
|
|
|
1909
2076
|
});
|
|
1910
2077
|
|
|
1911
2078
|
//*********************************************************************************************
|
|
2079
|
+
/**
|
|
2080
|
+
* @deprecated As of version 1.120.0
|
|
2081
|
+
*/
|
|
1912
2082
|
[false, true].forEach(function (bAsync) {
|
|
1913
2083
|
[true, ""].forEach(function (vResult) {
|
|
1914
2084
|
QUnit.test("template:with and helper returning " + vResult + ", bAsync = " + bAsync,
|
|
@@ -1928,6 +2098,26 @@ sap.ui.define([
|
|
|
1928
2098
|
});
|
|
1929
2099
|
|
|
1930
2100
|
//*********************************************************************************************
|
|
2101
|
+
[true, ""].forEach(function (vResult) {
|
|
2102
|
+
QUnit.test("template:with and helper returning " + vResult, function (assert) {
|
|
2103
|
+
return this.checkError(assert, [
|
|
2104
|
+
mvcView("", {
|
|
2105
|
+
foo : function () {
|
|
2106
|
+
return vResult;
|
|
2107
|
+
}
|
|
2108
|
+
}, this),
|
|
2109
|
+
'<template:with path="/unused" var="target" helper="foo"/>',
|
|
2110
|
+
'</mvc:View>'
|
|
2111
|
+
], "Illegal helper result '" + vResult + "' in {0}", {
|
|
2112
|
+
models : new JSONModel()
|
|
2113
|
+
}, undefined, true);
|
|
2114
|
+
});
|
|
2115
|
+
});
|
|
2116
|
+
|
|
2117
|
+
//*********************************************************************************************
|
|
2118
|
+
/**
|
|
2119
|
+
* @deprecated As of version 1.120.0
|
|
2120
|
+
*/
|
|
1931
2121
|
QUnit.test('template:with repeated w/ same variable and value', function (assert) {
|
|
1932
2122
|
var oModel = new JSONModel(),
|
|
1933
2123
|
sTemplate1 = '<template:with path="bar>/my/path" var="bar"/>',
|
|
@@ -1942,7 +2132,7 @@ sap.ui.define([
|
|
|
1942
2132
|
warn(this.oLogMock, "[ 1] Set unchanged path: /my/path", sTemplate2);
|
|
1943
2133
|
warn(this.oLogMock, "[ 1] Set unchanged path: /my/path", sTemplate3);
|
|
1944
2134
|
|
|
1945
|
-
this.check(assert, [
|
|
2135
|
+
return this.check(assert, [
|
|
1946
2136
|
mvcView(),
|
|
1947
2137
|
sTemplate1,
|
|
1948
2138
|
sTemplate2,
|
|
@@ -1955,13 +2145,44 @@ sap.ui.define([
|
|
|
1955
2145
|
}
|
|
1956
2146
|
});
|
|
1957
2147
|
});
|
|
2148
|
+
//*********************************************************************************************
|
|
2149
|
+
QUnit.test('template:with repeated w/ same variable and value', function (assert) {
|
|
2150
|
+
var oModel = new JSONModel(),
|
|
2151
|
+
sTemplate1 = '<template:with path="bar>/my/path" var="bar"/>',
|
|
2152
|
+
sTemplate2 = '<template:with path="bar>bla" helper="foo"/>',
|
|
2153
|
+
sTemplate3 = '<template:with path="bar>/my/path"/>';
|
|
2154
|
+
|
|
2155
|
+
warn(this.oLogMock, "[ 1] Set unchanged path: /my/path", sTemplate1);
|
|
2156
|
+
warn(this.oLogMock, "[ 1] Set unchanged path: /my/path", sTemplate2);
|
|
2157
|
+
warn(this.oLogMock, "[ 1] Set unchanged path: /my/path", sTemplate3);
|
|
2158
|
+
|
|
2159
|
+
return this.check(assert, [
|
|
2160
|
+
mvcView("", {
|
|
2161
|
+
foo : function () {
|
|
2162
|
+
return "/my/path";
|
|
2163
|
+
}
|
|
2164
|
+
}, this),
|
|
2165
|
+
sTemplate1,
|
|
2166
|
+
sTemplate2,
|
|
2167
|
+
sTemplate3,
|
|
2168
|
+
'</mvc:View>'
|
|
2169
|
+
], {
|
|
2170
|
+
models : {bar : oModel},
|
|
2171
|
+
bindingContexts : {
|
|
2172
|
+
bar : oModel.createBindingContext("/my/path")
|
|
2173
|
+
}
|
|
2174
|
+
});
|
|
2175
|
+
});
|
|
1958
2176
|
|
|
1959
2177
|
//*********************************************************************************************
|
|
2178
|
+
/**
|
|
2179
|
+
* @deprecated As of version 1.120.0
|
|
2180
|
+
*/
|
|
1960
2181
|
QUnit.test("template:with synchronously and helper returning Promise", function (assert) {
|
|
1961
2182
|
window.foo = function () {
|
|
1962
2183
|
return Promise.resolve();
|
|
1963
2184
|
};
|
|
1964
|
-
this.checkError(assert, [
|
|
2185
|
+
return this.checkError(assert, [
|
|
1965
2186
|
mvcView(),
|
|
1966
2187
|
'<template:with path="/unused" helper="foo"/>',
|
|
1967
2188
|
'</mvc:View>'
|
|
@@ -1971,6 +2192,24 @@ sap.ui.define([
|
|
|
1971
2192
|
});
|
|
1972
2193
|
|
|
1973
2194
|
//*********************************************************************************************
|
|
2195
|
+
QUnit.test("template:with synchronously and helper returning Promise", function (assert) {
|
|
2196
|
+
return this.checkError(assert, [
|
|
2197
|
+
mvcView("", {
|
|
2198
|
+
foo : function () {
|
|
2199
|
+
return Promise.resolve();
|
|
2200
|
+
}
|
|
2201
|
+
}, this),
|
|
2202
|
+
'<template:with path="/unused" helper="foo"/>',
|
|
2203
|
+
'</mvc:View>'
|
|
2204
|
+
], "Async helper in sync view in {0}", {
|
|
2205
|
+
models : new JSONModel()
|
|
2206
|
+
});
|
|
2207
|
+
});
|
|
2208
|
+
|
|
2209
|
+
//*********************************************************************************************
|
|
2210
|
+
/**
|
|
2211
|
+
* @deprecated As of version 1.120.0
|
|
2212
|
+
*/
|
|
1974
2213
|
QUnit.test("template:with synchronously and helper returning SyncPromise", function (assert) {
|
|
1975
2214
|
var oModel = new JSONModel({
|
|
1976
2215
|
target : {
|
|
@@ -1981,7 +2220,7 @@ sap.ui.define([
|
|
|
1981
2220
|
window.foo = function (oContext) {
|
|
1982
2221
|
return SyncPromise.resolve("/target");
|
|
1983
2222
|
};
|
|
1984
|
-
this.check(assert, [
|
|
2223
|
+
return this.check(assert, [
|
|
1985
2224
|
mvcView(),
|
|
1986
2225
|
'<template:with path="/some/random/path" helper="foo">',
|
|
1987
2226
|
'<template:if test="{flag}">',
|
|
@@ -1994,9 +2233,34 @@ sap.ui.define([
|
|
|
1994
2233
|
});
|
|
1995
2234
|
});
|
|
1996
2235
|
|
|
2236
|
+
//*********************************************************************************************
|
|
2237
|
+
QUnit.test("template:with synchronously and helper returning SyncPromise", function (assert) {
|
|
2238
|
+
var oModel = new JSONModel({
|
|
2239
|
+
target : {
|
|
2240
|
+
flag : true
|
|
2241
|
+
}
|
|
2242
|
+
});
|
|
2243
|
+
|
|
2244
|
+
return this.check(assert, [
|
|
2245
|
+
mvcView("", {
|
|
2246
|
+
foo : function (oContext) {
|
|
2247
|
+
return SyncPromise.resolve("/target");
|
|
2248
|
+
}
|
|
2249
|
+
}, this),
|
|
2250
|
+
'<template:with path="/some/random/path" helper="foo">',
|
|
2251
|
+
'<template:if test="{flag}">',
|
|
2252
|
+
'<In id="flag"/>',
|
|
2253
|
+
'</template:if>',
|
|
2254
|
+
'</template:with>',
|
|
2255
|
+
'</mvc:View>'
|
|
2256
|
+
], {
|
|
2257
|
+
models : oModel
|
|
2258
|
+
});
|
|
2259
|
+
});
|
|
2260
|
+
|
|
1997
2261
|
//*********************************************************************************************
|
|
1998
2262
|
QUnit.test("template:repeat w/o named models", function (assert) {
|
|
1999
|
-
this.check(assert, [
|
|
2263
|
+
return this.check(assert, [
|
|
2000
2264
|
mvcView(),
|
|
2001
2265
|
'<template:repeat list="{/items}">',
|
|
2002
2266
|
'<In src="{src}"/>',
|
|
@@ -2032,7 +2296,7 @@ sap.ui.define([
|
|
|
2032
2296
|
return aArray;
|
|
2033
2297
|
}
|
|
2034
2298
|
|
|
2035
|
-
this.check(assert, [
|
|
2299
|
+
return this.check(assert, [
|
|
2036
2300
|
mvcView(),
|
|
2037
2301
|
'<template:repeat list="{/items}">',
|
|
2038
2302
|
'<In src="{src}"/>',
|
|
@@ -2047,7 +2311,7 @@ sap.ui.define([
|
|
|
2047
2311
|
|
|
2048
2312
|
//*********************************************************************************************
|
|
2049
2313
|
QUnit.test("template:repeat, startIndex & length", function (assert) {
|
|
2050
|
-
this.check(assert, [
|
|
2314
|
+
return this.check(assert, [
|
|
2051
2315
|
mvcView(),
|
|
2052
2316
|
'<template:repeat list="' + "{path:'/items',startIndex:1,length:2}" + '">',
|
|
2053
2317
|
'<In src="{src}"/>',
|
|
@@ -2073,7 +2337,7 @@ sap.ui.define([
|
|
|
2073
2337
|
|
|
2074
2338
|
//*********************************************************************************************
|
|
2075
2339
|
QUnit.test("template:repeat with named models", function (assert) {
|
|
2076
|
-
this.check(assert, [
|
|
2340
|
+
return this.check(assert, [
|
|
2077
2341
|
mvcView(),
|
|
2078
2342
|
'<template:repeat list="{modelName>/items}">',
|
|
2079
2343
|
'<In src="{modelName>src}"/>',
|
|
@@ -2100,7 +2364,7 @@ sap.ui.define([
|
|
|
2100
2364
|
|
|
2101
2365
|
//*********************************************************************************************
|
|
2102
2366
|
QUnit.test('template:repeat w/o list', function (assert) {
|
|
2103
|
-
this.checkError(assert, [
|
|
2367
|
+
return this.checkError(assert, [
|
|
2104
2368
|
mvcView(),
|
|
2105
2369
|
'<template:repeat/>',
|
|
2106
2370
|
'</mvc:View>'
|
|
@@ -2109,7 +2373,7 @@ sap.ui.define([
|
|
|
2109
2373
|
|
|
2110
2374
|
//*********************************************************************************************
|
|
2111
2375
|
QUnit.test('template:repeat list="no binding"', function (assert) {
|
|
2112
|
-
this.checkError(assert, [
|
|
2376
|
+
return this.checkError(assert, [
|
|
2113
2377
|
mvcView(),
|
|
2114
2378
|
'<template:repeat list="no binding"/>',
|
|
2115
2379
|
'</mvc:View>'
|
|
@@ -2118,7 +2382,7 @@ sap.ui.define([
|
|
|
2118
2382
|
|
|
2119
2383
|
//*********************************************************************************************
|
|
2120
2384
|
QUnit.test('template:repeat list="{unknown>foo}"', function (assert) {
|
|
2121
|
-
this.checkError(assert, [
|
|
2385
|
+
return this.checkError(assert, [
|
|
2122
2386
|
mvcView(),
|
|
2123
2387
|
'<template:repeat list="{unknown>foo}"/>',
|
|
2124
2388
|
'</mvc:View>'
|
|
@@ -2129,7 +2393,7 @@ sap.ui.define([
|
|
|
2129
2393
|
QUnit.test('template:repeat list="{/unsupported/path}"', function (assert) {
|
|
2130
2394
|
//TODO is this the expected behavior? the loop has no iterations and that's it?
|
|
2131
2395
|
// Note: the same happens with a relative path if there is no binding context for the model
|
|
2132
|
-
this.check(assert, [
|
|
2396
|
+
return this.check(assert, [
|
|
2133
2397
|
mvcView(),
|
|
2134
2398
|
'<template:repeat list="{/unsupported/path}"/>',
|
|
2135
2399
|
'</mvc:View>'
|
|
@@ -2140,7 +2404,7 @@ sap.ui.define([
|
|
|
2140
2404
|
|
|
2141
2405
|
//*********************************************************************************************
|
|
2142
2406
|
QUnit.test("template:repeat w/ complex binding and model", function (assert) {
|
|
2143
|
-
this.check(assert, [
|
|
2407
|
+
return this.check(assert, [
|
|
2144
2408
|
mvcView(),
|
|
2145
2409
|
// Note: foo: 'bar' just serves as placeholder for any parameter (complex syntax)
|
|
2146
2410
|
'<template:repeat list="{foo: \'bar\', path:\'modelName>/items\'}">',
|
|
@@ -2168,7 +2432,7 @@ sap.ui.define([
|
|
|
2168
2432
|
|
|
2169
2433
|
//*********************************************************************************************
|
|
2170
2434
|
QUnit.test("template:repeat nested", function (assert) {
|
|
2171
|
-
this.check(assert, [
|
|
2435
|
+
return this.check(assert, [
|
|
2172
2436
|
mvcView(),
|
|
2173
2437
|
'<template:repeat list="{customer>/orders}">',
|
|
2174
2438
|
'<In src="{customer>id}"/>',
|
|
@@ -2209,7 +2473,7 @@ sap.ui.define([
|
|
|
2209
2473
|
|
|
2210
2474
|
//*********************************************************************************************
|
|
2211
2475
|
QUnit.test("template:repeat with loop variable", function (assert) {
|
|
2212
|
-
this.check(assert, [
|
|
2476
|
+
return this.check(assert, [
|
|
2213
2477
|
mvcView(),
|
|
2214
2478
|
'<template:repeat list="{modelName>/items}" var="item">',
|
|
2215
2479
|
'<In src="{item>src}"/>',
|
|
@@ -2236,14 +2500,14 @@ sap.ui.define([
|
|
|
2236
2500
|
|
|
2237
2501
|
//*********************************************************************************************
|
|
2238
2502
|
QUnit.test("template:repeat with missing loop variable", function (assert) {
|
|
2239
|
-
this.checkError(assert, [
|
|
2503
|
+
return this.checkError(assert, [
|
|
2240
2504
|
mvcView(),
|
|
2241
2505
|
'<template:repeat var="" list="{/unused}"/>',
|
|
2242
2506
|
'</mvc:View>'
|
|
2243
2507
|
], "Missing variable name for {0}");
|
|
2244
2508
|
});
|
|
2245
2509
|
|
|
2246
|
-
[false, true].forEach(function (bAsync) {
|
|
2510
|
+
[/**@deprecated As of version 1.120.0*/false, true].forEach(function (bAsync) {
|
|
2247
2511
|
[false, true].forEach(function (bDebug) {
|
|
2248
2512
|
//**************************************************************************************
|
|
2249
2513
|
QUnit.test("fragment support incl. template:require, async = " + bAsync
|
|
@@ -2293,6 +2557,9 @@ sap.ui.define([
|
|
|
2293
2557
|
});
|
|
2294
2558
|
|
|
2295
2559
|
//**************************************************************************************
|
|
2560
|
+
/**
|
|
2561
|
+
* @deprecated As of version 1.120.0
|
|
2562
|
+
*/
|
|
2296
2563
|
QUnit.test("fragment with FragmentDefinition incl. template:require, async = " + bAsync
|
|
2297
2564
|
+ ", debug = " + bDebug, function (assert) {
|
|
2298
2565
|
var aModuleNames = [
|
|
@@ -2358,10 +2625,73 @@ sap.ui.define([
|
|
|
2358
2625
|
});
|
|
2359
2626
|
});
|
|
2360
2627
|
|
|
2628
|
+
//**************************************************************************************
|
|
2629
|
+
[false, true].forEach(function (bDebug) {
|
|
2630
|
+
//**************************************************************************************
|
|
2631
|
+
var sTitle = "fragment with FragmentDefinition incl. template:require, debug = "
|
|
2632
|
+
+ bDebug;
|
|
2633
|
+
|
|
2634
|
+
QUnit.test(sTitle, function (assert) {
|
|
2635
|
+
var mModuleNames = {
|
|
2636
|
+
MyHelper : "foo.Helper",
|
|
2637
|
+
Helper : "sap.ui.core.sample.ViewTemplate.scenario.Helper",
|
|
2638
|
+
AnnotationHelper : "sap.ui.model.odata.AnnotationHelper"
|
|
2639
|
+
},
|
|
2640
|
+
aFragmentContent = [
|
|
2641
|
+
'<FragmentDefinition xmlns="sap.ui.core" xmlns:template='
|
|
2642
|
+
+ '"http://schemas.sap.com/sapui5/extension/sap.ui.core.template/1"'
|
|
2643
|
+
+ ' template:require="'
|
|
2644
|
+
+ JSON.stringify(mModuleNames).replaceAll('"', "'") + '">',
|
|
2645
|
+
'<Text id="first" text="'
|
|
2646
|
+
+ "{formatter: 'MyHelper.bar', path: '/flag'}" + '"/>',
|
|
2647
|
+
'<Fragment fragmentName="innerFragment" type="XML"/>',
|
|
2648
|
+
'<In id="last"/>',
|
|
2649
|
+
'</FragmentDefinition>'
|
|
2650
|
+
];
|
|
2651
|
+
|
|
2652
|
+
this.expectLoad(true, "myFragment", xml(assert, aFragmentContent));
|
|
2653
|
+
this.expectRequire(true, Object.values(mModuleNames), function () {
|
|
2654
|
+
return [{
|
|
2655
|
+
bar : function (vValue) {
|
|
2656
|
+
return "*" + vValue + "*";
|
|
2657
|
+
}
|
|
2658
|
+
}, {}, {}];
|
|
2659
|
+
});
|
|
2660
|
+
this.expectLoad(true, "innerFragment",
|
|
2661
|
+
xml(assert, ['<In xmlns="sap.ui.core" id="inner"/>']));
|
|
2662
|
+
this.expectLoad(true, "yetAnotherFragment",
|
|
2663
|
+
xml(assert, ['<In xmlns="sap.ui.core" id="yetAnother"/>']));
|
|
2664
|
+
|
|
2665
|
+
return this.checkTracing(assert, bDebug, [
|
|
2666
|
+
{m : "[ 0] Start processing qux"},
|
|
2667
|
+
{m : "[ 1] fragmentName = myFragment", d : 1},
|
|
2668
|
+
{m : "[ 1] text = *true*", d : aFragmentContent[1]},
|
|
2669
|
+
{m : "[ 2] fragmentName = innerFragment", d : aFragmentContent[2]},
|
|
2670
|
+
{m : "[ 2] Finished", d : "</Fragment>"},
|
|
2671
|
+
{m : "[ 1] Finished", d : "</Fragment>"},
|
|
2672
|
+
{m : "[ 1] fragmentName = yetAnotherFragment", d : 2},
|
|
2673
|
+
{m : "[ 1] Finished", d : "</Fragment>"},
|
|
2674
|
+
{m : "[ 0] Finished processing qux"}
|
|
2675
|
+
], [
|
|
2676
|
+
mvcView(),
|
|
2677
|
+
'<Fragment fragmentName="myFragment" type="XML"/>',
|
|
2678
|
+
'<Fragment fragmentName="yetAnotherFragment" type="XML"/>',
|
|
2679
|
+
'</mvc:View>'
|
|
2680
|
+
], {
|
|
2681
|
+
models : new JSONModel({flag : true})
|
|
2682
|
+
}, [
|
|
2683
|
+
'<Text id="first" text="*true*"/>',
|
|
2684
|
+
'<In id="inner"/>',
|
|
2685
|
+
'<In id="last"/>',
|
|
2686
|
+
'<In id="yetAnother"/>'
|
|
2687
|
+
], true);
|
|
2688
|
+
});
|
|
2689
|
+
});
|
|
2690
|
+
|
|
2361
2691
|
//*********************************************************************************************
|
|
2362
2692
|
QUnit.test("dynamic fragment names", function (assert) {
|
|
2363
2693
|
this.expectLoad(false, "dynamicFragmentName", xml(assert, ['<In xmlns="sap.ui.core"/>']));
|
|
2364
|
-
this.check(assert, [
|
|
2694
|
+
return this.check(assert, [
|
|
2365
2695
|
mvcView(),
|
|
2366
2696
|
'<Fragment fragmentName="{= \'dynamicFragmentName\' }" type="XML"/>',
|
|
2367
2697
|
'</mvc:View>'
|
|
@@ -2401,7 +2731,7 @@ sap.ui.define([
|
|
|
2401
2731
|
this.expectLoad(false, "myFragment",
|
|
2402
2732
|
xml(assert, ['<In xmlns="sap.ui.core" src="{src}" />']));
|
|
2403
2733
|
|
|
2404
|
-
this.check(assert, [
|
|
2734
|
+
return this.check(assert, [
|
|
2405
2735
|
mvcView(),
|
|
2406
2736
|
'<template:repeat list="{/items}">',
|
|
2407
2737
|
'<Fragment fragmentName="myFragment" type="XML"/>',
|
|
@@ -2426,7 +2756,7 @@ sap.ui.define([
|
|
|
2426
2756
|
|
|
2427
2757
|
//*********************************************************************************************
|
|
2428
2758
|
QUnit.test("fragment with type != XML", function (assert) {
|
|
2429
|
-
this.check(assert, [
|
|
2759
|
+
return this.check(assert, [
|
|
2430
2760
|
mvcView(),
|
|
2431
2761
|
'<Fragment fragmentName="nonXMLFragment" type="JS"/>',
|
|
2432
2762
|
'</mvc:View>'
|
|
@@ -2439,7 +2769,7 @@ sap.ui.define([
|
|
|
2439
2769
|
QUnit.test("error on fragment with simple cyclic reference", function (assert) {
|
|
2440
2770
|
this.expectLoad(false, "cycle",
|
|
2441
2771
|
xml(assert, ['<Fragment xmlns="sap.ui.core" fragmentName="cycle" type="XML"/>']));
|
|
2442
|
-
this.checkError(assert, [
|
|
2772
|
+
return this.checkError(assert, [
|
|
2443
2773
|
mvcView(),
|
|
2444
2774
|
'<Fragment fragmentName="cycle" type="XML"/>',
|
|
2445
2775
|
'</mvc:View>'
|
|
@@ -2466,7 +2796,7 @@ sap.ui.define([
|
|
|
2466
2796
|
this.expectLoad(false, "B",
|
|
2467
2797
|
xml(assert, ['<Fragment xmlns="sap.ui.core" fragmentName="A" type="XML"/>']));
|
|
2468
2798
|
|
|
2469
|
-
this.checkError(assert, [
|
|
2799
|
+
return this.checkError(assert, [
|
|
2470
2800
|
mvcView(),
|
|
2471
2801
|
'<Fragment fragmentName="A" type="XML"/>',
|
|
2472
2802
|
'</mvc:View>'
|
|
@@ -2532,7 +2862,7 @@ sap.ui.define([
|
|
|
2532
2862
|
'</FragmentDefinition>'
|
|
2533
2863
|
]));
|
|
2534
2864
|
|
|
2535
|
-
this.checkTracing(assert, bDebug, [
|
|
2865
|
+
return this.checkTracing(assert, bDebug, [
|
|
2536
2866
|
{m : "[ 0] Start processing qux"},
|
|
2537
2867
|
{m : "[ 0] bar = /com.sap.vocabularies.UI.v1.HeaderInfo/Title"},
|
|
2538
2868
|
{m : "[ 0] baz = /"},
|
|
@@ -2594,7 +2924,7 @@ sap.ui.define([
|
|
|
2594
2924
|
})
|
|
2595
2925
|
.returns(oViewExtension);
|
|
2596
2926
|
|
|
2597
|
-
this.check(assert, [
|
|
2927
|
+
return this.check(assert, [
|
|
2598
2928
|
mvcView(),
|
|
2599
2929
|
'<ExtensionPoint name="myExtensionPoint">',
|
|
2600
2930
|
'<template:if test="true">', // checks that content is processed
|
|
@@ -2689,7 +3019,7 @@ sap.ui.define([
|
|
|
2689
3019
|
type : "sap.ui.viewExtensions"
|
|
2690
3020
|
});
|
|
2691
3021
|
|
|
2692
|
-
this.check(assert, [
|
|
3022
|
+
return this.check(assert, [
|
|
2693
3023
|
mvcView(),
|
|
2694
3024
|
'<ExtensionPoint name="' + sName + '">',
|
|
2695
3025
|
'<template:error />', // this must not be processed!
|
|
@@ -2741,7 +3071,12 @@ sap.ui.define([
|
|
|
2741
3071
|
});
|
|
2742
3072
|
|
|
2743
3073
|
//*********************************************************************************************
|
|
3074
|
+
/**
|
|
3075
|
+
* @deprecated As of version 1.120.0
|
|
3076
|
+
*/
|
|
2744
3077
|
QUnit.test("template:alias", function (assert) {
|
|
3078
|
+
var oObjectPathMock = this.mock(ObjectPath);
|
|
3079
|
+
|
|
2745
3080
|
window.foo = {
|
|
2746
3081
|
Helper : {
|
|
2747
3082
|
bar : function () {
|
|
@@ -2768,9 +3103,10 @@ sap.ui.define([
|
|
|
2768
3103
|
};
|
|
2769
3104
|
|
|
2770
3105
|
// make sure we do not create namespaces!
|
|
2771
|
-
|
|
3106
|
+
oObjectPathMock.expects("get").atLeast(1)
|
|
3107
|
+
.withExactArgs(sinon.match.string.or(sinon.match.array))
|
|
2772
3108
|
.callThrough();
|
|
2773
|
-
|
|
3109
|
+
oObjectPathMock.expects("get").atLeast(1)
|
|
2774
3110
|
.withExactArgs(sinon.match.string.or(sinon.match.array), sinon.match.object)
|
|
2775
3111
|
.callThrough();
|
|
2776
3112
|
this.mock(BindingParser).expects("complexParser").atLeast(1)
|
|
@@ -2832,6 +3168,95 @@ sap.ui.define([
|
|
|
2832
3168
|
]);
|
|
2833
3169
|
});
|
|
2834
3170
|
|
|
3171
|
+
//*********************************************************************************************
|
|
3172
|
+
QUnit.test("template:alias", function (assert) {
|
|
3173
|
+
var oObjectPathMock = this.mock(ObjectPath),
|
|
3174
|
+
mRequiredModules = {
|
|
3175
|
+
Helper : {
|
|
3176
|
+
bar : function () {
|
|
3177
|
+
assert.ok(!this || !("bar" in this), "no jQuery.proxy(..., oScope) used");
|
|
3178
|
+
// return absolute path so this function serves as helper & formatter!
|
|
3179
|
+
return "/bar";
|
|
3180
|
+
},
|
|
3181
|
+
checkScope : function () {
|
|
3182
|
+
// Note: this makes sure that the current scope of aliases is passed as
|
|
3183
|
+
// binding parameter for v4.ODataMetaModel's computed annotations
|
|
3184
|
+
assert.deepEqual(this.getBindingInfo("any").parameters, {
|
|
3185
|
+
scope : {
|
|
3186
|
+
Helper : mRequiredModules.Helper,
|
|
3187
|
+
bar : mRequiredModules.Helper.bar,
|
|
3188
|
+
// see "redefine existing alias" below
|
|
3189
|
+
foo : mRequiredModules.Helper.bar
|
|
3190
|
+
}
|
|
3191
|
+
}, "scope available in binding info");
|
|
3192
|
+
},
|
|
3193
|
+
foo : function () {
|
|
3194
|
+
assert.ok(!this || !("foo" in this), "no jQuery.proxy(..., oScope) used");
|
|
3195
|
+
return "/foo";
|
|
3196
|
+
}
|
|
3197
|
+
}
|
|
3198
|
+
};
|
|
3199
|
+
|
|
3200
|
+
oObjectPathMock.expects("get").atLeast(1)
|
|
3201
|
+
.withExactArgs(sinon.match.string.or(sinon.match.array), sinon.match.object)
|
|
3202
|
+
.callThrough();
|
|
3203
|
+
this.mock(BindingParser).expects("complexParser").atLeast(1)
|
|
3204
|
+
.withExactArgs(sinon.match.string, sinon.match.object, sinon.match.bool,
|
|
3205
|
+
/*bTolerateFunctionsNotFound*/true, /*bStaticContext*/true, /*bPreferContext*/true)
|
|
3206
|
+
.callThrough();
|
|
3207
|
+
|
|
3208
|
+
// Note: <Label text="..."> remains unresolved, <Text text="..."> MUST be resolved
|
|
3209
|
+
return this.check(assert, [
|
|
3210
|
+
mvcView("", mRequiredModules, this),
|
|
3211
|
+
"<Label text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
3212
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3213
|
+
'<template:alias name=".bar" value="Helper.bar">',
|
|
3214
|
+
"<Text text=\"{formatter: '.bar', path: '/', parameters: {foo : 'bar'}}\"/>",
|
|
3215
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3216
|
+
'<template:alias name=".foo" value="Helper.foo">',
|
|
3217
|
+
"<Text text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3218
|
+
// redefine existing alias
|
|
3219
|
+
'<template:alias name=".foo" value="Helper.bar">',
|
|
3220
|
+
"<Text text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3221
|
+
"<Label text=\"{formatter: 'Helper.checkScope', path: '/'}\"/>",
|
|
3222
|
+
'</template:alias>',
|
|
3223
|
+
// old value must be used again
|
|
3224
|
+
"<Text text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3225
|
+
'</template:alias>',
|
|
3226
|
+
// <template:repeat> uses scope
|
|
3227
|
+
"<template:repeat list=\"{path: '/', factory: '.bar'}\"/>",
|
|
3228
|
+
// <template:with> uses scope
|
|
3229
|
+
'<template:with path="/" helper=".bar"/>',
|
|
3230
|
+
'</template:alias>',
|
|
3231
|
+
// aliases go out of scope
|
|
3232
|
+
"<Label text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
3233
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3234
|
+
// relative aliases
|
|
3235
|
+
'<template:alias name=".H" value="Helper">',
|
|
3236
|
+
"<Text text=\"{formatter: '.H.foo', path: '/'}\"/>",
|
|
3237
|
+
'<template:alias name=".bar" value=".H.bar">',
|
|
3238
|
+
"<Text text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
3239
|
+
'</template:alias>',
|
|
3240
|
+
'</template:alias>',
|
|
3241
|
+
'</mvc:View>'
|
|
3242
|
+
], {
|
|
3243
|
+
models : new JSONModel({/*don't care*/})
|
|
3244
|
+
}, [
|
|
3245
|
+
"<Label text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
3246
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3247
|
+
'<Text text="/bar"/>',
|
|
3248
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3249
|
+
'<Text text="/foo"/>',
|
|
3250
|
+
'<Text text="/bar"/>',
|
|
3251
|
+
"<Label/>", // checkScope() returns undefined
|
|
3252
|
+
'<Text text="/foo"/>',
|
|
3253
|
+
"<Label text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
3254
|
+
"<Label text=\"{formatter: '.foo', path: '/'}\"/>",
|
|
3255
|
+
'<Text text="/foo"/>',
|
|
3256
|
+
'<Text text="/bar"/>'
|
|
3257
|
+
]);
|
|
3258
|
+
});
|
|
3259
|
+
|
|
2835
3260
|
//*********************************************************************************************
|
|
2836
3261
|
[
|
|
2837
3262
|
'<template:alias/>',
|
|
@@ -2840,7 +3265,7 @@ sap.ui.define([
|
|
|
2840
3265
|
'<template:alias name=".foo.bar"/>'
|
|
2841
3266
|
].forEach(function (sViewContent) {
|
|
2842
3267
|
QUnit.test(sViewContent, function (assert) {
|
|
2843
|
-
this.checkError(assert, [
|
|
3268
|
+
return this.checkError(assert, [
|
|
2844
3269
|
mvcView(),
|
|
2845
3270
|
sViewContent,
|
|
2846
3271
|
'</mvc:View>'
|
|
@@ -2856,7 +3281,7 @@ sap.ui.define([
|
|
|
2856
3281
|
'value=".notFound"'
|
|
2857
3282
|
].forEach(function (sValue) {
|
|
2858
3283
|
QUnit.test('<template:alias name=".foo" ' + sValue + '>', function (assert) {
|
|
2859
|
-
this.checkError(assert, [
|
|
3284
|
+
return this.checkError(assert, [
|
|
2860
3285
|
mvcView(),
|
|
2861
3286
|
'<template:alias name=".foo" ' + sValue + '/>',
|
|
2862
3287
|
'</mvc:View>'
|
|
@@ -2866,7 +3291,7 @@ sap.ui.define([
|
|
|
2866
3291
|
|
|
2867
3292
|
//*********************************************************************************************
|
|
2868
3293
|
QUnit.test("Test console log for two digit nesting level", function (assert) {
|
|
2869
|
-
this.check(assert, [
|
|
3294
|
+
return this.check(assert, [
|
|
2870
3295
|
mvcView(),
|
|
2871
3296
|
'<template:if test="true">',
|
|
2872
3297
|
'<template:if test="true">',
|
|
@@ -3102,7 +3527,7 @@ sap.ui.define([
|
|
|
3102
3527
|
return SyncPromise.resolve();
|
|
3103
3528
|
}, "foo", "Bar");
|
|
3104
3529
|
|
|
3105
|
-
this.checkTracing(assert, bDebug, aExpectedMessages, aViewContent, {},
|
|
3530
|
+
return this.checkTracing(assert, bDebug, aExpectedMessages, aViewContent, {},
|
|
3106
3531
|
[aViewContent[1]]);
|
|
3107
3532
|
});
|
|
3108
3533
|
});
|
|
@@ -3190,7 +3615,7 @@ sap.ui.define([
|
|
|
3190
3615
|
], true, function (oElement, oInterface) { // visitor for f:Bar
|
|
3191
3616
|
|
|
3192
3617
|
// code under test
|
|
3193
|
-
|
|
3618
|
+
var oPromise = oInterface.getResult(); // will fail, first param is not optional
|
|
3194
3619
|
assert.strictEqual(oPromise.isRejected(), true);
|
|
3195
3620
|
oPromise.caught();
|
|
3196
3621
|
|
|
@@ -3425,7 +3850,7 @@ sap.ui.define([
|
|
|
3425
3850
|
return SyncPromise.resolve(null); // something other than undefined
|
|
3426
3851
|
}, "foo", "Bar");
|
|
3427
3852
|
|
|
3428
|
-
this.checkError(assert, aViewContent, "Unexpected return value from visitor for {0}",
|
|
3853
|
+
return this.checkError(assert, aViewContent, "Unexpected return value from visitor for {0}",
|
|
3429
3854
|
null, 1);
|
|
3430
3855
|
});
|
|
3431
3856
|
|
|
@@ -3614,6 +4039,9 @@ sap.ui.define([
|
|
|
3614
4039
|
//TODO sanity check that visitor returns a *sync* promise in case of sync XML Templating?
|
|
3615
4040
|
|
|
3616
4041
|
//*********************************************************************************************
|
|
4042
|
+
/**
|
|
4043
|
+
* @deprecated As of version 1.120.0
|
|
4044
|
+
*/
|
|
3617
4045
|
QUnit.test("async fragment in template:alias/if/repeat/with", function (assert) {
|
|
3618
4046
|
// Note: <Label text="..."> remains unresolved, <Text text="..."> MUST be resolved
|
|
3619
4047
|
var aFragmentContent = ["<Text text=\"{formatter: '.bar', path: 'here>flag'}\"/>"],
|
|
@@ -3696,6 +4124,87 @@ sap.ui.define([
|
|
|
3696
4124
|
], true);
|
|
3697
4125
|
});
|
|
3698
4126
|
|
|
4127
|
+
//*********************************************************************************************
|
|
4128
|
+
QUnit.test("async fragment in template:alias/if/repeat/with", function (assert) {
|
|
4129
|
+
// Note: <Label text="..."> remains unresolved, <Text text="..."> MUST be resolved
|
|
4130
|
+
var aFragmentContent = ["<Text text=\"{formatter: '.bar', path: 'here>flag'}\"/>"],
|
|
4131
|
+
sFragmentXml = xml(assert, aFragmentContent),
|
|
4132
|
+
aViewContent = [
|
|
4133
|
+
mvcView("", {
|
|
4134
|
+
Helper : {
|
|
4135
|
+
bar : function (vValue) {
|
|
4136
|
+
return "*" + vValue + "*";
|
|
4137
|
+
}
|
|
4138
|
+
}
|
|
4139
|
+
}, this),
|
|
4140
|
+
'<template:alias name=".bar" value="Helper.bar">',
|
|
4141
|
+
'<template:with path="/some/random/path" var="here">',
|
|
4142
|
+
'<template:if test="true">',
|
|
4143
|
+
'<template:repeat list="{/items}">',
|
|
4144
|
+
'<Fragment fragmentName="{src}" type="XML"/>',
|
|
4145
|
+
'</template:repeat>',
|
|
4146
|
+
'</template:if>',
|
|
4147
|
+
'</template:with>', // context goes out of scope
|
|
4148
|
+
'</template:alias>', // alias goes out of scope
|
|
4149
|
+
'<Text text="{here>flag}"/>',
|
|
4150
|
+
"<Label text=\"{formatter: '.bar', path: '/'}\"/>",
|
|
4151
|
+
'</mvc:View>'
|
|
4152
|
+
];
|
|
4153
|
+
|
|
4154
|
+
this.expectLoad(true, "myFragmentA", sFragmentXml);
|
|
4155
|
+
this.expectLoad(true, "myFragmentB", sFragmentXml);
|
|
4156
|
+
this.expectLoad(true, "myFragmentC", sFragmentXml);
|
|
4157
|
+
|
|
4158
|
+
return this.checkTracing(assert, true, [
|
|
4159
|
+
{m : "[ 0] Start processing qux"},
|
|
4160
|
+
{m : "[ 1] here = /some/random/path", d : 2},
|
|
4161
|
+
{m : "[ 2] test == \"true\" --> true", d : 3},
|
|
4162
|
+
{m : "[ 3] Starting", d : 4},
|
|
4163
|
+
{m : "[ 3] = /items/0", d : 4},
|
|
4164
|
+
{m : "[ 4] fragmentName = myFragmentA", d : 5},
|
|
4165
|
+
{m : "[ 4] text = *true*", d : aFragmentContent[0]},
|
|
4166
|
+
{m : "[ 4] Finished", d : "</Fragment>"},
|
|
4167
|
+
{m : "[ 3] = /items/1", d : 4},
|
|
4168
|
+
{m : "[ 4] fragmentName = myFragmentB", d : 5},
|
|
4169
|
+
{m : "[ 4] text = *true*", d : aFragmentContent[0]},
|
|
4170
|
+
{m : "[ 4] Finished", d : "</Fragment>"},
|
|
4171
|
+
{m : "[ 3] = /items/2", d : 4},
|
|
4172
|
+
{m : "[ 4] fragmentName = myFragmentC", d : 5},
|
|
4173
|
+
{m : "[ 4] text = *true*", d : aFragmentContent[0]},
|
|
4174
|
+
{m : "[ 4] Finished", d : "</Fragment>"},
|
|
4175
|
+
{m : "[ 3] Finished", d : "</template:repeat>"},
|
|
4176
|
+
{m : "[ 2] Finished", d : "</template:if>"},
|
|
4177
|
+
{m : "[ 1] Finished", d : "</template:with>"},
|
|
4178
|
+
{m : "[ 0] Binding not ready for attribute text", d : 10},
|
|
4179
|
+
{m : "[ 0] Binding not ready for attribute text", d : 11},
|
|
4180
|
+
{m : "[ 0] Finished processing qux"}
|
|
4181
|
+
], aViewContent, {
|
|
4182
|
+
models : new JSONModel({
|
|
4183
|
+
items : [{
|
|
4184
|
+
src : "myFragmentA"
|
|
4185
|
+
}, {
|
|
4186
|
+
src : "myFragmentB"
|
|
4187
|
+
}, {
|
|
4188
|
+
src : "myFragmentC"
|
|
4189
|
+
}],
|
|
4190
|
+
some : {
|
|
4191
|
+
random : {
|
|
4192
|
+
path : {
|
|
4193
|
+
flag : true
|
|
4194
|
+
}
|
|
4195
|
+
}
|
|
4196
|
+
}
|
|
4197
|
+
})
|
|
4198
|
+
}, [
|
|
4199
|
+
'<Text text="*true*"/>',
|
|
4200
|
+
'<Text text="*true*"/>',
|
|
4201
|
+
'<Text text="*true*"/>',
|
|
4202
|
+
// Note: XML serializer outputs > encoding...
|
|
4203
|
+
aViewContent[10].replace(">", ">"),
|
|
4204
|
+
aViewContent[11]
|
|
4205
|
+
], true);
|
|
4206
|
+
});
|
|
4207
|
+
|
|
3699
4208
|
//*********************************************************************************************
|
|
3700
4209
|
QUnit.test("async binding resolution", function (assert) {
|
|
3701
4210
|
var aViewContent = [
|
|
@@ -4018,7 +4527,7 @@ sap.ui.define([
|
|
|
4018
4527
|
window.foo = function () {
|
|
4019
4528
|
return Promise.resolve();
|
|
4020
4529
|
};
|
|
4021
|
-
this.checkError(assert, [
|
|
4530
|
+
return this.checkError(assert, [
|
|
4022
4531
|
mvcView(),
|
|
4023
4532
|
'<Text text="{path: \'/\', formatter: \'foo\'}" tooltip="{/bar}"/>',
|
|
4024
4533
|
'</mvc:View>'
|