Sha256: 7184732885afb0f8c4addebe8787bea8ff6b6dc4fc005b10e98eba6e20b24777

Contents?: true

Size: 1.69 KB

Versions: 11

Compression:

Stored size: 1.69 KB

Contents

require File.expand_path('../test_helper', __FILE__)

# Mock controller used for testing session handling.
class FacebookController < ApplicationController
  authenticates_using_session
  probes_facebook_access_token
  authenticates_using_facebook
  
  def show
    if current_user
      render :text => "User: #{current_user.id}"
    else
      render :text => "No user"
    end
  end
end

class UserWithFb2 < User
  include Authpwn::UserExtensions::FacebookFields
end

class FacebookControllerTest < ActionController::TestCase
  setup do
    @old_user_class = ::User
    Object.send :remove_const, :User
    ::User = UserWithFb2
    
    @user = users(:john)
    @new_token = 'facebook:new_token|boom'
  end
  
  teardown do
    Object.send :remove_const, :User
    ::User = @old_user_class
  end

  test "no facebook token" do
    get :show
    assert_response :success
    assert_nil assigns(:current_user)
  end
  
  test "facebook token for existing user" do
    flexmock(Credentials::Facebook).should_receive(:uid_from_token).
        with(credentials(:john_facebook).key).
        and_return(credentials(:john_facebook).facebook_uid)
    set_session_current_facebook_token credentials(:john_facebook).key
    get :show, {}
    assert_response :success
    assert_equal @user, assigns(:current_user)
  end
  
  test "new facebook token" do    
    set_session_current_facebook_token @new_token
    flexmock(Credentials::Facebook).should_receive(:uid_from_token).
        with(@new_token).and_return('12345678')
    get :show, {}
    assert_response :success
    assert_not_equal @user, assigns(:current_user)
  end
  
  test "auth_controller? is false" do
    assert_equal false, @controller.auth_controller?
  end  
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
authpwn_rails-0.13.4 test/facebook_controller_test.rb
authpwn_rails-0.13.3 test/facebook_controller_test.rb
authpwn_rails-0.13.2 test/facebook_controller_test.rb
authpwn_rails-0.13.1 test/facebook_controller_test.rb
authpwn_rails-0.13.0 test/facebook_controller_test.rb
authpwn_rails-0.12.1 test/facebook_controller_test.rb
authpwn_rails-0.12.0 test/facebook_controller_test.rb
authpwn_rails-0.11.1 test/facebook_controller_test.rb
authpwn_rails-0.11.0 test/facebook_controller_test.rb
authpwn_rails-0.10.12 test/facebook_controller_test.rb
authpwn_rails-0.10.11 test/facebook_controller_test.rb