Sha256: 72f4a3219c978ce7b5324ea0959cfe94c990406343948242bfcd4fca20ed446c

Contents?: true

Size: 1.6 KB

Versions: 10

Compression:

Stored size: 1.6 KB

Contents

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

require 'test_helper'
require 'hexapdf/document'
require 'hexapdf/type/font'

describe HexaPDF::Type::Font do
  before do
    @doc = HexaPDF::Document.new
    cmap = @doc.add({}, stream: <<-EOF)
      2 beginbfchar
      <20> <0041>
      <22> <0042>
      endbfchar
    EOF
    fd = @doc.add(Type: :FontDescriptor, FontBBox: [0, 1, 2, 3])
    @font = @doc.add(Type: :Font, BaseFont: :TestFont, FontDescriptor: fd, ToUnicode: cmap)
  end

  it "must always be an indirect" do
    assert(@font.must_be_indirect?)
  end

  describe "to_utf" do
    it "uses the /ToUnicode CMap if it is available" do
      assert_equal("A", @font.to_utf8(32))
      assert_equal("B", @font.to_utf8(34))
      assert_raises(HexaPDF::Error) { @font.to_utf8(0) }
    end

    it "calls the configured proc if no /ToUnicode CMap is available" do
      @font.delete(:ToUnicode)
      assert_raises(HexaPDF::Error) { @font.to_utf8(32) }
    end
  end

  describe "bounding_box" do
    it "returns the bounding box" do
      assert_equal([0, 1, 2, 3], @font.bounding_box)
    end

    it "returns nil if no bounding box information can be found" do
      @font[:FontDescriptor].delete(:FontBBox)
      assert_nil(@font.bounding_box)
    end
  end

  describe "embedded" do
    it "returns true if the font is embedded" do
      refute(@font.embedded?)
      @font[:FontDescriptor][:FontFile] = 5
      assert(@font.embedded?)
    end
  end

  describe "font_file" do
    it "returns the stream object representing the embedded font file" do
      @font[:FontDescriptor][:FontFile] = 5
      assert_equal(5, @font.font_file)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
hexapdf-0.10.0 test/hexapdf/type/test_font.rb
hexapdf-0.9.3 test/hexapdf/type/test_font.rb
hexapdf-0.9.2 test/hexapdf/type/test_font.rb
hexapdf-0.9.1 test/hexapdf/type/test_font.rb
hexapdf-0.9.0 test/hexapdf/type/test_font.rb
hexapdf-0.8.0 test/hexapdf/type/test_font.rb
hexapdf-0.7.0 test/hexapdf/type/test_font.rb
hexapdf-0.6.0 test/hexapdf/type/test_font.rb
hexapdf-0.5.0 test/hexapdf/type/test_font.rb
hexapdf-0.4.0 test/hexapdf/type/test_font.rb