Commit 5f24bdb7 authored by Hiroyuki Sato's avatar Hiroyuki Sato

Render not found when failing to look for a commit

parent 0a44ecf3
......@@ -8,10 +8,6 @@ class Projects::NetworkController < Projects::ApplicationController
before_filter :require_non_empty_project
def show
if @options[:q]
@commit = @project.repository.commit(@options[:q]) || @commit
end
respond_to do |format|
format.html
......
......@@ -34,3 +34,7 @@ Feature: Project Network Graph
Then page should not have content not cotaining "v2.1.0"
When click "Show only selected branch" checkbox
Then page should have content not cotaining "v2.1.0"
Scenario: I should fail to look for a commit
When I look for a commit by ";"
Then page status code should be 404
......@@ -87,4 +87,11 @@ class ProjectNetworkGraph < Spinach::FeatureSteps
page.should have_content 'v2.1.0'
end
end
When 'I look for a commit by ";"' do
within ".content .search" do
fill_in 'q', with: ';'
find('button').click
end
end
end
......@@ -51,6 +51,10 @@ module SharedProject
page.should have_content("Features:")
end
Then 'page status code should be 404' do
page.status_code.should == 404
end
def current_project
@project ||= Project.first
end
......
......@@ -94,19 +94,23 @@ module ExtractsPath
# Automatically renders `not_found!` if a valid tree path could not be
# resolved (e.g., when a user inserts an invalid path or ref).
def assign_ref_vars
# assign allowed options
allowed_options = ["filter_ref", "q"]
@options = params.select {|key, value| allowed_options.include?(key) && !value.blank? }
@options = HashWithIndifferentAccess.new(@options)
@id = get_id
@ref, @path = extract_ref(@id)
@repo = @project.repository
@commit = @repo.commit(@ref)
if @options[:q].blank?
@commit = @repo.commit(@ref)
else
@commit = @repo.commit(@options[:q])
end
@tree = Tree.new(@repo, @commit.id, @ref, @path)
@hex_path = Digest::SHA1.hexdigest(@path)
@logs_path = logs_file_project_ref_path(@project, @ref, @path)
# assign allowed options
allowed_options = ["filter_ref", "q"]
@options = params.select {|key, value| allowed_options.include?(key) && !value.blank? }
@options = HashWithIndifferentAccess.new(@options)
raise InvalidPathError unless @tree.exists?
rescue RuntimeError, NoMethodError, InvalidPathError
not_found!
......
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