X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Fnode_modules%2Frequest%2Fnode_modules%2Fhawk%2Ftest%2Futils.js;fp=org.simantics.maps.server%2Fnode%2Fnode-v4.8.0-win-x64%2Fnode_modules%2Fnpm%2Fnode_modules%2Frequest%2Fnode_modules%2Fhawk%2Ftest%2Futils.js;h=a2f17e590d30e5371a657aabd20e428e1112722d;hb=2529be6d456deeb07c128603ce4971f1dc29b695;hp=0000000000000000000000000000000000000000;hpb=2636fc31c16c23711cf2b06a4ae8537bba9c1d35;p=simantics%2Fdistrict.git diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/request/node_modules/hawk/test/utils.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/request/node_modules/hawk/test/utils.js new file mode 100644 index 00000000..a2f17e59 --- /dev/null +++ b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/node_modules/request/node_modules/hawk/test/utils.js @@ -0,0 +1,149 @@ +// Load modules + +var Code = require('code'); +var Hawk = require('../lib'); +var Lab = require('lab'); +var Package = require('../package.json'); + + +// Declare internals + +var internals = {}; + + +// Test shortcuts + +var lab = exports.lab = Lab.script(); +var describe = lab.experiment; +var it = lab.test; +var expect = Code.expect; + + +describe('Utils', function () { + + describe('parseHost()', function () { + + it('returns port 80 for non tls node request', function (done) { + + var req = { + method: 'POST', + url: '/resource/4?filter=a', + headers: { + host: 'example.com', + 'content-type': 'text/plain;x=y' + } + }; + + expect(Hawk.utils.parseHost(req, 'Host').port).to.equal(80); + done(); + }); + + it('returns port 443 for non tls node request', function (done) { + + var req = { + method: 'POST', + url: '/resource/4?filter=a', + headers: { + host: 'example.com', + 'content-type': 'text/plain;x=y' + }, + connection: { + encrypted: true + } + }; + + expect(Hawk.utils.parseHost(req, 'Host').port).to.equal(443); + done(); + }); + + it('returns port 443 for non tls node request (IPv6)', function (done) { + + var req = { + method: 'POST', + url: '/resource/4?filter=a', + headers: { + host: '[123:123:123]', + 'content-type': 'text/plain;x=y' + }, + connection: { + encrypted: true + } + }; + + expect(Hawk.utils.parseHost(req, 'Host').port).to.equal(443); + done(); + }); + + it('parses IPv6 headers', function (done) { + + var req = { + method: 'POST', + url: '/resource/4?filter=a', + headers: { + host: '[123:123:123]:8000', + 'content-type': 'text/plain;x=y' + }, + connection: { + encrypted: true + } + }; + + var host = Hawk.utils.parseHost(req, 'Host'); + expect(host.port).to.equal('8000'); + expect(host.name).to.equal('[123:123:123]'); + done(); + }); + + it('errors on header too long', function (done) { + + var long = ''; + for (var i = 0; i < 5000; ++i) { + long += 'x'; + } + + expect(Hawk.utils.parseHost({ headers: { host: long } })).to.be.null(); + done(); + }); + }); + + describe('parseAuthorizationHeader()', function () { + + it('errors on header too long', function (done) { + + var long = 'Scheme a="'; + for (var i = 0; i < 5000; ++i) { + long += 'x'; + } + long += '"'; + + var err = Hawk.utils.parseAuthorizationHeader(long, ['a']); + expect(err).to.be.instanceof(Error); + expect(err.message).to.equal('Header length too long'); + done(); + }); + }); + + describe('version()', function () { + + it('returns the correct package version number', function (done) { + + expect(Hawk.utils.version()).to.equal(Package.version); + done(); + }); + }); + + describe('unauthorized()', function () { + + it('returns a hawk 401', function (done) { + + expect(Hawk.utils.unauthorized('kaboom').output.headers['WWW-Authenticate']).to.equal('Hawk error="kaboom"'); + done(); + }); + + it('supports attributes', function (done) { + + expect(Hawk.utils.unauthorized('kaboom', { a: 'b' }).output.headers['WWW-Authenticate']).to.equal('Hawk a="b", error="kaboom"'); + done(); + }); + }); +});