1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
/// Copyright (c) 2012 Ecma International. All rights reserved.
/// This code is governed by the BSD license found in the LICENSE file.
//Global Scope Test Case Validator
var doneCalled;
function $DONE(argError) {
var testError;
var result, resultError;
if (argError) {
testError = argError.toString();
}
if (doneCalled) {
// ? log called twice
return;
}
doneCalled = true;
//An exception is expected
if (testDescrip.negative !== undefined) {
//TODO - come up with a generic way of catching the error type
//from this.onerror
var negRegexp = new RegExp(testDescrip.negative, "i"),
unkRegexp = /^UnknownError:/;
if (!testError) { //no exception was thrown
result = 'fail';
resultError = Error('No exception was thrown; expected an error "message"' +
' property matching the regular expression "' +
testDescrip.negative + '".');
} else if (!negRegexp.test(testError) &&
!unkRegexp.test(testError)) {
//wrong type of exception thrown
result = 'fail';
resultError = Error('Expected an exception with a "message"' +
' property matching the regular expression "' +
testDescrip.negative +
'" to be thrown; actual was "' +
testError + '".');
} else {
result = 'pass';
resultError = 'undefined';
}
} else if (testError) {
//Exception was not expected to be thrown
result = 'fail';
resultError = Error('Unexpected exception, "' + testError + '" was thrown.');
} else {
result = 'pass';
resultError = undefined;
}
testRun(testDescrip.id,
testDescrip.path,
testDescrip.description,
testDescrip.code,
result,
resultError);
//teardown
testFinished();
}
|