From 488285e12321fc590dee0235470cfb12d77a3432 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 1 Jan 2011 13:40:36 +0000 Subject: Strip non utf8 content when displaying diff (ruby1.9 compatibility). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4604 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/fixtures/attachments.yml | 16 ++++++++++-- test/fixtures/files/060719210727_changeset.diff | 13 ---------- .../files/060719210727_changeset_iso8859-1.diff | 13 ++++++++++ .../files/060719210727_changeset_utf8.diff | 13 ++++++++++ test/functional/attachments_controller_test.rb | 29 +++++++++++++++++++--- 5 files changed, 66 insertions(+), 18 deletions(-) delete mode 100644 test/fixtures/files/060719210727_changeset.diff create mode 100644 test/fixtures/files/060719210727_changeset_iso8859-1.diff create mode 100644 test/fixtures/files/060719210727_changeset_utf8.diff (limited to 'test') diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml index 487ce5aa9..bd4a86ac6 100644 --- a/test/fixtures/attachments.yml +++ b/test/fixtures/attachments.yml @@ -54,11 +54,11 @@ attachments_005: container_type: Issue container_id: 3 downloads: 0 - disk_filename: 060719210727_changeset.diff + disk_filename: 060719210727_changeset_iso8859-1.diff digest: b91e08d0cf966d5c6ff411bd8c4cc3a2 id: 5 filesize: 687 - filename: changeset.diff + filename: changeset_iso8859-1.diff author_id: 2 content_type: text/x-diff attachments_006: @@ -157,3 +157,15 @@ attachments_013: filename: foo.zip author_id: 2 content_type: application/octet-stream +attachments_014: + created_on: 2006-07-19 21:07:27 +02:00 + container_type: Issue + container_id: 3 + downloads: 0 + disk_filename: 060719210727_changeset_utf8.diff + digest: b91e08d0cf966d5c6ff411bd8c4cc3a2 + id: 14 + filesize: 687 + filename: changeset_utf8.diff + author_id: 2 + content_type: text/x-diff diff --git a/test/fixtures/files/060719210727_changeset.diff b/test/fixtures/files/060719210727_changeset.diff deleted file mode 100644 index af2c2068d..000000000 --- a/test/fixtures/files/060719210727_changeset.diff +++ /dev/null @@ -1,13 +0,0 @@ -Index: trunk/app/controllers/issues_controller.rb -=================================================================== ---- trunk/app/controllers/issues_controller.rb (r‚vision 1483) -+++ trunk/app/controllers/issues_controller.rb (r‚vision 1484) -@@ -149,7 +149,7 @@ - attach_files(@issue, params[:attachments]) - flash[:notice] = l(:notice_successful_create) - Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added') -- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project -+ redirect_to :controller => 'issues', :action => 'show', :id => @issue - return - end - end diff --git a/test/fixtures/files/060719210727_changeset_iso8859-1.diff b/test/fixtures/files/060719210727_changeset_iso8859-1.diff new file mode 100644 index 000000000..9bade6ab9 --- /dev/null +++ b/test/fixtures/files/060719210727_changeset_iso8859-1.diff @@ -0,0 +1,13 @@ +Index: trunk/app/controllers/issues_controller.rb +=================================================================== +--- trunk/app/controllers/issues_controller.rb (révision 1483) ++++ trunk/app/controllers/issues_controller.rb (révision 1484) +@@ -149,7 +149,7 @@ + attach_files(@issue, params[:attachments]) + flash[:notice] = 'Demande créée avec succès' + Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added') +- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project ++ redirect_to :controller => 'issues', :action => 'show', :id => @issue + return + end + end diff --git a/test/fixtures/files/060719210727_changeset_utf8.diff b/test/fixtures/files/060719210727_changeset_utf8.diff new file mode 100644 index 000000000..e594f203a --- /dev/null +++ b/test/fixtures/files/060719210727_changeset_utf8.diff @@ -0,0 +1,13 @@ +Index: trunk/app/controllers/issues_controller.rb +=================================================================== +--- trunk/app/controllers/issues_controller.rb (révision 1483) ++++ trunk/app/controllers/issues_controller.rb (révision 1484) +@@ -149,7 +149,7 @@ + attach_files(@issue, params[:attachments]) + flash[:notice] = 'Demande créée avec succès' + Mailer.deliver_issue_add(@issue) if Setting.notified_events.include?('issue_added') +- redirect_to :controller => 'issues', :action => 'show', :id => @issue, :project_id => @project ++ redirect_to :controller => 'issues', :action => 'show', :id => @issue + return + end + end diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb index be452bd43..f7293ff9c 100644 --- a/test/functional/attachments_controller_test.rb +++ b/test/functional/attachments_controller_test.rb @@ -1,5 +1,7 @@ -# redMine - project management software -# Copyright (C) 2006-2008 Jean-Philippe Lang +# encoding: utf-8 +# +# Redmine - project management software +# Copyright (C) 2006-2011 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 @@ -35,10 +37,31 @@ class AttachmentsControllerTest < ActionController::TestCase end def test_show_diff - get :show, :id => 5 + get :show, :id => 14 # 060719210727_changeset_utf8.diff + assert_response :success + assert_template 'diff' + assert_equal 'text/html', @response.content_type + + assert_tag 'th', + :attributes => {:class => /filename/}, + :content => /issues_controller.rb\t\(révision 1484\)/ + assert_tag 'td', + :attributes => {:class => /line-code/}, + :content => /Demande créée avec succès/ + end + + def test_show_diff_should_strip_non_utf8_content + get :show, :id => 5 # 060719210727_changeset_iso8859-1.diff assert_response :success assert_template 'diff' assert_equal 'text/html', @response.content_type + + assert_tag 'th', + :attributes => {:class => /filename/}, + :content => /issues_controller.rb\t\(rvision 1484\)/ + assert_tag 'td', + :attributes => {:class => /line-code/}, + :content => /Demande cre avec succs/ end def test_show_text_file -- cgit v1.2.3