]> source.dussan.org Git - redmine.git/commitdiff
attachment: add a functional test to show invalid UTF-8 text file (#2371)
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 17 Nov 2011 07:01:40 +0000 (07:01 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 17 Nov 2011 07:01:40 +0000 (07:01 +0000)
Stripping invalid UTF-8 is Redmine 1.2 behaviour.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7824 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/fixtures/files/iso8859-1.txt [new file with mode: 0644]
test/functional/attachments_controller_test.rb

diff --git a/test/fixtures/files/iso8859-1.txt b/test/fixtures/files/iso8859-1.txt
new file mode 100644 (file)
index 0000000..9bade6a
--- /dev/null
@@ -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       
index 514cc107ac9033ceff5fd19ba526850423a7fad2..034a090a6e843e6c77fe1f05e56f997226b27158 100644 (file)
@@ -91,6 +91,23 @@ class AttachmentsControllerTest < ActionController::TestCase
                :sibling => { :tag => 'td', :content => /#{str_japanese}/ }
   end
 
+  def test_show_text_file_should_strip_non_utf8_content
+    a = Attachment.new(:container => Issue.find(1),
+                       :file => uploaded_test_file("iso8859-1.txt", "text/plain"),
+                       :author => User.find(1))
+    assert a.save
+    assert_equal 'iso8859-1.txt', a.filename
+
+    get :show, :id => a.id
+    assert_response :success
+    assert_template 'file'
+    assert_equal 'text/html', @response.content_type
+    assert_tag :tag => 'th',
+               :content => '7',
+               :attributes => { :class => 'line-num' },
+               :sibling => { :tag => 'td', :content => /Demande cre avec succs/ }
+  end
+
   def test_show_text_file_should_send_if_too_big
     Setting.file_max_size_displayed = 512
     Attachment.find(4).update_attribute :filesize, 754.kilobyte