Sha256: a61a87b99058ace7728661ad6b321f9521f5d4bacd6afb78ca118f81403e5745

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

require 'helper'

class TestToken < Test::Unit::TestCase
  include Rack::Test::Methods
  
  def setup
    create_client
    create_account
  end
  
  def teardown
    destroy_client
    destroy_account
  end
  
  def app
    Rack::Builder.new do
      map '/oauth2' do
        map '/token' do
          run Rack::CouchdbOAuth2::TokenEndpoint.new    
        end
      end
      
      map '/db' do
        run proc {|env| 
          token = AccessToken.find_by_env(env)
          raise 'no token' if token.nil?
          [200, {}, 'OK']
        }
      end
    end
  end
  
  def test_find_by_env
    post 'oauth2/token', :grant_type => 'password', :client_id => @client.identity, :client_secret => @client.secret, :username => @account.email, :password => 'abc123'
    assert last_response.ok?
    body = ActiveSupport::JSON.decode(last_response.body)
    access_token = body['access_token']
    refresh_token = body['refresh_token']
    assert_not_nil(access_token)
    assert_not_nil(refresh_token)
    assert_equal('bearer', body['token_type'])
    
    assert_raise(RuntimeError) { 
      header 'AUTHORIZATION', nil
      get 'db'
    }
    
    assert_nothing_raised(RuntimeError) { 
      header 'AUTHORIZATION', "Bearer #{access_token}"
      get 'db'
    }
    
    assert_raise(RuntimeError) { 
      header 'AUTHORIZATION', nil
      get 'db'
    }
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rack-couchdb-oauth2-0.3.0 test/test_token.rb