before(function(done) { chai.connect.use(passport.session()) .req(function(req) { request = req; req._passport = {}; req._passport.instance = {}; req._passport.instance.deserializeUser = function(user, req, done) { done(null, { id: user }); }; req._passport.session = {}; req._passport.session.user = '******'; }) .next(function(err) { error = err; done(); }) .dispatch(); });
before(function(done) { chai.connect.use('express', authenticate(passport, 'success', { successMessage: 'Login complete', successRedirect: 'http://www.example.com/account' })) .req(function(req) { request = req; req.session = {}; req.session.messages = [ 'I exist!' ]; req.logIn = function(user, options, done) { this.user = user; done(); }; }) .end(function(res) { response = res; done(); }) .dispatch(); });
before(function(done) { chai.connect.use(transactionLoader(server)) .req(function(req) { request = req; req.body = { 'transaction_id': '1234' }; req.session = {}; req.session.authorize = {}; req.session.authorize['1234'] = { client: '1', redirectURI: 'http://www.example.com/auth/callback', req: { redirectURI: 'http://www.example.com/auth/callback', foo: 'bar' } }; }) .next(function(e) { err = e; done(); }) .dispatch(); });
before(function(done) { function issue(client, username, passwd, done) { if (client.id !== 'c523') { return done(new Error('incorrect client argument')); } if (username !== 'bob') { return done(new Error('incorrect username argument')); } if (passwd !== 'shh') { return done(new Error('incorrect passwd argument')); } return done(null, 's3cr1t', { 'expires_in': 3600 }) } chai.connect.use(password(issue)) .req(function(req) { req.user = { id: 'c523', name: 'Example' }; req.body = { username: '******', password: '******' }; }) .end(function(res) { response = res; done(); }) .dispatch(); });
before(function(done) { function validate(clientID, redirectURI, done) { if (clientID !== '1234') { return done(new Error('incorrect client argument')); } if (redirectURI !== 'http://example.com/auth/callback') { return done(new Error('incorrect redirectURI argument')); } return done(null, { id: '1234', name: 'Example' }, 'http://example.com/auth/callback'); }; chai.connect.use(authorization(server, validate)) .req(function(req) { request = req; req.query = { response_type: 'code', client_id: '1234', redirect_uri: 'http://example.com/auth/callback' }; req.session = {}; }) .next(function(e) { err = e; done(); }) .dispatch(); });
before(function(done) { chai.connect.use(decision(server)) .req(function(req) { request = req; req.query = {}; req.session = {}; req.session['authorize'] = {}; req.session['authorize']['abc123'] = { protocol: 'oauth2' }; req.user = { id: 'u1234', username: '******' }; req.oauth2 = {}; req.oauth2.transactionID = 'abc123'; req.oauth2.client = { id: 'c5678', name: 'Example' }; req.oauth2.redirectURI = 'http://example.com/auth/callback'; req.oauth2.req = { type: 'code', scope: 'email' }; }) .next(function(e) { err = e; done(); }) .dispatch(); });
before(function(done) { chai.connect.use('express', authenticate('success', { successFlash: { message: 'OK' }, successRedirect: 'http://www.example.com/account' }).bind(passport)) .req(function(req) { request = req; req.session = {}; req.logIn = function(user, options, done) { this.user = user; done(); } req.flash = function(type, msg) { this.message = { type: type, msg: msg } } }) .end(function(res) { response = res; done(); }) .dispatch(); });
before(function(done) { chai.connect.use('express', decision(server, { userProperty: 'other' })) .req(function(req) { request = req; req.query = {}; req.body = {}; req.session = {}; req.session['authorize'] = {}; req.session['authorize']['abc123'] = { protocol: 'oauth2' }; req.other = { id: 'u1234', username: '******' }; req.oauth2 = {}; req.oauth2.transactionID = 'abc123'; req.oauth2.client = { id: 'c5678', name: 'Example' }; req.oauth2.redirectURI = 'http://example.com/auth/callback'; req.oauth2.req = { type: 'code', scope: 'email' }; }) .end(function(res) { response = res; done(); }) .dispatch(); });
before(function(done) { function issue(client, scope, body, authInfo, done) { if (client.id !== 'c123') { return done(new Error('incorrect client argument')); } if (scope.length !== 1) { return done(new Error('incorrect scope argument')); } if (scope[0] !== 'read') { return done(new Error('incorrect scope argument')); } if (body.audience !== 'https://www.example.com/') { return done(new Error('incorrect body argument')); } if (authInfo.ip !== '127.0.0.1') { return done(new Error('incorrect authInfo argument')); } return done(null, 's3cr1t') } chai.connect.use(clientCredentials({ userProperty: 'client' }, issue)) .req(function(req) { req.client = { id: 'c123', name: 'Example' }; req.body = { scope: 'read', audience: 'https://www.example.com/' }; req.authInfo = { ip: '127.0.0.1' }; }) .end(function(res) { response = res; done(); }) .dispatch(); });