]> git.openstreetmap.org Git - rails.git/blob - test/models/acl_test.rb
Merge pull request #7424 from tomhughes/validate-editor
[rails.git] / test / models / acl_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class AclTest < ActiveSupport::TestCase
6   def test_k_required
7     acl = create(:acl)
8     assert_predicate acl, :valid?
9     acl.k = nil
10     assert_not_predicate acl, :valid?
11   end
12
13   def test_address_must_be_valid
14     acl = build(:acl, :address => "192.0.2.0/24")
15     assert_predicate acl, :valid?
16
17     acl = build(:acl, :address => "")
18     assert_predicate acl, :valid?
19     assert_nil acl.address
20
21     acl = build(:acl, :address => "not-an-address")
22     assert_not_predicate acl, :valid?
23     assert_includes acl.errors[:address], "is invalid"
24   end
25
26   def test_no_account_creation_by_subnet
27     assert_not Acl.no_account_creation?("192.168.1.1")
28     create(:acl, :address => "192.168.0.0/16", :k => "no_account_creation")
29     assert Acl.no_account_creation?("192.168.1.1")
30   end
31
32   def test_no_account_creation_by_domain
33     assert_not Acl.no_account_creation?("192.168.1.1", :domain => "example.com")
34     assert_not Acl.no_account_creation?("192.168.1.1", :domain => "test.example.com")
35     create(:acl, :domain => "example.com", :k => "no_account_creation")
36     assert Acl.no_account_creation?("192.168.1.1", :domain => "example.com")
37     assert Acl.no_account_creation?("192.168.1.1", :domain => "test.example.com")
38   end
39
40   def test_no_account_creation_by_mx
41     assert_not Acl.no_account_creation?("192.168.1.1", :mx => "mail.example.com")
42     create(:acl, :mx => "mail.example.com", :k => "no_account_creation")
43     assert Acl.no_account_creation?("192.168.1.1", :mx => "mail.example.com")
44   end
45
46   def test_allow_account_creation_by_subnet
47     assert_not Acl.allow_account_creation?("192.168.1.1")
48     create(:acl, :address => "192.168.0.0/16", :k => "allow_account_creation")
49     assert Acl.allow_account_creation?("192.168.1.1")
50   end
51
52   def test_allow_account_creation_by_domain
53     assert_not Acl.allow_account_creation?("192.168.1.1", :domain => "example.com")
54     assert_not Acl.allow_account_creation?("192.168.1.1", :domain => "test.example.com")
55     create(:acl, :domain => "example.com", :k => "allow_account_creation")
56     assert Acl.allow_account_creation?("192.168.1.1", :domain => "example.com")
57     assert Acl.allow_account_creation?("192.168.1.1", :domain => "test.example.com")
58   end
59
60   def test_allow_account_creation_by_mx
61     assert_not Acl.allow_account_creation?("192.168.1.1", :mx => "mail.example.com")
62     create(:acl, :mx => "mail.example.com", :k => "allow_account_creation")
63     assert Acl.allow_account_creation?("192.168.1.1", :mx => "mail.example.com")
64   end
65
66   def test_no_note_comment_by_domain
67     assert_not Acl.no_note_comment?("192.168.1.1", "example.com")
68     assert_not Acl.no_note_comment?("192.168.1.1", "test.example.com")
69     create(:acl, :domain => "example.com", :k => "no_note_comment")
70     assert Acl.no_note_comment?("192.168.1.1", "example.com")
71     assert Acl.no_note_comment?("192.168.1.1", "test.example.com")
72   end
73
74   def test_no_trace_download_by_domain
75     assert_not Acl.no_trace_download?("192.168.1.1", "example.com")
76     assert_not Acl.no_trace_download?("192.168.1.1", "test.example.com")
77     create(:acl, :domain => "example.com", :k => "no_trace_download")
78     assert Acl.no_trace_download?("192.168.1.1", "example.com")
79     assert Acl.no_trace_download?("192.168.1.1", "test.example.com")
80   end
81 end