Browse Source

Fix MergeWithSameNamedOCGTest test to do not accept possible false positive

DEVSIX-6093

Autoported commit.
Original commit hash: [0a6dd44b9]
pull/24/merge
vitali.prudnikovich 3 years ago
committed by iText Software
parent
commit
800fe0f7ac
  1. 3
      itext.tests/itext.kernel.tests/itext/kernel/utils/PdfMergerTest.cs
  2. 1
      itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/cmp_MergeWithSameNamedOCG.pdf
  3. 1
      itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/sameNamdOCGSource.pdf
  4. 2
      itext/itext.kernel/itext/kernel/pdf/OcgPropertiesCopier.cs
  5. 2
      port-hash

3
itext.tests/itext.kernel.tests/itext/kernel/utils/PdfMergerTest.cs

@ -458,6 +458,9 @@ namespace iText.Kernel.Utils {
}
NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(mergedDocument, cmpDocument, destinationFolder
));
// We have to compare visually also because compareByContent doesn't catch the differences in OCGs with the same names
NUnit.Framework.Assert.IsNull(new CompareTool().CompareVisually(mergedDocument, cmpDocument, destinationFolder
, "diff_"));
}
private void MergePdfs(IList<FileInfo> sources, String destination) {

1
itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/cmp_MergeWithSameNamedOCG.pdf

@ -1,4 +1,3 @@
On Layer 1 page 1
On Layer 2 page 1
On Layer 1 page 2
On Layer 2 page 2

1
itext.tests/itext.kernel.tests/resources/itext/kernel/utils/PdfMergerTest/sameNamdOCGSource.pdf

@ -1,4 +1,3 @@
On Layer 1 page 1
On Layer 2 page 1
On Layer 1 page 2
On Layer 2 page 2

2
itext/itext.kernel/itext/kernel/pdf/OcgPropertiesCopier.cs

@ -230,6 +230,8 @@ namespace iText.Kernel.Pdf {
foreach (PdfIndirectReference fromOcgRef in fromOcgsToCopy) {
PdfDictionary toOcg = (PdfDictionary)fromOcgRef.GetRefersTo().CopyTo(toDocument, false);
String currentLayerName = toOcg.GetAsString(PdfName.Name).ToUnicodeString();
// Here we check on existed layer names only in destination document but not in source document.
// That is why there is no something like layerNames.add(currentLayerName); after this if statement
if (layerNames.Contains(currentLayerName)) {
hasConflictingNames = true;
int i = 0;

2
port-hash

@ -1 +1 @@
9561a1aecf626a4609068b87fe76b467bc41cf21
0a6dd44b90f5bc37df559d1f1b2e620d807a07a6
Loading…
Cancel
Save