You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

https.js 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /**
  2. * Module dependencies.
  3. */
  4. var fs = require('fs');
  5. var st = require('st');
  6. var path = require('path');
  7. var https = require('https');
  8. var getUri = require('../');
  9. var assert = require('assert');
  10. var streamToArray = require('stream-to-array');
  11. describe('get-uri', function () {
  12. describe('"https:" protocol', function () {
  13. var port;
  14. var cache;
  15. var server;
  16. before(function (done) {
  17. // setup target HTTPS server
  18. var options = {
  19. key: fs.readFileSync(__dirname + '/server.key'),
  20. cert: fs.readFileSync(__dirname + '/server.crt')
  21. };
  22. server = https.createServer(options, st(__dirname));
  23. server.listen(function () {
  24. port = server.address().port;
  25. done();
  26. });
  27. });
  28. after(function (done) {
  29. server.once('close', function () { done(); });
  30. server.close();
  31. });
  32. it('should work for HTTPS endpoints', function (done) {
  33. var uri = 'https://127.0.0.1:' + port + '/' + path.basename(__filename);
  34. fs.readFile(__filename, 'utf8', function (err, real) {
  35. if (err) return done(err);
  36. getUri(uri, { rejectUnauthorized: false }, function (err, rs) {
  37. if (err) return done(err);
  38. cache = rs;
  39. streamToArray(rs, function (err, array) {
  40. if (err) return done(err);
  41. var str = Buffer.concat(array).toString('utf8');
  42. assert.equal(str, real);
  43. done();
  44. });
  45. });
  46. });
  47. });
  48. it('should return ENOTFOUND for bad filenames', function (done) {
  49. var uri = 'https://127.0.0.1:' + port + '/does-not-exist';
  50. getUri(uri, { rejectUnauthorized: false }, function (err, rs) {
  51. assert(err);
  52. assert.equal('ENOTFOUND', err.code);
  53. done();
  54. });
  55. });
  56. it('should return ENOTMODIFIED for the same URI with `cache`', function (done) {
  57. var uri = 'https://127.0.0.1:' + port + '/' + path.basename(__filename);
  58. getUri(uri, { cache: cache, rejectUnauthorized: false }, function (err, rs) {
  59. assert(err);
  60. assert.equal('ENOTMODIFIED', err.code);
  61. done();
  62. });
  63. });
  64. });
  65. });