1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
require 'test_helper'
class RbpdfFontFileTest < Test::Unit::TestCase
test "Font path test" do
font_path = RBPDFFontDescriptor.getfontpath
assert_include Dir.entries(font_path), 'courier.rb'
end
test "Core Font File test" do
fontlist = ['helvetica', 'helveticab', 'helveticai', 'helveticabi',
'courier', 'courierb', 'courieri', 'courierbi',
'times', 'timesb', 'timesi', 'timesbi',
'zapfdingbats', 'symbol']
fontlist.each {|fontname|
fontfile = File.join RBPDFFontDescriptor.getfontpath, fontname + '.rb'
require(fontfile) if File.exists?(fontfile)
font_desc = RBPDFFontDescriptor.font(fontname)
assert_equal fontname + 'core', fontname + font_desc[:type].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
assert_equal 256, font_desc[:cw].length
}
end
test "cidfont0 Font File test" do
fontlist = ['cid0cs', 'cid0ct', 'cid0jp', 'cid0kr',
'hysmyeongjostdmedium', 'kozgopromedium', 'kozminproregular', 'msungstdlight',
'stsongstdlight']
font_path = RBPDFFontDescriptor.getfontpath
fontlist.each {|fontname|
fontfile = File.join font_path, fontname + '.rb'
require(fontfile)
font_desc = RBPDFFontDescriptor.font(fontname)
assert_equal fontname + 'cidfont0', fontname + font_desc[:type].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:name].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:displayname].to_s unless fontname =~ /cid0(cs|ct|jp|kr)/
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Ascent'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Descent'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['CapHeight'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Flags'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['FontBBox'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['ItalicAngle'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['StemV'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['MissingWidth'].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['XHeight'].to_s if fontname =~ /kozgopromedium|kozminproregular/
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Registry'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Ordering'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['Supplement'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cidinfo]['uni2cid'].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
assert_not_equal '[' + fontname + ']:0', '[' + fontname + ']:' + font_desc[:cidinfo]['uni2cid'].length.to_s if fontname =~ /cid0(cs|ct|jp|kr)/
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:up].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ut].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
assert_not_equal 0, font_desc[:cw].length
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:enc].to_s
if font_desc[:diff].nil? and fontname =~ /cid0(cs|ct|jp|kr)/
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:diff].to_s # font_desc[:diff] => nil
end
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:originalsize].to_s if fontname =~ /cid0(cs|ct|jp|kr)/
}
end
test "TrueTypeUnicode Font File test" do
fontlist = ['freesans', 'freesansb', 'freesansi', 'freesansbi',
'freemono', 'freemonob', 'freemonoi', 'freemonobi',
'freeserif', 'freeserifb', 'freeserifi', 'freeserifbi',
'dejavusans', 'dejavusansb', 'dejavusansi', 'dejavusansbi',
'dejavusanscondensed', 'dejavusanscondensedb', 'dejavusanscondensedi', 'dejavusanscondensedbi',
'dejavusansmono', 'dejavusansmonob', 'dejavusansmonoi', 'dejavusansmonobi',
'dejavuserif', 'dejavuserifb', 'dejavuserifi', 'dejavuserifbi',
'dejavusansextralight' ]
font_path = RBPDFFontDescriptor.getfontpath
fontlist.each {|fontname|
fontfile = File.join font_path, fontname + '.rb'
require(fontfile)
font_desc = RBPDFFontDescriptor.font(fontname)
assert_equal fontname + 'TrueTypeUnicode', fontname + font_desc[:type].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:name].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Ascent'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Descent'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['CapHeight'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['Flags'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['FontBBox'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['ItalicAngle'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['StemV'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:desc]['MissingWidth'].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:up].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ut].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:dw].to_s
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:cw].to_s
assert_not_equal '[' + fontname + ']:0', '[' + fontname + ']:' + font_desc[:cw].length.to_s
if font_desc[:enc].nil?
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:enc].to_s
end
if font_desc[:diff].nil?
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:diff].to_s
end
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:file].to_s
assert_true File.exists?( File.join font_path, font_desc[:file])
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:ctg].to_s
assert_true File.exists?( File.join font_path, font_desc[:ctg])
assert_not_equal '[' + fontname + ']:', '[' + fontname + ']:' + font_desc[:originalsize].to_s
}
end
end
|