Commit 67fd7432943657f29d3d417445d54bc7c6d46946

Authored by Robert Speicher
1 parent cf237f1d

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