##// END OF EJS Templates
tagged version 2.6.2...
tagged version 2.6.2 git-svn-id: http://svn.redmine.org/redmine/tags/2.6.2@14041 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r13491:3ba5e24a91ef
r13659:f6182db7de03 2.6.2
Show More
changeset_test.rb
566 lines | 20.7 KiB | text/x-ruby | RubyLexer
/ test / unit / changeset_test.rb
Jean-Philippe Lang
Remove invalid utf8 sequences from commit comments and author name (#4773)....
r3352 # encoding: utf-8
#
# Redmine - project management software
Jean-Philippe Lang
Copyright update in 2.6-stable....
r13491 # Copyright (C) 2006-2015 Jean-Philippe Lang
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 #
# 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.
Toshi MARUYAMA
scm: remove trailing white-spaces from unit changeset test....
r5776 #
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 # 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.
Toshi MARUYAMA
scm: remove trailing white-spaces from unit changeset test....
r5776 #
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 # 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.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../test_helper', __FILE__)
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class ChangesetTest < ActiveSupport::TestCase
Toshi MARUYAMA
scm: add missing fixtures when running tests from scratch in unit changeset test....
r5392 fixtures :projects, :repositories,
:issues, :issue_statuses, :issue_categories,
Toshi MARUYAMA
scm: remove trailing white-spaces from unit changeset test....
r5776 :changesets, :changes,
Toshi MARUYAMA
scm: add missing fixtures when running tests from scratch in unit changeset test....
r5392 :enumerations,
:custom_fields, :custom_values,
Toshi MARUYAMA
add missing fixtures to ChangesetTest...
r12979 :users, :members, :member_roles,
:trackers, :projects_trackers,
Toshi MARUYAMA
scm: add missing fixtures when running tests from scratch in unit changeset test....
r5392 :enabled_modules, :roles
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905
def test_ref_keywords_any
Eric Davis
Added observers to watch model objects for mail delivery instead of calling Mailer....
r2548 ActionMailer::Base.deliveries.clear
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 Setting.commit_ref_keywords = '*'
Jean-Philippe Lang
Ability to define commit keywords per tracker (#7590)....
r11978 Setting.commit_update_keywords = [{'keywords' => 'fixes , closes', 'status_id' => '5', 'done_ratio' => '90'}]
Toshi MARUYAMA
scm: remove trailing white-spaces in unit changeset test....
r5530
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords_any of unit changeset test....
r6598 :comments => 'New commit (#2). Fixes #1',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords_any of unit changeset test....
r6601 assert c.save
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 assert_equal [1, 2], c.issue_ids.sort
fixed = Issue.find(1)
assert fixed.closed?
assert_equal 90, fixed.done_ratio
Eric Davis
Added observers to watch model objects for mail delivery instead of calling Mailer....
r2548 assert_equal 1, ActionMailer::Base.deliveries.size
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 end
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 def test_ref_keywords
Setting.commit_ref_keywords = 'refs'
Jean-Philippe Lang
Support for multiple issue update keywords/rules in commit messages (#4911)....
r11967 Setting.commit_update_keywords = ''
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords of unit changeset test....
r6606 :comments => 'Ignores #2. Refs #1',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords of unit changeset test....
r6607 assert c.save
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal [1], c.issue_ids.sort
end
Toshi MARUYAMA
scm: remove trailing white-spaces in unit changeset test....
r5530
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 def test_ref_keywords_any_only
Setting.commit_ref_keywords = '*'
Jean-Philippe Lang
Support for multiple issue update keywords/rules in commit messages (#4911)....
r11967 Setting.commit_update_keywords = ''
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords_any_only of unit changeset test....
r6608 :comments => 'Ignores #2. Refs #1',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords_any_only of unit changeset test....
r6609 assert c.save
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal [1, 2], c.issue_ids.sort
end
Toshi MARUYAMA
scm: remove trailing white-spaces in unit changeset test....
r5530
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 def test_ref_keywords_any_with_timelog
Setting.commit_ref_keywords = '*'
Setting.commit_logtime_enabled = '1'
Jean-Philippe Lang
Fixes syntax for time logging in commit messages (#7630, #7718)....
r4831 {
'2' => 2.0,
'2h' => 2.0,
'2hours' => 2.0,
'15m' => 0.25,
'15min' => 0.25,
'3h15' => 3.25,
'3h15m' => 3.25,
'3h15min' => 3.25,
'3:15' => 3.25,
'3.25' => 3.25,
'3.25h' => 3.25,
'3,25' => 3.25,
'3,25h' => 3.25,
}.each do |syntax, expected_hours|
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Fixes syntax for time logging in commit messages (#7630, #7718)....
r4831 :committed_on => 24.hours.ago,
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 :comments => "Worked on this issue #1 @#{syntax}",
:revision => '520',
:user => User.find(2))
Jean-Philippe Lang
Fixes syntax for time logging in commit messages (#7630, #7718)....
r4831 assert_difference 'TimeEntry.count' do
c.scan_comment_for_issue_ids
end
assert_equal [1], c.issue_ids.sort
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Toshi MARUYAMA
Rails4: replace deprecated Relation#first with finder options at ChangesetTest...
r12239 time = TimeEntry.order('id desc').first
Jean-Philippe Lang
Fixes syntax for time logging in commit messages (#7630, #7718)....
r4831 assert_equal 1, time.issue_id
assert_equal 1, time.project_id
assert_equal 2, time.user_id
Toshi MARUYAMA
scm: code clean up test/unit/changeset_test.rb....
r5246 assert_equal expected_hours, time.hours,
"@#{syntax} should be logged as #{expected_hours} hours but was #{time.hours}"
Jean-Philippe Lang
Fixes syntax for time logging in commit messages (#7630, #7718)....
r4831 assert_equal Date.yesterday, time.spent_on
assert time.activity.is_default?
Toshi MARUYAMA
scm: code clean up test/unit/changeset_test.rb....
r5246 assert time.comments.include?('r520'),
"r520 was expected in time_entry comments: #{time.comments}"
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 end
end
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 def test_ref_keywords_closing_with_timelog
Setting.commit_ref_keywords = '*'
Toshi MARUYAMA
code format cleanup ChangesetTest...
r12268 Setting.commit_update_keywords = [{'keywords' => 'fixes , closes',
'status_id' => IssueStatus.where(:is_closed => true).first.id.to_s}]
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 Setting.commit_logtime_enabled = '1'
Toshi MARUYAMA
scm: remove trailing white-spaces from unit changeset test....
r5776
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 :committed_on => Time.now,
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 :comments => 'This is a comment. Fixes #1 @4.5, #2 @1',
:user => User.find(2))
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_difference 'TimeEntry.count', 2 do
c.scan_comment_for_issue_ids
end
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal [1, 2], c.issue_ids.sort
assert Issue.find(1).closed?
assert Issue.find(2).closed?
Toshi MARUYAMA
remove unneeded Relation#all from ChangesetTest#test_ref_keywords_closing_with_timelog...
r12264 times = TimeEntry.order('id desc').limit(2)
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal [1, 2], times.collect(&:issue_id).sort
end
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Jean-Philippe Lang
Fixed: using '*' as keyword for repository referencing keywords doesn't work when issue id is at the beginning of a line (#1253)....
r1437 def test_ref_keywords_any_line_start
Setting.commit_ref_keywords = '*'
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Fixed: using '*' as keyword for repository referencing keywords doesn't work when issue id is at the beginning of a line (#1253)....
r1437 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords_any_line_start of unit changeset test....
r6610 :comments => '#1 is the reason of this commit',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords_any_line_start of unit changeset test....
r6611 assert c.save
Jean-Philippe Lang
Fixed: using '*' as keyword for repository referencing keywords doesn't work when issue id is at the beginning of a line (#1253)....
r1437 assert_equal [1], c.issue_ids.sort
end
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749 def test_ref_keywords_allow_brackets_around_a_issue_number
Setting.commit_ref_keywords = '*'
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords_allow_brackets_around_a_issue_number of unit changeset test....
r6612 :comments => '[#1] Worked on this issue',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords_allow_brackets_around_a_issue_number of unit changeset test....
r6613 assert c.save
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749 assert_equal [1], c.issue_ids.sort
end
def test_ref_keywords_allow_brackets_around_multiple_issue_numbers
Setting.commit_ref_keywords = '*'
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_ref_keywords_allow_brackets_around_multiple_issue_numbers of unit changeset test....
r6614 :comments => '[#1 #2, #3] Worked on these',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_ref_keywords_allow_brackets_around_multiple_issue_numbers of unit changeset test....
r6615 assert c.save
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749 assert_equal [1,2,3], c.issue_ids.sort
end
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353
Jean-Philippe Lang
Support for multiple issue update keywords/rules in commit messages (#4911)....
r11967 def test_update_keywords_with_multiple_rules
Jean-Philippe Lang
Ability to define commit keywords per tracker (#7590)....
r11978 with_settings :commit_update_keywords => [
{'keywords' => 'fixes, closes', 'status_id' => '5'},
{'keywords' => 'resolves', 'status_id' => '3'}
] do
issue1 = Issue.generate!
issue2 = Issue.generate!
Changeset.generate!(:comments => "Closes ##{issue1.id}\nResolves ##{issue2.id}")
assert_equal 5, issue1.reload.status_id
assert_equal 3, issue2.reload.status_id
end
end
Jean-Philippe Lang
Support for multiple issue update keywords/rules in commit messages (#4911)....
r11967
Jean-Philippe Lang
Ability to define commit keywords per tracker (#7590)....
r11978 def test_update_keywords_with_multiple_rules_should_match_tracker
with_settings :commit_update_keywords => [
{'keywords' => 'fixes', 'status_id' => '5', 'if_tracker_id' => '2'},
{'keywords' => 'fixes', 'status_id' => '3', 'if_tracker_id' => ''}
] do
issue1 = Issue.generate!(:tracker_id => 2)
issue2 = Issue.generate!
Changeset.generate!(:comments => "Fixes ##{issue1.id}, ##{issue2.id}")
assert_equal 5, issue1.reload.status_id
assert_equal 3, issue2.reload.status_id
end
end
def test_update_keywords_with_multiple_rules_and_no_match
with_settings :commit_update_keywords => [
{'keywords' => 'fixes', 'status_id' => '5', 'if_tracker_id' => '2'},
{'keywords' => 'fixes', 'status_id' => '3', 'if_tracker_id' => '3'}
] do
issue1 = Issue.generate!(:tracker_id => 2)
issue2 = Issue.generate!
Changeset.generate!(:comments => "Fixes ##{issue1.id}, ##{issue2.id}")
assert_equal 5, issue1.reload.status_id
assert_equal 1, issue2.reload.status_id # no updates
end
Jean-Philippe Lang
Support for multiple issue update keywords/rules in commit messages (#4911)....
r11967 end
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 def test_commit_referencing_a_subproject_issue
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => Project.find(1).repository,
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_commit_referencing_a_subproject_issue of unit changeset test....
r6616 :comments => 'refs #5, a subproject issue',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_commit_referencing_a_subproject_issue of unit changeset test....
r6617 assert c.save
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 assert_equal [5], c.issue_ids.sort
assert c.issues.first.project != c.project
end
Jean-Philippe Lang
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
r8797 def test_commit_closing_a_subproject_issue
Jean-Philippe Lang
Ability to define commit keywords per tracker (#7590)....
r11978 with_settings :commit_update_keywords => [{'keywords' => 'closes', 'status_id' => '5'}],
Toshi MARUYAMA
set default_language en at test_commit_closing_a_subproject_issue of unit changeset test...
r10270 :default_language => 'en' do
Jean-Philippe Lang
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
r8797 issue = Issue.find(5)
assert !issue.closed?
assert_difference 'Journal.count' do
c = Changeset.new(:repository => Project.find(1).repository,
:committed_on => Time.now,
:comments => 'closes #5, a subproject issue',
:revision => '12345')
assert c.save
end
assert issue.reload.closed?
Toshi MARUYAMA
Rails4: replace deprecated Relation#first with finder options at ChangesetTest...
r12263 journal = Journal.order('id DESC').first
Jean-Philippe Lang
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
r8797 assert_equal issue, journal.issue
assert_include "Applied in changeset ecookbook:r12345.", journal.notes
end
end
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 def test_commit_referencing_a_parent_project_issue
# repository of child project
Toshi MARUYAMA
scm: code clean up unit model changeset test....
r5041 r = Repository::Subversion.create!(
:project => Project.find(3),
:url => 'svn://localhost/test')
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 c = Changeset.new(:repository => r,
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 :committed_on => Time.now,
Toshi MARUYAMA
scm: add dummy revision at test_commit_referencing_a_parent_project_issue of unit changeset test....
r6618 :comments => 'refs #2, an issue of a parent project',
:revision => '12345')
Toshi MARUYAMA
scm: use save instead of scan_comment_for_issue_ids at test_commit_referencing_a_parent_project_issue of unit changeset test....
r6619 assert c.save
Jean-Philippe Lang
Allow commits to reference issues of parent projects and subprojects (#4674)....
r3243 assert_equal [2], c.issue_ids.sort
assert c.issues.first.project != c.project
end
Toshi MARUYAMA
scm: code clean up test/unit/changeset_test.rb....
r4864
Jean-Philippe Lang
Adds a setting that allows to reference/fix issues of all projects (#3087)....
r8630 def test_commit_referencing_a_project_with_commit_cross_project_ref_disabled
r = Repository::Subversion.create!(
:project => Project.find(3),
:url => 'svn://localhost/test')
with_settings :commit_cross_project_ref => '0' do
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:comments => 'refs #4, an issue of a different project',
:revision => '12345')
assert c.save
assert_equal [], c.issue_ids
end
end
def test_commit_referencing_a_project_with_commit_cross_project_ref_enabled
r = Repository::Subversion.create!(
:project => Project.find(3),
:url => 'svn://localhost/test')
with_settings :commit_cross_project_ref => '1' do
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:comments => 'refs #4, an issue of a different project',
:revision => '12345')
assert c.save
assert_equal [4], c.issue_ids
end
end
Jean-Philippe Lang
Don't update issues nor log time when importing old changesets (#4823)....
r11969 def test_old_commits_should_not_update_issues_nor_log_time
Setting.commit_ref_keywords = '*'
Setting.commit_update_keywords = {'fixes , closes' => {'status_id' => '5', 'done_ratio' => '90'}}
Setting.commit_logtime_enabled = '1'
repository = Project.find(1).repository
repository.created_on = Time.now
repository.save!
c = Changeset.new(:repository => repository,
:committed_on => 1.month.ago,
:comments => 'New commit (#2). Fixes #1 @1h',
:revision => '12345')
assert_no_difference 'TimeEntry.count' do
assert c.save
end
assert_equal [1, 2], c.issue_ids.sort
issue = Issue.find(1)
assert_equal 1, issue.status_id
assert_equal 0, issue.done_ratio
end
Jean-Philippe Lang
Don't link multiple changesets from the same commit multiple times (#17931)....
r13063 def test_2_repositories_with_same_backend_should_not_link_issue_multiple_times
Setting.commit_ref_keywords = '*'
r1 = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn1', :url => 'file:///svn1')
r2 = Repository::Subversion.create!(:project_id => 1, :identifier => 'svn2', :url => 'file:///svn1')
now = Time.now
assert_difference 'Issue.find(1).changesets.count' do
c1 = Changeset.create!(:repository => r1, :committed_on => now, :comments => 'Fixes #1', :revision => '12345')
c1 = Changeset.create!(:repository => r2, :committed_on => now, :comments => 'Fixes #1', :revision => '12345')
end
end
Jean-Philippe Lang
Fixes Changeset#text_tag for numeric scmid (#6681)....
r4376 def test_text_tag_revision
c = Changeset.new(:revision => '520')
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal 'r520', c.text_tag
end
Toshi MARUYAMA
scm: code clean up test/unit/changeset_test.rb....
r4864
Jean-Philippe Lang
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
r8797 def test_text_tag_revision_with_same_project
c = Changeset.new(:revision => '520', :repository => Project.find(1).repository)
assert_equal 'r520', c.text_tag(Project.find(1))
end
def test_text_tag_revision_with_different_project
c = Changeset.new(:revision => '520', :repository => Project.find(1).repository)
assert_equal 'ecookbook:r520', c.text_tag(Project.find(2))
end
Jean-Philippe Lang
Adds the repository identifier to Changeset#text_tag (#779)....
r9135 def test_text_tag_revision_with_repository_identifier
r = Repository::Subversion.create!(
:project_id => 1,
:url => 'svn://localhost/test',
:identifier => 'documents')
c = Changeset.new(:revision => '520', :repository => r)
assert_equal 'documents|r520', c.text_tag
assert_equal 'ecookbook:documents|r520', c.text_tag(Project.find(2))
end
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 def test_text_tag_hash
Toshi MARUYAMA
scm: code clean up unit model changeset test....
r5041 c = Changeset.new(
:scmid => '7234cb2750b63f47bff735edc50a1c0a433c2518',
:revision => '7234cb2750b63f47bff735edc50a1c0a433c2518')
Jean-Philippe Lang
Automatic spent time logging from commit messages (#4155)....
r4356 assert_equal 'commit:7234cb2750b63f47bff735edc50a1c0a433c2518', c.text_tag
end
Eric Davis
Allow referencing issue numbers in brackets. This style is used by other...
r2749
Jean-Philippe Lang
Fixed magic link in the note added when closing an issue by a commit from a subproject (#10284)....
r8797 def test_text_tag_hash_with_same_project
c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository)
assert_equal 'commit:7234cb27', c.text_tag(Project.find(1))
end
def test_text_tag_hash_with_different_project
c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => Project.find(1).repository)
assert_equal 'ecookbook:commit:7234cb27', c.text_tag(Project.find(2))
end
Jean-Philippe Lang
Fixes Changeset#text_tag for numeric scmid (#6681)....
r4376 def test_text_tag_hash_all_number
c = Changeset.new(:scmid => '0123456789', :revision => '0123456789')
assert_equal 'commit:0123456789', c.text_tag
end
Jean-Philippe Lang
Fixed Changeset#text_tag for changeset with hash and repository identifier (#13544)....
r12385 def test_text_tag_hash_with_repository_identifier
r = Repository::Subversion.new(
:project_id => 1,
:url => 'svn://localhost/test',
:identifier => 'documents')
c = Changeset.new(:revision => '7234cb27', :scmid => '7234cb27', :repository => r)
assert_equal 'commit:documents|7234cb27', c.text_tag
assert_equal 'ecookbook:commit:documents|7234cb27', c.text_tag(Project.find(2))
end
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 def test_previous
Jean-Philippe Lang
Postgresql 8.3 compatibility fix (#834)....
r1348 changeset = Changeset.find_by_revision('3')
assert_equal Changeset.find_by_revision('2'), changeset.previous
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 end
def test_previous_nil
Jean-Philippe Lang
Postgresql 8.3 compatibility fix (#834)....
r1348 changeset = Changeset.find_by_revision('1')
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 assert_nil changeset.previous
end
def test_next
Jean-Philippe Lang
Postgresql 8.3 compatibility fix (#834)....
r1348 changeset = Changeset.find_by_revision('2')
assert_equal Changeset.find_by_revision('3'), changeset.next
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 end
def test_next_nil
Jean-Philippe Lang
Fixed: RepositoriesController#revision may show wrong revision (#3779)....
r2784 changeset = Changeset.find_by_revision('10')
Jean-Philippe Lang
* Added links to previous and next revisions on revision view (patch by Cyril Mougel slightly edited)...
r925 assert_nil changeset.next
end
Toshi MARUYAMA
scm: add feature of per project repository log encoding setting (#1735)....
r4862
Jean-Philippe Lang
Remove invalid utf8 sequences from commit comments and author name (#4773)....
r3352 def test_comments_should_be_converted_to_utf8
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 proj = Project.find(3)
# str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
str = "Texte encod\xe9 en ISO-8859-1."
str.force_encoding("ASCII-8BIT") if str.respond_to?(:force_encoding)
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: add feature of per project repository log encoding setting (#1735)....
r4862 :log_encoding => 'ISO-8859-1' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => str)
assert( c.save )
str_utf8 = "Texte encod\xc3\xa9 en ISO-8859-1."
str_utf8.force_encoding("UTF-8") if str_utf8.respond_to?(:force_encoding)
assert_equal str_utf8, c.comments
Jean-Philippe Lang
Remove invalid utf8 sequences from commit comments and author name (#4773)....
r3352 end
Toshi MARUYAMA
scm: code clean up test/unit/changeset_test.rb....
r4864
Toshi MARUYAMA
scm: replace invalid utf-8 sequences in comments instead of stripping on Ruby 1.8....
r5253 def test_invalid_utf8_sequences_in_comments_should_be_replaced_latin1
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 proj = Project.find(3)
# str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
str1 = "Texte encod\xe9 en ISO-8859-1."
Toshi MARUYAMA
scm: fix invalid UTF-8 tests fail on Windows Ruby 1.8....
r5528 str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test"
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding)
str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding)
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: add feature of per project repository log encoding setting (#1735)....
r4862 :log_encoding => 'UTF-8' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => str1,
:committer => str2)
assert( c.save )
assert_equal "Texte encod? en ISO-8859-1.", c.comments
Toshi MARUYAMA
scm: fix invalid UTF-8 tests fail on Windows Ruby 1.8....
r5528 assert_equal "?a?b?c?d?e test", c.committer
Jean-Philippe Lang
Remove invalid utf8 sequences from commit comments and author name (#4773)....
r3352 end
Toshi MARUYAMA
Changing revision label and identifier at SCM adapter level (#3724, #6092)...
r4493
Toshi MARUYAMA
scm: replace invalid utf-8 sequences in comments instead of stripping on Ruby 1.8....
r5253 def test_invalid_utf8_sequences_in_comments_should_be_replaced_ja_jis
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 proj = Project.find(3)
str = "test\xb5\xfetest\xb5\xfe"
if str.respond_to?(:force_encoding)
str.force_encoding('ASCII-8BIT')
end
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: fix log converting error in Ruby 1.9 and add more tests....
r5250 :log_encoding => 'ISO-2022-JP' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => str)
assert( c.save )
assert_equal "test??test??", c.comments
Toshi MARUYAMA
scm: fix log converting error in Ruby 1.9 and add more tests....
r5250 end
Toshi MARUYAMA
scm: Ruby 1.9 compatibility for log....
r4805 def test_comments_should_be_converted_all_latin1_to_utf8
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 s1 = "\xC2\x80"
s2 = "\xc3\x82\xc2\x80"
s4 = s2.dup
if s1.respond_to?(:force_encoding)
s3 = s1.dup
s1.force_encoding('ASCII-8BIT')
s2.force_encoding('ASCII-8BIT')
s3.force_encoding('ISO-8859-1')
s4.force_encoding('UTF-8')
assert_equal s3.encode('UTF-8'), s4
end
proj = Project.find(3)
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: add feature of per project repository log encoding setting (#1735)....
r4862 :log_encoding => 'ISO-8859-1' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => s1)
assert( c.save )
assert_equal s4, c.comments
Toshi MARUYAMA
scm: Ruby 1.9 compatibility for log....
r4805 end
Toshi MARUYAMA
scm: add unit test of preventing PostgreSQL or Ruby 1.9 errors if paths is invalid UTF-8....
r5356 def test_invalid_utf8_sequences_in_paths_should_be_replaced
Toshi MARUYAMA
scm: fix indents of test/unit/changeset_test.rb....
r5591 proj = Project.find(3)
str1 = "Texte encod\xe9 en ISO-8859-1"
str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test"
str1.force_encoding("UTF-8") if str1.respond_to?(:force_encoding)
str2.force_encoding("ASCII-8BIT") if str2.respond_to?(:force_encoding)
r = Repository::Bazaar.create!(
Toshi MARUYAMA
scm: add unit test of preventing PostgreSQL or Ruby 1.9 errors if paths is invalid UTF-8....
r5356 :project => proj,
:url => '/tmp/test/bazaar',
:log_encoding => 'UTF-8' )
Toshi MARUYAMA
scm: fix indents of test/unit/changeset_test.rb....
r5591 assert r
cs = Changeset.new(
Toshi MARUYAMA
scm: add unit test of preventing PostgreSQL or Ruby 1.9 errors if paths is invalid UTF-8....
r5356 :repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => "test")
Toshi MARUYAMA
scm: fix indents of test/unit/changeset_test.rb....
r5591 assert(cs.save)
ch = Change.new(
Toshi MARUYAMA
scm: add unit test of preventing PostgreSQL or Ruby 1.9 errors if paths is invalid UTF-8....
r5356 :changeset => cs,
:action => "A",
:path => str1,
:from_path => str2,
:from_revision => "345")
Toshi MARUYAMA
scm: fix indents of test/unit/changeset_test.rb....
r5591 assert(ch.save)
assert_equal "Texte encod? en ISO-8859-1", ch.path
assert_equal "?a?b?c?d?e test", ch.from_path
Toshi MARUYAMA
scm: add unit test of preventing PostgreSQL or Ruby 1.9 errors if paths is invalid UTF-8....
r5356 end
Toshi MARUYAMA
scm: set empty log encoding UTF-8 in Ruby 1.9 and add tests....
r5248 def test_comments_nil
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 proj = Project.find(3)
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: set empty log encoding UTF-8 in Ruby 1.9 and add tests....
r5248 :log_encoding => 'ISO-8859-1' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => nil,
:committer => nil)
assert( c.save )
assert_equal "", c.comments
assert_equal nil, c.committer
if c.comments.respond_to?(:force_encoding)
assert_equal "UTF-8", c.comments.encoding.to_s
end
Toshi MARUYAMA
scm: set empty log encoding UTF-8 in Ruby 1.9 and add tests....
r5248 end
def test_comments_empty
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 proj = Project.find(3)
r = Repository::Bazaar.create!(
:project => proj,
:url => '/tmp/test/bazaar',
Toshi MARUYAMA
scm: set empty log encoding UTF-8 in Ruby 1.9 and add tests....
r5248 :log_encoding => 'ISO-8859-1' )
Toshi MARUYAMA
scm: code clean up unit changeset test....
r5353 assert r
c = Changeset.new(:repository => r,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => "",
:committer => "")
assert( c.save )
assert_equal "", c.comments
assert_equal "", c.committer
if c.comments.respond_to?(:force_encoding)
assert_equal "UTF-8", c.comments.encoding.to_s
assert_equal "UTF-8", c.committer.encoding.to_s
end
Toshi MARUYAMA
scm: set empty log encoding UTF-8 in Ruby 1.9 and add tests....
r5248 end
Jean-Philippe Lang
Changeset comments set to longtext for handling comments > 64KB with Mysql (#16143)....
r12669 def test_comments_should_accept_more_than_64k
c = Changeset.new(:repository => Repository.first,
:committed_on => Time.now,
:revision => '123',
:scmid => '12345',
:comments => "a" * 500.kilobyte)
assert c.save
c.reload
assert_equal 500.kilobyte, c.comments.size
end
Toshi MARUYAMA
Changing revision label and identifier at SCM adapter level (#3724, #6092)...
r4493 def test_identifier
c = Changeset.find_by_revision('1')
assert_equal c.revision, c.identifier
end
Jean-Philippe Lang
* Referencing issues in commit messages: enter * in 'Referencing keywords' to link any issue id without using keywords....
r905 end