@@ -65,5 +65,97 @@ def test_and_two_words
6565 ]
6666 assert_equal ( expected_issues , query . issues )
6767 end
68+
69+ def test_and_two_words_within_my_projects
70+ Issue . destroy_all
71+ User . current = User . find_by ( login : 'dlopper' )
72+ project = Project . generate!
73+ User . add_to_project ( User . current , project )
74+
75+ # User's project issues.
76+ subject_groonga_description_pgroonga =
77+ Issue . generate! ( project : project ,
78+ subject : "ぐるんが" ,
79+ description : "ぴーじーるんが" )
80+ without_keywords = Issue . generate! ( project : project ,
81+ subject : "no-keyword" ,
82+ description : "no-keyword" )
83+ subject_pgroonga_journal_groonga =
84+ Issue . generate! ( project : project , subject : "ぴーじーるんが" )
85+ . journals . create! ( notes : "ぐるんが" )
86+ # Another project issue.
87+ subject_pgroonga_description_groonga =
88+ Issue . generate! ( subject : "ぴーじーるんが" ,
89+ description : "ぐるんが" )
90+
91+ query = IssueQuery . new (
92+ :name => "_" ,
93+ :filters => {
94+ "any_searchable" => {
95+ :operator => "~" ,
96+ :values => [ "ぐるんが ぴーじーるんが" ]
97+ } ,
98+ "project_id" => {
99+ :operator => "=" ,
100+ :values => [ 'mine' ]
101+ } ,
102+ } ,
103+ :sort_criteria => [ [ "id" , "asc" ] ]
104+ )
105+ expected_issues = [
106+ subject_groonga_description_pgroonga ,
107+ subject_pgroonga_journal_groonga . issue
108+ ]
109+ assert_equal ( expected_issues , with_user ( User . current ) do
110+ query . issues
111+ end )
112+ end
113+
114+ def test_and_two_words_within_bookmarks
115+ Issue . destroy_all
116+ current_user = User . current = User . find ( 1 )
117+ bookmarked_project =
118+ Project . where ( id : [ current_user . bookmarked_project_ids ] )
119+ . first
120+ no_bookmarked_project = Project . generate!
121+
122+ # User's bookmarked project issues.
123+ subject_groonga_description_pgroonga =
124+ Issue . generate! ( project : bookmarked_project ,
125+ subject : "ぐるんが" ,
126+ description : "ぴーじーるんが" )
127+ without_keywords = Issue . generate! ( project : bookmarked_project ,
128+ subject : "no-keyword" ,
129+ description : "no-keyword" )
130+ subject_pgroonga_journal_groonga =
131+ Issue . generate! ( project : bookmarked_project , subject : "ぴーじーるんが" )
132+ . journals . create! ( notes : "ぐるんが" )
133+ # Another project issue.
134+ subject_pgroonga_description_groonga =
135+ Issue . generate! ( project : no_bookmarked_project ,
136+ subject : "ぴーじーるんが" ,
137+ description : "ぐるんが" )
138+
139+ query = IssueQuery . new (
140+ :name => "_" ,
141+ :filters => {
142+ "any_searchable" => {
143+ :operator => "~" ,
144+ :values => [ "ぐるんが ぴーじーるんが" ]
145+ } ,
146+ "project_id" => {
147+ :operator => "=" ,
148+ :values => [ "bookmarks" ]
149+ } ,
150+ } ,
151+ :sort_criteria => [ [ "id" , "asc" ] ]
152+ )
153+ expected_issues = [
154+ subject_groonga_description_pgroonga ,
155+ subject_pgroonga_journal_groonga . issue
156+ ]
157+ searched_result = query . issues
158+ assert_equal ( expected_issues , searched_result )
159+ end
68160 end
69161end
0 commit comments