]> git.openstreetmap.org Git - rails.git/blob - test/helpers/user_roles_helper_test.rb
Replace role_icons helper with erb template
[rails.git] / test / helpers / user_roles_helper_test.rb
1 require "test_helper"
2
3 class UserRolesHelperTest < ActionView::TestCase
4   attr_accessor :current_user
5
6   def test_role_icon_normal
7     self.current_user = create(:user)
8
9     icon = role_icon(current_user, "moderator")
10     assert_dom_equal "", icon
11
12     icon = role_icon(current_user, "importer")
13     assert_dom_equal "", icon
14
15     icon = role_icon(create(:moderator_user), "moderator")
16     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
17     assert_dom icon_dom, "svg:root", :count => 1 do
18       assert_dom "> title", :text => "This user is a moderator"
19     end
20
21     icon = role_icon(create(:importer_user), "importer")
22     icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
23     assert_dom icon_dom, "svg:root", :count => 1 do
24       assert_dom "> title", :text => "This user is a importer"
25     end
26   end
27
28   def test_role_icon_administrator
29     self.current_user = create(:administrator_user)
30
31     create(:user) do |user|
32       icon = role_icon(user, "moderator")
33       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
34       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'moderator')}'][data-method='post']", :count => 1 do
35         assert_dom "> svg", :count => 1 do
36           assert_dom "> title", :text => "Grant moderator access"
37         end
38       end
39
40       icon = role_icon(user, "importer")
41       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
42       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'importer')}'][data-method='post']", :count => 1 do
43         assert_dom "> svg", :count => 1 do
44           assert_dom "> title", :text => "Grant importer access"
45         end
46       end
47     end
48
49     create(:moderator_user) do |user|
50       icon = role_icon(user, "moderator")
51       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
52       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'moderator')}'][data-method='delete']", :count => 1 do
53         assert_dom "> svg", :count => 1 do
54           assert_dom "> title", :text => "Revoke moderator access"
55         end
56       end
57
58       icon = role_icon(user, "importer")
59       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
60       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'importer')}'][data-method='post']", :count => 1 do
61         assert_dom "> svg", :count => 1 do
62           assert_dom "> title", :text => "Grant importer access"
63         end
64       end
65     end
66
67     create(:importer_user) do |user|
68       icon = role_icon(user, "moderator")
69       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
70       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'moderator')}'][data-method='post']", :count => 1 do
71         assert_dom "> svg", :count => 1 do
72           assert_dom "> title", :text => "Grant moderator access"
73         end
74       end
75
76       icon = role_icon(user, "importer")
77       icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
78       assert_dom icon_dom, "a:root[href='#{user_role_path(user, 'importer')}'][data-method='delete']", :count => 1 do
79         assert_dom "> svg", :count => 1 do
80           assert_dom "> title", :text => "Revoke importer access"
81         end
82       end
83     end
84   end
85 end