diff options
| author | azul <azul@riseup.net> | 2014-04-17 10:12:05 +0200 | 
|---|---|---|
| committer | azul <azul@riseup.net> | 2014-04-17 10:12:05 +0200 | 
| commit | 3513ad74f950b113af1ba1e3d06bc6a55c48fde5 (patch) | |
| tree | db49ebd4428053d5c8d720275b77594a531a1ad1 /test/unit/local_email_test.rb | |
| parent | cb6442c344d6bdaf52c3878b2de2fcf4d85f2648 (diff) | |
| parent | 3d3688647fab7049e5b531c45b85c1e46a1d528f (diff) | |
Merge pull request #146 from azul/refactor/engines
Refactor/engines
Diffstat (limited to 'test/unit/local_email_test.rb')
| -rw-r--r-- | test/unit/local_email_test.rb | 65 | 
1 files changed, 65 insertions, 0 deletions
| diff --git a/test/unit/local_email_test.rb b/test/unit/local_email_test.rb new file mode 100644 index 0000000..20ee7f1 --- /dev/null +++ b/test/unit/local_email_test.rb @@ -0,0 +1,65 @@ +require 'test_helper' + +class LocalEmailTest < ActiveSupport::TestCase + +  test "appends domain" do +    local = LocalEmail.new(handle) +    assert_equal LocalEmail.new(email), local +    assert local.valid? +  end + +  test "returns handle" do +    local = LocalEmail.new(email) +    assert_equal handle, local.handle +  end + +  test "prints full email" do +    local = LocalEmail.new(handle) +    assert_equal email, "#{local}" +  end + +  test "validates domain" do +    local = LocalEmail.new(Faker::Internet.email) +    assert !local.valid? +    assert_equal ["needs to end in @#{LocalEmail.domain}"], local.errors[:email] +  end + +  test "blacklists rfc2142" do +    black_listed = LocalEmail.new('hostmaster') +    assert !black_listed.valid? +  end + +  test "blacklists etc passwd" do +    black_listed = LocalEmail.new('nobody') +    assert !black_listed.valid? +  end + +  test "whitelist overwrites automatic blacklists" do +    with_config handle_whitelist: ['nobody', 'hostmaster'] do +      white_listed = LocalEmail.new('nobody') +      assert white_listed.valid? +      white_listed = LocalEmail.new('hostmaster') +      assert white_listed.valid? +    end +  end + +  test "blacklists from config" do +    black_listed = LocalEmail.new('www-data') +    assert !black_listed.valid? +  end + +  test "blacklist from config overwrites whitelist" do +    with_config handle_whitelist: ['www-data'] do +      black_listed = LocalEmail.new('www-data') +      assert !black_listed.valid? +    end +  end + +  def handle +    @handle ||= Faker::Internet.user_name +  end + +  def email +    handle + "@" + APP_CONFIG[:domain] +  end +end | 
