176 lines
5.5 KiB
JavaScript
176 lines
5.5 KiB
JavaScript
var test = require('tape'),
|
|
pathToObjectUnderTest = '../../lib/getOauthParameters',
|
|
getOauthParameters = require(pathToObjectUnderTest);
|
|
|
|
test('getOauthParameters exists and returns a function', function(t){
|
|
t.plan(4);
|
|
|
|
t.ok(getOauthParameters, 'getOauthParameters Exists');
|
|
t.equal(typeof getOauthParameters, 'function', 'getOauthParameters is a function');
|
|
|
|
var resultingFunction = getOauthParameters();
|
|
|
|
t.ok(resultingFunction, 'resultingFunction Exists');
|
|
t.equal(typeof resultingFunction, 'function', 'resultingFunction is a function');
|
|
});
|
|
|
|
test('getOauthParameters gets all context data from request and query string', function(t){
|
|
t.plan(3);
|
|
|
|
var authServer = {},
|
|
endEvent,
|
|
fakeRequest = {
|
|
url: '/?meh=majigger&scope=qwe,asd',
|
|
headers: {
|
|
authorization: 'bearer 123456'
|
|
},
|
|
readable: true,
|
|
on: function(event, callback){
|
|
if(event === 'data'){
|
|
setTimeout(function(){
|
|
callback('foo=bar');
|
|
callback('&stuff=thing');
|
|
callback('&meh=ishouldntbehere');
|
|
endEvent();
|
|
}, 0);
|
|
}
|
|
|
|
if(event === 'end'){
|
|
endEvent = callback;
|
|
}
|
|
}
|
|
},
|
|
expectedContext = {
|
|
foo: 'bar',
|
|
stuff: 'thing',
|
|
meh: 'majigger',
|
|
access_token: '123456',
|
|
scope: [
|
|
'qwe',
|
|
'asd'
|
|
]
|
|
},
|
|
scopedVersion = getOauthParameters.bind(authServer, function(){
|
|
t.deepEqual(arguments[0], expectedContext, 'got correct context');
|
|
t.equal(arguments[1], 'foo', 'arguments[1] correct');
|
|
t.equal(arguments[2], 'bar', 'arguments[2] correct');
|
|
}),
|
|
resultingFunction = scopedVersion();
|
|
|
|
resultingFunction(fakeRequest, 'foo', 'bar');
|
|
});
|
|
|
|
test('getOauthParameters handels no data from request', function(t){
|
|
t.plan(3);
|
|
|
|
var authServer = {},
|
|
fakeRequest = {
|
|
url: '/?meh=majigger&scope=qwe,asd',
|
|
headers: {
|
|
authorization: 'bearer 123456'
|
|
},
|
|
readable: true,
|
|
on: function(event, callback){
|
|
if(event === 'end'){
|
|
callback();
|
|
}
|
|
}
|
|
},
|
|
expectedContext = {
|
|
meh: 'majigger',
|
|
access_token: '123456',
|
|
scope: [
|
|
'qwe',
|
|
'asd'
|
|
]
|
|
},
|
|
scopedVersion = getOauthParameters.bind(authServer, function(){
|
|
t.deepEqual(arguments[0], expectedContext, 'got correct context');
|
|
t.equal(arguments[1], 'foo', 'arguments[1] correct');
|
|
t.equal(arguments[2], 'bar', 'arguments[2] correct');
|
|
}),
|
|
resultingFunction = scopedVersion();
|
|
|
|
resultingFunction(fakeRequest, 'foo', 'bar');
|
|
});
|
|
|
|
test('getOauthParameters handels access_token in url', function(t){
|
|
t.plan(3);
|
|
|
|
var authServer = {},
|
|
fakeRequest = {
|
|
url: '/?meh=majigger&scope=qwe,asd&access_token=123456',
|
|
readable: false
|
|
},
|
|
expectedContext = {
|
|
meh: 'majigger',
|
|
access_token: '123456',
|
|
scope: [
|
|
'qwe',
|
|
'asd'
|
|
]
|
|
},
|
|
scopedVersion = getOauthParameters.bind(authServer, function(){
|
|
t.deepEqual(arguments[0], expectedContext, 'got correct context');
|
|
t.equal(arguments[1], 'foo', 'arguments[1] correct');
|
|
t.equal(arguments[2], 'bar', 'arguments[2] correct');
|
|
}),
|
|
resultingFunction = scopedVersion();
|
|
|
|
resultingFunction(fakeRequest, 'foo', 'bar');
|
|
});
|
|
|
|
|
|
test('getOauthParameters gets all context data from request and query string', function(t){
|
|
t.plan(1);
|
|
|
|
var authServer = {},
|
|
endEvent,
|
|
destroyed,
|
|
fakeRequest = {
|
|
url: '/?meh=majigger&scope=qwe,asd',
|
|
headers: {
|
|
authorization: 'bearer 123456'
|
|
},
|
|
|
|
readable: true,
|
|
on: function(event, callback){
|
|
if(destroyed){
|
|
return;
|
|
}
|
|
|
|
if(event === 'data'){
|
|
setTimeout(function(){
|
|
for (var i = 0; i < 1e6 + 2; i++) {
|
|
if(destroyed){
|
|
break;
|
|
}
|
|
callback('1');
|
|
}
|
|
|
|
endEvent();
|
|
}, 0);
|
|
}
|
|
|
|
if(event === 'end'){
|
|
endEvent = function(){
|
|
if(!destroyed){
|
|
callback();
|
|
}
|
|
};
|
|
}
|
|
},
|
|
connection: {
|
|
destroy: function() {
|
|
t.pass('connection destroyed');
|
|
destroyed = true;
|
|
}
|
|
}
|
|
},
|
|
scopedVersion = getOauthParameters.bind(authServer, function(){
|
|
t.fail('should have destroyed connection');
|
|
}),
|
|
resultingFunction = scopedVersion();
|
|
|
|
resultingFunction(fakeRequest);
|
|
}); |