Commit 61a86101 authored by Izaak Alpert's avatar Izaak Alpert

Prevent empty public projects from throwing exceptions

GITLAB-1279 (GITLAB-1264)

Change-Id: Ifb5b4313bc91fae720f8ef5c36152c45e9d38934
parent 05ef996e
......@@ -16,9 +16,11 @@ class Public::ProjectsController < ApplicationController
render_404 and return unless @project
@repository = @project.repository
unless @project.empty_repo?
@recent_tags = @repository.tags.first(10)
@commit = @repository.commit(params[:ref])
@tree = Tree.new(@repository, @commit.id)
end
end
end
......@@ -15,6 +15,7 @@
%br
.row
- unless @project.empty_repo?
.span9
= render 'tree', tree: @tree
.span3
......@@ -44,3 +45,5 @@
%i.icon-calendar
= time_ago_in_words(tag.commit.committed_date)
ago
- else
= 'Empty Repository'
......@@ -12,3 +12,8 @@ Feature: Public Projects Feature
When I visit public page for "Community" project
Then I should see public project details
And I should see project readme
Scenario: I visit an empty public project page
Given public empty project "Empty Public Project"
When I visit empty public project page
Then I should see empty public project details
\ No newline at end of file
......@@ -9,6 +9,11 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
page.should_not have_content "Enterprise"
end
step 'I should see project "Empty Public Project"' do
page.should have_content "Empty Public Project"
puts page.save_page('foo.html')
end
step 'I should see public project details' do
page.should have_content '32 branches'
page.should have_content '16 tags'
......@@ -22,6 +27,19 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
create :project_with_code, name: 'Community', public: true
end
step 'public empty project "Empty Public Project"' do
create :project, name: 'Empty Public Project', public: true
end
step 'I visit empty public project page' do
project = Project.find_by_name('Empty Public Project')
visit public_project_path(project)
end
step 'I should see empty public project details' do
page.should have_content 'Empty Repository'
end
step 'private project "Enterprise"' do
create :project, name: 'Enterprise'
end
......
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