loadControls = function () {
				return Lib.load(sLibName).then(function (library) {
					var aClasses = library ? library.controls : [];

					if (mOptions.includeElements) {
						aClasses = aClasses.concat(library.elements);
					}

					aClasses = aClasses.filter(function (sControlName) {
						// Check if there are new controls or elements available in library after the previous loading
						return !aLoadedElementsAndControls.includes(sControlName);
					});

					if (aClasses.length > 0) {
						aClasses.forEach(function(sClass) {
							var sModuleName = mCapabilities[sClass] && mCapabilities[sClass].moduleName;

							aLoadClassPromises.push(Utils.loadClass(sClass, sModuleName));
							aLoadedElementsAndControls.push(sClass);
						});
						return Promise.all(aLoadClassPromises).then(loadControls);
					}
					return Promise.all(aLoadClassPromises);
				});
			}
Loads all control classes for the given library.

@param  {object} [mTestParams] Test specific parameters
@param  {string} [mTestParams.library] The library name
@param  {sap.ui.test.generic.GenericTestCollection.ObjectCapabilities} [mTestParams.objectCapabilities] The capabilities of the controls
@param  {object} [mOptions] Object that holds further configs.
@param  {boolean} [mOptions.includeElements=false] Whether the library's elements should be considered as well.
@return {Promise<sap.ui.test.generic.ClassInfo[]>} Returns a promise resolving with an array of <code>sap.ui.test.generic.ClassInfo</code> objects.