Skip to content

Commit

Permalink
Test case for overridden tokenParams function.
Browse files Browse the repository at this point in the history
  • Loading branch information
jaredhanson committed Mar 8, 2014
1 parent 08af9c4 commit b6c8ffe
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions test/oauth2.sub.tokenparams.test.js
@@ -0,0 +1,72 @@
var chai = require('chai')
, OAuth2Strategy = require('../lib/strategy')
, util = require('util');


function MockOAuth2Strategy(options, verify) {
OAuth2Strategy.call(this, options, verify);
}
util.inherits(MockOAuth2Strategy, OAuth2Strategy);

MockOAuth2Strategy.prototype.tokenParams = function(options) {
return { type: options.type };
}


describe('OAuth2Strategy', function() {

describe('subclass that overrides tokenParams function', function() {
var strategy = new MockOAuth2Strategy({
authorizationURL: 'https://www.example.com/oauth2/authorize',
tokenURL: 'https://www.example.com/oauth2/token',
clientID: 'ABC123',
clientSecret: 'secret',
callbackURL: 'https://www.example.net/auth/example/callback',
},
function(accessToken, refreshToken, profile, done) {
if (accessToken == '2YotnFZFEjr1zCsicMWpAA' && refreshToken == 'tGzv3JOkF0XG5Qx2TlKWIA') {
return done(null, { id: '1234' }, { message: 'Hello' });
}
return done(null, false);
});

// inject a "mock" oauth2 instance
strategy._oauth2.getOAuthAccessToken = function(code, options, callback) {
if (code == 'SplxlOBeZQQYbYS6WxSbIA' && options.grant_type == 'authorization_code' && options.redirect_uri == 'https://www.example.net/auth/example/callback' && options.type == 'web_server') {
callback(null, '2YotnFZFEjr1zCsicMWpAA', 'tGzv3JOkF0XG5Qx2TlKWIA', { token_type: 'example' });
} else {
callback(null, 'wrong-access-token', 'wrong-refresh-token');
}
}

describe('handling an authorized return request', function() {
var user
, info;

before(function(done) {
chai.passport.use(strategy)
.success(function(u, i) {
user = u;
info = i;
done();
})
.req(function(req) {
req.query = {};
req.query.code = 'SplxlOBeZQQYbYS6WxSbIA';
})
.authenticate({ type: 'web_server' });
});

it('should supply user', function() {
expect(user).to.be.an.object;
expect(user.id).to.equal('1234');
});

it('should supply info', function() {
expect(info).to.be.an.object;
expect(info.message).to.equal('Hello');
});
});
});

});

0 comments on commit b6c8ffe

Please sign in to comment.