]> source.dussan.org Git - redmine.git/commitdiff
Adds accessors for report_last_commit.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 4 Oct 2016 16:40:24 +0000 (16:40 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 4 Oct 2016 16:40:24 +0000 (16:40 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15885 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/repositories_controller.rb
app/helpers/repositories_helper.rb
app/models/repository/git.rb
test/functional/repositories_controller_test.rb
test/functional/repositories_git_controller_test.rb
test/unit/repository_git_test.rb

index 07f1db0b488288cc8028f23e5aeff3ee1ea79bef..3f01b1167f8dea4a77cedd86396120cbd48496fe 100644 (file)
@@ -45,12 +45,8 @@ class RepositoriesController < ApplicationController
   end
 
   def create
-    attrs = pickup_extra_info
     @repository = Repository.factory(params[:repository_scm])
     @repository.safe_attributes = params[:repository]
-    if attrs[:attrs_extra].keys.any?
-      @repository.merge_extra_info(attrs[:attrs_extra])
-    end
     @repository.project = @project
     if request.post? && @repository.save
       redirect_to settings_project_path(@project, :tab => 'repositories')
@@ -63,11 +59,7 @@ class RepositoriesController < ApplicationController
   end
 
   def update
-    attrs = pickup_extra_info
-    @repository.safe_attributes = attrs[:attrs]
-    if attrs[:attrs_extra].keys.any?
-      @repository.merge_extra_info(attrs[:attrs_extra])
-    end
+    @repository.safe_attributes = params[:repository]
     @repository.project = @project
     if @repository.save
       redirect_to settings_project_path(@project, :tab => 'repositories')
@@ -76,20 +68,6 @@ class RepositoriesController < ApplicationController
     end
   end
 
-  def pickup_extra_info
-    p       = {}
-    p_extra = {}
-    params[:repository].each do |k, v|
-      if k =~ /^extra_/
-        p_extra[k] = v
-      else
-        p[k] = v
-      end
-    end
-    {:attrs => p, :attrs_extra => p_extra}
-  end
-  private :pickup_extra_info
-
   def committers
     @committers = @repository.committers
     @users = @project.users.to_a
index 7ac9075088e4b52bb9828adaea93dfb084b2b2dc..13351fa9ef4b3db9b88a5b308ca994fdc71ca5c0 100644 (file)
@@ -185,7 +185,7 @@ module RepositoriesHelper
                       scm_path_info_tag(repository)) +
     scm_path_encoding_tag(form, repository) +
     content_tag('p', form.check_box(
-                        :extra_report_last_commit,
+                        :report_last_commit,
                         :label => l(:label_git_report_last_commit)
                          ))
   end
index 0873904d0297fe629e30f9ee5c489bf21c3d0821..26e0d393d29d2488d6795d75aa216b8a363b619d 100644 (file)
@@ -22,6 +22,8 @@ class Repository::Git < Repository
   attr_protected :root_url
   validates_presence_of :url
 
+  safe_attributes 'report_last_commit'
+
   def self.human_attribute_name(attribute_key_name, *args)
     attr_name = attribute_key_name.to_s
     if attr_name == "url"
@@ -39,15 +41,15 @@ class Repository::Git < Repository
   end
 
   def report_last_commit
-    extra_report_last_commit
-  end
-
-  def extra_report_last_commit
     return false if extra_info.nil?
     v = extra_info["extra_report_last_commit"]
     return false if v.nil?
     v.to_s != '0'
   end
+  def report_last_commit=(arg)
+    merge_extra_info "extra_report_last_commit" => arg
+  end
 
   def supports_directory_revisions?
     true
@@ -94,7 +96,7 @@ class Repository::Git < Repository
   end
 
   def scm_entries(path=nil, identifier=nil)
-    scm.entries(path, identifier, :report_last_commit => extra_report_last_commit)
+    scm.entries(path, identifier, :report_last_commit => report_last_commit)
   end
   protected :scm_entries
 
index f55867f5b95a4c6f25aef0a5204f74808947ad36..ebe6c0da883a2e9755ec794f02fd8e3d2c209557 100644 (file)
@@ -49,6 +49,16 @@ class RepositoriesControllerTest < Redmine::ControllerTest
       assert_select 'option[value=Git]:not([selected])'
     end
   end
+  def test_get_new_with_type
+    @request.session[:user_id] = 1
+    get :new, :project_id => 'subproject1', :repository_scm => 'Git'
+    assert_response :success
+
+    assert_select 'select[name=?]', 'repository_scm' do
+      assert_select 'option[value=?][selected=selected]', 'Git'
+    end
+  end
 
   def test_create
     @request.session[:user_id] = 1
index c76a5165e0d47e7ee7f0846b07abc537e8e2fbab..093e985b8cdb1d9431c91d26cb25daf175fb5da7 100644 (file)
@@ -60,22 +60,22 @@ class RepositoriesGitControllerTest < Redmine::ControllerTest
                        :url => '/test',
                        :is_default => '0',
                        :identifier => 'test-create',
-                       :extra_report_last_commit => '1',
+                       :report_last_commit => '1',
                      }
     end
     assert_response 302
     repository = Repository.order('id DESC').first
     assert_kind_of Repository::Git, repository
     assert_equal '/test', repository.url
-    assert_equal true, repository.extra_report_last_commit
+    assert_equal true, repository.report_last_commit
 
     put :update, :id => repository.id,
                  :repository => {
-                     :extra_report_last_commit => '0'
+                   :report_last_commit => '0'
                  }
     assert_response 302
     repo2 = Repository.find(repository.id)
-    assert_equal false, repo2.extra_report_last_commit
+    assert_equal false, repo2.report_last_commit
   end
 
   if File.directory?(REPOSITORY_PATH)
index 15b7ea53b1e517088bba2c39f573e90eb0bc8ce6..7b56b4a79368b542c70d3c97f6fdd926a49510a0 100644 (file)
@@ -243,22 +243,13 @@ class RepositoryGitTest < ActiveSupport::TestCase
       assert_equal h1, h2
     end
 
-    def test_keep_extra_report_last_commit_in_clear_changesets
+    def test_clear_changesets_should_keep_report_last_commit
       assert_nil @repository.extra_info
-      h = {}
-      h["extra_report_last_commit"] = "1"
-      @repository.merge_extra_info(h)
+      @repository.report_last_commit = "1"
       @repository.save
-      @project.reload
-
-      assert_equal 0, @repository.changesets.count
-      @repository.fetch_changesets
-      @project.reload
-
-      assert_equal NUM_REV, @repository.changesets.count
       @repository.send(:clear_changesets)
-      assert_equal 1, @repository.extra_info.size
-      assert_equal "1", @repository.extra_info["extra_report_last_commit"]
+
+      assert_equal true, @repository.report_last_commit
     end
 
     def test_refetch_after_clear_changesets