Skip to content

Commit ffccee3

Browse files
author
Eugene Bochilo
committed
Move XML parsers creation to util methods and fix several tests
DEVSIX-6388 Autoported commit. Original commit hash: [7be06748a] Manual files: forms/src/test/java/com/itextpdf/forms/xfa/SecurityTestXmlParserFactory.java forms/src/test/java/com/itextpdf/forms/xfdf/SecurityTestXmlParserFactory.java io/src/main/java/com/itextpdf/io/util/XmlUtil.java io/src/test/java/com/itextpdf/io/source/OutputStreamTest.java io/src/test/java/com/itextpdf/io/util/XmlUtilTest.java kernel/src/main/java/com/itextpdf/kernel/utils/DefaultSafeXmlParserFactory.java kernel/src/test/java/com/itextpdf/kernel/utils/SecurityTestXmlParserFactory.java kernel/src/test/java/com/itextpdf/kernel/utils/XmlProcessorCreatorSecurityTest.java kernel/src/test/java/com/itextpdf/kernel/xmp/impl/SecurityTestXmlParserFactory.java
1 parent 65bfe09 commit ffccee3

File tree

15 files changed

+64
-50
lines changed

15 files changed

+64
-50
lines changed

itext.tests/itext.forms.tests/itext/forms/xfa/XfaSecurityTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public class XfaSecurityTest : ExtendedITextTest {
6262

6363
[NUnit.Framework.SetUp]
6464
public virtual void ResetXmlParserFactoryToDefault() {
65-
XmlProcessorCreator.SetXmlParserFactory(new DefaultSafeXmlParserFactory());
65+
XmlProcessorCreator.SetXmlParserFactory(null);
6666
}
6767

6868
[NUnit.Framework.Test]

itext.tests/itext.forms.tests/itext/forms/xfdf/XfdfSecurityTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public class XfdfSecurityTest : ExtendedITextTest {
5555

5656
[NUnit.Framework.Test]
5757
public virtual void XxeVulnerabilityXfdfTest() {
58-
XmlProcessorCreator.SetXmlParserFactory(new DefaultSafeXmlParserFactory());
58+
XmlProcessorCreator.SetXmlParserFactory(null);
5959
using (Stream inputStream = new MemoryStream(XFDF_WITH_XXE.GetBytes(System.Text.Encoding.UTF8))) {
6060
Exception e = NUnit.Framework.Assert.Catch(typeof(PdfException), () => XfdfFileUtils.CreateXfdfDocumentFromStream
6161
(inputStream));

itext.tests/itext.io.tests/itext/io/source/OutputStreamTest.cs

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -350,16 +350,26 @@ public virtual void ResetExceptionTest() {
350350

351351
[NUnit.Framework.Test]
352352
public virtual void LocalHighPrecisionOverridesGlobalTest() {
353+
354+
bool highPrecision = OutputStream<ByteArrayOutputStream>.GetHighPrecision();
355+
353356
//the data is random
354357
double? numberToWrite = 2.002d;
355-
using (ByteArrayOutputStream bytes = new ByteArrayOutputStream()) {
356-
using (OutputStream<ByteArrayOutputStream> stream = new OutputStream<ByteArrayOutputStream>(bytes, false)) {
357-
stream.SetLocalHighPrecision(true);
358-
stream.WriteDouble((double)numberToWrite);
359-
stream.Flush();
360-
NUnit.Framework.Assert.AreEqual(numberToWrite.ToString(), Encoding.UTF8.GetString(bytes.ToArray()));
358+
try {
359+
using (ByteArrayOutputStream bytes = new ByteArrayOutputStream()) {
360+
using (OutputStream<ByteArrayOutputStream> stream =
361+
new OutputStream<ByteArrayOutputStream>(bytes, false)) {
362+
OutputStream<ByteArrayOutputStream>.SetHighPrecision(true);
363+
stream.SetLocalHighPrecision(false);
364+
stream.WriteDouble((double)numberToWrite);
365+
stream.Flush();
366+
NUnit.Framework.Assert.AreEqual("2", Encoding.UTF8.GetString(bytes.ToArray()));
367+
}
361368
}
362369
}
370+
finally {
371+
OutputStream<ByteArrayOutputStream>.SetHighPrecision(highPrecision);
372+
}
363373
}
364374
}
365375
}

itext.tests/itext.kernel.tests/itext/kernel/pdf/PdfObjectReleaseTest.cs

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@ You should have received a copy of the GNU Affero General Public License
3030

3131
namespace iText.Kernel.Pdf {
3232
public class PdfObjectReleaseTest : ExtendedITextTest {
33-
public static readonly String sourceFolder = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
33+
public static readonly String SOURCE_FOLDER = iText.Test.TestUtil.GetParentProjectDirectory(NUnit.Framework.TestContext
3434
.CurrentContext.TestDirectory) + "/resources/itext/kernel/pdf/PdfObjectReleaseTest/";
3535

36-
public static readonly String destinationFolder = NUnit.Framework.TestContext.CurrentContext.TestDirectory
36+
public static readonly String DESTINATION_FOLDER = NUnit.Framework.TestContext.CurrentContext.TestDirectory
3737
+ "/test/itext/kernel/pdf/PdfObjectReleaseTest/";
3838

3939
[NUnit.Framework.OneTimeSetUp]
4040
public static void BeforeClass() {
41-
CreateOrClearDestinationFolder(destinationFolder);
41+
CreateOrClearDestinationFolder(DESTINATION_FOLDER);
4242
}
4343

4444
[NUnit.Framework.Test]
@@ -65,58 +65,54 @@ public virtual void ReleaseObjectsInSimpleDocTest() {
6565
[NUnit.Framework.Test]
6666
[LogMessage(iText.IO.Logs.IoLogMessageConstant.FORBID_RELEASE_IS_SET)]
6767
public virtual void ReleaseCatalogTest() {
68-
String srcFile = sourceFolder + "releaseObjectsInSimpleDoc.pdf";
69-
String release = destinationFolder + "outReleaseObjectsInSimpleDoc.pdf";
68+
String srcFile = SOURCE_FOLDER + "releaseObjectsInSimpleDoc.pdf";
69+
String release = DESTINATION_FOLDER + "outReleaseObjectsInSimpleDoc.pdf";
7070
using (PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(release))) {
7171
doc.GetCatalog().GetPdfObject().Release();
7272
}
73-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, destinationFolder));
73+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, DESTINATION_FOLDER));
7474
}
7575

7676
[NUnit.Framework.Test]
7777
[LogMessage(iText.IO.Logs.IoLogMessageConstant.FORBID_RELEASE_IS_SET)]
7878
public virtual void ReleasePagesTest() {
79-
String srcFile = sourceFolder + "releaseObjectsInSimpleDoc.pdf";
80-
String release = destinationFolder + "outReleaseObjectsInSimpleDoc.pdf";
79+
String srcFile = SOURCE_FOLDER + "releaseObjectsInSimpleDoc.pdf";
80+
String release = DESTINATION_FOLDER + "outReleaseObjectsInSimpleDoc.pdf";
8181
using (PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(release))) {
8282
doc.GetCatalog().GetPdfObject().GetAsDictionary(PdfName.Pages).Release();
8383
}
84-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, destinationFolder));
84+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, DESTINATION_FOLDER));
8585
}
8686

8787
[NUnit.Framework.Test]
8888
[LogMessage(iText.IO.Logs.IoLogMessageConstant.FORBID_RELEASE_IS_SET)]
8989
public virtual void ReleaseStructTreeRootTest() {
90-
String srcFile = sourceFolder + "releaseObjectsInDocWithStructTreeRoot.pdf";
91-
String release = destinationFolder + "outReleaseObjectsInDocWithStructTreeRoot.pdf";
90+
String srcFile = SOURCE_FOLDER + "releaseObjectsInDocWithStructTreeRoot.pdf";
91+
String release = DESTINATION_FOLDER + "outReleaseObjectsInDocWithStructTreeRoot.pdf";
9292
using (PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(release))) {
9393
doc.GetStructTreeRoot().GetPdfObject().Release();
9494
}
95-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, destinationFolder));
95+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(release, srcFile, DESTINATION_FOLDER));
9696
}
9797

9898
[NUnit.Framework.Test]
99-
public virtual void NoForbidReleaseObjectsModifyingTest() {
100-
String srcFile = sourceFolder + "noForbidReleaseObjectsModifying.pdf";
101-
String stampReleased = sourceFolder + "noForbidReleaseObjectsModified.pdf";
102-
using (PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(destinationFolder + "noForbidReleaseObjectsModifying.pdf"
103-
), new StampingProperties().UseAppendMode())) {
99+
[LogMessage(iText.IO.Logs.IoLogMessageConstant.FORBID_RELEASE_IS_SET)]
100+
public virtual void ReleaseModifiedObjectTest() {
101+
String srcFile = SOURCE_FOLDER + "releaseModifiedObject.pdf";
102+
String cmpFile = SOURCE_FOLDER + "cmp_releaseModifiedObject.pdf";
103+
String outFile = DESTINATION_FOLDER + "releaseModifiedObject.pdf";
104+
using (PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(outFile))) {
104105
PdfAnnotation annots = doc.GetPage(1).GetAnnotations()[0];
105106
annots.SetRectangle(new PdfArray(new Rectangle(100, 100, 80, 50)));
106-
annots.GetRectangle().Release();
107-
}
108-
using (PdfDocument openPrev = new PdfDocument(new PdfReader(stampReleased))) {
109-
NUnit.Framework.Assert.IsTrue(new Rectangle(100, 100, 80, 50).EqualsWithEpsilon(openPrev.GetPage(1).GetAnnotations
110-
()[0].GetRectangle().ToRectangle()));
107+
annots.GetPdfObject().Release();
111108
}
112-
NUnit.Framework.Assert.IsNotNull(new CompareTool().CompareByContent(srcFile, stampReleased, destinationFolder
113-
));
109+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outFile, cmpFile, DESTINATION_FOLDER));
114110
}
115111

116112
[NUnit.Framework.Test]
117113
public virtual void AddingReleasedObjectToDocumentTest() {
118-
String srcFile = sourceFolder + "releaseObjectsInSimpleDoc.pdf";
119-
PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(sourceFolder + "addingReleasedObjectToDocument.pdf"
114+
String srcFile = SOURCE_FOLDER + "releaseObjectsInSimpleDoc.pdf";
115+
PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(SOURCE_FOLDER + "addingReleasedObjectToDocument.pdf"
120116
));
121117
try {
122118
PdfObject releasedObj = doc.GetPdfObject(1);
@@ -132,9 +128,9 @@ public virtual void AddingReleasedObjectToDocumentTest() {
132128

133129
private void SinglePdfObjectReleaseTest(String inputFilename, String outStampingFilename, String outStampingReleaseFilename
134130
) {
135-
String srcFile = sourceFolder + inputFilename;
136-
String outPureStamping = destinationFolder + outStampingFilename;
137-
String outStampingRelease = destinationFolder + outStampingReleaseFilename;
131+
String srcFile = SOURCE_FOLDER + inputFilename;
132+
String outPureStamping = DESTINATION_FOLDER + outStampingFilename;
133+
String outStampingRelease = DESTINATION_FOLDER + outStampingReleaseFilename;
138134
PdfDocument doc = new PdfDocument(new PdfReader(srcFile), new PdfWriter(outPureStamping));
139135
// We open/close document to make sure that the results of release logic and simple overwriting coincide.
140136
doc.Close();
@@ -146,7 +142,7 @@ private void SinglePdfObjectReleaseTest(String inputFilename, String outStamping
146142
}
147143
}
148144
stamperRelease.Close();
149-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outStampingRelease, outPureStamping, destinationFolder
145+
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outStampingRelease, outPureStamping, DESTINATION_FOLDER
150146
));
151147
}
152148
}

itext.tests/itext.kernel.tests/itext/kernel/utils/XmlProcessorCreatorSecurityTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class XmlProcessorCreatorSecurityTest : ExtendedITextTest
8686
[SetUp]
8787
public virtual void ResetXmlParserFactoryToDefault()
8888
{
89-
XmlProcessorCreator.SetXmlParserFactory(new DefaultSafeXmlParserFactory());
89+
XmlProcessorCreator.SetXmlParserFactory(null);
9090
}
9191

9292
[Test]

itext.tests/itext.kernel.tests/itext/kernel/xmp/impl/XMPMetaParserSecurityTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class XMPMetaParserSecurityTest : ExtendedITextTest {
4040

4141
[NUnit.Framework.SetUp]
4242
public virtual void ResetXmlParserFactoryToDefault() {
43-
XmlProcessorCreator.SetXmlParserFactory(new DefaultSafeXmlParserFactory());
43+
XmlProcessorCreator.SetXmlParserFactory(null);
4444
}
4545

4646
[NUnit.Framework.Test]

itext.tests/itext.layout.tests/itext/layout/ListAlignmentDirectionTest.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,17 @@ public class ListAlignmentDirectionTest : ExtendedITextTest {
5959

6060
private BaseDirection? listBaseDirection;
6161

62+
[NUnit.Framework.OneTimeSetUp]
63+
public static void BeforeClass() {
64+
CreateOrClearDestinationFolder(DESTINATION_FOLDER);
65+
}
66+
6267
public ListAlignmentDirectionTest(Object itemTextAlignment, Object itemBaseDirection, Object listTextAlignment
6368
, Object listBaseDirection) {
6469
this.itemTextAlignment = (TextAlignment?)itemTextAlignment;
6570
this.itemBaseDirection = (BaseDirection?)itemBaseDirection;
6671
this.listTextAlignment = (TextAlignment?)listTextAlignment;
6772
this.listBaseDirection = (BaseDirection?)listBaseDirection;
68-
CreateOrClearDestinationFolder(DESTINATION_FOLDER);
69-
// Create an HTML for this test
70-
CreateHtml();
7173
}
7274

7375
public ListAlignmentDirectionTest(Object[] array)
@@ -102,6 +104,8 @@ public static ICollection<NUnit.Framework.TestFixtureData> AlignItemsAndJustifyC
102104
public virtual void AlignmentDirectionTest() {
103105
// TODO DEVSIX-5727 direction of the first list-item should define the symbol indent's side. Once the issue
104106
// is fixed, the corresponding cmps should be updated.
107+
// Create an HTML for this test
108+
CreateHtml();
105109
String fileName = MessageFormatUtil.Format(RESULTANT_FILE_NAME_PATTERN, FormatTextAlignment(itemTextAlignment
106110
), FormatBaseDirection(itemBaseDirection), FormatTextAlignment(listTextAlignment), FormatBaseDirection
107111
(listBaseDirection));

itext.tests/itext.layout.tests/itext/layout/ListItemPositionAlignmentTest.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,18 @@ public class ListItemPositionAlignmentTest : ExtendedITextTest {
6262

6363
private int? comparisonPdfId;
6464

65+
[NUnit.Framework.OneTimeSetUp]
66+
public static void BeforeClass() {
67+
CreateOrClearDestinationFolder(DESTINATION_FOLDER);
68+
}
69+
6570
public ListItemPositionAlignmentTest(Object listBaseDirection, Object listItemBaseDirection, Object listSymbolAlignment
6671
, Object listSymbolPosition, Object comparisonPdfId) {
6772
this.listBaseDirection = (BaseDirection?)listBaseDirection;
6873
this.listItemBaseDirection = (BaseDirection?)listItemBaseDirection;
6974
this.listSymbolAlignment = (ListSymbolAlignment)listSymbolAlignment;
7075
this.listSymbolPosition = (ListSymbolPosition)listSymbolPosition;
7176
this.comparisonPdfId = (int?)comparisonPdfId;
72-
CreateOrClearDestinationFolder(DESTINATION_FOLDER);
73-
// Create an HTML for this test
74-
CreateHtml();
7577
}
7678

7779
public ListItemPositionAlignmentTest(Object[] array)
@@ -108,6 +110,8 @@ public static ICollection<NUnit.Framework.TestFixtureData> BaseDirectionAndSymbo
108110
[NUnit.Framework.Test]
109111
[LogMessage(iText.IO.Logs.IoLogMessageConstant.TYPOGRAPHY_NOT_FOUND, Count = 8)]
110112
public virtual void DefaultListIemPositionAlignmentTest() {
113+
// Create an HTML for this test
114+
CreateHtml();
111115
String fileName = MessageFormatUtil.Format(RESULTANT_FILE_NAME_PATTERN, FormatSymbolPosition(listSymbolPosition
112116
), FormatSymbolAlignment(listSymbolAlignment), FormatBaseDirection(listItemBaseDirection), FormatBaseDirection
113117
(listBaseDirection));

0 commit comments

Comments
 (0)