Sha256: 6a3cae6a9cfd08f183f8b447648a9017d41de16442d4b3bf0e4936d37973abae

Contents?: true

Size: 1.52 KB

Versions: 2

Compression:

Stored size: 1.52 KB

Contents

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

class UserWithEmail < User
  include Authpwn::UserExtensions::EmailField
end

class EmailFieldTest < ActiveSupport::TestCase
  def setup
    @user = UserWithEmail.new email: 'blah@gmail.com'
    
    @john = UserWithEmail.find_by_id(users(:john).id)
    @jane = UserWithEmail.find_by_id(users(:jane).id)
    @bill = UserWithEmail.find_by_id(users(:bill).id)
  end
  
  test 'setup' do
    assert @user.valid?
  end

  test 'email presence' do
    @user.email = nil
    assert !@user.valid?
  end
  
  test 'email_credential' do
    assert_equal credentials(:john_email), @john.email_credential
    assert_equal credentials(:jane_email), @jane.email_credential
    assert_nil @bill.email_credential
  end

  test 'email length' do
    @user.email = 'abcde' * 25 + '@mit.edu'
    assert !@user.valid?, 'Overly long email'
  end
  
  test 'email format' do
    ['cos tan@gmail.com', 'costan@x@mit.edu'].each do |email|
      @user.email = email
      assert !@user.valid?, "Bad email format - #{email}"
    end    
  end

  test 'email' do
    assert_equal credentials(:john_email).email, @john.email
    assert_equal credentials(:jane_email).email, @jane.email
    assert_nil @bill.email
  end

  test 'with_email' do
    assert_equal users(:john),
                 UserWithEmail.with_email(credentials(:john_email).email)
    assert_equal users(:jane),
                 UserWithEmail.with_email(credentials(:jane_email).email) 
    assert_nil UserWithEmail.with_email('nosuch@email.com')
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
authpwn_rails-0.14.1 test/user_extensions/email_field_test.rb
authpwn_rails-0.14.0 test/user_extensions/email_field_test.rb