Commit 67fd7432943657f29d3d417445d54bc7c6d46946
1 parent
cf237f1d
Exists in
master
and in
4 other branches
Clean up project access spec
Showing
1 changed file
with
92 additions
and
78 deletions
Show diff stats
spec/requests/security/project_access_spec.rb
@@ -14,204 +14,218 @@ describe "Application access" do | @@ -14,204 +14,218 @@ describe "Application access" do | ||
14 | end | 14 | end |
15 | 15 | ||
16 | describe "Project" do | 16 | describe "Project" do |
17 | + let(:project) { create(:project) } | ||
18 | + | ||
19 | + let(:master) { create(:user) } | ||
20 | + let(:guest) { create(:user) } | ||
21 | + let(:reporter) { create(:user) } | ||
22 | + | ||
17 | before do | 23 | before do |
18 | - @project = Factory :project | ||
19 | - @u1 = Factory :user | ||
20 | - @u2 = Factory :user | ||
21 | - @u3 = Factory :user | ||
22 | # full access | 24 | # full access |
23 | - @project.users_projects.create(user: @u1, project_access: UsersProject::MASTER) | 25 | + project.users_projects.create(user: master, project_access: UsersProject::MASTER) |
26 | + | ||
24 | # readonly | 27 | # readonly |
25 | - @project.users_projects.create(user: @u3, project_access: UsersProject::REPORTER) | 28 | + project.users_projects.create(user: reporter, project_access: UsersProject::REPORTER) |
26 | end | 29 | end |
27 | 30 | ||
28 | describe "GET /project_code" do | 31 | describe "GET /project_code" do |
29 | - subject { project_path(@project) } | 32 | + subject { project_path(project) } |
33 | + | ||
34 | + it { should be_allowed_for master } | ||
35 | + it { should be_allowed_for reporter } | ||
36 | + it { should be_denied_for :admin } | ||
37 | + it { should be_denied_for guest } | ||
38 | + it { should be_denied_for :user } | ||
39 | + it { should be_denied_for :visitor } | ||
40 | + end | ||
41 | + | ||
42 | + describe "GET /project_code/tree/master" do | ||
43 | + subject { project_tree_path(project, project.root_ref) } | ||
30 | 44 | ||
31 | - it { should be_allowed_for @u1 } | ||
32 | - it { should be_allowed_for @u3 } | 45 | + it { should be_allowed_for master } |
46 | + it { should be_allowed_for reporter } | ||
33 | it { should be_denied_for :admin } | 47 | it { should be_denied_for :admin } |
34 | - it { should be_denied_for @u2 } | 48 | + it { should be_denied_for guest } |
35 | it { should be_denied_for :user } | 49 | it { should be_denied_for :user } |
36 | it { should be_denied_for :visitor } | 50 | it { should be_denied_for :visitor } |
37 | end | 51 | end |
38 | 52 | ||
39 | - describe "GET /project_code/master/tree" do | ||
40 | - subject { project_tree_path(@project, @project.root_ref) } | 53 | + describe "GET /project_code/commits/master" do |
54 | + subject { project_commits_path(project, project.root_ref) } | ||
41 | 55 | ||
42 | - it { should be_allowed_for @u1 } | ||
43 | - it { should be_allowed_for @u3 } | 56 | + it { should be_allowed_for master } |
57 | + it { should be_allowed_for reporter } | ||
44 | it { should be_denied_for :admin } | 58 | it { should be_denied_for :admin } |
45 | - it { should be_denied_for @u2 } | 59 | + it { should be_denied_for guest } |
46 | it { should be_denied_for :user } | 60 | it { should be_denied_for :user } |
47 | it { should be_denied_for :visitor } | 61 | it { should be_denied_for :visitor } |
48 | end | 62 | end |
49 | 63 | ||
50 | - describe "GET /project_code/commits" do | ||
51 | - subject { project_commits_path(@project) } | 64 | + describe "GET /project_code/commit/:sha" do |
65 | + subject { project_commit_path(project, project.commit) } | ||
52 | 66 | ||
53 | - it { should be_allowed_for @u1 } | ||
54 | - it { should be_allowed_for @u3 } | 67 | + it { should be_allowed_for master } |
68 | + it { should be_allowed_for reporter } | ||
55 | it { should be_denied_for :admin } | 69 | it { should be_denied_for :admin } |
56 | - it { should be_denied_for @u2 } | 70 | + it { should be_denied_for guest } |
57 | it { should be_denied_for :user } | 71 | it { should be_denied_for :user } |
58 | it { should be_denied_for :visitor } | 72 | it { should be_denied_for :visitor } |
59 | end | 73 | end |
60 | 74 | ||
61 | - describe "GET /project_code/commit" do | ||
62 | - subject { project_commit_path(@project, @project.commit.id) } | 75 | + describe "GET /project_code/compare" do |
76 | + subject { project_compare_index_path(project) } | ||
63 | 77 | ||
64 | - it { should be_allowed_for @u1 } | ||
65 | - it { should be_allowed_for @u3 } | 78 | + it { should be_allowed_for master } |
79 | + it { should be_allowed_for reporter } | ||
66 | it { should be_denied_for :admin } | 80 | it { should be_denied_for :admin } |
67 | - it { should be_denied_for @u2 } | 81 | + it { should be_denied_for guest } |
68 | it { should be_denied_for :user } | 82 | it { should be_denied_for :user } |
69 | it { should be_denied_for :visitor } | 83 | it { should be_denied_for :visitor } |
70 | end | 84 | end |
71 | 85 | ||
72 | describe "GET /project_code/team" do | 86 | describe "GET /project_code/team" do |
73 | - subject { project_team_index_path(@project) } | 87 | + subject { project_team_index_path(project) } |
74 | 88 | ||
75 | - it { should be_allowed_for @u1 } | ||
76 | - it { should be_allowed_for @u3 } | 89 | + it { should be_allowed_for master } |
90 | + it { should be_allowed_for reporter } | ||
77 | it { should be_denied_for :admin } | 91 | it { should be_denied_for :admin } |
78 | - it { should be_denied_for @u2 } | 92 | + it { should be_denied_for guest } |
79 | it { should be_denied_for :user } | 93 | it { should be_denied_for :user } |
80 | it { should be_denied_for :visitor } | 94 | it { should be_denied_for :visitor } |
81 | end | 95 | end |
82 | 96 | ||
83 | describe "GET /project_code/wall" do | 97 | describe "GET /project_code/wall" do |
84 | - subject { wall_project_path(@project) } | 98 | + subject { wall_project_path(project) } |
85 | 99 | ||
86 | - it { should be_allowed_for @u1 } | ||
87 | - it { should be_allowed_for @u3 } | 100 | + it { should be_allowed_for master } |
101 | + it { should be_allowed_for reporter } | ||
88 | it { should be_denied_for :admin } | 102 | it { should be_denied_for :admin } |
89 | - it { should be_denied_for @u2 } | 103 | + it { should be_denied_for guest } |
90 | it { should be_denied_for :user } | 104 | it { should be_denied_for :user } |
91 | it { should be_denied_for :visitor } | 105 | it { should be_denied_for :visitor } |
92 | end | 106 | end |
93 | 107 | ||
94 | describe "GET /project_code/blob" do | 108 | describe "GET /project_code/blob" do |
95 | before do | 109 | before do |
96 | - commit = @project.commit | 110 | + commit = project.commit |
97 | path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob)}.first.name | 111 | path = commit.tree.contents.select { |i| i.is_a?(Grit::Blob)}.first.name |
98 | - @blob_path = project_blob_path(@project, File.join(commit.id, path)) | 112 | + @blob_path = project_blob_path(project, File.join(commit.id, path)) |
99 | end | 113 | end |
100 | 114 | ||
101 | - it { @blob_path.should be_allowed_for @u1 } | ||
102 | - it { @blob_path.should be_allowed_for @u3 } | 115 | + it { @blob_path.should be_allowed_for master } |
116 | + it { @blob_path.should be_allowed_for reporter } | ||
103 | it { @blob_path.should be_denied_for :admin } | 117 | it { @blob_path.should be_denied_for :admin } |
104 | - it { @blob_path.should be_denied_for @u2 } | 118 | + it { @blob_path.should be_denied_for guest } |
105 | it { @blob_path.should be_denied_for :user } | 119 | it { @blob_path.should be_denied_for :user } |
106 | it { @blob_path.should be_denied_for :visitor } | 120 | it { @blob_path.should be_denied_for :visitor } |
107 | end | 121 | end |
108 | 122 | ||
109 | describe "GET /project_code/edit" do | 123 | describe "GET /project_code/edit" do |
110 | - subject { edit_project_path(@project) } | 124 | + subject { edit_project_path(project) } |
111 | 125 | ||
112 | - it { should be_allowed_for @u1 } | ||
113 | - it { should be_denied_for @u3 } | 126 | + it { should be_allowed_for master } |
127 | + it { should be_denied_for reporter } | ||
114 | it { should be_denied_for :admin } | 128 | it { should be_denied_for :admin } |
115 | - it { should be_denied_for @u2 } | 129 | + it { should be_denied_for guest } |
116 | it { should be_denied_for :user } | 130 | it { should be_denied_for :user } |
117 | it { should be_denied_for :visitor } | 131 | it { should be_denied_for :visitor } |
118 | end | 132 | end |
119 | 133 | ||
120 | describe "GET /project_code/deploy_keys" do | 134 | describe "GET /project_code/deploy_keys" do |
121 | - subject { project_deploy_keys_path(@project) } | 135 | + subject { project_deploy_keys_path(project) } |
122 | 136 | ||
123 | - it { should be_allowed_for @u1 } | ||
124 | - it { should be_denied_for @u3 } | 137 | + it { should be_allowed_for master } |
138 | + it { should be_denied_for reporter } | ||
125 | it { should be_denied_for :admin } | 139 | it { should be_denied_for :admin } |
126 | - it { should be_denied_for @u2 } | 140 | + it { should be_denied_for guest } |
127 | it { should be_denied_for :user } | 141 | it { should be_denied_for :user } |
128 | it { should be_denied_for :visitor } | 142 | it { should be_denied_for :visitor } |
129 | end | 143 | end |
130 | 144 | ||
131 | describe "GET /project_code/issues" do | 145 | describe "GET /project_code/issues" do |
132 | - subject { project_issues_path(@project) } | 146 | + subject { project_issues_path(project) } |
133 | 147 | ||
134 | - it { should be_allowed_for @u1 } | ||
135 | - it { should be_allowed_for @u3 } | 148 | + it { should be_allowed_for master } |
149 | + it { should be_allowed_for reporter } | ||
136 | it { should be_denied_for :admin } | 150 | it { should be_denied_for :admin } |
137 | - it { should be_denied_for @u2 } | 151 | + it { should be_denied_for guest } |
138 | it { should be_denied_for :user } | 152 | it { should be_denied_for :user } |
139 | it { should be_denied_for :visitor } | 153 | it { should be_denied_for :visitor } |
140 | end | 154 | end |
141 | 155 | ||
142 | describe "GET /project_code/snippets" do | 156 | describe "GET /project_code/snippets" do |
143 | - subject { project_snippets_path(@project) } | 157 | + subject { project_snippets_path(project) } |
144 | 158 | ||
145 | - it { should be_allowed_for @u1 } | ||
146 | - it { should be_allowed_for @u3 } | 159 | + it { should be_allowed_for master } |
160 | + it { should be_allowed_for reporter } | ||
147 | it { should be_denied_for :admin } | 161 | it { should be_denied_for :admin } |
148 | - it { should be_denied_for @u2 } | 162 | + it { should be_denied_for guest } |
149 | it { should be_denied_for :user } | 163 | it { should be_denied_for :user } |
150 | it { should be_denied_for :visitor } | 164 | it { should be_denied_for :visitor } |
151 | end | 165 | end |
152 | 166 | ||
153 | describe "GET /project_code/merge_requests" do | 167 | describe "GET /project_code/merge_requests" do |
154 | - subject { project_merge_requests_path(@project) } | 168 | + subject { project_merge_requests_path(project) } |
155 | 169 | ||
156 | - it { should be_allowed_for @u1 } | ||
157 | - it { should be_allowed_for @u3 } | 170 | + it { should be_allowed_for master } |
171 | + it { should be_allowed_for reporter } | ||
158 | it { should be_denied_for :admin } | 172 | it { should be_denied_for :admin } |
159 | - it { should be_denied_for @u2 } | 173 | + it { should be_denied_for guest } |
160 | it { should be_denied_for :user } | 174 | it { should be_denied_for :user } |
161 | it { should be_denied_for :visitor } | 175 | it { should be_denied_for :visitor } |
162 | end | 176 | end |
163 | 177 | ||
164 | describe "GET /project_code/repository" do | 178 | describe "GET /project_code/repository" do |
165 | - subject { project_repository_path(@project) } | 179 | + subject { project_repository_path(project) } |
166 | 180 | ||
167 | - it { should be_allowed_for @u1 } | ||
168 | - it { should be_allowed_for @u3 } | 181 | + it { should be_allowed_for master } |
182 | + it { should be_allowed_for reporter } | ||
169 | it { should be_denied_for :admin } | 183 | it { should be_denied_for :admin } |
170 | - it { should be_denied_for @u2 } | 184 | + it { should be_denied_for guest } |
171 | it { should be_denied_for :user } | 185 | it { should be_denied_for :user } |
172 | it { should be_denied_for :visitor } | 186 | it { should be_denied_for :visitor } |
173 | end | 187 | end |
174 | 188 | ||
175 | describe "GET /project_code/repository/branches" do | 189 | describe "GET /project_code/repository/branches" do |
176 | - subject { branches_project_repository_path(@project) } | 190 | + subject { branches_project_repository_path(project) } |
177 | 191 | ||
178 | - it { should be_allowed_for @u1 } | ||
179 | - it { should be_allowed_for @u3 } | 192 | + it { should be_allowed_for master } |
193 | + it { should be_allowed_for reporter } | ||
180 | it { should be_denied_for :admin } | 194 | it { should be_denied_for :admin } |
181 | - it { should be_denied_for @u2 } | 195 | + it { should be_denied_for guest } |
182 | it { should be_denied_for :user } | 196 | it { should be_denied_for :user } |
183 | it { should be_denied_for :visitor } | 197 | it { should be_denied_for :visitor } |
184 | end | 198 | end |
185 | 199 | ||
186 | describe "GET /project_code/repository/tags" do | 200 | describe "GET /project_code/repository/tags" do |
187 | - subject { tags_project_repository_path(@project) } | 201 | + subject { tags_project_repository_path(project) } |
188 | 202 | ||
189 | - it { should be_allowed_for @u1 } | ||
190 | - it { should be_allowed_for @u3 } | 203 | + it { should be_allowed_for master } |
204 | + it { should be_allowed_for reporter } | ||
191 | it { should be_denied_for :admin } | 205 | it { should be_denied_for :admin } |
192 | - it { should be_denied_for @u2 } | 206 | + it { should be_denied_for guest } |
193 | it { should be_denied_for :user } | 207 | it { should be_denied_for :user } |
194 | it { should be_denied_for :visitor } | 208 | it { should be_denied_for :visitor } |
195 | end | 209 | end |
196 | 210 | ||
197 | describe "GET /project_code/hooks" do | 211 | describe "GET /project_code/hooks" do |
198 | - subject { project_hooks_path(@project) } | 212 | + subject { project_hooks_path(project) } |
199 | 213 | ||
200 | - it { should be_allowed_for @u1 } | ||
201 | - it { should be_allowed_for @u3 } | 214 | + it { should be_allowed_for master } |
215 | + it { should be_allowed_for reporter } | ||
202 | it { should be_denied_for :admin } | 216 | it { should be_denied_for :admin } |
203 | - it { should be_denied_for @u2 } | 217 | + it { should be_denied_for guest } |
204 | it { should be_denied_for :user } | 218 | it { should be_denied_for :user } |
205 | it { should be_denied_for :visitor } | 219 | it { should be_denied_for :visitor } |
206 | end | 220 | end |
207 | 221 | ||
208 | describe "GET /project_code/files" do | 222 | describe "GET /project_code/files" do |
209 | - subject { files_project_path(@project) } | 223 | + subject { files_project_path(project) } |
210 | 224 | ||
211 | - it { should be_allowed_for @u1 } | ||
212 | - it { should be_allowed_for @u3 } | 225 | + it { should be_allowed_for master } |
226 | + it { should be_allowed_for reporter } | ||
213 | it { should be_denied_for :admin } | 227 | it { should be_denied_for :admin } |
214 | - it { should be_denied_for @u2 } | 228 | + it { should be_denied_for guest } |
215 | it { should be_denied_for :user } | 229 | it { should be_denied_for :user } |
216 | it { should be_denied_for :visitor } | 230 | it { should be_denied_for :visitor } |
217 | end | 231 | end |