function callQUnit(sQUnitFn, aArgs, fnDone, fnFail) {
		configQUnit();
		// parse arguments passed to OPA adapter
		var mTestBodyArgs = {
			testName: aArgs[0],
			expected: aArgs.length === 2 ? null : aArgs[1],
			callback: aArgs.length === 2 ? aArgs[1] : aArgs[2],
			async: aArgs[3]
		};

		if (isQUnit2() && typeof mTestBodyArgs.async !== "undefined") {
			throw new Error("Qunit >=2.0 is used, which no longer supports the 'async' parameter for tests.");
		}

		// create and configure the callback to be executed by QUnit at test runtime
		var fnTestBody = createTestBody(mTestBodyArgs, fnDone, fnFail);

		// build arguments for the adapted QUnit function
		var mQUnitFnArgs = [mTestBodyArgs.testName, fnTestBody, mTestBodyArgs.async];

		if (!isQUnit2()) {
			mQUnitFnArgs.splice(1, 0, mTestBodyArgs.expected);
		}

		// call adapted QUnit function
		QUnit[sQUnitFn].apply(this, mQUnitFnArgs);
	}
// configure QUnit, modify test callback to include OPA start, and enqueue the test with QUnit
configure QUnit, modify test callback to include OPA start, and enqueue the test with QUnit
configure QUnit modify test callback to include OPA start and enqueue the test with QUnit
function callQUnit(sQUnitFn, aArgs, fnDone, fnFail) {
		configQUnit();
		var mTestBodyArgs = {
			testName: aArgs[0],
			expected: aArgs.length === 2 ? null : aArgs[1],
			callback: aArgs.length === 2 ? aArgs[1] : aArgs[2],
			async: aArgs[3]
		};
		if (isQUnit2() && typeof mTestBodyArgs.async !== "undefined") {
			throw new Error("Qunit >=2.0 is used, which no longer supports the 'async' parameter for tests.");
		}
		var fnTestBody = createTestBody(mTestBodyArgs, fnDone, fnFail);
		var mQUnitFnArgs = [mTestBodyArgs.testName, fnTestBody, mTestBodyArgs.async];
		if (!isQUnit2()) {
			mQUnitFnArgs.splice(1, 0, mTestBodyArgs.expected);
		}
		QUnit[sQUnitFn].apply(this, mQUnitFnArgs);
	}
function callQUnit ( sQUnitFn , aArgs , fnDone , fnFail ) { configQUnit ( ) ; var mTestBodyArgs = { testName : aArgs [ 0 ] , expected : aArgs . length === 2 ? null : aArgs [ 1 ] , callback : aArgs . length === 2 ? aArgs [ 1 ] : aArgs [ 2 ] , async : aArgs [ 3 ] } ; if ( isQUnit2 ( ) && typeof mTestBodyArgs . async !== "undefined" ) { throw new Error ( "Qunit >=2.0 is used, which no longer supports the 'async' parameter for tests." ) ; } var fnTestBody = createTestBody ( mTestBodyArgs , fnDone , fnFail ) ; var mQUnitFnArgs = [ mTestBodyArgs . testName , fnTestBody , mTestBodyArgs . async ] ; if ( ! isQUnit2 ( ) ) { mQUnitFnArgs . splice ( 1 , 0 , mTestBodyArgs . expected ) ; } QUnit [ sQUnitFn ] . apply ( this , mQUnitFnArgs ) ; }
configure QUnit, modify test callback to include OPA start, and enqueue the test with QUnit
configure QUnit modify test callback to include OPA start and enqueue the test with QUnit
// parse arguments passed to OPA adapter // create and configure the callback to be executed by QUnit at test runtime // build arguments for the adapted QUnit function // call adapted QUnit function