test.client.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env node
  2. 'use strict';
  3. var path = require('path');
  4. var url = require('url');
  5. var execFile = require('child_process').execFile;
  6. var http = require('http');
  7. var finalhandler = require('finalhandler');
  8. var serveStatic = require('serve-static');
  9. var phantombin = require('phantomjs-prebuilt').path;
  10. var staticHandler = serveStatic(path.join(__dirname, '/../'), {
  11. 'index': ['index.html']
  12. });
  13. var server = http.createServer(function(req, res) {
  14. var done = finalhandler(req, res);
  15. staticHandler(req, res, done);
  16. });
  17. server.listen(0, function() {
  18. var port = server.address().port;
  19. var uri = url.format({
  20. protocol: 'http',
  21. hostname: 'localhost',
  22. port: port,
  23. pathname: '/test/'
  24. });
  25. var opts = { env: { url: uri } };
  26. var script = path.join(__dirname, 'test-phantom.js');
  27. var exit = 0;
  28. execFile(phantombin, [script], opts, function(err, stdout, stderr) {
  29. if (err && err.code) {
  30. exit = err.code;
  31. console.error(err);
  32. console.error(err.stack);
  33. }
  34. console.log(stdout);
  35. console.warn(stderr);
  36. server.close();
  37. process.exit(exit);
  38. });
  39. });