Author: tilman
Date: Sat Aug 29 10:46:15 2026
New Revision: 1937604

Log:
PDFBOX-5660: improve test coverage

Modified:
   
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/ttf/TestTTFParser.java

Modified: 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/ttf/TestTTFParser.java
==============================================================================
--- 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/ttf/TestTTFParser.java
 Sat Aug 29 10:46:12 2026        (r1937603)
+++ 
pdfbox/branches/2.0/fontbox/src/test/java/org/apache/fontbox/ttf/TestTTFParser.java
 Sat Aug 29 10:46:15 2026        (r1937604)
@@ -103,4 +103,53 @@ public class TestTTFParser
         gid = cmap.getGlyphId(0x20AC); // EURO SIGN
         Assert.assertEquals("Euro", glyphNames[gid]);
     }
+
+    @Test
+    public void testParseMisc() throws IOException
+    {
+        final File testFile = new 
File("src/test/resources/ttf/LiberationSans-Regular.ttf");
+        TTFParser parser = new TTFParser();
+        TrueTypeFont ttf = parser.parse(testFile);
+        KerningSubtable horizontalKerningSubtable = 
ttf.getKerning().getHorizontalKerningSubtable();
+        Assert.assertNull(ttf.getVerticalHeader());
+        Assert.assertNull(ttf.getVerticalMetrics());
+        Assert.assertNull(ttf.getVerticalOrigin());
+        Assert.assertTrue(horizontalKerningSubtable.isHorizontalKerning());
+        Assert.assertEquals(-113, horizontalKerningSubtable.getKerning(3, 
36)); // first
+        Assert.assertEquals(-68, horizontalKerningSubtable.getKerning(2026, 
987)); // last
+        Assert.assertEquals(2048, ttf.getUnitsPerEm());
+        Assert.assertEquals(1139, ttf.getAdvanceWidth(19));
+        Assert.assertEquals(250, ttf.getAdvanceHeight(19)); // default
+        Assert.assertEquals("[-543.9453,-303.22266,1301.7578,979.98047]", 
ttf.getFontBBox().toString());
+        Assert.assertEquals("[4.8828125E-4, 0, 0, 4.8828125E-4, 0, 0]", 
ttf.getFontMatrix().toString());
+        Assert.assertTrue(ttf.hasGlyph("A"));
+        Assert.assertFalse(ttf.hasGlyph("blubb"));
+        Assert.assertEquals("LiberationSans", ttf.toString());
+    }
+
+    @Test
+    public void testParseVertical() throws IOException
+    {
+        File ipaFont = new File("target/fonts/ipag00303", "ipag.ttf");
+        TrueTypeFont ttf = new TTFParser().parse(ipaFont);
+        VerticalHeaderTable verticalHeader = ttf.getVerticalHeader();
+        Assert.assertEquals(1802, verticalHeader.getAscender());
+        Assert.assertEquals(2048, verticalHeader.getAdvanceHeightMax());
+        Assert.assertEquals(0, verticalHeader.getCaretSlopeRise());
+        Assert.assertEquals(1, verticalHeader.getCaretSlopeRun());
+        Assert.assertEquals(0, verticalHeader.getCaretOffset());
+        Assert.assertEquals(246, verticalHeader.getDescender());
+        Assert.assertEquals(0, verticalHeader.getLineGap());
+        Assert.assertEquals(0, verticalHeader.getMetricDataFormat());
+        Assert.assertEquals(-103, verticalHeader.getMinTopSideBearing());
+        Assert.assertEquals(-325, verticalHeader.getMinBottomSideBearing());
+        Assert.assertEquals(1f, verticalHeader.getVersion(), 0);
+        Assert.assertEquals(2373, verticalHeader.getYMaxExtent());
+        VerticalMetricsTable verticalMetrics = ttf.getVerticalMetrics();
+        Assert.assertEquals(2048, verticalMetrics.getAdvanceHeight(19));
+        Assert.assertEquals(290, verticalMetrics.getTopSideBearing(19));
+        Assert.assertNull(ttf.getVerticalOrigin());
+        Assert.assertEquals(1290, ttf.getAdvanceWidth(19));
+        Assert.assertEquals(2048, ttf.getAdvanceHeight(19));
+    }
 }
\ No newline at end of file

Reply via email to