summaryrefslogtreecommitdiff
path: root/spec/controllers/projects
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2015-04-06 23:02:06 -0400
committerRobert Speicher <rspeicher@gmail.com>2015-04-06 23:08:28 -0400
commit167a6b9eefd2076d08b4f1504f8b5ff3fb281026 (patch)
tree59e6e75dc5c10d92da99b25a74d083e50862b2a6 /spec/controllers/projects
parent0d0042d27481d31027a10edb2ba3a184bff5075a (diff)
downloadgitlab-ce-167a6b9eefd2076d08b4f1504f8b5ff3fb281026.tar.gz
Render a 404 when RefsController#logs_tree gets an HTML request
Fixes #2152
Diffstat (limited to 'spec/controllers/projects')
-rw-r--r--spec/controllers/projects/refs_controller_spec.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/controllers/projects/refs_controller_spec.rb b/spec/controllers/projects/refs_controller_spec.rb
new file mode 100644
index 00000000000..c254ab7cb6e
--- /dev/null
+++ b/spec/controllers/projects/refs_controller_spec.rb
@@ -0,0 +1,41 @@
+require 'spec_helper'
+
+describe Projects::RefsController do
+ let(:project) { create(:project) }
+ let(:user) { create(:user) }
+
+ before do
+ sign_in(user)
+ project.team << [user, :developer]
+ end
+
+ describe 'GET #logs_tree' do
+ def default_get(format = :html)
+ get :logs_tree, namespace_id: project.namespace.to_param,
+ project_id: project.to_param, id: 'master',
+ path: 'foo/bar/baz.html', format: format
+ end
+
+ def xhr_get(format = :html)
+ xhr :get, :logs_tree, namespace_id: project.namespace.to_param,
+ project_id: project.to_param, id: 'master',
+ path: 'foo/bar/baz.html', format: format
+ end
+
+ it 'never throws MissingTemplate' do
+ expect { default_get }.not_to raise_error
+ expect { xhr_get }.not_to raise_error
+ end
+
+ it 'renders 404 for non-JS requests' do
+ xhr_get
+
+ expect(response).to be_not_found
+ end
+
+ it 'renders JS' do
+ xhr_get(:js)
+ expect(response).to be_success
+ end
+ end
+end