##// END OF EJS Templates
add unit test to set project if project is nil at unit time entry test...
add unit test to set project if project is nil at unit time entry test git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7452 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r7095:091d6de71961
r7332:5778c264349e
Show More
repositories_mercurial_controller_test.rb
505 lines | 17.8 KiB | text/x-ruby | RubyLexer
/ test / functional / repositories_mercurial_controller_test.rb
Toshi MARUYAMA
scm: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563 # Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978 #
# 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: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563 #
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978 # 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: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563 #
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978 # 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
Added a Mercurial test repository with unit and functional tests....
r978 require 'repositories_controller'
# Re-raise errors caught by the controller.
class RepositoriesController; def rescue_action(e) raise e end; end
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class RepositoriesMercurialControllerTest < ActionController::TestCase
Toshi MARUYAMA
scm: mercurial: replace RAILS_ROOT to Rails.root in functional test....
r5932 fixtures :projects, :users, :roles, :members, :member_roles,
:repositories, :enabled_modules
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978
Toshi MARUYAMA
scm: mercurial: replace RAILS_ROOT to Rails.root in functional test....
r5932 REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 CHAR_1_HEX = "\xc3\x9c"
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 PRJ_ID = 3
Toshi MARUYAMA
scm: mercurial: define NUM_REV as the number of test repository revisions at functional test...
r7006 NUM_REV = 29
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 ruby19_non_utf8_pass =
(RUBY_VERSION >= '1.9' && Encoding.default_external.to_s != 'UTF-8')
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978
def setup
@controller = RepositoriesController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
Toshi MARUYAMA
scm: mercurial: add instance variable @project at functional test....
r6122 @project = Project.find(PRJ_ID)
Toshi MARUYAMA
scm: mercurial: update test repository for path encoding (#2664)....
r4876 @repository = Repository::Mercurial.create(
Toshi MARUYAMA
scm: mercurial: add instance variable @project at functional test....
r6122 :project => @project,
Toshi MARUYAMA
scm: mercurial: update test repository for path encoding (#2664)....
r4876 :url => REPOSITORY_PATH,
:path_encoding => 'ISO-8859-1'
)
Toshi MARUYAMA
scm: mercurial: diff '-c' option supports above Mercurial 1.2 (#3724, #7253)....
r4566 assert @repository
Toshi MARUYAMA
scm: mercurial: set instance value flag of whether "hg diff -c" supports true at tests (#7518)....
r4735 @diff_c_support = true
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 @char_1 = CHAR_1_HEX.dup
Toshi MARUYAMA
scm: mercurial: prepare tests of named branch and tag in functional test (#1981, #7246)....
r4998 @tag_char_1 = "tag-#{CHAR_1_HEX}-00"
@branch_char_0 = "branch-#{CHAR_1_HEX}-00"
@branch_char_1 = "branch-#{CHAR_1_HEX}-01"
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 if @char_1.respond_to?(:force_encoding)
@char_1.force_encoding('UTF-8')
Toshi MARUYAMA
scm: mercurial: prepare tests of named branch and tag in functional test (#1981, #7246)....
r4998 @tag_char_1.force_encoding('UTF-8')
@branch_char_0.force_encoding('UTF-8')
@branch_char_1.force_encoding('UTF-8')
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 end
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978 end
Toshi MARUYAMA
scm: mercurial: diff '-c' option supports above Mercurial 1.2 (#3724, #7253)....
r4566
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 if ruby19_non_utf8_pass
puts "TODO: Mercurial functional test fails in Ruby 1.9 " +
"and Encoding.default_external is not UTF-8. " +
Toshi MARUYAMA
scm: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563 "Current value is '#{Encoding.default_external.to_s}'"
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 def test_fake; assert true end
elsif File.directory?(REPOSITORY_PATH)
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 def test_show_root
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_root at functional test...
r7007 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_root at functional test...
r7007 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_not_nil assigns(:entries)
Toshi MARUYAMA
scm: mercurial: update test repository for following issues and fix tests....
r4514 assert_equal 4, assigns(:entries).size
Toshi MARUYAMA
scm: mercurial: fix comment and change // to '' some strings of functional test....
r4511 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
Toshi MARUYAMA
scm: mercurial: fix comment and change // to '' some strings of functional test....
r4511 assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 end
Toshi MARUYAMA
scm: mercurial: fix revision at functional diff test....
r4598
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 def test_show_directory
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory at functional test...
r7008 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory at functional test...
r7008 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID, :path => ['images']
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_not_nil assigns(:entries)
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 assert_equal ['delete.png', 'edit.png'], assigns(:entries).collect(&:name)
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 entry = assigns(:entries).detect {|e| e.name == 'edit.png'}
assert_not_nil entry
assert_equal 'file', entry.kind
assert_equal 'images/edit.png', entry.path
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 end
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 def test_show_at_given_revision
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_at_given_revision at functional test...
r7009 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_at_given_revision at functional test...
r7009 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 [0, '0', '0885933ad4f6'].each do |r1|
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID, :path => ['images'], :rev => r1
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_equal ['delete.png'], assigns(:entries).collect(&:name)
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 end
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 end
Toshi MARUYAMA
scm: mercurial: add some tests at unit and functional test....
r4515
def test_show_directory_sql_escape_percent
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory_sql_escape_percent at functional test...
r7087 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: check changesets size is greater than 0 in browse test in functional test....
r5002 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory_sql_escape_percent at functional test...
r7087 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 [13, '13', '3a330eb32958'].each do |r1|
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 get :show, :id => PRJ_ID, :path => ['sql_escape', 'percent%dir'],
:rev => r1
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 assert_response :success
assert_template 'show'
Toshi MARUYAMA
scm: mercurial: add some tests at unit and functional test....
r4515
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 assert_not_nil assigns(:entries)
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 assert_equal ['percent%file1.txt', 'percentfile1.txt'],
assigns(:entries).collect(&:name)
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 changesets = assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add latest changesets improvement test in functional test....
r5004 assert_not_nil changesets
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Toshi MARUYAMA
scm: mercurial: add latest changesets improvement test in functional test....
r5004 assert_equal %w(13 11 10 9), changesets.collect(&:revision)
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 end
Toshi MARUYAMA
scm: mercurial: add some tests at unit and functional test....
r4515 end
Toshi MARUYAMA
scm: mercurial: change Latin-1 path test methods name....
r5565 def test_show_directory_latin_1_path
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory_latin_1_path at functional test...
r7088 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_directory_latin_1_path at functional test...
r7088 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 [21, '21', 'adf805632193'].each do |r1|
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID, :path => ['latin-1-dir'], :rev => r1
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_equal ["make-latin-1-file.rb",
"test-#{@char_1}-1.txt",
"test-#{@char_1}-2.txt",
"test-#{@char_1}.txt"], assigns(:entries).collect(&:name)
changesets = assigns(:changesets)
assert_not_nil changesets
Toshi MARUYAMA
scm: mercurial: latest changesets improvement and supporting tag (#1981)....
r5003 assert_equal %w(21 20 19 18 17), changesets.collect(&:revision)
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 end
end
Toshi MARUYAMA
scm: mercurial: add named branch test in functional test (#7246)....
r5010 def test_show_branch
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_branch at functional test...
r7089 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add named branch test in functional test (#7246)....
r5010 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_branch at functional test...
r7089 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add named branch test in functional test (#7246)....
r5010 [
'default',
@branch_char_1,
'branch (1)[2]&,%.-3_4',
@branch_char_0,
'test_branch.latin-1',
'test-branch-00',
].each do |bra|
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID, :rev => bra
Toshi MARUYAMA
scm: mercurial: add named branch test in functional test (#7246)....
r5010 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert assigns(:entries).size > 0
assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Toshi MARUYAMA
scm: mercurial: add named branch test in functional test (#7246)....
r5010 end
end
Toshi MARUYAMA
scm: mercurial: add tag test in functional test (#1981)....
r5011 def test_show_tag
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_tag at functional test...
r7090 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add tag test in functional test (#1981)....
r5011 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_show_tag at functional test...
r7090 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add tag test in functional test (#1981)....
r5011 [
@tag_char_1,
'tag_test.00',
'tag-init-revision'
].each do |tag|
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :show, :id => PRJ_ID, :rev => tag
Toshi MARUYAMA
scm: mercurial: add tag test in functional test (#1981)....
r5011 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert assigns(:entries).size > 0
assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: mercurial: add missing "assert" changesets size at functional test....
r6103 assert assigns(:changesets).size > 0
Toshi MARUYAMA
scm: mercurial: add tag test in functional test (#1981)....
r5011 end
end
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 def test_changes
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :changes, :id => PRJ_ID, :path => ['images', 'edit.png']
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
assert_template 'changes'
assert_tag :tag => 'h2', :content => 'edit.png'
end
Toshi MARUYAMA
scm: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 def test_entry_show
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :entry, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
assert_template 'entry'
Toshi MARUYAMA
scm: mercurial: fix comment and change // to '' some strings of functional test....
r4511 # Line 10
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_tag :tag => 'th',
Toshi MARUYAMA
scm: mercurial: fix comment and change // to '' some strings of functional test....
r4511 :content => '10',
:attributes => { :class => 'line-num' },
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 :sibling => { :tag => 'td', :content => /WITHOUT ANY WARRANTY/ }
end
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880
Toshi MARUYAMA
scm: mercurial: change Latin-1 path test methods name....
r5565 def test_entry_show_latin_1_path
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 [21, '21', 'adf805632193'].each do |r1|
Toshi MARUYAMA
scm: mercurial: change Latin-1 path test methods name....
r5565 get :entry, :id => PRJ_ID,
:path => ['latin-1-dir', "test-#{@char_1}-2.txt"], :rev => r1
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 assert_response :success
assert_template 'entry'
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 :sibling => { :tag => 'td',
:content => /Mercurial is a distributed version control system/ }
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 end
end
Toshi MARUYAMA
scm: mercurial: remove trailing white-spaces and a empty line from functional test....
r5563
Toshi MARUYAMA
scm: mercurial: add test of showing non ASCII contents in functional test....
r5570 def test_entry_show_latin_1_contents
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
[27, '27', '7bbf4c738e71'].each do |r1|
get :entry, :id => PRJ_ID,
:path => ['latin-1-dir', "test-#{@char_1}.txt"], :rev => r1
assert_response :success
assert_template 'entry'
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
:sibling => { :tag => 'td',
:content => /test-#{@char_1}.txt/ }
end
end
end
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 def test_entry_download
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 get :entry, :id => PRJ_ID,
:path => ['sources', 'watchers_controller.rb'], :format => 'raw'
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
# File content
assert @response.body.include?('WITHOUT ANY WARRANTY')
end
Jean-Philippe Lang
Fixed: Links to repository directories don't work (#1119)....
r1350
Toshi MARUYAMA
scm: mercurial: add test of binary file should be force download in functional test (#6256)....
r5082 def test_entry_binary_force_download
get :entry, :id => PRJ_ID, :rev => 1, :path => ['images', 'edit.png']
assert_response :success
Toshi MARUYAMA
scm: set mime type in downloading file....
r5090 assert_equal 'image/png', @response.content_type
Toshi MARUYAMA
scm: mercurial: add test of binary file should be force download in functional test (#6256)....
r5082 end
Jean-Philippe Lang
Fixed: Links to repository directories don't work (#1119)....
r1350 def test_directory_entry
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :entry, :id => PRJ_ID, :path => ['sources']
Jean-Philippe Lang
Fixed: Links to repository directories don't work (#1119)....
r1350 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Fixed: Links to repository directories don't work (#1119)....
r1350 assert_not_nil assigns(:entry)
assert_equal 'sources', assigns(:entry).name
end
Toshi MARUYAMA
scm: mercurial: add test of binary file should be force download in functional test (#6256)....
r5082
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 def test_diff
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_diff at functional test...
r7091 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: change two revision diff text of mercurial (#3724)....
r4579 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_diff at functional test...
r7091 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 [4, '4', 'def6d2f1254a'].each do |r1|
# Full diff of changeset 4
Toshi MARUYAMA
scm: mercurial: run both of "inline" and "side by side" diff in functional test_diff test....
r5863 ['inline', 'sbs'].each do |dt|
get :diff, :id => PRJ_ID, :rev => r1, :type => dt
assert_response :success
assert_template 'diff'
if @diff_c_support
# Line 22 removed
assert_tag :tag => 'th',
:content => '22',
:sibling => { :tag => 'td',
:attributes => { :class => /diff_out/ },
:content => /def remove/ }
assert_tag :tag => 'h2', :content => /4:def6d2f1254a/
end
Toshi MARUYAMA
scm: mercurial: change two revision diff text of mercurial (#3724)....
r4579 end
end
end
def test_diff_two_revs
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_diff_two_revs at functional test...
r7092 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: change two revision diff text of mercurial (#3724)....
r4579 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_diff_two_revs at functional test...
r7092 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: change two revision diff text of mercurial (#3724)....
r4579 [2, '400bb8672109', '400', 400].each do |r1|
[4, 'def6d2f1254a'].each do |r2|
Toshi MARUYAMA
scm: mercurial: run both of "inline" and "side by side" diff in functional test_diff_two_revs test....
r5864 ['inline', 'sbs'].each do |dt|
get :diff,
:id => PRJ_ID,
:rev => r1,
:rev_to => r2,
:type => dt
assert_response :success
assert_template 'diff'
diff = assigns(:diff)
assert_not_nil diff
assert_tag :tag => 'h2',
:content => /4:def6d2f1254a 2:400bb8672109/
end
Toshi MARUYAMA
scm: mercurial: diff '-c' option supports above Mercurial 1.2 (#3724, #7253)....
r4566 end
Toshi MARUYAMA
scm: mercurial: functional test for accept both of revision number and changeset id (#3724)....
r4544 end
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 end
Toshi MARUYAMA
scm: mercurial: annotate accepts both of revision number and changeset id (#3724)....
r4543
Toshi MARUYAMA
scm: mercurial: change Latin-1 path test methods name....
r5565 def test_diff_latin_1_path
Toshi MARUYAMA
scm: mercurial: add test of diff non ASCII path name in functional test....
r5569 with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
[21, 'adf805632193'].each do |r1|
Toshi MARUYAMA
scm: mercurial: run both of "inline" and "side by side" diff in functional test_diff_latin_1_path test....
r5865 ['inline', 'sbs'].each do |dt|
get :diff, :id => PRJ_ID, :rev => r1, :type => dt
assert_response :success
assert_template 'diff'
assert_tag :tag => 'thead',
Toshi MARUYAMA
scm: mercurial: add test of diff non ASCII path name in functional test....
r5569 :descendant => {
Toshi MARUYAMA
scm: mercurial: run both of "inline" and "side by side" diff in functional test_diff_latin_1_path test....
r5865 :tag => 'th',
:attributes => { :class => 'filename' } ,
:content => /latin-1-dir\/test-#{@char_1}-2.txt/ ,
},
:sibling => {
:tag => 'tbody',
:descendant => {
:tag => 'td',
:attributes => { :class => /diff_in/ },
:content => /It is written in Python/
}
Toshi MARUYAMA
scm: mercurial: add test of diff non ASCII path name in functional test....
r5569 }
Toshi MARUYAMA
scm: mercurial: run both of "inline" and "side by side" diff in functional test_diff_latin_1_path test....
r5865 end
Toshi MARUYAMA
scm: mercurial: add test of diff non ASCII path name in functional test....
r5569 end
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 end
end
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 def test_annotate
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :annotate, :id => PRJ_ID, :path => ['sources', 'watchers_controller.rb']
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 assert_response :success
assert_template 'annotate'
Toshi MARUYAMA
repository: mercurial: fix functional annotate test....
r4505 # Line 23, revision 4:def6d2f1254a
assert_tag :tag => 'th',
:content => '23',
:attributes => { :class => 'line-num' },
:sibling =>
{
:tag => 'td',
:attributes => { :class => 'revision' },
Toshi MARUYAMA
scm: mercurial: annotate accepts both of revision number and changeset id (#3724)....
r4543 :child => { :tag => 'a', :content => '4:def6d2f1254a' }
Toshi MARUYAMA
repository: mercurial: fix functional annotate test....
r4505 }
assert_tag :tag => 'th',
:content => '23',
:attributes => { :class => 'line-num' },
:sibling =>
{
:tag => 'td' ,
:content => 'jsmith' ,
:attributes => { :class => 'author' },
}
assert_tag :tag => 'th',
:content => '23',
:attributes => { :class => 'line-num' },
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 :sibling => { :tag => 'td', :content => /watcher =/ }
end
Toshi MARUYAMA
scm: mercurial: fix error on revision page for empty revision (#7307)....
r4584
Toshi MARUYAMA
scm: mercurial: add functional test of annotate file which does not exist in *tip* is not found....
r5921 def test_annotate_not_in_tip
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_annotate_not_in_tip at functional test...
r7093 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of annotate file which does not exist in *tip* is not found....
r5921 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_annotate_not_in_tip at functional test...
r7093 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of annotate file which does not exist in *tip* is not found....
r5921
get :annotate, :id => PRJ_ID,
:path => ['sources', 'welcome_controller.rb']
assert_response 404
assert_error_tag :content => /was not found/
end
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 def test_annotate_at_given_revision
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_annotate_at_given_revision at functional test...
r7094 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_annotate_at_given_revision at functional test...
r7094 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 [2, '400bb8672109', '400', 400].each do |r1|
Toshi MARUYAMA
scm: mercurial: code clean up functional test....
r5566 get :annotate, :id => PRJ_ID, :rev => r1,
:path => ['sources', 'watchers_controller.rb']
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 assert_response :success
assert_template 'annotate'
assert_tag :tag => 'h2', :content => /@ 2:400bb8672109/
end
end
Toshi MARUYAMA
scm: mercurial: change Latin-1 path test methods name....
r5565 def test_annotate_latin_1_path
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 [21, '21', 'adf805632193'].each do |r1|
Toshi MARUYAMA
scm: mercurial: fix indent test_annotate_latin_1_path() in functional test....
r5571 get :annotate, :id => PRJ_ID,
:path => ['latin-1-dir', "test-#{@char_1}-2.txt"], :rev => r1
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880 assert_response :success
assert_template 'annotate'
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
:sibling =>
{
:tag => 'td',
:attributes => { :class => 'revision' },
:child => { :tag => 'a', :content => '20:709858aafd1b' }
}
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
:sibling =>
{
:tag => 'td' ,
:content => 'jsmith' ,
:attributes => { :class => 'author' },
}
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 :sibling => { :tag => 'td',
:content => /Mercurial is a distributed version control system/ }
Toshi MARUYAMA
scm: mercurial: add path encoding tests in functional test (#2664, #4050)....
r4880
end
end
Toshi MARUYAMA
scm: mercurial: add test of annotate non ASCII contents in functional test....
r5572 def test_annotate_latin_1_contents
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
[27, '7bbf4c738e71'].each do |r1|
get :annotate, :id => PRJ_ID,
:path => ['latin-1-dir', "test-#{@char_1}.txt"], :rev => r1
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
:sibling => { :tag => 'td',
:content => /test-#{@char_1}.txt/ }
end
end
end
Toshi MARUYAMA
scm: mercurial: fix error on revision page for empty revision (#7307)....
r4584 def test_empty_revision
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_empty_revision at functional test...
r7095 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: fix error on revision page for empty revision (#7307)....
r4584 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_empty_revision at functional test...
r7095 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: fix error on revision page for empty revision (#7307)....
r4584 ['', ' ', nil].each do |r|
Toshi MARUYAMA
scm: mercurial: use constant for project id in functional test....
r5081 get :revision, :id => PRJ_ID, :rev => r
Jean-Philippe Lang
Respond with 404 instead of 500 when revision/entry is not found in the repository (#7307)....
r4590 assert_response 404
Toshi MARUYAMA
scm: mercurial: fix error on revision page for empty revision (#7307)....
r4584 assert_error_tag :content => /was not found/
end
end
Toshi MARUYAMA
scm: mercurial: add functional test of destroying valid repository (#8777, #6713, #4725)....
r6123
def test_destroy_valid_repository
@request.session[:user_id] = 1 # admin
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_destroy_valid_repository at functional test...
r7085 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of destroying valid repository (#8777, #6713, #4725)....
r6123 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_destroy_valid_repository at functional test...
r7085 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of destroying valid repository (#8777, #6713, #4725)....
r6123
get :destroy, :id => PRJ_ID
assert_response 302
@project.reload
assert_nil @project.repository
end
Toshi MARUYAMA
scm: mercurial: add functional test of destroying invalid repository (#8777, #6713, #4725)....
r6127
def test_destroy_invalid_repository
@request.session[:user_id] = 1 # admin
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_destroy_invalid_repository at functional test...
r7086 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of destroying invalid repository (#8777, #6713, #4725)....
r6127 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_destroy_invalid_repository at functional test...
r7086 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: mercurial: add functional test of destroying invalid repository (#8777, #6713, #4725)....
r6127
get :destroy, :id => PRJ_ID
assert_response 302
@project.reload
assert_nil @project.repository
@repository = Repository::Mercurial.create(
:project => Project.find(PRJ_ID),
:url => "/invalid",
:path_encoding => 'ISO-8859-1'
)
assert @repository
@repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: mercurial: fix error of test_destroy_invalid_repository at functional test...
r7086 @project.reload
Toshi MARUYAMA
scm: mercurial: add functional test of destroying invalid repository (#8777, #6713, #4725)....
r6127 assert_equal 0, @repository.changesets.count
get :destroy, :id => PRJ_ID
assert_response 302
@project.reload
assert_nil @project.repository
end
Jean-Philippe Lang
Do not run Mercurial functional tests if the test repository is not set up....
r1006 else
puts "Mercurial test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end
Jean-Philippe Lang
Added a Mercurial test repository with unit and functional tests....
r978 end
end