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();
 });
Example #4
0
 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();
 });
Example #6
0
 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();
 });
Example #8
0
 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();
    });