summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/search_controller.rb2
-rw-r--r--app/helpers/search_helper.rb1
-rw-r--r--test/functional/search_controller_test.rb13
3 files changed, 16 insertions, 0 deletions
diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb
index b9ff59e90..a13b9932e 100644
--- a/app/controllers/search_controller.rb
+++ b/app/controllers/search_controller.rb
@@ -49,6 +49,8 @@ class SearchController < ApplicationController
nil
when 'my_projects'
User.current.projects
+ when 'bookmarks'
+ Project.where(id: User.current.bookmarked_project_ids)
when 'subprojects'
@project ? (@project.self_and_descendants.to_a) : nil
else
diff --git a/app/helpers/search_helper.rb b/app/helpers/search_helper.rb
index 61331d728..d55cc14aa 100644
--- a/app/helpers/search_helper.rb
+++ b/app/helpers/search_helper.rb
@@ -47,6 +47,7 @@ module SearchHelper
def project_select_tag
options = [[l(:label_project_all), 'all']]
options << [l(:label_my_projects), 'my_projects'] unless User.current.memberships.empty?
+ options << [l(:label_my_bookmarks), 'bookmarks'] unless User.current.bookmarked_project_ids.empty?
options << [l(:label_and_its_subprojects, @project.name), 'subprojects'] unless @project.nil? || @project.descendants.active.empty?
options << [@project.name, ''] unless @project.nil?
label_tag("scope", l(:description_project_scope), :class => "hidden-for-sighted") +
diff --git a/test/functional/search_controller_test.rb b/test/functional/search_controller_test.rb
index 022ad29e9..ee5db1232 100644
--- a/test/functional/search_controller_test.rb
+++ b/test/functional/search_controller_test.rb
@@ -171,6 +171,19 @@ class SearchControllerTest < Redmine::ControllerTest
end
end
+ def test_search_my_bookmarks
+ @request.session[:user_id] = 1
+ get :index, :params => {:q => 'project', :scope => 'bookmarks', :all_words => ''}
+ assert_response :success
+
+ assert_select '#search-results' do
+ assert_select 'dt.issue', :count => 1
+ assert_select 'dt.issue', :text => /Bug #6/
+ assert_select 'dt.changeset', :count => 1
+ assert_select 'dt.changeset', :text => /Revision 4/
+ end
+ end
+
def test_search_project_and_subprojects
get :index, :params => {:id => 1, :q => 'recipe subproject', :scope => 'subprojects', :all_words => ''}
assert_response :success