##// END OF EJS Templates
scm: bazaar: update test repository for non ASCII author (#14931)...
scm: bazaar: update test repository for non ASCII author (#14931) * run "bzr branch --no-tree branch00 author_non_ascii" * add revision to this branch git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12155 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r11923:bf0676e17a81
r11925:120689e7cb48
Show More
repositories_git_controller_test.rb
642 lines | 23.3 KiB | text/x-ruby | RubyLexer
/ test / functional / repositories_git_controller_test.rb
Toshi MARUYAMA
scm: git: remove trailing white-spaces from functional test....
r5573 # Redmine - project management software
Jean-Philippe Lang
Copyright for 2013 (#12788)....
r10939 # Copyright (C) 2006-2013 Jean-Philippe Lang
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 #
# 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: git: remove trailing white-spaces from functional test....
r5573 #
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 # 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: git: remove trailing white-spaces from functional test....
r5573 #
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 # 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
Merged Git support branch (r1200 to r1226)....
r1222
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class RepositoriesGitControllerTest < ActionController::TestCase
Jean-Philippe Lang
Test for repository edit and cleanup....
r7930 tests RepositoriesController
Toshi MARUYAMA
scm: git: replace RAILS_ROOT to Rails.root in functional test....
r5923 fixtures :projects, :users, :roles, :members, :member_roles,
:repositories, :enabled_modules
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222
Toshi MARUYAMA
scm: git: replace RAILS_ROOT to Rails.root in functional test....
r5923 REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
Jean-Philippe Lang
Fixes platform determination under JRuby (#1804)....
r1752 REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 PRJ_ID = 3
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 CHAR_1_HEX = "\xc3\x9c"
Toshi MARUYAMA
scm: git: update test repository (#8857)...
r8700 NUM_REV = 28
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222
Toshi MARUYAMA
scm: git: skip non UTF-8 path encoding test of functional test in JRuby (#5251)....
r5883 ## Git, Mercurial and CVS path encodings are binary.
## Subversion supports URL encoding for path.
## Redmine Mercurial adapter and extension use URL encoding.
## Git accepts only binary path in command line parameter.
## So, there is no way to use binary command line parameter in JRuby.
JRUBY_SKIP = (RUBY_PLATFORM == 'java')
JRUBY_SKIP_STR = "TODO: This test fails in JRuby"
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def setup
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 @ruby19_non_utf8_pass =
(RUBY_VERSION >= '1.9' && Encoding.default_external.to_s != 'UTF-8')
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 User.current = nil
Toshi MARUYAMA
scm: git: add instance variable @project at functional test....
r6128 @project = Project.find(PRJ_ID)
Toshi MARUYAMA
scm: git: fix PortgreSQL functional test fails (#5251)....
r4950 @repository = Repository::Git.create(
Toshi MARUYAMA
scm: git: add instance variable @project at functional test....
r6128 :project => @project,
:url => REPOSITORY_PATH,
Toshi MARUYAMA
scm: git: fix PortgreSQL functional test fails (#5251)....
r4950 :path_encoding => 'ISO-8859-1'
)
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545 assert @repository
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 @char_1 = CHAR_1_HEX.dup
if @char_1.respond_to?(:force_encoding)
@char_1.force_encoding('UTF-8')
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545
Toshi MARUYAMA
scm: git: fix creating and updating repository...
r9433 def test_create_and_update
@request.session[:user_id] = 1
assert_difference 'Repository.count' do
post :create, :project_id => 'subproject1',
:repository_scm => 'Git',
:repository => {
:url => '/test',
:is_default => '0',
:identifier => 'test-create',
:extra_report_last_commit => '1',
}
end
assert_response 302
repository = Repository.first(:order => 'id DESC')
assert_kind_of Repository::Git, repository
assert_equal '/test', repository.url
assert_equal true, repository.extra_report_last_commit
put :update, :id => repository.id,
:repository => {
Jean-Philippe Lang
Identifier is now frozen....
r9899 :extra_report_last_commit => '0'
Toshi MARUYAMA
scm: git: fix creating and updating repository...
r9433 }
assert_response 302
repo2 = Repository.find(repository.id)
assert_equal false, repo2.extra_report_last_commit
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 if File.directory?(REPOSITORY_PATH)
Jean-Philippe Lang
Fix: Unable to run unit and functional tests if git binary is not available....
r9678 ## Ruby uses ANSI api to fork a process on Windows.
## Japanese Shift_JIS and Traditional Chinese Big5 have 0x5c(backslash) problem
## and these are incompatible with ASCII.
## Git for Windows (msysGit) changed internal API from ANSI to Unicode in 1.7.10
## http://code.google.com/p/msysgit/issues/detail?id=80
## So, Latin-1 path tests fail on Japanese Windows
WINDOWS_PASS = (Redmine::Platform.mswin? &&
Redmine::Scm::Adapters::GitAdapter.client_version_above?([1, 7, 10]))
WINDOWS_SKIP_STR = "TODO: This test fails in Git for Windows above 1.7.10"
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 def test_get_new
Jean-Philippe Lang
Test for repository edit and cleanup....
r7930 @request.session[:user_id] = 1
@project.repository.destroy
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 get :new, :project_id => 'subproject1', :repository_scm => 'Git'
Jean-Philippe Lang
Test for repository edit and cleanup....
r7930 assert_response :success
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 assert_template 'new'
Jean-Philippe Lang
Test for repository edit and cleanup....
r7930 assert_kind_of Repository::Git, assigns(:repository)
assert assigns(:repository).new_record?
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_browse_root
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_root at functional test...
r6990 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_root at functional test...
r6990 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 get :show, :id => PRJ_ID
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_not_nil assigns(:entries)
Eric Davis
Support leading and trailing spaces in filenames or directories in the git adapter. #6499...
r4075 assert_equal 9, assigns(:entries).size
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
Eric Davis
Extend changes.path and changes.from_path to support longer paths. #5771...
r3714 assert assigns(:entries).detect {|e| e.name == 'this_is_a_really_long_and_verbose_directory_name' && e.kind == 'dir'}
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert assigns(:entries).detect {|e| e.name == 'copied_README' && e.kind == 'file'}
assert assigns(:entries).detect {|e| e.name == 'new_file.txt' && e.kind == 'file'}
assert assigns(:entries).detect {|e| e.name == 'renamed_test.txt' && e.kind == 'file'}
Eric Davis
Support spaces in the files or directories in the git adapter. #6054...
r4074 assert assigns(:entries).detect {|e| e.name == 'filemane with spaces.txt' && e.kind == 'file'}
Eric Davis
Support leading and trailing spaces in filenames or directories in the git adapter. #6499...
r4075 assert assigns(:entries).detect {|e| e.name == ' filename with a leading space.txt ' && e.kind == 'file'}
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:changesets).size > 0
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735
def test_browse_branch
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_branch at functional test...
r7004 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_branch at functional test...
r7004 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 get :show, :id => PRJ_ID, :rev => 'test_branch'
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
assert_equal 4, assigns(:entries).size
assert assigns(:entries).detect {|e| e.name == 'images' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'sources' && e.kind == 'dir'}
assert assigns(:entries).detect {|e| e.name == 'README' && e.kind == 'file'}
assert assigns(:entries).detect {|e| e.name == 'test.txt' && e.kind == 'file'}
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:changesets).size > 0
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 end
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 def test_browse_tag
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_tag at functional test...
r7005 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_tag at functional test...
r7005 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 [
"tag00.lightweight",
"tag01.annotated",
].each do |t1|
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 get :show, :id => PRJ_ID, :rev => t1
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 assert_response :success
assert_template 'show'
assert_not_nil assigns(:entries)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:entries).size > 0
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:changesets).size > 0
Toshi MARUYAMA
scm: git: add browsing tag test in functional test....
r5001 end
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_browse_directory
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_directory at functional test...
r7010 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_directory at functional test...
r7010 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :show, :id => PRJ_ID, :path => repository_path_hash(['images'])[:param]
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_not_nil assigns(:entries)
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_equal ['edit.png'], assigns(:entries).collect(&:name)
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 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: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:changesets).size > 0
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end
Toshi MARUYAMA
scm: git: code clean up functional test....
r4999
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 def test_browse_at_given_revision
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_at_given_revision at functional test...
r7018 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_browse_at_given_revision at functional test...
r7018 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :show, :id => PRJ_ID, :path => repository_path_hash(['images'])[:param],
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 :rev => '7234cb2750b63f47bff735edc50a1c0a433c2518'
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 assert_response :success
Eric Davis
Added branch and tag support to the git repository viewer. (#1406)...
r2735 assert_template 'show'
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 assert_not_nil assigns(:entries)
assert_equal ['delete.png'], assigns(:entries).collect(&:name)
Toshi MARUYAMA
scm: git: check entries and changesets size are greater than 0 in browse test in functional test....
r5000 assert_not_nil assigns(:changesets)
Toshi MARUYAMA
scm: git: add missing "assert" changesets and entries size at functional test....
r6102 assert assigns(:changesets).size > 0
Jean-Philippe Lang
Fix repository browsing at given revision for various scm and add tests for this....
r1314 end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_changes
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :changes, :id => PRJ_ID,
:path => repository_path_hash(['images', 'edit.png'])[:param]
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
assert_template 'changes'
assert_tag :tag => 'h2', :content => 'edit.png'
end
Toshi MARUYAMA
scm: git: code clean up functional test....
r4999
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_entry_show
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :entry, :id => PRJ_ID,
:path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param]
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
assert_template 'entry'
# Line 19
assert_tag :tag => 'th',
Toshi MARUYAMA
scm: git: more strict functional test....
r5333 :content => '11',
:attributes => { :class => 'line-num' },
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 :sibling => { :tag => 'td', :content => /WITHOUT ANY WARRANTY/ }
end
Toshi MARUYAMA
scm: git: code clean up functional test....
r4999
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 def test_entry_show_latin_1
if @ruby19_non_utf8_pass
puts_ruby19_non_utf8_pass()
Toshi MARUYAMA
scm: git: skip Latin-1 path tests on Git for Windows above 1.7.10...
r9567 elsif WINDOWS_PASS
puts WINDOWS_SKIP_STR
Toshi MARUYAMA
scm: git: skip non UTF-8 path encoding test of functional test in JRuby (#5251)....
r5883 elsif JRUBY_SKIP
puts JRUBY_SKIP_STR
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 else
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
['57ca437c', '57ca437c0acbbcb749821fdf3726a1367056d364'].each do |r1|
get :entry, :id => PRJ_ID,
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 :path => repository_path_hash(['latin-1-dir', "test-#{@char_1}.txt"])[:param],
:rev => r1
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 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
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_entry_download
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :entry, :id => PRJ_ID,
:path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param],
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 :format => 'raw'
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
# File content
assert @response.body.include?('WITHOUT ANY WARRANTY')
end
Toshi MARUYAMA
scm: git: code clean up functional test....
r4999
Jean-Philippe Lang
Fixed: Links to repository directories don't work (#1119)....
r1350 def test_directory_entry
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :entry, :id => PRJ_ID,
:path => repository_path_hash(['sources'])[:param]
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: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_diff
Toshi MARUYAMA
add functional test of main repository diff path (#11966)...
r10293 assert_equal true, @repository.is_default
assert_nil @repository.identifier
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff at functional test...
r7019 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff at functional test...
r7019 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 # Full diff of changeset 2f9c0091
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff test....
r5852 ['inline', 'sbs'].each do |dt|
get :diff,
:id => PRJ_ID,
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7',
:type => dt
assert_response :success
assert_template 'diff'
# Line 22 removed
assert_tag :tag => 'th',
:content => /22/,
:sibling => { :tag => 'td',
:attributes => { :class => /diff_out/ },
:content => /def remove/ }
assert_tag :tag => 'h2', :content => /2f9c0091/
end
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545 end
Toshi MARUYAMA
scm: git: add functional test of diff with revision and path (#11752)...
r10062 def test_diff_with_rev_and_path
assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
@project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: use diff_max_lines_displayed setting at test_diff_with_rev_and_path of functional test (#11752)...
r10068 with_settings :diff_max_lines_displayed => 1000 do
# Full diff of changeset 2f9c0091
['inline', 'sbs'].each do |dt|
get :diff,
:id => PRJ_ID,
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7',
:path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param],
:type => dt
assert_response :success
assert_template 'diff'
# Line 22 removed
assert_tag :tag => 'th',
:content => '22',
:sibling => { :tag => 'td',
:attributes => { :class => /diff_out/ },
:content => /def remove/ }
assert_tag :tag => 'h2', :content => /2f9c0091/
end
Toshi MARUYAMA
scm: git: add functional test of diff with revision and path (#11752)...
r10062 end
end
Jean-Baptiste Barth
Do not cache I18n strings when truncating a long diff (#5089)....
r5953 def test_diff_truncated
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff_truncated at functional test...
r7020 assert_equal 0, @repository.changesets.count
Jean-Baptiste Barth
Do not cache I18n strings when truncating a long diff (#5089)....
r5953 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff_truncated at functional test...
r7020 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Jean-Baptiste Barth
Do not cache I18n strings when truncating a long diff (#5089)....
r5953
Jean-Philippe Lang
Tests should not change settings....
r9766 with_settings :diff_max_lines_displayed => 5 do
# Truncated diff of changeset 2f9c0091
with_cache do
Toshi MARUYAMA
scm: git: use with_settings instead of assigned setting at functional test...
r10289 with_settings :default_language => 'en' do
get :diff, :id => PRJ_ID, :type => 'inline',
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success
assert @response.body.include?("... This diff was truncated")
end
Toshi MARUYAMA
scm: git: use with_settings at test_diff_truncated of functional test (#11752)...
r10069 with_settings :default_language => 'fr' do
get :diff, :id => PRJ_ID, :type => 'inline',
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success
assert ! @response.body.include?("... This diff was truncated")
assert @response.body.include?("... Ce diff")
end
Jean-Philippe Lang
Tests should not change settings....
r9766 end
Jean-Baptiste Barth
Do not cache I18n strings when truncating a long diff (#5089)....
r5953 end
end
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545 def test_diff_two_revs
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff_two_revs at functional test...
r7021 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_diff_two_revs at functional test...
r7021 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff_two_revs test....
r5853 ['inline', 'sbs'].each do |dt|
get :diff,
:id => PRJ_ID,
:rev => '61b685fbe55ab05b5ac68402d5720c1a6ac973d1',
:rev_to => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7',
:type => dt
assert_response :success
assert_template 'diff'
diff = assigns(:diff)
assert_not_nil diff
assert_tag :tag => 'h2', :content => /2f9c0091:61b685fb/
Toshi MARUYAMA
add functional test of main repository diff path (#11966)...
r10293 assert_tag :tag => "form",
:attributes => {
:action => "/projects/subproject1/repository/revisions/" +
"61b685fbe55ab05b5ac68402d5720c1a6ac973d1/diff"
}
assert_tag :tag => 'input',
:attributes => {
:id => "rev_to",
:name => "rev_to",
:type => "hidden",
:value => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
}
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff_two_revs test....
r5853 end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end
Toshi MARUYAMA
add functional test of sub repository diff path (#11966)...
r10294 def test_diff_path_in_subrepo
repo = Repository::Git.create(
:project => @project,
:url => REPOSITORY_PATH,
:identifier => 'test-diff-path',
:path_encoding => 'ISO-8859-1'
);
assert repo
assert_equal false, repo.is_default
assert_equal 'test-diff-path', repo.identifier
get :diff,
:id => PRJ_ID,
:repository_id => 'test-diff-path',
:rev => '61b685fbe55ab05b',
:rev_to => '2f9c0091c754a91a',
:type => 'inline'
assert_response :success
assert_template 'diff'
diff = assigns(:diff)
assert_not_nil diff
assert_tag :tag => "form",
:attributes => {
:action => "/projects/subproject1/repository/test-diff-path/" +
"revisions/61b685fbe55ab05b/diff"
}
assert_tag :tag => 'input',
:attributes => {
:id => "rev_to",
:name => "rev_to",
:type => "hidden",
:value => '2f9c0091c754a91a'
}
end
Toshi MARUYAMA
scm: git: add test of diff non ASCII path and non ASCII content in functional test....
r5578 def test_diff_latin_1
if @ruby19_non_utf8_pass
puts_ruby19_non_utf8_pass()
else
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
['57ca437c', '57ca437c0acbbcb749821fdf3726a1367056d364'].each do |r1|
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff_latin_1 test....
r5854 ['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: git: add test of diff non ASCII path and non ASCII content in functional test....
r5578 :descendant => {
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff_latin_1 test....
r5854 :tag => 'th',
:attributes => { :class => 'filename' } ,
:content => /latin-1-dir\/test-#{@char_1}.txt/ ,
},
:sibling => {
:tag => 'tbody',
:descendant => {
:tag => 'td',
:attributes => { :class => /diff_in/ },
:content => /test-#{@char_1}.txt/
}
Toshi MARUYAMA
scm: git: add test of diff non ASCII path and non ASCII content in functional test....
r5578 }
Toshi MARUYAMA
scm: git: run both "inline" and "side by side" diff in functional test_diff_latin_1 test....
r5854 end
Toshi MARUYAMA
scm: git: add test of diff non ASCII path and non ASCII content in functional test....
r5578 end
end
end
end
Jean-Philippe Lang
Fixed that git diff displays deleted files as /dev/null (#11868)....
r10241 def test_diff_should_show_filenames
get :diff, :id => PRJ_ID, :rev => 'deff712f05a90d96edbd70facc47d944be5897e3', :type => 'inline'
assert_response :success
assert_template 'diff'
# modified file
assert_select 'th.filename', :text => 'sources/watchers_controller.rb'
# deleted file
assert_select 'th.filename', :text => 'test.txt'
end
Toshi MARUYAMA
scm: git: add test that diff type is saved in user preference (#10152)...
r8640 def test_save_diff_type
Toshi MARUYAMA
set user preference diff type nil at functional tests...
r10292 user1 = User.find(1)
user1.pref[:diff_type] = nil
user1.preference.save
Toshi MARUYAMA
scm: git: add test that diff type is saved in user preference (#10152)...
r8640 user = User.find(1)
Toshi MARUYAMA
set user preference diff type nil at functional tests...
r10292 assert_nil user.pref[:diff_type]
@request.session[:user_id] = 1 # admin
Toshi MARUYAMA
scm: git: add test that diff type is saved in user preference (#10152)...
r8640 get :diff,
:id => PRJ_ID,
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7'
assert_response :success
assert_template 'diff'
user.reload
assert_equal "inline", user.pref[:diff_type]
get :diff,
:id => PRJ_ID,
:rev => '2f9c0091c754a91af7a9c478e36556b4bde8dcf7',
:type => 'sbs'
assert_response :success
assert_template 'diff'
user.reload
assert_equal "sbs", user.pref[:diff_type]
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 def test_annotate
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :annotate, :id => PRJ_ID,
:path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param]
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 assert_response :success
assert_template 'annotate'
Jean-Philippe Lang
Use assert_select instead of assert_tag....
r9923
Jean-Philippe Lang
Don't repeat revision on annotate view....
r9922 # Line 23, changeset 2f9c0091
Jean-Philippe Lang
Use assert_select instead of assert_tag....
r9923 assert_select 'tr' do
assert_select 'th.line-num', :text => '23'
assert_select 'td.revision', :text => /2f9c0091/
assert_select 'td.author', :text => 'jsmith'
assert_select 'td', :text => /remove_watcher/
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end
Toshi MARUYAMA
scm: add compatible functional test fof changing diff revisions label at SCM adapter level....
r4545
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 def test_annotate_at_given_revision
Toshi MARUYAMA
Rails3: scm: git: fix error of test_annotate_at_given_revision at functional test...
r7022 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: git: fix error of test_annotate_at_given_revision at functional test...
r7022 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 get :annotate, :id => PRJ_ID, :rev => 'deff7',
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 :path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param]
Toshi MARUYAMA
scm: functional test of using format_revision() for annotate (#3724)....
r4614 assert_response :success
assert_template 'annotate'
assert_tag :tag => 'h2', :content => /@ deff712f/
end
Jean-Philippe Lang
Always show 'View' and 'Annotate' links on repository files (download will be forced when clicking 'View' if the file is binary)....
r1259 def test_annotate_binary_file
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :annotate, :id => PRJ_ID,
:path => repository_path_hash(['images', 'edit.png'])[:param]
Jean-Philippe Lang
Always show 'View' and 'Annotate' links on repository files (download will be forced when clicking 'View' if the file is binary)....
r1259 assert_response 500
Eric Davis
Fix the tests that were broken by r4286:...
r4175 assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
Toshi MARUYAMA
scm: git: fix annotate test due to changing en.yml (#8035, #7855)....
r5148 :content => /cannot be annotated/
Jean-Philippe Lang
Always show 'View' and 'Annotate' links on repository files (download will be forced when clicking 'View' if the file is binary)....
r1259 end
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583
Toshi MARUYAMA
do not annotate text files which exceed the size limit for viewing (#9484)...
r7608 def test_annotate_error_when_too_big
with_settings :file_max_size_displayed => 1 do
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :annotate, :id => PRJ_ID,
:path => repository_path_hash(['sources', 'watchers_controller.rb'])[:param],
:rev => 'deff712f'
Toshi MARUYAMA
do not annotate text files which exceed the size limit for viewing (#9484)...
r7608 assert_response 500
assert_tag :tag => 'p', :attributes => { :id => /errorExplanation/ },
:content => /exceeds the maximum text file size/
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 get :annotate, :id => PRJ_ID,
:path => repository_path_hash(['README'])[:param],
:rev => '7234cb2'
Toshi MARUYAMA
do not annotate text files which exceed the size limit for viewing (#9484)...
r7608 assert_response :success
assert_template 'annotate'
end
end
Toshi MARUYAMA
scm: git: add test of annotate non ASCII content of non ASCII path in functional test....
r5579 def test_annotate_latin_1
if @ruby19_non_utf8_pass
puts_ruby19_non_utf8_pass()
Toshi MARUYAMA
scm: git: skip Latin-1 path tests on Git for Windows above 1.7.10...
r9567 elsif WINDOWS_PASS
puts WINDOWS_SKIP_STR
Toshi MARUYAMA
scm: git: skip non UTF-8 path encoding test of functional test in JRuby (#5251)....
r5883 elsif JRUBY_SKIP
puts JRUBY_SKIP_STR
Toshi MARUYAMA
scm: git: add test of annotate non ASCII content of non ASCII path in functional test....
r5579 else
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
['57ca437c', '57ca437c0acbbcb749821fdf3726a1367056d364'].each do |r1|
get :annotate, :id => PRJ_ID,
Toshi MARUYAMA
Rails3: test: scm: git: use "repository_path_hash" for path param...
r8804 :path => repository_path_hash(['latin-1-dir', "test-#{@char_1}.txt"])[:param],
:rev => r1
Toshi MARUYAMA
use assert_select instead of assert_tag in Git non ASCII path annotate test (#14931)...
r11920 assert_select "th.line-num", :text => '1' do
assert_select "+ td.revision" do
assert_select "a", :text => '57ca437c'
Toshi MARUYAMA
scm: git: fix indents of non ASCII path annotate test (#14931)...
r11923 assert_select "+ td.author", :text => "jsmith" do
assert_select "+ td",
:text => "test-#{@char_1}.txt"
Toshi MARUYAMA
use assert_select instead of assert_tag in Git non ASCII path annotate test (#14931)...
r11920 end
Toshi MARUYAMA
scm: git: fix indents of non ASCII path annotate test (#14931)...
r11923 end
Toshi MARUYAMA
use assert_select instead of assert_tag in Git non ASCII path annotate test (#14931)...
r11920 end
Toshi MARUYAMA
scm: git: add test of annotate non ASCII content of non ASCII path in functional test....
r5579 end
end
end
end
Toshi MARUYAMA
fix "Page not found" on OK button in SCM "View all revisions" page (#12196)...
r10497 def test_revisions
assert_equal 0, @repository.changesets.count
@repository.fetch_changesets
@project.reload
assert_equal NUM_REV, @repository.changesets.count
get :revisions, :id => PRJ_ID
assert_response :success
assert_template 'revisions'
assert_tag :tag => 'form',
:attributes => {
:method => 'get',
:action => '/projects/subproject1/repository/revision'
}
end
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 def test_revision
Toshi MARUYAMA
Rails3: scm: git: fix error of test_revision at functional test...
r7023 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_revision at functional test...
r7023 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 ['61b685fbe55ab05b5ac68402d5720c1a6ac973d1', '61b685f'].each do |r|
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 get :revision, :id => PRJ_ID, :rev => r
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 assert_response :success
assert_template 'revision'
end
end
def test_empty_revision
Toshi MARUYAMA
Rails3: scm: git: fix error of test_empty_revision at functional test...
r7024 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_empty_revision at functional test...
r7024 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: fix error on revision page for empty revision (#7307)....
r4583 ['', ' ', nil].each do |r|
Toshi MARUYAMA
scm: git: use constant value for project id in functional test....
r5576 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: fix error on revision page for empty revision (#7307)....
r4583 assert_error_tag :content => /was not found/
end
end
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577
Toshi MARUYAMA
scm: git: add functional test of destroying valid repository (#6713, #4725)....
r6129 def test_destroy_valid_repository
@request.session[:user_id] = 1 # admin
Toshi MARUYAMA
Rails3: scm: git: fix error of test_destroy_valid_repository at functional test...
r7025 assert_equal 0, @repository.changesets.count
Toshi MARUYAMA
scm: git: add functional test of destroying valid repository (#6713, #4725)....
r6129 @repository.fetch_changesets
Toshi MARUYAMA
Rails3: scm: git: fix error of test_destroy_valid_repository at functional test...
r7025 @project.reload
assert_equal NUM_REV, @repository.changesets.count
Toshi MARUYAMA
scm: git: add functional test of destroying valid repository (#6713, #4725)....
r6129
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 assert_difference 'Repository.count', -1 do
delete :destroy, :id => @repository.id
end
Toshi MARUYAMA
scm: git: add functional test of destroying valid repository (#6713, #4725)....
r6129 assert_response 302
@project.reload
assert_nil @project.repository
end
Toshi MARUYAMA
scm: git: add functional test of destroying invalid repository (#6713, #4725)....
r6130 def test_destroy_invalid_repository
@request.session[:user_id] = 1 # admin
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 @project.repository.destroy
@repository = Repository::Git.create!(
Toshi MARUYAMA
scm: git: add functional test of destroying invalid repository (#6713, #4725)....
r6130 :project => @project,
:url => "/invalid",
:path_encoding => 'ISO-8859-1'
)
@repository.fetch_changesets
@repository.reload
assert_equal 0, @repository.changesets.count
Jean-Philippe Lang
Resourcified repositories for CRUD operations to prepare for multiple SCM per project (#779)....
r8528 assert_difference 'Repository.count', -1 do
delete :destroy, :id => @repository.id
end
Toshi MARUYAMA
scm: git: add functional test of destroying invalid repository (#6713, #4725)....
r6130 assert_response 302
@project.reload
assert_nil @project.repository
end
Toshi MARUYAMA
scm: git: add test of showing non ASCII contents of non ASCII path in functional test....
r5577 private
def puts_ruby19_non_utf8_pass
puts "TODO: This test fails in Ruby 1.9 " +
"and Encoding.default_external is not UTF-8. " +
"Current value is '#{Encoding.default_external.to_s}'"
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 else
puts "Git test repository NOT FOUND. Skipping functional tests !!!"
def test_fake; assert true end
end
Jean-Baptiste Barth
Do not cache I18n strings when truncating a long diff (#5089)....
r5953
private
def with_cache(&block)
before = ActionController::Base.perform_caching
ActionController::Base.perform_caching = true
block.call
ActionController::Base.perform_caching = before
end
Jean-Philippe Lang
Merged Git support branch (r1200 to r1226)....
r1222 end