Defect #33953 ยป fixed-33953.patch
app/controllers/repositories_controller.rb | ||
---|---|---|
321 | 321 |
if params[:repository_id].present? |
322 | 322 |
@repository = @project.repositories.find_by_identifier_param(params[:repository_id]) |
323 | 323 |
else |
324 |
@repository = @project.repository |
|
324 |
@repository = @project.repository || @project.repositories.first
|
|
325 | 325 |
end |
326 | 326 |
(render_404; return false) unless @repository |
327 | 327 |
@path = params[:path].is_a?(Array) ? params[:path].join('/') : params[:path].to_s |
lib/redmine.rb | ||
---|---|---|
346 | 346 |
menu.push :repository, |
347 | 347 |
{:controller => 'repositories', :action => 'show', |
348 | 348 |
:repository_id => nil, :path => nil, :rev => nil}, |
349 |
:if => Proc.new {|p| p.repository && !p.repository.new_record?}
|
|
349 |
:if => Proc.new {|p| p.repositories.any?{|r| !r.new_record?}}
|
|
350 | 350 |
menu.push :settings, {:controller => 'projects', :action => 'settings'}, |
351 | 351 |
:last => true |
352 | 352 |
end |
test/functional/repositories_controller_test.rb | ||
---|---|---|
188 | 188 |
end |
189 | 189 |
end |
190 | 190 | |
191 |
def test_show_without_main_repository_should_browse_first_repository |
|
192 |
project = Project.find(1) |
|
193 |
repos = project.repositories |
|
194 |
repos << Repository::Subversion.create(:identifier => 'test', :url => 'svn://valid') |
|
195 |
assert_equal true, repos.exists?(:is_default => true) |
|
196 | ||
197 |
repos.update_all(:is_default => false) |
|
198 |
repos.reload |
|
199 |
assert_equal false, repos.exists?(:is_default => true) |
|
200 | ||
201 |
repository = repos.first |
|
202 |
@request.session[:user_id] = 2 |
|
203 | ||
204 |
get(:show, :params => {:id => 1}) |
|
205 |
assert_response :success |
|
206 |
assert_select '#sidebar' do |
|
207 |
assert_select 'a.repository.selected[href=?]', "/projects/#{project.identifier}/repository/#{repository.identifier_param}" |
|
208 |
end |
|
209 |
end |
|
210 | ||
191 | 211 |
if repository_configured?('subversion') |
192 | 212 |
def test_show_should_show_diff_button_depending_on_browse_repository_permission |
193 | 213 |
@request.session[:user_id] = 2 |
test/integration/lib/redmine/menu_manager_test.rb | ||
---|---|---|
28 | 28 |
:roles, |
29 | 29 |
:member_roles, |
30 | 30 |
:members, |
31 |
:enabled_modules |
|
31 |
:enabled_modules, |
|
32 |
:repositories |
|
32 | 33 | |
33 | 34 |
def test_project_menu_with_specific_locale |
34 | 35 |
get '/projects/ecookbook/issues', |
... | ... | |
80 | 81 |
end |
81 | 82 |
end |
82 | 83 | |
84 |
def test_project_menu_should_display_repository_tab_when_exists_repository |
|
85 |
project = Project.find('ecookbook') |
|
86 |
repos = project.repositories |
|
87 |
assert_equal true, repos.exists? |
|
88 | ||
89 |
log_user('jsmith', 'jsmith') |
|
90 | ||
91 |
assert_equal true, repos.exists?(:is_default => true) |
|
92 |
get '/projects/ecookbook' |
|
93 |
assert_select '#main-menu' do |
|
94 |
assert_select 'a.repository', :count => 1 |
|
95 |
end |
|
96 | ||
97 |
repos.update_all(:is_default => false) |
|
98 |
assert_equal false, repos.exists?(:is_default => true) |
|
99 |
get '/projects/ecookbook' |
|
100 |
assert_select '#main-menu' do |
|
101 |
assert_select 'a.repository', :count => 1 |
|
102 |
end |
|
103 | ||
104 |
repos.delete_all |
|
105 |
assert_equal false, repos.exists? |
|
106 |
get '/projects/ecookbook' |
|
107 |
assert_select '#main-menu' do |
|
108 |
assert_select 'a.repository', :count => 0 |
|
109 |
end |
|
110 |
end |
|
111 | ||
83 | 112 |
def test_main_menu_should_select_projects_tab_on_project_list |
84 | 113 |
get '/projects' |
85 | 114 |
assert_select '#main-menu' do |