gzip.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var oppressor = require('../');
  2. var tap = require('tap').test;
  3. var zlib = require('zlib');
  4. var fs = require('fs');
  5. var http = require('http');
  6. var fileContents = fs.readFileSync(__dirname + '/data.txt', 'utf8');
  7. tap(function (t) {
  8. t.plan(1);
  9. var port = Math.floor(Math.random() * 5e4 + 1e4);
  10. var server = http.createServer(function (req, res) {
  11. fs.createReadStream(__dirname + '/data.txt')
  12. .pipe(oppressor(req))
  13. .pipe(res)
  14. ;
  15. });
  16. server.listen(port);
  17. var opts = {
  18. host : 'localhost',
  19. port : port,
  20. headers : {
  21. 'accept-encoding' : 'gzip'
  22. }
  23. };
  24. server.on('listening', function () {
  25. http.get(opts, function (res) {
  26. var s = zlib.createGunzip();
  27. var data = '';
  28. s.on('data', function (buf) { data += buf });
  29. s.on('end', function () {
  30. t.equal(data, fileContents);
  31. });
  32. res.pipe(s);
  33. });
  34. });
  35. t.on('end', function () {
  36. server.close();
  37. });
  38. });