if params[:repository_id].present?
@repository = @project.repositories.find_by_identifier_param(params[:repository_id])
else
- @repository = @project.repository
+ @repository = @project.repository || @project.repositories.first
end
(render_404; return false) unless @repository
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s
menu.push :repository,
{:controller => 'repositories', :action => 'show',
:repository_id => nil, :path => nil, :rev => nil},
- :if => Proc.new {|p| p.repository && !p.repository.new_record?}
+ :if => Proc.new {|p| p.repositories.any? {|r| !r.new_record?}}
menu.push :settings, {:controller => 'projects', :action => 'settings'},
:last => true
end
end
end
+ def test_show_without_main_repository_should_display_first_repository
+ skip unless repository_configured?('subversion')
+
+ project = Project.find(1)
+ repos = project.repositories
+ repos << Repository::Subversion.create(:identifier => 'test', :url => 'svn://valid')
+ assert_equal true, repos.exists?(:is_default => true)
+
+ repos.update_all(:is_default => false)
+ repos.reload
+ assert_equal false, repos.exists?(:is_default => true)
+
+ repository = repos.first
+ @request.session[:user_id] = 2
+
+ get(:show, :params => {:id => 1})
+ assert_response :success
+ assert_select '#sidebar' do
+ assert_select 'a.repository.selected[href=?]', "/projects/#{project.identifier}/repository/#{repository.identifier_param}"
+ end
+ end
+
def test_show_should_show_diff_button_depending_on_browse_repository_permission
skip unless repository_configured?('subversion')
:roles,
:member_roles,
:members,
- :enabled_modules
+ :enabled_modules,
+ :repositories
def test_project_menu_with_specific_locale
get '/projects/ecookbook/issues',
end
end
+ def test_project_menu_should_display_repository_tab_when_exists_repository
+ project = Project.find('ecookbook')
+ repos = project.repositories
+ assert_equal true, repos.exists?
+
+ log_user('jsmith', 'jsmith')
+
+ assert_equal true, repos.exists?(:is_default => true)
+ get '/projects/ecookbook'
+ assert_select '#main-menu' do
+ assert_select 'a.repository', :count => 1
+ end
+
+ repos.update_all(:is_default => false)
+ assert_equal false, repos.exists?(:is_default => true)
+ get '/projects/ecookbook'
+ assert_select '#main-menu' do
+ assert_select 'a.repository', :count => 1
+ end
+
+ repos.delete_all
+ assert_equal false, repos.exists?
+ get '/projects/ecookbook'
+ assert_select '#main-menu' do
+ assert_select 'a.repository', :count => 0
+ end
+ end
+
def test_main_menu_should_select_projects_tab_on_project_list
get '/projects'
assert_select '#main-menu' do