summaryrefslogtreecommitdiff
path: root/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test')
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/basic.js34
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/consistency.js36
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/async.json36
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/bcrypt.json56
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/coffee-script.json35
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/http-server.json53
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/movefile.json21
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/node-module_exist.json26
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/npm.json135
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/read-package-json.json27
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/request.json39
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/underscore.json17
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/github-urls.js46
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/normalize.js108
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/typo.js67
15 files changed, 736 insertions, 0 deletions
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/basic.js b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/basic.js
new file mode 100644
index 000000000..12c403ec7
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/basic.js
@@ -0,0 +1,34 @@
+var tap = require("tap")
+var normalize = require("../lib/normalize")
+var path = require("path")
+var fs = require("fs")
+
+tap.test("basic test", function (t) {
+ var p = path.resolve(__dirname, "./fixtures/read-package-json.json")
+ fs.readFile (p, function (err, contents) {
+ if (err) throw err;
+ var originalData = JSON.parse(contents.toString())
+ var data = JSON.parse(contents.toString())
+ normalize(data)
+ t.ok(data)
+ verifyFields(t, data, originalData)
+ t.end()
+ })
+})
+
+function verifyFields (t, normalized, original) {
+ t.equal(normalized.version, original.version, "Version field stays same")
+ t.equal(normalized._id, normalized.name + "@" + normalized.version, "It gets good id.")
+ t.equal(normalized.name, original.name, "Name stays the same.")
+ t.type(normalized.author, "object", "author field becomes object")
+ t.deepEqual(normalized.scripts, original.scripts, "scripts field (object) stays same")
+ t.equal(normalized.main, original.main)
+ // optional deps are folded in.
+ t.deepEqual(normalized.optionalDependencies,
+ original.optionalDependencies)
+ t.has(normalized.dependencies, original.optionalDependencies, "opt depedencies are copied into dependencies")
+ t.has(normalized.dependencies, original.dependencies, "regular depedencies stay in place")
+ t.deepEqual(normalized.devDependencies, original.devDependencies)
+ t.type(normalized.bugs, "object", "bugs should become object")
+ t.equal(normalized.bugs.url, "https://github.com/isaacs/read-package-json/issues")
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/consistency.js b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/consistency.js
new file mode 100644
index 000000000..8ae6b2730
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/consistency.js
@@ -0,0 +1,36 @@
+var tap = require("tap")
+var normalize = require("../lib/normalize")
+var path = require("path")
+var fs = require("fs")
+var _ = require("underscore")
+var async = require("async")
+
+var data, clonedData
+var warn
+
+tap.test("consistent normalization", function(t) {
+ path.resolve(__dirname, "./fixtures/read-package-json.json")
+ fs.readdir (__dirname + "/fixtures", function (err, entries) {
+ // entries = ['coffee-script.json'] // uncomment to limit to a specific file
+ verifyConsistency = function(entryName, next) {
+ warn = function(msg) {
+ // t.equal("",msg) // uncomment to have some kind of logging of warnings
+ }
+ filename = __dirname + "/fixtures/" + entryName
+ fs.readFile(filename, function(err, contents) {
+ if (err) return next(err)
+ data = JSON.parse(contents.toString())
+ normalize(data, warn)
+ clonedData = _.clone(data)
+ normalize(data, warn)
+ t.deepEqual(clonedData, data,
+ "Normalization of " + entryName + "is consistent.")
+ next(null)
+ }) // fs.readFile
+ } // verifyConsistency
+ async.forEach(entries, verifyConsistency, function(err) {
+ if (err) throw err
+ t.end()
+ })
+ }) // fs.readdir
+}) // tap.test \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/async.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/async.json
new file mode 100644
index 000000000..5e652a6c6
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/async.json
@@ -0,0 +1,36 @@
+{
+ "name": "async",
+ "description": "Higher-order functions and common patterns for asynchronous code",
+ "main": "./lib/async",
+ "author": "Caolan McMahon",
+ "version": "0.2.6",
+ "repository" : {
+ "type" : "git",
+ "url" : "http://github.com/caolan/async.git"
+ },
+ "bugs" : {
+ "url" : "http://github.com/caolan/async/issues"
+ },
+ "licenses" : [
+ {
+ "type" : "MIT",
+ "url" : "http://github.com/caolan/async/raw/master/LICENSE"
+ }
+ ],
+ "devDependencies": {
+ "nodeunit": ">0.0.0",
+ "uglify-js": "1.2.x",
+ "nodelint": ">0.0.0"
+ },
+ "jam": {
+ "main": "lib/async.js",
+ "include": [
+ "lib/async.js",
+ "README.md",
+ "LICENSE"
+ ]
+ },
+ "scripts": {
+ "test": "nodeunit test/test-async.js"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/bcrypt.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/bcrypt.json
new file mode 100644
index 000000000..56e6d81b3
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/bcrypt.json
@@ -0,0 +1,56 @@
+{
+ "name": "bcrypt",
+ "description": "A bcrypt library for NodeJS.",
+ "keywords": [
+ "bcrypt",
+ "password",
+ "auth",
+ "authentication",
+ "encryption",
+ "crypt",
+ "crypto"
+ ],
+ "main": "./bcrypt",
+ "version": "0.7.5",
+ "author": "Nick Campbell (http://github.com/ncb000gt)",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/ncb000gt/node.bcrypt.js.git"
+ },
+ "licenses": [
+ {
+ "type": "MIT"
+ }
+ ],
+ "bugs": {
+ "url": "http://github.com/ncb000gt/node.bcrypt.js/issues"
+ },
+ "scripts": {
+ "test": "node-gyp configure build && nodeunit test"
+ },
+ "dependencies": {
+ "bindings": "1.0.0"
+ },
+ "devDependencies": {
+ "nodeunit": ">=0.6.4"
+ },
+ "contributors": [
+ "Antonio Salazar Cardozo <savedfastcool@gmail.com> (https://github.com/Shadowfiend)",
+ "Van Nguyen <the.gol.effect@gmail.com> (https://github.com/thegoleffect)",
+ "David Trejo <david@dtrejo.com> (https://github.com/dtrejo)",
+ "Ben Glow <glen.low@pixelglow.com> (https://github.com/pixelglow)",
+ "NewITFarmer.com <> (https://github.com/newitfarmer)",
+ "Alfred Westerveld <alfredwesterveld@gmail.com> (https://github.com/alfredwesterveld)",
+ "Vincent Côté-Roy <vincentcr@gmail.com> (https://github.com/vincentcr)",
+ "Lloyd Hilaiel <lloyd@hilaiel.com> (https://github.com/lloyd)",
+ "Roman Shtylman <shtylman@gmail.com> (https://github.com/shtylman)",
+ "Vadim Graboys <dimva13@gmail.com> (https://github.com/vadimg)",
+ "Ben Noorduis <> (https://github.com/bnoordhuis)",
+ "Nate Rajlich <nathan@tootallnate.net> (https://github.com/tootallnate)",
+ "Sean McArthur <sean.monstar@gmail.com> (https://github.com/seanmonstar)",
+ "Fanie Oosthuysen <fanie.oosthuysen@gmail.com> (https://github.com/weareu)"
+ ]
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/coffee-script.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/coffee-script.json
new file mode 100644
index 000000000..a0b60a9d3
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/coffee-script.json
@@ -0,0 +1,35 @@
+{
+ "name": "coffee-script",
+ "description": "Unfancy JavaScript",
+ "keywords": ["javascript", "language", "coffeescript", "compiler"],
+ "author": "Jeremy Ashkenas",
+ "version": "1.6.2",
+ "licenses": [{
+ "type": "MIT",
+ "url": "https://raw.github.com/jashkenas/coffee-script/master/LICENSE"
+ }],
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "directories" : {
+ "lib" : "./lib/coffee-script"
+ },
+ "main" : "./lib/coffee-script/coffee-script",
+ "bin": {
+ "coffee": "./bin/coffee",
+ "cake": "./bin/cake"
+ },
+ "scripts": {
+ "test": "node ./bin/cake test"
+ },
+ "homepage": "http://coffeescript.org",
+ "bugs": "https://github.com/jashkenas/coffee-script/issues",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/jashkenas/coffee-script.git"
+ },
+ "devDependencies": {
+ "uglify-js": "~2.2",
+ "jison": ">=0.2.0"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/http-server.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/http-server.json
new file mode 100644
index 000000000..90c28863a
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/http-server.json
@@ -0,0 +1,53 @@
+{
+ "name": "http-server",
+ "preferGlobal": true,
+ "version": "0.3.0",
+ "author": "Nodejitsu <support@nodejitsu.com>",
+ "description": "a simple zero-configuration command-line http server",
+ "contributors": [
+ {
+ "name": "Marak Squires",
+ "email": "marak@nodejitsu.com"
+ }
+ ],
+ "bin": {
+ "http-server": "./bin/http-server"
+ },
+ "scripts": {
+ "start": "node ./bin/http-server",
+ "test": "vows --spec --isolate",
+ "predeploy": "echo This will be run before deploying the app",
+ "postdeploy": "echo This will be run after deploying the app"
+ },
+ "main": "./lib/http-server",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/nodejitsu/http-server.git"
+ },
+ "keywords": [
+ "cli",
+ "http",
+ "server"
+ ],
+ "dependencies" : {
+ "colors" : "*",
+ "flatiron" : "0.1.x",
+ "optimist" : "0.2.x",
+ "union" : "0.1.x",
+ "ecstatic" : "0.1.x",
+ "plates" : "https://github.com/flatiron/plates/tarball/master"
+ },
+ "analyze": false,
+ "devDependencies": {
+ "vows" : "0.5.x",
+ "request" : "2.1.x"
+ },
+ "bundledDependencies": [
+ "union",
+ "ecstatic"
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/movefile.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/movefile.json
new file mode 100644
index 000000000..593387570
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/movefile.json
@@ -0,0 +1,21 @@
+{
+ "name": "movefile",
+ "description": "rename implementation working over devices",
+ "version": "0.2.0",
+ "author": "yazgazan <yazgazan@gmail.com>",
+ "main": "./build/Release/movefile",
+ "keywords": ["move", "file", "rename"],
+ "repository": "git://github.com/yazgazan/movefile.git",
+ "directories": {
+ "lib": "./build/Release/"
+ },
+ "scripts": {
+ "install": "./node_modules/node-gyp/bin/node-gyp.js configure && ./node_modules/node-gyp/bin/node-gyp.js build"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "dependencies": {
+ "node-gyp": "~0.9.1"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/node-module_exist.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/node-module_exist.json
new file mode 100644
index 000000000..acc053825
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/node-module_exist.json
@@ -0,0 +1,26 @@
+{
+ "name": "node-module_exist",
+ "description": "Find if a NodeJS module is available to require or not",
+ "version": "0.0.1",
+ "main": "module_exist.js",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git@gist.github.com:3135914.git"
+ },
+ "homepage": "https://github.com/FGRibreau",
+ "author": {
+ "name": "Francois-Guillaume Ribreau",
+ "url": "http://fgribreau.com.com/"
+ },
+ "devDependencies": {
+ "nodeunit": "~0.7.4"
+ },
+ "keywords": [
+ "core",
+ "modules"
+ ],
+ "license": "MIT"
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/npm.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/npm.json
new file mode 100644
index 000000000..2262b3139
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/npm.json
@@ -0,0 +1,135 @@
+{
+ "version": "1.2.17",
+ "name": "npm",
+ "publishConfig": {
+ "proprietary-attribs": false
+ },
+ "description": "A package manager for node",
+ "keywords": [
+ "package manager",
+ "modules",
+ "install",
+ "package.json"
+ ],
+ "preferGlobal": true,
+ "config": {
+ "publishtest": false
+ },
+ "homepage": "https://npmjs.org/doc/",
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/isaacs/npm"
+ },
+ "bugs": {
+ "email": "npm-@googlegroups.com",
+ "url": "http://github.com/isaacs/npm/issues"
+ },
+ "directories": {
+ "doc": "./doc",
+ "man": "./man",
+ "lib": "./lib",
+ "bin": "./bin"
+ },
+ "main": "./lib/npm.js",
+ "bin": "./bin/npm-cli.js",
+ "dependencies": {
+ "semver": "~1.1.2",
+ "ini": "~1.1.0",
+ "slide": "1",
+ "abbrev": "~1.0.4",
+ "graceful-fs": "~1.2.0",
+ "minimatch": "~0.2.11",
+ "nopt": "~2.1.1",
+ "rimraf": "2",
+ "request": "~2.9",
+ "which": "1",
+ "tar": "~0.1.17",
+ "fstream": "~0.1.22",
+ "block-stream": "*",
+ "inherits": "1",
+ "mkdirp": "~0.3.3",
+ "read": "~1.0.4",
+ "lru-cache": "~2.3.0",
+ "node-gyp": "~0.9.3",
+ "fstream-npm": "~0.1.3",
+ "uid-number": "0",
+ "archy": "0",
+ "chownr": "0",
+ "npmlog": "0",
+ "ansi": "~0.1.2",
+ "npm-registry-client": "~0.2.18",
+ "read-package-json": "~0.3.0",
+ "read-installed": "0",
+ "glob": "~3.1.21",
+ "init-package-json": "0.0.6",
+ "osenv": "0",
+ "lockfile": "~0.3.0",
+ "retry": "~0.6.0",
+ "once": "~1.1.1",
+ "npmconf": "0",
+ "opener": "~1.3.0",
+ "chmodr": "~0.1.0",
+ "cmd-shim": "~1.1.0"
+ },
+ "bundleDependencies": [
+ "semver",
+ "ini",
+ "slide",
+ "abbrev",
+ "graceful-fs",
+ "minimatch",
+ "nopt",
+ "rimraf",
+ "request",
+ "which",
+ "tar",
+ "fstream",
+ "block-stream",
+ "inherits",
+ "mkdirp",
+ "read",
+ "lru-cache",
+ "node-gyp",
+ "fstream-npm",
+ "uid-number",
+ "archy",
+ "chownr",
+ "npmlog",
+ "ansi",
+ "npm-registry-client",
+ "read-package-json",
+ "read-installed",
+ "glob",
+ "init-package-json",
+ "osenv",
+ "lockfile",
+ "retry",
+ "once",
+ "npmconf",
+ "opener",
+ "chmodr",
+ "cmd-shim"
+ ],
+ "devDependencies": {
+ "ronn": "~0.3.6",
+ "tap": "~0.4.0"
+ },
+ "engines": {
+ "node": ">=0.6",
+ "npm": "1"
+ },
+ "scripts": {
+ "test": "node ./test/run.js && tap test/tap/*.js",
+ "tap": "tap test/tap/*.js",
+ "prepublish": "node bin/npm-cli.js prune ; rm -rf test/*/*/node_modules ; make -j4 doc",
+ "dumpconf": "env | grep npm | sort | uniq",
+ "echo": "node bin/npm-cli.js"
+ },
+ "licenses": [
+ {
+ "type": "MIT +no-false-attribs",
+ "url": "https://github.com/isaacs/npm/raw/master/LICENSE"
+ }
+ ]
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/read-package-json.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/read-package-json.json
new file mode 100644
index 000000000..f4a2b96f4
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/read-package-json.json
@@ -0,0 +1,27 @@
+{
+ "name": "read-package-json",
+ "version": "0.1.1",
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
+ "description": "The thing npm uses to read package.json files with semantics and defaults and validation",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/read-package-json.git"
+ },
+ "main": "read-json.js",
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "dependencies": {
+ "glob": "~3.1.9",
+ "lru-cache": "~1.1.0",
+ "semver": "~1.0.14",
+ "slide": "~1.1.3"
+ },
+ "devDependencies": {
+ "tap": "~0.2.5"
+ },
+ "optionalDependencies": {
+ "npmlog": "0",
+ "graceful-fs": "~1.1.8"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/request.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/request.json
new file mode 100644
index 000000000..24189a551
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/request.json
@@ -0,0 +1,39 @@
+{
+ "name": "request",
+ "description": "Simplified HTTP request client.",
+ "tags": [
+ "http",
+ "simple",
+ "util",
+ "utility"
+ ],
+ "version": "2.16.7",
+ "author": "Mikeal Rogers <mikeal.rogers@gmail.com>",
+ "repository": {
+ "type": "git",
+ "url": "http://github.com/mikeal/request.git"
+ },
+ "bugs": {
+ "url": "http://github.com/mikeal/request/issues"
+ },
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "main": "index.js",
+ "dependencies": {
+ "form-data": "~0.0.3",
+ "mime": "~1.2.7",
+ "hawk": "~0.10.2",
+ "node-uuid": "~1.4.0",
+ "cookie-jar": "~0.2.0",
+ "aws-sign": "~0.2.0",
+ "oauth-sign": "~0.2.0",
+ "forever-agent": "~0.2.0",
+ "tunnel-agent": "~0.2.0",
+ "json-stringify-safe": "~3.0.0",
+ "qs": "~0.5.4"
+ },
+ "scripts": {
+ "test": "node tests/run.js"
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/underscore.json b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/underscore.json
new file mode 100644
index 000000000..bfc8b3d26
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/fixtures/underscore.json
@@ -0,0 +1,17 @@
+{
+ "name" : "underscore",
+ "description" : "JavaScript's functional programming helper library.",
+ "homepage" : "http://underscorejs.org",
+ "keywords" : ["util", "functional", "server", "client", "browser"],
+ "author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
+ "repository" : {"type": "git", "url": "git://github.com/documentcloud/underscore.git"},
+ "main" : "underscore.js",
+ "version" : "1.4.4",
+ "devDependencies": {
+ "phantomjs": "1.9.0-1"
+ },
+ "scripts": {
+ "test": "phantomjs test/vendor/runner.js test/index.html?noglobals=true"
+ },
+ "license" : "MIT"
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/github-urls.js b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/github-urls.js
new file mode 100644
index 000000000..fd68d76e2
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/github-urls.js
@@ -0,0 +1,46 @@
+var tap = require("tap")
+var normalize = require("../lib/normalize")
+var path = require("path")
+var fs = require("fs")
+var _ = require("underscore")
+var async = require("async")
+
+var data, clonedData
+var warn
+
+tap.test("consistent normalization", function(t) {
+ entries = [
+ 'read-package-json.json',
+ 'http-server.json',
+ "movefile.json",
+ "node-module_exist.json"
+ ]
+ verifyConsistency = function(entryName, next) {
+ warn = function(msg) {
+ // t.equal("",msg) // uncomment to have some kind of logging of warnings
+ }
+ filename = __dirname + "/fixtures/" + entryName
+ fs.readFile(filename, function(err, contents) {
+ if (err) return next(err)
+ data = JSON.parse(contents.toString())
+ normalize(data, warn)
+ if(data.name == "node-module_exist") {
+ t.same(data.bugs.url, "https://gist.github.com/3135914")
+ }
+ if(data.name == "read-package-json") {
+ t.same(data.bugs.url, "https://github.com/isaacs/read-package-json/issues")
+ }
+ if(data.name == "http-server") {
+ t.same(data.bugs.url, "https://github.com/nodejitsu/http-server/issues")
+ }
+ if(data.name == "movefile") {
+ t.same(data.bugs.url, "https://github.com/yazgazan/movefile/issues")
+ }
+ next(null)
+ }) // fs.readFile
+ } // verifyConsistency
+ async.forEach(entries, verifyConsistency, function(err) {
+ if (err) throw err
+ t.end()
+ })
+}) // tap.test \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/normalize.js b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/normalize.js
new file mode 100644
index 000000000..b015a6a49
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/normalize.js
@@ -0,0 +1,108 @@
+var tap = require("tap")
+var fs = require("fs")
+var path = require("path")
+
+var globals = Object.keys(global)
+
+var normalize = require("../lib/normalize")
+
+var rpjPath = path.resolve(__dirname,"./fixtures/read-package-json.json")
+tap.test("normalize some package data", function(t) {
+ var packageData = require(rpjPath)
+ var warnings = []
+ normalize(packageData, function(warning) {
+ warnings.push(warning)
+ })
+ // there's no readme data in this particular object
+ t.equal( warnings.length, 1, "There's exactly one warning.")
+ fs.readFile(rpjPath, function(err, data) {
+ if(err) throw err
+ // Various changes have been made
+ t.notEqual(packageData, JSON.parse(data), "Output is different from input.")
+ t.end()
+ })
+})
+
+tap.test("runs without passing warning function", function(t) {
+ var packageData = require(rpjPath)
+ fs.readFile(rpjPath, function(err, data) {
+ if(err) throw err
+ normalize(JSON.parse(data))
+ t.ok(true, "If you read this, this means I'm still alive.")
+ t.end()
+ })
+})
+
+tap.test("empty object", function(t) {
+ var packageData = {}
+ var expect =
+ { name: '',
+ version: '',
+ readme: 'ERROR: No README data found!',
+ _id: '@' }
+
+ var warnings = []
+ function warn(m) {
+ warnings.push(m)
+ }
+ normalize(packageData, warn)
+ t.same(packageData, expect)
+ t.same(warnings, ["No repository field.","No readme data."])
+ t.end()
+})
+
+tap.test("urls required", function(t) {
+ var warnings = []
+ function warn(w) {
+ warnings.push(w)
+ }
+ normalize({
+ bugs: {
+ url: "/1",
+ email: "not an email address"
+ }
+ }, warn)
+ var a
+ normalize(a={
+ readme: "read yourself how about",
+ homepage: "stragle planarf",
+ bugs: "what is this i don't even",
+ repository: "Hello."
+ }, warn)
+
+ console.error(a)
+
+ var expect =
+ [ 'No repository field.',
+ 'No readme data.',
+ 'bugs.url field must be a string url. Deleted.',
+ 'bugs.email field must be a string email. Deleted.',
+ 'Normalized value of bugs field is an empty object. Deleted.',
+ 'Bug string field must be url, email, or {email,url}',
+ 'Normalized value of bugs field is an empty object. Deleted.',
+ 'homepage field must be a string url. Deleted.' ]
+ t.same(warnings, expect)
+ t.end()
+})
+
+tap.test("gist bugs url", function(t) {
+ var d = {
+ repository: "git@gist.github.com:123456.git"
+ }
+ normalize(d)
+ t.same(d.repository, { type: 'git', url: 'git@gist.github.com:123456.git' })
+ t.same(d.bugs, { url: 'https://gist.github.com/123456' })
+ t.end();
+});
+
+tap.test('no new globals', function(t) {
+ t.same(Object.keys(global), globals)
+ t.end()
+})
+
+tap.test("singularize repositories", function(t) {
+ d = {repositories:["git@gist.github.com:123456.git"]}
+ normalize(d)
+ t.same(d.repository, { type: 'git', url: 'git@gist.github.com:123456.git' })
+ t.end()
+}); \ No newline at end of file
diff --git a/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/typo.js b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/typo.js
new file mode 100644
index 000000000..d7d3af0e2
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/node_modules/normalize-package-data/test/typo.js
@@ -0,0 +1,67 @@
+var test = require('tap').test
+var normalize = require('../')
+var typos = require('../lib/typos.json')
+
+test('typos', function(t) {
+ var warnings = []
+ function warn(m) {
+ warnings.push(m)
+ }
+
+ var expect =
+ [ 'dependancies should probably be dependencies.',
+ 'dependecies should probably be dependencies.',
+ 'depdenencies should probably be dependencies.',
+ 'devEependencies should probably be devDependencies.',
+ 'depends should probably be dependencies.',
+ 'dev-dependencies should probably be devDependencies.',
+ 'devDependences should probably be devDependencies.',
+ 'devDepenencies should probably be devDependencies.',
+ 'devdependencies should probably be devDependencies.',
+ 'repostitory should probably be repository.',
+ 'prefereGlobal should probably be preferGlobal.',
+ 'hompage should probably be homepage.',
+ 'hampage should probably be homepage.',
+ 'autohr should probably be author.',
+ 'autor should probably be author.',
+ 'contributers should probably be contributors.',
+ 'publicationConfig should probably be publishConfig.',
+ 'No repository field.',
+ 'No repository field.',
+ 'No readme data.',
+ 'bugs.url field must be a string url. Deleted.',
+ 'Normalized value of bugs field is an empty object. Deleted.',
+ 'No repository field.',
+ 'No readme data.' ]
+
+ normalize({"dependancies": "dependencies"
+ ,"dependecies": "dependencies"
+ ,"depdenencies": "dependencies"
+ ,"devEependencies": "devDependencies"
+ ,"depends": "dependencies"
+ ,"dev-dependencies": "devDependencies"
+ ,"devDependences": "devDependencies"
+ ,"devDepenencies": "devDependencies"
+ ,"devdependencies": "devDependencies"
+ ,"repostitory": "repository"
+ ,"prefereGlobal": "preferGlobal"
+ ,"hompage": "homepage"
+ ,"hampage": "homepage"
+ ,"autohr": "author"
+ ,"autor": "author"
+ ,"contributers": "contributors"
+ ,"publicationConfig": "publishConfig"
+ ,readme:"asdf"
+ ,name:"name"
+ ,version:"1.2.5"}, warn)
+
+ normalize({name:"name"
+ ,version:"1.2.5"
+ ,bugs:{web:"url",name:"url"}}, warn)
+
+ normalize({name:"name"
+ ,version:"1.2.5"
+ ,script:{server:"start",tests:"test"}}, warn)
+ t.same(warnings, expect)
+ t.end();
+})