Author: tilman
Date: Mon Feb 9 19:15:07 2026
New Revision: 1931783
Log:
PDFBOX-5660: close input, as suggested by Valery Bokov; closes #417
Modified:
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
Modified:
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
Mon Feb 9 19:15:02 2026 (r1931782)
+++
pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
Mon Feb 9 19:15:07 2026 (r1931783)
@@ -561,85 +561,87 @@ class TestFontEmbedding
@Test
void testIsEmbeddingPermittedMultipleVersions() throws IOException
{
- // SETUP
- PDDocument doc = new PDDocument();
- COSDictionary cosDictionary = new COSDictionary();
- InputStream input =
PDFont.class.getResourceAsStream("/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf");
- TrueTypeFont ttf = new TTFParser().parseEmbedded(input);
- TrueTypeEmbedderTester tester = new TrueTypeEmbedderTester(doc,
cosDictionary, ttf, true);
- TrueTypeFont mockTtf = Mockito.mock(TrueTypeFont.class);
- OS2WindowsMetricsTable mockOS2 =
Mockito.mock(OS2WindowsMetricsTable.class);
- given(mockTtf.getOS2Windows()).willReturn(mockOS2);
- Boolean embeddingIsPermitted;
-
- // TEST 1: 0000 -- Installable embedding versions 0-3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x0000);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 0001, since bit 0 is permanently reserved, and its use
is deprecated
- // TEST 2: 0010 -- Restricted License embedding versions 0-3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x0002);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertFalse(embeddingIsPermitted);
-
- // no test for 0011
- // TEST 3: 0100 -- Preview & Print embedding versions 0-3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x0004);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 0101
- // TEST 4: 0110 -- Restricted License embedding AND Preview & Print
embedding versions 0-2
- // -- illegal permissions combination for versions 3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x0006);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 0111
- // TEST 5: 1000 -- Editable embedding versions 0-3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x0008);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 1001
- // TEST 6: 1010 -- Restricted License embedding AND Editable embedding
versions 0-2
- // -- illegal permissions combination for versions 3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x000A);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 1011
- // TEST 7: 1100 -- Editable embedding AND Preview & Print embedding
versions 0-2
- // -- illegal permissions combination for versions 3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x000C);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
-
- // VERIFY
- assertTrue(embeddingIsPermitted);
-
- // no test for 1101
- // TEST 8: 1110 Editable embedding AND Preview & Print embedding AND
Restricted License embedding versions 0-2
- // -- illegal permissions combination for versions 3+
- given(mockTtf.getOS2Windows().getFsType()).willReturn((short) 0x000E);
- embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+ try (PDDocument doc = new PDDocument())
+ {
+ // SETUP
+ COSDictionary cosDictionary = new COSDictionary();
+ InputStream input =
PDFont.class.getResourceAsStream("/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf");
+ TrueTypeFont ttf = new TTFParser().parseEmbedded(input);
+ TrueTypeEmbedderTester tester = new TrueTypeEmbedderTester(doc,
cosDictionary, ttf, true);
+ TrueTypeFont mockTtf = Mockito.mock(TrueTypeFont.class);
+ OS2WindowsMetricsTable mockOS2 =
Mockito.mock(OS2WindowsMetricsTable.class);
+ given(mockTtf.getOS2Windows()).willReturn(mockOS2);
+ Boolean embeddingIsPermitted;
+
+ // TEST 1: 0000 -- Installable embedding versions 0-3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x0000);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 0001, since bit 0 is permanently reserved, and its
use is deprecated
+ // TEST 2: 0010 -- Restricted License embedding versions 0-3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x0002);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertFalse(embeddingIsPermitted);
+
+ // no test for 0011
+ // TEST 3: 0100 -- Preview & Print embedding versions 0-3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x0004);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 0101
+ // TEST 4: 0110 -- Restricted License embedding AND Preview &
Print embedding versions 0-2
+ // -- illegal permissions combination for versions 3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x0006);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 0111
+ // TEST 5: 1000 -- Editable embedding versions 0-3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x0008);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 1001
+ // TEST 6: 1010 -- Restricted License embedding AND Editable
embedding versions 0-2
+ // -- illegal permissions combination for versions 3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x000A);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 1011
+ // TEST 7: 1100 -- Editable embedding AND Preview & Print
embedding versions 0-2
+ // -- illegal permissions combination for versions 3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x000C);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
+
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
+
+ // no test for 1101
+ // TEST 8: 1110 Editable embedding AND Preview & Print embedding
AND Restricted License embedding versions 0-2
+ // -- illegal permissions combination for versions 3+
+ given(mockTtf.getOS2Windows().getFsType()).willReturn((short)
0x000E);
+ embeddingIsPermitted = tester.isEmbeddingPermitted(mockTtf);
- // VERIFY
- assertTrue(embeddingIsPermitted);
+ // VERIFY
+ assertTrue(embeddingIsPermitted);
- // no test for 1111
+ // no test for 1111
+ }
}
/**