Sha256: 3874b25b7b096780637a5997abd3f72b1fbac42a75d65fe19baa0092154d8997

Contents?: true

Size: 943 Bytes

Versions: 6

Compression:

Stored size: 943 Bytes

Contents

# -*- encoding: utf-8 -*-

require 'test_helper'
require 'hexapdf/tokenizer'
require 'stringio'
require_relative 'common_tokenizer_tests'

describe HexaPDF::Tokenizer do
  include CommonTokenizerTests

  def create_tokenizer(str)
    @tokenizer = HexaPDF::Tokenizer.new(StringIO.new(str.b))
  end

  it "handles object references" do
    create_tokenizer("1 0 R 2 15 R ")
    assert_equal(HexaPDF::Reference.new(1, 0), @tokenizer.next_token)
    assert_equal(HexaPDF::Reference.new(2, 15), @tokenizer.next_token)
    @tokenizer.pos = 0
    assert_equal(HexaPDF::Reference.new(1, 0), @tokenizer.next_object)
    assert_equal(HexaPDF::Reference.new(2, 15), @tokenizer.next_object)
  end

  it "next_token: should not fail when resetting the position (due to the use of the internal StringScanner buffer)" do
    create_tokenizer("0 1 2 3 4 " * 4000)
    4000.times do
      5.times {|i| assert_equal(i, @tokenizer.next_token)}
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
hexapdf-0.6.0 test/hexapdf/test_tokenizer.rb
hexapdf-0.5.0 test/hexapdf/test_tokenizer.rb
hexapdf-0.4.0 test/hexapdf/test_tokenizer.rb
hexapdf-0.3.0 test/hexapdf/test_tokenizer.rb
hexapdf-0.2.0 test/hexapdf/test_tokenizer.rb
hexapdf-0.1.0 test/hexapdf/test_tokenizer.rb