closeTooltip = function(oControl, mParams, assert) {
		return new Promise(function(resolve, reject) {
			if (mParams.keyboard) {
				QUnitUtils.triggerKeydown(oControl.$(), KeyCodes.ESCAPE);
			} else {
				QUnitUtils.triggerMouseEvent(oControl.$(), "mouseout");
			}

			setTimeout(function() {
				if (mParams.keyboard) {
					if (mParams.keydown.openedWithKey) {
						assert.equal(mParams.keydown.callCount, 2, "'onkeydown' was called with ESC key event");
						mParams.keydown.openedWithKey = null;
					} else {
						assert.ok(mParams.keydown.calledOnce, "'onkeydown' was called with ESC key event");
					}
				} else {
					assert.ok(mParams.mouseOver.calledOnce, "'onmouseover' wasn't called again for tooltip");
					assert.ok(mParams.mouseOut.calledOnce, "'onmouseout' was called for tooltip");
				}

				assert.ok(mParams.closePopup.calledOnce, "'closePopup' was called for tooltip");
				isTooltipNotVisible(oControl.getTooltip(), assert);

				resolve();
			}, oControl.getTooltip().getCloseDelay() + 300);
		});
	}
Closes the tooltip of a given Control

@param {Control} oControl which has a tooltip that should be opened
@param {object} mParams with the necessary spies
@param {sinon.spy} mParams.mouseOver is the mouseover spy
@param {sinon.spy} mParams.mouseOut is the mouseout spy
@param {sinon.spy} mParams.closePopup is the openPopup spy

@return {Promise} that is resolved when the tooltip has been closed