Mercurial > hg > soundsoftware-site
diff test/functional/repositories_bazaar_controller_test.rb @ 1464:261b3d9a4903 redmine-2.4
Update to Redmine 2.4 branch rev 12663
author | Chris Cannam |
---|---|
date | Tue, 14 Jan 2014 14:37:42 +0000 |
parents | 433d4f72a19b |
children | e248c7af89ec |
line wrap: on
line diff
--- a/test/functional/repositories_bazaar_controller_test.rb Fri Jun 14 09:05:06 2013 +0100 +++ b/test/functional/repositories_bazaar_controller_test.rb Tue Jan 14 14:37:42 2014 +0000 @@ -1,5 +1,5 @@ # Redmine - project management software -# Copyright (C) 2006-2012 Jean-Philippe Lang +# Copyright (C) 2006-2013 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -23,17 +23,23 @@ fixtures :projects, :users, :roles, :members, :member_roles, :repositories, :enabled_modules - REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository/trunk').to_s + REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository').to_s + REPOSITORY_PATH_TRUNK = File.join(REPOSITORY_PATH, "trunk") PRJ_ID = 3 + CHAR_1_UTF8_HEX = "\xc3\x9c" def setup User.current = nil @project = Project.find(PRJ_ID) @repository = Repository::Bazaar.create( :project => @project, - :url => REPOSITORY_PATH, + :url => REPOSITORY_PATH_TRUNK, :log_encoding => 'UTF-8') assert @repository + @char_1_utf8 = CHAR_1_UTF8_HEX.dup + if @char_1_utf8.respond_to?(:force_encoding) + @char_1_utf8.force_encoding('UTF-8') + end end if File.directory?(REPOSITORY_PATH) @@ -137,26 +143,68 @@ :path => repository_path_hash(['doc-mkdir.txt'])[:param] assert_response :success assert_template 'annotate' - assert_tag :tag => 'th', :content => '2', - :sibling => { - :tag => 'td', - :child => { - :tag => 'a', - :content => '3' - } - } - assert_tag :tag => 'th', :content => '2', - :sibling => { :tag => 'td', :content => /jsmith/ } - assert_tag :tag => 'th', :content => '2', - :sibling => { - :tag => 'td', - :child => { - :tag => 'a', - :content => '3' - } - } - assert_tag :tag => 'th', :content => '2', - :sibling => { :tag => 'td', :content => /Main purpose/ } + assert_select "th.line-num", :text => '2' do + assert_select "+ td.revision" do + assert_select "a", :text => '3' + assert_select "+ td.author", :text => "jsmith@" do + assert_select "+ td", + :text => "Main purpose:" + end + end + end + end + + def test_annotate_author_escaping + repository = Repository::Bazaar.create( + :project => @project, + :url => File.join(REPOSITORY_PATH, "author_escaping"), + :identifier => 'author_escaping', + :log_encoding => 'UTF-8') + assert repository + get :annotate, :id => PRJ_ID, :repository_id => 'author_escaping', + :path => repository_path_hash(['author-escaping-test.txt'])[:param] + assert_response :success + assert_template 'annotate' + assert_select "th.line-num", :text => '1' do + assert_select "+ td.revision" do + assert_select "a", :text => '2' + assert_select "+ td.author", :text => "test &" do + assert_select "+ td", + :text => "author escaping test" + end + end + end + end + + if REPOSITORY_PATH.respond_to?(:force_encoding) + def test_annotate_author_non_ascii + log_encoding = nil + if Encoding.locale_charmap == "UTF-8" || + Encoding.locale_charmap == "ISO-8859-1" + log_encoding = Encoding.locale_charmap + end + unless log_encoding.nil? + repository = Repository::Bazaar.create( + :project => @project, + :url => File.join(REPOSITORY_PATH, "author_non_ascii"), + :identifier => 'author_non_ascii', + :log_encoding => log_encoding) + assert repository + get :annotate, :id => PRJ_ID, :repository_id => 'author_non_ascii', + :path => repository_path_hash(['author-non-ascii-test.txt'])[:param] + assert_response :success + assert_template 'annotate' + assert_select "th.line-num", :text => '1' do + assert_select "+ td.revision" do + assert_select "a", :text => '2' + assert_select "+ td.author", :text => "test #{@char_1_utf8}" do + assert_select "+ td", + :text => "author non ASCII test" + end + end + end + end + end end def test_destroy_valid_repository