test-body.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. var server = require('./server')
  2. , events = require('events')
  3. , stream = require('stream')
  4. , assert = require('assert')
  5. , request = require('../main.js')
  6. ;
  7. var s = server.createServer();
  8. var tests =
  9. { testGet :
  10. { resp : server.createGetResponse("TESTING!")
  11. , expectBody: "TESTING!"
  12. }
  13. , testPutString :
  14. { resp : server.createPostValidator("PUTTINGDATA")
  15. , method : "PUT"
  16. , body : "PUTTINGDATA"
  17. }
  18. , testPutBuffer :
  19. { resp : server.createPostValidator("PUTTINGDATA")
  20. , method : "PUT"
  21. , body : new Buffer("PUTTINGDATA")
  22. }
  23. , testPutStream :
  24. { resp : server.createPostValidator("PUTTINGDATA")
  25. , method : "PUT"
  26. , requestBodyStream : server.createPostStream("PUTTINGDATA")
  27. }
  28. , testPutJSON :
  29. { resp : server.createPostValidator(JSON.stringify({foo: 'bar'}))
  30. , method: "PUT"
  31. , json: {foo: 'bar'}
  32. }
  33. , testPutMultipart :
  34. { resp: server.createPostValidator(
  35. '--frontier\r\n' +
  36. 'content-type: text/html\r\n' +
  37. '\r\n' +
  38. '<html><body>Oh hi.</body></html>' +
  39. '\r\n--frontier\r\n\r\n' +
  40. 'Oh hi.' +
  41. '\r\n--frontier--'
  42. )
  43. , method: "PUT"
  44. , multipart:
  45. [ {'content-type': 'text/html', 'body': '<html><body>Oh hi.</body></html>'}
  46. , {'body': 'Oh hi.'}
  47. ]
  48. }
  49. }
  50. var counter = 0;
  51. for (i in tests) {
  52. (function () {
  53. var test = tests[i];
  54. s.on('/'+i, test.resp);
  55. test.uri = s.url + '/' + i;
  56. request(test, function (err, resp, body) {
  57. if (err) throw err;
  58. if (test.expectBody) {
  59. if (test.expectBody !== body) console.log(test.expectBody, body);
  60. assert.ok(test.expectBody === body)
  61. }
  62. counter = counter - 1;
  63. if (counter === 0) {
  64. console.log(Object.keys(tests).length+" tests passed.")
  65. s.close();
  66. }
  67. })
  68. counter++;
  69. })()
  70. }