|
|
@@ -188,4 +188,52 @@ class TimeEntryReportsControllerTest < ActionController::TestCase |
|
|
|
# Total row |
|
|
|
assert_equal "#{str_big5} #{user.lastname},7.30,7.30", lines[1] |
|
|
|
end |
|
|
|
|
|
|
|
def test_csv_cannot_convert_should_be_replaced_big_5 |
|
|
|
Setting.default_language = "zh-TW" |
|
|
|
str_utf8 = "\xe4\xbb\xa5\xe5\x86\x85" |
|
|
|
if str_utf8.respond_to?(:force_encoding) |
|
|
|
str_utf8.force_encoding('UTF-8') |
|
|
|
end |
|
|
|
user = User.find_by_id(3) |
|
|
|
user.firstname = str_utf8 |
|
|
|
user.lastname = "test-lastname" |
|
|
|
assert user.save |
|
|
|
comments = "test_replaced" |
|
|
|
te1 = TimeEntry.create(:spent_on => '2011-11-11', |
|
|
|
:hours => 7.3, |
|
|
|
:project => Project.find(1), |
|
|
|
:user => user, |
|
|
|
:activity => TimeEntryActivity.find_by_name('Design'), |
|
|
|
:comments => comments) |
|
|
|
|
|
|
|
te2 = TimeEntry.find_by_comments(comments) |
|
|
|
assert_not_nil te2 |
|
|
|
assert_equal 7.3, te2.hours |
|
|
|
assert_equal 3, te2.user_id |
|
|
|
|
|
|
|
get :report, :project_id => 1, :columns => 'day', |
|
|
|
:from => "2011-11-11", :to => "2011-11-11", |
|
|
|
:criterias => ["member"], :format => "csv" |
|
|
|
assert_response :success |
|
|
|
assert_equal 'text/csv', @response.content_type |
|
|
|
lines = @response.body.chomp.split("\n") |
|
|
|
# Headers |
|
|
|
s1 = "\xa6\xa8\xad\xfb,2011-11-11,\xc1`\xadp" |
|
|
|
if s1.respond_to?(:force_encoding) |
|
|
|
s1.force_encoding('Big5') |
|
|
|
end |
|
|
|
assert_equal s1, lines.first |
|
|
|
# Total row |
|
|
|
s2 = "" |
|
|
|
if s2.respond_to?(:force_encoding) |
|
|
|
s2 = "\xa5H?" |
|
|
|
s2.force_encoding('Big5') |
|
|
|
elsif RUBY_PLATFORM == 'java' |
|
|
|
s2 = "??" |
|
|
|
else |
|
|
|
s2 = "\xa5H???" |
|
|
|
end |
|
|
|
assert_equal "#{s2} #{user.lastname},7.30,7.30", lines[1] |
|
|
|
end |
|
|
|
end |