##// END OF EJS Templates
Upgraded to Rails 2.3.4 (#3597)...
Upgraded to Rails 2.3.4 (#3597) * Ran the Rails upgrade * Upgraded to Rails Engines 2.3.2 * Added a plugin to let Engines override application views. * Converted tests to use the new classes: ** ActionController::TestCase for functional ** ActiveSupport::TestCase for units * Converted ActiveRecord::Error message to a string. * ActiveRecord grouping returns an ordered hash which doesn't have #sort! * Updated the I18n storage_units format. * Added some default initializers from a fresh rails app * Changed the order of check_box_tags and hidden_field_tags. The hidden tag needs to appear first in Rails 2.3, otherwise it will override any value in the check_box_tag. * Removed the custom handler for when the cookie store is tampered with. Rails 2.3 removed the TamperedWithCookie exception and instead Rails will not load the data from it when it's been tampered with (e.g. no user login). * Fixed mail layouts, 2.3 has problems with implicit multipart emails that use layouts. Also removed some custom Redmine mailer code. * Fixed a bug that occurred in tests where the "required" span tag would be added to the :field_status translation. This resulted in an email string of: <li>Status<span class="required"> *</span><span class="required"> *</span> Instead of: <li>Status: New</li> git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2887 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2773:7b0cb6aba871
r2773:7b0cb6aba871
Show More
repository_test.rb
154 lines | 6.3 KiB | text/x-ruby | RubyLexer
/ test / unit / repository_test.rb
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 # redMine - project management software
# Copyright (C) 2006-2007 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
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require File.dirname(__FILE__) + '/../test_helper'
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class RepositoryTest < ActiveSupport::TestCase
Jean-Philippe Lang
Create a journal and send an email when an issue is closed by commit (#609)....
r1112 fixtures :projects,
:trackers,
:projects_trackers,
:repositories,
:issues,
:issue_statuses,
:changesets,
:changes,
:users,
:enumerations
Jean-Philippe Lang
Fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)....
r532
def setup
@repository = Project.find(1).repository
end
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470
def test_create
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 repository = Repository::Subversion.new(:project => Project.find(3))
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 assert !repository.save
repository.url = "svn://localhost"
assert repository.save
repository.reload
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 project = Project.find(3)
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 assert_equal repository, project.repository
end
Jean-Philippe Lang
Clear changesets and changes with raw sql when deleting a repository (#1627)....
r1651 def test_destroy
changesets = Changeset.count(:all, :conditions => "repository_id = 10")
changes = Change.count(:all, :conditions => "repository_id = 10", :include => :changeset)
assert_difference 'Changeset.count', -changesets do
assert_difference 'Change.count', -changes do
Repository.find(10).destroy
end
end
end
Jean-Philippe Lang
Ability to disable unused SCM adapters in application settings....
r1493 def test_should_not_create_with_disabled_scm
# disable Subversion
Setting.enabled_scm = ['Darcs', 'Git']
repository = Repository::Subversion.new(:project => Project.find(3), :url => "svn://localhost")
assert !repository.save
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_equal I18n.translate('activerecord.errors.messages.invalid'), repository.errors.on(:type)
Jean-Philippe Lang
Adds Filesystem adapter (patch #1393 by Paul R)....
r1494 # re-enable Subversion for following tests
Setting.delete_all
Jean-Philippe Lang
Ability to disable unused SCM adapters in application settings....
r1493 end
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 def test_scan_changesets_for_issue_ids
Jean-Philippe Lang
Slight tests fixes....
r2053 Setting.default_language = 'en'
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 # choosing a status to apply to fix issues
Setting.commit_fix_status_id = IssueStatus.find(:first, :conditions => ["is_closed = ?", true]).id
Jean-Philippe Lang
Added the ability to set the "done ratio" of issues fixed by commit (original path by Nikolay Solakov, slightly edited)....
r810 Setting.commit_fix_done_ratio = "90"
Jean-Philippe Lang
Commit message parser:...
r848 Setting.commit_ref_keywords = 'refs , references, IssueID'
Setting.commit_fix_keywords = 'fixes , closes'
Jean-Philippe Lang
Create a journal and send an email when an issue is closed by commit (#609)....
r1112 Setting.default_language = 'en'
ActionMailer::Base.deliveries.clear
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 # make sure issue 1 is not already closed
Jean-Philippe Lang
Create a journal and send an email when an issue is closed by commit (#609)....
r1112 fixed_issue = Issue.find(1)
assert !fixed_issue.status.is_closed?
old_status = fixed_issue.status
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470
Repository.scan_changesets_for_issue_ids
assert_equal [101, 102], Issue.find(3).changeset_ids
# fixed issues
Jean-Philippe Lang
Create a journal and send an email when an issue is closed by commit (#609)....
r1112 fixed_issue.reload
Jean-Philippe Lang
Added the ability to set the "done ratio" of issues fixed by commit (original path by Nikolay Solakov, slightly edited)....
r810 assert fixed_issue.status.is_closed?
assert_equal 90, fixed_issue.done_ratio
assert_equal [101], fixed_issue.changeset_ids
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470
Jean-Philippe Lang
Create a journal and send an email when an issue is closed by commit (#609)....
r1112 # issue change
journal = fixed_issue.journals.find(:first, :order => 'created_on desc')
assert_equal User.find_by_login('dlopper'), journal.user
assert_equal 'Applied in changeset r2.', journal.notes
# 2 email notifications
assert_equal 2, ActionMailer::Base.deliveries.size
mail = ActionMailer::Base.deliveries.first
assert_kind_of TMail::Mail, mail
assert mail.subject.starts_with?("[#{fixed_issue.project.name} - #{fixed_issue.tracker.name} ##{fixed_issue.id}]")
assert mail.body.include?("Status changed from #{old_status} to #{fixed_issue.status}")
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 # ignoring commits referencing an issue of another project
assert_equal [], Issue.find(4).changesets
end
Jean-Philippe Lang
Changeset comments are now stripped before being stored in the database (patch by Nicholas Wieland)....
r651
def test_for_changeset_comments_strip
repository = Repository::Mercurial.create( :project => Project.find( 4 ), :url => '/foo/bar/baz' )
comment = <<-COMMENT
This is a loooooooooooooooooooooooooooong comment
COMMENT
changeset = Changeset.new(
:comments => comment, :commit_date => Time.now, :revision => 0, :scmid => 'f39b7922fb3c',
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 :committer => 'foo <foo@example.com>', :committed_on => Time.now, :repository => repository )
Jean-Philippe Lang
Changeset comments are now stripped before being stored in the database (patch by Nicholas Wieland)....
r651 assert( changeset.save )
assert_not_equal( comment, changeset.comments )
assert_equal( 'This is a loooooooooooooooooooooooooooong comment', changeset.comments )
end
Jean-Philippe Lang
Strip repository urls (closes #852)....
r1234
def test_for_urls_strip
repository = Repository::Cvs.create(:project => Project.find(4), :url => ' :pserver:login:password@host:/path/to/the/repository',
:root_url => 'foo ')
assert repository.save
repository.reload
assert_equal ':pserver:login:password@host:/path/to/the/repository', repository.url
assert_equal 'foo', repository.root_url
end
Jean-Philippe Lang
Maps repository users to Redmine users (#1383)....
r2004
def test_manual_user_mapping
assert_no_difference "Changeset.count(:conditions => 'user_id <> 2')" do
c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 100, :comments => 'Committed by foo.')
assert_nil c.user
@repository.committer_ids = {'foo' => '2'}
assert_equal User.find(2), c.reload.user
# committer is now mapped
c = Changeset.create!(:repository => @repository, :committer => 'foo', :committed_on => Time.now, :revision => 101, :comments => 'Another commit by foo.')
assert_equal User.find(2), c.user
end
end
def test_auto_user_mapping_by_username
c = Changeset.create!(:repository => @repository, :committer => 'jsmith', :committed_on => Time.now, :revision => 100, :comments => 'Committed by john.')
assert_equal User.find(2), c.user
end
def test_auto_user_mapping_by_email
c = Changeset.create!(:repository => @repository, :committer => 'john <jsmith@somenet.foo>', :committed_on => Time.now, :revision => 100, :comments => 'Committed by john.')
assert_equal User.find(2), c.user
end
Jean-Philippe Lang
Commit messages are now scanned for referenced or fixed issue IDs....
r470 end