2017-09-28 16:43:37 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-10-22 13:16:59 -04:00
|
|
|
require "test_helper"
|
|
|
|
require "database/setup"
|
|
|
|
|
2018-02-05 20:33:35 -05:00
|
|
|
require "active_storage/previewer/poppler_pdf_previewer"
|
2017-09-28 16:43:37 -04:00
|
|
|
|
2018-02-05 20:33:35 -05:00
|
|
|
class ActiveStorage::Previewer::PopplerPDFPreviewerTest < ActiveSupport::TestCase
|
2017-09-28 16:43:37 -04:00
|
|
|
test "previewing a PDF document" do
|
2020-09-16 10:18:53 -04:00
|
|
|
blob = create_file_blob(filename: "report.pdf", content_type: "application/pdf")
|
|
|
|
|
|
|
|
ActiveStorage::Previewer::PopplerPDFPreviewer.new(blob).preview do |attachable|
|
2017-09-28 16:43:37 -04:00
|
|
|
assert_equal "image/png", attachable[:content_type]
|
|
|
|
assert_equal "report.png", attachable[:filename]
|
|
|
|
|
|
|
|
image = MiniMagick::Image.read(attachable[:io])
|
|
|
|
assert_equal 612, image.width
|
|
|
|
assert_equal 792, image.height
|
|
|
|
end
|
|
|
|
end
|
2020-09-16 10:18:53 -04:00
|
|
|
|
|
|
|
test "previewing a cropped PDF document" do
|
|
|
|
blob = create_file_blob(filename: "cropped.pdf", content_type: "application/pdf")
|
|
|
|
|
|
|
|
ActiveStorage::Previewer::PopplerPDFPreviewer.new(blob).preview do |attachable|
|
|
|
|
assert_equal "image/png", attachable[:content_type]
|
|
|
|
assert_equal "cropped.png", attachable[:filename]
|
|
|
|
|
|
|
|
image = MiniMagick::Image.read(attachable[:io])
|
|
|
|
assert_equal 430, image.width
|
|
|
|
assert_equal 145, image.height
|
|
|
|
end
|
|
|
|
end
|
2021-01-29 09:07:30 -05:00
|
|
|
|
|
|
|
test "previewing a PDF that can't be previewed" do
|
|
|
|
blob = create_file_blob(filename: "video.mp4", content_type: "application/pdf")
|
|
|
|
|
|
|
|
assert_raises ActiveStorage::PreviewError do
|
|
|
|
ActiveStorage::Previewer::PopplerPDFPreviewer.new(blob).preview
|
|
|
|
end
|
|
|
|
end
|
2017-09-28 16:43:37 -04:00
|
|
|
end
|