can
Version:
MIT-licensed, client-side, JavaScript framework that makes building rich web applications easy.
79 lines (69 loc) • 1.78 kB
JavaScript
require([
'require',
'doh/main',
'dojo/request',
'dojo/node!http',
'dojo/node!url',
'dojo/Deferred'
], function(require, doh, request, http, url, Deferred){
var serverPort = 8142,
serverUrl = 'http://localhost:8124';
var responseDataMap = {
'fooBar': '{ "foo": "bar" }',
'invalidJson': '<not>JSON</not>'
};
function getRequestUrl(dataKey){
return serverUrl + '?dataKey=' + dataKey;
}
function getResponseData(request){
var parseQueryString = true;
var urlInfo = url.parse(request.url, parseQueryString);
return responseDataMap[urlInfo.query.dataKey];
}
var server = http.createServer(function(request, response){
var body = getResponseData(request);
response.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'application/json'
});
response.write(body);
response.end();
});
function setUp(){ /* Do nothing */ }
function tearDown(){ server.close(); }
server.on('listening', function(){
var tests = [
{
name: 'test',
runTest: function(t){
var d = new doh.Deferred();
request.get(getRequestUrl('fooBar'), {
handleAs: 'json'
}).then(d.getTestCallback(function(data){
t.is({ foo: 'bar' }, data);
}), function(err){
d.errback(err);
});
return d;
}
},
{
name: 'test-handler-exception',
runTest: function(t){
var d = new doh.Deferred();
request.get(getRequestUrl('invalidJson'), {
handleAs: 'json'
}).then(function(){
d.errback(new Error('Expected a handler exception.'));
}, d.getTestCallback(function(err){
doh.assertTrue(err instanceof SyntaxError);
}));
return d;
}
}
];
doh.register('tests.request.node', tests, setUp, tearDown);
doh.run();
});
server.listen(8124);
});