Skip to content

Commit 09ef468

Browse files
committed
Merge branch 'develop' into devsecops
2 parents 1710ff9 + 21c37b5 commit 09ef468

18 files changed

+341
-194
lines changed

itext.tests/itext.kernel.tests/itext/kernel/pdf/PdfDocumentTest.cs

Lines changed: 7 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ You should have received a copy of the GNU Affero General Public License
2121
along with this program. If not, see <https://www.gnu.org/licenses/>.
2222
*/
2323
using System;
24+
using System.Collections.Generic;
2425
using System.IO;
2526
using iText.Commons.Utils;
2627
using iText.IO.Image;
@@ -32,6 +33,7 @@ You should have received a copy of the GNU Affero General Public License
3233
using iText.Kernel.Pdf.Annot;
3334
using iText.Kernel.Pdf.Canvas;
3435
using iText.Kernel.Pdf.Filespec;
36+
using iText.Kernel.Pdf.Layer;
3537
using iText.Kernel.Pdf.Navigation;
3638
using iText.Kernel.Pdf.Tagging;
3739
using iText.Kernel.Pdf.Xobject;
@@ -530,60 +532,13 @@ public virtual void GetDefaultConformanceLevelTest() {
530532
NUnit.Framework.Assert.IsFalse(document.GetConformance().IsPdfAOrUa());
531533
}
532534

533-
//TODO DEVSIX-8490 remove this test when implemented
534535
[NUnit.Framework.Test]
535-
[LogMessage(KernelLogMessageConstant.DUPLICATE_ENTRIES_IN_ORDER_ARRAY_REMOVED)]
536-
public virtual void RemoveDuplicatesInOrderArrayTest() {
537-
String inputPdf = "removeDuplicatesInOrderArray.pdf";
538-
String outputPdf = "removedDuplicateInOrderArray.pdf";
539-
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + inputPdf), CompareTool.CreateTestPdfWriter
540-
(DESTINATION_FOLDER + outputPdf));
541-
//Need to update OCProperties
542-
doc.GetCatalog().GetOCProperties(false);
536+
public virtual void OcgWithTwoParentsTest() {
537+
String inputPdf = "ocgWithTwoParents.pdf";
538+
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + inputPdf));
539+
IList<PdfLayer> layerList = doc.GetCatalog().GetOCProperties(false).GetLayers();
540+
NUnit.Framework.Assert.AreEqual(2, layerList[4].GetParents().Count);
543541
doc.Close();
544-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(DESTINATION_FOLDER + outputPdf, SOURCE_FOLDER
545-
+ "cmp_" + outputPdf, DESTINATION_FOLDER));
546-
}
547-
548-
//TODO DEVSIX-8490 remove this test when implemented
549-
[NUnit.Framework.Test]
550-
[LogMessage(KernelLogMessageConstant.DUPLICATE_ENTRIES_IN_ORDER_ARRAY_REMOVED)]
551-
public virtual void RemoveNestedDuplicatesInOrderArrayTest() {
552-
String inputPdf = "removeNestedDuplicatesInOrderArray.pdf";
553-
String outputPdf = "removedNestedDuplicatesInOrderArray.pdf";
554-
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + inputPdf), new PdfWriter(DESTINATION_FOLDER
555-
+ outputPdf));
556-
//Need to update OCProperties
557-
doc.GetCatalog().GetOCProperties(false);
558-
doc.Close();
559-
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(DESTINATION_FOLDER + outputPdf, SOURCE_FOLDER
560-
+ "cmp_" + outputPdf, DESTINATION_FOLDER));
561-
}
562-
563-
//TODO DEVSIX-8490 remove this test when implemented
564-
[NUnit.Framework.Test]
565-
public virtual void RemoveDuplicatesHasChildInOrderArrayTest() {
566-
String inputPdf = "removeDuplicatesHasChildInOrderArray.pdf";
567-
String outputPdf = "removedDuplicatesHasChildInOrderArray.pdf";
568-
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + inputPdf), CompareTool.CreateTestPdfWriter
569-
(DESTINATION_FOLDER + outputPdf));
570-
PdfCatalog catalog = doc.GetCatalog();
571-
Exception e = NUnit.Framework.Assert.Catch(typeof(PdfException), () => catalog.GetOCProperties(false));
572-
NUnit.Framework.Assert.AreEqual(MessageFormatUtil.Format(KernelExceptionMessageConstant.UNABLE_TO_REMOVE_DUPLICATE_LAYER
573-
, "4 0 R"), e.Message);
574-
}
575-
576-
//TODO DEVSIX-8490 remove this test when implemented
577-
[NUnit.Framework.Test]
578-
public virtual void RemoveNestedDuplicatesHasChildInOrderArrayTest() {
579-
String inputPdf = "removeNestedDuplicatesHasChildInOrderArray.pdf";
580-
String outputPdf = "removedNestedDuplicatesHasChildInOrderArray.pdf";
581-
PdfDocument doc = new PdfDocument(new PdfReader(SOURCE_FOLDER + inputPdf), CompareTool.CreateTestPdfWriter
582-
(DESTINATION_FOLDER + outputPdf));
583-
PdfCatalog catalog = doc.GetCatalog();
584-
Exception e = NUnit.Framework.Assert.Catch(typeof(PdfException), () => catalog.GetOCProperties(false));
585-
NUnit.Framework.Assert.AreEqual(MessageFormatUtil.Format(KernelExceptionMessageConstant.UNABLE_TO_REMOVE_DUPLICATE_LAYER
586-
, "27 0 R"), e.Message);
587542
}
588543

589544
[NUnit.Framework.Test]

itext.tests/itext.kernel.tests/itext/kernel/pdf/layer/PdfLayerTest.cs

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ You should have received a copy of the GNU Affero General Public License
2525
using iText.Commons.Utils;
2626
using iText.IO.Font.Constants;
2727
using iText.IO.Source;
28-
using iText.Kernel.Exceptions;
2928
using iText.Kernel.Font;
3029
using iText.Kernel.Geom;
3130
using iText.Kernel.Pdf;
@@ -466,21 +465,69 @@ public virtual void TestReadOcgFromApAnnotation() {
466465
}
467466
}
468467

469-
//TODO DEVSIX-8490 remove this test when implemented
470468
[NUnit.Framework.Test]
471-
public virtual void AddSecondParentlayerTest() {
472-
using (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
473-
using (PdfDocument doc = new PdfDocument(new PdfWriter(outputStream))) {
474-
PdfLayer childLayer = new PdfLayer("childLayer", doc);
475-
PdfLayer parentLayer1 = new PdfLayer("firstParentLayer", doc);
476-
PdfLayer parentLayer2 = new PdfLayer("secondParentLayer", doc);
477-
parentLayer1.AddChild(childLayer);
478-
PdfIndirectReference @ref = childLayer.GetIndirectReference();
479-
Exception e = NUnit.Framework.Assert.Catch(typeof(PdfException), () => parentLayer2.AddChild(childLayer));
480-
NUnit.Framework.Assert.AreEqual(MessageFormatUtil.Format(KernelExceptionMessageConstant.UNABLE_TO_ADD_SECOND_PARENT_LAYER
481-
, @ref.ToString()), e.Message);
482-
}
483-
}
469+
public virtual void NestedLayerTwoParentsTest() {
470+
String outPdf = destinationFolder + "nestedLayerTwoParents.pdf";
471+
String cmpPdf = sourceFolder + "cmp_nestedLayerTwoParents.pdf";
472+
PdfDocument pdfDoc = new PdfDocument(CompareTool.CreateTestPdfWriter(outPdf));
473+
PdfFont font = PdfFontFactory.CreateFont();
474+
PdfLayer parentLayer1 = new PdfLayer("Parent layer 1", pdfDoc);
475+
PdfLayer parentLayer2 = new PdfLayer("Parent layer 2", pdfDoc);
476+
PdfLayer nestedLayer = new PdfLayer("Nested layer 1", pdfDoc);
477+
parentLayer1.AddChild(nestedLayer);
478+
parentLayer2.AddChild(nestedLayer);
479+
PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
480+
canvas.SetFontAndSize(font, 12);
481+
PdfLayerTestUtils.AddTextInsideLayer(parentLayer1, canvas, "Parent layer 1 text", 50, 750);
482+
PdfLayerTestUtils.AddTextInsideLayer(parentLayer2, canvas, "Parent layer 2 text", 50, 700);
483+
PdfLayerTestUtils.AddTextInsideLayer(nestedLayer, canvas, "Nested layer 1 text", 100, 650);
484+
canvas.Release();
485+
pdfDoc.Close();
486+
PdfLayerTestUtils.CompareLayers(outPdf, cmpPdf);
487+
}
488+
489+
[NUnit.Framework.Test]
490+
public virtual void NestedLayerTwoParentsWithOneParentTest() {
491+
String outPdf = destinationFolder + "nestedLayerTwoParentsWithOneParent.pdf";
492+
String cmpPdf = sourceFolder + "cmp_nestedLayerTwoParentsWithOneParent.pdf";
493+
PdfDocument pdfDoc = new PdfDocument(CompareTool.CreateTestPdfWriter(outPdf));
494+
PdfFont font = PdfFontFactory.CreateFont();
495+
PdfLayer parentLayer = new PdfLayer("Parent layer", pdfDoc);
496+
PdfLayer layer1 = new PdfLayer("Layer 1", pdfDoc);
497+
PdfLayer layer2 = new PdfLayer("Layer 2", pdfDoc);
498+
PdfLayer nestedLayer = new PdfLayer("Nested layer 1", pdfDoc);
499+
layer1.AddChild(nestedLayer);
500+
layer2.AddChild(nestedLayer);
501+
parentLayer.AddChild(layer1);
502+
parentLayer.AddChild(layer2);
503+
PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
504+
canvas.SetFontAndSize(font, 12);
505+
PdfLayerTestUtils.AddTextInsideLayer(parentLayer, canvas, "Parent layer text", 50, 750);
506+
PdfLayerTestUtils.AddTextInsideLayer(layer1, canvas, "layer 1 text", 100, 700);
507+
PdfLayerTestUtils.AddTextInsideLayer(layer2, canvas, "layer 2 text", 100, 650);
508+
PdfLayerTestUtils.AddTextInsideLayer(nestedLayer, canvas, "Nested layer text", 150, 600);
509+
canvas.Release();
510+
pdfDoc.Close();
511+
PdfLayerTestUtils.CompareLayers(outPdf, cmpPdf);
512+
}
513+
514+
[NUnit.Framework.Test]
515+
public virtual void DuplicatedNestedLayersTest() {
516+
String outPdf = destinationFolder + "duplicatedNestedLayers.pdf";
517+
String cmpPdf = sourceFolder + "cmp_duplicatedNestedLayers.pdf";
518+
PdfDocument pdfDoc = new PdfDocument(CompareTool.CreateTestPdfWriter(outPdf));
519+
PdfFont font = PdfFontFactory.CreateFont();
520+
PdfLayer parentLayer = new PdfLayer("Parent layer", pdfDoc);
521+
PdfLayer nestedLayer1 = new PdfLayer("Nested layer", pdfDoc);
522+
parentLayer.AddChild(nestedLayer1);
523+
parentLayer.AddChild(nestedLayer1);
524+
PdfCanvas canvas = new PdfCanvas(pdfDoc.AddNewPage());
525+
canvas.SetFontAndSize(font, 12);
526+
PdfLayerTestUtils.AddTextInsideLayer(parentLayer, canvas, "Parent layer text", 50, 750);
527+
PdfLayerTestUtils.AddTextInsideLayer(nestedLayer1, canvas, "Nested layer text", 100, 700);
528+
canvas.Release();
529+
pdfDoc.Close();
530+
PdfLayerTestUtils.CompareLayers(outPdf, cmpPdf);
484531
}
485532
}
486533
}

0 commit comments

Comments
 (0)