GT2/GT2-Android/node_modules/reqwest/make/tests.js

90 lines
2.8 KiB
JavaScript

var exec = require('child_process').exec
, fs = require('fs')
, Connect = require('connect')
, dispatch = require('dispatch')
, mime = require('mime')
, DelayedStream = require('delayed-stream')
, getMime = function(ext) {
return mime.lookup(ext == 'jsonp' ? 'js' : ext)
}
var routes = {
'/': function (req, res) {
res.write(fs.readFileSync('./tests/tests.html', 'utf8'))
res.end()
},
'/tests/timeout$': function (req, res) {
var delayed = DelayedStream.create(req)
setTimeout(function() {
res.writeHead(200, {
'Expires': 0
, 'Cache-Control': 'max-age=0, no-cache, no-store'
})
req.query.callback && res.write(req.query.callback + '(')
res.write(JSON.stringify({ method: req.method, query: req.query, headers: req.headers }))
req.query.callback && res.write(');')
delayed.pipe(res)
}, 2000)
},
'/tests/204': function(req, res) {
res.writeHead(204);
res.end();
},
'(([\\w\\-\\/\\.]+)\\.(css|js|json|jsonp|html|xml)$)': function (req, res, next, uri, file, ext) {
res.writeHead(200, {
'Expires': 0
, 'Cache-Control': 'max-age=0, no-cache, no-store'
, 'Content-Type': getMime(ext)
})
if (req.query.echo !== undefined) {
ext == 'jsonp' && res.write((req.query.callback || req.query.testCallback || 'echoCallback') + '(')
res.write(JSON.stringify({ method: req.method, query: req.query, headers: req.headers }))
ext == 'jsonp' && res.write(');')
} else {
res.write(fs.readFileSync('./' + file + '.' + ext))
}
res.end()
}
}
Connect.createServer(Connect.query(), dispatch(routes)).listen(1234)
var otherOriginRoutes = {
'/get-value': function (req, res) {
res.writeHead(200, {
'Access-Control-Allow-Origin': req.headers.origin,
'Content-Type': 'text/plain'
})
res.end('hello')
},
'/set-cookie': function (req, res) {
res.writeHead(200, {
'Access-Control-Allow-Origin': req.headers.origin,
'Access-Control-Allow-Credentials': 'true',
'Content-Type': 'text/plain',
'Set-Cookie': 'cookie=hello'
})
res.end('Set a cookie!')
},
'/get-cookie-value': function (req, res) {
var cookies = {}
, value
req.headers.cookie && req.headers.cookie.split(';').forEach(function( cookie ) {
var parts = cookie.split('=')
cookies[ parts[ 0 ].trim() ] = ( parts[ 1 ] || '' ).trim()
})
value = cookies.cookie
res.writeHead(200, {
'Access-Control-Allow-Origin': req.headers.origin,
'Access-Control-Allow-Credentials': 'true',
'Content-Type': 'text/plain'
})
res.end(value)
}
}
Connect.createServer(Connect.query(), dispatch(otherOriginRoutes)).listen(5678)