diff --git a/test/index.html b/test/index.html index c910a807d..5c5ca8893 100644 --- a/test/index.html +++ b/test/index.html @@ -115,9 +115,6 @@ setProperty(stringProto, '_contains', stringProto.contains); setProperty(stringProto, 'contains', stringProto._contains ? noop : Boolean); - setProperty(document, '_createDocumentFragment', document.createDocumentFragment); - document.createDocumentFragment = noop; - setProperty(window, '_ArrayBuffer', window.ArrayBuffer); if (window.ArrayBuffer && window.Uint8Array) { ArrayBuffer = (function(_ArrayBuffer) { @@ -175,6 +172,10 @@ }; }(_parseInt))); + // fake lack of DOM support + setProperty(document, '_createDocumentFragment', document.createDocumentFragment); + document.createDocumentFragment = noop; + // fake `WinRTError` setProperty(window, 'WinRTError', Error); @@ -224,11 +225,6 @@ } else { delete stringProto.contains; } - setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable); - - document.createDocumentFragment = document._createDocumentFragment; - setProperty(document, '_createDocumentFragment', undefined); - if (window._ArrayBuffer) { ArrayBuffer = _ArrayBuffer; } @@ -247,12 +243,17 @@ setProperty(window, 'parseInt', window._parseInt); setProperty(window, '_parseInt', undefined); + document.createDocumentFragment = document._createDocumentFragment; + setProperty(document, '_createDocumentFragment', undefined); + setProperty(window, 'WinRTError', undefined); setProperty(window, 'exports', undefined); setProperty(window, 'global', undefined); setProperty(window, 'module', undefined); + setProperty(objectProto, 'propertyIsEnumerable', objectProto._propertyIsEnumerable); + delete Array._isArray; delete Date._now; delete funcProto._method; diff --git a/test/test.js b/test/test.js index fcd7df176..d14055448 100644 --- a/test/test.js +++ b/test/test.js @@ -38,12 +38,10 @@ noop = function() {}, params = root.arguments, push = arrayProto.push, - Set = root.Set, slice = arrayProto.slice, system = root.system, toString = objectProto.toString, - Uint8Array = root.Uint8Array, - WeakMap = root.WeakMap; + Uint8Array = root.Uint8Array; /** The file path of the Lo-Dash file to test */ var filePath = (function() { @@ -119,6 +117,10 @@ ? require : (isJava && root.load) || noop; + /** Load ES6 Set and WeakMap shims */ + load('./asset/set.js'); + load('./asset/weakmap.js'); + /** The unit testing framework */ var QUnit = (function() { return root.QUnit || ( @@ -340,9 +342,6 @@ function createToString(funcName) { return _.constant(nativeString.replace(reToString, funcName)); } - // load ES6 Set and WeakMap shims - require('./asset/set'); - require('./asset/weakmap'); // expose `baseEach` for better code coverage if (isModularize && !isNpm) { @@ -442,14 +441,11 @@ }; }())); - if (Set) { - setProperty(root, 'Set', _.noop); - } - if (WeakMap) { - setProperty(root, 'WeakMap', _.noop); - } - // fake `WinRTError` - setProperty(root, 'WinRTError', Error); + var _Set = root.Set; + setProperty(root, 'Set', _.noop); + + var _WeakMap = root.WeakMap; + setProperty(root, 'WeakMap', _.noop); // fake DOM setProperty(root, 'window', {}); @@ -458,6 +454,9 @@ return { 'nodeType': 11 }; }); + // fake `WinRTError` + setProperty(root, 'WinRTError', Error); + // clear cache so Lo-Dash can be reloaded emptyObject(require.cache); @@ -490,12 +489,12 @@ } else { delete root.ArrayBuffer; } - if (Set) { + if (_Set) { setProperty(root, 'Set', Set); } else { delete root.Set; } - if (WeakMap) { + if (_WeakMap) { setProperty(root, 'WeakMap', WeakMap); } else { delete root.WeakMap; @@ -614,7 +613,7 @@ } }); - test('should avoid overwritten native methods', 14, function() { + test('should avoid overwritten native methods', 15, function() { function Foo() {} function message(lodashMethod, nativeMethod) { @@ -648,6 +647,13 @@ ok(actual[0] instanceof Foo, message('_.create', 'Object.create')); deepEqual(actual[1], {}, message('_.create', 'Object.create')); + try { + actual = lodashBizarro.curry(function(a, b) { return [a, b]; })(1)(2); + } catch(e) { + actual = null; + } + deepEqual(actual, [1, 2], message('_.curry', 'Object.defineProperty')); + try { actual = [lodashBizarro.isPlainObject({}), lodashBizarro.isPlainObject([])]; } catch(e) { @@ -716,7 +722,7 @@ } } else { - skipTest(14); + skipTest(15); } }); }());