# coding: utf-8 require 'test/unit/helper' class ThinReports::Generator::PDF::TestFont < MiniTest::Unit::TestCase include ThinReports::TestHelpers # Alias Font = ThinReports::Generator::PDF::Font def setup @doc = ThinReports::Generator::PDF::Document.new end def test_setup_fonts_install_builtin_fonts Font::BUILTIN_FONTS.each_key do |font| assert_includes @doc.internal.font_families.keys, font end end def test_setup_fonts_install_fallback_font assert_includes @doc.internal.font_families.keys, 'DefaultFont' assert_includes @doc.internal.fallback_fonts, 'DefaultFont' end def test_setup_fonts_install_eudc_fonts ThinReports.config.generator.pdf.eudc_fonts = ['eudc1.ttf', 'eudc2.ttf'] setup assert_includes @doc.internal.font_families.keys, 'EUDC0' assert_includes @doc.internal.font_families.keys, 'EUDC1' end def test_setup_fonts_install_fallback_fonts_as_eudc ThinReports.config.generator.pdf.eudc_fonts = 'eudc.ttf' setup assert_includes @doc.internal.fallback_fonts, 'EUDC0' end def test_fallback_font_has_all_styles_as_normal_IPAMincho ipam = Font::BUILTIN_FONTS['IPAMincho'][:normal] [:normal, :bold, :italic, :bold_italic].each do |style| assert_same @doc.internal.font_families['DefaultFont'][style], ipam end end def test_setup_fonts_install_alias_fonts_of_CourierNew_and_TimesNewRoman assert_same @doc.internal.font_families['Courier New'], @doc.internal.font_families['Courier'] assert_same @doc.internal.font_families['Times New Roman'], @doc.internal.font_families['Times-Roman'] end def test_default_family assert_equal @doc.send(:default_family), 'Helvetica' end def test_default_family_if_missing assert_equal @doc.send(:default_family_if_missing, 'unknown font'), @doc.send(:default_family) assert_equal @doc.send(:default_family_if_missing, 'IPAMincho'), 'IPAMincho' end def test_font_has_style? assert_equal @doc.send(:font_has_style?, 'IPAMincho', :bold), false assert_equal @doc.send(:font_has_style?, 'Courier New', :bold), true end end