]> source.dussan.org Git - redmine.git/commitdiff
Don't use a disabled SCM as a default repository SCM (#779).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Jan 2012 22:23:56 +0000 (22:23 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 15 Jan 2012 22:23:56 +0000 (22:23 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8653 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/repositories_controller.rb
test/functional/repositories_controller_test.rb

index 539dcd9dc4017068c6706206354fccca3e5d6da5..cd467d2d721b4528df1d9575447949ac4dfbfc07 100644 (file)
@@ -36,7 +36,7 @@ class RepositoriesController < ApplicationController
   rescue_from Redmine::Scm::Adapters::CommandFailed, :with => :show_error_command_failed
 
   def new
-    scm = params[:repository_scm] || Redmine::Scm::Base.all.first
+    scm = params[:repository_scm] || (Redmine::Scm::Base.all & Setting.enabled_scm).first
     @repository = Repository.factory(scm)
     @repository.is_default = @project.repository.nil?
     @repository.project = @project
index 817e16e2aac727b6b2c05d94b336a13524028db8..6bcbb6bebe76628f94c437a8772c2c9ebe804853 100644 (file)
@@ -43,6 +43,22 @@ class RepositoriesControllerTest < ActionController::TestCase
     assert_tag 'input', :attributes => {:name => 'repository[url]'}
   end
 
+  def test_new_should_propose_enabled_scm_only
+    @request.session[:user_id] = 1
+    with_settings :enabled_scm => ['Mercurial', 'Git'] do
+      get :new, :project_id => 'subproject1'
+    end
+    assert_response :success
+    assert_template 'new'
+    assert_kind_of Repository::Mercurial, assigns(:repository)
+    assert_tag 'select', :attributes => {:name => 'repository_scm'},
+      :children => {:count => 3}
+    assert_tag 'select', :attributes => {:name => 'repository_scm'},
+      :child => {:tag => 'option', :attributes => {:value => 'Mercurial', :selected => 'selected'}}
+    assert_tag 'select', :attributes => {:name => 'repository_scm'},
+      :child => {:tag => 'option', :attributes => {:value => 'Git', :selected => nil}}
+  end
+
   def test_create
     @request.session[:user_id] = 1
     assert_difference 'Repository.count' do