Sha256: ae5c72fad59cff9e37f357bb1610bea526a276d71d6ad715f1053d895d8be4ab

Contents?: true

Size: 1.72 KB

Versions: 4

Compression:

Stored size: 1.72 KB

Contents

require 'spec_helper'
require 'rack/oauth2'

describe "Token request" do
  let(:client) { FactoryGirl.create :client }

  let(:server) { Capybara::Server.new(Capybara.app).boot }
  let(:oauth) do
    Rack::OAuth2::Client.new(
      identifier: client.identifier,
      secret: client.secret,
      redirect_uri: client.redirect_uri,
      host: server.host,
      port: server.port,
      scheme: 'http'
    )
  end

  let(:user) { FactoryGirl.create :user }

  context "authorization code" do
    let(:code) { FactoryGirl.create :authorization_code, user: user }
    before { oauth.authorization_code = code.token }
    subject { oauth.access_token! }
    let(:user_token) { user.access_tokens.last }

    its(:access_token) { should == user_token.token }
    its(:refresh_token) { should == user_token.refresh_token.token }
  end

  context "client credentials" do
    subject { oauth.access_token! }
    let(:client_token) { client.access_tokens.last }

    its(:access_token) { should == client_token.token }
    its(:refresh_token) { should be_nil }
  end

  context "refresh token" do
    let(:refresh_token) { FactoryGirl.create :refresh_token, user: user, client: client }
    before { oauth.refresh_token = refresh_token.token }
    subject { oauth.access_token! }
    let(:access_token) { refresh_token.access_tokens.last }

    its(:access_token) { should == access_token.token }
    its(:refresh_token) { should be_nil }
  end

  context "password" do
    before { oauth.resource_owner_credentials = user.email, user.password }
    subject { oauth.access_token! }
    let(:user_token) { user.access_tokens.last }

    its(:access_token) { should == user_token.token }
    its(:refresh_token) { should == user_token.refresh_token.token }
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
oa2c-0.1.2 spec/features/token_request_spec.rb
oa2c-0.1.1 spec/requests/token_request_spec.rb
oa2c-0.1.0 spec/requests/token_request_spec.rb
oa2c-0.0.2 spec/requests/token_request_spec.rb