summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/helpers/application_helper.rb3
-rw-r--r--test/unit/helpers/application_helper_test.rb9
2 files changed, 12 insertions, 0 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 968420041..c3f0d4876 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -305,6 +305,9 @@ module ApplicationHelper
# Returns a string for users/groups option tags
def principals_options_for_select(collection, selected=nil)
s = ''
+ if collection.include?(User.current)
+ s << content_tag('option', "<< #{l(:label_me)} >>", :value => User.current.id)
+ end
groups = ''
collection.sort.each do |element|
selected_attribute = ' selected="selected"' if option_value_selected?(element, selected)
diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb
index c98007790..3d98aafe8 100644
--- a/test/unit/helpers/application_helper_test.rb
+++ b/test/unit/helpers/application_helper_test.rb
@@ -854,18 +854,21 @@ RAW
end
def test_principals_options_for_select_with_users
+ User.current = nil
users = [User.find(2), User.find(4)]
assert_equal %(<option value="2">John Smith</option><option value="4">Robert Hill</option>),
principals_options_for_select(users)
end
def test_principals_options_for_select_with_selected
+ User.current = nil
users = [User.find(2), User.find(4)]
assert_equal %(<option value="2">John Smith</option><option value="4" selected="selected">Robert Hill</option>),
principals_options_for_select(users, User.find(4))
end
def test_principals_options_for_select_with_users_and_groups
+ User.current = nil
users = [User.find(2), Group.find(11), User.find(4), Group.find(10)]
assert_equal %(<option value="2">John Smith</option><option value="4">Robert Hill</option>) +
%(<optgroup label="Groups"><option value="10">A Team</option><option value="11">B Team</option></optgroup>),
@@ -875,4 +878,10 @@ RAW
def test_principals_options_for_select_with_empty_collection
assert_equal '', principals_options_for_select([])
end
+
+ def test_principals_options_for_select_should_include_me_option_when_current_user_is_in_collection
+ users = [User.find(2), User.find(4)]
+ User.current = User.find(4)
+ assert_include '<option value="4"><< me >></option>', principals_options_for_select(users)
+ end
end