diff --git a/test/index.html b/test/index.html
index 22f7c7784..a62477ab5 100644
--- a/test/index.html
+++ b/test/index.html
@@ -29,9 +29,6 @@
Date._now = Date.now;
Date.now = function() {};
- Function.prototype._bind = Function.prototype.bind;
- Function.prototype.bind = function() { return function() {}; };
-
Object._create = Object.create;
Object.create = function() {};
@@ -44,6 +41,9 @@
Object._keys = Object.keys;
Object.keys = function() {};
+ String.prototype._contains = String.prototype.contains;
+ String.prototype.contains = function() {};
+
window.WinRTError = Error;
document._createDocumentFragment = document.createDocumentFragment;
@@ -61,11 +61,6 @@
} else {
delete Date.now;
}
- if (Function.prototype._bind) {
- Function.prototype.bind = Function.prototype._bind;
- } else {
- delete Function.prototype.bind;
- }
if (Object._create) {
Object.create = Object._create;
} else {
@@ -86,6 +81,11 @@
} else {
delete Object.keys;
}
+ if (String.prototype._contains) {
+ String.prototype.contains = String.prototype._contains;
+ } else {
+ delete String.prototype.contains;
+ }
window.WinRTError = undefined;
document.createDocumentFragment = document._createDocumentFragment;
@@ -93,12 +93,12 @@
delete Array._isArray;
delete Date._now;
- delete Function.prototype._bind;
delete Function.prototype._method;
delete Object._create;
delete Object._defineProperty;
delete Object._getPrototypeOf;
delete Object._keys;
+ delete String.prototype._contains;
}
addBizarroMethods();
diff --git a/test/test.js b/test/test.js
index 7612279a5..9d6dd229f 100644
--- a/test/test.js
+++ b/test/test.js
@@ -249,9 +249,6 @@
var _now = Date.now;
Date.now = function() {};
- var _bind = Function.prototype.bind;
- Function.prototype.bind = function() { return function() {}; };
-
var _create = Object.create;
Object.create = function() {};
@@ -264,18 +261,25 @@
var _keys = Object.keys;
Object.keys = function() {};
+ var _contains = String.prototype.contains;
+ String.prototype.contains = function() {};
+
// load Lo-Dash and expose it to the bad extensions/shims
lodashBizarro = (lodashBizarro = require(filePath))._ || lodashBizarro;
// restore native methods
Array.isArray = _isArray;
Date.now = _now;
- Function.prototype.bind = _bind;
Object.create = _create;
Object.defineProperty = _defineProperty;
Object.getPrototypeOf = _getPrototypeOf;
Object.keys = _keys;
+ if (String.prototype._contains) {
+ String.prototype.contains = String.prototype._contains;
+ } else {
+ delete String.prototype.contains;
+ }
delete global.window;
delete global.WinRTError;
delete Function.prototype._method;
@@ -384,7 +388,7 @@
}
});
- test('should avoid overwritten native methods', 7, function() {
+ test('should avoid overwritten native methods', 8, function() {
function Foo() {}
function message(methodName) {
@@ -416,11 +420,11 @@
deepEqual(actual[1], {}, message('Object.create'));
try {
- var actual = lodashBizarro.bind(function() { return this.a; }, object)();
+ var actual = lodashBizarro.bind(function() { return this.a; }, object);
} catch(e) {
actual = null;
}
- ok(actual, message('Object.defineProperty'));
+ equal('__bindData__' in actual, false, message('Object.defineProperty'));
try {
actual = [lodashBizarro.isPlainObject({}), lodashBizarro.isPlainObject([])];
@@ -435,9 +439,16 @@
actual = null;
}
deepEqual(actual, [['a'], []], message('Object.keys'));
+
+ try {
+ actual = lodashBizarro.contains('abc', 'bc');
+ } catch(e) {
+ actual = null;
+ }
+ strictEqual(actual, true, message('String#contains'));
}
else {
- skipTest(7);
+ skipTest(8);
}
});
}());