Skip to content

Commit b525bee

Browse files
EvgenyB1001iText-CI
authored andcommitted
Add tests to the setModified method
DEVSIX-3430 Autoported commit. Original commit hash: [420e93833]
1 parent dd94b91 commit b525bee

File tree

2 files changed

+45
-1
lines changed

2 files changed

+45
-1
lines changed

itext.tests/itext.kernel.tests/itext/kernel/pdf/PdfNameTreeTest.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,5 +136,49 @@ public virtual void AnnotationAppearanceTest() {
136136
pdfDocument.Close();
137137
NUnit.Framework.Assert.AreEqual(1, objs.Count);
138138
}
139+
140+
[NUnit.Framework.Test]
141+
public virtual void SetModifiedFlagTest() {
142+
TestSetModified(false);
143+
}
144+
145+
[NUnit.Framework.Test]
146+
public virtual void SetModifiedFlagAppendModeTest() {
147+
TestSetModified(true);
148+
}
149+
150+
private static void TestSetModified(bool isAppendMode) {
151+
String[] expectedKeys = new String[] { "new_key1", "new_key2", "new_key3" };
152+
MemoryStream sourceFile = CreateDocumentInMemory();
153+
MemoryStream modifiedFile = new MemoryStream();
154+
PdfReader reader = new PdfReader(new MemoryStream(sourceFile.ToArray()));
155+
PdfDocument pdfDoc = isAppendMode ? new PdfDocument(reader, new PdfWriter(modifiedFile), new StampingProperties
156+
().UseAppendMode()) : new PdfDocument(reader, new PdfWriter(modifiedFile));
157+
PdfNameTree nameTree = pdfDoc.GetCatalog().GetNameTree(PdfName.Dests);
158+
IDictionary<String, PdfObject> names = nameTree.GetNames();
159+
List<String> keys = new List<String>(names.Keys);
160+
for (int i = 0; i < keys.Count; i++) {
161+
names.Put(expectedKeys[i], names.Get(keys[i]));
162+
names.JRemove(keys[i]);
163+
}
164+
nameTree.SetModified();
165+
pdfDoc.Close();
166+
reader = new PdfReader(new MemoryStream(modifiedFile.ToArray()));
167+
pdfDoc = new PdfDocument(reader);
168+
nameTree = pdfDoc.GetCatalog().GetNameTree(PdfName.Dests);
169+
ICollection<String> actualKeys = nameTree.GetNames().Keys;
170+
NUnit.Framework.Assert.AreEqual(expectedKeys, actualKeys.ToArray());
171+
}
172+
173+
private static MemoryStream CreateDocumentInMemory() {
174+
MemoryStream boas = new MemoryStream();
175+
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(boas));
176+
pdfDoc.AddNewPage();
177+
pdfDoc.GetCatalog().GetNameTree(PdfName.Dests).AddEntry("key1", new PdfArray(new float[] { 0, 0, 0, 0 }));
178+
pdfDoc.GetCatalog().GetNameTree(PdfName.Dests).AddEntry("key2", new PdfArray(new float[] { 1, 1, 1, 1 }));
179+
pdfDoc.GetCatalog().GetNameTree(PdfName.Dests).AddEntry("key3", new PdfArray(new float[] { 2, 2, 2, 2 }));
180+
pdfDoc.Close();
181+
return boas;
182+
}
139183
}
140184
}

port-hash

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
06cae6cac38eff8ee313064c2bdb6eeb85996d70
1+
420e93833bb777b0494cd513576565c782b226d3

0 commit comments

Comments
 (0)