Sha256: f969113c5502720f7cf35c1cb8dfd04f0f12b287ac9d2cf53db7c3e8810dd1a5

Contents?: true

Size: 1.41 KB

Versions: 94

Compression:

Stored size: 1.41 KB

Contents

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

require 'stringio'
require 'test_helper'
require 'hexapdf/font/true_type'
require 'hexapdf/font/true_type/builder'

describe HexaPDF::Font::TrueType::Builder do
  before do
    font_file = File.join(TEST_DATA_DIR, "fonts", "Ubuntu-Title.ttf")
    @font = HexaPDF::Font::TrueType::Font.new(File.open(font_file))
  end

  after do
    @font.io.close
  end

  it "builds the font file" do
    tables = {
      "loca" => @font[:loca].raw_data << "0",
      "head" => @font[:head].raw_data,
      "glyf" => @font[:glyf].raw_data,
      "maxp" => @font[:maxp].raw_data,
    }
    font_data = HexaPDF::Font::TrueType::Builder.build(tables)
    built_font = HexaPDF::Font::TrueType::Font.new(StringIO.new(font_data))

    assert(built_font[:head].checksum_valid?)
    assert_equal(@font[:glyf].raw_data, built_font[:glyf].raw_data)
    assert(built_font.directory.entry('glyf').offset % 4 == 0)
    assert(built_font[:glyf].checksum_valid?)
    assert_equal(@font[:loca].raw_data << "0", built_font[:loca].raw_data)
    assert(built_font[:loca].checksum_valid?)
    assert(built_font.directory.entry('loca').offset % 4 == 0)
    assert_equal(@font[:maxp].raw_data, built_font[:maxp].raw_data)
    assert(built_font[:maxp].checksum_valid?)
    assert(built_font.directory.entry('maxp').offset % 4 == 0)

    tables = built_font.directory.instance_variable_get(:@tables)
    assert_equal(tables.keys.sort, tables.keys)
  end
end

Version data entries

94 entries across 94 versions & 1 rubygems

Version Path
hexapdf-1.2.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.1.1 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.1.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.0.3 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.0.2 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.0.1 test/hexapdf/font/true_type/test_builder.rb
hexapdf-1.0.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.47.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.46.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.45.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.44.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.41.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.40.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.39.1 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.39.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.38.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.37.2 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.37.1 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.37.0 test/hexapdf/font/true_type/test_builder.rb
hexapdf-0.36.0 test/hexapdf/font/true_type/test_builder.rb