Sha256: 901f8be9eed0b43ca56967943dafc4ab6d47570b09e54565df924aeb030f36e0

Contents?: true

Size: 1.78 KB

Versions: 6

Compression:

Stored size: 1.78 KB

Contents

class TestPage < Test::Unit::TestCase
  def test_get_image
    omit("We don't have PDF that has image...")
    document = Poppler::Document.new(image_pdf)
    page, mapping = find_first_image_mapping(document)
    assert_kind_of(Cairo::ImageSurface, page.get_image(mapping.image_id))
    assert_kind_of(Cairo::ImageSurface, mapping.image)
  end

  def test_selection_region
    document = Poppler::Document.new(form_pdf)
    page = document[0]
    rectangle = Poppler::Rectangle.new(0, 0, *page.size)
    region = page.get_selection_region(0.5, :word, rectangle)
    if later_version?(0, 7, 2)
      assert_kind_of(Poppler::Rectangle, region[0])
    else
      assert_kind_of(Gdk::Region, region)
    end
  end

  def test_annotation_mapping
    only_poppler_version(0, 7, 2)
    document = Poppler::Document.new(form_pdf)
    page = document[0]
    assert_equal([Poppler::AnnotationMapping],
                 page.annotation_mapping.collect {|mapping| mapping.class}.uniq)
    mapping = page.annotation_mapping[0]
    assert_kind_of(Poppler::Rectangle, mapping.area)
    assert_kind_of(Poppler::Annotation, mapping.annotation)
  end

  def test_render
    only_poppler_version(0, 20, 0)
    document = Poppler::Document.new(image_pdf)
    page = document[0]
    png = StringIO.new
    png.set_encoding("ASCII-8BIT")
    Cairo::ImageSurface.new(:argb32, *page.size) do |surface|
      Cairo::Context.new(surface) do |context|
        page.render(context)
      end
      surface.write_to_png(png)
    end
    File.open(image_png, "rb") do |image|
      # TODO: support image diff
      assert_equal(image.read, png.string)
    end
  end

  private
  def find_first_image_mapping(document)
    document.each do |page|
      page.image_mapping.each do |mapping|
        return [page, mapping]
      end
    end
    nil
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
poppler-2.2.0-x86-mingw32 test/test_page.rb
poppler-2.2.0 test/test_page.rb
poppler-2.1.0-x86-mingw32 test/test_page.rb
poppler-2.1.0 test/test_page.rb
poppler-2.0.3-x86-mingw32 test/test_page.rb
poppler-2.0.3 test/test_page.rb