class Public::ProjectsController < ApplicationController
skip_before_filter :authenticate_user!,
- :reject_blocked, :set_current_user_for_observers,
- :add_abilities
+ :reject_blocked, :set_current_user_for_observers,
+ :add_abilities
layout 'public'
render_404 and return unless @project
@repository = @project.repository
- @recent_tags = @repository.tags.first(10)
+ unless @project.empty_repo?
+ @recent_tags = @repository.tags.first(10)
- @commit = @repository.commit(params[:ref])
- @tree = Tree.new(@repository, @commit.id)
+ @commit = @repository.commit(params[:ref])
+ @tree = Tree.new(@repository, @commit.id)
+ end
end
end
%br
.row
- .span9
- = render 'tree', tree: @tree
- .span3
- %h5 Repository:
- %div
- %p
- %span.light Bare size is
- #{@project.repository.size} MB
+ - unless @project.empty_repo?
+ .span9
+ = render 'tree', tree: @tree
+ .span3
+ %h5 Repository:
+ %div
+ %p
+ %span.light Bare size is
+ #{@project.repository.size} MB
- %p
- = pluralize(@repository.round_commit_count, 'commit')
- %p
- = pluralize(@repository.branch_names.count, 'branch')
- %p
- = pluralize(@repository.tag_names.count, 'tag')
+ %p
+ = pluralize(@repository.round_commit_count, 'commit')
+ %p
+ = pluralize(@repository.branch_names.count, 'branch')
+ %p
+ = pluralize(@repository.tag_names.count, 'tag')
- - if @recent_tags.present?
- %hr
- %h5 Most Recent Tags:
- %ul.unstyled
- - @recent_tags.each do |tag|
- %li
- %p
- %i.icon-tag
- %strong= tag.name
- %small.light.pull-right
- %i.icon-calendar
- = time_ago_in_words(tag.commit.committed_date)
- ago
+ - if @recent_tags.present?
+ %hr
+ %h5 Most Recent Tags:
+ %ul.unstyled
+ - @recent_tags.each do |tag|
+ %li
+ %p
+ %i.icon-tag
+ %strong= tag.name
+ %small.light.pull-right
+ %i.icon-calendar
+ = time_ago_in_words(tag.commit.committed_date)
+ ago
+ - else
+ = 'Empty Repository'
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
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'
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