Sha256: a3218f9cb10837b0a98d48a19d2ca2744642b735e799d69a9bd2885c14755779

Contents?: true

Size: 1.72 KB

Versions: 21

Compression:

Stored size: 1.72 KB

Contents

require 'spec_helper.rb'

describe OpenIDConnect::Server::IdToken do
  let(:request)     { Rack::MockRequest.new app }
  let :app do
    OpenIDConnect::Server::IdToken.new do |req, res|
      res.id_token = id_token
    end
  end
  let :env do
    Rack::MockRequest.env_for(
      '/id_token',
      :params => params
    )
  end
  let :params do
    {:id_token => id_token.to_jwt(private_key) }
  end
  let :id_token do
    OpenIDConnect::ResponseObject::IdToken.new(
      :iss => 'https://server.example.com',
      :user_id => 'user_id',
      :aud => 'client_id',
      :exp => 1313424327,
      :secret => 'secret'
    )
  end
  subject { request.post('/id_token', :params => params) }

  context 'when valid id_token is given' do
    it 'should extract it' do
      status, header, response = app.call(env)
      status.should == 200
      json = response.body.first
      json.should include '"aud":"client_id"'
      json.should include '"user_id":"user_id"'
      json.should include '"exp":1313424327'
      json.should include '"iss":"https://server.example.com"'
    end
  end

  context 'otherwise' do
    context 'when missing' do
      let :params do
        {}
      end
      it do
        status, header, response = app.call(env)
        status.should == 400
        response.body.first.should include '"error":"invalid_request"'
      end
    end

    context 'when rejected by authenticator' do
      let :app do
        OpenIDConnect::Server::IdToken.new do |req, res|
          req.invalid_id_token! 'Expired or Invalid Format'
        end
      end
      it do
        status, header, response = app.call(env)
        status.should == 400
        response.body.first.should include '"error":"invalid_id_token"'
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
openid_connect-0.0.32 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.31 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.30 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.29 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.28 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.27 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.26 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.25 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.24 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.23 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.22 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.21 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.20 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.19 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.18 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.17 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.16 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.15 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.14 spec/openid_connect/server/id_token_spec.rb
openid_connect-0.0.13 spec/openid_connect/server/id_token_spec.rb