From 96b6bdfb771426f8c545bc3e49c8b0de0085fb0f Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Sun, 12 May 2019 05:43:50 +0000 Subject: [PATCH] Test for r18158 (#22481). Patch by Go MAEDA. git-svn-id: http://svn.redmine.org/redmine/trunk@18159 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/fixtures/attachments.yml | 14 ++++++++++++ .../2019/05/190511141819_ecookbook-gantt.pdf | Bin 0 -> 31620 bytes .../functional/attachments_controller_test.rb | 10 +++++++++ test/unit/attachment_test.rb | 21 +++++++++++++----- 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 test/fixtures/files/2019/05/190511141819_ecookbook-gantt.pdf diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml index 5a6334565..ff126a8c6 100644 --- a/test/fixtures/attachments.yml +++ b/test/fixtures/attachments.yml @@ -295,3 +295,17 @@ attachments_022: author_id: 1 description: unknown type content_type: +attachments_023: + created_on: 2019-05-11 14:18:19 +09:00 + content_type: application/pdf + container_type: WikiPage + container_id: 1 + downloads: 0 + disk_filename: 190511141819_ecookbook-gantt.pdf + disk_directory: "2019/05" + digest: da9c52e79d9eee7d47b9ee5db477985c542ea683e9f23ed32db55e35ef99c479 + id: 23 + filesize: 31620 + filename: ecookbook-gantt.pdf + author_id: 2 + description: Gantt chart as of May 11 diff --git a/test/fixtures/files/2019/05/190511141819_ecookbook-gantt.pdf b/test/fixtures/files/2019/05/190511141819_ecookbook-gantt.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f489d0a1511260941257d1ea6096a0333fe53f94 GIT binary patch literal 31620 zcmdqIbyQr<(l?qw2np^Q+;w1Z5AN%0$~nX~lLnx+Zj*GkB!!?=hS-0zxnP?G&so-nLmB-uXjhvB2h%41ktwvE;} zliw6Q(lotfumy_KJDEPGG+IlwZ!AS_5`RW{f2pkC;`p>15hR?a95|4*dMj3~f*#nr zY{ntIBTPn8B;)8((>HF-J?5*6*zAftA6wY77pQdUa9zfdR1R-^Sz`zXaAe&%^$R$2 zcM!+R2P^Gf@$brReI^b~5o>%GUD2A+<5C@E=e9%pvAc>GPzz4`3fOhT6qUiQA{G#2 zY!*d0WHIjGA&u1zzWZRk&uE3L@`W{vqAUor2|&O41MVvMO@E-{Lk?+9ddlpNB$wzV zGsId8@~&<(9iARqeSIU-+=D1x8IW!N?CirBnam}g7x;Lhvvbxj?{0QLuF+H3cf}eV z`$^D;CwShCSbZt%>@k1o?p|Sa@RmrCV2vj@)rde{_-XCKq41ehMLYUkq*>8dA{=zL zK~7J!mF$-Y7H}8QuM@0vY*Qy)vl_}(@O^$QGot1wFEzX#b6K0)LvRKyb6W^3O9U6o zoIA%gJ&l@-O;NIt0}8K%jyW@wAGjD*k{MMrvdh1)OvdbjK6SpX2+(~`)B2tCQ)Ex= zZ?G5oSGeRlhzVM(q@^jthe!&oox$!5|AwvY33BO_phr5hkk@S33r^otC$u}?wtl^8 z)26%H%pem_)H%S32>H-&$=2|Td#a{d68$lugE<`gNZ#TiOAx4FFc=0+wi|L58iA6_x;erJqpTAQ$|=jF}&k7cgmVGo8a zYlxk*1lY;M(bC=-;s{&ru(Fb|Ev!cL`6I?8

6=8{0V{0Ysflz;@2$>}+goNPy=y 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%0D<(EJ|{hUW)Bi43Z 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 N|11-ejH>L}{{ss5-mm}w literal 0 HcmV?d00001 diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb index af5421ecc..67cdb4933 100644 --- a/test/functional/attachments_controller_test.rb +++ b/test/functional/attachments_controller_test.rb @@ -404,6 +404,16 @@ class AttachmentsControllerTest < Redmine::ControllerTest assert_response 304 end + def test_thumbnail_for_pdf_should_be_png + Attachment.clear_thumbnails + @request.session[:user_id] = 2 + get :thumbnail, :params => { + :id => 23 # ecookbook-gantt.pdf + } + assert_response :success + assert_equal 'image/png', response.content_type + end + def test_thumbnail_should_not_exceed_maximum_size Redmine::Thumbnail.expects(:generate).with {|source, target, size| size == 800} diff --git a/test/unit/attachment_test.rb b/test/unit/attachment_test.rb index 384ee1fd7..180439a16 100644 --- a/test/unit/attachment_test.rb +++ b/test/unit/attachment_test.rb @@ -425,13 +425,24 @@ class AttachmentTest < ActiveSupport::TestCase if convert_installed? def test_thumbnail_should_generate_the_thumbnail set_fixtures_attachments_directory - attachment = Attachment.find(16) Attachment.clear_thumbnails + to_test = [] + # image/png + to_test << Attachment.find(16) + # application/pdf + if Redmine::Thumbnail.gs_available? + to_test << Attachment.find(23) + else + puts '(Ghostscript not available)' + end - assert_difference "Dir.glob(File.join(Attachment.thumbnails_storage_path, '*.thumb')).size" do - thumbnail = attachment.thumbnail - assert_equal "8e0294de2441577c529f170b6fb8f638_2654_100.thumb", File.basename(thumbnail) - assert File.exists?(thumbnail) + assert_difference "Dir.glob(File.join(Attachment.thumbnails_storage_path, '*.thumb')).size", to_test.size do + to_test.each do |attachment| + thumbnail = attachment.thumbnail + thumbnail_name = "#{attachment.digest}_#{attachment.filesize}_#{Setting.thumbnails_size}.thumb" + assert_equal thumbnail_name, File.basename(thumbnail) + assert File.exist?(thumbnail) + end end end