Patch #31004 » 31004-hexadecimal-encoded-to-frozen-string.patch
| test/functional/attachments_controller_test.rb | ||
|---|---|---|
| 143 | 143 |
assert a.save |
| 144 | 144 |
assert_equal 'japanese-utf-8.txt', a.filename |
| 145 | 145 | |
| 146 |
str_japanese = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e".force_encoding('UTF-8')
|
|
| 147 | ||
| 148 | 146 |
get :show, :params => {
|
| 149 | 147 |
:id => a.id |
| 150 | 148 |
} |
| ... | ... | |
| 152 | 150 |
assert_equal 'text/html', @response.content_type |
| 153 | 151 |
assert_select 'tr#L1' do |
| 154 | 152 |
assert_select 'th.line-num', :text => '1' |
| 155 |
assert_select 'td', :text => /#{str_japanese}/
|
|
| 153 |
assert_select 'td', :text => /日本語/
|
|
| 156 | 154 |
end |
| 157 | 155 |
end |
| 158 | 156 | |
| ... | ... | |
| 501 | 499 |
'1' => {
|
| 502 | 500 |
:filename => 'newname.text', |
| 503 | 501 |
:description => '' |
| 504 |
},
|
|
| 502 |
}, |
|
| 505 | 503 |
'4' => {
|
| 506 | 504 |
:filename => 'newname.rb', |
| 507 | 505 |
:description => 'Renamed' |
| 508 |
},
|
|
| 509 |
|
|
| 506 |
}, |
|
| 507 | ||
| 510 | 508 |
} |
| 511 | 509 |
} |
| 512 | 510 | |
| ... | ... | |
| 525 | 523 |
'1' => {
|
| 526 | 524 |
:filename => '', |
| 527 | 525 |
:description => '' |
| 528 |
},
|
|
| 526 |
}, |
|
| 529 | 527 |
'4' => {
|
| 530 | 528 |
:filename => 'newname.rb', |
| 531 | 529 |
:description => 'Renamed' |
| 532 |
},
|
|
| 533 |
|
|
| 530 |
}, |
|
| 531 | ||
| 534 | 532 |
} |
| 535 | 533 |
} |
| 536 | 534 | |
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 772 | 772 | |
| 773 | 773 |
def test_index_csv_big_5 |
| 774 | 774 |
with_settings :default_language => "zh-TW" do |
| 775 |
str_utf8 = "\xe4\xb8\x80\xe6\x9c\x88".force_encoding('UTF-8')
|
|
| 776 |
str_big5 = "\xa4@\xa4\xeb".force_encoding('Big5')
|
|
| 775 |
str_utf8 = '一月'
|
|
| 776 |
str_big5 = (+"\xa4@\xa4\xeb").force_encoding('Big5')
|
|
| 777 | 777 |
issue = Issue.generate!(:subject => str_utf8) |
| 778 | 778 | |
| 779 | 779 |
get :index, :params => {
|
| ... | ... | |
| 784 | 784 |
assert_equal 'text/csv; header=present', @response.content_type |
| 785 | 785 |
lines = @response.body.chomp.split("\n")
|
| 786 | 786 |
header = lines[0] |
| 787 |
status = "\xaa\xac\xbaA".force_encoding('Big5')
|
|
| 787 |
status = (+"\xaa\xac\xbaA").force_encoding('Big5')
|
|
| 788 | 788 |
assert_include status, header |
| 789 | 789 |
issue_line = lines.find {|l| l =~ /^#{issue.id},/}
|
| 790 | 790 |
assert_include str_big5, issue_line |
| ... | ... | |
| 793 | 793 | |
| 794 | 794 |
def test_index_csv_cannot_convert_should_be_replaced_big_5 |
| 795 | 795 |
with_settings :default_language => "zh-TW" do |
| 796 |
str_utf8 = "\xe4\xbb\xa5\xe5\x86\x85".force_encoding('UTF-8')
|
|
| 796 |
str_utf8 = '以内'
|
|
| 797 | 797 |
issue = Issue.generate!(:subject => str_utf8) |
| 798 | 798 | |
| 799 | 799 |
get :index, :params => {
|
| ... | ... | |
| 807 | 807 |
lines = @response.body.chomp.split("\n")
|
| 808 | 808 |
header = lines[0] |
| 809 | 809 |
issue_line = lines.find {|l| l =~ /^#{issue.id},/}
|
| 810 |
s1 = "\xaa\xac\xbaA".force_encoding('Big5') # status
|
|
| 810 |
s1 = (+"\xaa\xac\xbaA").force_encoding('Big5') # status
|
|
| 811 | 811 |
assert header.include?(s1) |
| 812 | 812 |
s2 = issue_line.split(",")[2]
|
| 813 |
s3 = "\xa5H?".force_encoding('Big5') # subject
|
|
| 813 |
s3 = (+"\xa5H?").force_encoding('Big5') # subject
|
|
| 814 | 814 |
assert_equal s3, s2 |
| 815 | 815 |
end |
| 816 | 816 |
end |
| ... | ... | |
| 2345 | 2345 |
end |
| 2346 | 2346 | |
| 2347 | 2347 |
def test_export_to_pdf_with_utf8_u_fffd |
| 2348 |
# U+FFFD |
|
| 2349 |
s = "\xef\xbf\xbd" |
|
| 2350 |
s.force_encoding('UTF-8') if s.respond_to?(:force_encoding)
|
|
| 2351 |
issue = Issue.generate!(:subject => s) |
|
| 2348 |
issue = Issue.generate!(:subject => "�") |
|
| 2352 | 2349 |
["en", "zh", "zh-TW", "ja", "ko"].each do |lang| |
| 2353 | 2350 |
with_settings :default_language => lang do |
| 2354 | 2351 |
get :show, :params => {
|
| test/functional/repositories_bazaar_controller_test.rb | ||
|---|---|---|
| 28 | 28 |
REPOSITORY_PATH = Rails.root.join('tmp/test/bazaar_repository').to_s
|
| 29 | 29 |
REPOSITORY_PATH_TRUNK = File.join(REPOSITORY_PATH, "trunk") |
| 30 | 30 |
PRJ_ID = 3 |
| 31 |
CHAR_1_UTF8_HEX = "\xc3\x9c".dup.force_encoding('UTF-8')
|
|
| 32 | 31 | |
| 33 | 32 |
def setup |
| 34 | 33 |
super |
| ... | ... | |
| 224 | 223 |
assert_select "th.line-num", :text => '1' do |
| 225 | 224 |
assert_select "+ td.revision" do |
| 226 | 225 |
assert_select "a", :text => '2' |
| 227 |
assert_select "+ td.author", :text => "test #{CHAR_1_UTF8_HEX}" do
|
|
| 226 |
assert_select "+ td.author", :text => "test Ü" do
|
|
| 228 | 227 |
assert_select "+ td", |
| 229 | 228 |
:text => "author non ASCII test" |
| 230 | 229 |
end |
| test/functional/repositories_filesystem_controller_test.rb | ||
|---|---|---|
| 112 | 112 |
"when Encoding.default_external is not UTF-8. " + |
| 113 | 113 |
"Current value is '#{Encoding.default_external.to_s}'"
|
| 114 | 114 |
else |
| 115 |
str_japanese = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e".force_encoding('UTF-8')
|
|
| 116 |
assert_select 'tr#L3 td.line-code', :text => /#{str_japanese}/
|
|
| 115 |
assert_select 'tr#L3 td.line-code', :text => /日本語/ |
|
| 117 | 116 |
end |
| 118 | 117 |
end |
| 119 | 118 |
end |
| test/functional/repositories_git_controller_test.rb | ||
|---|---|---|
| 28 | 28 |
REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
|
| 29 | 29 |
REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin? |
| 30 | 30 |
PRJ_ID = 3 |
| 31 |
CHAR_1_HEX = "\xc3\x9c".force_encoding('UTF-8')
|
|
| 32 |
FELIX_HEX = "Felix Sch\xC3\xA4fer".force_encoding('UTF-8')
|
|
| 33 | 31 |
NUM_REV = 28 |
| 34 | 32 | |
| 35 | 33 |
## Git, Mercurial and CVS path encodings are binary. |
| ... | ... | |
| 65 | 63 |
:is_default => '0', |
| 66 | 64 |
:identifier => 'test-create', |
| 67 | 65 |
:report_last_commit => '1', |
| 68 |
|
|
| 66 | ||
| 69 | 67 |
} |
| 70 | 68 |
} |
| 71 | 69 |
end |
| ... | ... | |
| 79 | 77 |
:id => repository.id, |
| 80 | 78 |
:repository => {
|
| 81 | 79 |
:report_last_commit => '0' |
| 82 |
|
|
| 80 | ||
| 83 | 81 |
} |
| 84 | 82 |
} |
| 85 | 83 |
assert_response 302 |
| ... | ... | |
| 269 | 267 |
get :entry, :params => {
|
| 270 | 268 |
:id => PRJ_ID, |
| 271 | 269 |
:repository_id => @repository.id, |
| 272 |
:path => repository_path_hash(['latin-1-dir', "test-#{CHAR_1_HEX}.txt"])[:param],
|
|
| 270 |
:path => repository_path_hash(['latin-1-dir', "test-Ü.txt"])[:param],
|
|
| 273 | 271 |
:rev => r1 |
| 274 | 272 |
} |
| 275 | 273 |
assert_response :success |
| 276 |
assert_select 'tr#L1 td.line-code', :text => /test-#{CHAR_1_HEX}.txt/
|
|
| 274 |
assert_select 'tr#L1 td.line-code', :text => /test-Ü.txt/
|
|
| 277 | 275 |
end |
| 278 | 276 |
end |
| 279 | 277 |
end |
| ... | ... | |
| 440 | 438 |
} |
| 441 | 439 |
assert_response :success |
| 442 | 440 |
assert_select 'table' do |
| 443 |
assert_select 'thead th.filename', :text => /latin-1-dir\/test-#{CHAR_1_HEX}.txt/
|
|
| 444 |
assert_select 'tbody td.diff_in', :text => /test-#{CHAR_1_HEX}.txt/
|
|
| 441 |
assert_select 'thead th.filename', :text => /latin-1-dir\/test-Ü.txt/
|
|
| 442 |
assert_select 'tbody td.diff_in', :text => /test-Ü.txt/
|
|
| 445 | 443 |
end |
| 446 | 444 |
end |
| 447 | 445 |
end |
| ... | ... | |
| 568 | 566 |
get :annotate, :params => {
|
| 569 | 567 |
:id => PRJ_ID, |
| 570 | 568 |
:repository_id => @repository.id, |
| 571 |
:path => repository_path_hash(['latin-1-dir', "test-#{CHAR_1_HEX}.txt"])[:param],
|
|
| 569 |
:path => repository_path_hash(['latin-1-dir', "test-Ü.txt"])[:param],
|
|
| 572 | 570 |
:rev => r1 |
| 573 | 571 |
} |
| 574 | 572 |
assert_select "th.line-num", :text => '1' do |
| ... | ... | |
| 576 | 574 |
assert_select "a", :text => '57ca437c' |
| 577 | 575 |
assert_select "+ td.author", :text => "jsmith" do |
| 578 | 576 |
assert_select "+ td", |
| 579 |
:text => "test-#{CHAR_1_HEX}.txt"
|
|
| 577 |
:text => "test-Ü.txt"
|
|
| 580 | 578 |
end |
| 581 | 579 |
end |
| 582 | 580 |
end |
| ... | ... | |
| 596 | 594 |
assert_select "th.line-num", :text => '1' do |
| 597 | 595 |
assert_select "+ td.revision" do |
| 598 | 596 |
assert_select "a", :text => '83ca5fd5' |
| 599 |
assert_select "+ td.author", :text => FELIX_HEX do
|
|
| 597 |
assert_select "+ td.author", :text => "Felix Schäfer" do
|
|
| 600 | 598 |
assert_select "+ td", |
| 601 | 599 |
:text => "And this is a file with a leading and trailing space..." |
| 602 | 600 |
end |
| test/functional/repositories_mercurial_controller_test.rb | ||
|---|---|---|
| 26 | 26 |
:repositories, :enabled_modules |
| 27 | 27 | |
| 28 | 28 |
REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
|
| 29 |
CHAR_1_HEX = "\xc3\x9c" |
|
| 30 | 29 |
PRJ_ID = 3 |
| 31 | 30 |
NUM_REV = 34 |
| 32 | 31 | |
| ... | ... | |
| 43 | 42 |
) |
| 44 | 43 |
assert @repository |
| 45 | 44 |
@diff_c_support = true |
| 46 |
@char_1 = CHAR_1_HEX.dup.force_encoding('UTF-8')
|
|
| 47 |
@tag_char_1 = "tag-#{CHAR_1_HEX}-00".force_encoding('UTF-8')
|
|
| 48 |
@branch_char_0 = "branch-#{CHAR_1_HEX}-00".force_encoding('UTF-8')
|
|
| 49 |
@branch_char_1 = "branch-#{CHAR_1_HEX}-01".force_encoding('UTF-8')
|
|
| 50 | 45 |
end |
| 51 | 46 | |
| 52 | 47 |
if ruby19_non_utf8_pass |
| ... | ... | |
| 186 | 181 |
assert_select 'table.entries tbody' do |
| 187 | 182 |
assert_select 'tr', 4 |
| 188 | 183 |
assert_select 'tr.file td.filename a', :text => "make-latin-1-file.rb" |
| 189 |
assert_select 'tr.file td.filename a', :text => "test-#{@char_1}-1.txt"
|
|
| 190 |
assert_select 'tr.file td.filename a', :text => "test-#{@char_1}-2.txt"
|
|
| 191 |
assert_select 'tr.file td.filename a', :text => "test-#{@char_1}.txt"
|
|
| 184 |
assert_select 'tr.file td.filename a', :text => "test-Ü-1.txt"
|
|
| 185 |
assert_select 'tr.file td.filename a', :text => "test-Ü-2.txt"
|
|
| 186 |
assert_select 'tr.file td.filename a', :text => "test-Ü.txt"
|
|
| 192 | 187 |
end |
| 193 | 188 | |
| 194 | 189 |
assert_select 'table.changesets tbody' do |
| ... | ... | |
| 221 | 216 |
assert_equal NUM_REV, @repository.changesets.count |
| 222 | 217 |
[ |
| 223 | 218 |
'default', |
| 224 |
@branch_char_1,
|
|
| 219 |
'branch-Ü-01',
|
|
| 225 | 220 |
'branch (1)[2]&,%.-3_4', |
| 226 |
@branch_char_0,
|
|
| 221 |
'branch-Ü-00',
|
|
| 227 | 222 |
'test_branch.latin-1', |
| 228 | 223 |
'test-branch-00', |
| 229 | 224 |
].each do |bra| |
| ... | ... | |
| 245 | 240 |
@project.reload |
| 246 | 241 |
assert_equal NUM_REV, @repository.changesets.count |
| 247 | 242 |
[ |
| 248 |
@tag_char_1,
|
|
| 243 |
'tag-Ü-00',
|
|
| 249 | 244 |
'tag_test.00', |
| 250 | 245 |
'tag-init-revision' |
| 251 | 246 |
].each do |tag| |
| ... | ... | |
| 287 | 282 |
get :entry, :params => {
|
| 288 | 283 |
:id => PRJ_ID, |
| 289 | 284 |
:repository_id => @repository.id, |
| 290 |
:path => repository_path_hash(['latin-1-dir', "test-#{@char_1}-2.txt"])[:param],
|
|
| 285 |
:path => repository_path_hash(['latin-1-dir', "test-Ü-2.txt"])[:param],
|
|
| 291 | 286 |
:rev => r1 |
| 292 | 287 |
} |
| 293 | 288 |
assert_response :success |
| ... | ... | |
| 301 | 296 |
get :entry, :params => {
|
| 302 | 297 |
:id => PRJ_ID, |
| 303 | 298 |
:repository_id => @repository.id, |
| 304 |
:path => repository_path_hash(['latin-1-dir', "test-#{@char_1}.txt"])[:param],
|
|
| 299 |
:path => repository_path_hash(['latin-1-dir', "test-Ü.txt"])[:param],
|
|
| 305 | 300 |
:rev => r1 |
| 306 | 301 |
} |
| 307 | 302 |
assert_response :success |
| 308 |
assert_select 'tr#L1 td.line-code', :text => /test-#{@char_1}.txt/
|
|
| 303 |
assert_select 'tr#L1 td.line-code', :text => /test-Ü.txt/
|
|
| 309 | 304 |
end |
| 310 | 305 |
end |
| 311 | 306 |
end |
| ... | ... | |
| 395 | 390 |
} |
| 396 | 391 |
assert_response :success |
| 397 | 392 |
assert_select 'table' do |
| 398 |
assert_select 'thead th.filename', :text => /latin-1-dir\/test-#{@char_1}-2.txt/
|
|
| 393 |
assert_select 'thead th.filename', :text => /latin-1-dir\/test-Ü-2.txt/
|
|
| 399 | 394 |
assert_select 'tbody td.diff_in', :text => /It is written in Python/ |
| 400 | 395 |
end |
| 401 | 396 |
end |
| ... | ... | |
| 478 | 473 |
get :annotate, :params => {
|
| 479 | 474 |
:id => PRJ_ID, |
| 480 | 475 |
:repository_id => @repository.id, |
| 481 |
:path => repository_path_hash(['latin-1-dir', "test-#{@char_1}-2.txt"])[:param],
|
|
| 476 |
:path => repository_path_hash(['latin-1-dir', "test-Ü-2.txt"])[:param],
|
|
| 482 | 477 |
:rev => r1 |
| 483 | 478 |
} |
| 484 | 479 |
assert_response :success |
| ... | ... | |
| 500 | 495 |
get :annotate, :params => {
|
| 501 | 496 |
:id => PRJ_ID, |
| 502 | 497 |
:repository_id => @repository.id, |
| 503 |
:path => repository_path_hash(['latin-1-dir', "test-#{@char_1}.txt"])[:param],
|
|
| 498 |
:path => repository_path_hash(['latin-1-dir', "test-Ü.txt"])[:param],
|
|
| 504 | 499 |
:rev => r1 |
| 505 | 500 |
} |
| 506 |
assert_select 'tr#L1 td.line-code', :text => /test-#{@char_1}.txt/
|
|
| 501 |
assert_select 'tr#L1 td.line-code', :text => /test-Ü.txt/
|
|
| 507 | 502 |
end |
| 508 | 503 |
end |
| 509 | 504 |
end |
| test/functional/timelog_report_test.rb | ||
|---|---|---|
| 260 | 260 |
end |
| 261 | 261 | |
| 262 | 262 |
def test_csv_big_5 |
| 263 |
str_utf8 = "\xe4\xb8\x80\xe6\x9c\x88".force_encoding('UTF-8')
|
|
| 264 |
str_big5 = "\xa4@\xa4\xeb".force_encoding('Big5')
|
|
| 263 |
str_big5 = (+"\xa4@\xa4\xeb").force_encoding('Big5')
|
|
| 265 | 264 |
user = User.find_by_id(3) |
| 266 |
user.firstname = str_utf8
|
|
| 265 |
user.firstname = "一月"
|
|
| 267 | 266 |
user.lastname = "test-lastname" |
| 268 | 267 |
assert user.save |
| 269 | 268 |
comments = "test_csv_big_5" |
| ... | ... | |
| 293 | 292 |
assert_equal 'text/csv; header=present', @response.content_type |
| 294 | 293 |
lines = @response.body.chomp.split("\n")
|
| 295 | 294 |
# Headers |
| 296 |
s1 = "\xa5\xce\xa4\xe1,2011-11-11,\xa4u\xae\xc9\xc1`\xadp".force_encoding('Big5')
|
|
| 297 |
s2 = "\xa4u\xae\xc9\xc1`\xadp".force_encoding('Big5')
|
|
| 295 |
s1 = (+"\xa5\xce\xa4\xe1,2011-11-11,\xa4u\xae\xc9\xc1`\xadp").force_encoding('Big5')
|
|
| 296 |
s2 = (+"\xa4u\xae\xc9\xc1`\xadp").force_encoding('Big5')
|
|
| 298 | 297 |
assert_equal s1, lines.first |
| 299 | 298 |
# Total row |
| 300 | 299 |
assert_equal "#{str_big5} #{user.lastname},7.30,7.30", lines[1]
|
| 301 | 300 |
assert_equal "#{s2},7.30,7.30", lines[2]
|
| 302 | 301 | |
| 303 |
str_tw = "Chinese/Traditional (\xe7\xb9\x81\xe9\xab\x94\xe4\xb8\xad\xe6\x96\x87)".force_encoding('UTF-8')
|
|
| 304 |
assert_equal str_tw, l(:general_lang_name) |
|
| 302 |
assert_equal 'Chinese/Traditional (繁體中文)', l(:general_lang_name) |
|
| 305 | 303 |
assert_equal 'Big5', l(:general_csv_encoding) |
| 306 | 304 |
assert_equal ',', l(:general_csv_separator) |
| 307 | 305 |
assert_equal '.', l(:general_csv_decimal_separator) |
| 308 | 306 |
end |
| 309 | 307 | |
| 310 | 308 |
def test_csv_cannot_convert_should_be_replaced_big_5 |
| 311 |
str_utf8 = "\xe4\xbb\xa5\xe5\x86\x85".force_encoding('UTF-8')
|
|
| 312 | 309 |
user = User.find_by_id(3) |
| 313 |
user.firstname = str_utf8
|
|
| 310 |
user.firstname = "以内"
|
|
| 314 | 311 |
user.lastname = "test-lastname" |
| 315 | 312 |
assert user.save |
| 316 | 313 |
comments = "test_replaced" |
| ... | ... | |
| 340 | 337 |
assert_equal 'text/csv; header=present', @response.content_type |
| 341 | 338 |
lines = @response.body.chomp.split("\n")
|
| 342 | 339 |
# Headers |
| 343 |
s1 = "\xa5\xce\xa4\xe1,2011-11-11,\xa4u\xae\xc9\xc1`\xadp".force_encoding('Big5')
|
|
| 340 |
s1 = (+"\xa5\xce\xa4\xe1,2011-11-11,\xa4u\xae\xc9\xc1`\xadp").force_encoding('Big5')
|
|
| 344 | 341 |
assert_equal s1, lines.first |
| 345 | 342 |
# Total row |
| 346 |
s2 = "\xa5H?".force_encoding('Big5')
|
|
| 343 |
s2 = (+"\xa5H?").force_encoding('Big5')
|
|
| 347 | 344 |
assert_equal "#{s2} #{user.lastname},7.30,7.30", lines[1]
|
| 348 | 345 |
end |
| 349 | 346 | |
| ... | ... | |
| 375 | 372 |
assert_equal 'text/csv; header=present', @response.content_type |
| 376 | 373 |
lines = @response.body.chomp.split("\n")
|
| 377 | 374 |
# Headers |
| 378 |
s1 = "Utilisateur;2011-11-11;Temps total".force_encoding('ISO-8859-1')
|
|
| 379 |
s2 = "Temps total".force_encoding('ISO-8859-1')
|
|
| 375 |
s1 = (+"Utilisateur;2011-11-11;Temps total").force_encoding('ISO-8859-1')
|
|
| 376 |
s2 = (+"Temps total").force_encoding('ISO-8859-1')
|
|
| 380 | 377 |
assert_equal s1, lines.first |
| 381 | 378 |
# Total row |
| 382 | 379 |
assert_equal "#{user.firstname} #{user.lastname};7,30;7,30", lines[1]
|
| 383 | 380 |
assert_equal "#{s2};7,30;7,30", lines[2]
|
| 384 | 381 | |
| 385 |
str_fr = "French (Fran\xc3\xa7ais)".force_encoding('UTF-8')
|
|
| 386 |
assert_equal str_fr, l(:general_lang_name) |
|
| 382 |
assert_equal 'French (Français)', l(:general_lang_name) |
|
| 387 | 383 |
assert_equal 'ISO-8859-1', l(:general_csv_encoding) |
| 388 | 384 |
assert_equal ';', l(:general_csv_separator) |
| 389 | 385 |
assert_equal ',', l(:general_csv_decimal_separator) |
| test/helpers/application_helper_test.rb | ||
|---|---|---|
| 37 | 37 |
def setup |
| 38 | 38 |
super |
| 39 | 39 |
set_tmp_attachments_directory |
| 40 |
@russian_test = "\xd1\x82\xd0\xb5\xd1\x81\xd1\x82".force_encoding('UTF-8')
|
|
| 40 |
@russian_test = 'тест'
|
|
| 41 | 41 |
end |
| 42 | 42 | |
| 43 | 43 |
test "#link_to_if_authorized for authorized user should allow using the :controller and :action for the target link" do |
| ... | ... | |
| 1792 | 1792 |
end |
| 1793 | 1793 | |
| 1794 | 1794 |
def test_truncate_single_line_non_ascii |
| 1795 |
ja = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e".force_encoding('UTF-8')
|
|
| 1795 |
ja = '日本語'
|
|
| 1796 | 1796 |
result = truncate_single_line_raw("#{ja}\n#{ja}\n#{ja}", 10)
|
| 1797 | 1797 |
assert_equal "#{ja} #{ja}...", result
|
| 1798 | 1798 |
assert !result.html_safe? |
| test/integration/api_test/authentication_test.rb | ||
|---|---|---|
| 112 | 112 |
end |
| 113 | 113 | |
| 114 | 114 |
def test_invalid_utf8_credentials_should_not_trigger_an_error |
| 115 |
invalid_utf8 = "\x82".force_encoding('UTF-8')
|
|
| 115 |
invalid_utf8 = "\x82" |
|
| 116 | 116 |
assert !invalid_utf8.valid_encoding? |
| 117 | 117 |
assert_nothing_raised do |
| 118 | 118 |
get '/users/current.xml', :headers => credentials(invalid_utf8, "foo") |
| test/unit/attachment_test.rb | ||
|---|---|---|
| 408 | 408 |
end |
| 409 | 409 | |
| 410 | 410 |
def test_latest_attach_should_not_error_with_string_with_invalid_encoding |
| 411 |
string = "width:50\xFE-Image.jpg".force_encoding('UTF-8')
|
|
| 411 |
string = "width:50\xFE-Image.jpg" |
|
| 412 | 412 |
assert_equal false, string.valid_encoding? |
| 413 | 413 | |
| 414 | 414 |
Attachment.latest_attach(Attachment.limit(2).to_a, string) |
| test/unit/changeset_test.rb | ||
|---|---|---|
| 448 | 448 | |
| 449 | 449 |
def test_comments_should_be_converted_to_utf8 |
| 450 | 450 |
proj = Project.find(3) |
| 451 |
# str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
|
|
| 452 |
str = "Texte encod\xe9 en ISO-8859-1.".force_encoding("ASCII-8BIT")
|
|
| 451 |
str = (+"Texte encod\xe9 en ISO-8859-1.").force_encoding("ASCII-8BIT")
|
|
| 453 | 452 |
r = Repository::Bazaar.create!( |
| 454 | 453 |
:project => proj, |
| 455 | 454 |
:url => '/tmp/test/bazaar', |
| ... | ... | |
| 461 | 460 |
:scmid => '12345', |
| 462 | 461 |
:comments => str) |
| 463 | 462 |
assert( c.save ) |
| 464 |
str_utf8 = "Texte encod\xc3\xa9 en ISO-8859-1.".force_encoding("UTF-8")
|
|
| 465 |
assert_equal str_utf8, c.comments |
|
| 463 |
assert_equal 'Texte encodé en ISO-8859-1.', c.comments |
|
| 466 | 464 |
end |
| 467 | 465 | |
| 468 | 466 |
def test_invalid_utf8_sequences_in_comments_should_be_replaced_latin1 |
| 469 | 467 |
proj = Project.find(3) |
| 470 |
# str = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
|
|
| 471 |
str1 = "Texte encod\xe9 en ISO-8859-1.".force_encoding("UTF-8")
|
|
| 472 |
str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test".force_encoding("ASCII-8BIT")
|
|
| 468 |
str2 = (+"\xe9a\xe9b\xe9c\xe9d\xe9e test").force_encoding("ASCII-8BIT")
|
|
| 473 | 469 |
r = Repository::Bazaar.create!( |
| 474 | 470 |
:project => proj, |
| 475 | 471 |
:url => '/tmp/test/bazaar', |
| ... | ... | |
| 479 | 475 |
:committed_on => Time.now, |
| 480 | 476 |
:revision => '123', |
| 481 | 477 |
:scmid => '12345', |
| 482 |
:comments => str1,
|
|
| 478 |
:comments => "Texte encod\xE9 en ISO-8859-1.",
|
|
| 483 | 479 |
:committer => str2) |
| 484 | 480 |
assert( c.save ) |
| 485 | 481 |
assert_equal "Texte encod? en ISO-8859-1.", c.comments |
| ... | ... | |
| 488 | 484 | |
| 489 | 485 |
def test_invalid_utf8_sequences_in_comments_should_be_replaced_ja_jis |
| 490 | 486 |
proj = Project.find(3) |
| 491 |
str = "test\xb5\xfetest\xb5\xfe".force_encoding('ASCII-8BIT')
|
|
| 487 |
str = (+"test\xb5\xfetest\xb5\xfe").force_encoding('ASCII-8BIT')
|
|
| 492 | 488 |
r = Repository::Bazaar.create!( |
| 493 | 489 |
:project => proj, |
| 494 | 490 |
:url => '/tmp/test/bazaar', |
| ... | ... | |
| 504 | 500 |
end |
| 505 | 501 | |
| 506 | 502 |
def test_comments_should_be_converted_all_latin1_to_utf8 |
| 507 |
s1 = "\xC2\x80" |
|
| 508 |
s2 = "\xc3\x82\xc2\x80" |
|
| 503 |
s1 = +"\xC2\x80"
|
|
| 504 |
s2 = +"\xc3\x82\xc2\x80"
|
|
| 509 | 505 |
s4 = s2.dup |
| 510 | 506 |
s3 = s1.dup |
| 511 | 507 |
s1.force_encoding('ASCII-8BIT')
|
| ... | ... | |
| 530 | 526 | |
| 531 | 527 |
def test_invalid_utf8_sequences_in_paths_should_be_replaced |
| 532 | 528 |
proj = Project.find(3) |
| 533 |
str1 = "Texte encod\xe9 en ISO-8859-1".force_encoding("UTF-8")
|
|
| 534 |
str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test".force_encoding("ASCII-8BIT")
|
|
| 529 |
str2 = (+"\xe9a\xe9b\xe9c\xe9d\xe9e test").force_encoding("ASCII-8BIT")
|
|
| 535 | 530 |
r = Repository::Bazaar.create!( |
| 536 | 531 |
:project => proj, |
| 537 | 532 |
:url => '/tmp/test/bazaar', |
| ... | ... | |
| 547 | 542 |
ch = Change.new( |
| 548 | 543 |
:changeset => cs, |
| 549 | 544 |
:action => "A", |
| 550 |
:path => str1,
|
|
| 545 |
:path => "Texte encod\xE9 en ISO-8859-1",
|
|
| 551 | 546 |
:from_path => str2, |
| 552 | 547 |
:from_revision => "345") |
| 553 | 548 |
assert(ch.save) |
| test/unit/custom_field_test.rb | ||
|---|---|---|
| 107 | 107 | |
| 108 | 108 |
def test_possible_values_should_return_utf8_encoded_strings |
| 109 | 109 |
field = CustomField.new |
| 110 |
s = "Value".force_encoding('BINARY')
|
|
| 110 |
s = (+"Value").force_encoding('BINARY')
|
|
| 111 | 111 |
field.possible_values = s |
| 112 | 112 |
assert_equal [s], field.possible_values |
| 113 | 113 |
assert_equal 'UTF-8', field.possible_values.first.encoding.name |
| test/unit/group_test.rb | ||
|---|---|---|
| 58 | 58 | |
| 59 | 59 |
def test_blank_name_error_message_fr |
| 60 | 60 |
set_language_if_valid 'fr' |
| 61 |
str = "Nom doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 62 | 61 |
g = Group.new |
| 63 | 62 |
assert !g.save |
| 64 |
assert_include str, g.errors.full_messages
|
|
| 63 |
assert_include 'Nom doit être renseigné(e)', g.errors.full_messages
|
|
| 65 | 64 |
end |
| 66 | 65 | |
| 67 | 66 |
def test_group_roles_should_be_given_to_added_user |
| test/unit/lib/redmine/codeset_util_test.rb | ||
|---|---|---|
| 23 | 23 | |
| 24 | 24 |
def test_to_utf8_by_setting_from_latin1 |
| 25 | 25 |
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do |
| 26 |
s1 = "Texte encod\xc3\xa9".force_encoding("UTF-8")
|
|
| 27 |
s2 = "Texte encod\xe9".force_encoding("ASCII-8BIT")
|
|
| 26 |
s1 = 'Texte encodé'
|
|
| 27 |
s2 = (+"Texte encod\xe9").force_encoding("ASCII-8BIT")
|
|
| 28 | 28 |
s3 = s2.dup.force_encoding("UTF-8")
|
| 29 | 29 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s2) |
| 30 | 30 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s3) |
| ... | ... | |
| 33 | 33 | |
| 34 | 34 |
def test_to_utf8_by_setting_from_euc_jp |
| 35 | 35 |
with_settings :repositories_encodings => 'UTF-8,EUC-JP' do |
| 36 |
s1 = "\xe3\x83\xac\xe3\x83\x83\xe3\x83\x89\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xb3".force_encoding("UTF-8")
|
|
| 37 |
s2 = "\xa5\xec\xa5\xc3\xa5\xc9\xa5\xde\xa5\xa4\xa5\xf3".force_encoding("ASCII-8BIT")
|
|
| 36 |
s1 = 'レッドマイン'
|
|
| 37 |
s2 = (+"\xa5\xec\xa5\xc3\xa5\xc9\xa5\xde\xa5\xa4\xa5\xf3").force_encoding("ASCII-8BIT")
|
|
| 38 | 38 |
s3 = s2.dup.force_encoding("UTF-8")
|
| 39 | 39 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s2) |
| 40 | 40 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s3) |
| ... | ... | |
| 43 | 43 | |
| 44 | 44 |
def test_to_utf8_by_setting_should_be_converted_all_latin1 |
| 45 | 45 |
with_settings :repositories_encodings => 'ISO-8859-1' do |
| 46 |
s1 = "\xc3\x82\xc2\x80".force_encoding("UTF-8")
|
|
| 47 |
s2 = "\xC2\x80".force_encoding("ASCII-8BIT")
|
|
| 46 |
s1 = "Â\u0080"
|
|
| 47 |
s2 = (+"\xC2\x80").force_encoding("ASCII-8BIT")
|
|
| 48 | 48 |
s3 = s2.dup.force_encoding("UTF-8")
|
| 49 | 49 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s2) |
| 50 | 50 |
assert_equal s1, Redmine::CodesetUtil.to_utf8_by_setting(s3) |
| ... | ... | |
| 57 | 57 |
end |
| 58 | 58 | |
| 59 | 59 |
def test_to_utf8_by_setting_returns_ascii_as_utf8 |
| 60 |
s1 = "ASCII".force_encoding("UTF-8")
|
|
| 60 |
s1 = 'ASCII'
|
|
| 61 | 61 |
s2 = s1.dup.force_encoding("ISO-8859-1")
|
| 62 | 62 |
str1 = Redmine::CodesetUtil.to_utf8_by_setting(s1) |
| 63 | 63 |
str2 = Redmine::CodesetUtil.to_utf8_by_setting(s2) |
| ... | ... | |
| 69 | 69 | |
| 70 | 70 |
def test_to_utf8_by_setting_invalid_utf8_sequences_should_be_stripped |
| 71 | 71 |
with_settings :repositories_encodings => '' do |
| 72 |
# s1 = File.read("#{RAILS_ROOT}/test/fixtures/encoding/iso-8859-1.txt")
|
|
| 73 |
s1 = "Texte encod\xe9 en ISO-8859-1.".force_encoding("ASCII-8BIT")
|
|
| 72 |
s1 = (+"Texte encod\xe9 en ISO-8859-1.").force_encoding("ASCII-8BIT")
|
|
| 74 | 73 |
str = Redmine::CodesetUtil.to_utf8_by_setting(s1) |
| 75 | 74 |
assert str.valid_encoding? |
| 76 | 75 |
assert_equal "UTF-8", str.encoding.to_s |
| ... | ... | |
| 80 | 79 | |
| 81 | 80 |
def test_to_utf8_by_setting_invalid_utf8_sequences_should_be_stripped_ja_jis |
| 82 | 81 |
with_settings :repositories_encodings => 'ISO-2022-JP' do |
| 83 |
s1 = "test\xb5\xfetest\xb5\xfe".force_encoding("ASCII-8BIT")
|
|
| 82 |
s1 = (+"test\xb5\xfetest\xb5\xfe").force_encoding("ASCII-8BIT")
|
|
| 84 | 83 |
str = Redmine::CodesetUtil.to_utf8_by_setting(s1) |
| 85 | 84 |
assert str.valid_encoding? |
| 86 | 85 |
assert_equal "UTF-8", str.encoding.to_s |
| ... | ... | |
| 89 | 88 |
end |
| 90 | 89 | |
| 91 | 90 |
test "#replace_invalid_utf8 should replace invalid utf8" do |
| 92 |
s1 = "\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xE3\x81\xFF".force_encoding("UTF-8")
|
|
| 91 |
s1 = "こんにち\xE3\x81\xFF"
|
|
| 93 | 92 |
s2 = Redmine::CodesetUtil.replace_invalid_utf8(s1) |
| 94 | 93 |
assert s2.valid_encoding? |
| 95 | 94 |
assert_equal "UTF-8", s2.encoding.to_s |
| 96 |
assert_equal "\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1??".force_encoding("UTF-8"), s2
|
|
| 95 |
assert_equal 'こんにち??', s2
|
|
| 97 | 96 |
end |
| 98 | 97 | |
| 99 | 98 |
test "#to_utf8 should replace invalid non utf8" do |
| 100 |
s1 = "\xa4\xb3\xa4\xf3\xa4\xcb\xa4\xc1\xa4".force_encoding("EUC-JP")
|
|
| 99 |
s1 = (+"\xa4\xb3\xa4\xf3\xa4\xcb\xa4\xc1\xa4").force_encoding("EUC-JP")
|
|
| 101 | 100 |
s2 = Redmine::CodesetUtil.to_utf8(s1, "EUC-JP") |
| 102 | 101 |
assert s2.valid_encoding? |
| 103 | 102 |
assert_equal "UTF-8", s2.encoding.to_s |
| 104 |
assert_equal "\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1?".force_encoding("UTF-8"), s2
|
|
| 103 |
assert_equal 'こんにち?', s2
|
|
| 105 | 104 |
end |
| 106 | 105 |
end |
| test/unit/lib/redmine/export/csv_test.rb | ||
|---|---|---|
| 21 | 21 | |
| 22 | 22 |
class CsvTest < ActiveSupport::TestCase |
| 23 | 23 |
include Redmine::I18n |
| 24 |
BOM = "\xEF\xBB\xBF".force_encoding('UTF-8')
|
|
| 25 | 24 | |
| 26 | 25 |
def test_should_include_bom_when_utf8_encoded |
| 27 | 26 |
with_locale 'sk' do |
| 28 | 27 |
string = Redmine::Export::CSV.generate {|csv| csv << %w(Foo Bar)}
|
| 29 | 28 |
assert_equal 'UTF-8', string.encoding.name |
| 30 |
assert string.starts_with?(BOM)
|
|
| 29 |
assert string.starts_with?("\xEF\xBB\xBF")
|
|
| 31 | 30 |
end |
| 32 | 31 |
end |
| 33 | 32 | |
| test/unit/lib/redmine/export/pdf_test.rb | ||
|---|---|---|
| 29 | 29 |
end |
| 30 | 30 | |
| 31 | 31 |
def test_rdm_pdf_iconv_cannot_convert_ja_cp932 |
| 32 |
utf8_txt_1 = "\xe7\x8b\x80\xe6\x85\x8b"
|
|
| 33 |
utf8_txt_2 = "\xe7\x8b\x80\xe6\x85\x8b\xe7\x8b\x80"
|
|
| 34 |
utf8_txt_3 = "\xe7\x8b\x80\xe7\x8b\x80\xe6\x85\x8b\xe7\x8b\x80"
|
|
| 32 |
utf8_txt_1 = '狀態'
|
|
| 33 |
utf8_txt_2 = '狀態狀'
|
|
| 34 |
utf8_txt_3 = '狀狀態狀'
|
|
| 35 | 35 |
["CP932", "SJIS"].each do |encoding| |
| 36 | 36 |
txt_1 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(utf8_txt_1, encoding) |
| 37 | 37 |
txt_2 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(utf8_txt_2, encoding) |
| 38 | 38 |
txt_3 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(utf8_txt_3, encoding) |
| 39 |
assert_equal "?\x91\xd4".force_encoding("ASCII-8BIT"), txt_1
|
|
| 40 |
assert_equal "?\x91\xd4?".force_encoding("ASCII-8BIT"), txt_2
|
|
| 41 |
assert_equal "??\x91\xd4?".force_encoding("ASCII-8BIT"), txt_3
|
|
| 39 |
assert_equal (+"?\x91\xd4").force_encoding("ASCII-8BIT"), txt_1
|
|
| 40 |
assert_equal (+"?\x91\xd4?").force_encoding("ASCII-8BIT"), txt_2
|
|
| 41 |
assert_equal (+"??\x91\xd4?").force_encoding("ASCII-8BIT"), txt_3
|
|
| 42 | 42 |
assert_equal "ASCII-8BIT", txt_1.encoding.to_s |
| 43 | 43 |
assert_equal "ASCII-8BIT", txt_2.encoding.to_s |
| 44 | 44 |
assert_equal "ASCII-8BIT", txt_3.encoding.to_s |
| ... | ... | |
| 46 | 46 |
end |
| 47 | 47 | |
| 48 | 48 |
def test_rdm_pdf_iconv_invalid_utf8_should_be_replaced_en |
| 49 |
str1 = "Texte encod\xe9 en ISO-8859-1".force_encoding("UTF-8")
|
|
| 50 |
str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test".force_encoding("ASCII-8BIT")
|
|
| 49 |
str1 = "Texte encod\xE9 en ISO-8859-1"
|
|
| 50 |
str2 = (+"\xe9a\xe9b\xe9c\xe9d\xe9e test").force_encoding("ASCII-8BIT")
|
|
| 51 | 51 |
txt_1 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(str1, 'UTF-8') |
| 52 | 52 |
txt_2 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(str2, 'UTF-8') |
| 53 | 53 |
assert_equal "ASCII-8BIT", txt_1.encoding.to_s |
| ... | ... | |
| 57 | 57 |
end |
| 58 | 58 | |
| 59 | 59 |
def test_rdm_pdf_iconv_invalid_utf8_should_be_replaced_ja |
| 60 |
str1 = "Texte encod\xe9 en ISO-8859-1".force_encoding("UTF-8")
|
|
| 61 |
str2 = "\xe9a\xe9b\xe9c\xe9d\xe9e test".force_encoding("ASCII-8BIT")
|
|
| 60 |
str1 = "Texte encod\xE9 en ISO-8859-1"
|
|
| 61 |
str2 = (+"\xe9a\xe9b\xe9c\xe9d\xe9e test").force_encoding("ASCII-8BIT")
|
|
| 62 | 62 |
encoding = ( RUBY_PLATFORM == 'java' ? "SJIS" : "CP932" ) |
| 63 | 63 |
txt_1 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(str1, encoding) |
| 64 | 64 |
txt_2 = Redmine::Export::PDF::RDMPdfEncoding::rdm_from_utf8(str2, encoding) |
| ... | ... | |
| 72 | 72 |
["CP932", "SJIS"].each do |encoding| |
| 73 | 73 |
set_fixtures_attachments_directory |
| 74 | 74 | |
| 75 |
str2 = "\x83e\x83X\x83g".force_encoding("ASCII-8BIT")
|
|
| 75 |
str2 = (+"\x83e\x83X\x83g").force_encoding("ASCII-8BIT")
|
|
| 76 | 76 | |
| 77 | 77 |
a1 = Attachment.find(17) |
| 78 | 78 |
a2 = Attachment.find(19) |
| test/unit/lib/redmine/i18n_test.rb | ||
|---|---|---|
| 70 | 70 |
end |
| 71 | 71 |
assert l('date.day_names').is_a?(Array)
|
| 72 | 72 |
assert_equal 7, l('date.day_names').size
|
| 73 |
|
|
| 73 | ||
| 74 | 74 |
assert l('date.month_names').is_a?(Array)
|
| 75 | 75 |
assert_equal 13, l('date.month_names').size
|
| 76 | 76 |
end |
| ... | ... | |
| 165 | 165 |
set_language_if_valid 'bs' |
| 166 | 166 |
assert_equal "KM -1000,20", number_to_currency(-1000.2) |
| 167 | 167 |
set_language_if_valid 'de' |
| 168 |
euro_sign = "\xe2\x82\xac".force_encoding('UTF-8')
|
|
| 169 |
assert_equal "-1000,20 #{euro_sign}", number_to_currency(-1000.2)
|
|
| 168 |
assert_equal '-1000,20 €', number_to_currency(-1000.2) |
|
| 170 | 169 |
end |
| 171 | 170 | |
| 172 | 171 |
def test_lu_should_not_error_when_user_language_is_an_empty_string |
| ... | ... | |
| 191 | 190 |
assert_nil options.detect {|option| option.size != 2}
|
| 192 | 191 |
assert_nil options.detect {|option| !option.first.is_a?(String) || !option.last.is_a?(String)}
|
| 193 | 192 |
assert_include ["English", "en"], options |
| 194 |
ja = "Japanese (\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e)".force_encoding('UTF-8')
|
|
| 195 |
assert_include [ja, "ja"], options |
|
| 193 |
assert_include ['Japanese (日本語)', "ja"], options |
|
| 196 | 194 |
end |
| 197 | 195 | |
| 198 | 196 |
def test_languages_options_should_return_strings_with_utf8_encoding |
| ... | ... | |
| 243 | 241 | |
| 244 | 242 |
def test_utf8 |
| 245 | 243 |
set_language_if_valid 'ja' |
| 246 |
str_ja_yes = "\xe3\x81\xaf\xe3\x81\x84".force_encoding('UTF-8')
|
|
| 247 | 244 |
i18n_ja_yes = l(:general_text_Yes) |
| 248 |
assert_equal str_ja_yes, i18n_ja_yes
|
|
| 245 |
assert_equal 'はい', i18n_ja_yes
|
|
| 249 | 246 |
assert_equal "UTF-8", i18n_ja_yes.encoding.to_s |
| 250 | 247 |
end |
| 251 | 248 | |
| 252 | 249 |
def test_traditional_chinese_locale |
| 253 | 250 |
set_language_if_valid 'zh-TW' |
| 254 |
str_tw = "Chinese/Traditional (\xE7\xB9\x81\xE9\xAB\x94\xE4\xB8\xAD\xE6\x96\x87)".force_encoding('UTF-8')
|
|
| 255 |
assert_equal str_tw, l(:general_lang_name) |
|
| 251 |
assert_equal 'Chinese/Traditional (繁體中文)', l(:general_lang_name) |
|
| 256 | 252 |
end |
| 257 | 253 | |
| 258 | 254 |
def test_french_locale |
| 259 | 255 |
set_language_if_valid 'fr' |
| 260 |
str_fr = "French (Fran\xc3\xa7ais)".force_encoding('UTF-8')
|
|
| 261 |
assert_equal str_fr, l(:general_lang_name) |
|
| 256 |
assert_equal 'French (Français)', l(:general_lang_name) |
|
| 262 | 257 |
end |
| 263 | 258 |
end |
| test/unit/lib/redmine/scm/adapters/git_adapter_test.rb | ||
|---|---|---|
| 22 | 22 |
class GitAdapterTest < ActiveSupport::TestCase |
| 23 | 23 |
REPOSITORY_PATH = Rails.root.join('tmp/test/git_repository').to_s
|
| 24 | 24 | |
| 25 |
FELIX_HEX = "Felix Sch\xC3\xA4fer" |
|
| 26 |
CHAR_1_HEX = "\xc3\x9c" |
|
| 27 | ||
| 28 | 25 |
## Git, Mercurial and CVS path encodings are binary. |
| 29 | 26 |
## Subversion supports URL encoding for path. |
| 30 | 27 |
## Redmine Mercurial adapter and extension use URL encoding. |
| ... | ... | |
| 60 | 57 |
'ISO-8859-1' |
| 61 | 58 |
) |
| 62 | 59 |
assert @adapter |
| 63 |
@char_1 = CHAR_1_HEX.dup.force_encoding('UTF-8')
|
|
| 64 |
@str_felix_hex = FELIX_HEX.dup.force_encoding('ASCII-8BIT')
|
|
| 60 |
@char_1 = 'Ü'
|
|
| 61 |
@str_felix_hex = (+"Felix Sch\xC3\xA4fer").force_encoding('ASCII-8BIT')
|
|
| 65 | 62 |
end |
| 66 | 63 | |
| 67 | 64 |
def test_scm_version |
| ... | ... | |
| 80 | 77 |
end |
| 81 | 78 |
assert_equal 6, brs.length |
| 82 | 79 |
br_issue_8857 = brs[0] |
| 83 |
assert_equal 'issue-8857', br_issue_8857.to_s
|
|
| 80 |
assert_equal 'issue-8857', br_issue_8857.to_s |
|
| 84 | 81 |
assert_equal '2a682156a3b6e77a8bf9cd4590e8db757f3c6c78', br_issue_8857.revision |
| 85 | 82 |
assert_equal br_issue_8857.scmid, br_issue_8857.revision |
| 86 | 83 |
assert_equal false, br_issue_8857.is_default |
| 87 | 84 |
br_latin_1_path = brs[1] |
| 88 |
assert_equal 'latin-1-path-encoding', br_latin_1_path.to_s
|
|
| 85 |
assert_equal 'latin-1-path-encoding', br_latin_1_path.to_s |
|
| 89 | 86 |
assert_equal '1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', br_latin_1_path.revision |
| 90 | 87 |
assert_equal br_latin_1_path.scmid, br_latin_1_path.revision |
| 91 | 88 |
assert_equal false, br_latin_1_path.is_default |
| test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb | ||
|---|---|---|
| 27 | 27 |
HgCommandArgumentError = Redmine::Scm::Adapters::MercurialAdapter::HgCommandArgumentError |
| 28 | 28 | |
| 29 | 29 |
REPOSITORY_PATH = repository_path('mercurial')
|
| 30 |
CHAR_1_HEX = "\xc3\x9c" |
|
| 31 | 30 | |
| 32 | 31 |
if File.directory?(REPOSITORY_PATH) |
| 33 | 32 |
def setup |
| ... | ... | |
| 44 | 43 |
nil, |
| 45 | 44 |
'ISO-8859-1') |
| 46 | 45 |
@diff_c_support = true |
| 47 |
@char_1 = CHAR_1_HEX.dup.force_encoding('UTF-8')
|
|
| 48 |
@tag_char_1 = "tag-#{CHAR_1_HEX}-00".force_encoding('UTF-8')
|
|
| 49 |
@branch_char_0 = "branch-#{CHAR_1_HEX}-00".force_encoding('UTF-8')
|
|
| 50 |
@branch_char_1 = "branch-#{CHAR_1_HEX}-01".force_encoding('UTF-8')
|
|
| 46 |
@char_1 = 'Ü'
|
|
| 47 |
@tag_char_1 = 'tag-Ü-00'
|
|
| 48 |
@branch_char_0 = 'branch-Ü-00'
|
|
| 49 |
@branch_char_1 = 'branch-Ü-01'
|
|
| 51 | 50 |
end |
| 52 | 51 | |
| 53 | 52 |
def test_hgversion |
| test/unit/lib/redmine/unified_diff_test.rb | ||
|---|---|---|
| 274 | 274 |
end |
| 275 | 275 | |
| 276 | 276 |
def test_utf8_ja |
| 277 |
ja = " text_tip_issue_end_day: " |
|
| 278 |
ja += "\xe3\x81\x93\xe3\x81\xae\xe6\x97\xa5\xe3\x81\xab\xe7\xb5\x82\xe4\xba\x86\xe3\x81\x99\xe3\x82\x8b<span>\xe3\x82\xbf\xe3\x82\xb9\xe3\x82\xaf</span>".force_encoding('UTF-8')
|
|
| 279 | 277 |
with_settings :repositories_encodings => '' do |
| 280 | 278 |
diff = Redmine::UnifiedDiff.new(read_diff_fixture('issue-12641-ja.diff'), :type => 'inline')
|
| 281 | 279 |
assert_equal 1, diff.size |
| 282 | 280 |
assert_equal 12, diff.first.size |
| 283 |
assert_equal ja, diff.first[4].html_line_left
|
|
| 281 |
assert_equal ' text_tip_issue_end_day: この日に終了する<span>タスク</span>', diff.first[4].html_line_left
|
|
| 284 | 282 |
end |
| 285 | 283 |
end |
| 286 | 284 | |
| 287 | 285 |
def test_utf8_ru |
| 288 |
ru = " other: "\xd0\xbe\xd0\xba\xd0\xbe\xd0\xbb\xd0\xbe %{count} \xd1\x87\xd0\xb0\xd1\x81<span>\xd0\xb0</span>"".force_encoding('UTF-8')
|
|
| 289 | 286 |
with_settings :repositories_encodings => '' do |
| 290 | 287 |
diff = Redmine::UnifiedDiff.new(read_diff_fixture('issue-12641-ru.diff'), :type => 'inline')
|
| 291 | 288 |
assert_equal 1, diff.size |
| 292 | 289 |
assert_equal 8, diff.first.size |
| 293 |
assert_equal ru, diff.first[3].html_line_left
|
|
| 290 |
assert_equal ' other: "около %{count} час<span>а</span>"', diff.first[3].html_line_left
|
|
| 294 | 291 |
end |
| 295 | 292 |
end |
| 296 | 293 | |
| ... | ... | |
| 329 | 326 |
end |
| 330 | 327 | |
| 331 | 328 |
def test_offset_range_japanese_1 |
| 332 |
ja1 = "\xe6\x97\xa5\xe6\x9c\xac<span></span>".force_encoding('UTF-8')
|
|
| 333 |
ja2 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xaa\x9e</span>".force_encoding('UTF-8')
|
|
| 334 | 329 |
with_settings :repositories_encodings => '' do |
| 335 | 330 |
diff = Redmine::UnifiedDiff.new( |
| 336 | 331 |
read_diff_fixture('issue-13644-1.diff'), :type => 'sbs')
|
| 337 | 332 |
assert_equal 1, diff.size |
| 338 | 333 |
assert_equal 3, diff.first.size |
| 339 |
assert_equal ja1, diff.first[1].html_line_left
|
|
| 340 |
assert_equal ja2, diff.first[1].html_line_right
|
|
| 334 |
assert_equal '日本<span></span>', diff.first[1].html_line_left
|
|
| 335 |
assert_equal '日本<span>語</span>', diff.first[1].html_line_right
|
|
| 341 | 336 |
end |
| 342 | 337 |
end |
| 343 | 338 | |
| 344 | 339 |
def test_offset_range_japanese_2 |
| 345 |
ja1 = "<span></span>\xe6\x97\xa5\xe6\x9c\xac".force_encoding('UTF-8')
|
|
| 346 |
ja2 = "<span>\xe3\x81\xab\xe3\x81\xa3\xe3\x81\xbd\xe3\x82\x93</span>\xe6\x97\xa5\xe6\x9c\xac".force_encoding('UTF-8')
|
|
| 347 | 340 |
with_settings :repositories_encodings => '' do |
| 348 | 341 |
diff = Redmine::UnifiedDiff.new( |
| 349 | 342 |
read_diff_fixture('issue-13644-2.diff'), :type => 'sbs')
|
| 350 | 343 |
assert_equal 1, diff.size |
| 351 | 344 |
assert_equal 3, diff.first.size |
| 352 |
assert_equal ja1, diff.first[1].html_line_left
|
|
| 353 |
assert_equal ja2, diff.first[1].html_line_right
|
|
| 345 |
assert_equal '<span></span>日本', diff.first[1].html_line_left
|
|
| 346 |
assert_equal '<span>にっぽん</span>日本', diff.first[1].html_line_right
|
|
| 354 | 347 |
end |
| 355 | 348 |
end |
| 356 | 349 | |
| 357 | 350 |
def test_offset_range_japanese_3 |
| 358 | 351 |
# UTF-8 The 1st byte differs. |
| 359 |
ja1 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xa8\x98</span>".force_encoding('UTF-8')
|
|
| 360 |
ja2 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe5\xa8\x98</span>".force_encoding('UTF-8')
|
|
| 361 | 352 |
with_settings :repositories_encodings => '' do |
| 362 | 353 |
diff = Redmine::UnifiedDiff.new( |
| 363 | 354 |
read_diff_fixture('issue-13644-3.diff'), :type => 'sbs')
|
| 364 | 355 |
assert_equal 1, diff.size |
| 365 | 356 |
assert_equal 3, diff.first.size |
| 366 |
assert_equal ja1, diff.first[1].html_line_left
|
|
| 367 |
assert_equal ja2, diff.first[1].html_line_right
|
|
| 357 |
assert_equal '日本<span>記</span>', diff.first[1].html_line_left
|
|
| 358 |
assert_equal '日本<span>娘</span>', diff.first[1].html_line_right
|
|
| 368 | 359 |
end |
| 369 | 360 |
end |
| 370 | 361 | |
| 371 | 362 |
def test_offset_range_japanese_4 |
| 372 |
# UTF-8 The 2nd byte differs. |
|
| 373 |
ja1 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xa8\x98</span>".force_encoding('UTF-8')
|
|
| 374 |
ja2 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xaa\x98</span>".force_encoding('UTF-8')
|
|
| 363 |
# UTF-8 The 2nd byte differs. |
|
| 375 | 364 |
with_settings :repositories_encodings => '' do |
| 376 | 365 |
diff = Redmine::UnifiedDiff.new( |
| 377 | 366 |
read_diff_fixture('issue-13644-4.diff'), :type => 'sbs')
|
| 378 | 367 |
assert_equal 1, diff.size |
| 379 | 368 |
assert_equal 3, diff.first.size |
| 380 |
assert_equal ja1, diff.first[1].html_line_left
|
|
| 381 |
assert_equal ja2, diff.first[1].html_line_right
|
|
| 369 |
assert_equal '日本<span>記</span>', diff.first[1].html_line_left
|
|
| 370 |
assert_equal '日本<span>誘</span>', diff.first[1].html_line_right
|
|
| 382 | 371 |
end |
| 383 | 372 |
end |
| 384 | 373 | |
| 385 | 374 |
def test_offset_range_japanese_5 |
| 386 |
# UTF-8 The 2nd byte differs. |
|
| 387 |
ja1 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xa8\x98</span>ok".force_encoding('UTF-8')
|
|
| 388 |
ja2 = "\xe6\x97\xa5\xe6\x9c\xac<span>\xe8\xaa\x98</span>ok".force_encoding('UTF-8')
|
|
| 375 |
# UTF-8 The 2nd byte differs. |
|
| 389 | 376 |
with_settings :repositories_encodings => '' do |
| 390 | 377 |
diff = Redmine::UnifiedDiff.new( |
| 391 | 378 |
read_diff_fixture('issue-13644-5.diff'), :type => 'sbs')
|
| 392 | 379 |
assert_equal 1, diff.size |
| 393 | 380 |
assert_equal 3, diff.first.size |
| 394 |
assert_equal ja1, diff.first[1].html_line_left
|
|
| 395 |
assert_equal ja2, diff.first[1].html_line_right
|
|
| 381 |
assert_equal '日本<span>記</span>ok', diff.first[1].html_line_left
|
|
| 382 |
assert_equal '日本<span>誘</span>ok', diff.first[1].html_line_right
|
|
| 396 | 383 |
end |
| 397 | 384 |
end |
| 398 | 385 | |
| test/unit/mail_handler_test.rb | ||
|---|---|---|
| 515 | 515 |
end |
| 516 | 516 | |
| 517 | 517 |
def test_add_issue_with_japanese_keywords |
| 518 |
ja_dev = "\xe9\x96\x8b\xe7\x99\xba".force_encoding('UTF-8')
|
|
| 519 |
tracker = Tracker.generate!(:name => ja_dev) |
|
| 518 |
tracker = Tracker.generate!(:name => '開発') |
|
| 520 | 519 |
Project.find(1).trackers << tracker |
| 521 | 520 |
issue = submit_email( |
| 522 | 521 |
'japanese_keywords_iso_2022_jp.eml', |
| ... | ... | |
| 550 | 549 |
) |
| 551 | 550 |
assert_kind_of Issue, issue |
| 552 | 551 |
assert_equal 1, issue.attachments.size |
| 553 |
ja = "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88.txt".force_encoding('UTF-8')
|
|
| 554 | 552 |
attachment = issue.attachments.first |
| 555 |
assert_equal ja, attachment.filename
|
|
| 553 |
assert_equal 'テスト.txt', attachment.filename
|
|
| 556 | 554 |
assert_equal 5, attachment.filesize |
| 557 | 555 |
assert File.exist?(attachment.diskfile) |
| 558 | 556 |
assert_equal 5, File.size(attachment.diskfile) |
| ... | ... | |
| 565 | 563 |
:issue => {:project => 'ecookbook'}
|
| 566 | 564 |
) |
| 567 | 565 |
assert_kind_of Issue, issue |
| 568 |
description = "\xD0\x97\xD0\xB4\xD1\x80\xD0\xB0\xD0\xB2\xD1\x81\xD1\x82\xD0\xB2\xD1\x83\xD0\xB9\xD1\x82\xD0\xB5?".force_encoding('UTF-8')
|
|
| 569 |
assert_equal description, issue.description |
|
| 566 |
assert_equal 'Здравствуйте?', issue.description |
|
| 570 | 567 |
end |
| 571 | 568 | |
| 572 | 569 |
def test_gmail_with_attachment_ja |
| ... | ... | |
| 576 | 573 |
) |
| 577 | 574 |
assert_kind_of Issue, issue |
| 578 | 575 |
assert_equal 1, issue.attachments.size |
| 579 |
ja = "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88.txt".force_encoding('UTF-8')
|
|
| 580 | 576 |
attachment = issue.attachments.first |
| 581 |
assert_equal ja, attachment.filename
|
|
| 577 |
assert_equal 'テスト.txt', attachment.filename
|
|
| 582 | 578 |
assert_equal 5, attachment.filesize |
| 583 | 579 |
assert File.exist?(attachment.diskfile) |
| 584 | 580 |
assert_equal 5, File.size(attachment.diskfile) |
| ... | ... | |
| 592 | 588 |
) |
| 593 | 589 |
assert_kind_of Issue, issue |
| 594 | 590 |
assert_equal 1, issue.attachments.size |
| 595 |
u = "".force_encoding('UTF-8')
|
|
| 596 |
u1 = "\xc3\x84\xc3\xa4\xc3\x96\xc3\xb6\xc3\x9c\xc3\xbc".force_encoding('UTF-8')
|
|
| 591 |
u = +''
|
|
| 592 |
u1 = 'ÄäÖöÜü'
|
|
| 597 | 593 |
11.times { u << u1 }
|
| 598 | 594 |
attachment = issue.attachments.first |
| 599 | 595 |
assert_equal "#{u}.png", attachment.filename
|
| ... | ... | |
| 610 | 606 |
) |
| 611 | 607 |
assert_kind_of Issue, issue |
| 612 | 608 |
assert_equal 1, issue.attachments.size |
| 613 |
u = "".force_encoding('UTF-8')
|
|
| 614 |
u1 = "\xc3\x84\xc3\xa4\xc3\x96\xc3\xb6\xc3\x9c\xc3\xbc".force_encoding('UTF-8')
|
|
| 609 |
u = +''
|
|
| 610 |
u1 = 'ÄäÖöÜü'
|
|
| 615 | 611 |
11.times { u << u1 }
|
| 616 | 612 |
attachment = issue.attachments.first |
| 617 | 613 |
assert_equal "#{u}.txt", attachment.filename
|
| ... | ... | |
| 633 | 629 |
assert_equal 19, attachment.filesize |
| 634 | 630 |
assert File.exist?(attachment.diskfile) |
| 635 | 631 |
assert_equal 19, File.size(attachment.diskfile) |
| 636 |
content = "p\xF8\xEDli\xB9 \xBEluou\xE8k\xFD k\xF9n".force_encoding('CP852')
|
|
| 632 |
content = (+"p\xF8\xEDli\xB9 \xBEluou\xE8k\xFD k\xF9n").force_encoding('CP852')
|
|
| 637 | 633 |
assert_equal content, File.read(attachment.diskfile).force_encoding('CP852')
|
| 638 | 634 |
end |
| 639 | 635 | |
| ... | ... | |
| 686 | 682 |
'subject_as_iso-8859-1.eml', |
| 687 | 683 |
:issue => {:project => 'ecookbook'}
|
| 688 | 684 |
) |
| 689 |
str = "Testmail from Webmail: \xc3\xa4 \xc3\xb6 \xc3\xbc...".force_encoding('UTF-8')
|
|
| 690 | 685 |
assert_kind_of Issue, issue |
| 691 |
assert_equal str, issue.subject
|
|
| 686 |
assert_equal 'Testmail from Webmail: ä ö ü...', issue.subject
|
|
| 692 | 687 |
end |
| 693 | 688 | |
| 694 | 689 |
def test_quoted_printable_utf8 |
| ... | ... | |
| 697 | 692 |
:issue => {:project => 'ecookbook'}
|
| 698 | 693 |
) |
| 699 | 694 |
assert_kind_of Issue, issue |
| 700 |
str = "Freundliche Gr\xc3\xbcsse".force_encoding('UTF-8')
|
|
| 701 |
assert_equal str, issue.description |
|
| 695 |
assert_equal 'Freundliche Grüsse', issue.description |
|
| 702 | 696 |
end |
| 703 | 697 | |
| 704 | 698 |
def test_gmail_iso8859_2 |
| ... | ... | |
| 707 | 701 |
:issue => {:project => 'ecookbook'}
|
| 708 | 702 |
) |
| 709 | 703 |
assert_kind_of Issue, issue |
| 710 |
str = "Na \xc5\xa1triku se su\xc5\xa1i \xc5\xa1osi\xc4\x87.".force_encoding('UTF-8')
|
|
| 711 |
assert issue.description.include?(str) |
|
| 704 |
assert issue.description.include?('Na štriku se suši šosić.')
|
|
| 712 | 705 |
end |
| 713 | 706 | |
| 714 | 707 |
def test_add_issue_with_japanese_subject |
| ... | ... | |
| 717 | 710 |
:issue => {:project => 'ecookbook'}
|
| 718 | 711 |
) |
| 719 | 712 |
assert_kind_of Issue, issue |
| 720 |
ja = "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88".force_encoding('UTF-8')
|
|
| 721 |
assert_equal ja, issue.subject |
|
| 713 |
assert_equal 'テスト', issue.subject |
|
| 722 | 714 |
end |
| 723 | 715 | |
| 724 | 716 |
def test_add_issue_with_korean_body |
| 725 |
# Make sure mail bodies with a charset unknown to Ruby |
|
| 726 |
# but known to the Mail gem 2.5.4 are handled correctly |
|
| 727 |
kr = "\xEA\xB3\xA0\xEB\xA7\x99\xEC\x8A\xB5\xEB\x8B\x88\xEB\x8B\xA4.".force_encoding('UTF-8')
|
|
| 728 | 717 |
issue = submit_email( |
| 729 | 718 |
'body_ks_c_5601-1987.eml', |
| 730 | 719 |
:issue => {:project => 'ecookbook'}
|
| 731 | 720 |
) |
| 732 | 721 |
assert_kind_of Issue, issue |
| 733 |
assert_equal kr, issue.description
|
|
| 722 |
assert_equal '고맙습니다.', issue.description
|
|
| 734 | 723 |
end |
| 735 | 724 | |
| 736 | 725 |
def test_add_issue_with_no_subject_header |
| ... | ... | |
| 748 | 737 |
:issue => {:project => 'ecookbook'}
|
| 749 | 738 |
) |
| 750 | 739 |
assert_kind_of Issue, issue |
| 751 |
ja = "Re: \xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88".force_encoding('UTF-8')
|
|
| 752 |
assert_equal ja, issue.subject |
|
| 740 |
assert_equal 'Re: テスト', issue.subject |
|
| 753 | 741 |
end |
| 754 | 742 | |
| 755 | 743 |
def test_add_issue_with_iso_2022_jp_ms_subject |
| ... | ... | |
| 1187 | 1175 |
end |
| 1188 | 1176 |
user = User.order('id DESC').first
|
| 1189 | 1177 |
assert_equal "foo@example.org", user.mail |
| 1190 |
str1 = "\xc3\x84\xc3\xa4".force_encoding('UTF-8')
|
|
| 1191 |
str2 = "\xc3\x96\xc3\xb6".force_encoding('UTF-8')
|
|
| 1192 |
assert_equal str1, user.firstname |
|
| 1193 |
assert_equal str2, user.lastname |
|
| 1178 |
assert_equal 'Ää', user.firstname |
|
| 1179 |
assert_equal 'Öö', user.lastname |
|
| 1194 | 1180 |
end |
| 1195 | 1181 | |
| 1196 | 1182 |
def test_new_user_with_fullname_in_parentheses |
| test/unit/member_test.rb | ||
|---|---|---|
| 88 | 88 |
member = Member.new(:project_id => 1, :user_id => user.id, :role_ids => []) |
| 89 | 89 |
assert !member.save |
| 90 | 90 |
assert_include I18n.translate('activerecord.errors.messages.empty'), member.errors[:role]
|
| 91 |
assert_equal "R\xc3\xb4le doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8'),
|
|
| 91 |
assert_equal 'Rôle doit être renseigné(e)',
|
|
| 92 | 92 |
[member.errors.full_messages].flatten.join |
| 93 | 93 |
end |
| 94 | 94 | |
| test/unit/query_test.rb | ||
|---|---|---|
| 1830 | 1830 |
def test_label_for_fr |
| 1831 | 1831 |
set_language_if_valid 'fr' |
| 1832 | 1832 |
q = IssueQuery.new |
| 1833 |
assert_equal "Assign\xc3\xa9 \xc3\xa0".force_encoding('UTF-8'), q.label_for('assigned_to_id')
|
|
| 1833 |
assert_equal 'Assigné à', q.label_for('assigned_to_id')
|
|
| 1834 | 1834 |
end |
| 1835 | 1835 | |
| 1836 | 1836 |
def test_editable_by |
| test/unit/repository_bazaar_test.rb | ||
|---|---|---|
| 46 | 46 |
RUN_LATIN1_OUTPUT_TEST = (RUBY_PLATFORM != 'java' && |
| 47 | 47 |
Encoding.locale_charmap == "ISO-8859-1") |
| 48 | 48 | |
| 49 |
CHAR_1_UTF8_HEX = "\xc3\x9c".force_encoding('UTF-8')
|
|
| 50 |
CHAR_1_LATIN1_HEX = "\xdc".force_encoding('ASCII-8BIT')
|
|
| 49 |
CHAR_1_UTF8_HEX = 'Ü'
|
|
| 50 |
CHAR_1_LATIN1_HEX = (+"\xdc").force_encoding('ASCII-8BIT')
|
|
| 51 | 51 | |
| 52 | 52 |
def setup |
| 53 | 53 |
User.current = nil |
| ... | ... | |
| 72 | 72 | |
| 73 | 73 |
def test_blank_path_to_repository_error_message_fr |
| 74 | 74 |
set_language_if_valid 'fr' |
| 75 |
str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 76 | 75 |
repo = Repository::Bazaar.new( |
| 77 | 76 |
:project => @project, |
| 78 | 77 |
:url => "", |
| ... | ... | |
| 80 | 79 |
:log_encoding => 'UTF-8' |
| 81 | 80 |
) |
| 82 | 81 |
assert !repo.save |
| 83 |
assert_include str, repo.errors.full_messages
|
|
| 82 |
assert_include 'Chemin du dépôt doit être renseigné(e)', repo.errors.full_messages
|
|
| 84 | 83 |
end |
| 85 | 84 | |
| 86 | 85 |
if File.directory?(REPOSITORY_PATH_TRUNK) |
| test/unit/repository_cvs_test.rb | ||
|---|---|---|
| 55 | 55 | |
| 56 | 56 |
def test_blank_module_error_message_fr |
| 57 | 57 |
set_language_if_valid 'fr' |
| 58 |
str = "Module doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 59 | 58 |
repo = Repository::Cvs.new( |
| 60 | 59 |
:project => @project, |
| 61 | 60 |
:identifier => 'test', |
| ... | ... | |
| 65 | 64 |
:root_url => REPOSITORY_PATH |
| 66 | 65 |
) |
| 67 | 66 |
assert !repo.save |
| 68 |
assert_include str, repo.errors.full_messages
|
|
| 67 |
assert_include 'Module doit être renseigné(e)', repo.errors.full_messages
|
|
| 69 | 68 |
end |
| 70 | 69 | |
| 71 | 70 |
def test_blank_cvsroot_error_message |
| ... | ... | |
| 83 | 82 | |
| 84 | 83 |
def test_blank_cvsroot_error_message_fr |
| 85 | 84 |
set_language_if_valid 'fr' |
| 86 |
str = "CVSROOT doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 87 | 85 |
repo = Repository::Cvs.new( |
| 88 | 86 |
:project => @project, |
| 89 | 87 |
:identifier => 'test', |
| ... | ... | |
| 93 | 91 |
:root_url => '' |
| 94 | 92 |
) |
| 95 | 93 |
assert !repo.save |
| 96 |
assert_include str, repo.errors.full_messages
|
|
| 94 |
assert_include 'CVSROOT doit être renseigné(e)', repo.errors.full_messages
|
|
| 97 | 95 |
end |
| 98 | 96 | |
| 99 | 97 |
def test_root_url_should_be_validated_against_regexp_set_in_configuration |
| test/unit/repository_filesystem_test.rb | ||
|---|---|---|
| 50 | 50 | |
| 51 | 51 |
def test_blank_root_directory_error_message_fr |
| 52 | 52 |
set_language_if_valid 'fr' |
| 53 |
str = "R\xc3\xa9pertoire racine doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 54 | 53 |
repo = Repository::Filesystem.new( |
| 55 | 54 |
:project => @project, |
| 56 | 55 |
:url => "", |
| ... | ... | |
| 58 | 57 |
:path_encoding => '' |
| 59 | 58 |
) |
| 60 | 59 |
assert !repo.save |
| 61 |
assert_include str, repo.errors.full_messages
|
|
| 60 |
assert_include 'Répertoire racine doit être renseigné(e)', repo.errors.full_messages
|
|
| 62 | 61 |
end |
| 63 | 62 | |
| 64 | 63 |
if File.directory?(REPOSITORY_PATH) |
| test/unit/repository_git_test.rb | ||
|---|---|---|
| 30 | 30 |
NUM_REV = 28 |
| 31 | 31 |
NUM_HEAD = 6 |
| 32 | 32 | |
| 33 |
FELIX_HEX = "Felix Sch\xC3\xA4fer".force_encoding('UTF-8')
|
|
| 34 |
CHAR_1_HEX = "\xc3\x9c".force_encoding('UTF-8')
|
|
| 35 | ||
| 36 | 33 |
## Git, Mercurial and CVS path encodings are binary. |
| 37 | 34 |
## Subversion supports URL encoding for path. |
| 38 | 35 |
## Redmine Mercurial adapter and extension use URL encoding. |
| ... | ... | |
| 96 | 93 | |
| 97 | 94 |
def test_blank_path_to_repository_error_message_fr |
| 98 | 95 |
set_language_if_valid 'fr' |
| 99 |
str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 100 | 96 |
repo = Repository::Git.new( |
| 101 | 97 |
:project => @project, |
| 102 | 98 |
:url => "", |
| ... | ... | |
| 104 | 100 |
:path_encoding => '' |
| 105 | 101 |
) |
| 106 | 102 |
assert !repo.save |
| 107 |
assert_include str, repo.errors.full_messages
|
|
| 103 |
assert_include 'Chemin du dépôt doit être renseigné(e)', repo.errors.full_messages
|
|
| 108 | 104 |
end |
| 109 | 105 | |
| 110 | 106 |
if File.directory?(REPOSITORY_PATH) |
| ... | ... | |
| 470 | 466 |
else |
| 471 | 467 |
# latin-1 encoding path |
| 472 | 468 |
changesets = @repository.latest_changesets( |
| 473 |
"latin-1-dir/test-#{CHAR_1_HEX}-2.txt", '64f1f3e89')
|
|
| 469 |
'latin-1-dir/test-Ü-2.txt', '64f1f3e89')
|
|
| 474 | 470 |
assert_equal [ |
| 475 | 471 |
'64f1f3e89ad1cb57976ff0ad99a107012ba3481d', |
| 476 | 472 |
'4fc55c43bf3d3dc2efb66145365ddc17639ce81e', |
| 477 | 473 |
], changesets.collect(&:revision) |
| 478 | 474 | |
| 479 | 475 |
changesets = @repository.latest_changesets( |
| 480 |
"latin-1-dir/test-#{CHAR_1_HEX}-2.txt", '64f1f3e89', 1)
|
|
| 476 |
'latin-1-dir/test-Ü-2.txt', '64f1f3e89', 1)
|
|
| 481 | 477 |
assert_equal [ |
| 482 | 478 |
'64f1f3e89ad1cb57976ff0ad99a107012ba3481d', |
| 483 | 479 |
], changesets.collect(&:revision) |
| ... | ... | |
| 495 | 491 |
@project.reload |
| 496 | 492 |
assert_equal NUM_REV, @repository.changesets.count |
| 497 | 493 |
changesets = @repository.latest_changesets( |
| 498 |
"latin-1-dir/test-#{CHAR_1_HEX}-subdir", '1ca7f5ed')
|
|
| 494 |
'latin-1-dir/test-Ü-subdir', '1ca7f5ed')
|
|
| 499 | 495 |
assert_equal [ |
| 500 | 496 |
'1ca7f5ed374f3cb31a93ae5215c2e25cc6ec5127', |
| 501 | 497 |
], changesets.collect(&:revision) |
| ... | ... | |
| 560 | 556 |
assert_equal NUM_REV, @repository.changesets.count |
| 561 | 557 |
c = @repository.changesets.find_by_revision( |
| 562 | 558 |
'ed5bb786bbda2dee66a2d50faf51429dbc043a7b') |
| 563 |
assert_equal "#{FELIX_HEX} <felix@fachschaften.org>", c.committer
|
|
| 559 |
assert_equal 'Felix Schäfer <felix@fachschaften.org>', c.committer
|
|
| 564 | 560 |
end |
| 565 | 561 | |
| 566 | 562 |
def test_previous |
| test/unit/repository_mercurial_test.rb | ||
|---|---|---|
| 27 | 27 |
REPOSITORY_PATH = Rails.root.join('tmp/test/mercurial_repository').to_s
|
| 28 | 28 |
NUM_REV = 34 |
| 29 | 29 | |
| 30 |
CHAR_1_HEX = "\xc3\x9c".force_encoding('UTF-8')
|
|
| 31 |
BRANCH_CHAR_1 = "branch-#{CHAR_1_HEX}-01".force_encoding('UTF-8')
|
|
| 32 | ||
| 33 | 30 |
def setup |
| 34 | 31 |
User.current = nil |
| 35 | 32 |
@project = Project.find(3) |
| ... | ... | |
| 54 | 51 | |
| 55 | 52 |
def test_blank_path_to_repository_error_message_fr |
| 56 | 53 |
set_language_if_valid 'fr' |
| 57 |
str = "Chemin du d\xc3\xa9p\xc3\xb4t doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 58 | 54 |
repo = Repository::Mercurial.new( |
| 59 | 55 |
:project => @project, |
| 60 | 56 |
:url => "", |
| ... | ... | |
| 62 | 58 |
:path_encoding => '' |
| 63 | 59 |
) |
| 64 | 60 |
assert !repo.save |
| 65 |
assert_include str, repo.errors.full_messages
|
|
| 61 |
assert_include 'Chemin du dépôt doit être renseigné(e)', repo.errors.full_messages
|
|
| 66 | 62 |
end |
| 67 | 63 | |
| 68 | 64 |
if File.directory?(REPOSITORY_PATH) |
| ... | ... | |
| 356 | 352 |
assert_equal NUM_REV, @repository.changesets.count |
| 357 | 353 | |
| 358 | 354 |
if @repository.scm.class.client_version_above?([1, 6]) |
| 359 |
changesets = @repository.latest_changesets('', BRANCH_CHAR_1)
|
|
| 355 |
changesets = @repository.latest_changesets('', 'branch-Ü-01')
|
|
| 360 | 356 |
assert_equal %w|27 26|, changesets.collect(&:revision) |
| 361 | 357 |
end |
| 362 | 358 | |
| 363 |
changesets = @repository.latest_changesets("latin-1-dir/test-#{CHAR_1_HEX}-subdir", BRANCH_CHAR_1)
|
|
| 359 |
changesets = @repository.latest_changesets('latin-1-dir/test-Ü-subdir', 'branch-Ü-01')
|
|
| 364 | 360 |
assert_equal %w|27|, changesets.collect(&:revision) |
| 365 | 361 |
end |
| 366 | 362 | |
| ... | ... | |
| 423 | 419 |
scmid3 = scmid_for_assert(hex3, is_short_scmid) |
| 424 | 420 |
assert_equal 1, c3.size |
| 425 | 421 |
assert_equal 'A', c3[0].action |
| 426 |
assert_equal "/latin-1-dir/test-#{CHAR_1_HEX}-1.txt", c3[0].path
|
|
| 427 |
assert_equal "/latin-1-dir/test-#{CHAR_1_HEX}.txt", c3[0].from_path
|
|
| 422 |
assert_equal '/latin-1-dir/test-Ü-1.txt', c3[0].path
|
|
| 423 |
assert_equal '/latin-1-dir/test-Ü.txt', c3[0].from_path
|
|
| 428 | 424 |
assert_equal scmid3, c3[0].from_revision |
| 429 | 425 |
end |
| 430 | 426 |
private :assert_copied_files |
| test/unit/repository_subversion_test.rb | ||
|---|---|---|
| 236 | 236 | |
| 237 | 237 |
def test_log_encoding_ignore_setting |
| 238 | 238 |
with_settings :commit_logs_encoding => 'windows-1252' do |
| 239 |
s2 = "\xc3\x82\xc2\x80".force_encoding('UTF-8')
|
|
| 239 |
s2 = "Â\u0080"
|
|
| 240 | 240 |
c = Changeset.new(:repository => @repository, |
| 241 | 241 |
:comments => s2, |
| 242 | 242 |
:revision => '123', |
| test/unit/repository_test.rb | ||
|---|---|---|
| 60 | 60 | |
| 61 | 61 |
def test_blank_log_encoding_error_message_fr |
| 62 | 62 |
set_language_if_valid 'fr' |
| 63 |
str = "Encodage des messages de commit doit \xc3\xaatre renseign\xc3\xa9(e)".force_encoding('UTF-8')
|
|
| 64 | 63 |
repo = Repository::Bazaar.new( |
| 65 | 64 |
:project => Project.find(3), |
| 66 | 65 |
:url => "/test" |
| 67 | 66 |
) |
| 68 | 67 |
assert !repo.save |
| 69 |
assert_include str, repo.errors.full_messages
|
|
| 68 |
assert_include 'Encodage des messages de commit doit être renseigné(e)', repo.errors.full_messages
|
|
| 70 | 69 |
end |
| 71 | 70 | |
| 72 | 71 |
def test_create |
| ... | ... | |
| 287 | 286 |
:url => '/foo/bar/baz' ) |
| 288 | 287 |
long_whitespace = " " |
| 289 | 288 |
expected_comment = "This is a loooooooooooooooooooooooooooong comment" |
| 290 |
comment = "#{expected_comment}#{long_whitespace}\n"
|
|
| 289 |
comment = +"#{expected_comment}#{long_whitespace}\n"
|
|
| 291 | 290 |
3.times {comment << "#{long_whitespace}\n"}
|
| 292 | 291 |
changeset = Changeset.new( |
| 293 | 292 |
:comments => comment, :commit_date => Time.now, |
| test/unit/wiki_test.rb | ||
|---|---|---|
| 82 | 82 |
end |
| 83 | 83 | |
| 84 | 84 |
def test_titleize |
| 85 |
ja_test = "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88".force_encoding('UTF-8')
|
|
| 85 |
ja_test = 'テスト'
|
|
| 86 | 86 |
assert_equal 'Page_title_with_CAPITALES', Wiki.titleize('page title with CAPITALES')
|
| 87 | 87 |
assert_equal ja_test, Wiki.titleize(ja_test) |
| 88 | 88 |
end |