You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					71 lines
				
				2.2 KiB
			
		
		
			
		
	
	
					71 lines
				
				2.2 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								// Load modules
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var Code = require('code');
							 | 
						||
| 
								 | 
							
								var Hawk = require('../lib');
							 | 
						||
| 
								 | 
							
								var Lab = require('lab');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 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('Crypto', function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    describe('generateNormalizedString()', function () {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        it('should return a valid normalized string', function (done) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            expect(Hawk.crypto.generateNormalizedString('header', {
							 | 
						||
| 
								 | 
							
								                ts: 1357747017,
							 | 
						||
| 
								 | 
							
								                nonce: 'k3k4j5',
							 | 
						||
| 
								 | 
							
								                method: 'GET',
							 | 
						||
| 
								 | 
							
								                resource: '/resource/something',
							 | 
						||
| 
								 | 
							
								                host: 'example.com',
							 | 
						||
| 
								 | 
							
								                port: 8080
							 | 
						||
| 
								 | 
							
								            })).to.equal('hawk.1.header\n1357747017\nk3k4j5\nGET\n/resource/something\nexample.com\n8080\n\n\n');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            done();
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        it('should return a valid normalized string (ext)', function (done) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            expect(Hawk.crypto.generateNormalizedString('header', {
							 | 
						||
| 
								 | 
							
								                ts: 1357747017,
							 | 
						||
| 
								 | 
							
								                nonce: 'k3k4j5',
							 | 
						||
| 
								 | 
							
								                method: 'GET',
							 | 
						||
| 
								 | 
							
								                resource: '/resource/something',
							 | 
						||
| 
								 | 
							
								                host: 'example.com',
							 | 
						||
| 
								 | 
							
								                port: 8080,
							 | 
						||
| 
								 | 
							
								                ext: 'this is some app data'
							 | 
						||
| 
								 | 
							
								            })).to.equal('hawk.1.header\n1357747017\nk3k4j5\nGET\n/resource/something\nexample.com\n8080\n\nthis is some app data\n');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            done();
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        it('should return a valid normalized string (payload + ext)', function (done) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            expect(Hawk.crypto.generateNormalizedString('header', {
							 | 
						||
| 
								 | 
							
								                ts: 1357747017,
							 | 
						||
| 
								 | 
							
								                nonce: 'k3k4j5',
							 | 
						||
| 
								 | 
							
								                method: 'GET',
							 | 
						||
| 
								 | 
							
								                resource: '/resource/something',
							 | 
						||
| 
								 | 
							
								                host: 'example.com',
							 | 
						||
| 
								 | 
							
								                port: 8080,
							 | 
						||
| 
								 | 
							
								                hash: 'U4MKKSmiVxk37JCCrAVIjV/OhB3y+NdwoCr6RShbVkE=',
							 | 
						||
| 
								 | 
							
								                ext: 'this is some app data'
							 | 
						||
| 
								 | 
							
								            })).to.equal('hawk.1.header\n1357747017\nk3k4j5\nGET\n/resource/something\nexample.com\n8080\nU4MKKSmiVxk37JCCrAVIjV/OhB3y+NdwoCr6RShbVkE=\nthis is some app data\n');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            done();
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								});
							 |