##// END OF EJS Templates
Fixes search tests for Postgresql....
Jean-Philippe Lang -
r1649:9ba4075c88b6
parent child
Show More
@@ -1,134 +1,134
1 # redMine - project management software
1 # redMine - project management software
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
2 # Copyright (C) 2006-2008 Jean-Philippe Lang
3 #
3 #
4 # This program is free software; you can redistribute it and/or
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
7 # of the License, or (at your option) any later version.
8 #
8 #
9 # This program is distributed in the hope that it will be useful,
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
12 # GNU General Public License for more details.
13 #
13 #
14 # You should have received a copy of the GNU General Public License
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software
15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 require File.dirname(__FILE__) + '/../test_helper'
18 require File.dirname(__FILE__) + '/../test_helper'
19
19
20 class SearchTest < Test::Unit::TestCase
20 class SearchTest < Test::Unit::TestCase
21 fixtures :users,
21 fixtures :users,
22 :members,
22 :members,
23 :projects,
23 :projects,
24 :roles,
24 :roles,
25 :enabled_modules,
25 :enabled_modules,
26 :issues,
26 :issues,
27 :trackers,
27 :trackers,
28 :journals,
28 :journals,
29 :journal_details,
29 :journal_details,
30 :repositories,
30 :repositories,
31 :changesets
31 :changesets
32
32
33 def setup
33 def setup
34 @project = Project.find(1)
34 @project = Project.find(1)
35 @issue_keyword = '%Unable to print recipes%'
35 @issue_keyword = '%unable to print recipes%'
36 @issue = Issue.find(1)
36 @issue = Issue.find(1)
37 @changeset_keyword = '%very first commit%'
37 @changeset_keyword = '%very first commit%'
38 @changeset = Changeset.find(100)
38 @changeset = Changeset.find(100)
39 end
39 end
40
40
41 def test_search_by_anonymous
41 def test_search_by_anonymous
42 User.current = nil
42 User.current = nil
43
43
44 r = Issue.search(@issue_keyword)
44 r = Issue.search(@issue_keyword)
45 assert r.include?(@issue)
45 assert r.include?(@issue)
46 r = Changeset.search(@changeset_keyword)
46 r = Changeset.search(@changeset_keyword)
47 assert r.include?(@changeset)
47 assert r.include?(@changeset)
48
48
49 # Removes the :view_changesets permission from Anonymous role
49 # Removes the :view_changesets permission from Anonymous role
50 remove_permission Role.anonymous, :view_changesets
50 remove_permission Role.anonymous, :view_changesets
51
51
52 r = Issue.search(@issue_keyword)
52 r = Issue.search(@issue_keyword)
53 assert r.include?(@issue)
53 assert r.include?(@issue)
54 r = Changeset.search(@changeset_keyword)
54 r = Changeset.search(@changeset_keyword)
55 assert !r.include?(@changeset)
55 assert !r.include?(@changeset)
56
56
57 # Make the project private
57 # Make the project private
58 @project.update_attribute :is_public, false
58 @project.update_attribute :is_public, false
59 r = Issue.search(@issue_keyword)
59 r = Issue.search(@issue_keyword)
60 assert !r.include?(@issue)
60 assert !r.include?(@issue)
61 r = Changeset.search(@changeset_keyword)
61 r = Changeset.search(@changeset_keyword)
62 assert !r.include?(@changeset)
62 assert !r.include?(@changeset)
63 end
63 end
64
64
65 def test_search_by_user
65 def test_search_by_user
66 User.current = User.find_by_login('rhill')
66 User.current = User.find_by_login('rhill')
67 assert User.current.memberships.empty?
67 assert User.current.memberships.empty?
68
68
69 r = Issue.search(@issue_keyword)
69 r = Issue.search(@issue_keyword)
70 assert r.include?(@issue)
70 assert r.include?(@issue)
71 r = Changeset.search(@changeset_keyword)
71 r = Changeset.search(@changeset_keyword)
72 assert r.include?(@changeset)
72 assert r.include?(@changeset)
73
73
74 # Removes the :view_changesets permission from Non member role
74 # Removes the :view_changesets permission from Non member role
75 remove_permission Role.non_member, :view_changesets
75 remove_permission Role.non_member, :view_changesets
76
76
77 r = Issue.search(@issue_keyword)
77 r = Issue.search(@issue_keyword)
78 assert r.include?(@issue)
78 assert r.include?(@issue)
79 r = Changeset.search(@changeset_keyword)
79 r = Changeset.search(@changeset_keyword)
80 assert !r.include?(@changeset)
80 assert !r.include?(@changeset)
81
81
82 # Make the project private
82 # Make the project private
83 @project.update_attribute :is_public, false
83 @project.update_attribute :is_public, false
84 r = Issue.search(@issue_keyword)
84 r = Issue.search(@issue_keyword)
85 assert !r.include?(@issue)
85 assert !r.include?(@issue)
86 r = Changeset.search(@changeset_keyword)
86 r = Changeset.search(@changeset_keyword)
87 assert !r.include?(@changeset)
87 assert !r.include?(@changeset)
88 end
88 end
89
89
90 def test_search_by_allowed_member
90 def test_search_by_allowed_member
91 User.current = User.find_by_login('jsmith')
91 User.current = User.find_by_login('jsmith')
92 assert User.current.projects.include?(@project)
92 assert User.current.projects.include?(@project)
93
93
94 r = Issue.search(@issue_keyword)
94 r = Issue.search(@issue_keyword)
95 assert r.include?(@issue)
95 assert r.include?(@issue)
96 r = Changeset.search(@changeset_keyword)
96 r = Changeset.search(@changeset_keyword)
97 assert r.include?(@changeset)
97 assert r.include?(@changeset)
98
98
99 # Make the project private
99 # Make the project private
100 @project.update_attribute :is_public, false
100 @project.update_attribute :is_public, false
101 r = Issue.search(@issue_keyword)
101 r = Issue.search(@issue_keyword)
102 assert r.include?(@issue)
102 assert r.include?(@issue)
103 r = Changeset.search(@changeset_keyword)
103 r = Changeset.search(@changeset_keyword)
104 assert r.include?(@changeset)
104 assert r.include?(@changeset)
105 end
105 end
106
106
107 def test_search_by_unallowed_member
107 def test_search_by_unallowed_member
108 # Removes the :view_changesets permission from user's and non member role
108 # Removes the :view_changesets permission from user's and non member role
109 remove_permission Role.find(1), :view_changesets
109 remove_permission Role.find(1), :view_changesets
110 remove_permission Role.non_member, :view_changesets
110 remove_permission Role.non_member, :view_changesets
111
111
112 User.current = User.find_by_login('jsmith')
112 User.current = User.find_by_login('jsmith')
113 assert User.current.projects.include?(@project)
113 assert User.current.projects.include?(@project)
114
114
115 r = Issue.search(@issue_keyword)
115 r = Issue.search(@issue_keyword)
116 assert r.include?(@issue)
116 assert r.include?(@issue)
117 r = Changeset.search(@changeset_keyword)
117 r = Changeset.search(@changeset_keyword)
118 assert !r.include?(@changeset)
118 assert !r.include?(@changeset)
119
119
120 # Make the project private
120 # Make the project private
121 @project.update_attribute :is_public, false
121 @project.update_attribute :is_public, false
122 r = Issue.search(@issue_keyword)
122 r = Issue.search(@issue_keyword)
123 assert r.include?(@issue)
123 assert r.include?(@issue)
124 r = Changeset.search(@changeset_keyword)
124 r = Changeset.search(@changeset_keyword)
125 assert !r.include?(@changeset)
125 assert !r.include?(@changeset)
126 end
126 end
127
127
128 private
128 private
129
129
130 def remove_permission(role, permission)
130 def remove_permission(role, permission)
131 role.permissions = role.permissions - [ permission ]
131 role.permissions = role.permissions - [ permission ]
132 role.save
132 role.save
133 end
133 end
134 end
134 end
General Comments 0
You need to be logged in to leave comments. Login now