Sha256: 5091ac8442c84cda075d4411df73ac87fdf7c7a31e413d59d33db9b717d0700f

Contents?: true

Size: 1.39 KB

Versions: 59

Compression:

Stored size: 1.39 KB

Contents

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

require 'test_helper'
require 'hexapdf/font_loader'
require 'hexapdf/document'

describe HexaPDF::FontLoader::FromConfiguration do
  before do
    @doc = HexaPDF::Document.new
    font_file = File.join(TEST_DATA_DIR, "fonts", "Ubuntu-Title.ttf")
    @font_obj = HexaPDF::Font::TrueType::Font.new(File.open(font_file, 'rb'))
    @doc.config['font.map'] = {'font' => {none: font_file}, 'font1' => {none: @font_obj}}
    @klass = HexaPDF::FontLoader::FromConfiguration
  end

  it "loads the configured font" do
    wrapper = @klass.call(@doc, "font")
    assert_equal("Ubuntu-Title", wrapper.wrapped_font.font_name)
    wrapper = @klass.call(@doc, "font1")
    assert_equal("Ubuntu-Title", wrapper.wrapped_font.font_name)
    assert_same(@font_obj, wrapper.wrapped_font)
  end

  it "passes the subset value to the wrapper" do
    wrapper = @klass.call(@doc, "font")
    assert(wrapper.subset?)
    wrapper = @klass.call(@doc, "font", subset: false)
    refute(wrapper.subset?)
  end

  it "fails if the provided font is invalid" do
    @doc.config['font.map']['font'][:none] << "unknown"
    assert_raises(HexaPDF::Error) { @klass.call(@doc, "font") }
  end

  it "returns nil for unknown fonts" do
    assert_nil(@klass.call(@doc, "Unknown"))
  end

  it "returns a hash with all configured fonts" do
    assert_equal({'font' => [:none], 'font1' => [:none]}, @klass.available_fonts(@doc))
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
hexapdf-0.40.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.39.1 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.39.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.38.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.37.2 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.37.1 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.37.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.36.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.35.1 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.35.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.34.1 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.34.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.33.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.32.2 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.32.1 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.32.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.31.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.30.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.29.0 test/hexapdf/font_loader/test_from_configuration.rb
hexapdf-0.28.0 test/hexapdf/font_loader/test_from_configuration.rb