* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
// svg/dynamic-updates tests set enablePixelTesting=true, as we want to dump text + pixel results
(function() {
- function getOrCreate(id, tagName)
- {
- var element = document.getElementById(id);
- if (element)
- return element;
-
- element = document.createElement(tagName);
- element.id = id;
- var refNode;
- var parent = document.body || document.documentElement;
- if (id == "description")
- refNode = getOrCreate("console", "div");
- else
- refNode = parent.firstChild;
-
- parent.insertBefore(element, refNode);
- return element;
- }
+ function getOrCreate(id, tagName)
+ {
+ var element = document.getElementById(id);
+ if (element)
+ return element;
+
+ element = document.createElement(tagName);
+ element.id = id;
+ var refNode;
+ var parent = document.body || document.documentElement;
+ if (id == 'description')
+ refNode = getOrCreate('console', 'div');
+ else
+ refNode = parent.firstChild;
- description = function description(msg, quiet)
- {
- // For MSIE 6 compatibility
- var span = document.createElement("span");
- if (quiet)
- span.innerHTML = '<p>' + msg + '</p><p>On success, you will see no "<span class="fail">FAIL</span>" messages, followed by "<span class="pass">TEST COMPLETE</span>".</p>';
- else
- span.innerHTML = '<p>' + msg + '</p><p>On success, you will see a series of "<span class="pass">PASS</span>" messages, followed by "<span class="pass">TEST COMPLETE</span>".</p>';
-
- var description = getOrCreate("description", "p");
- if (description.firstChild)
- description.replaceChild(span, description.firstChild);
- else
- description.appendChild(span);
- };
+ parent.insertBefore(element, refNode);
+ return element;
+ }
- debug = function debug(msg)
- {
- var span = document.createElement("span");
- getOrCreate("console", "div").appendChild(span); // insert it first so XHTML knows the namespace
- span.innerHTML = msg + '<br />';
- };
+ description = function description(msg, quiet)
+ {
+ // For MSIE 6 compatibility
+ var span = document.createElement('span');
+ if (quiet)
+ span.innerHTML = '<p>' + msg +
+ '</p><p>' +
+ 'On success, you will see no "<span class="fail">FAIL</span>" messages, ' +
+ 'followed by "<span class="pass">TEST COMPLETE</span>".' +
+ '</p>';
+ else
+ span.innerHTML = '<p>' + msg +
+ '</p><p>' +
+ 'On success, you will see a series of "<span class="pass">PASS</span>" messages, ' +
+ 'followed by "<span class="pass">TEST COMPLETE</span>".' +
+ '</p>';
+
+ var description = getOrCreate('description', 'p');
+ if (description.firstChild)
+ description.replaceChild(span, description.firstChild);
+ else
+ description.appendChild(span);
+ };
- var css =
- ".pass {" +
- "font-weight: bold;" +
- "color: green;" +
- "}" +
- ".fail {" +
- "font-weight: bold;" +
- "color: red;" +
- "}" +
- "#console {" +
- "white-space: pre-wrap;" +
- "font-family: monospace;" +
- "}";
-
- function insertStyleSheet()
- {
- var styleElement = document.createElement("style");
- styleElement.textContent = css;
- (document.head || document.documentElement).appendChild(styleElement);
- }
+ debug = function debug(msg)
+ {
+ var span = document.createElement('span');
+ getOrCreate('console', 'div').appendChild(span); // insert it first so XHTML knows the namespace
+ span.innerHTML = msg + '<br />';
+ };
+
+ var css =
+ '.pass {' +
+ 'font-weight: bold;' +
+ 'color: green;' +
+ '}' +
+ '.fail {' +
+ 'font-weight: bold;' +
+ 'color: red;' +
+ '}' +
+ '#console {' +
+ 'white-space: pre-wrap;' +
+ 'font-family: monospace;' +
+ '}';
+
+ function insertStyleSheet()
+ {
+ var styleElement = document.createElement('style');
+ styleElement.textContent = css;
+ (document.head || document.documentElement).appendChild(styleElement);
+ }
- insertStyleSheet();
+ insertStyleSheet();
- if (!self.isOnErrorTest) {
- self.onerror = function(message)
+ if (!self.isOnErrorTest) {
+ self.onerror = function(message)
{
- errorMessage = message;
- };
- }
+ errorMessage = message;
+ };
+ }
})();
function escapeHTML(text)
{
- return text.replace(/&/g, "&").replace(/</g, "<").replace(/\0/g, "\\0");
+ return text.replace(/&/g, '&').replace(/</g, '<').replace(/\0/g, '\\0');
}
function testPassed(msg)
{
- debug('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
+ debug('<span><span class="pass">PASS</span> ' + escapeHTML(msg) + '</span>');
}
function testFailed(msg)
{
- debug('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
+ debug('<span><span class="fail">FAIL</span> ' + escapeHTML(msg) + '</span>');
}
function areArraysEqual(_a, _b)
{
- try {
- if (_a.length !== _b.length)
- return false;
- for (var i = 0; i < _a.length; i++)
- if (_a[i] !== _b[i])
- return false;
- } catch (ex) {
+ try {
+ if (_a.length !== _b.length)
+ return false;
+ for (var i = 0; i < _a.length; i++)
+ if (_a[i] !== _b[i])
return false;
- }
- return true;
+ } catch (ex) {
+ return false;
+ }
+ return true;
}
function isMinusZero(n)
{
- // the only way to tell 0 from -0 in JS is the fact that 1/-0 is
- // -Infinity instead of Infinity
- return n === 0 && 1/n < 0;
+ // the only way to tell 0 from -0 in JS is the fact that 1/-0 is
+ // -Infinity instead of Infinity
+ return n === 0 && 1 / n < 0;
}
function isResultCorrect(_actual, _expected)
{
- if (_expected === 0)
- return _actual === _expected && (1/_actual) === (1/_expected);
- if (_actual === _expected)
- return true;
- if (typeof(_expected) == "number" && isNaN(_expected))
- return typeof(_actual) == "number" && isNaN(_actual);
- if (_expected && (Object.prototype.toString.call(_expected) == Object.prototype.toString.call([])))
- return areArraysEqual(_actual, _expected);
- return false;
+ if (_expected === 0)
+ return _actual === _expected && (1 / _actual) === (1 / _expected);
+ if (_actual === _expected)
+ return true;
+ if (typeof(_expected) == 'number' && isNaN(_expected))
+ return typeof(_actual) == 'number' && isNaN(_actual);
+ if (_expected &&
+ (Object.prototype.toString.call(_expected) == Object.prototype.toString.call([])))
+ return areArraysEqual(_actual, _expected);
+ return false;
}
function stringify(v)
{
- if (v === 0 && 1/v < 0)
- return "-0";
- else return "" + v;
+ if (v === 0 && 1 / v < 0)
+ return '-0';
+ else return '' + v;
}
function evalAndLog(_a, _quiet)
{
- if (typeof _a != "string")
- debug("WARN: tryAndLog() expects a string argument");
+ if (typeof _a != 'string')
+ debug('WARN: tryAndLog() expects a string argument');
// Log first in case things go horribly wrong or this causes a sync event.
if (!_quiet)
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- testFailed(_a + " threw exception " + e);
+ testFailed(_a + ' threw exception ' + e);
}
return _av;
}
function shouldBe(_a, _b, quiet)
{
- if (typeof _a != "string" || typeof _b != "string")
- debug("WARN: shouldBe() expects string arguments");
+ if (typeof _a != 'string' || typeof _b != 'string')
+ debug('WARN: shouldBe() expects string arguments');
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
var _bv = eval(_b);
if (exception)
- testFailed(_a + " should be " + _bv + ". Threw exception " + exception);
+ testFailed(_a + ' should be ' + _bv + '. Threw exception ' + exception);
else if (isResultCorrect(_av, _bv)) {
if (!quiet) {
- testPassed(_a + " is " + _b);
+ testPassed(_a + ' is ' + _b);
}
} else if (typeof(_av) == typeof(_bv))
- testFailed(_a + " should be " + _bv + ". Was " + stringify(_av) + ".");
+ testFailed(_a + ' should be ' + _bv + '. Was ' + stringify(_av) + '.');
else
- testFailed(_a + " should be " + _bv + " (of type " + typeof _bv + "). Was " + _av + " (of type " + typeof _av + ").");
+ testFailed(_a + ' should be ' + _bv + ' (of type ' + typeof _bv + '). Was ' +
+ _av + ' (of type ' + typeof _av + ').');
}
// Execute condition every 5 milliseconds until it succeed or failureTime is reached.
function shouldBecomeEqual(_a, _b, completionHandler, timeout)
{
- if (typeof _a != "string" || typeof _b != "string")
- debug("WARN: shouldBecomeEqual() expects string arguments");
+ if (typeof _a != 'string' || typeof _b != 'string')
+ debug('WARN: shouldBecomeEqual() expects string arguments');
if (timeout === undefined)
timeout = 500;
}
var _bv = eval(_b);
if (exception)
- testFailed(_a + " should become " + _bv + ". Threw exception " + exception);
+ testFailed(_a + ' should become ' + _bv + '. Threw exception ' + exception);
if (isResultCorrect(_av, _bv)) {
- testPassed(_a + " became " + _b);
+ testPassed(_a + ' became ' + _b);
return true;
}
return false;
};
var failureTime = Date.now() + timeout;
- var failureHandler = function () {
- testFailed(_a + " failed to change to " + _b + " in " + (timeout / 1000) + " seconds.");
+ var failureHandler = function() {
+ testFailed(_a + ' failed to change to ' + _b + ' in ' + (timeout / 1000) + ' seconds.');
completionHandler();
};
_waitForCondition(condition, failureTime, completionHandler, failureHandler);
function shouldBecomeEqualToString(value, reference, completionHandler, timeout)
{
- if (typeof value !== "string" || typeof reference !== "string")
- debug("WARN: shouldBecomeEqualToString() expects string arguments");
+ if (typeof value !== 'string' || typeof reference !== 'string')
+ debug('WARN: shouldBecomeEqualToString() expects string arguments');
var unevaledString = JSON.stringify(reference);
shouldBecomeEqual(value, unevaledString, completionHandler, timeout);
}
var _typev = eval(_type);
if (_av instanceof _typev) {
- testPassed(_a + " is an instance of " + _type);
+ testPassed(_a + ' is an instance of ' + _type);
} else {
- testFailed(_a + " is not an instance of " + _type);
+ testFailed(_a + ' is not an instance of ' + _type);
}
}
// numeric _tolerance of numeric _target.
function shouldBeCloseTo(_to_eval, _target, _tolerance, quiet)
{
- if (typeof _to_eval != "string") {
- testFailed("shouldBeCloseTo() requires string argument _to_eval. was type " + typeof _to_eval);
+ if (typeof _to_eval != 'string') {
+ testFailed('shouldBeCloseTo() requires string argument _to_eval. was type ' + typeof _to_eval);
return;
}
- if (typeof _target != "number") {
- testFailed("shouldBeCloseTo() requires numeric argument _target. was type " + typeof _target);
+ if (typeof _target != 'number') {
+ testFailed('shouldBeCloseTo() requires numeric argument _target. was type ' + typeof _target);
return;
}
- if (typeof _tolerance != "number") {
- testFailed("shouldBeCloseTo() requires numeric argument _tolerance. was type " + typeof _tolerance);
+ if (typeof _tolerance != 'number') {
+ testFailed('shouldBeCloseTo() requires numeric argument _tolerance. was type ' +
+ typeof _tolerance);
return;
}
var _result;
try {
- _result = eval(_to_eval);
+ _result = eval(_to_eval);
} catch (e) {
- testFailed(_to_eval + " should be within " + _tolerance + " of "
- + _target + ". Threw exception " + e);
+ testFailed(_to_eval + ' should be within ' + _tolerance + ' of ' +
+ _target + '. Threw exception ' + e);
return;
}
if (typeof(_result) != typeof(_target)) {
- testFailed(_to_eval + " should be of type " + typeof _target
- + " but was of type " + typeof _result);
+ testFailed(_to_eval + ' should be of type ' + typeof _target +
+ ' but was of type ' + typeof _result);
} else if (Math.abs(_result - _target) <= _tolerance) {
if (!quiet) {
- testPassed(_to_eval + " is within " + _tolerance + " of " + _target);
+ testPassed(_to_eval + ' is within ' + _tolerance + ' of ' + _target);
}
} else {
- testFailed(_to_eval + " should be within " + _tolerance + " of " + _target
- + ". Was " + _result + ".");
+ testFailed(_to_eval + ' should be within ' + _tolerance + ' of ' + _target +
+ '. Was ' + _result + '.');
}
}
function shouldNotBe(_a, _b, quiet)
{
- if (typeof _a != "string" || typeof _b != "string")
- debug("WARN: shouldNotBe() expects string arguments");
+ if (typeof _a != 'string' || typeof _b != 'string')
+ debug('WARN: shouldNotBe() expects string arguments');
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
var _bv = eval(_b);
if (exception)
- testFailed(_a + " should not be " + _bv + ". Threw exception " + exception);
+ testFailed(_a + ' should not be ' + _bv + '. Threw exception ' + exception);
else if (!isResultCorrect(_av, _bv)) {
if (!quiet) {
- testPassed(_a + " is not " + _b);
+ testPassed(_a + ' is not ' + _b);
}
} else
- testFailed(_a + " should not be " + _bv + ".");
+ testFailed(_a + ' should not be ' + _bv + '.');
}
function shouldBecomeDifferent(_a, _b, completionHandler, timeout)
{
- if (typeof _a != "string" || typeof _b != "string")
- debug("WARN: shouldBecomeDifferent() expects string arguments");
+ if (typeof _a != 'string' || typeof _b != 'string')
+ debug('WARN: shouldBecomeDifferent() expects string arguments');
if (timeout === undefined)
timeout = 500;
}
var _bv = eval(_b);
if (exception)
- testFailed(_a + " should became not equal to " + _bv + ". Threw exception " + exception);
+ testFailed(_a + ' should became not equal to ' + _bv + '. Threw exception ' + exception);
if (!isResultCorrect(_av, _bv)) {
- testPassed(_a + " became different from " + _b);
+ testPassed(_a + ' became different from ' + _b);
return true;
}
return false;
};
var failureTime = Date.now() + timeout;
- var failureHandler = function () {
- testFailed(_a + " did not become different from " + _b + " in " + (timeout / 1000) + " seconds.");
+ var failureHandler = function() {
+ testFailed(_a + ' did not become different from ' +
+ _b + ' in ' + (timeout / 1000) + ' seconds.');
completionHandler();
};
_waitForCondition(condition, failureTime, completionHandler, failureHandler);
}
-function shouldBeTrue(_a) { shouldBe(_a, "true"); }
-function shouldBeTrueQuiet(_a) { shouldBe(_a, "true", true); }
-function shouldBeFalse(_a) { shouldBe(_a, "false"); }
-function shouldBeNaN(_a) { shouldBe(_a, "NaN"); }
-function shouldBeNull(_a) { shouldBe(_a, "null"); }
-function shouldBeZero(_a) { shouldBe(_a, "0"); }
+function shouldBeTrue(_a) { shouldBe(_a, 'true'); }
+function shouldBeTrueQuiet(_a) { shouldBe(_a, 'true', true); }
+function shouldBeFalse(_a) { shouldBe(_a, 'false'); }
+function shouldBeNaN(_a) { shouldBe(_a, 'NaN'); }
+function shouldBeNull(_a) { shouldBe(_a, 'null'); }
+function shouldBeZero(_a) { shouldBe(_a, '0'); }
function shouldBeEqualToString(a, b)
{
- if (typeof a !== "string" || typeof b !== "string")
- debug("WARN: shouldBeEqualToString() expects string arguments");
+ if (typeof a !== 'string' || typeof b !== 'string')
+ debug('WARN: shouldBeEqualToString() expects string arguments');
var unevaledString = JSON.stringify(b);
shouldBe(a, unevaledString);
}
-function shouldBeEmptyString(_a) { shouldBeEqualToString(_a, ""); }
+function shouldBeEmptyString(_a) { shouldBeEqualToString(_a, ''); }
function shouldEvaluateTo(actual, expected) {
// A general-purpose comparator. 'actual' should be a string to be
if (expected == null) {
// Do this before the object test, since null is of type 'object'.
shouldBeNull(actual);
- } else if (typeof expected == "undefined") {
+ } else if (typeof expected == 'undefined') {
shouldBeUndefined(actual);
- } else if (typeof expected == "function") {
+ } else if (typeof expected == 'function') {
// All this fuss is to avoid the string-arg warning from shouldBe().
try {
actualValue = eval(actual);
} catch (e) {
- testFailed("Evaluating " + actual + ": Threw exception " + e);
+ testFailed('Evaluating ' + actual + ': Threw exception ' + e);
return;
}
- shouldBe("'" + actualValue.toString().replace(/\n/g, "") + "'",
- "'" + expected.toString().replace(/\n/g, "") + "'");
- } else if (typeof expected == "object") {
+ shouldBe("'" + actualValue.toString().replace(/\n/g, '') + "'",
+ "'" + expected.toString().replace(/\n/g, '') + "'");
+ } else if (typeof expected == 'object') {
shouldBeTrue(actual + " == '" + expected + "'");
- } else if (typeof expected == "string") {
+ } else if (typeof expected == 'string') {
shouldBe(actual, expected);
- } else if (typeof expected == "boolean") {
- shouldBe("typeof " + actual, "'boolean'");
+ } else if (typeof expected == 'boolean') {
+ shouldBe('typeof ' + actual, "'boolean'");
if (expected)
shouldBeTrue(actual);
else
shouldBeFalse(actual);
- } else if (typeof expected == "number") {
+ } else if (typeof expected == 'number') {
shouldBe(actual, stringify(expected));
} else {
- debug(expected + " is unknown type " + typeof expected);
- shouldBeTrue(actual, "'" +expected.toString() + "'");
+ debug(expected + ' is unknown type ' + typeof expected);
+ shouldBeTrue(actual, "'" + expected.toString() + "'");
}
}
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
if (exception)
- testFailed(_a + " should be non-zero. Threw exception " + exception);
+ testFailed(_a + ' should be non-zero. Threw exception ' + exception);
else if (_av != 0)
- testPassed(_a + " is non-zero.");
+ testPassed(_a + ' is non-zero.');
else
- testFailed(_a + " should be non-zero. Was " + _av);
+ testFailed(_a + ' should be non-zero. Was ' + _av);
}
function shouldBeNonNull(_a)
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
if (exception)
- testFailed(_a + " should be non-null. Threw exception " + exception);
+ testFailed(_a + ' should be non-null. Threw exception ' + exception);
else if (_av != null)
- testPassed(_a + " is non-null.");
+ testPassed(_a + ' is non-null.');
else
- testFailed(_a + " should be non-null. Was " + _av);
+ testFailed(_a + ' should be non-null. Was ' + _av);
}
function shouldBeUndefined(_a)
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
if (exception)
- testFailed(_a + " should be undefined. Threw exception " + exception);
- else if (typeof _av == "undefined")
- testPassed(_a + " is undefined.");
+ testFailed(_a + ' should be undefined. Threw exception ' + exception);
+ else if (typeof _av == 'undefined')
+ testPassed(_a + ' is undefined.');
else
- testFailed(_a + " should be undefined. Was " + _av);
+ testFailed(_a + ' should be undefined. Was ' + _av);
}
function shouldBeDefined(_a)
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
if (exception)
- testFailed(_a + " should be defined. Threw exception " + exception);
+ testFailed(_a + ' should be defined. Threw exception ' + exception);
else if (_av !== undefined)
- testPassed(_a + " is defined.");
+ testPassed(_a + ' is defined.');
else
- testFailed(_a + " should be defined. Was " + _av);
+ testFailed(_a + ' should be defined. Was ' + _av);
}
function shouldBeGreaterThanOrEqual(_a, _b) {
- if (typeof _a != "string" || typeof _b != "string")
- debug("WARN: shouldBeGreaterThanOrEqual expects string arguments");
+ if (typeof _a != 'string' || typeof _b != 'string')
+ debug('WARN: shouldBeGreaterThanOrEqual expects string arguments');
- var exception;
- var _av;
- try {
- _av = eval(_a);
- } catch (e) {
- exception = e;
- }
- var _bv = eval(_b);
+ var exception;
+ var _av;
+ try {
+ _av = eval(_a);
+ } catch (e) {
+ exception = e;
+ }
+ var _bv = eval(_b);
- if (exception)
- testFailed(_a + " should be >= " + _b + ". Threw exception " + exception);
- else if (typeof _av == "undefined" || _av < _bv)
- testFailed(_a + " should be >= " + _b + ". Was " + _av + " (of type " + typeof _av + ").");
- else
- testPassed(_a + " is >= " + _b);
+ if (exception)
+ testFailed(_a + ' should be >= ' + _b + '. Threw exception ' + exception);
+ else if (typeof _av == 'undefined' || _av < _bv)
+ testFailed(_a + ' should be >= ' + _b + '. Was ' + _av + ' (of type ' + typeof _av + ').');
+ else
+ testPassed(_a + ' is >= ' + _b);
}
function shouldNotThrow(_a) {
- try {
- eval(_a);
- testPassed(_a + " did not throw exception.");
- } catch (e) {
- testFailed(_a + " should not throw exception. Threw exception " + e + ".");
- }
+ try {
+ eval(_a);
+ testPassed(_a + ' did not throw exception.');
+ } catch (e) {
+ testFailed(_a + ' should not throw exception. Threw exception ' + e + '.');
+ }
}
function shouldThrow(_a, _e)
var exception;
var _av;
try {
- _av = eval(_a);
+ _av = eval(_a);
} catch (e) {
- exception = e;
+ exception = e;
}
var _ev;
if (_e)
- _ev = eval(_e);
+ _ev = eval(_e);
if (exception) {
// Handle WebAPIException and WebAPIError.
_ev = _ev.name;
}
- if (typeof _e == "undefined" || exception == _ev)
- testPassed(_a + " threw exception " + exception + ".");
+ if (typeof _e == 'undefined' || exception == _ev)
+ testPassed(_a + ' threw exception ' + exception + '.');
else
- testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Threw exception " + exception + ".");
- } else if (typeof _av == "undefined")
- testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Was undefined.");
- else
- testFailed(_a + " should throw " + (typeof _e == "undefined" ? "an exception" : _ev) + ". Was " + _av + ".");
+ testFailed(_a + ' should throw ' + (typeof _e == 'undefined' ? 'an exception' : _ev) +
+ '. Threw exception ' + exception + '.');
+ } else if (typeof _av == 'undefined') {
+ testFailed(_a + ' should throw ' + (typeof _e == 'undefined' ? 'an exception' : _ev) +
+ '. Was undefined.');
+ } else {
+ testFailed(_a + ' should throw ' + (typeof _e == 'undefined' ? 'an exception' : _ev) +
+ '. Was ' + _av + '.');
+ }
}
function shouldHaveHadError(message)
{
- if (errorMessage) {
- if (!message)
- testPassed("Got expected error");
- else if (errorMessage.indexOf(message) !== -1)
- testPassed("Got expected error: '" + message + "'");
- else
- testFailed("Unexpexted error '" + message + "'");
- } else
- testFailed("Missing expexted error");
- errorMessage = undefined;
+ if (errorMessage) {
+ if (!message)
+ testPassed('Got expected error');
+ else if (errorMessage.indexOf(message) !== -1)
+ testPassed("Got expected error: '" + message + "'");
+ else
+ testFailed("Unexpexted error '" + message + "'");
+ } else
+ testFailed('Missing expexted error');
+ errorMessage = undefined;
}
function isSuccessfullyParsed()
{
- // FIXME: Remove this and only report unexpected syntax errors.
- if (!errorMessage)
- successfullyParsed = true;
- shouldBeTrue("successfullyParsed");
- debug('<br /><span class="pass">TEST COMPLETE</span>');
+ // FIXME: Remove this and only report unexpected syntax errors.
+ if (!errorMessage)
+ successfullyParsed = true;
+ shouldBeTrue('successfullyParsed');
+ debug('<br /><span class="pass">TEST COMPLETE</span>');
}
function finishJSTest()
{
- wasFinishJSTestCalled = true;
- if (!self.wasPostTestScriptParsed)
- return;
- isSuccessfullyParsed();
+ wasFinishJSTestCalled = true;
+ if (!self.wasPostTestScriptParsed)
+ return;
+ isSuccessfullyParsed();
}