UNPKG

escaped-server

Version:
115 lines (91 loc) 3.04 kB
var should = require('should'); var request = require('request'); describe('escape-server', function() { describe('translateRequest', function() { it('should handle a few cases', function(done) { var res; var es = require('../lib/escaped-server.js')(); res = es.translateRequest({ url: '/?_escaped_fragment_=key=value', headers: { 'x-escaped-site': 'http://vidlink.eu:1300' } }); res.should.equal('http://vidlink.eu:1300/#!key=value'); res = es.translateRequest({ url: '/?_escaped_fragment_=key=value', headers: { 'x-escaped-site': 'http://vidlink.eu' } }); res.should.equal('http://vidlink.eu/#!key=value'); res = es.translateRequest({ url: '/path?queryparams&_escaped_fragment_=hashfragment', headers: { 'x-escaped-site': 'http://vidlink.eu:1300' } }); res.should.equal('http://vidlink.eu:1300/path?queryparams#!hashfragment'); done(); }); }); it('should handle rendered flag', function(done) { this.timeout(2500); var server = require('http').createServer(function(req, res) { res.end('<html><body><script>window=rendered=true;</script>success</body></html>'); }); var phantom = null; after(function() { server.close(); if (phantom) phantom.exit(); }); server.listen(6058); require('phantom').create(function(p) { phantom = p; var es = require('../lib/escaped-server.js')(); es.phantom = p; es.createAndOpen('http://127.0.0.1:6058', function(err, page) { es.waitForRendered(page, 5000, function(err, res) { should.not.exist(err); should.exist(res); res.should.match(/success/); done(); }); }); }); }); it('should listen', function(done) { var es = require('../lib/escaped-server.js')(); es.listen(4997); var server = require('http').createServer(function(req, res) { res.end('<html><body><script>window=rendered=true;</script>success</body></html>'); }); after(function(callback) { es.close(callback); server.close(); }); server.listen(6059, function() { console.log('Requesting http://localhost:4997'); request({ url: 'http://localhost:4997?_escaped_fragment_=', headers: { 'X-Escaped-Site': 'http://localhost:6059' } }, function(err, res, body) { should.not.exist(err); should.exist(res); should.exist(body); body.should.match(/success/); res.statusCode.should.equal(200); done(); }); }); }); it('should create-open-wait-release', function(done) { this.timeout(10000); var es = require('../lib/escaped-server.js')(); after(function() { es.close(); }); require('phantom').create(function(phantom) { es.phantom = phantom; es.createAndOpen('http://google.com', function(err, page) { es.waitForRendered(page, 5000, function(err, res) { should.not.exist(err); should.exist(res); res.should.match(/Google/); done(); }); }); }); }); });