| Index: test/intl/assert.js
|
| diff --git a/test/intl/assert.js b/test/intl/assert.js
|
| index 3180e6f96e69db62c56f8eb7564bead6e9155a2d..e17615267ae327ea25b60db0a67e99d11fbb6a49 100644
|
| --- a/test/intl/assert.js
|
| +++ b/test/intl/assert.js
|
| @@ -87,14 +87,13 @@ function deepEquals(a, b) {
|
| return deepObjectEquals(a, b);
|
| }
|
|
|
| -
|
| /**
|
| - * Throws an exception, and prints the values in case of error.
|
| + * Throws an exception containing the user_message (if any) and the values.
|
| */
|
| -function fail(expected, found) {
|
| +function fail(expected, found, user_message = '') {
|
| // TODO(cira): Replace String with PrettyPrint for objects and arrays.
|
| - var message = 'Failure: expected <' + String(expected) + '>, found <' +
|
| - String(found) + '>.';
|
| + var message = 'Failure' + (user_message ? ' (' + user_message + ')' : '') +
|
| + ': expected <' + String(expected) + '>, found <' + String(found) + '>.';
|
| throw new Error(message);
|
| }
|
|
|
| @@ -102,9 +101,9 @@ function fail(expected, found) {
|
| /**
|
| * Throws if two variables have different types or values.
|
| */
|
| -function assertEquals(expected, found) {
|
| +function assertEquals(expected, found, user_message = '') {
|
| if (!deepEquals(expected, found)) {
|
| - fail(expected, found);
|
| + fail(expected, found, user_message);
|
| }
|
| }
|
|
|
| @@ -112,49 +111,49 @@ function assertEquals(expected, found) {
|
| /**
|
| * Throws if value is false.
|
| */
|
| -function assertTrue(value) {
|
| - assertEquals(true, value)
|
| +function assertTrue(value, user_message = '') {
|
| + assertEquals(true, value, user_message);
|
| }
|
|
|
|
|
| /**
|
| * Throws if value is true.
|
| */
|
| -function assertFalse(value) {
|
| - assertEquals(false, value);
|
| +function assertFalse(value, user_message = '') {
|
| + assertEquals(false, value, user_message);
|
| }
|
|
|
|
|
| /**
|
| - * Returns true if code throws specified exception.
|
| + * Runs code() and asserts that it throws the specified exception.
|
| */
|
| function assertThrows(code, type_opt, cause_opt) {
|
| - var threwException = true;
|
| try {
|
| if (typeof code == 'function') {
|
| code();
|
| } else {
|
| eval(code);
|
| }
|
| - threwException = false;
|
| } catch (e) {
|
| if (typeof type_opt == 'function') {
|
| assertInstanceof(e, type_opt);
|
| }
|
| if (arguments.length >= 3) {
|
| - assertEquals(e.type, cause_opt);
|
| + assertEquals(cause_opt, e.type, 'thrown exception type mismatch');
|
| }
|
| // Success.
|
| return;
|
| }
|
| - throw new Error("Did not throw exception");
|
| + var expected = arguments.length >= 3 ? cause_opt :
|
| + typeof type_opt == 'function' ? type_opt : 'any exception';
|
| + fail(expected, 'no exception', 'expected thrown exception');
|
| }
|
|
|
|
|
| /**
|
| - * Throws an exception if code throws.
|
| + * Runs code() and asserts that it does now throw any exception.
|
| */
|
| -function assertDoesNotThrow(code, name_opt) {
|
| +function assertDoesNotThrow(code, user_message = '') {
|
| try {
|
| if (typeof code == 'function') {
|
| code();
|
| @@ -162,7 +161,7 @@ function assertDoesNotThrow(code, name_opt) {
|
| eval(code);
|
| }
|
| } catch (e) {
|
| - fail("threw an exception: ", e.message || e, name_opt);
|
| + fail("no expection", "exception: " + String(e), user_message);
|
| }
|
| }
|
|
|
|
|