diff test/unit/repository_test.rb @ 1526:404aa68d4227

Merge from live branch
author Chris Cannam
date Thu, 11 Sep 2014 12:46:20 +0100
parents dffacf8a6908
children
line wrap: on
line diff
--- a/test/unit/repository_test.rb	Mon Mar 17 08:57:04 2014 +0000
+++ b/test/unit/repository_test.rb	Thu Sep 11 12:46:20 2014 +0100
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2012  Jean-Philippe Lang
+# Copyright (C) 2006-2014  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -97,6 +97,31 @@
     assert_equal [repository1, repository2], Project.find(3).repositories.sort
   end
 
+  def test_default_repository_should_be_one
+    assert_equal 0, Project.find(3).repositories.count
+    repository1 = Repository::Subversion.new(
+                      :project => Project.find(3),
+                      :identifier => 'svn1',
+                      :url => 'file:///svn1'
+                    )
+    assert repository1.save
+    assert repository1.is_default?
+
+    repository2 = Repository::Subversion.new(
+                      :project => Project.find(3),
+                      :identifier => 'svn2',
+                      :url => 'file:///svn2',
+                      :is_default => true
+                    )
+    assert repository2.save
+    assert repository2.is_default?
+    repository1.reload
+    assert !repository1.is_default?
+
+    assert_equal repository2, Project.find(3).repository
+    assert_equal [repository2, repository1], Project.find(3).repositories.sort
+  end
+
   def test_identifier_should_accept_letters_digits_dashes_and_underscores
     r = Repository::Subversion.new(
       :project_id => 3,
@@ -105,20 +130,18 @@
     )
     assert r.save
   end
-  
+
   def test_identifier_should_not_be_frozen_for_a_new_repository
     assert_equal false, Repository.new.identifier_frozen?
   end
 
   def test_identifier_should_not_be_frozen_for_a_saved_repository_with_blank_identifier
-    Repository.update_all(["identifier = ''"], "id = 10")
-
+    Repository.where(:id => 10).update_all(["identifier = ''"])
     assert_equal false, Repository.find(10).identifier_frozen?
   end
 
   def test_identifier_should_be_frozen_for_a_saved_repository_with_valid_identifier
-    Repository.update_all(["identifier = 'abc123'"], "id = 10")
-
+    Repository.where(:id => 10).update_all(["identifier = 'abc123'"])
     assert_equal true, Repository.find(10).identifier_frozen?
   end
 
@@ -152,18 +175,16 @@
 
   def test_destroy_should_delete_parents_associations
     changeset = Changeset.find(102)
-    changeset.parents = Changeset.find_all_by_id([100, 101])
-
-    assert_difference 'Changeset.connection.select_all("select * from changeset_parents").size', -2 do
+    changeset.parents = Changeset.where(:id => [100, 101]).all
+    assert_difference 'Changeset.connection.select_all("select * from changeset_parents").count', -2 do
       Repository.find(10).destroy
     end
   end
 
   def test_destroy_should_delete_issues_associations
     changeset = Changeset.find(102)
-    changeset.issues = Issue.find_all_by_id([1, 2])
-
-    assert_difference 'Changeset.connection.select_all("select * from changesets_issues").size', -2 do
+    changeset.issues = Issue.where(:id => [1, 2]).all
+    assert_difference 'Changeset.connection.select_all("select * from changesets_issues").count', -2 do
       Repository.find(10).destroy
     end
   end
@@ -181,14 +202,12 @@
 
   def test_scan_changesets_for_issue_ids
     Setting.default_language = 'en'
-
-    # choosing a status to apply to fix issues
-    Setting.commit_fix_status_id = IssueStatus.find(
-                                     :first,
-                                     :conditions => ["is_closed = ?", true]).id
-    Setting.commit_fix_done_ratio = "90"
     Setting.commit_ref_keywords = 'refs , references, IssueID'
-    Setting.commit_fix_keywords = 'fixes , closes'
+    Setting.commit_update_keywords = [
+      {'keywords' => 'fixes , closes',
+       'status_id' => IssueStatus.where(:is_closed => true).first.id,
+       'done_ratio' => '90'}
+    ]
     Setting.default_language = 'en'
     ActionMailer::Base.deliveries.clear
 
@@ -209,7 +228,7 @@
     assert_equal [101], fixed_issue.changeset_ids
 
     # issue change
-    journal = fixed_issue.journals.find(:first, :order => 'created_on desc')
+    journal = fixed_issue.journals.reorder('created_on desc').first
     assert_equal User.find_by_login('dlopper'), journal.user
     assert_equal 'Applied in changeset r2.', journal.notes
 
@@ -278,7 +297,7 @@
   end
 
   def test_manual_user_mapping
-    assert_no_difference "Changeset.count(:conditions => 'user_id <> 2')" do
+    assert_no_difference "Changeset.where('user_id <> 2').count" do
       c = Changeset.create!(
               :repository => @repository,
               :committer => 'foo',
@@ -329,6 +348,12 @@
     assert_equal true, klass.scm_available
   end
 
+  def test_extra_info_should_not_return_non_hash_value
+    repo = Repository.new
+    repo.extra_info = "foo"
+    assert_nil repo.extra_info
+  end
+
   def test_merge_extra_info
     repo = Repository::Subversion.new(:project => Project.find(3))
     assert !repo.save