X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d377e8b4f23e6bad925eb2efa904baa7e1531fa6..091e0c21efd3f4117fc6491a1b25c4d1cbc5a099:/test/helpers/user_roles_helper_test.rb diff --git a/test/helpers/user_roles_helper_test.rb b/test/helpers/user_roles_helper_test.rb index ad9a6ed63..41366199c 100644 --- a/test/helpers/user_roles_helper_test.rb +++ b/test/helpers/user_roles_helper_test.rb @@ -1,51 +1,172 @@ require "test_helper" class UserRolesHelperTest < ActionView::TestCase - fixtures :users, :user_roles + attr_accessor :current_user def test_role_icon_normal - @user = users(:normal_user) + self.current_user = create(:user) - icon = role_icon(users(:normal_user), "moderator") + icon = role_icon(current_user, "moderator") assert_dom_equal "", icon - icon = role_icon(users(:moderator_user), "moderator") - assert_dom_equal 'This user is a moderator', icon + icon = role_icon(current_user, "importer") + assert_dom_equal "", icon + + icon = role_icon(create(:moderator_user), "moderator") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "svg:root", :count => 1 do + assert_dom "> title", :text => "This user is a moderator" + end + + icon = role_icon(create(:importer_user), "importer") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "svg:root", :count => 1 do + assert_dom "> title", :text => "This user is a importer" + end end def test_role_icon_administrator - @user = users(:administrator_user) + self.current_user = create(:administrator_user) + + create(:user) do |user| + icon = role_icon(user, "moderator") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{grant_role_path(user, 'moderator')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Grant moderator access" + end + end + + icon = role_icon(user, "importer") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{grant_role_path(user, 'importer')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Grant importer access" + end + end + end - icon = role_icon(users(:normal_user), "moderator") - assert_dom_equal 'Grant moderator access', icon + create(:moderator_user) do |user| + icon = role_icon(user, "moderator") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{revoke_role_path(user, 'moderator')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Revoke moderator access" + end + end - icon = role_icon(users(:moderator_user), "moderator") - assert_dom_equal 'Revoke moderator access', icon + icon = role_icon(user, "importer") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{grant_role_path(user, 'importer')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Grant importer access" + end + end + end + + create(:importer_user) do |user| + icon = role_icon(user, "moderator") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{grant_role_path(user, 'moderator')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Grant moderator access" + end + end + + icon = role_icon(user, "importer") + icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon) + assert_dom icon_dom, "a:root[href='#{revoke_role_path(user, 'importer')}']", :count => 1 do + assert_dom "> svg", :count => 1 do + assert_dom "> title", :text => "Revoke importer access" + end + end + end end def test_role_icons_normal - @user = users(:normal_user) + self.current_user = create(:user) - icons = role_icons(users(:normal_user)) - assert_dom_equal " ", icons + icons = role_icons(current_user) + assert_dom_equal "", icons - icons = role_icons(users(:moderator_user)) - assert_dom_equal ' This user is a moderator', icons + icons = role_icons(create(:moderator_user)) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "svg:root > title", :text => "This user is a moderator" - icons = role_icons(users(:super_user)) - assert_dom_equal ' This user is an administrator This user is a moderator', icons + icons = role_icons(create(:importer_user)) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "svg:root > title", :text => "This user is a importer" + + icons = role_icons(create(:super_user)) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "svg:root", :count => 3 do + assert_dom "> title", :text => "This user is an administrator" + assert_dom "> title", :text => "This user is a moderator" + assert_dom "> title", :text => "This user is a importer" + end end def test_role_icons_administrator - @user = users(:administrator_user) + self.current_user = create(:administrator_user) + + create(:user) do |user| + icons = role_icons(user) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "a:root", :count => 3 + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'administrator')}']" do + assert_dom "> svg > title", :text => "Grant administrator access" + end + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'moderator')}']" do + assert_dom "> svg > title", :text => "Grant moderator access" + end + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'importer')}']" do + assert_dom "> svg > title", :text => "Grant importer access" + end + end - icons = role_icons(users(:normal_user)) - assert_dom_equal ' Grant administrator access Grant moderator access', icons + create(:moderator_user) do |user| + icons = role_icons(user) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "a:root", :count => 3 + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'administrator')}']" do + assert_dom "> svg > title", :text => "Grant administrator access" + end + assert_dom icons_dom, "a:root[href='#{revoke_role_path(user, 'moderator')}']" do + assert_dom "> svg > title", :text => "Revoke moderator access" + end + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'importer')}']" do + assert_dom "> svg > title", :text => "Grant importer access" + end + end - icons = role_icons(users(:moderator_user)) - assert_dom_equal ' Grant administrator access Revoke moderator access', icons + create(:importer_user) do |user| + icons = role_icons(user) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "a:root", :count => 3 + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'administrator')}']" do + assert_dom "> svg > title", :text => "Grant administrator access" + end + assert_dom icons_dom, "a:root[href='#{grant_role_path(user, 'moderator')}']" do + assert_dom "> svg > title", :text => "Grant moderator access" + end + assert_dom icons_dom, "a:root[href='#{revoke_role_path(user, 'importer')}']" do + assert_dom "> svg > title", :text => "Revoke importer access" + end + end - icons = role_icons(users(:super_user)) - assert_dom_equal ' Revoke administrator access Revoke moderator access', icons + create(:super_user) do |user| + icons = role_icons(user) + icons_dom = Rails::Dom::Testing.html_document_fragment.parse(icons) + assert_dom icons_dom, "a:root", :count => 3 + assert_dom icons_dom, "a:root[href='#{revoke_role_path(user, 'administrator')}']" do + assert_dom "> svg > title", :text => "Revoke administrator access" + end + assert_dom icons_dom, "a:root[href='#{revoke_role_path(user, 'moderator')}']" do + assert_dom "> svg > title", :text => "Revoke moderator access" + end + assert_dom icons_dom, "a:root[href='#{revoke_role_path(user, 'importer')}']" do + assert_dom "> svg > title", :text => "Revoke importer access" + end + end end end