user_test.rb 1.71 KB
require File.dirname(__FILE__) + '/../test_helper'

class UserTest < ActiveSupport::TestCase

  should 'find with omniauth params' do
    user = fast_create(User)
    user.settings[:oauth_providers] = [:test => {}]
    user.save!
    auth = {:info => OpenStruct.new({:email => user.email})}
    assert_equal user, User.find_with_omniauth(OpenStruct.new(auth))
  end

  should 'do not return user if there is no provider' do
    user = fast_create(User)
    auth = {:info => OpenStruct.new({:email => user.email})}
    assert_equal nil, User.find_with_omniauth(OpenStruct.new(auth))
  end

  should 'password is not required if there is a oauth provider' do
    User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [:test])
  end

  should 'password is required if there is a oauth provider' do
    user = User.new(:email => 'testoauth@example.com', :login => 'testoauth')
    user.save
    assert user.errors[:password].present?
  end

  should 'activate user when created with oauth' do
    user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [:test])
    assert user.activated?
  end

  should 'not activate user when created without oauth' do
    user = fast_create(User)
    assert !user.activated?
  end

  should 'not make activation code when created with oauth' do
    user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :oauth_providers => [:test])
    assert !user.activation_code
  end

  should 'make activation code when created without oauth' do
    user = User.create!(:email => 'testoauth@example.com', :login => 'testoauth', :password => 'test', :password_confirmation => 'test')
    assert user.activation_code
  end

end