case principal
when User
name = h(principal.name(options[:format]))
+ css_classes = ''
if principal.active? || (User.current.admin? && principal.logged?)
url = user_url(principal, :only_path => only_path)
- css_classes = principal.css_classes
+ css_classes += principal.css_classes
end
when Group
name = h(principal.to_s)
url = group_url(principal, :only_path => only_path)
- css_classes = 'group'
+ css_classes = principal.css_classes
else
name = h(principal.to_s)
end
- css_classes += " #{options[:class]}" if options[:class].present?
+ css_classes += " #{options[:class]}" if css_classes && options[:class].present?
url ? link_to(name, url, :class => css_classes) : name
end
end
end
- def test_link_to_user_should_link_to_locked_user_if_current_user_is_admin
+ def test_link_to_user_should_link_to_locked_user_only_if_current_user_is_admin
+ user = User.find(5)
+ assert user.locked?
+
with_current_user User.find(1) do
- user = User.find(5)
- assert user.locked?
- result = link_to("Dave2 Lopper2", "/users/5", :class => "user locked")
- assert_equal result, link_to_user(user)
+ result = link_to('Dave2 Lopper2', '/users/5', :class => 'user locked assigned_to')
+ assert_equal result, link_to_user(user, :class => 'assigned_to')
+ end
+
+ with_current_user User.find(2) do
+ result = 'Dave2 Lopper2'
+ assert_equal result, link_to_user(user, :class => 'assigned_to')
end
end
assert_equal result, link_to_principal(group)
end
+ def test_link_to_principal_should_return_string_representation_for_unknown_type_principal
+ unknown_principal = 'foo'
+ result = unknown_principal.to_s
+ assert_equal result, link_to_principal(unknown_principal, :class => 'bar')
+ end
+
def test_link_to_group_should_return_only_group_name_for_non_admin_users
User.current = nil
group = Group.find(10)