@openui5/sap.ui.core 1.119.0 → 1.120.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +378 -250
- package/src/sap/base/i18n/LanguageTag.js +64 -66
- package/src/sap/base/i18n/Localization.js +124 -85
- 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 -29
- package/src/sap/ui/base/ManagedObjectMetadata.js +29 -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 +150 -80
- package/src/sap/ui/core/ComponentContainer.js +4 -3
- 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 +390 -706
- 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 +327 -151
- 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 +18 -8
- 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 +1 -1
- 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 +195 -29
- 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 +1 -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/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/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 +24 -14
- 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 +1 -1
- package/src/sap/ui/core/search/SearchProvider.js +1 -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 +1 -1
- 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/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 +3 -1
- package/src/sap/ui/model/ClientModel.js +1 -1
- package/src/sap/ui/model/ClientTreeBinding.js +3 -1
- 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 +12 -2
- 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 +5 -1
- 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 +3 -0
- 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 +35 -13
- package/src/sap/ui/model/odata/v2/ODataModel.js +21 -8
- package/src/sap/ui/model/odata/v2/ODataTreeBinding.js +33 -2
- package/src/sap/ui/model/odata/v4/Context.js +81 -7
- 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 +1 -1
- 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/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 +20 -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/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/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/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/11/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/12/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/13/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/14/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/databinding/15/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/mockserver/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/11/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/12/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/13/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/14/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/15/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/16/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/navigation/17/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/01/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/02/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/03/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/04/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/05/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/06/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/07/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/08/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/09/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/10/ui5.yaml +2 -2
- package/test/sap/ui/core/demokit/tutorial/odatav4/11/ui5.yaml +2 -2
- 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/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 +22 -1
- package/test/sap/ui/core/qunit/ListBinding.qunit.js +14 -1
- package/test/sap/ui/core/qunit/ManagedObject.qunit.js +5 -2
- 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 +30 -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 +74 -4
- 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 +3 -0
- 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 +3 -0
- package/test/sap/ui/core/qunit/model/ClientPropertyBinding.qunit.js +3 -0
- package/test/sap/ui/core/qunit/model/ClientTreeBinding.qunit.js +3 -0
- 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 +40 -1
- package/test/sap/ui/core/qunit/model/ListBinding.qunit.js +23 -5
- package/test/sap/ui/core/qunit/model/Model.qunit.js +3 -0
- 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/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 +36 -13
- 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 +6 -4
- 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 +194 -3
- 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/ODataListBinding.qunit.js +601 -99
- package/test/sap/ui/core/qunit/odata/v4/ODataModel.integration.qunit.js +1859 -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 +51 -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/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 +360 -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
|
@@ -79,498 +79,487 @@ sap.ui.define([
|
|
|
79
79
|
return oControllerImpl;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
this._cleanup
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
await nextUIUpdate();
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
// create fake server for extension point manifests
|
|
102
|
-
this.oServer = sinon.fakeServer.create();
|
|
103
|
-
this.oServer.xhr.supportCORS = true;
|
|
104
|
-
this.oServer.xhr.useFilters = true;
|
|
105
|
-
this.oServer.xhr.filters = [];
|
|
106
|
-
this.oServer.autoRespond = true;
|
|
107
|
-
|
|
108
|
-
this.oServer.xhr.addFilter(function(method, url) {
|
|
109
|
-
return url.match(/ExtensionPoints\/Parent\/manifest.json/) == null
|
|
110
|
-
&& url.match(/StashedControl\/manifest.json/) == null;
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
StashedControlSupport.mixInto(Panel);
|
|
114
|
-
},
|
|
115
|
-
afterEach: function() {
|
|
116
|
-
this._cleanup.forEach(function(ctrl) {
|
|
117
|
-
ctrl.destroy();
|
|
118
|
-
});
|
|
119
|
-
this.SyncPromiseAllStub.restore();
|
|
82
|
+
QUnit.module("XMLView", {
|
|
83
|
+
beforeEach: function() {
|
|
84
|
+
var fnOldSyncPromiseAll = SyncPromise.all;
|
|
85
|
+
MyGlobal.reset();
|
|
86
|
+
this.SyncPromiseAllStub = sinon.stub(SyncPromise, "all").callsFake(function(args) {
|
|
87
|
+
return fnOldSyncPromiseAll(args.reverse()).then(function(oRes) {
|
|
88
|
+
return oRes.reverse();
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
this.viewFactory = testViewFactoryFn();
|
|
92
|
+
this._cleanup = [];
|
|
93
|
+
this.render = async function(ctrl) {
|
|
94
|
+
this._cleanup.push(ctrl);
|
|
95
|
+
ctrl.placeAt("content");
|
|
96
|
+
await nextUIUpdate();
|
|
97
|
+
};
|
|
120
98
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
99
|
+
// create fake server for extension point manifests
|
|
100
|
+
this.oServer = sinon.fakeServer.create();
|
|
101
|
+
this.oServer.xhr.supportCORS = true;
|
|
102
|
+
this.oServer.xhr.useFilters = true;
|
|
103
|
+
this.oServer.xhr.filters = [];
|
|
104
|
+
this.oServer.autoRespond = true;
|
|
124
105
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
// view
|
|
130
|
-
var pView = this.viewFactory("myViewSimpleAggrs", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingSimpleAggregations");
|
|
106
|
+
this.oServer.xhr.addFilter(function(method, url) {
|
|
107
|
+
return url.match(/ExtensionPoints\/Parent\/manifest.json/) == null
|
|
108
|
+
&& url.match(/StashedControl\/manifest.json/) == null;
|
|
109
|
+
});
|
|
131
110
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
// check if the order in which the aggregations are written to the respective map is stable
|
|
140
|
-
// This is necessary because:
|
|
141
|
-
// controls, flexibility and OPA rely on a stable iteration order of the aggregations itself (NOT its content!)
|
|
142
|
-
var mySimpleAggregationsControl = oView.byId("mySimpleAggregationsControl");
|
|
111
|
+
StashedControlSupport.mixInto(Panel);
|
|
112
|
+
},
|
|
113
|
+
afterEach: function() {
|
|
114
|
+
this._cleanup.forEach(function(ctrl) {
|
|
115
|
+
ctrl.destroy();
|
|
116
|
+
});
|
|
117
|
+
this.SyncPromiseAllStub.restore();
|
|
143
118
|
|
|
119
|
+
this.oServer.restore();
|
|
120
|
+
}
|
|
121
|
+
});
|
|
144
122
|
|
|
145
|
-
|
|
146
|
-
|
|
123
|
+
/**
|
|
124
|
+
* check that all aggregations are created in the correct order
|
|
125
|
+
*/
|
|
126
|
+
QUnit.test("Simple Aggregation order with async view", function(assert) {
|
|
127
|
+
// view
|
|
128
|
+
var pView = this.viewFactory("myViewSimpleAggrs", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingSimpleAggregations");
|
|
147
129
|
|
|
130
|
+
return pView.then(async function(oView) {
|
|
131
|
+
await this.render(
|
|
132
|
+
new HBox({
|
|
133
|
+
renderType: "Bare",
|
|
134
|
+
items: pView
|
|
135
|
+
})
|
|
136
|
+
);
|
|
137
|
+
// check if the order in which the aggregations are written to the respective map is stable
|
|
138
|
+
// This is necessary because:
|
|
139
|
+
// controls, flexibility and OPA rely on a stable iteration order of the aggregations itself (NOT its content!)
|
|
140
|
+
var mySimpleAggregationsControl = oView.byId("mySimpleAggregationsControl");
|
|
148
141
|
|
|
149
|
-
var mySimpleAggregationsControl2 = oView.byId("mySimpleAggregationsControl2");
|
|
150
|
-
assert.ok(mySimpleAggregationsControl2, "'mySimpleAggregationsControl2' is present");
|
|
151
142
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
[oView.byId("InnerButton122")],
|
|
155
|
-
"alternative content contains 'InnerButton122'");
|
|
143
|
+
assert.ok(mySimpleAggregationsControl, "'mySimpleAggregationsControl' is present");
|
|
144
|
+
assert.deepEqual(mySimpleAggregationsControl.getAlternativeContent(), [], "alternative content is not used within view");
|
|
156
145
|
|
|
157
|
-
}.bind(this));
|
|
158
|
-
});
|
|
159
146
|
|
|
147
|
+
var mySimpleAggregationsControl2 = oView.byId("mySimpleAggregationsControl2");
|
|
148
|
+
assert.ok(mySimpleAggregationsControl2, "'mySimpleAggregationsControl2' is present");
|
|
160
149
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
// view
|
|
167
|
-
var pView = this.viewFactory("myViewAggrs", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingManyAggregations");
|
|
168
|
-
|
|
169
|
-
return pView.then(async function(oView) {
|
|
170
|
-
await this.render(
|
|
171
|
-
new HBox({
|
|
172
|
-
renderType: "Bare",
|
|
173
|
-
items: oView
|
|
174
|
-
})
|
|
175
|
-
);
|
|
176
|
-
// check if the order in which the aggregations are written to the respective map is stable
|
|
177
|
-
// This is necessary because:
|
|
178
|
-
// controls, flexibility and OPA rely on a stable iteration order of the aggregations itself (NOT its content!)
|
|
179
|
-
var myManyAggregationsControl = oView.byId("myManyAggregationsControl");
|
|
180
|
-
|
|
181
|
-
assert.deepEqual(myManyAggregationsControl.getAlternativeContent(),
|
|
182
|
-
[oView.byId("myManyAggregationsControl2"), oView.byId("Button3"), oView.byId("Button4")],
|
|
183
|
-
"alternativeContent aggregation contains 2 Buttons");
|
|
184
|
-
assert.deepEqual(myManyAggregationsControl.getSecondaryContent(),
|
|
185
|
-
[oView.byId("Button5"), oView.byId("Button6")],
|
|
186
|
-
"secondaryContent aggregation contains 2 Buttons" );
|
|
187
|
-
assert.deepEqual(myManyAggregationsControl.getContent(),
|
|
188
|
-
[oView.byId("Button1"), oView.byId("Button2")],
|
|
189
|
-
"content aggregation contains 2 Buttons");
|
|
190
|
-
assert.deepEqual(myManyAggregationsControl.getBottomControls(),
|
|
191
|
-
[oView.byId("Button7")],
|
|
192
|
-
"bottomControls aggregation contains 1 Button");
|
|
193
|
-
assert.deepEqual(myManyAggregationsControl.getGroundControls(),
|
|
194
|
-
[oView.byId("Button8")],
|
|
195
|
-
"groundControls aggregation contains 1 Button");
|
|
196
|
-
assert.deepEqual(myManyAggregationsControl.getCustomData(), [], "customData aggregation is empty");
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
// check the ordering inside a splitted default aggregation
|
|
201
|
-
var oControl2 = oView.byId("myManyAggregationsControl2");
|
|
202
|
-
var aBottomControls = oControl2.getBottomControls();
|
|
203
|
-
|
|
204
|
-
var fnGetId = function(oElement) {
|
|
205
|
-
return oElement.getId();
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
assert.deepEqual(aBottomControls.map(fnGetId),
|
|
209
|
-
[oView.byId("InnerButton1"),oView.byId("InnerButton2"),oView.byId("InnerButton3"),oView.byId("InnerButton4")].map(fnGetId),
|
|
210
|
-
"Ids of elements are in correct order within bottomControls aggregation");
|
|
211
|
-
|
|
212
|
-
assert.deepEqual(aBottomControls,
|
|
213
|
-
[oView.byId("InnerButton1"),oView.byId("InnerButton2"),oView.byId("InnerButton3"),oView.byId("InnerButton4")],
|
|
214
|
-
"Elements are in correct order within bottomControls aggregation");
|
|
215
|
-
|
|
216
|
-
}.bind(this));
|
|
217
|
-
});
|
|
150
|
+
assert.deepEqual(
|
|
151
|
+
mySimpleAggregationsControl2.getAlternativeContent(),
|
|
152
|
+
[oView.byId("InnerButton122")],
|
|
153
|
+
"alternative content contains 'InnerButton122'");
|
|
218
154
|
|
|
155
|
+
}.bind(this));
|
|
156
|
+
});
|
|
219
157
|
|
|
220
|
-
/**
|
|
221
|
-
* check that all aggregations are created in the correct order
|
|
222
|
-
*/
|
|
223
|
-
QUnit.test("ExtensionPoint with async view tests", function(assert) {
|
|
224
|
-
// view
|
|
225
|
-
var pView = this.viewFactory("myViewEP", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingExtensionPoint");
|
|
226
158
|
|
|
227
|
-
|
|
228
|
-
|
|
159
|
+
/**
|
|
160
|
+
* check that all aggregations are created in the correct order
|
|
161
|
+
*/
|
|
162
|
+
QUnit.test("Aggregation order with async view", function(assert) {
|
|
163
|
+
|
|
164
|
+
// view
|
|
165
|
+
var pView = this.viewFactory("myViewAggrs", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingManyAggregations");
|
|
166
|
+
|
|
167
|
+
return pView.then(async function(oView) {
|
|
168
|
+
await this.render(
|
|
169
|
+
new HBox({
|
|
170
|
+
renderType: "Bare",
|
|
171
|
+
items: oView
|
|
172
|
+
})
|
|
173
|
+
);
|
|
174
|
+
// check if the order in which the aggregations are written to the respective map is stable
|
|
175
|
+
// This is necessary because:
|
|
176
|
+
// controls, flexibility and OPA rely on a stable iteration order of the aggregations itself (NOT its content!)
|
|
177
|
+
var myManyAggregationsControl = oView.byId("myManyAggregationsControl");
|
|
178
|
+
|
|
179
|
+
assert.deepEqual(myManyAggregationsControl.getAlternativeContent(),
|
|
180
|
+
[oView.byId("myManyAggregationsControl2"), oView.byId("Button3"), oView.byId("Button4")],
|
|
181
|
+
"alternativeContent aggregation contains 2 Buttons");
|
|
182
|
+
assert.deepEqual(myManyAggregationsControl.getSecondaryContent(),
|
|
183
|
+
[oView.byId("Button5"), oView.byId("Button6")],
|
|
184
|
+
"secondaryContent aggregation contains 2 Buttons" );
|
|
185
|
+
assert.deepEqual(myManyAggregationsControl.getContent(),
|
|
186
|
+
[oView.byId("Button1"), oView.byId("Button2")],
|
|
187
|
+
"content aggregation contains 2 Buttons");
|
|
188
|
+
assert.deepEqual(myManyAggregationsControl.getBottomControls(),
|
|
189
|
+
[oView.byId("Button7")],
|
|
190
|
+
"bottomControls aggregation contains 1 Button");
|
|
191
|
+
assert.deepEqual(myManyAggregationsControl.getGroundControls(),
|
|
192
|
+
[oView.byId("Button8")],
|
|
193
|
+
"groundControls aggregation contains 1 Button");
|
|
194
|
+
assert.deepEqual(myManyAggregationsControl.getCustomData(), [], "customData aggregation is empty");
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
// check the ordering inside a splitted default aggregation
|
|
199
|
+
var oControl2 = oView.byId("myManyAggregationsControl2");
|
|
200
|
+
var aBottomControls = oControl2.getBottomControls();
|
|
201
|
+
|
|
202
|
+
var fnGetId = function(oElement) {
|
|
203
|
+
return oElement.getId();
|
|
229
204
|
};
|
|
230
205
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
);
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
assert.deepEqual(oView.getContent().map(getText), [
|
|
243
|
-
"test-ext-1",
|
|
244
|
-
"test-ext-2",
|
|
245
|
-
"test-ext-3",
|
|
246
|
-
"test-ext-4",
|
|
247
|
-
"test0"],
|
|
248
|
-
"there should be all 5 texts contained in the correct order");
|
|
249
|
-
|
|
250
|
-
assert.deepEqual(MyGlobal.get().map(getText), [
|
|
251
|
-
"test-ext-1",
|
|
252
|
-
"test-ext-2",
|
|
253
|
-
"test-ext-3",
|
|
254
|
-
"test-ext-4"],
|
|
255
|
-
"there should be all 5 texts contained in the correct order");
|
|
256
|
-
}.bind(this));
|
|
257
|
-
});
|
|
206
|
+
assert.deepEqual(aBottomControls.map(fnGetId),
|
|
207
|
+
[oView.byId("InnerButton1"),oView.byId("InnerButton2"),oView.byId("InnerButton3"),oView.byId("InnerButton4")].map(fnGetId),
|
|
208
|
+
"Ids of elements are in correct order within bottomControls aggregation");
|
|
209
|
+
|
|
210
|
+
assert.deepEqual(aBottomControls,
|
|
211
|
+
[oView.byId("InnerButton1"),oView.byId("InnerButton2"),oView.byId("InnerButton3"),oView.byId("InnerButton4")],
|
|
212
|
+
"Elements are in correct order within bottomControls aggregation");
|
|
213
|
+
|
|
214
|
+
}.bind(this));
|
|
215
|
+
});
|
|
258
216
|
|
|
259
217
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
218
|
+
/**
|
|
219
|
+
* check that all aggregations are created in the correct order
|
|
220
|
+
*/
|
|
221
|
+
QUnit.test("ExtensionPoint with async view tests", function(assert) {
|
|
222
|
+
// view
|
|
223
|
+
var pView = this.viewFactory("myViewEP", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingExtensionPoint");
|
|
224
|
+
|
|
225
|
+
var getText = function(oCtrl) {
|
|
226
|
+
return oCtrl.getText();
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
return pView.then(async function(oView) {
|
|
230
|
+
await this.render(
|
|
231
|
+
new HBox({
|
|
232
|
+
renderType: "Bare",
|
|
233
|
+
items: oView
|
|
234
|
+
})
|
|
235
|
+
);
|
|
236
|
+
|
|
237
|
+
var mySimpleAggregationsControl = oView.byId("ep");
|
|
238
|
+
assert.notOk(mySimpleAggregationsControl, "ExtensionPoint should not be present, only its controls");
|
|
239
|
+
|
|
240
|
+
assert.deepEqual(oView.getContent().map(getText), [
|
|
241
|
+
"test-ext-1",
|
|
242
|
+
"test-ext-2",
|
|
243
|
+
"test-ext-3",
|
|
244
|
+
"test-ext-4",
|
|
245
|
+
"test0"],
|
|
246
|
+
"there should be all 5 texts contained in the correct order");
|
|
247
|
+
|
|
248
|
+
assert.deepEqual(MyGlobal.get().map(getText), [
|
|
249
|
+
"test-ext-1",
|
|
250
|
+
"test-ext-2",
|
|
251
|
+
"test-ext-3",
|
|
252
|
+
"test-ext-4"],
|
|
253
|
+
"there should be all 5 texts contained in the correct order");
|
|
254
|
+
}.bind(this));
|
|
255
|
+
});
|
|
265
256
|
|
|
266
|
-
|
|
267
|
-
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* check that all events are properly called within controller and that the view is correctly connected
|
|
260
|
+
*/
|
|
261
|
+
QUnit.test("controller event test", async function(assert) {
|
|
262
|
+
|
|
263
|
+
// controller
|
|
264
|
+
sap.ui.define("sap/ui/core/qunit/mvc/viewprocessing/ViewProcessing.controller", function() {
|
|
265
|
+
const oControllerImpl = testControllerImplFactory(assert, "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing");
|
|
268
266
|
oControllerImpl.onAfterRendering = function () {
|
|
269
267
|
var oView = this.getView();
|
|
270
268
|
assert.ok(oView, "oView is present in onAfterRendering");
|
|
271
269
|
assert.ok(oView.byId("Panel"), "Panel is present within view");
|
|
272
270
|
};
|
|
273
271
|
|
|
274
|
-
|
|
275
|
-
var fnOnAfterRenderingSpy = this.spy(oControllerImpl, "onAfterRendering");
|
|
276
|
-
|
|
277
|
-
Controller.extend("sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing", oControllerImpl);
|
|
278
|
-
|
|
279
|
-
Controller.create({
|
|
280
|
-
name: "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing"
|
|
281
|
-
}).then(function (oController) {
|
|
282
|
-
// view
|
|
283
|
-
var pView = this.viewFactory("myViewWithController", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing", oController);
|
|
284
|
-
|
|
285
|
-
pView.then(async function (oView) {
|
|
286
|
-
await this.render(
|
|
287
|
-
new HBox({
|
|
288
|
-
renderType: "Bare",
|
|
289
|
-
items: oView
|
|
290
|
-
})
|
|
291
|
-
);
|
|
292
|
-
assert.equal(fnOnInitSpy.callCount, 1, "Init was called once");
|
|
293
|
-
assert.equal(fnOnAfterRenderingSpy.callCount, 1, "onAfterRendering was called once");
|
|
294
|
-
done();
|
|
295
|
-
}.bind(this));
|
|
296
|
-
}.bind(this));
|
|
297
|
-
|
|
298
|
-
assert.equal(fnOnAfterRenderingSpy.callCount, 0, "onAfterRendering is not called initially");
|
|
299
|
-
assert.equal(fnOnInitSpy.callCount, 0, "onInit is not called initially");
|
|
272
|
+
return Controller.extend("sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing", oControllerImpl);
|
|
300
273
|
});
|
|
301
274
|
|
|
275
|
+
const oController = await Controller.create({
|
|
276
|
+
name: "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing"
|
|
277
|
+
});
|
|
302
278
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
*/
|
|
306
|
-
QUnit.test("Bad control processing", function(assert) {
|
|
279
|
+
const fnOnInitSpy = this.spy(oController, "onInit");
|
|
280
|
+
const fnOnAfterRenderingSpy = this.spy(oController, "onAfterRendering");
|
|
307
281
|
|
|
308
|
-
|
|
309
|
-
|
|
282
|
+
assert.equal(fnOnAfterRenderingSpy.callCount, 0, "onAfterRendering is not called initially");
|
|
283
|
+
assert.equal(fnOnInitSpy.callCount, 0, "onInit is not called initially");
|
|
310
284
|
|
|
311
|
-
|
|
312
|
-
|
|
285
|
+
// view
|
|
286
|
+
const oView = await this.viewFactory("myViewWithController", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessing", oController);
|
|
313
287
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
288
|
+
await this.render(
|
|
289
|
+
new HBox({
|
|
290
|
+
renderType: "Bare",
|
|
291
|
+
items: oView
|
|
292
|
+
})
|
|
293
|
+
);
|
|
294
|
+
assert.equal(fnOnInitSpy.callCount, 1, "Init was called once");
|
|
295
|
+
assert.equal(fnOnAfterRenderingSpy.callCount, 1, "onAfterRendering was called once");
|
|
296
|
+
});
|
|
318
297
|
|
|
319
298
|
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
*/
|
|
325
|
-
QUnit.test("Owner component setting for Controls with Typed View", function(assert) {
|
|
299
|
+
/**
|
|
300
|
+
* Tests parsing of a control which is not properly defined (does not return its class)
|
|
301
|
+
*/
|
|
302
|
+
QUnit.test("Bad control processing", function(assert) {
|
|
326
303
|
|
|
327
|
-
|
|
304
|
+
// view
|
|
305
|
+
var pView = this.viewFactory("myViewBadControl", "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingBadControl");
|
|
328
306
|
|
|
329
|
-
|
|
330
|
-
|
|
307
|
+
return pView.then(async function(oView) {
|
|
308
|
+
await this.render(oView);
|
|
331
309
|
|
|
332
|
-
var
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
if (++iCnt === iNumberOfComponents * iNumberOfSubViews) {
|
|
337
|
-
done();
|
|
338
|
-
}
|
|
339
|
-
}
|
|
310
|
+
var myBadControl = oView.byId("myBadControl");
|
|
311
|
+
assert.ok(myBadControl, "BadControl is present within view");
|
|
312
|
+
}.bind(this));
|
|
313
|
+
});
|
|
340
314
|
|
|
341
|
-
window._test_fnCallbackSubInit = function() {
|
|
342
|
-
var oParent = this.getParent();
|
|
343
|
-
while (oParent) {
|
|
344
|
-
var newParent = oParent.getParent();
|
|
345
|
-
// leave out UIArea as it gets always the first owner component id when #placeAt is called
|
|
346
|
-
if (newParent) {
|
|
347
|
-
assert.ok(oParent._sOwnerId, "OwnerId is set for parent control");
|
|
348
|
-
assert.equal(oParent._sOwnerId, this._sOwnerId, "OwnerId matches parent");
|
|
349
|
-
}
|
|
350
|
-
oParent = newParent;
|
|
351
|
-
}
|
|
352
|
-
fnCheckDone();
|
|
353
|
-
};
|
|
354
315
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
316
|
+
/**
|
|
317
|
+
* Test setting the ._sOwnerId for asynchronously loaded components within stacked views.
|
|
318
|
+
* Controls should have the correct owner ID.
|
|
319
|
+
* (Component which contains a Typed View which contains XMLViews)
|
|
320
|
+
*/
|
|
321
|
+
QUnit.test("Owner component setting for Controls with Typed View", function(assert) {
|
|
322
|
+
|
|
323
|
+
var iNumberOfComponents = 3;
|
|
362
324
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
var fnViewFactory = this.viewFactory.bind(null, "async" + "view" + i, "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingRecWithTypedView");
|
|
325
|
+
//@see ViewProcessingRec.view.js
|
|
326
|
+
var iNumberOfSubViews = 2;
|
|
366
327
|
|
|
367
|
-
|
|
328
|
+
var iCnt = 0;
|
|
329
|
+
// test processing will be completed in onExit of the view extension
|
|
330
|
+
var done = assert.async();
|
|
331
|
+
function fnCheckDone() {
|
|
332
|
+
if (++iCnt === iNumberOfComponents * iNumberOfSubViews) {
|
|
333
|
+
done();
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
window._test_fnCallbackSubInit = function() {
|
|
338
|
+
var oParent = this.getParent();
|
|
339
|
+
while (oParent) {
|
|
340
|
+
var newParent = oParent.getParent();
|
|
341
|
+
// leave out UIArea as it gets always the first owner component id when #placeAt is called
|
|
342
|
+
if (newParent) {
|
|
343
|
+
assert.ok(oParent._sOwnerId, "OwnerId is set for parent control");
|
|
344
|
+
assert.equal(oParent._sOwnerId, this._sOwnerId, "OwnerId matches parent");
|
|
345
|
+
}
|
|
346
|
+
oParent = newParent;
|
|
368
347
|
}
|
|
348
|
+
fnCheckDone();
|
|
349
|
+
};
|
|
369
350
|
|
|
370
|
-
|
|
351
|
+
function fnAssertions(pView, oComponentContext) {
|
|
352
|
+
pView.then(function(oView) {
|
|
353
|
+
var oPanel = oView.byId("Panel");
|
|
354
|
+
assert.ok(oPanel, "panel is present within " + oView.getId());
|
|
355
|
+
assert.equal(Component.getOwnerIdFor(oPanel), oComponentContext.getId(), "Propagation of owner component to view creation works!");
|
|
356
|
+
});
|
|
357
|
+
}
|
|
371
358
|
|
|
372
|
-
|
|
373
|
-
|
|
359
|
+
//create async xml view
|
|
360
|
+
for (var i = 0; i < iNumberOfComponents; i++) {
|
|
361
|
+
var fnViewFactory = this.viewFactory.bind(null, "async" + "view" + i, "sap.ui.core.qunit.mvc.viewprocessing.ViewProcessingRecWithTypedView");
|
|
374
362
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
var oManifest = {
|
|
378
|
-
"_version": "0.0.1",
|
|
379
|
-
"sap.app": {
|
|
380
|
-
"id": "sap.ui.core.qunit.mvc.viewprocessing.ExtensionPoints.Parent"
|
|
381
|
-
},
|
|
382
|
-
"sap.ui5": {
|
|
383
|
-
"rootView": {
|
|
384
|
-
"viewName": "sap.ui.core.qunit.mvc.viewprocessing.ExtensionPoints.Parent.Main",
|
|
385
|
-
"type": "XML",
|
|
386
|
-
"async": "true",
|
|
387
|
-
"id": "app"
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
};
|
|
363
|
+
testComponentFactory("my.test.typedview." + "async" + "." + i, fnViewFactory, fnAssertions);
|
|
364
|
+
}
|
|
391
365
|
|
|
392
|
-
|
|
393
|
-
200,
|
|
394
|
-
{
|
|
395
|
-
"Content-Type": "application/json"
|
|
396
|
-
},
|
|
397
|
-
JSON.stringify(oManifest)
|
|
398
|
-
]);
|
|
399
|
-
|
|
400
|
-
var fnAssertions = function(oComponent, oView) {
|
|
401
|
-
// resolved view content, extensionpoints are embedded
|
|
402
|
-
var aContent = oView.getContent();
|
|
403
|
-
|
|
404
|
-
// EPone (XMLView)
|
|
405
|
-
var oEPOne = aContent[0];
|
|
406
|
-
assert.deepEqual(Component.getOwnerComponentFor(oEPOne), oComponent, "Owner Component correctly set");
|
|
407
|
-
// EPone -> sap.m.Button
|
|
408
|
-
var aEPoneContent = aContent[0].getContent();
|
|
409
|
-
assert.deepEqual(Component.getOwnerComponentFor(aEPoneContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPone");
|
|
410
|
-
|
|
411
|
-
// sap.m.Text
|
|
412
|
-
assert.deepEqual(Component.getOwnerComponentFor(aContent[1]), oComponent, "Owner Component correctly set");
|
|
413
|
-
|
|
414
|
-
// EPtwo (XMLView)
|
|
415
|
-
var oEPtwo = aContent[2];
|
|
416
|
-
assert.deepEqual(Component.getOwnerComponentFor(oEPtwo), oComponent, "Owner Component correctly set");
|
|
417
|
-
// EPtwo -> sap.m.Button
|
|
418
|
-
var aEPtwoContent = oEPtwo.getContent();
|
|
419
|
-
assert.deepEqual(Component.getOwnerComponentFor(aEPtwoContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPtwo");
|
|
420
|
-
|
|
421
|
-
// EPnesting (XMLView)
|
|
422
|
-
var oEPnesting = aContent[3];
|
|
423
|
-
assert.deepEqual(Component.getOwnerComponentFor(oEPnesting), oComponent, "Owner Component correctly set");
|
|
424
|
-
// EPtwo -> [sap.m.Button, sap.m.Button]
|
|
425
|
-
var aEPnestingContent = oEPnesting.getContent();
|
|
426
|
-
assert.deepEqual(Component.getOwnerComponentFor(aEPnestingContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPnesting (1)");
|
|
427
|
-
assert.deepEqual(Component.getOwnerComponentFor(aEPnestingContent[1]), oComponent, "Owner Component correctly set for controls in extension-point view: EPnesting (2)");
|
|
428
|
-
|
|
429
|
-
// |--> sap.m.Input nested in ExtensionPoint tag (EPnesting) - rendered after the extension
|
|
430
|
-
assert.deepEqual(Component.getOwnerComponentFor(aContent[4]), oComponent, "Owner Component correctly set");
|
|
431
|
-
|
|
432
|
-
// clean-up components
|
|
433
|
-
oComponent.destroy();
|
|
434
|
-
// Destroy and remove parent component manifest:
|
|
435
|
-
// We need to do this because otherwise the parent UIComponent class will still have
|
|
436
|
-
// the "old" manifest and the sync tests might end up with an async root-view.
|
|
437
|
-
oComponent.getMetadata().getParent()._oManifest.destroy();
|
|
438
|
-
delete oComponent.getMetadata().getParent()._oManifest;
|
|
366
|
+
});
|
|
439
367
|
|
|
440
|
-
|
|
441
|
-
|
|
368
|
+
QUnit.test("Owner component setting for ExtensionPoints", function(assert) {
|
|
369
|
+
var done = assert.async();
|
|
442
370
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
371
|
+
// responds changed parent manifest
|
|
372
|
+
// async switch on root-view is switched based on test-execution
|
|
373
|
+
var oManifest = {
|
|
374
|
+
"_version": "0.0.1",
|
|
375
|
+
"sap.app": {
|
|
376
|
+
"id": "sap.ui.core.qunit.mvc.viewprocessing.ExtensionPoints.Parent"
|
|
377
|
+
},
|
|
378
|
+
"sap.ui5": {
|
|
379
|
+
"rootView": {
|
|
380
|
+
"viewName": "sap.ui.core.qunit.mvc.viewprocessing.ExtensionPoints.Parent.Main",
|
|
381
|
+
"type": "XML",
|
|
382
|
+
"async": true,
|
|
383
|
+
"id": "app"
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
this.oServer.respondWith("GET", /ExtensionPoints\/Parent\/manifest\.json/, [
|
|
389
|
+
200,
|
|
390
|
+
{
|
|
391
|
+
"Content-Type": "application/json"
|
|
392
|
+
},
|
|
393
|
+
JSON.stringify(oManifest)
|
|
394
|
+
]);
|
|
395
|
+
|
|
396
|
+
var fnAssertions = function(oComponent, oView) {
|
|
397
|
+
// resolved view content, extensionpoints are embedded
|
|
398
|
+
var aContent = oView.getContent();
|
|
399
|
+
|
|
400
|
+
// EPone (XMLView)
|
|
401
|
+
var oEPOne = aContent[0];
|
|
402
|
+
assert.deepEqual(Component.getOwnerComponentFor(oEPOne), oComponent, "Owner Component correctly set");
|
|
403
|
+
// EPone -> sap.m.Button
|
|
404
|
+
var aEPoneContent = aContent[0].getContent();
|
|
405
|
+
assert.deepEqual(Component.getOwnerComponentFor(aEPoneContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPone");
|
|
406
|
+
|
|
407
|
+
// sap.m.Text
|
|
408
|
+
assert.deepEqual(Component.getOwnerComponentFor(aContent[1]), oComponent, "Owner Component correctly set");
|
|
409
|
+
|
|
410
|
+
// EPtwo (XMLView)
|
|
411
|
+
var oEPtwo = aContent[2];
|
|
412
|
+
assert.deepEqual(Component.getOwnerComponentFor(oEPtwo), oComponent, "Owner Component correctly set");
|
|
413
|
+
// EPtwo -> sap.m.Button
|
|
414
|
+
var aEPtwoContent = oEPtwo.getContent();
|
|
415
|
+
assert.deepEqual(Component.getOwnerComponentFor(aEPtwoContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPtwo");
|
|
416
|
+
|
|
417
|
+
// EPnesting (XMLView)
|
|
418
|
+
var oEPnesting = aContent[3];
|
|
419
|
+
assert.deepEqual(Component.getOwnerComponentFor(oEPnesting), oComponent, "Owner Component correctly set");
|
|
420
|
+
// EPtwo -> [sap.m.Button, sap.m.Button]
|
|
421
|
+
var aEPnestingContent = oEPnesting.getContent();
|
|
422
|
+
assert.deepEqual(Component.getOwnerComponentFor(aEPnestingContent[0]), oComponent, "Owner Component correctly set for controls in extension-point view: EPnesting (1)");
|
|
423
|
+
assert.deepEqual(Component.getOwnerComponentFor(aEPnestingContent[1]), oComponent, "Owner Component correctly set for controls in extension-point view: EPnesting (2)");
|
|
424
|
+
|
|
425
|
+
// |--> sap.m.Input nested in ExtensionPoint tag (EPnesting) - rendered after the extension
|
|
426
|
+
assert.deepEqual(Component.getOwnerComponentFor(aContent[4]), oComponent, "Owner Component correctly set");
|
|
427
|
+
|
|
428
|
+
// clean-up components
|
|
429
|
+
oComponent.destroy();
|
|
430
|
+
// Destroy and remove parent component manifest:
|
|
431
|
+
// We need to do this because otherwise the parent UIComponent class will still have
|
|
432
|
+
// the "old" manifest and the sync tests might end up with an async root-view.
|
|
433
|
+
oComponent.getMetadata().getParent()._oManifest.destroy();
|
|
434
|
+
delete oComponent.getMetadata().getParent()._oManifest;
|
|
435
|
+
|
|
436
|
+
done();
|
|
437
|
+
};
|
|
438
|
+
|
|
439
|
+
Component.create({
|
|
440
|
+
name:"sap.ui.core.qunit.mvc.viewprocessing.ExtensionPoints.Child"
|
|
441
|
+
}).then(function(oComponent) {
|
|
442
|
+
oComponent.getRootControl().loaded().then(function(oView) {
|
|
443
|
+
fnAssertions(oComponent, oView);
|
|
449
444
|
});
|
|
450
445
|
});
|
|
446
|
+
});
|
|
451
447
|
|
|
452
|
-
|
|
453
|
-
|
|
448
|
+
QUnit.test("Owner component setting for stashed control", function(assert) {
|
|
449
|
+
var done = assert.async();
|
|
454
450
|
|
|
455
|
-
|
|
451
|
+
var sComponentName = "sap.ui.core.qunit.mvc.viewprocessing.StashedControl";
|
|
456
452
|
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
453
|
+
sap.ui.define((sComponentName + ".Component").replace(/\./g, "/"), ["sap/ui/core/UIComponent"], function(UIComponent) {
|
|
454
|
+
return UIComponent.extend(sComponentName + ".Component", { });
|
|
455
|
+
});
|
|
460
456
|
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
}
|
|
457
|
+
// responds changed parent manifest
|
|
458
|
+
// async switch on root-view is switched based on test-execution
|
|
459
|
+
var oManifest = {
|
|
460
|
+
"_version": "0.0.1",
|
|
461
|
+
"sap.app": {
|
|
462
|
+
"id": sComponentName
|
|
463
|
+
},
|
|
464
|
+
"sap.ui5": {
|
|
465
|
+
"rootView": {
|
|
466
|
+
"viewName": "sap.ui.core.qunit.mvc.viewprocessing.StashedControl.Main",
|
|
467
|
+
"type": "XML",
|
|
468
|
+
"async": true,
|
|
469
|
+
"id": "app"
|
|
475
470
|
}
|
|
476
|
-
}
|
|
471
|
+
}
|
|
472
|
+
};
|
|
477
473
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
474
|
+
var fnAssertions = function(oComponent, oView) {
|
|
475
|
+
// --------- control tree checks ---------
|
|
476
|
+
var oPanel = oView.byId("panel");
|
|
477
|
+
var oButton = oView.byId("stashedButton");
|
|
482
478
|
|
|
483
|
-
|
|
484
|
-
|
|
479
|
+
assert.ok(oPanel, "Panel wrapper is available.");
|
|
480
|
+
assert.notOk(oButton, "Stashed button inside stashed panel does not exist yet.");
|
|
485
481
|
|
|
486
|
-
|
|
487
|
-
|
|
482
|
+
var oNormalButtonInStashedParent = oView.byId("normalButtonInStashedParent");
|
|
483
|
+
assert.ok(!oNormalButtonInStashedParent, "Normal button in stashed area isn't created");
|
|
488
484
|
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
485
|
+
// check the StashedControl instances
|
|
486
|
+
var oStashedControlForButtonInPanel = oView.byId("sap-ui-stashed-stashedButton");
|
|
487
|
+
assert.ok(!oStashedControlForButtonInPanel, "StashedControl for button in stashed area (Panel) isn't created");
|
|
492
488
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
489
|
+
// Owner Component Checks
|
|
490
|
+
var oOwnerComponent = Component.getOwnerComponentFor(oPanel);
|
|
491
|
+
assert.ok(oOwnerComponent, "Owner Component for StashedControl of panel can be found");
|
|
492
|
+
if (oOwnerComponent) {
|
|
493
|
+
assert.strictEqual(oOwnerComponent.getId(), oComponent.getId(), "Stashed Panel should have owner component");
|
|
494
|
+
}
|
|
499
495
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
496
|
+
var oStashedPanel = Element.getElementById(oView.createId("panel"));
|
|
497
|
+
oOwnerComponent = Component.getOwnerComponentFor(oStashedPanel);
|
|
498
|
+
assert.ok(oOwnerComponent, "Owner Component for StashedControl of panel can be found");
|
|
499
|
+
if (oOwnerComponent) {
|
|
500
|
+
assert.strictEqual(oOwnerComponent.getId(), oComponent.getId(), "Stashed Panel should have owner component");
|
|
501
|
+
}
|
|
506
502
|
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
503
|
+
var oNormalButton = oView.byId("normalButton");
|
|
504
|
+
oOwnerComponent = Component.getOwnerComponentFor(oNormalButton);
|
|
505
|
+
assert.ok(oOwnerComponent, "Owner Component for normal button can be found");
|
|
506
|
+
if (oOwnerComponent) {
|
|
507
|
+
assert.strictEqual(oOwnerComponent.getId(), oComponent.getId(), "Normal button should have owner component");
|
|
508
|
+
}
|
|
513
509
|
|
|
514
510
|
|
|
515
|
-
|
|
516
|
-
|
|
511
|
+
// --------- aggregation checks ---------
|
|
512
|
+
var oPage = oView.byId("page");
|
|
517
513
|
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
514
|
+
assert.equal(oPage.getContent().length, 2, "Two elements in page content aggregation.");
|
|
515
|
+
// stashed panel
|
|
516
|
+
assert.ok(oPage.getContent()[0].isA("sap.m.Panel"), "1st entry in content aggregation is a Panel.");
|
|
517
|
+
assert.equal(oPage.getContent()[0].getContent().length, 0, "Wrapper for stashed Panel has no content in its content aggregation.");
|
|
518
|
+
// normal button
|
|
519
|
+
assert.ok(oPage.getContent()[1].isA("sap.m.Button"), "2nd entry in content aggregation is a Button.");
|
|
524
520
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
521
|
+
// Stashing API checks
|
|
522
|
+
var aStashedControlsInPage = StashedControlSupport.getStashedControls(oView.createId("page"));
|
|
523
|
+
assert.equal(aStashedControlsInPage.length, 1, "Only one stashed control in Page.");
|
|
524
|
+
assert.deepEqual(aStashedControlsInPage[0], oStashedPanel, "StashedControl in Page is the stashed panel");
|
|
529
525
|
|
|
530
526
|
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
527
|
+
// --------- unstash the stashed panel ---------
|
|
528
|
+
// get the real panel again, since the wrapper should now be replaced
|
|
529
|
+
var oRealPanel = oStashedPanel.unstash();
|
|
530
|
+
assert.ok(oRealPanel.isA("sap.m.Panel"), "The real panel instance is created after unstash");
|
|
535
531
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
532
|
+
// check for additional stashed control inside the now unstashed panel
|
|
533
|
+
oStashedControlForButtonInPanel = Element.getElementById(oView.createId("stashedButton"));
|
|
534
|
+
oNormalButtonInStashedParent = oView.byId("normalButtonInStashedParent");
|
|
539
535
|
|
|
540
|
-
|
|
541
|
-
|
|
536
|
+
assert.ok(oStashedControlForButtonInPanel, "Stashed button in stashed area is created");
|
|
537
|
+
assert.ok(oNormalButtonInStashedParent, "Normal button in stashed area is created");
|
|
542
538
|
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
539
|
+
oOwnerComponent = Component.getOwnerComponentFor(oStashedControlForButtonInPanel);
|
|
540
|
+
assert.ok(oOwnerComponent, "Owner Component for stashed button can be found");
|
|
541
|
+
if (oOwnerComponent) {
|
|
542
|
+
assert.strictEqual(oOwnerComponent.getId(), oComponent.getId(), "Stashed button should have owner component");
|
|
543
|
+
}
|
|
548
544
|
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
545
|
+
oOwnerComponent = Component.getOwnerComponentFor(oNormalButtonInStashedParent);
|
|
546
|
+
assert.ok(oOwnerComponent, "Owner Component for normal button in stashed area can be found");
|
|
547
|
+
if (oOwnerComponent) {
|
|
548
|
+
assert.strictEqual(oOwnerComponent.getId(), oComponent.getId(), "Normal button in stashed area should have owner component");
|
|
549
|
+
}
|
|
554
550
|
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
551
|
+
// clean-up components
|
|
552
|
+
oComponent.destroy();
|
|
553
|
+
done();
|
|
554
|
+
};
|
|
559
555
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
});
|
|
556
|
+
Component.create({
|
|
557
|
+
name: sComponentName,
|
|
558
|
+
manifest: oManifest
|
|
559
|
+
}).then(function(oComponent) {
|
|
560
|
+
oComponent.getRootControl().loaded().then(function(oView) {
|
|
561
|
+
fnAssertions(oComponent, oView);
|
|
567
562
|
});
|
|
568
563
|
});
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
/**
|
|
572
|
-
* test execution
|
|
573
|
-
*/
|
|
574
|
-
// asynchronous -> processingMode is set to "SequentialLegacy"
|
|
575
|
-
viewProcessingTests();
|
|
564
|
+
});
|
|
576
565
|
});
|