+12
-37
@@ -5540,12 +5540,12 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Deep compare objects.
|
// Deep compare objects.
|
||||||
var aKeys = keys(a, className == '[object Array]'),
|
var aKeys = MatchersUtil.keys(a, className == '[object Array]'),
|
||||||
key;
|
key;
|
||||||
size = aKeys.length;
|
size = aKeys.length;
|
||||||
|
|
||||||
// Ensure that both objects contain the same number of properties before comparing deep equality.
|
// Ensure that both objects contain the same number of properties before comparing deep equality.
|
||||||
if (keys(b, className == '[object Array]').length !== size) {
|
if (MatchersUtil.keys(b, className == '[object Array]').length !== size) {
|
||||||
diffBuilder.recordMismatch(
|
diffBuilder.recordMismatch(
|
||||||
objectKeysAreDifferentFormatter.bind(null, this.pp)
|
objectKeysAreDifferentFormatter.bind(null, this.pp)
|
||||||
);
|
);
|
||||||
@@ -5581,7 +5581,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
function keys(obj, isArray) {
|
MatchersUtil.keys = function(obj, isArray) {
|
||||||
var allKeys = (function(o) {
|
var allKeys = (function(o) {
|
||||||
var keys = [];
|
var keys = [];
|
||||||
for (var key in o) {
|
for (var key in o) {
|
||||||
@@ -5609,7 +5609,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return extraKeys;
|
return extraKeys;
|
||||||
}
|
};
|
||||||
|
|
||||||
function isFunction(obj) {
|
function isFunction(obj) {
|
||||||
return typeof obj === 'function';
|
return typeof obj === 'function';
|
||||||
@@ -7643,7 +7643,7 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
SinglePrettyPrintRun.prototype.iterateObject = function(obj, fn) {
|
SinglePrettyPrintRun.prototype.iterateObject = function(obj, fn) {
|
||||||
var objKeys = keys(obj, j$.isArray_(obj));
|
var objKeys = j$.MatchersUtil.keys(obj, j$.isArray_(obj));
|
||||||
var isGetter = function isGetter(prop) {};
|
var isGetter = function isGetter(prop) {};
|
||||||
|
|
||||||
if (obj.__lookupGetter__) {
|
if (obj.__lookupGetter__) {
|
||||||
@@ -7838,8 +7838,14 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
property,
|
property,
|
||||||
isGetter
|
isGetter
|
||||||
) {
|
) {
|
||||||
this.append(property);
|
if (typeof property === 'symbol') {
|
||||||
|
this.append(property.toString());
|
||||||
|
} else {
|
||||||
|
this.append(property);
|
||||||
|
}
|
||||||
|
|
||||||
this.append(': ');
|
this.append(': ');
|
||||||
|
|
||||||
if (isGetter) {
|
if (isGetter) {
|
||||||
this.append('<getter>');
|
this.append('<getter>');
|
||||||
} else {
|
} else {
|
||||||
@@ -7881,37 +7887,6 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
|
|
||||||
MaxCharsReachedError.prototype = new Error();
|
MaxCharsReachedError.prototype = new Error();
|
||||||
|
|
||||||
function keys(obj, isArray) {
|
|
||||||
var allKeys = Object.keys
|
|
||||||
? Object.keys(obj)
|
|
||||||
: (function(o) {
|
|
||||||
var keys = [];
|
|
||||||
for (var key in o) {
|
|
||||||
if (j$.util.has(o, key)) {
|
|
||||||
keys.push(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return keys;
|
|
||||||
})(obj);
|
|
||||||
|
|
||||||
if (!isArray) {
|
|
||||||
return allKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allKeys.length === 0) {
|
|
||||||
return allKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
var extraKeys = [];
|
|
||||||
for (var i = 0; i < allKeys.length; i++) {
|
|
||||||
if (!/^[0-9]+$/.test(allKeys[i])) {
|
|
||||||
extraKeys.push(allKeys[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return extraKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
function customFormat(value, customObjectFormatters) {
|
function customFormat(value, customObjectFormatters) {
|
||||||
var i, result;
|
var i, result;
|
||||||
|
|
||||||
|
|||||||
@@ -84,6 +84,11 @@ describe('PrettyPrinter', function() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('includes symbols', function() {
|
||||||
|
const pp = jasmineUnderTest.makePrettyPrinter();
|
||||||
|
expect(pp([1, Symbol('foo'), 2])).toEqual('[ 1, Symbol(foo), 2 ]');
|
||||||
|
});
|
||||||
|
|
||||||
it('should truncate arrays that are longer than jasmineUnderTest.MAX_PRETTY_PRINT_ARRAY_LENGTH', function() {
|
it('should truncate arrays that are longer than jasmineUnderTest.MAX_PRETTY_PRINT_ARRAY_LENGTH', function() {
|
||||||
const originalMaxLength = jasmineUnderTest.MAX_PRETTY_PRINT_ARRAY_LENGTH;
|
const originalMaxLength = jasmineUnderTest.MAX_PRETTY_PRINT_ARRAY_LENGTH;
|
||||||
const array = [1, 2, 3];
|
const array = [1, 2, 3];
|
||||||
@@ -163,6 +168,25 @@ describe('PrettyPrinter', function() {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('includes symbol keys in objects', function() {
|
||||||
|
const pp = jasmineUnderTest.makePrettyPrinter();
|
||||||
|
const obj = {};
|
||||||
|
obj[Symbol('foo')] = 'bar';
|
||||||
|
expect(pp(obj)).toEqual("Object({ Symbol(foo): 'bar' })");
|
||||||
|
});
|
||||||
|
|
||||||
|
it('stringifies string and symbol keys differently', function() {
|
||||||
|
const pp = jasmineUnderTest.makePrettyPrinter();
|
||||||
|
const symObj = {};
|
||||||
|
const strObj = {};
|
||||||
|
const k = 'foo';
|
||||||
|
const v = 'bar';
|
||||||
|
symObj[Symbol(k)] = v;
|
||||||
|
strObj[k] = v;
|
||||||
|
|
||||||
|
expect(pp(symObj)).not.toEqual(pp(strObj));
|
||||||
|
});
|
||||||
|
|
||||||
it('should stringify objects that almost look like DOM nodes', function() {
|
it('should stringify objects that almost look like DOM nodes', function() {
|
||||||
const pp = jasmineUnderTest.makePrettyPrinter();
|
const pp = jasmineUnderTest.makePrettyPrinter();
|
||||||
expect(pp({ nodeType: 1 })).toEqual('Object({ nodeType: 1 })');
|
expect(pp({ nodeType: 1 })).toEqual('Object({ nodeType: 1 })');
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
SinglePrettyPrintRun.prototype.iterateObject = function(obj, fn) {
|
SinglePrettyPrintRun.prototype.iterateObject = function(obj, fn) {
|
||||||
var objKeys = keys(obj, j$.isArray_(obj));
|
var objKeys = j$.MatchersUtil.keys(obj, j$.isArray_(obj));
|
||||||
var isGetter = function isGetter(prop) {};
|
var isGetter = function isGetter(prop) {};
|
||||||
|
|
||||||
if (obj.__lookupGetter__) {
|
if (obj.__lookupGetter__) {
|
||||||
@@ -301,8 +301,14 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
property,
|
property,
|
||||||
isGetter
|
isGetter
|
||||||
) {
|
) {
|
||||||
this.append(property);
|
if (typeof property === 'symbol') {
|
||||||
|
this.append(property.toString());
|
||||||
|
} else {
|
||||||
|
this.append(property);
|
||||||
|
}
|
||||||
|
|
||||||
this.append(': ');
|
this.append(': ');
|
||||||
|
|
||||||
if (isGetter) {
|
if (isGetter) {
|
||||||
this.append('<getter>');
|
this.append('<getter>');
|
||||||
} else {
|
} else {
|
||||||
@@ -344,37 +350,6 @@ getJasmineRequireObj().makePrettyPrinter = function(j$) {
|
|||||||
|
|
||||||
MaxCharsReachedError.prototype = new Error();
|
MaxCharsReachedError.prototype = new Error();
|
||||||
|
|
||||||
function keys(obj, isArray) {
|
|
||||||
var allKeys = Object.keys
|
|
||||||
? Object.keys(obj)
|
|
||||||
: (function(o) {
|
|
||||||
var keys = [];
|
|
||||||
for (var key in o) {
|
|
||||||
if (j$.util.has(o, key)) {
|
|
||||||
keys.push(key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return keys;
|
|
||||||
})(obj);
|
|
||||||
|
|
||||||
if (!isArray) {
|
|
||||||
return allKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (allKeys.length === 0) {
|
|
||||||
return allKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
var extraKeys = [];
|
|
||||||
for (var i = 0; i < allKeys.length; i++) {
|
|
||||||
if (!/^[0-9]+$/.test(allKeys[i])) {
|
|
||||||
extraKeys.push(allKeys[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return extraKeys;
|
|
||||||
}
|
|
||||||
|
|
||||||
function customFormat(value, customObjectFormatters) {
|
function customFormat(value, customObjectFormatters) {
|
||||||
var i, result;
|
var i, result;
|
||||||
|
|
||||||
|
|||||||
@@ -483,12 +483,12 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Deep compare objects.
|
// Deep compare objects.
|
||||||
var aKeys = keys(a, className == '[object Array]'),
|
var aKeys = MatchersUtil.keys(a, className == '[object Array]'),
|
||||||
key;
|
key;
|
||||||
size = aKeys.length;
|
size = aKeys.length;
|
||||||
|
|
||||||
// Ensure that both objects contain the same number of properties before comparing deep equality.
|
// Ensure that both objects contain the same number of properties before comparing deep equality.
|
||||||
if (keys(b, className == '[object Array]').length !== size) {
|
if (MatchersUtil.keys(b, className == '[object Array]').length !== size) {
|
||||||
diffBuilder.recordMismatch(
|
diffBuilder.recordMismatch(
|
||||||
objectKeysAreDifferentFormatter.bind(null, this.pp)
|
objectKeysAreDifferentFormatter.bind(null, this.pp)
|
||||||
);
|
);
|
||||||
@@ -524,7 +524,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
function keys(obj, isArray) {
|
MatchersUtil.keys = function(obj, isArray) {
|
||||||
var allKeys = (function(o) {
|
var allKeys = (function(o) {
|
||||||
var keys = [];
|
var keys = [];
|
||||||
for (var key in o) {
|
for (var key in o) {
|
||||||
@@ -552,7 +552,7 @@ getJasmineRequireObj().MatchersUtil = function(j$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return extraKeys;
|
return extraKeys;
|
||||||
}
|
};
|
||||||
|
|
||||||
function isFunction(obj) {
|
function isFunction(obj) {
|
||||||
return typeof obj === 'function';
|
return typeof obj === 'function';
|
||||||
|
|||||||
Reference in New Issue
Block a user