vulcan 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. data/bin/vulcan +3 -1
  2. data/lib/vulcan/cli.rb +22 -3
  3. data/lib/vulcan/version.rb +1 -1
  4. data/server/bin/make +1 -3
  5. data/server/lib/spawner.js +9 -4
  6. data/server/node_modules/connect-form/node_modules/formidable/Readme.md +13 -2
  7. data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +19 -7
  8. data/server/node_modules/connect-form/node_modules/formidable/lib/multipart_parser.js +12 -1
  9. data/server/node_modules/connect-form/node_modules/formidable/package.json +1 -1
  10. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  11. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  12. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -10
  13. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -9
  14. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  15. data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +1 -1
  16. data/server/node_modules/cradle/lib/cradle.js +0 -1
  17. data/server/node_modules/cradle/package.json +3 -3
  18. data/server/node_modules/cradle/test/cache-test.js +6 -7
  19. data/server/node_modules/cradle/test/cradle-test.js +4 -5
  20. data/server/node_modules/cradle/test/response-test.js +5 -6
  21. data/server/node_modules/express/History.md +53 -1
  22. data/server/node_modules/express/Makefile +3 -9
  23. data/server/node_modules/express/Readme.md +3 -1
  24. data/server/node_modules/express/bin/express +65 -66
  25. data/server/node_modules/express/lib/express.js +1 -1
  26. data/server/node_modules/express/lib/request.js +23 -9
  27. data/server/node_modules/express/lib/response.js +3 -2
  28. data/server/node_modules/express/lib/utils.js +13 -0
  29. data/server/node_modules/express/lib/view/view.js +2 -1
  30. data/server/node_modules/express/lib/view.js +19 -16
  31. data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
  32. data/server/node_modules/express/node_modules/connect/lib/http.js +2 -0
  33. data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +135 -31
  34. data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +5 -1
  35. data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
  36. data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +26 -21
  37. data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +91 -38
  38. data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
  39. data/server/node_modules/express/node_modules/connect/lib/utils.js +11 -4
  40. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +14 -0
  41. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +286 -0
  42. data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +3 -0
  43. data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +70 -0
  44. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +43 -0
  45. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +48 -0
  46. data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +1 -0
  47. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +61 -0
  48. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +377 -0
  49. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +3 -0
  50. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +312 -0
  51. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +25 -0
  52. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +6 -0
  53. data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +22 -0
  54. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +19 -0
  55. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
  56. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  57. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  58. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +3 -0
  59. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +26 -0
  60. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +24 -0
  61. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +23 -0
  62. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +24 -0
  63. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +22 -0
  64. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +22 -0
  65. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +22 -0
  66. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  67. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +21 -0
  68. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  69. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +72 -0
  70. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +89 -0
  71. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +24 -0
  72. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +80 -0
  73. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +104 -0
  74. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +715 -0
  75. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +50 -0
  76. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +45 -0
  77. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +72 -0
  78. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +2 -0
  79. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
  80. data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +47 -0
  81. data/server/node_modules/express/node_modules/connect/package.json +7 -6
  82. data/server/node_modules/express/node_modules/connect/test.js +44 -31
  83. data/server/node_modules/express/node_modules/mime/mime.js +3 -3
  84. data/server/node_modules/express/node_modules/mime/package.json +21 -10
  85. data/server/node_modules/express/node_modules/mime/test.js +2 -3
  86. data/server/node_modules/express/node_modules/mime/{mime.types → types/mime.types} +0 -0
  87. data/server/node_modules/express/node_modules/mime/{node.types → types/node.types} +17 -0
  88. data/server/node_modules/express/node_modules/mkdirp/LICENSE +21 -0
  89. data/server/node_modules/express/node_modules/mkdirp/README.markdown +21 -0
  90. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +6 -0
  91. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.orig +6 -0
  92. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.rej +19 -0
  93. data/server/node_modules/express/node_modules/mkdirp/index.js +20 -0
  94. data/server/node_modules/express/node_modules/mkdirp/package.json +23 -0
  95. data/server/node_modules/express/node_modules/mkdirp/test/mkdirp.js +28 -0
  96. data/server/node_modules/express/node_modules/mkdirp/test/race.js +41 -0
  97. data/server/node_modules/express/node_modules/mkdirp/test/rel.js +32 -0
  98. data/server/node_modules/express/node_modules/qs/History.md +11 -0
  99. data/server/node_modules/express/node_modules/qs/Makefile +1 -3
  100. data/server/node_modules/express/node_modules/qs/Readme.md +2 -4
  101. data/server/node_modules/express/node_modules/qs/lib/querystring.js +100 -74
  102. data/server/node_modules/express/node_modules/qs/package.json +9 -2
  103. data/server/node_modules/express/node_modules/qs/test/mocha.opts +2 -0
  104. data/server/node_modules/express/node_modules/qs/test/{parse.test.js → parse.js} +1 -2
  105. data/server/node_modules/express/node_modules/qs/test/{stringify.test.js → stringify.js} +0 -0
  106. data/server/node_modules/express/package.json +9 -8
  107. data/server/node_modules/express/testing/foo/app.js +35 -0
  108. data/server/node_modules/express/testing/foo/package.json +9 -0
  109. data/server/node_modules/express/testing/foo/public/stylesheets/style.css +8 -0
  110. data/server/node_modules/express/testing/foo/routes/index.js +10 -0
  111. data/server/node_modules/express/testing/foo/views/index.jade +2 -0
  112. data/server/node_modules/express/testing/foo/views/layout.jade +6 -0
  113. data/server/node_modules/express/testing/index.js +43 -0
  114. data/server/node_modules/express/testing/public/test.txt +2971 -0
  115. data/server/node_modules/express/testing/views/page.html +1 -0
  116. data/server/node_modules/express/testing/views/page.jade +3 -0
  117. data/server/node_modules/express/testing/views/test.md +1 -0
  118. data/server/node_modules/express/testing/views/user/index.jade +1 -0
  119. data/server/node_modules/express/testing/views/user/list.jade +1 -0
  120. data/server/node_modules/node-uuid/README.md +166 -67
  121. data/server/node_modules/node-uuid/benchmark/README.md +53 -0
  122. data/server/node_modules/node-uuid/benchmark/bench.gnu +174 -0
  123. data/server/node_modules/node-uuid/benchmark/bench.sh +34 -0
  124. data/server/node_modules/node-uuid/{test → benchmark}/benchmark-native.c +0 -0
  125. data/server/node_modules/node-uuid/benchmark/benchmark.js +84 -0
  126. data/server/node_modules/node-uuid/package.json +5 -3
  127. data/server/node_modules/node-uuid/test/benchmark-native +0 -0
  128. data/server/node_modules/node-uuid/test/compare_v1.js +63 -0
  129. data/server/node_modules/node-uuid/test/test.html +3 -0
  130. data/server/node_modules/node-uuid/test/test.js +214 -57
  131. data/server/node_modules/node-uuid/uuid.js +225 -56
  132. data/server/node_modules/restler/README.md +20 -7
  133. data/server/node_modules/restler/bin/restler +1 -1
  134. data/server/node_modules/restler/lib/multipartform.js +9 -8
  135. data/server/node_modules/restler/lib/restler.js +64 -22
  136. data/server/node_modules/restler/package.json +2 -2
  137. data/server/node_modules/restler/test/restler.js +22 -2
  138. data/server/node_modules/restler/test/test_helper.js +20 -1
  139. data/server/package.json +1 -2
  140. data/server/web.js +30 -7
  141. metadata +90 -86
  142. data/server/node_modules/cradle/node_modules/vows/LICENSE +0 -20
  143. data/server/node_modules/cradle/node_modules/vows/Makefile +0 -7
  144. data/server/node_modules/cradle/node_modules/vows/README.md +0 -39
  145. data/server/node_modules/cradle/node_modules/vows/bin/vows +0 -515
  146. data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +0 -27
  147. data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +0 -215
  148. data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +0 -77
  149. data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +0 -131
  150. data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +0 -55
  151. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +0 -29
  152. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +0 -2
  153. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +0 -61
  154. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +0 -54
  155. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +0 -54
  156. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +0 -38
  157. data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +0 -28
  158. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +0 -67
  159. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +0 -16
  160. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +0 -8
  161. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +0 -44
  162. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +0 -39
  163. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +0 -90
  164. data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +0 -319
  165. data/server/node_modules/cradle/node_modules/vows/lib/vows.js +0 -193
  166. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +0 -20
  167. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +0 -4
  168. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +0 -72
  169. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +0 -233
  170. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +0 -14
  171. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +0 -55
  172. data/server/node_modules/cradle/node_modules/vows/package.json +0 -14
  173. data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +0 -135
  174. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +0 -18
  175. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +0 -18
  176. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +0 -17
  177. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +0 -18
  178. data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +0 -140
  179. data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +0 -133
  180. data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +0 -51
  181. data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +0 -374
  182. data/server/node_modules/express/node_modules/mime/index.js +0 -1
  183. data/server/node_modules/express/node_modules/qs/support/expresso/History.md +0 -128
  184. data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +0 -53
  185. data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +0 -61
  186. data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +0 -856
  187. data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +0 -1080
  188. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +0 -377
  189. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +0 -290
  190. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  191. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  192. data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +0 -4
  193. data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +0 -16
  194. data/server/node_modules/express/node_modules/qs/support/expresso/package.json +0 -12
  195. data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  196. data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +0 -12
  197. data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  198. data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  199. data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +0 -146
  200. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  201. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  202. data/server/node_modules/express/node_modules/qs/support/should/History.md +0 -22
  203. data/server/node_modules/express/node_modules/qs/support/should/Makefile +0 -6
  204. data/server/node_modules/express/node_modules/qs/support/should/Readme.md +0 -248
  205. data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +0 -53
  206. data/server/node_modules/express/node_modules/qs/support/should/index.js +0 -2
  207. data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +0 -91
  208. data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +0 -548
  209. data/server/node_modules/express/node_modules/qs/support/should/package.json +0 -8
  210. data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +0 -358
  211. data/server/node_modules/node-uuid/test/benchmark.js +0 -27
@@ -1,377 +0,0 @@
1
- <html>
2
- <head>
3
- <title>Expresso - TDD Framework For Node</title>
4
- <style>
5
- body {
6
- font: 13px/1.4 "Helvetica", "Lucida Grande", Arial, sans-serif;
7
- text-align: center;
8
- }
9
- #ribbon {
10
- position: absolute;
11
- top: 0;
12
- right: 0;
13
- z-index: 10;
14
- }
15
- #wrapper {
16
- margin: 0 auto;
17
- padding: 50px 80px;
18
- width: 700px;
19
- text-align: left;
20
- }
21
- h1, h2, h3 {
22
- margin: 25px 0 15px 0;
23
- }
24
- h1 {
25
- font-size: 35px;
26
- }
27
- pre {
28
- margin: 0 5px;
29
- padding: 15px;
30
- border: 1px solid #eee;
31
- }
32
- a {
33
- color: #00aaff;
34
- }
35
- </style>
36
- </head>
37
- <body>
38
- <a href="http://github.com/visionmedia/expresso">
39
- <img alt="Fork me on GitHub" id="ribbon" src="http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png" />
40
- </a>
41
- <div id="wrapper">
42
- <h1>Expresso</h1>
43
- <div class='mp'>
44
- <h2 id="NAME">NAME</h2>
45
- <p class="man-name">
46
- <code>index</code>
47
- </p>
48
- <p><a href="http://github.com/visionmedia/expresso">Expresso</a> is a JavaScript <a href="http://en.wikipedia.org/wiki/Test-driven_development">TDD</a> framework written for <a href="http://nodejs.org">nodejs</a>. Expresso is extremely fast, and is packed with features such as additional assertion methods, code coverage reporting, CI support, and more.</p>
49
-
50
- <h2 id="Features">Features</h2>
51
-
52
- <ul>
53
- <li>light-weight</li>
54
- <li>intuitive async support</li>
55
- <li>intuitive test runner executable</li>
56
- <li>test coverage support and reporting via <a href="http://github.com/visionmedia/node-jscoverage">node-jscoverage</a></li>
57
- <li>uses and extends the core <em>assert</em> module</li>
58
- <li><code>assert.eql()</code> alias of <code>assert.deepEqual()</code></li>
59
- <li><code>assert.response()</code> http response utility</li>
60
- <li><code>assert.includes()</code></li>
61
- <li><code>assert.isNull()</code></li>
62
- <li><code>assert.isUndefined()</code></li>
63
- <li><code>assert.isNotNull()</code></li>
64
- <li><code>assert.isDefined()</code></li>
65
- <li><code>assert.match()</code></li>
66
- <li><code>assert.length()</code></li>
67
- </ul>
68
-
69
-
70
- <h2 id="Installation">Installation</h2>
71
-
72
- <p>To install both expresso <em>and</em> node-jscoverage run
73
- the command below, which will first compile node-jscoverage:</p>
74
-
75
- <pre><code>$ make install
76
- </code></pre>
77
-
78
- <p>To install expresso alone without coverage reporting run:</p>
79
-
80
- <pre><code>$ make install-expresso
81
- </code></pre>
82
-
83
- <p>Install via npm:</p>
84
-
85
- <pre><code>$ npm install expresso
86
- </code></pre>
87
-
88
- <h2 id="Examples">Examples</h2>
89
-
90
- <p>To define tests we simply export several functions:</p>
91
-
92
- <pre><code>exports['test String#length'] = function(){
93
- assert.equal(6, 'foobar'.length);
94
- };
95
- </code></pre>
96
-
97
- <p>Alternatively for large numbers of tests you may want to
98
- export your own object containing the tests, however this
99
- is essentially the as above:</p>
100
-
101
- <pre><code>module.exports = {
102
- 'test String#length': function(){
103
- assert.equal(6, 'foobar'.length);
104
- }
105
- };
106
- </code></pre>
107
-
108
- <p>If you prefer not to use quoted keys:</p>
109
-
110
- <pre><code>exports.testsStringLength = function(){
111
- assert.equal(6, 'foobar'.length);
112
- };
113
- </code></pre>
114
-
115
- <p>The argument passed to each callback is <em>beforeExit</em>,
116
- which is typically used to assert that callbacks have been
117
- invoked.</p>
118
-
119
- <pre><code>exports.testAsync = function(beforeExit){
120
- var n = 0;
121
- setTimeout(function(){
122
- ++n;
123
- assert.ok(true);
124
- }, 200);
125
- setTimeout(function(){
126
- ++n;
127
- assert.ok(true);
128
- }, 200);
129
- beforeExit(function(){
130
- assert.equal(2, n, 'Ensure both timeouts are called');
131
- });
132
- };
133
- </code></pre>
134
-
135
- <h2 id="Assert-Utilities">Assert Utilities</h2>
136
-
137
- <h3 id="assert-isNull-val-msg-">assert.isNull(val[, msg])</h3>
138
-
139
- <p>Asserts that the given <em>val</em> is <em>null</em>.</p>
140
-
141
- <pre><code>assert.isNull(null);
142
- </code></pre>
143
-
144
- <h3 id="assert-isNotNull-val-msg-">assert.isNotNull(val[, msg])</h3>
145
-
146
- <p>Asserts that the given <em>val</em> is not <em>null</em>.</p>
147
-
148
- <pre><code>assert.isNotNull(undefined);
149
- assert.isNotNull(false);
150
- </code></pre>
151
-
152
- <h3 id="assert-isUndefined-val-msg-">assert.isUndefined(val[, msg])</h3>
153
-
154
- <p>Asserts that the given <em>val</em> is <em>undefined</em>.</p>
155
-
156
- <pre><code>assert.isUndefined(undefined);
157
- </code></pre>
158
-
159
- <h3 id="assert-isDefined-val-msg-">assert.isDefined(val[, msg])</h3>
160
-
161
- <p>Asserts that the given <em>val</em> is not <em>undefined</em>.</p>
162
-
163
- <pre><code>assert.isDefined(null);
164
- assert.isDefined(false);
165
- </code></pre>
166
-
167
- <h3 id="assert-match-str-regexp-msg-">assert.match(str, regexp[, msg])</h3>
168
-
169
- <p>Asserts that the given <em>str</em> matches <em>regexp</em>.</p>
170
-
171
- <pre><code>assert.match('foobar', /^foo(bar)?/);
172
- assert.match('foo', /^foo(bar)?/);
173
- </code></pre>
174
-
175
- <h3 id="assert-length-val-n-msg-">assert.length(val, n[, msg])</h3>
176
-
177
- <p>Assert that the given <em>val</em> has a length of <em>n</em>.</p>
178
-
179
- <pre><code>assert.length([1,2,3], 3);
180
- assert.length('foo', 3);
181
- </code></pre>
182
-
183
- <h3 id="assert-type-obj-type-msg-">assert.type(obj, type[, msg])</h3>
184
-
185
- <p>Assert that the given <em>obj</em> is typeof <em>type</em>.</p>
186
-
187
- <pre><code>assert.type(3, 'number');
188
- </code></pre>
189
-
190
- <h3 id="assert-eql-a-b-msg-">assert.eql(a, b[, msg])</h3>
191
-
192
- <p>Assert that object <em>b</em> is equal to object <em>a</em>. This is an
193
- alias for the core <em>assert.deepEqual()</em> method which does complex
194
- comparisons, opposed to <em>assert.equal()</em> which uses <em>==</em>.</p>
195
-
196
- <pre><code>assert.eql('foo', 'foo');
197
- assert.eql([1,2], [1,2]);
198
- assert.eql({ foo: 'bar' }, { foo: 'bar' });
199
- </code></pre>
200
-
201
- <h3 id="assert-includes-obj-val-msg-">assert.includes(obj, val[, msg])</h3>
202
-
203
- <p>Assert that <em>obj</em> is within <em>val</em>. This method supports <em>Array_s
204
- and </em>Strings_s.</p>
205
-
206
- <pre><code>assert.includes([1,2,3], 3);
207
- assert.includes('foobar', 'foo');
208
- assert.includes('foobar', 'bar');
209
- </code></pre>
210
-
211
- <h3 id="assert-response-server-req-res-fn-msg-fn-">assert.response(server, req, res|fn[, msg|fn])</h3>
212
-
213
- <p>Performs assertions on the given <em>server</em>, which should <em>not</em> call
214
- listen(), as this is handled internally by expresso and the server
215
- is killed after all responses have completed. This method works with
216
- any <em>http.Server</em> instance, so <em>Connect</em> and <em>Express</em> servers will work
217
- as well.</p>
218
-
219
- <p>The <em>req</em> object may contain:</p>
220
-
221
- <ul>
222
- <li><em>url</em> request url</li>
223
- <li><em>timeout</em> timeout in milliseconds</li>
224
- <li><em>method</em> HTTP method</li>
225
- <li><em>data</em> request body</li>
226
- <li><em>headers</em> headers object</li>
227
- </ul>
228
-
229
-
230
- <p>The <em>res</em> object may be a callback function which
231
- receives the response for assertions, or an object
232
- which is then used to perform several assertions
233
- on the response with the following properties:</p>
234
-
235
- <ul>
236
- <li><em>body</em> assert response body (regexp or string)</li>
237
- <li><em>status</em> assert response status code</li>
238
- <li><em>header</em> assert that all given headers match (unspecified are ignored, use a regexp or string)</li>
239
- </ul>
240
-
241
-
242
- <p>When providing <em>res</em> you may then also pass a callback function
243
- as the fourth argument for additional assertions.</p>
244
-
245
- <p>Below are some examples:</p>
246
-
247
- <pre><code>assert.response(server, {
248
- url: '/', timeout: 500
249
- }, {
250
- body: 'foobar'
251
- });
252
-
253
- assert.response(server, {
254
- url: '/',
255
- method: 'GET'
256
- },{
257
- body: '{"name":"tj"}',
258
- status: 200,
259
- headers: {
260
- 'Content-Type': 'application/json; charset=utf8',
261
- 'X-Foo': 'bar'
262
- }
263
- });
264
-
265
- assert.response(server, {
266
- url: '/foo',
267
- method: 'POST',
268
- data: 'bar baz'
269
- },{
270
- body: '/foo bar baz',
271
- status: 200
272
- }, 'Test POST');
273
-
274
- assert.response(server, {
275
- url: '/foo',
276
- method: 'POST',
277
- data: 'bar baz'
278
- },{
279
- body: '/foo bar baz',
280
- status: 200
281
- }, function(res){
282
- // All done, do some more tests if needed
283
- });
284
-
285
- assert.response(server, {
286
- url: '/'
287
- }, function(res){
288
- assert.ok(res.body.indexOf('tj') &gt;= 0, 'Test assert.response() callback');
289
- });
290
- </code></pre>
291
-
292
- <h2 id="expresso-1-">expresso(1)</h2>
293
-
294
- <p>To run a single test suite (file) run:</p>
295
-
296
- <pre><code>$ expresso test/a.test.js
297
- </code></pre>
298
-
299
- <p>To run several suites we may simply append another:</p>
300
-
301
- <pre><code>$ expresso test/a.test.js test/b.test.js
302
- </code></pre>
303
-
304
- <p>We can also pass a whitelist of tests to run within all suites:</p>
305
-
306
- <pre><code>$ expresso --only "foo()" --only "bar()"
307
- </code></pre>
308
-
309
- <p>Or several with one call:</p>
310
-
311
- <pre><code>$ expresso --only "foo(), bar()"
312
- </code></pre>
313
-
314
- <p>Globbing is of course possible as well:</p>
315
-
316
- <pre><code>$ expresso test/*
317
- </code></pre>
318
-
319
- <p>When expresso is called without any files, <em>test/*</em> is the default,
320
- so the following is equivalent to the command above:</p>
321
-
322
- <pre><code>$ expresso
323
- </code></pre>
324
-
325
- <p>If you wish to unshift a path to <code>require.paths</code> before
326
- running tests, you may use the <code>-I</code> or <code>--include</code> flag.</p>
327
-
328
- <pre><code>$ expresso --include lib test/*
329
- </code></pre>
330
-
331
- <p>The previous example is typically what I would recommend, since expresso
332
- supports test coverage via <a href="http://github.com/visionmedia/node-jscoverage">node-jscoverage</a> (bundled with expresso),
333
- so you will need to expose an instrumented version of you library.</p>
334
-
335
- <p>To instrument your library, simply run <a href="http://github.com/visionmedia/node-jscoverage">node-jscoverage</a>,
336
- passing the <em>src</em> and <em>dest</em> directories:</p>
337
-
338
- <pre><code>$ node-jscoverage lib lib-cov
339
- </code></pre>
340
-
341
- <p>Now we can run our tests again, using the <em>lib-cov</em> directory that has been
342
- instrumented with coverage statements:</p>
343
-
344
- <pre><code>$ expresso -I lib-cov test/*
345
- </code></pre>
346
-
347
- <p>The output will look similar to below, depending on your test coverage of course :)</p>
348
-
349
- <p><img src="http://dl.dropbox.com/u/6396913/cov.png" alt="node coverage" /></p>
350
-
351
- <p>To make this process easier expresso has the <em>-c</em> or <em>--cov</em> which essentially
352
- does the same as the two commands above. The following two commands will
353
- run the same tests, however one will auto-instrument, and unshift <em>lib-cov</em>,
354
- and the other will run tests normally:</p>
355
-
356
- <pre><code>$ expresso -I lib test/*
357
- $ expresso -I lib --cov test/*
358
- </code></pre>
359
-
360
- <p>Currently coverage is bound to the <em>lib</em> directory, however in the
361
- future <code>--cov</code> will most likely accept a path.</p>
362
-
363
- <h2 id="Async-Exports">Async Exports</h2>
364
-
365
- <p>Sometimes it is useful to postpone running of tests until a callback or event has fired, currently the <em>exports.foo = function(){};</em> syntax is supported for this:</p>
366
-
367
- <pre><code>setTimeout(function(){
368
- exports['test async exports'] = function(){
369
- assert.ok('wahoo');
370
- };
371
- }, 100);
372
- </code></pre>
373
-
374
- </div>
375
- </div>
376
- </body>
377
- </html>
@@ -1,290 +0,0 @@
1
-
2
- [Expresso](http://github.com/visionmedia/expresso) is a JavaScript [TDD](http://en.wikipedia.org/wiki/Test-driven_development) framework written for [nodejs](http://nodejs.org). Expresso is extremely fast, and is packed with features such as additional assertion methods, code coverage reporting, CI support, and more.
3
-
4
- ## Features
5
-
6
- - light-weight
7
- - intuitive async support
8
- - intuitive test runner executable
9
- - test coverage support and reporting via [node-jscoverage](http://github.com/visionmedia/node-jscoverage)
10
- - uses and extends the core _assert_ module
11
- - `assert.eql()` alias of `assert.deepEqual()`
12
- - `assert.response()` http response utility
13
- - `assert.includes()`
14
- - `assert.isNull()`
15
- - `assert.isUndefined()`
16
- - `assert.isNotNull()`
17
- - `assert.isDefined()`
18
- - `assert.match()`
19
- - `assert.length()`
20
-
21
- ## Installation
22
-
23
- To install both expresso _and_ node-jscoverage run
24
- the command below, which will first compile node-jscoverage:
25
-
26
- $ make install
27
-
28
- To install expresso alone without coverage reporting run:
29
-
30
- $ make install-expresso
31
-
32
- Install via npm:
33
-
34
- $ npm install expresso
35
-
36
- ## Examples
37
-
38
- To define tests we simply export several functions:
39
-
40
- exports['test String#length'] = function(){
41
- assert.equal(6, 'foobar'.length);
42
- };
43
-
44
- Alternatively for large numbers of tests you may want to
45
- export your own object containing the tests, however this
46
- is essentially the as above:
47
-
48
- module.exports = {
49
- 'test String#length': function(){
50
- assert.equal(6, 'foobar'.length);
51
- }
52
- };
53
-
54
- If you prefer not to use quoted keys:
55
-
56
- exports.testsStringLength = function(){
57
- assert.equal(6, 'foobar'.length);
58
- };
59
-
60
- The argument passed to each callback is _beforeExit_,
61
- which is typically used to assert that callbacks have been
62
- invoked.
63
-
64
- exports.testAsync = function(beforeExit){
65
- var n = 0;
66
- setTimeout(function(){
67
- ++n;
68
- assert.ok(true);
69
- }, 200);
70
- setTimeout(function(){
71
- ++n;
72
- assert.ok(true);
73
- }, 200);
74
- beforeExit(function(){
75
- assert.equal(2, n, 'Ensure both timeouts are called');
76
- });
77
- };
78
-
79
- ## Assert Utilities
80
-
81
- ### assert.isNull(val[, msg])
82
-
83
- Asserts that the given _val_ is _null_.
84
-
85
- assert.isNull(null);
86
-
87
- ### assert.isNotNull(val[, msg])
88
-
89
- Asserts that the given _val_ is not _null_.
90
-
91
- assert.isNotNull(undefined);
92
- assert.isNotNull(false);
93
-
94
- ### assert.isUndefined(val[, msg])
95
-
96
- Asserts that the given _val_ is _undefined_.
97
-
98
- assert.isUndefined(undefined);
99
-
100
- ### assert.isDefined(val[, msg])
101
-
102
- Asserts that the given _val_ is not _undefined_.
103
-
104
- assert.isDefined(null);
105
- assert.isDefined(false);
106
-
107
- ### assert.match(str, regexp[, msg])
108
-
109
- Asserts that the given _str_ matches _regexp_.
110
-
111
- assert.match('foobar', /^foo(bar)?/);
112
- assert.match('foo', /^foo(bar)?/);
113
-
114
- ### assert.length(val, n[, msg])
115
-
116
- Assert that the given _val_ has a length of _n_.
117
-
118
- assert.length([1,2,3], 3);
119
- assert.length('foo', 3);
120
-
121
- ### assert.type(obj, type[, msg])
122
-
123
- Assert that the given _obj_ is typeof _type_.
124
-
125
- assert.type(3, 'number');
126
-
127
- ### assert.eql(a, b[, msg])
128
-
129
- Assert that object _b_ is equal to object _a_. This is an
130
- alias for the core _assert.deepEqual()_ method which does complex
131
- comparisons, opposed to _assert.equal()_ which uses _==_.
132
-
133
- assert.eql('foo', 'foo');
134
- assert.eql([1,2], [1,2]);
135
- assert.eql({ foo: 'bar' }, { foo: 'bar' });
136
-
137
- ### assert.includes(obj, val[, msg])
138
-
139
- Assert that _obj_ is within _val_. This method supports _Array_s
140
- and _Strings_s.
141
-
142
- assert.includes([1,2,3], 3);
143
- assert.includes('foobar', 'foo');
144
- assert.includes('foobar', 'bar');
145
-
146
- ### assert.response(server, req, res|fn[, msg|fn])
147
-
148
- Performs assertions on the given _server_, which should _not_ call
149
- listen(), as this is handled internally by expresso and the server
150
- is killed after all responses have completed. This method works with
151
- any _http.Server_ instance, so _Connect_ and _Express_ servers will work
152
- as well.
153
-
154
- The _req_ object may contain:
155
-
156
- - _url_ request url
157
- - _timeout_ timeout in milliseconds
158
- - _method_ HTTP method
159
- - _data_ request body
160
- - _headers_ headers object
161
-
162
- The _res_ object may be a callback function which
163
- receives the response for assertions, or an object
164
- which is then used to perform several assertions
165
- on the response with the following properties:
166
-
167
- - _body_ assert response body (regexp or string)
168
- - _status_ assert response status code
169
- - _header_ assert that all given headers match (unspecified are ignored, use a regexp or string)
170
-
171
- When providing _res_ you may then also pass a callback function
172
- as the fourth argument for additional assertions.
173
-
174
- Below are some examples:
175
-
176
- assert.response(server, {
177
- url: '/', timeout: 500
178
- }, {
179
- body: 'foobar'
180
- });
181
-
182
- assert.response(server, {
183
- url: '/',
184
- method: 'GET'
185
- },{
186
- body: '{"name":"tj"}',
187
- status: 200,
188
- headers: {
189
- 'Content-Type': 'application/json; charset=utf8',
190
- 'X-Foo': 'bar'
191
- }
192
- });
193
-
194
- assert.response(server, {
195
- url: '/foo',
196
- method: 'POST',
197
- data: 'bar baz'
198
- },{
199
- body: '/foo bar baz',
200
- status: 200
201
- }, 'Test POST');
202
-
203
- assert.response(server, {
204
- url: '/foo',
205
- method: 'POST',
206
- data: 'bar baz'
207
- },{
208
- body: '/foo bar baz',
209
- status: 200
210
- }, function(res){
211
- // All done, do some more tests if needed
212
- });
213
-
214
- assert.response(server, {
215
- url: '/'
216
- }, function(res){
217
- assert.ok(res.body.indexOf('tj') >= 0, 'Test assert.response() callback');
218
- });
219
-
220
-
221
- ## expresso(1)
222
-
223
- To run a single test suite (file) run:
224
-
225
- $ expresso test/a.test.js
226
-
227
- To run several suites we may simply append another:
228
-
229
- $ expresso test/a.test.js test/b.test.js
230
-
231
- We can also pass a whitelist of tests to run within all suites:
232
-
233
- $ expresso --only "foo()" --only "bar()"
234
-
235
- Or several with one call:
236
-
237
- $ expresso --only "foo(), bar()"
238
-
239
- Globbing is of course possible as well:
240
-
241
- $ expresso test/*
242
-
243
- When expresso is called without any files, _test/*_ is the default,
244
- so the following is equivalent to the command above:
245
-
246
- $ expresso
247
-
248
- If you wish to unshift a path to `require.paths` before
249
- running tests, you may use the `-I` or `--include` flag.
250
-
251
- $ expresso --include lib test/*
252
-
253
- The previous example is typically what I would recommend, since expresso
254
- supports test coverage via [node-jscoverage](http://github.com/visionmedia/node-jscoverage) (bundled with expresso),
255
- so you will need to expose an instrumented version of you library.
256
-
257
- To instrument your library, simply run [node-jscoverage](http://github.com/visionmedia/node-jscoverage),
258
- passing the _src_ and _dest_ directories:
259
-
260
- $ node-jscoverage lib lib-cov
261
-
262
- Now we can run our tests again, using the _lib-cov_ directory that has been
263
- instrumented with coverage statements:
264
-
265
- $ expresso -I lib-cov test/*
266
-
267
- The output will look similar to below, depending on your test coverage of course :)
268
-
269
- ![node coverage](http://dl.dropbox.com/u/6396913/cov.png)
270
-
271
- To make this process easier expresso has the _-c_ or _--cov_ which essentially
272
- does the same as the two commands above. The following two commands will
273
- run the same tests, however one will auto-instrument, and unshift _lib-cov_,
274
- and the other will run tests normally:
275
-
276
- $ expresso -I lib test/*
277
- $ expresso -I lib --cov test/*
278
-
279
- Currently coverage is bound to the _lib_ directory, however in the
280
- future `--cov` will most likely accept a path.
281
-
282
- ## Async Exports
283
-
284
- Sometimes it is useful to postpone running of tests until a callback or event has fired, currently the _exports.foo = function(){};_ syntax is supported for this:
285
-
286
- setTimeout(function(){
287
- exports['test async exports'] = function(){
288
- assert.ok('wahoo');
289
- };
290
- }, 100);