Sha256: 5a57d88e312654b059b7ce0872c78548073e4a7b07308c07410ed29468b49355

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

require 'spec_helper'

describe TokenEndpoint do
  describe 'password grant type' do
    context 'with valid params' do
      before do
        @user = User.create! :email => 'ryan@socialcast.com', :name => 'ryan sonnek', :password => 'test'
        @client = Client.create! :name => 'example', :redirect_uri => 'http://localhost', :website => 'http://localhost'

        params = {
          :grant_type => 'password',
          :client_id => @client.identifier,
          :client_secret => @client.secret,
          :username => @user.email,
          :password => 'test'
        }

        post '/oauth2/token', params
      end
      it { response.code.to_i.should == 200 }
      it 'returns json' do
        token = AccessToken.last
        refresh_token = RefreshToken.last
        expected = {
          :token_type => 'bearer',
          :expires_in => 899,
          :refresh_token => refresh_token.token,
          :access_token => token.token
        }
        response.body.should == expected.to_json
      end
    end

    context 'with invalid params' do
      before do
        @user = User.create! :email => 'ryan@socialcast.com', :name => 'ryan sonnek', :password => 'test'
        @client = Client.create! :name => 'example', :redirect_uri => 'http://localhost', :website => 'http://localhost'

        params = {
          :grant_type => 'password',
          :client_id => @client.identifier,
          :client_secret => @client.secret,
          :username => @user.email,
          :password => 'bar'
        }

        post '/oauth2/token', params
      end
      it { response.code.to_i.should == 400 }
      it 'returns json' do
        expected = {
          :error_description => "The provided access grant is invalid, expired, or revoked (e.g. invalid assertion, expired authorization token, bad end-user password credentials, or mismatching authorization code and redirection URI).",
          :error => "invalid_grant"
        }
        response.body.should == expected.to_json
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
devise_oauth2_providable-0.1.6 spec/rails_app/spec/integration/token_endpoint_spec.rb