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 %q(<img border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />), icon
+ icon = role_icon(create(:moderator_user), "moderator")
+ expected = <<~HTML.delete("\n")
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ HTML
+ assert_dom_equal expected, icon
end
def test_role_icon_administrator
- @user = users(:administrator_user)
+ self.current_user = create(:administrator_user)
- icon = role_icon(users(:normal_user), "moderator")
- assert_dom_equal %q(<a confirm="Are you sure you want to grant the role `moderator' to the user `test'?" rel="nofollow" data-method="post" href="/user/test/role/moderator/grant"><img border="0" alt="Grant moderator access" title="Grant moderator access" src="/images/roles/blank_moderator.png" width="20" height="20" /></a>), icon
+ user = create(:user)
+ icon = role_icon(user, "moderator")
+ expected = <<~HTML.delete("\n")
+ <a data-confirm="Are you sure you want to grant the role `moderator' to the user `#{user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(user.display_name)}/role/moderator/grant">
+ <picture>
+ <source srcset="/images/roles/blank_moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/blank_moderator.svg" border="0" alt="Grant moderator access" title="Grant moderator access" src="/images/roles/blank_moderator.png" width="20" height="20" />
+ </picture>
+ </a>
+ HTML
+ assert_dom_equal expected, icon
- icon = role_icon(users(:moderator_user), "moderator")
- assert_dom_equal %q(<a confirm="Are you sure you want to revoke the role `moderator' from the user `moderator'?" rel="nofollow" data-method="post" href="/user/moderator/role/moderator/revoke"><img border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" /></a>), icon
+ moderator_user = create(:moderator_user)
+ icon = role_icon(moderator_user, "moderator")
+ expected = <<~HTML.delete("\n")
+ <a data-confirm="Are you sure you want to revoke the role `moderator' from the user `#{moderator_user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(moderator_user.display_name)}/role/moderator/revoke">
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ </a>
+ HTML
+ assert_dom_equal expected, icon
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 %q( <img border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />), icons
+ icons = role_icons(create(:moderator_user))
+ expected = <<~HTML.delete("\n")
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ HTML
+ assert_dom_equal expected, icons
- icons = role_icons(users(:super_user))
- assert_dom_equal %q( <img border="0" alt="This user is an administrator" title="This user is an administrator" src="/images/roles/administrator.png" width="20" height="20" /> <img border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />), icons
+ icons = role_icons(create(:super_user))
+ expected = <<~HTML.delete("\n")
+ <picture>
+ <source srcset="/images/roles/administrator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/administrator.svg" border="0" alt="This user is an administrator" title="This user is an administrator" src="/images/roles/administrator.png" width="20" height="20" />
+ </picture>
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="This user is a moderator" title="This user is a moderator" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ HTML
+ assert_dom_equal expected, icons
end
def test_role_icons_administrator
- @user = users(:administrator_user)
+ self.current_user = create(:administrator_user)
- icons = role_icons(users(:normal_user))
- assert_dom_equal %q( <a confirm="Are you sure you want to grant the role `administrator' to the user `test'?" rel="nofollow" data-method="post" href="/user/test/role/administrator/grant"><img border="0" alt="Grant administrator access" title="Grant administrator access" src="/images/roles/blank_administrator.png" width="20" height="20" /></a> <a confirm="Are you sure you want to grant the role `moderator' to the user `test'?" rel="nofollow" data-method="post" href="/user/test/role/moderator/grant"><img border="0" alt="Grant moderator access" title="Grant moderator access" src="/images/roles/blank_moderator.png" width="20" height="20" /></a>), icons
+ user = create(:user)
+ icons = role_icons(user)
+ expected = <<~HTML.delete("\n")
+ <a data-confirm="Are you sure you want to grant the role `administrator' to the user `#{user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(user.display_name)}/role/administrator/grant">
+ <picture>
+ <source srcset="/images/roles/blank_administrator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/blank_administrator.svg" border="0" alt="Grant administrator access" title="Grant administrator access" src="/images/roles/blank_administrator.png" width="20" height="20" />
+ </picture>
+ </a>
+ <a data-confirm="Are you sure you want to grant the role `moderator' to the user `#{user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(user.display_name)}/role/moderator/grant">
+ <picture>
+ <source srcset="/images/roles/blank_moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/blank_moderator.svg" border="0" alt="Grant moderator access" title="Grant moderator access" src="/images/roles/blank_moderator.png" width="20" height="20" />
+ </picture>
+ </a>
+ HTML
+ assert_dom_equal expected, icons
- icons = role_icons(users(:moderator_user))
- assert_dom_equal %q( <a confirm="Are you sure you want to grant the role `administrator' to the user `moderator'?" rel="nofollow" data-method="post" href="/user/moderator/role/administrator/grant"><img border="0" alt="Grant administrator access" title="Grant administrator access" src="/images/roles/blank_administrator.png" width="20" height="20" /></a> <a confirm="Are you sure you want to revoke the role `moderator' from the user `moderator'?" rel="nofollow" data-method="post" href="/user/moderator/role/moderator/revoke"><img border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" /></a>), icons
+ moderator_user = create(:moderator_user)
+ icons = role_icons(moderator_user)
+ expected = <<~HTML.delete("\n")
+ <a data-confirm="Are you sure you want to grant the role `administrator' to the user `#{moderator_user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(moderator_user.display_name)}/role/administrator/grant">
+ <picture>
+ <source srcset="/images/roles/blank_administrator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/blank_administrator.svg" border="0" alt="Grant administrator access" title="Grant administrator access" src="/images/roles/blank_administrator.png" width="20" height="20" />
+ </picture>
+ </a>
+ <a data-confirm="Are you sure you want to revoke the role `moderator' from the user `#{moderator_user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(moderator_user.display_name)}/role/moderator/revoke">
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ </a>
+ HTML
+ assert_dom_equal expected, icons
- icons = role_icons(users(:super_user))
- assert_dom_equal %q( <a confirm="Are you sure you want to revoke the role `administrator' from the user `super'?" rel="nofollow" data-method="post" href="/user/super/role/administrator/revoke"><img border="0" alt="Revoke administrator access" title="Revoke administrator access" src="/images/roles/administrator.png" width="20" height="20" /></a> <a confirm="Are you sure you want to revoke the role `moderator' from the user `super'?" rel="nofollow" data-method="post" href="/user/super/role/moderator/revoke"><img border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" /></a>), icons
+ super_user = create(:super_user)
+ icons = role_icons(super_user)
+ expected = <<~HTML.delete("\n")
+ <a data-confirm="Are you sure you want to revoke the role `administrator' from the user `#{super_user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(super_user.display_name)}/role/administrator/revoke">
+ <picture>
+ <source srcset="/images/roles/administrator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/administrator.svg" border="0" alt="Revoke administrator access" title="Revoke administrator access" src="/images/roles/administrator.png" width="20" height="20" />
+ </picture>
+ </a>
+ <a data-confirm="Are you sure you want to revoke the role `moderator' from the user `#{super_user.display_name}'?" rel="nofollow" data-method="post" href="/user/#{ERB::Util.u(super_user.display_name)}/role/moderator/revoke">
+ <picture>
+ <source srcset="/images/roles/moderator.svg" type="image/svg+xml">
+ <img srcset="/images/roles/moderator.svg" border="0" alt="Revoke moderator access" title="Revoke moderator access" src="/images/roles/moderator.png" width="20" height="20" />
+ </picture>
+ </a>
+ HTML
+ assert_dom_equal expected, icons
end
end