96 lines
3.3 KiB
JavaScript
96 lines
3.3 KiB
JavaScript
require('../../support/test_helper');
|
|
|
|
var assert = require('../../support/assert');
|
|
var testClient = require('./support/test_client');
|
|
var serverOptions = require('./support/ported_server_options');
|
|
var fs = require('fs');
|
|
var http = require('http');
|
|
|
|
var PortedServerOptions = require('./support/ported_server_options');
|
|
var BaseController = require('../../../lib/cartodb/controllers/base');
|
|
|
|
describe.skip('blend http client timeout', function() {
|
|
|
|
var req2paramsFn;
|
|
before(function() {
|
|
req2paramsFn = BaseController.prototype.req2params;
|
|
BaseController.prototype.req2params = PortedServerOptions.req2params;
|
|
});
|
|
|
|
after(function() {
|
|
BaseController.prototype.req2params = req2paramsFn;
|
|
});
|
|
|
|
var mapConfig = {
|
|
version: '1.3.0',
|
|
layers: [
|
|
{
|
|
type: 'http',
|
|
options: {
|
|
urlTemplate: 'http://127.0.0.1:8033/{s}/{z}/{x}/{y}.png',
|
|
subdomains: ['light']
|
|
}
|
|
},
|
|
{
|
|
type: 'mapnik',
|
|
options: {
|
|
sql: 'SELECT * FROM populated_places_simple_reduced',
|
|
cartocss: '#layer { marker-fill:red; } #layer { marker-width: 2; }',
|
|
cartocss_version: '2.3.0',
|
|
geom_column: 'the_geom'
|
|
}
|
|
}
|
|
]
|
|
};
|
|
|
|
var oldHttpRendererTimeout;
|
|
var httpRendererTimeout = 100;
|
|
|
|
var slowHttpRendererResourcesServer;
|
|
|
|
before(function(done) {
|
|
oldHttpRendererTimeout = serverOptions.renderer.http.timeout;
|
|
serverOptions.renderer.http.timeout = httpRendererTimeout;
|
|
|
|
// Start a server to test external resources
|
|
slowHttpRendererResourcesServer = http.createServer( function(request, response) {
|
|
setTimeout(function() {
|
|
var filename = __dirname + '/../fixtures/http/light_nolabels-1-0-0.png';
|
|
fs.readFile(filename, {encoding: 'binary'}, function(err, file) {
|
|
response.writeHead(200);
|
|
response.write(file, "binary");
|
|
response.end();
|
|
});
|
|
}, httpRendererTimeout * 2);
|
|
});
|
|
slowHttpRendererResourcesServer.listen(8033, done);
|
|
});
|
|
|
|
after(function(done) {
|
|
serverOptions.renderer.http.timeout = oldHttpRendererTimeout;
|
|
slowHttpRendererResourcesServer.close(done);
|
|
});
|
|
|
|
it('should fail to render when http layer times out', function(done) {
|
|
var options = {
|
|
statusCode: 400,
|
|
contentType: 'application/json; charset=utf-8',
|
|
serverOptions: serverOptions
|
|
};
|
|
testClient.withLayergroup(mapConfig, options, function(err, requestTile, finish) {
|
|
var tileUrl = '/all/0/0/0.png';
|
|
requestTile(tileUrl, options, function(err, res) {
|
|
assert.ok(!err);
|
|
var parsedBody = JSON.parse(res.body);
|
|
assert.ok(parsedBody.errors);
|
|
assert.ok(parsedBody.errors.length);
|
|
assert.equal(parsedBody.errors[0], 'Unable to fetch http tile: http://127.0.0.1:8033/light/0/0/0.png');
|
|
finish(function(finishErr) {
|
|
done(err || finishErr);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
});
|