Sha256: 4784835abf2b2ac43cfc958945be450c46085ed3440d34fff8726827d36fc5a2

Contents?: true

Size: 1.82 KB

Versions: 63

Compression:

Stored size: 1.82 KB

Contents

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

require 'test_helper'
require 'hexapdf/document'
require 'hexapdf/type/font_descriptor'

describe HexaPDF::Type::FontDescriptor do
  before do
    @doc = HexaPDF::Document.new
    @font_desc = @doc.add({Type: :FontDescriptor, FontName: :Test, Flags: 0b1001001,
                           ItalicAngle: 10})
  end

  describe "flags" do
    it "returns all flags" do
      assert_equal([:fixed_pitch, :script, :italic], @font_desc.flags)
    end
  end

  describe "flagged?" do
    it "returns true if the given flag is set" do
      assert(@font_desc.flagged?(:fixed_pitch))
      refute(@font_desc.flagged?(:serif))
    end

    it "raises an error if an unknown flag name is provided" do
      assert_raises(ArgumentError) { @font_desc.flagged?(:unknown) }
    end
  end

  describe "flag" do
    it "sets the given flag bits" do
      @font_desc.flag(:serif)
      assert_equal([:fixed_pitch, :serif, :script, :italic], @font_desc.flags)
      @font_desc.flag(:symbolic, clear_existing: true)
      assert_equal([:symbolic], @font_desc.flags)
    end
  end

  describe "validation" do
    it "fails if more than one of /FontFile{,2,3} are set" do
      assert(@font_desc.validate {|*args| p args })
      @font_desc[:FontFile] = @font_desc[:FontFile2] = @doc.add({}, stream: 'test')
      refute(@font_desc.validate)
    end

    it "deletes the /FontWeight value if it doesn't contain a valid value" do
      @font_desc[:FontWeight] = 350
      refute(@font_desc.validate(auto_correct: false))
      assert(@font_desc.validate)
      refute(@font_desc.key?(:FontWeight))
    end

    it "updates the /Descent value if it is not a negative number" do
      @font_desc[:Descent] = 5
      refute(@font_desc.validate(auto_correct: false))
      assert(@font_desc.validate)
      assert_equal(-5, @font_desc[:Descent])
    end
  end
end

Version data entries

63 entries across 63 versions & 1 rubygems

Version Path
hexapdf-0.20.4 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.20.3 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.20.2 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.20.1 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.20.0 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.19.3 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.19.2 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.19.1 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.19.0 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.18.0 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.17.3 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.17.2 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.16.0 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.9 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.8 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.7 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.6 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.5 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.4 test/hexapdf/type/test_font_descriptor.rb
hexapdf-0.15.3 test/hexapdf/type/test_font_descriptor.rb