]> git.openstreetmap.org Git - rails.git/blobdiff - test/models/acl_test.rb
Merge remote-tracking branch 'upstream/pull/4896'
[rails.git] / test / models / acl_test.rb
index 9d843191206640bcd6a402e3b9119c32e4421019..6bd87729c120db814529bcab02e42497734c1357 100644 (file)
@@ -1,8 +1,66 @@
-require 'test_helper'
+require "test_helper"
 
 class AclTest < ActiveSupport::TestCase
-  # Replace this with your real tests.
-  def test_truth
-    assert true
+  def test_k_required
+    acl = create(:acl)
+    assert_predicate acl, :valid?
+    acl.k = nil
+    assert_not_predicate acl, :valid?
+  end
+
+  def test_no_account_creation_by_subnet
+    assert_not Acl.no_account_creation("192.168.1.1")
+    create(:acl, :address => "192.168.0.0/16", :k => "no_account_creation")
+    assert Acl.no_account_creation("192.168.1.1")
+  end
+
+  def test_no_account_creation_by_domain
+    assert_not Acl.no_account_creation("192.168.1.1", :domain => "example.com")
+    assert_not Acl.no_account_creation("192.168.1.1", :domain => "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_account_creation")
+    assert Acl.no_account_creation("192.168.1.1", :domain => "example.com")
+    assert Acl.no_account_creation("192.168.1.1", :domain => "test.example.com")
+  end
+
+  def test_no_account_creation_by_mx
+    assert_not Acl.no_account_creation("192.168.1.1", :mx => "mail.example.com")
+    create(:acl, :mx => "mail.example.com", :k => "no_account_creation")
+    assert Acl.no_account_creation("192.168.1.1", :mx => "mail.example.com")
+  end
+
+  def test_allow_account_creation_by_subnet
+    assert_not Acl.allow_account_creation("192.168.1.1")
+    create(:acl, :address => "192.168.0.0/16", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1")
+  end
+
+  def test_allow_account_creation_by_domain
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert_not Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+    create(:acl, :domain => "example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "example.com")
+    assert Acl.allow_account_creation("192.168.1.1", :domain => "test.example.com")
+  end
+
+  def test_allow_account_creation_by_mx
+    assert_not Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+    create(:acl, :mx => "mail.example.com", :k => "allow_account_creation")
+    assert Acl.allow_account_creation("192.168.1.1", :mx => "mail.example.com")
+  end
+
+  def test_no_note_comment_by_domain
+    assert_not Acl.no_note_comment("192.168.1.1", "example.com")
+    assert_not Acl.no_note_comment("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_note_comment")
+    assert Acl.no_note_comment("192.168.1.1", "example.com")
+    assert Acl.no_note_comment("192.168.1.1", "test.example.com")
+  end
+
+  def test_no_trace_download_by_domain
+    assert_not Acl.no_trace_download("192.168.1.1", "example.com")
+    assert_not Acl.no_trace_download("192.168.1.1", "test.example.com")
+    create(:acl, :domain => "example.com", :k => "no_trace_download")
+    assert Acl.no_trace_download("192.168.1.1", "example.com")
+    assert Acl.no_trace_download("192.168.1.1", "test.example.com")
   end
 end