Commit 228bbb3a authored by Douwe Maan's avatar Douwe Maan

Merge branch 'not-found-in-commits' into 'master'

Renders 404 in commits controller if no commits are found

Closes #37620

See merge request gitlab-org/gitlab-ce!14610
parents ac782f56 ada11406
...@@ -48,6 +48,8 @@ class Projects::CommitsController < Projects::ApplicationController ...@@ -48,6 +48,8 @@ class Projects::CommitsController < Projects::ApplicationController
private private
def set_commits def set_commits
render_404 unless request.format == :atom || @repository.blob_at(@commit.id, @path) || @repository.tree(@commit.id, @path).entries.present?
@limit, @offset = (params[:limit] || 40).to_i, (params[:offset] || 0).to_i @limit, @offset = (params[:limit] || 40).to_i, (params[:offset] || 0).to_i
search = params[:search] search = params[:search]
......
---
title: Renders 404 in commits controller if no commits are found for a given path
merge_request: 14610
author: Guilherme Vieira
type: fixed
...@@ -222,7 +222,7 @@ module SharedPaths ...@@ -222,7 +222,7 @@ module SharedPaths
end end
step "I visit my project's commits page for a specific path" do step "I visit my project's commits page for a specific path" do
visit project_commits_path(@project, root_ref + "/app/models/project.rb", { limit: 5 }) visit project_commits_path(@project, root_ref + "/files/ruby/regex.rb", { limit: 5 })
end end
step 'I visit my project\'s commits stats page' do step 'I visit my project\'s commits stats page' do
......
...@@ -10,9 +10,36 @@ describe Projects::CommitsController do ...@@ -10,9 +10,36 @@ describe Projects::CommitsController do
end end
describe "GET show" do describe "GET show" do
context "when the ref name ends in .atom" do render_views
render_views
context 'with file path' do
before do
get(:show,
namespace_id: project.namespace,
project_id: project,
id: id)
end
context "valid branch, valid file" do
let(:id) { 'master/README.md' }
it { is_expected.to respond_with(:success) }
end
context "valid branch, invalid file" do
let(:id) { 'master/invalid-path.rb' }
it { is_expected.to respond_with(:not_found) }
end
context "invalid branch, valid file" do
let(:id) { 'invalid-branch/README.md' }
it { is_expected.to respond_with(:not_found) }
end
end
context "when the ref name ends in .atom" do
context "when the ref does not exist with the suffix" do context "when the ref does not exist with the suffix" do
it "renders as atom" do it "renders as atom" do
get(:show, get(:show,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment