| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 | 
							- // 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();
 
-         });
 
-     });
 
- });
 
 
  |