case principal
when User
name = h(principal.name(options[:format]))
- name = "@" + name if options[:mention]
+ name = "@".html_safe + name if options[:mention]
css_classes = ''
if principal.active? || (User.current.admin? && principal.logged?)
url = user_url(principal, :only_path => only_path)
assert_equal result, link_to_principal(unknown_principal, :class => 'bar')
end
+ def test_link_to_principal_should_escape_principal_name
+ user = User.generate!(firstname: "firstname<>'", lastname: 'lastname&"')
+ group = Group.generate!(lastname: "group<>'&")
+
+ assert_include "firstname<>' lastname&"", link_to_principal(user)
+ assert_include "@firstname<>' lastname&"", link_to_principal(user, { mention: true })
+ assert_include "group<>'&", link_to_principal(group)
+ assert_include "<>'&", link_to_principal("<>'&")
+ end
+
def test_link_to_group_should_return_only_group_name_for_non_admin_users
User.current = nil
group = Group.find(10)