@@ -25,10 +25,12 @@ public virtual void FreeReferencesTest01() {
2525 + @out ) ) ;
2626 pdfDocument . Close ( ) ;
2727 String [ ] xrefString = ExtractXrefTableAsStrings ( @out ) ;
28- String [ ] expected = new String [ ] { "xref\n " + "0 4\n " + "0000000000 65535 f \n " + "0000000269 00000 n \n "
29- + "0000000561 00000 n \n " + "0000000314 00000 n \n " + "12 3\n " + "0000000133 00000 n \n " + "0000000015 00000 n \n "
30- + "0000000613 00000 n \n " } ;
28+ String [ ] expected = new String [ ] { "xref\n " + "0 5\n " + "0000000010 65535 f \n " + "0000000269 00000 n \n "
29+ + "0000000561 00000 n \n " + "0000000314 00000 n \n " + "0000000011 65535 f \n " + "10 5\n " + "0000000000 00001 f \n "
30+ + "0000000000 00002 f \n " + "0000000133 00000 n \n " + "0000000015 00000 n \n " + "0000000613 00000 n \n "
31+ } ;
3132 // TODO first xref shall have no subsections
33+ // TODO linked list of refs is invalid
3234 NUnit . Framework . Assert . AreEqual ( expected , xrefString ) ;
3335 }
3436
@@ -40,6 +42,7 @@ public virtual void FreeReferencesTest02() {
4042 PdfDocument pdfDocument = new PdfDocument ( new PdfReader ( sourceFolder + src ) , new PdfWriter ( destinationFolder
4143 + @out ) , new StampingProperties ( ) . UseAppendMode ( ) ) ;
4244 pdfDocument . Close ( ) ;
45+ // TODO exception is thrown on attempt to read free reference
4346 String [ ] xrefString = ExtractXrefTableAsStrings ( @out ) ;
4447 String [ ] expected = new String [ ] { "xref\n " + "0 5\n " + "0000000010 65535 f \n " + "0000000269 00000 n \n "
4548 + "0000000569 00000 n \n " + "0000000314 00000 n \n " + "0000000000 65535 f \n " + "10 5\n " + "0000000011 00000 f \n "
@@ -63,9 +66,8 @@ public virtual void FreeReferencesTest03() {
6366 + "0000000564 00000 n \n " + "0000000310 00000 n \n " + "0000000132 00000 n \n " + "0000000015 00001 n \n "
6467 + "0000000476 00000 n \n " , "xref\n " + "0 1\n " + "0000000005 65535 n \n " + "3 3\n " + "0000000923 00000 n \n "
6568 + "0000001170 00000 n \n " + "0000000000 00002 f \n " + "7 1\n " + "0000001303 00000 n \n " , "xref\n " + "1 3\n "
66- + "0000001706 00000 n \n " + "0000001998 00000 n \n " + "0000001751 00000 n \n " + "5 1\n " + "0000002055 00002 n \n "
67- + "8 1\n " + "0000002156 00000 n \n " } ;
68- // TODO fifth object is no longer free, however zero obj not updated
69+ + "0000001706 00000 n \n " + "0000001998 00000 n \n " + "0000001751 00000 n \n " + "8 2\n " + "0000002055 00000 n \n "
70+ + "0000002156 00000 n \n " } ;
6971 NUnit . Framework . Assert . AreEqual ( expected , xrefString ) ;
7072 }
7173
@@ -82,6 +84,7 @@ public virtual void FreeReferencesTest04() {
8284 contentsRef . SetFree ( ) ;
8385 PdfObject freedContentsRefRefersTo = contentsRef . GetRefersTo ( ) ;
8486 NUnit . Framework . Assert . IsNull ( freedContentsRefRefersTo ) ;
87+ // TODO assertion fails. Free reference should not be reread, see freeReferencesTest02
8588 pdfDocument . Close ( ) ;
8689 }
8790
@@ -126,10 +129,9 @@ public virtual void FreeReferencesTest07() {
126129 pdfDocument . AddNewPage ( ) ;
127130 pdfDocument . Close ( ) ;
128131 String [ ] xrefString = ExtractXrefTableAsStrings ( @out ) ;
129- String [ ] expected = new String [ ] { "xref\n " + "0 4\n " + "0000000000 65535 f \n " + "0000000203 00000 n \n "
130- + "0000000414 00000 n \n " + "0000000248 00000 n \n " + "5 2\n " + "0000000088 00000 n \n " + "0000000015 00000 n \n "
131- } ;
132- // TODO first xref shall have no subsections
132+ String [ ] expected = new String [ ] { "xref\n " + "0 7\n " + "0000000004 65535 f \n " + "0000000203 00000 n \n "
133+ + "0000000414 00000 n \n " + "0000000248 00000 n \n " + "0000000000 00001 f \n " + "0000000088 00000 n \n "
134+ + "0000000015 00000 n \n " } ;
133135 NUnit . Framework . Assert . AreEqual ( expected , xrefString ) ;
134136 }
135137
0 commit comments