openTooltip = function(oControl, mParams, assert) {
		return new Promise(function(resolve, reject) {
			if (mParams.keyboard) {
				QUnitUtils.triggerKeydown(oControl.$(), KeyCodes.I, /*Shift*/ false, /*Alt*/ false, /*Ctrl*/ true);
				mParams.keydown.openedWithKey = true;
			} else {
				QUnitUtils.triggerMouseEvent(oControl.$(), "mouseover");
			}

			setTimeout(function() {
				if (mParams.keyboard) {
					assert.ok(mParams.keydown.calledOnce, "'onkeydown' was called for " + oControl.getId());
				} else {
					assert.ok(mParams.mouseOver.calledOnce, "'onmouseover' was called for " + oControl.getId());
					assert.notOk(mParams.mouseOut.callCount > 0, "'onmouseout' wasn't called for " + oControl.getId());
				}

				assert.ok(mParams.openPopup.calledOnce, "'openPopup' was called for " + oControl.getId());

				isTooltipVisible(oControl.getTooltip(), assert);

				resolve();
			}, oControl.getTooltip().getOpenDelay() + 300);
		});
	}
Opens 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.openPopup is the openPopup spy

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