You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2012/05/07 21:29:22 UTC

[8/8] dont check in node_modules peepz!

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/assert.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/assert.js b/bin/node_modules/nodeunit/lib/assert.js
deleted file mode 100644
index 8d9e0e3..0000000
--- a/bin/node_modules/nodeunit/lib/assert.js
+++ /dev/null
@@ -1,316 +0,0 @@
-/**
- * This file is based on the node.js assert module, but with some small
- * changes for browser-compatibility
- * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS!
- */
-
-
-/**
- * Added for browser compatibility
- */
-
-var _keys = function(obj){
-    if(Object.keys) return Object.keys(obj);
-    var keys = [];
-    for(var k in obj){
-        if(obj.hasOwnProperty(k)) keys.push(k);
-    }
-    return keys;
-};
-
-
-
-// http://wiki.commonjs.org/wiki/Unit_Testing/1.0
-//
-// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!
-//
-// Originally from narwhal.js (http://narwhaljs.org)
-// Copyright (c) 2009 Thomas Robinson <280north.com>
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the 'Software'), to
-// deal in the Software without restriction, including without limitation the
-// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-// sell copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in
-// all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
-// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-var pSlice = Array.prototype.slice;
-
-// 1. The assert module provides functions that throw
-// AssertionError's when particular conditions are not met. The
-// assert module must conform to the following interface.
-
-var assert = exports;
-
-// 2. The AssertionError is defined in assert.
-// new assert.AssertionError({message: message, actual: actual, expected: expected})
-
-assert.AssertionError = function AssertionError (options) {
-  this.name = "AssertionError";
-  this.message = options.message;
-  this.actual = options.actual;
-  this.expected = options.expected;
-  this.operator = options.operator;
-  var stackStartFunction = options.stackStartFunction || fail;
-
-  if (Error.captureStackTrace) {
-    Error.captureStackTrace(this, stackStartFunction);
-  }
-};
-// code from util.inherits in node
-assert.AssertionError.super_ = Error;
-
-
-// EDITED FOR BROWSER COMPATIBILITY: replaced Object.create call
-// TODO: test what effect this may have
-var ctor = function () { this.constructor = assert.AssertionError; };
-ctor.prototype = Error.prototype;
-assert.AssertionError.prototype = new ctor();
-
-
-assert.AssertionError.prototype.toString = function() {
-  if (this.message) {
-    return [this.name+":", this.message].join(' ');
-  } else {
-    return [ this.name+":"
-           , JSON.stringify(this.expected )
-           , this.operator
-           , JSON.stringify(this.actual)
-           ].join(" ");
-  }
-};
-
-// assert.AssertionError instanceof Error
-
-assert.AssertionError.__proto__ = Error.prototype;
-
-// At present only the three keys mentioned above are used and
-// understood by the spec. Implementations or sub modules can pass
-// other keys to the AssertionError's constructor - they will be
-// ignored.
-
-// 3. All of the following functions must throw an AssertionError
-// when a corresponding condition is not met, with a message that
-// may be undefined if not provided.  All assertion methods provide
-// both the actual and expected values to the assertion error for
-// display purposes.
-
-function fail(actual, expected, message, operator, stackStartFunction) {
-  throw new assert.AssertionError({
-    message: message,
-    actual: actual,
-    expected: expected,
-    operator: operator,
-    stackStartFunction: stackStartFunction
-  });
-}
-
-// EXTENSION! allows for well behaved errors defined elsewhere.
-assert.fail = fail;
-
-// 4. Pure assertion tests whether a value is truthy, as determined
-// by !!guard.
-// assert.ok(guard, message_opt);
-// This statement is equivalent to assert.equal(true, guard,
-// message_opt);. To test strictly for the value true, use
-// assert.strictEqual(true, guard, message_opt);.
-
-assert.ok = function ok(value, message) {
-  if (!!!value) fail(value, true, message, "==", assert.ok);
-};
-
-// 5. The equality assertion tests shallow, coercive equality with
-// ==.
-// assert.equal(actual, expected, message_opt);
-
-assert.equal = function equal(actual, expected, message) {
-  if (actual != expected) fail(actual, expected, message, "==", assert.equal);
-};
-
-// 6. The non-equality assertion tests for whether two objects are not equal
-// with != assert.notEqual(actual, expected, message_opt);
-
-assert.notEqual = function notEqual(actual, expected, message) {
-  if (actual == expected) {
-    fail(actual, expected, message, "!=", assert.notEqual);
-  }
-};
-
-// 7. The equivalence assertion tests a deep equality relation.
-// assert.deepEqual(actual, expected, message_opt);
-
-assert.deepEqual = function deepEqual(actual, expected, message) {
-  if (!_deepEqual(actual, expected)) {
-    fail(actual, expected, message, "deepEqual", assert.deepEqual);
-  }
-};
-
-function _deepEqual(actual, expected) {
-  // 7.1. All identical values are equivalent, as determined by ===.
-  if (actual === expected) {
-    return true;
-  // 7.2. If the expected value is a Date object, the actual value is
-  // equivalent if it is also a Date object that refers to the same time.
-  } else if (actual instanceof Date && expected instanceof Date) {
-    return actual.getTime() === expected.getTime();
-
-  // 7.3. Other pairs that do not both pass typeof value == "object",
-  // equivalence is determined by ==.
-  } else if (typeof actual != 'object' && typeof expected != 'object') {
-    return actual == expected;
-
-  // 7.4. For all other Object pairs, including Array objects, equivalence is
-  // determined by having the same number of owned properties (as verified
-  // with Object.prototype.hasOwnProperty.call), the same set of keys
-  // (although not necessarily the same order), equivalent values for every
-  // corresponding key, and an identical "prototype" property. Note: this
-  // accounts for both named and indexed properties on Arrays.
-  } else {
-    return objEquiv(actual, expected);
-  }
-}
-
-function isUndefinedOrNull (value) {
-  return value === null || value === undefined;
-}
-
-function isArguments (object) {
-  return Object.prototype.toString.call(object) == '[object Arguments]';
-}
-
-function objEquiv (a, b) {
-  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
-    return false;
-  // an identical "prototype" property.
-  if (a.prototype !== b.prototype) return false;
-  //~~~I've managed to break Object.keys through screwy arguments passing.
-  //   Converting to array solves the problem.
-  if (isArguments(a)) {
-    if (!isArguments(b)) {
-      return false;
-    }
-    a = pSlice.call(a);
-    b = pSlice.call(b);
-    return _deepEqual(a, b);
-  }
-  try{
-    var ka = _keys(a),
-      kb = _keys(b),
-      key, i;
-  } catch (e) {//happens when one is a string literal and the other isn't
-    return false;
-  }
-  // having the same number of owned properties (keys incorporates hasOwnProperty)
-  if (ka.length != kb.length)
-    return false;
-  //the same set of keys (although not necessarily the same order),
-  ka.sort();
-  kb.sort();
-  //~~~cheap key test
-  for (i = ka.length - 1; i >= 0; i--) {
-    if (ka[i] != kb[i])
-      return false;
-  }
-  //equivalent values for every corresponding key, and
-  //~~~possibly expensive deep test
-  for (i = ka.length - 1; i >= 0; i--) {
-    key = ka[i];
-    if (!_deepEqual(a[key], b[key] ))
-       return false;
-  }
-  return true;
-}
-
-// 8. The non-equivalence assertion tests for any deep inequality.
-// assert.notDeepEqual(actual, expected, message_opt);
-
-assert.notDeepEqual = function notDeepEqual(actual, expected, message) {
-  if (_deepEqual(actual, expected)) {
-    fail(actual, expected, message, "notDeepEqual", assert.notDeepEqual);
-  }
-};
-
-// 9. The strict equality assertion tests strict equality, as determined by ===.
-// assert.strictEqual(actual, expected, message_opt);
-
-assert.strictEqual = function strictEqual(actual, expected, message) {
-  if (actual !== expected) {
-    fail(actual, expected, message, "===", assert.strictEqual);
-  }
-};
-
-// 10. The strict non-equality assertion tests for strict inequality, as determined by !==.
-// assert.notStrictEqual(actual, expected, message_opt);
-
-assert.notStrictEqual = function notStrictEqual(actual, expected, message) {
-  if (actual === expected) {
-    fail(actual, expected, message, "!==", assert.notStrictEqual);
-  }
-};
-
-function _throws (shouldThrow, block, err, message) {
-  var exception = null,
-      threw = false,
-      typematters = true;
-
-  message = message || "";
-
-  //handle optional arguments
-  if (arguments.length == 3) {
-    if (typeof(err) == "string") {
-      message = err;
-      typematters = false;
-    }
-  } else if (arguments.length == 2) {
-    typematters = false;
-  }
-
-  try {
-    block();
-  } catch (e) {
-    threw = true;
-    exception = e;
-  }
-
-  if (shouldThrow && !threw) {
-    fail( "Missing expected exception"
-        + (err && err.name ? " ("+err.name+")." : '.')
-        + (message ? " " + message : "")
-        );
-  }
-  if (!shouldThrow && threw && typematters && exception instanceof err) {
-    fail( "Got unwanted exception"
-        + (err && err.name ? " ("+err.name+")." : '.')
-        + (message ? " " + message : "")
-        );
-  }
-  if ((shouldThrow && threw && typematters && !(exception instanceof err)) ||
-      (!shouldThrow && threw)) {
-    throw exception;
-  }
-};
-
-// 11. Expected to throw an error:
-// assert.throws(block, Error_opt, message_opt);
-
-assert.throws = function(block, /*optional*/error, /*optional*/message) {
-  _throws.apply(this, [true].concat(pSlice.call(arguments)));
-};
-
-// EXTENSION! This is annoying to write outside this module.
-assert.doesNotThrow = function(block, /*optional*/error, /*optional*/message) {
-  _throws.apply(this, [false].concat(pSlice.call(arguments)));
-};
-
-assert.ifError = function (err) { if (err) {throw err;}};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/core.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/core.js b/bin/node_modules/nodeunit/lib/core.js
deleted file mode 100644
index 5be8e8f..0000000
--- a/bin/node_modules/nodeunit/lib/core.js
+++ /dev/null
@@ -1,260 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- *
- * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS!
- * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build.
- * Only code on that line will be removed, its mostly to avoid requiring code
- * that is node specific
- */
-
-/**
- * Module dependencies
- */
-
-var async = require('../deps/async'), //@REMOVE_LINE_FOR_BROWSER
-    types = require('./types');       //@REMOVE_LINE_FOR_BROWSER
-
-
-/**
- * Added for browser compatibility
- */
-
-var _keys = function(obj){
-    if(Object.keys) return Object.keys(obj);
-    var keys = [];
-    for(var k in obj){
-        if(obj.hasOwnProperty(k)) keys.push(k);
-    }
-    return keys;
-};
-
-
-var _copy = function(obj){
-    var nobj = Object();
-    var keys = _keys(obj);
-    for (var i = 0; i <  keys.length; i++){
-        nobj[keys[i]] = obj[keys[i]];
-    }
-    return nobj;
-}
-
-
-/**
- * Runs a test function (fn) from a loaded module. After the test function
- * calls test.done(), the callback is executed with an assertionList as its
- * second argument.
- *
- * @param {String} name
- * @param {Function} fn
- * @param {Object} opt
- * @param {Function} callback
- * @api public
- */
-
-exports.runTest = function (name, fn, opt, callback) {
-    var options = types.options(opt);
-
-    options.testStart(name);
-    var start = new Date().getTime();
-    var test = types.test(name, start, options, callback);
-
-    try {
-        fn(test);
-    }
-    catch (e) {
-        test.done(e);
-    }
-};
-
-/**
- * Takes an object containing test functions or other test suites as properties
- * and runs each in series. After all tests have completed, the callback is
- * called with a list of all assertions as the second argument.
- *
- * If a name is passed to this function it is prepended to all test and suite
- * names that run within it.
- *
- * @param {String} name
- * @param {Object} suite
- * @param {Object} opt
- * @param {Function} callback
- * @api public
- */
-
-exports.runSuite = function (name, suite, opt, callback) {
-    var keys = _keys(suite);
-
-    async.concatSeries(keys, function (k, cb) {
-        var prop = suite[k], _name;
-
-        _name = name ? [].concat(name, k) : [k];
-
-        _name.toString = function () {
-            // fallback for old one
-            return this.join(' - ');
-        };
-
-        if (typeof prop === 'function') {
-            if (!opt.testspec || _name.indexOf(opt.testspec) != -1){
-                if (opt.moduleStart)
-                    opt.moduleStart();
-                exports.runTest(_name, suite[k], opt, cb);
-            } else
-                return cb();
-        }
-        else {
-            exports.runSuite(_name, suite[k], opt, cb);
-        }
-    }, callback);
-};
-
-/**
- * Run each exported test function or test suite from a loaded module.
- *
- * @param {String} name
- * @param {Object} mod
- * @param {Object} opt
- * @param {Function} callback
- * @api public
- */
-
-exports.runModule = function (name, mod, opt, callback) {
-    var options = _copy(types.options(opt));
-
-    var _run = false;
-    var _moduleStart = options.moduleStart;
-    function run_once(){
-        if (!_run){
-            _run = true;
-            _moduleStart(name);
-        }
-    }
-    options.moduleStart = run_once;
-
-    var start = new Date().getTime();
-
-    exports.runSuite(null, mod, options, function (err, a_list) {
-        var end = new Date().getTime();
-        var assertion_list = types.assertionList(a_list, end - start);
-        options.moduleDone(name, assertion_list);
-        callback(null, a_list);
-    });
-};
-
-/**
- * Treats an object literal as a list of modules keyed by name. Runs each
- * module and finished with calling 'done'. You can think of this as a browser
- * safe alternative to runFiles in the nodeunit module.
- *
- * @param {Object} modules
- * @param {Object} opt
- * @api public
- */
-
-// TODO: add proper unit tests for this function
-exports.runModules = function (modules, opt) {
-    var all_assertions = [];
-    var options = types.options(opt);
-    var start = new Date().getTime();
-
-    async.concatSeries(_keys(modules), function (k, cb) {
-        exports.runModule(k, modules[k], options, cb);
-    },
-    function (err, all_assertions) {
-        var end = new Date().getTime();
-        options.done(types.assertionList(all_assertions, end - start));
-    });
-};
-
-
-/**
- * Wraps a test function with setUp and tearDown functions.
- * Used by testCase.
- *
- * @param {Function} setUp
- * @param {Function} tearDown
- * @param {Function} fn
- * @api private
- */
-
-var wrapTest = function (setUp, tearDown, fn) {
-    return function (test) {
-        var context = {};
-        if (tearDown) {
-            var done = test.done;
-            test.done = function (err) {
-                try {
-                    tearDown.call(context, function (err2) {
-                        if (err && err2) {
-                            test._assertion_list.push(
-                                types.assertion({error: err})
-                            );
-                            return done(err2);
-                        }
-                        done(err || err2);
-                    });
-                }
-                catch (e) {
-                    done(e);
-                }
-            };
-        }
-        if (setUp) {
-            setUp.call(context, function (err) {
-                if (err) {
-                    return test.done(err);
-                }
-                fn.call(context, test);
-            });
-        }
-        else {
-            fn.call(context, test);
-        }
-    }
-};
-
-
-/**
- * Wraps a group of tests with setUp and tearDown functions.
- * Used by testCase.
- *
- * @param {Function} setUp
- * @param {Function} tearDown
- * @param {Object} group
- * @api private
- */
-
-var wrapGroup = function (setUp, tearDown, group) {
-    var tests = {};
-    var keys = _keys(group);
-    for (var i=0; i<keys.length; i++) {
-        var k = keys[i];
-        if (typeof group[k] === 'function') {
-            tests[k] = wrapTest(setUp, tearDown, group[k]);
-        }
-        else if (typeof group[k] === 'object') {
-            tests[k] = wrapGroup(setUp, tearDown, group[k]);
-        }
-    }
-    return tests;
-}
-
-
-/**
- * Utility for wrapping a suite of test functions with setUp and tearDown
- * functions.
- *
- * @param {Object} suite
- * @return {Object}
- * @api public
- */
-
-exports.testCase = function (suite) {
-    var setUp = suite.setUp;
-    var tearDown = suite.tearDown;
-    delete suite.setUp;
-    delete suite.tearDown;
-    return wrapGroup(setUp, tearDown, suite);
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/nodeunit.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/nodeunit.js b/bin/node_modules/nodeunit/lib/nodeunit.js
deleted file mode 100644
index ac3794b..0000000
--- a/bin/node_modules/nodeunit/lib/nodeunit.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var async = require('../deps/async'),
-    types = require('./types'),
-    utils = require('./utils'),
-    core = require('./core'),
-    reporters = require('./reporters'),
-    assert = require('./assert'),
-    path = require('path');
-
-
-/**
- * Export sub-modules.
- */
-
-exports.types = types;
-exports.utils = utils;
-exports.reporters = reporters;
-exports.assert = assert;
-
-// backwards compatibility
-exports.testrunner = {
-    run: function () {
-        console.log(
-            'WARNING: nodeunit.testrunner is going to be deprecated, please ' +
-            'use nodeunit.reporters.default instead!'
-        );
-        return reporters['default'].run.apply(this, arguments);
-    }
-};
-
-
-/**
- * Export all core functions
- */
-
-for (var k in core) {
-    exports[k] = core[k];
-};
-
-
-/**
- * Load modules from paths array and run all exported tests in series. If a path
- * is a directory, load all supported file types inside it as modules. This only
- * reads 1 level deep in the directory and does not recurse through
- * sub-directories.
- *
- * @param {Array} paths
- * @param {Object} opt
- * @api public
- */
-
-exports.runFiles = function (paths, opt) {
-    var all_assertions = [];
-    var options = types.options(opt);
-    var start = new Date().getTime();
-
-    if (!paths.length) {
-        return options.done(types.assertionList(all_assertions));
-    }
-
-    utils.modulePaths(paths, function (err, files) {
-        if (err) throw err;
-        async.concatSeries(files, function (file, cb) {
-            var name = path.basename(file);
-            exports.runModule(name, require(file), options, cb);
-        },
-        function (err, all_assertions) {
-            var end = new Date().getTime();
-            options.done(types.assertionList(all_assertions, end - start));
-        });
-    });
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/browser.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/browser.js b/bin/node_modules/nodeunit/lib/reporters/browser.js
deleted file mode 100644
index a169406..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/browser.js
+++ /dev/null
@@ -1,119 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- *
- * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS!
- * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build.
- * Only code on that line will be removed, its mostly to avoid requiring code
- * that is node specific
- */
-
-
-/**
- * NOTE: this test runner is not listed in index.js because it cannot be
- * used with the command-line tool, only inside the browser.
- */
-
-
-/**
- * Reporter info string
- */
-
-exports.info = "Browser-based test reporter";
-
-
-/**
- * Run all tests within each module, reporting the results
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (modules, options) {
-    var start = new Date().getTime();
-
-    function setText(el, txt) {
-        if ('innerText' in el) {
-            el.innerText = txt;
-        }
-        else if ('textContent' in el){
-            el.textContent = txt;
-        }
-    }
-
-    function getOrCreate(tag, id) {
-        var el = document.getElementById(id);
-        if (!el) {
-            el = document.createElement(tag);
-            el.id = id;
-            document.body.appendChild(el);
-        }
-        return el;
-    };
-
-    var header = getOrCreate('h1', 'nodeunit-header');
-    var banner = getOrCreate('h2', 'nodeunit-banner');
-    var userAgent = getOrCreate('h2', 'nodeunit-userAgent');
-    var tests = getOrCreate('ol', 'nodeunit-tests');
-    var result = getOrCreate('p', 'nodeunit-testresult');
-
-    setText(userAgent, navigator.userAgent);
-
-    nodeunit.runModules(modules, {
-        moduleStart: function (name) {
-            /*var mheading = document.createElement('h2');
-            mheading.innerText = name;
-            results.appendChild(mheading);
-            module = document.createElement('ol');
-            results.appendChild(module);*/
-        },
-        testDone: function (name, assertions) {
-            var test = document.createElement('li');
-            var strong = document.createElement('strong');
-            strong.innerHTML = name + ' <b style="color: black;">(' +
-                '<b class="fail">' + assertions.failures() + '</b>, ' +
-                '<b class="pass">' + assertions.passes() + '</b>, ' +
-                assertions.length +
-            ')</b>';
-            test.className = assertions.failures() ? 'fail': 'pass';
-            test.appendChild(strong);
-
-            var aList = document.createElement('ol');
-            aList.style.display = 'none';
-            test.onclick = function () {
-                var d = aList.style.display;
-                aList.style.display = (d == 'none') ? 'block': 'none';
-            };
-            for (var i=0; i<assertions.length; i++) {
-                var li = document.createElement('li');
-                var a = assertions[i];
-                if (a.failed()) {
-                    li.innerHTML = (a.message || a.method || 'no message') +
-                        '<pre>' + (a.error.stack || a.error) + '</pre>';
-                    li.className = 'fail';
-                }
-                else {
-                    li.innerHTML = a.message || a.method || 'no message';
-                    li.className = 'pass';
-                }
-                aList.appendChild(li);
-            }
-            test.appendChild(aList);
-            tests.appendChild(test);
-        },
-        done: function (assertions) {
-            var end = new Date().getTime();
-            var duration = end - start;
-
-            var failures = assertions.failures();
-            banner.className = failures ? 'fail': 'pass';
-
-            result.innerHTML = 'Tests completed in ' + duration +
-                ' milliseconds.<br/><span class="passed">' +
-                assertions.passes() + '</span> assertions of ' +
-                '<span class="all">' + assertions.length + '<span> passed, ' +
-                assertions.failures() + ' failed.';
-        }
-    });
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/default.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/default.js b/bin/node_modules/nodeunit/lib/reporters/default.js
deleted file mode 100644
index 279f560..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/default.js
+++ /dev/null
@@ -1,123 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var nodeunit = require('../nodeunit'),
-    utils = require('../utils'),
-    fs = require('fs'),
-    track = require('../track'),
-    path = require('path');
-    AssertionError = require('../assert').AssertionError;
-
-/**
- * Reporter info string
- */
-
-exports.info = "Default tests reporter";
-
-
-/**
- * Run all tests within each module, reporting the results to the command-line.
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (files, options) {
-
-    if (!options) {
-        // load default options
-        var content = fs.readFileSync(
-            __dirname + '/../../bin/nodeunit.json', 'utf8'
-        );
-        options = JSON.parse(content);
-    }
-
-    var error = function (str) {
-        return options.error_prefix + str + options.error_suffix;
-    };
-    var ok    = function (str) {
-        return options.ok_prefix + str + options.ok_suffix;
-    };
-    var bold  = function (str) {
-        return options.bold_prefix + str + options.bold_suffix;
-    };
-    var assertion_message = function (str) {
-        return options.assertion_prefix + str + options.assertion_suffix;
-    };
-
-    var start = new Date().getTime();
-    var paths = files.map(function (p) {
-        return path.join(process.cwd(), p);
-    });
-    var tracker = track.createTracker(function (tracker) {
-        if (tracker.unfinished()) {
-            console.log('');
-            console.log(error(bold(
-                'FAILURES: Undone tests (or their setups/teardowns): '
-            )));
-            var names = tracker.names();
-            for (var i = 0; i < names.length; i += 1) {
-                console.log('- ' + names[i]);
-            }
-            console.log('');
-            console.log('To fix this, make sure all tests call test.done()');
-            process.reallyExit(tracker.unfinished());
-        }
-    });
-
-    nodeunit.runFiles(paths, {
-        testspec: options.testspec,
-        moduleStart: function (name) {
-            console.log('\n' + bold(name));
-        },
-        testDone: function (name, assertions) {
-            tracker.remove(name);
-
-            if (!assertions.failures()) {
-                console.log('✔ ' + name);
-            }
-            else {
-                console.log(error('✖ ' + name) + '\n');
-                assertions.forEach(function (a) {
-                    if (a.failed()) {
-                        a = utils.betterErrors(a);
-                        if (a.error instanceof AssertionError && a.message) {
-                            console.log(
-                                'Assertion Message: ' +
-                                assertion_message(a.message)
-                            );
-                        }
-                        console.log(a.error.stack + '\n');
-                    }
-                });
-            }
-        },
-        done: function (assertions, end) {
-            var end = end || new Date().getTime();
-            var duration = end - start;
-            if (assertions.failures()) {
-                console.log(
-                    '\n' + bold(error('FAILURES: ')) + assertions.failures() +
-                    '/' + assertions.length + ' assertions failed (' +
-                    assertions.duration + 'ms)'
-                );
-            }
-            else {
-                console.log(
-                   '\n' + bold(ok('OK: ')) + assertions.length +
-                   ' assertions (' + assertions.duration + 'ms)'
-                );
-            }
-        },
-        testStart: function(name) {
-            tracker.put(name);
-        }
-    });
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/html.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/html.js b/bin/node_modules/nodeunit/lib/reporters/html.js
deleted file mode 100644
index 05fb403..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/html.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var nodeunit = require('../nodeunit'),
-    utils = require('../utils'),
-    fs = require('fs'),
-    path = require('path'),
-    AssertionError = require('assert').AssertionError;
-
-/**
- * Reporter info string
- */
-
-exports.info = "Report tests result as HTML";
-
-/**
- * Run all tests within each module, reporting the results to the command-line.
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (files, options) {
-
-    var start = new Date().getTime();
-    var paths = files.map(function (p) {
-        return path.join(process.cwd(), p);
-    });
-
-    console.log('<html>');
-    console.log('<head>');
-    console.log('<title></title>');
-    console.log('<style type="text/css">');
-    console.log('body { font: 12px Helvetica Neue }');
-    console.log('h2 { margin:0 ; padding:0 }');
-    console.log('pre { font: 11px Andale Mono; margin-left: 1em; padding-left: 1em; margin-top:0; font-size:smaller;}');
-    console.log('.assertion_message { margin-left: 1em; }');
-    console.log('  ol {' +
-    '	list-style: none;' +
-    '	margin-left: 1em;' +
-    '	padding-left: 1em;' +
-    '	text-indent: -1em;' +
-    '}');
-    console.log('  ol li.pass:before { content: "\\2714 \\0020"; }');
-    console.log('  ol li.fail:before { content: "\\2716 \\0020"; }');
-    console.log('</style>');
-    console.log('</head>');
-    console.log('<body>');
-    nodeunit.runFiles(paths, {
-        testspec: options.testspec,
-        moduleStart: function (name) {
-            console.log('<h2>' + name + '</h2>');
-            console.log('<ol>');
-        },
-        testDone: function (name, assertions) {
-            if (!assertions.failures()) {
-                console.log('<li class="pass">' + name + '</li>');
-            }
-            else {
-                console.log('<li class="fail">' + name);
-                assertions.forEach(function (a) {
-                    if (a.failed()) {
-                        a = utils.betterErrors(a);
-                        if (a.error instanceof AssertionError && a.message) {
-                            console.log('<div class="assertion_message">' +
-                                'Assertion Message: ' + a.message +
-                            '</div>');
-                        }
-                        console.log('<pre>');
-                        console.log(a.error.stack);
-                        console.log('</pre>');
-                    }
-                });
-                console.log('</li>');
-            }
-        },
-        moduleDone: function () {
-            console.log('</ol>');
-        },
-        done: function (assertions) {
-            var end = new Date().getTime();
-            var duration = end - start;
-            if (assertions.failures()) {
-                console.log(
-                    '<h3>FAILURES: '  + assertions.failures() +
-                    '/' + assertions.length + ' assertions failed (' +
-                    assertions.duration + 'ms)</h3>'
-                );
-            }
-            else {
-                console.log(
-                    '<h3>OK: ' + assertions.length +
-                    ' assertions (' + assertions.duration + 'ms)</h3>'
-                );
-            }
-            console.log('</body>');
-        }
-    });
-
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/index.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/index.js b/bin/node_modules/nodeunit/lib/reporters/index.js
deleted file mode 100644
index bbaf800..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/index.js
+++ /dev/null
@@ -1,9 +0,0 @@
-module.exports = {
-    'junit': require('./junit'),
-    'default': require('./default'),
-    'skip_passed': require('./skip_passed'),
-    'minimal': require('./minimal'),
-    'html': require('./html')
-    // browser test reporter is not listed because it cannot be used
-    // with the command line tool, only inside a browser.
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/junit.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/junit.js b/bin/node_modules/nodeunit/lib/reporters/junit.js
deleted file mode 100644
index a542c69..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/junit.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var nodeunit = require('../nodeunit'),
-    utils = require('../utils'),
-    fs = require('fs'),
-    path = require('path'),
-    async = require('../../deps/async'),
-    AssertionError = require('assert').AssertionError,
-    child_process = require('child_process'),
-    ejs = require('../../deps/ejs');
-
-
-/**
- * Reporter info string
- */
-
-exports.info = "jUnit XML test reports";
-
-
-/**
- * Ensures a directory exists using mkdir -p.
- *
- * @param {String} path
- * @param {Function} callback
- * @api private
- */
-
-var ensureDir = function (path, callback) {
-    var mkdir = child_process.spawn('mkdir', ['-p', path]);
-    mkdir.on('error', function (err) {
-        callback(err);
-        callback = function(){};
-    });
-    mkdir.on('exit', function (code) {
-        if (code === 0) callback();
-        else callback(new Error('mkdir exited with code: ' + code));
-    });
-};
-
-
-/**
- * Returns absolute version of a path. Relative paths are interpreted
- * relative to process.cwd() or the cwd parameter. Paths that are already
- * absolute are returned unaltered.
- *
- * @param {String} p
- * @param {String} cwd
- * @return {String}
- * @api public
- */
-
-var abspath = function (p, /*optional*/cwd) {
-    if (p[0] === '/') return p;
-    cwd = cwd || process.cwd();
-    return path.normalize(path.join(cwd, p));
-};
-
-
-/**
- * Run all tests within each module, reporting the results to the command-line,
- * then writes out junit-compatible xml documents.
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (files, opts, callback) {
-    if (!opts.output) {
-        console.error(
-            'Error: No output directory defined.\n' +
-            '\tEither add an "output" property to your nodeunit.json config ' +
-            'file, or\n\tuse the --output command line option.'
-        );
-        return;
-    }
-    opts.output = abspath(opts.output);
-    var error = function (str) {
-        return opts.error_prefix + str + opts.error_suffix;
-    };
-    var ok    = function (str) {
-        return opts.ok_prefix + str + opts.ok_suffix;
-    };
-    var bold  = function (str) {
-        return opts.bold_prefix + str + opts.bold_suffix;
-    };
-
-    var start = new Date().getTime();
-    var paths = files.map(function (p) {
-        return path.join(process.cwd(), p);
-    });
-
-    var modules = {}
-    var curModule;
-
-    nodeunit.runFiles(paths, {
-        testspec: opts.testspec,
-        moduleStart: function (name) {
-            curModule = {
-                errorCount: 0,
-                failureCount: 0,
-                tests: 0,
-                testcases: [],
-                name: name
-            };
-            modules[name] = curModule;
-        },
-        testDone: function (name, assertions) {
-            var testcase = {name: name};
-            for (var i=0; i<assertions.length; i++) {
-                var a = assertions[i];
-                if (a.failed()) {
-                    a = utils.betterErrors(a);
-                    testcase.failure = {
-                        message: a.message,
-                        backtrace: a.error.stack
-                    };
-
-                    if (a.error instanceof AssertionError) {
-                        curModule.failureCount++;
-                    }
-                    else {
-                        curModule.errorCount++;
-                    }
-                    break;
-                }
-            }
-            curModule.tests++;
-            curModule.testcases.push(testcase);
-        },
-        done: function (assertions) {
-            var end = new Date().getTime();
-            var duration = end - start;
-
-            ensureDir(opts.output, function (err) {
-                var tmpl = __dirname + "/../../share/junit.xml.ejs";
-                fs.readFile(tmpl, function (err, data) {
-                    if (err) throw err;
-                    var tmpl = data.toString();
-
-                    async.forEach(Object.keys(modules), function (k, cb) {
-                        var module = modules[k];
-                        var rendered = ejs.render(tmpl, {
-                            locals: {suites: [module]}
-                        });
-                        var filename = path.join(
-                            opts.output,
-                            module.name + '.xml'
-                        );
-                        console.log('Writing ' + filename);
-                        fs.writeFile(filename, rendered, cb);
-                    },
-                    function (err) {
-                        if (err) throw err;
-                        else if (assertions.failures()) {
-                            console.log(
-                                '\n' + bold(error('FAILURES: ')) +
-                                assertions.failures() + '/' +
-                                assertions.length + ' assertions failed (' +
-                                assertions.duration + 'ms)'
-                            );
-                        }
-                        else {
-                            console.log(
-                                '\n' + bold(ok('OK: ')) + assertions.length +
-                                ' assertions (' + assertions.duration + 'ms)'
-                            );
-                        }
-                    });
-
-                });
-            });
-
-        }
-    });
-}

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/minimal.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/minimal.js b/bin/node_modules/nodeunit/lib/reporters/minimal.js
deleted file mode 100644
index 2ac5a6b..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/minimal.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var nodeunit = require('../nodeunit'),
-    utils = require('../utils'),
-    fs = require('fs'),
-    path = require('path'),
-    AssertionError = require('assert').AssertionError;
-
-/**
- * Reporter info string
- */
-
-exports.info = "Pretty minimal output";
-
-/**
- * Run all tests within each module, reporting the results to the command-line.
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (files, options) {
-
-    if (!options) {
-        // load default options
-        var content = fs.readFileSync(
-            __dirname + '/../../bin/nodeunit.json', 'utf8'
-        );
-        options = JSON.parse(content);
-    }
-
-    var red   = function (str) {
-        return options.error_prefix + str + options.error_suffix;
-    };
-    var green = function (str) {
-        return options.ok_prefix + str + options.ok_suffix;
-    };
-    var magenta = function (str) {
-        return options.assertion_prefix + str + options.assertion_suffix;
-    };
-    var bold  = function (str) {
-        return options.bold_prefix + str + options.bold_suffix;
-    };
-
-    var start = new Date().getTime();
-    var paths = files.map(function (p) {
-        return path.join(process.cwd(), p);
-    });
-
-    nodeunit.runFiles(paths, {
-        testspec: options.testspec,
-        moduleStart: function (name) {
-            process.stdout.write(bold(name) + ': ');
-        },
-        moduleDone: function (name, assertions) {
-            console.log('');
-            if (assertions.failures()) {
-                assertions.forEach(function (a) {
-                    if (a.failed()) {
-                        a = utils.betterErrors(a);
-                        if (a.error instanceof AssertionError && a.message) {
-                            console.log(
-                                'Assertion in test ' + bold(a.testname) + ': ' +
-                                magenta(a.message)
-                            );
-                        }
-                        console.log(a.error.stack + '\n');
-                    }
-                });
-            }
-
-        },
-        testStart: function () {
-        },
-        testDone: function (name, assertions) {
-            if (!assertions.failures()) {
-                process.stdout.write('.');
-            }
-            else {
-                process.stdout.write(red('F'));
-                assertions.forEach(function (assertion) {
-                    assertion.testname = name;
-                });
-            }
-        },
-        done: function (assertions) {
-            var end = new Date().getTime();
-            var duration = end - start;
-            if (assertions.failures()) {
-                console.log(
-                    '\n' + bold(red('FAILURES: ')) + assertions.failures() +
-                    '/' + assertions.length + ' assertions failed (' +
-                    assertions.duration + 'ms)'
-                );
-            }
-            else {
-                console.log(
-                    '\n' + bold(green('OK: ')) + assertions.length +
-                    ' assertions (' + assertions.duration + 'ms)'
-                );
-            }
-        }
-    });
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/reporters/skip_passed.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/reporters/skip_passed.js b/bin/node_modules/nodeunit/lib/reporters/skip_passed.js
deleted file mode 100644
index 598dbb1..0000000
--- a/bin/node_modules/nodeunit/lib/reporters/skip_passed.js
+++ /dev/null
@@ -1,105 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var nodeunit = require('../nodeunit'),
-    utils = require('../utils'),
-    fs = require('fs'),
-    path = require('path'),
-    AssertionError = require('assert').AssertionError;
-
-/**
- * Reporter info string
- */
-
-exports.info = "Skip passed tests output";
-
-/**
- * Run all tests within each module, reporting the results to the command-line.
- *
- * @param {Array} files
- * @api public
- */
-
-exports.run = function (files, options) {
-
-    if (!options) {
-        // load default options
-        var content = fs.readFileSync(
-            __dirname + '/../../bin/nodeunit.json', 'utf8'
-        );
-        options = JSON.parse(content);
-    }
-
-    var error = function (str) {
-        return options.error_prefix + str + options.error_suffix;
-    };
-    var ok    = function (str) {
-        return options.ok_prefix + str + options.ok_suffix;
-    };
-    var bold  = function (str) {
-        return options.bold_prefix + str + options.bold_suffix;
-    };
-    var assertion_message = function (str) {
-        return options.assertion_prefix + str + options.assertion_suffix;
-    };
-
-    var start = new Date().getTime();
-    var paths = files.map(function (p) {
-        return path.join(process.cwd(), p);
-    });
-
-    nodeunit.runFiles(paths, {
-        testspec: options.testspec,
-        moduleStart: function (name) {
-            console.log('\n' + bold(name));
-        },
-        testDone: function (name, assertions) {
-            if (assertions.failures()) {
-                console.log(error('✖ ' + name) + '\n');
-                assertions.forEach(function (a) {
-                    if (a.failed()) {
-                        a = utils.betterErrors(a);
-                        if (a.error instanceof AssertionError && a.message) {
-                            console.log(
-                                'Assertion Message: ' + assertion_message(a.message)
-                            );
-                        }
-                        console.log(a.error.stack + '\n');
-                    }
-                });
-            }
-        },
-        moduleDone: function (name, assertions) {
-            if (!assertions.failures()) {
-                console.log('✔ all tests passed');
-            }
-            else {
-                console.log(error('✖ some tests failed'));
-            }
-        },
-        done: function (assertions) {
-            var end = new Date().getTime();
-            var duration = end - start;
-            if (assertions.failures()) {
-                console.log(
-                    '\n' + bold(error('FAILURES: ')) + assertions.failures() +
-                    '/' + assertions.length + ' assertions failed (' +
-                    assertions.duration + 'ms)'
-                );
-            }
-            else {
-                console.log(
-                    '\n' + bold(ok('OK: ')) + assertions.length +
-                    ' assertions (' + assertions.duration + 'ms)'
-                );
-            }
-        }
-    });
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/track.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/track.js b/bin/node_modules/nodeunit/lib/track.js
deleted file mode 100644
index 5af98ad..0000000
--- a/bin/node_modules/nodeunit/lib/track.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*!
- * Simple util module to track tests. Adds a process.exit hook to print
- * the undone tests.
- */
-
-
-exports.createTracker = function (on_exit) {
-    var names = {};
-    var tracker = {
-        names: function () {
-            var arr = [];
-            for (var k in names) {
-                if (names.hasOwnProperty(k)) {
-                    arr.push(k);
-                }
-            }
-            return arr;
-        },
-        unfinished: function () {
-            return tracker.names().length;
-        },
-        put: function (testname) {
-            names[testname] = testname;
-        },
-        remove: function (testname) {
-            delete names[testname];
-        }
-    };
-
-    process.on('exit', function() {
-        on_exit = on_exit || exports.default_on_exit;
-        on_exit(tracker);
-    });
-
-    return tracker;
-};
-
-exports.default_on_exit = function (tracker) {
-    if (tracker.unfinished()) {
-        console.log('');
-        console.log('Undone tests (or their setups/teardowns): ');
-        var names = tracker.names();
-        for (var i = 0; i < names.length; i += 1) {
-            console.log(names[i]);
-        }
-        process.reallyExit(tracker.unfinished());
-    }
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/types.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/types.js b/bin/node_modules/nodeunit/lib/types.js
deleted file mode 100644
index 1f9b12d..0000000
--- a/bin/node_modules/nodeunit/lib/types.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- *
- * THIS FILE SHOULD BE BROWSER-COMPATIBLE JS!
- * You can use @REMOVE_LINE_FOR_BROWSER to remove code from the browser build.
- * Only code on that line will be removed, its mostly to avoid requiring code
- * that is node specific
- */
-
-/**
- * Module dependencies
- */
-
-var assert = require('./assert'),     //@REMOVE_LINE_FOR_BROWSER
-    async = require('../deps/async'); //@REMOVE_LINE_FOR_BROWSER
-
-
-/**
- * Creates assertion objects representing the result of an assert call.
- * Accepts an object or AssertionError as its argument.
- *
- * @param {object} obj
- * @api public
- */
-
-exports.assertion = function (obj) {
-    return {
-        method: obj.method || '',
-        message: obj.message || (obj.error && obj.error.message) || '',
-        error: obj.error,
-        passed: function () {
-            return !this.error;
-        },
-        failed: function () {
-            return Boolean(this.error);
-        }
-    };
-};
-
-/**
- * Creates an assertion list object representing a group of assertions.
- * Accepts an array of assertion objects.
- *
- * @param {Array} arr
- * @param {Number} duration
- * @api public
- */
-
-exports.assertionList = function (arr, duration) {
-    var that = arr || [];
-    that.failures = function () {
-        var failures = 0;
-        for (var i=0; i<this.length; i++) {
-            if (this[i].failed()) failures++;
-        }
-        return failures;
-    };
-    that.passes = function () {
-        return that.length - that.failures();
-    };
-    that.duration = duration || 0;
-    return that;
-};
-
-/**
- * Create a wrapper function for assert module methods. Executes a callback
- * after the it's complete with an assertion object representing the result.
- *
- * @param {Function} callback
- * @api private
- */
-
-var assertWrapper = function (callback) {
-    return function (new_method, assert_method, arity) {
-        return function () {
-            var message = arguments[arity-1];
-            var a = exports.assertion({method: new_method, message: message});
-            try {
-                assert[assert_method].apply(null, arguments);
-            }
-            catch (e) {
-                a.error = e;
-            }
-            callback(a);
-        };
-    };
-};
-
-/**
- * Creates the 'test' object that gets passed to every test function.
- * Accepts the name of the test function as its first argument, followed by
- * the start time in ms, the options object and a callback function.
- *
- * @param {String} name
- * @param {Number} start
- * @param {Object} options
- * @param {Function} callback
- * @api public
- */
-
-exports.test = function (name, start, options, callback) {
-    var expecting;
-    var a_list = [];
-
-    var wrapAssert = assertWrapper(function (a) {
-        a_list.push(a);
-        if (options.log) {
-            async.nextTick(function () {
-                options.log(a);
-            });
-        }
-    });
-
-    var test = {
-        done: function (err) {
-            if (expecting !== undefined && expecting !== a_list.length) {
-                var e = new Error(
-                    'Expected ' + expecting + ' assertions, ' +
-                    a_list.length + ' ran'
-                );
-                var a1 = exports.assertion({method: 'expect', error: e});
-                a_list.push(a1);
-                if (options.log) {
-                    async.nextTick(function () {
-                        options.log(a1);
-                    });
-                }
-            }
-            if (err) {
-                var a2 = exports.assertion({error: err});
-                a_list.push(a2);
-                if (options.log) {
-                    async.nextTick(function () {
-                        options.log(a2);
-                    });
-                }
-            }
-            var end = new Date().getTime();
-            async.nextTick(function () {
-                var assertion_list = exports.assertionList(a_list, end - start);
-                options.testDone(name, assertion_list);
-                callback(null, a_list);
-            });
-        },
-        ok: wrapAssert('ok', 'ok', 2),
-        same: wrapAssert('same', 'deepEqual', 3),
-        equals: wrapAssert('equals', 'equal', 3),
-        expect: function (num) {
-            expecting = num;
-        },
-        _assertion_list: a_list
-    };
-    // add all functions from the assert module
-    for (var k in assert) {
-        if (assert.hasOwnProperty(k)) {
-            test[k] = wrapAssert(k, k, assert[k].length);
-        }
-    }
-    return test;
-};
-
-/**
- * Ensures an options object has all callbacks, adding empty callback functions
- * if any are missing.
- *
- * @param {Object} opt
- * @return {Object}
- * @api public
- */
-
-exports.options = function (opt) {
-    var optionalCallback = function (name) {
-        opt[name] = opt[name] || function () {};
-    };
-
-    optionalCallback('moduleStart');
-    optionalCallback('moduleDone');
-    optionalCallback('testStart');
-    optionalCallback('testDone');
-    //optionalCallback('log');
-
-    // 'done' callback is not optional.
-
-    return opt;
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/lib/utils.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/lib/utils.js b/bin/node_modules/nodeunit/lib/utils.js
deleted file mode 100644
index 8797b43..0000000
--- a/bin/node_modules/nodeunit/lib/utils.js
+++ /dev/null
@@ -1,209 +0,0 @@
-/*!
- * Nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- */
-
-/**
- * Module dependencies
- */
-
-var async = require('../deps/async'),
-    fs = require('fs'),
-    util = require('util'),
-    Script = process.binding('evals').Script,
-    http = require('http');
-
-
-/**
- * Detect if coffee-script is available and search for .coffee as an
- * extension in modulePaths if it is.
- */
-
-var extensionPattern;
-try {
-    require('coffee-script');
-    extensionPattern = /\.(?:js|coffee)$/;
-}
-catch (e) {
-    extensionPattern = /\.js$/;
-}
-
-
-/**
- * Finds all modules at each path in an array, If a path is a directory, it
- * returns all supported file types inside it. This only reads 1 level deep in
- * the directory and does not recurse through sub-directories.
- *
- * The extension (.js, .coffee etc) is stripped from the filenames so they can
- * simply be require()'ed.
- *
- * @param {Array} paths
- * @param {Function} callback
- * @api public
- */
-
-exports.modulePaths = function (paths, callback) {
-    async.concat(paths, function (p, cb) {
-        fs.stat(p, function (err, stats) {
-            if (err) {
-                return cb(err);
-            }
-            if (stats.isFile()) {
-                return cb(null, [p]);
-            }
-            if (stats.isDirectory()) {
-                fs.readdir(p, function (err, files) {
-                    if (err) {
-                        return cb(err);
-                    }
-
-                    // filter out any filenames with unsupported extensions
-                    var modules = files.filter(function (filename) {
-                        return extensionPattern.exec(filename);
-                    });
-
-                    // remove extension from module name and prepend the
-                    // directory path
-                    var fullpaths = modules.map(function (filename) {
-                        var mod_name = filename.replace(extensionPattern, '');
-                        return [p, mod_name].join('/');
-                    });
-
-                    // sort filenames here, because Array.map changes order
-                    fullpaths.sort();
-
-                    cb(null, fullpaths);
-                });
-            }
-        });
-    }, callback);
-};
-
-/**
- * Evaluates JavaScript files in a sandbox, returning the context. The first
- * argument can either be a single filename or an array of filenames. If
- * multiple filenames are given their contents are concatenated before
- * evalution. The second argument is an optional context to use for the sandbox.
- *
- * @param files
- * @param {Object} sandbox
- * @return {Object}
- * @api public
- */
-
-exports.sandbox = function (files, /*optional*/sandbox) {
-    var source, script, result;
-    if (!(files instanceof Array)) {
-        files = [files];
-    }
-    source = files.map(function (file) {
-        return fs.readFileSync(file, 'utf8');
-    }).join('');
-
-    if (!sandbox) {
-        sandbox = {};
-    }
-    script = new Script(source);
-    result = script.runInNewContext(sandbox);
-    return sandbox;
-};
-
-/**
- * Provides a http request, response testing environment.
- *
- * Example:
- *
- *  var httputil = require('nodeunit').utils.httputil
- *  exports.testSomething = function(test) {
- *    httputil(function (req, resp) {
- *        resp.writeHead(200, {});
- *        resp.end('test data');
- *      },
- *      function(server, client) {
- *        client.fetch('GET', '/', {}, function(resp) {
- *          test.equal('test data', resp.body);
- *          server.close();
- *          test.done();
- *        })
- *      });
- *  };
- *
- * @param {Function} cgi
- * @param {Function} envReady
- * @api public
- */
-exports.httputil = function (cgi, envReady) {
-    var hostname = process.env.HOSTNAME || 'localhost';
-    var port = process.env.PORT || 3000;
-
-    var server = http.createServer(cgi);
-    server.listen(port, hostname);
-
-    var client = http.createClient(port, hostname);
-    client.fetch = function (method, path, headers, respReady) {
-        var request = this.request(method, path, headers);
-        request.end();
-        request.on('response', function (response) {
-            response.setEncoding('utf8');
-            response.on('data', function (chunk) {
-                if (response.body) {
-                    response.body += chunk;
-                } else {
-                    response.body = chunk;
-                }
-            });
-            response.on('end', function () {
-                if (response.headers['content-type'] === 'application/json') {
-                    response.bodyAsObject = JSON.parse(response.body);
-                }
-                respReady(response);
-            });
-        });
-    };
-
-    process.nextTick(function () {
-        if (envReady && typeof envReady === 'function') {
-            envReady(server, client);
-        }
-    });
-};
-
-
-/**
- * Improves formatting of AssertionError messages to make deepEqual etc more
- * readable.
- *
- * @param {Object} assertion
- * @return {Object}
- * @api public
- */
-
-exports.betterErrors = function (assertion) {
-    if (!assertion.error) return;
-
-    var e = assertion.error;
-    // deepEqual error message is a bit sucky, lets improve it!
-    // e.actual and e.expected could be null or undefined, so
-    // using getOwnPropertyDescriptor to see if they exist:
-    if (Object.getOwnPropertyDescriptor(e, 'actual') &&
-        Object.getOwnPropertyDescriptor(e, 'expected')) {
-
-        // alexgorbatchev 2010-10-22 :: Added a bit of depth to inspection
-        var actual = util.inspect(e.actual, false, 10).replace(/\n$/, '');
-        var expected = util.inspect(e.expected, false, 10).replace(/\n$/, '');
-        var multiline = (
-            actual.indexOf('\n') !== -1 ||
-            expected.indexOf('\n') !== -1
-        );
-        var spacing = (multiline ? '\n' : ' ');
-        e._message = e.message;
-        e.stack = (
-            e.name + ':' + spacing +
-            actual + spacing + e.operator + spacing +
-            expected + '\n' +
-            e.stack.split('\n').slice(1).join('\n')
-        );
-    }
-    return assertion;
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/man1/nodeunit.1
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/man1/nodeunit.1 b/bin/node_modules/nodeunit/man1/nodeunit.1
deleted file mode 100644
index 450772d..0000000
--- a/bin/node_modules/nodeunit/man1/nodeunit.1
+++ /dev/null
@@ -1,95 +0,0 @@
-.\" Generated with Ronnjs/v0.1
-.\" http://github.com/kapouer/ronnjs/
-.
-.TH "NODEUNIT" "1" "October 2010" "" ""
-.
-.SH "NAME"
-\fBnodeunit\fR \-\- simple node\.js unit testing tool
-.
-.SH "SYNOPSIS"
-.
-.nf
-nodeunit [options] <file\-or\-directory> [<file\-or\-directory> \.\.\.]
-.
-.fi
-.
-.SH "DESCRIPTION"
-Nodeunit is a simple unit testing tool based on the node\.js assert module\.
-.
-.IP "\(bu" 4
-Simple to use
-.
-.IP "\(bu" 4
-Just export the tests from a module
-.
-.IP "\(bu" 4
-Helps you avoid common pitfalls when testing asynchronous code
-.
-.IP "\(bu" 4
-Easy to add test cases with setUp and tearDown functions if you wish
-.
-.IP "\(bu" 4
-Allows the use of mocks and stubs
-.
-.IP "" 0
-.
-.SH "OPTIONS"
-  \fB\-\-config FILE\fR:
-.
-.br
-      Load config options from a JSON file, allows the customisation
-      of color schemes for the default test reporter etc\.
-      See bin/nodeunit\.json for current available options\.
-.
-.P
-  \fB\-\-reporter FILE\fR:
-.
-.br
-      You can set the test reporter to a custom module or on of the modules
-      in nodeunit/lib/reporters, when omitted, the default test runner is used\.
-.
-.P
-  \fB\-\-list\-reporters\fR:
-.
-.br
-      List available build\-in reporters\.
-.
-.P
-  \fB\-h\fR, \fB\-\-help\fR:
-.
-.br
-      Display the help and exit\.
-.
-.P
-  \fB\-v\fR, \fB\-\-version\fR:
-.
-.br
-      Output version information and exit\.
-.
-.P
-  \fB<file\-or\-directory>\fR:
-      You can run nodeunit on specific files or on all \fI*\.js\fR files inside
-.
-.br
-      a directory\.
-.
-.SH "AUTHORS"
-Written by Caolan McMahon and other nodeunit contributors\.
-.
-.br
-Contributors list: \fIhttp://github\.com/caolan/nodeunit/contributors\fR\|\.
-.
-.SH "REPORTING BUGS"
-Report nodeunit bugs to \fIhttp://github\.com/caolan/nodeunit/issues\fR\|\.
-.
-.SH "COPYRIGHT"
-Copyright © 2010 Caolan McMahon\.
-.
-.br
-Nodeunit has been released under the MIT license:
-.
-.br
-\fIhttp://github\.com/caolan/nodeunit/raw/master/LICENSE\fR\|\.
-.
-.SH "SEE ALSO"
-node(1)

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/nodelint.cfg
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/nodelint.cfg b/bin/node_modules/nodeunit/nodelint.cfg
deleted file mode 100644
index 457a967..0000000
--- a/bin/node_modules/nodeunit/nodelint.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-var options = {
-    indent: 4,
-    onevar: false
-};

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/package.json
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/package.json b/bin/node_modules/nodeunit/package.json
deleted file mode 100644
index 63d723f..0000000
--- a/bin/node_modules/nodeunit/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{ "name": "nodeunit"
-, "description": "Easy unit testing for node.js and the browser."
-, "maintainers":
-  [ { "name": "Caolan McMahon"
-    , "web": "https://github.com/caolan"
-    }
-  ]
-, "contributors" :
-  [ { "name": "Alex Gorbatchev"
-    , "web": "https://github.com/alexgorbatchev"
-    }
-  , { "name": "Alex Wolfe"
-    , "web": "https://github.com/alexkwolfe"
-    }
-  , { "name": "Carl Fürstenberg"
-    , "web": "https://github.com/azatoth"
-    }
-  , { "name": "Gerad Suyderhoud"
-    , "web": "https://github.com/gerad"
-    }
-  , { "name": "Kadir Pekel"
-    , "web": "https://github.com/coffeemate"
-    }
-  , { "name": "Oleg Efimov"
-    , "web": "https://github.com/Sannis"
-    }
-  , { "name": "Orlando Vazquez"
-    , "web": "https://github.com/orlandov"
-    }
-  , { "name": "Ryan Dahl"
-    , "web": "https://github.com/ry"
-    }
-  , { "name": "Sam Stephenson"
-    , "web": "https://github.com/sstephenson"
-    }
-  , { "name": "Thomas Mayfield"
-    , "web": "https://github.com/thegreatape"
-    }
-  , { "name": "Elijah Insua <tm...@gmail.com>",
-      "web": "http://tmpvar.com"
-    }
-  ]
-, "version": "0.5.3"
-, "repository" :
-  { "type" : "git"
-  , "url" : "http://github.com/caolan/nodeunit.git"
-  }
-, "bugs" : { "web" : "http://github.com/caolan/nodeunit/issues" }
-, "licenses" :
-  [ { "type" : "MIT"
-    , "url" : "http://github.com/caolan/nodeunit/raw/master/LICENSE"
-    }
-  ]
-, "directories" : { "lib": "./lib", "doc" : "./doc", "man" : "./man1" }
-, "bin" : { "nodeunit" : "./bin/nodeunit" }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/share/junit.xml.ejs
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/share/junit.xml.ejs b/bin/node_modules/nodeunit/share/junit.xml.ejs
deleted file mode 100644
index c1db5bb..0000000
--- a/bin/node_modules/nodeunit/share/junit.xml.ejs
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<% for (var i=0; i < suites.length; i++) { %>
-  <% var suite=suites[i]; %>
-  <testsuite name="<%= suite.name %>"
-             errors="<%= suite.errorCount %>"
-             failures="<%= suite.failureCount %>"
-             tests="<%= suite.tests %>">
-    <% for (var j=0; j < suite.testcases.length; j++) { %>
-      <% var testcase=suites[i].testcases[j]; %>
-      <testcase name="<%= testcase.name %>">
-        <% if (testcase.failure) { %>
-          <failure message="<%= testcase.failure.message %>">
-            <% if (testcase.failure.backtrace) { %><%= testcase.failure.backtrace %><% } %>
-          </failure>
-        <% } %>
-      </testcase>
-    <% } %>
-  </testsuite>
-<% } %>

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/share/license.js
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/share/license.js b/bin/node_modules/nodeunit/share/license.js
deleted file mode 100644
index f0f326f..0000000
--- a/bin/node_modules/nodeunit/share/license.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- * Nodeunit
- * https://github.com/caolan/nodeunit
- * Copyright (c) 2010 Caolan McMahon
- * MIT Licensed
- *
- * json2.js
- * http://www.JSON.org/json2.js
- * Public Domain.
- * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
- */

http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/ea8d6b17/bin/node_modules/nodeunit/share/nodeunit.css
----------------------------------------------------------------------
diff --git a/bin/node_modules/nodeunit/share/nodeunit.css b/bin/node_modules/nodeunit/share/nodeunit.css
deleted file mode 100644
index 274434a..0000000
--- a/bin/node_modules/nodeunit/share/nodeunit.css
+++ /dev/null
@@ -1,70 +0,0 @@
-/*!
- * Styles taken from qunit.css
- */
-
-h1#nodeunit-header, h1.nodeunit-header {
-    padding: 15px;
-    font-size: large;
-    background-color: #06b;
-    color: white;
-    font-family: 'trebuchet ms', verdana, arial;
-    margin: 0;
-}
-
-h1#nodeunit-header a {
-    color: white;
-}
-
-h2#nodeunit-banner {
-    height: 2em;
-    border-bottom: 1px solid white;
-    background-color: #eee;
-    margin: 0;
-    font-family: 'trebuchet ms', verdana, arial;
-}
-h2#nodeunit-banner.pass {
-    background-color: green;
-}
-h2#nodeunit-banner.fail {
-    background-color: red;
-}
-
-h2#nodeunit-userAgent, h2.nodeunit-userAgent {
-    padding: 10px;
-    background-color: #eee;
-    color: black;
-    margin: 0;
-    font-size: small;
-    font-weight: normal;
-    font-family: 'trebuchet ms', verdana, arial;
-    font-size: 10pt;
-}
-
-div#nodeunit-testrunner-toolbar {
-    background: #eee;
-    border-top: 1px solid black;
-    padding: 10px;
-    font-family: 'trebuchet ms', verdana, arial;
-    margin: 0;
-    font-size: 10pt;
-}
-
-ol#nodeunit-tests {
-    font-family: 'trebuchet ms', verdana, arial;
-    font-size: 10pt;
-}
-ol#nodeunit-tests li strong {
-    cursor:pointer;
-}
-ol#nodeunit-tests .pass {
-    color: green;
-} 
-ol#nodeunit-tests .fail {
-    color: red;
-} 
-
-p#nodeunit-testresult {
-    margin-left: 1em;
-    font-size: 10pt;
-    font-family: 'trebuchet ms', verdana, arial;
-}