Sha256: 002b1555a63df09996dc9e3393d18177c26c0595974b3e25f1b72643f9fe79ab

Contents?: true

Size: 1.97 KB

Versions: 5

Compression:

Stored size: 1.97 KB

Contents

require 'test_helper'

class AuthorizationTest < ActiveSupport::TestCase
  fixtures :all  
  
  test "should find existing from hash" do
    auth = Authorization.create_from_hash(auth_hash)    
    assert_equal(auth.email, 'email@example.com')
    existing = Authorization.find_or_create_from_hash(auth_hash.merge('info' => {'email' => 'changed@example.com'}))
    assert_equal(auth, existing)
    assert_equal(existing.email, 'changed@example.com')    
  end
  
  test "should create new Authorization and User from hash" do
    assert_difference User, :count, 1 do
      assert_difference Authorization, :count, 1 do
        Authorization.create_from_hash(auth_hash)
      end
    end
  end
  
  test "should create Authorization for existing user with hash" do
    assert_difference users(:quentin).authorizations, :count, 1 do
      assert_difference Authorization, :count, 1 do
        Authorization.create_from_hash(auth_hash, users(:quentin))
      end      
    end
  end
  
  test "should allow authorization to be destroyed" do
    authorization1 = Authorization.create_from_hash(auth_hash, users(:quentin))              
    authorization2 = Authorization.create_from_hash(auth_hash.merge('provider' => 'facebook'), users(:quentin))                      
    
    assert authorization2.destroy
    assert authorization2.errors[:base].empty?, 'Authorization should have not have an error on :base'    
  end
  
  
  test "should not allow authorization to be destroyed if it's the only one left and the user would be invalid without it" do
    authorization = Authorization.create_from_hash(auth_hash, users(:quentin))              
    authorization.destroy    
    assert !authorization.errors[:base].empty?, 'Authorization should have an error on :base'
  end
  
  def auth_hash
    OmniAuth.config.mock_auth[:default].merge({ 'provider' => 'twitter',
      'uid' => '12345',
      'info' => {
        'nickname' => 'omniauthuser',
        'email' => 'email@example.com'        
      }
    })
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
community_engine-3.2.0 test/unit/authorization_test.rb
community_engine-3.0.0 test/unit/authorization_test.rb
community_engine-2.3.2 test/unit/authorization_test.rb
community_engine-2.3.1 test/unit/authorization_test.rb
community_engine-2.3.0 test/unit/authorization_test.rb