diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb index dfd3d5c49..d8a1e0775 100644 --- a/app/helpers/watchers_helper.rb +++ b/app/helpers/watchers_helper.rb @@ -48,7 +48,7 @@ module WatchersHelper def watchers_list(object) remove_allowed = User.current.allowed_to?("delete_#{object.class.name.underscore}_watchers".to_sym, object.project) content = ''.html_safe - lis = object.watcher_users.collect do |user| + lis = object.watcher_users.sorted.collect do |user| s = ''.html_safe s << avatar(user, :size => "16").to_s s << link_to_principal(user, class: user.class.to_s.downcase) diff --git a/test/helpers/watchers_helper_test.rb b/test/helpers/watchers_helper_test.rb index 88aac77de..1fe0de556 100644 --- a/test/helpers/watchers_helper_test.rb +++ b/test/helpers/watchers_helper_test.rb @@ -21,6 +21,8 @@ require_relative '../test_helper' class WatchersHelperTest < Redmine::HelperTest include WatchersHelper + include AvatarsHelper + include ERB::Util include Rails.application.routes.url_helpers fixtures :users, :issues @@ -66,4 +68,31 @@ class WatchersHelperTest < Redmine::HelperTest ) assert_equal expected, watcher_link(Issue.find(1), User.find(1)) end + + def test_watchers_list_should_be_sorted_by_user_name + issue = Issue.find(1) + [1, 2, 3].shuffle.each do |user_id| + Watcher.create!(:watchable => issue, :user => User.find(user_id)) + end + + with_settings user_format: 'firstname_lastname' do + result1 = watchers_list(issue) + assert_select_in result1, 'ul.watchers' do + assert_select 'li', 3 + assert_select 'li:nth-of-type(1)>a[href=?]', '/users/3', text: 'Dave Lopper' + assert_select 'li:nth-of-type(2)>a[href=?]', '/users/2', text: 'John Smith' + assert_select 'li:nth-of-type(3)>a[href=?]', '/users/1', text: 'Redmine Admin' + end + end + + with_settings user_format: 'lastname_firstname' do + result2 = watchers_list(issue) + assert_select_in result2, 'ul.watchers' do + assert_select 'li', 3 + assert_select 'li:nth-of-type(1)>a[href=?]', '/users/1', text: 'Admin Redmine' + assert_select 'li:nth-of-type(2)>a[href=?]', '/users/3', text: 'Lopper Dave' + assert_select 'li:nth-of-type(3)>a[href=?]', '/users/2', text: 'Smith John' + end + end + end end