Sha256: 4a108e63d6dd32fd6cad29be568551e369d2e2afeb382aca75c4441a33db526f

Contents?: true

Size: 949 Bytes

Versions: 2

Compression:

Stored size: 949 Bytes

Contents

require 'minitest/autorun'
require 'stringio'

class TestPDFObjectTree < Minitest::Test

    def setup
        @pdf = PDF.new.append_page
        @contents = ContentStream.new("abc")
        @pdf.pages.first.Contents = @contents
        @pdf.Catalog.Loop = @pdf.Catalog
        @pdf.save StringIO.new
    end

    def test_pdf_object_tree
        assert_instance_of Catalog, @pdf.Catalog
        assert_nil @pdf.Catalog.parent

        @pdf.each_object(recursive: true) do |obj|
            assert_kind_of Origami::Object, obj
            assert_equal obj.document, @pdf

            unless obj.indirect?
                assert_kind_of Origami::Object, obj.parent
                assert_equal obj.parent.document, @pdf
            end
        end

        enum = @pdf.each_object(recursive: true)
        assert_kind_of Enumerator, enum
        assert enum.include?(@pdf.Catalog.Pages)
        assert enum.include?(@contents.dictionary)
    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
origamindee-3.1.0 test/test_object_tree.rb
origamindee-3.0.0 test/test_object_tree.rb