UNPKG

@openui5/sap.ui.core

Version:

OpenUI5 Core Library sap.ui.core

51 lines (46 loc) 1.44 kB
/*! * OpenUI5 * (c) Copyright 2009-2021 SAP SE or an SAP affiliate company. * Licensed under the Apache License, Version 2.0 - see LICENSE.txt. */ sap.ui.define(function() { "use strict"; /** * Checks whether the theme has already been applied and if not, waits for the * 'ThemeChanged' event to be fired. * * @example <caption>This module can be used to delay the QUnit test start. * When using the Test Starter, the Promise can be returned from the test module.</caption> * sap.ui.define([ * ... * "sap/ui/qunit/utils/waitForThemeApplied" * ], function(..., waitForThemeApplied) { * "use strict"; * * QUnit.test( ... ); * ... * * return waitForThemeApplied(); * }); * * @returns {Promise} Promise that resolves when the theme has been applied */ var waitForThemeApplied = function() { if (typeof sap === "undefined" || !sap.ui || typeof sap.ui.getCore !== "function") { return Promise.reject(new Error("UI5 Core must be loaded and booted before using the sap/ui/qunit/utils/waitForThemeApplied module")); } return new Promise(function(resolve /*, reject*/) { var oCore = sap.ui.getCore(); if (oCore.isThemeApplied()) { resolve(); } else { var themeChanged = function() { resolve(); oCore.detachThemeChanged(themeChanged); }; oCore.attachThemeChanged(themeChanged); } }); }; return waitForThemeApplied; });