Add bizarro test for _.isBuffer.

This commit is contained in:
John-David Dalton
2016-02-09 00:29:26 -08:00
parent 5fe4a1b05d
commit 495c890aac
2 changed files with 30 additions and 17 deletions

View File

@@ -82,6 +82,12 @@
funcProto._method = noop;
// Set bad shims.
setProperty(Object, '_create', Object.create);
setProperty(Object, 'create', noop);
setProperty(Object, '_getOwnPropertySymbols', Object.getOwnPropertySymbols);
setProperty(Object, 'getOwnPropertySymbols', undefined);
setProperty(objectProto, '_propertyIsEnumerable', propertyIsEnumerable);
setProperty(objectProto, 'propertyIsEnumerable', function(key) {
return !(key == 'valueOf' && this && this.valueOf === 1) && _propertyIsEnumerable.call(this, key);
@@ -103,12 +109,6 @@
setProperty(Map, 'toString', createToString('Map'));
}
setProperty(Object, '_create', Object.create);
setProperty(Object, 'create', noop);
setProperty(Object, '_getOwnPropertySymbols', Object.getOwnPropertySymbols);
setProperty(Object, 'getOwnPropertySymbols', undefined);
setProperty(window, '_Set', window.Set);
setProperty(window, 'Set', noop);
@@ -131,6 +131,8 @@
var funcProto = Function.prototype,
objectProto = Object.prototype;
setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable);
if (Object._create) {
Object.create = Object._create;
} else {
@@ -159,8 +161,6 @@
} else {
setProperty(window, 'WeakMap', undefined);
}
setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable);
setProperty(window, '_Map', undefined);
setProperty(window, '_Set', undefined);
setProperty(window, '_Symbol', undefined);

View File

@@ -452,6 +452,11 @@
funcProto._method = noop;
// Set bad shims.
setProperty(Object, 'create', noop);
var _getOwnPropertySymbols = Object.getOwnPropertySymbols;
setProperty(Object, 'getOwnPropertySymbols', undefined);
var _propertyIsEnumerable = objectProto.propertyIsEnumerable;
setProperty(objectProto, 'propertyIsEnumerable', function(key) {
return !(key == 'valueOf' && this && this.valueOf === 1) && _propertyIsEnumerable.call(this, key);
@@ -472,11 +477,7 @@
setProperty(root.Map, 'toString', createToString('Map'));
}
setProperty(Object, 'create', noop);
var _getOwnPropertySymbols = Object.getOwnPropertySymbols;
setProperty(Object, 'getOwnPropertySymbols', undefined);
setProperty(root, 'Buffer', undefined);
setProperty(root, 'Set', noop);
setProperty(root, 'Symbol', undefined);
setProperty(root, 'WeakMap', noop);
@@ -492,6 +493,10 @@
root._ = oldDash;
// Restore built-in methods.
setProperty(Object, 'create', create);
setProperty(objectProto, 'propertyIsEnumerable', _propertyIsEnumerable);
setProperty(root, 'Buffer', Buffer);
if (_getOwnPropertySymbols) {
Object.getOwnPropertySymbols = _getOwnPropertySymbols;
} else {
@@ -517,9 +522,6 @@
} else {
delete root.WeakMap;
}
setProperty(objectProto, 'propertyIsEnumerable', _propertyIsEnumerable);
setProperty(Object, 'create', create);
delete root.WinRTError;
delete funcProto._method;
}());
@@ -723,7 +725,7 @@
}
});
QUnit.test('should avoid overwritten native methods', function(assert) {
QUnit.test('should avoid non-native built-ins', function(assert) {
assert.expect(6);
function message(lodashMethod, nativeMethod) {
@@ -8111,6 +8113,17 @@
assert.strictEqual(_.isBuffer('a'), false);
assert.strictEqual(_.isBuffer(symbol), false);
});
QUnit.test('should return `false` if `Buffer` is not defined', function(assert) {
assert.expect(1);
if (Buffer && lodashBizarro) {
assert.strictEqual(lodashBizarro.isBuffer(new Buffer(2)), false);
}
else {
skipTest(assert);
}
});
}(1, 2, 3));
/*--------------------------------------------------------------------------*/