Skip to content

Commit f66f0b4

Browse files
Update tests, update remarks about wrong handling
1 parent 92f7133 commit f66f0b4

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

kernel/src/test/java/com/itextpdf/kernel/pdf/FreeReferencesTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,16 @@ public void freeReferencesTest01() throws IOException {
3232
String[] xrefString = extractXrefTableAsStrings(out);
3333
String[] expected = new String[] {
3434
"xref\n" +
35-
"0 4\n" +
36-
"0000000000 65535 f \n" +
35+
"0 5\n" +
36+
"0000000010 65535 f \n" +
3737
"0000000269 00000 n \n" +
3838
"0000000561 00000 n \n" +
3939
"0000000314 00000 n \n" +
40-
"12 3\n" +
41-
"0000000133 00000 n \n" + // TODO first xref shall have no subsections
40+
"0000000011 65535 f \n" +
41+
"10 5\n" + // TODO first xref shall have no subsections
42+
"0000000000 00001 f \n" +
43+
"0000000000 00002 f \n" + // TODO linked list of refs is invalid
44+
"0000000133 00000 n \n" +
4245
"0000000015 00000 n \n" +
4346
"0000000613 00000 n \n" };
4447
Assert.assertArrayEquals(expected, xrefString);
@@ -51,7 +54,7 @@ public void freeReferencesTest02() throws IOException {
5154

5255
PdfDocument pdfDocument = new PdfDocument(new PdfReader(sourceFolder + src), new PdfWriter(destinationFolder + out),
5356
new StampingProperties().useAppendMode());
54-
pdfDocument.close();
57+
pdfDocument.close(); // TODO exception is thrown on attempt to read free reference
5558

5659
String[] xrefString = extractXrefTableAsStrings(out);
5760
String[] expected = new String[] {
@@ -112,9 +115,8 @@ public void freeReferencesTest03() throws IOException {
112115
"0000001706 00000 n \n" +
113116
"0000001998 00000 n \n" +
114117
"0000001751 00000 n \n" +
115-
"5 1\n" +
116-
"0000002055 00002 n \n" + // TODO fifth object is no longer free, however zero obj not updated
117-
"8 1\n" +
118+
"8 2\n" +
119+
"0000002055 00000 n \n" +
118120
"0000002156 00000 n \n"};
119121
Assert.assertArrayEquals(expected, xrefString);
120122
}
@@ -131,7 +133,7 @@ public void freeReferencesTest04() throws IOException {
131133
PdfIndirectReference contentsRef = (PdfIndirectReference) contentsObj;
132134
contentsRef.setFree();
133135
PdfObject freedContentsRefRefersTo = contentsRef.getRefersTo();
134-
Assert.assertNull(freedContentsRefRefersTo);
136+
Assert.assertNull(freedContentsRefRefersTo); // TODO assertion fails. Free reference should not be reread, see freeReferencesTest02
135137
pdfDocument.close();
136138

137139
}
@@ -201,13 +203,13 @@ public void freeReferencesTest07() throws IOException {
201203
String[] xrefString = extractXrefTableAsStrings(out);
202204
String[] expected = new String[] {
203205
"xref\n" +
204-
"0 4\n" +
205-
"0000000000 65535 f \n" +
206+
"0 7\n" +
207+
"0000000004 65535 f \n" +
206208
"0000000203 00000 n \n" +
207209
"0000000414 00000 n \n" +
208210
"0000000248 00000 n \n" +
209-
"5 2\n" +
210-
"0000000088 00000 n \n" + // TODO first xref shall have no subsections
211+
"0000000000 00001 f \n" +
212+
"0000000088 00000 n \n" +
211213
"0000000015 00000 n \n"
212214
};
213215
Assert.assertArrayEquals(expected, xrefString);

0 commit comments

Comments
 (0)