Skip to content

Commit 5c972df

Browse files
AnhelinaMiText-CI
authored andcommitted
SVG: don't draw rect with negative or zero height or width
DEVSIX-8760 Autoported commit. Original commit hash: [457ddde85]
1 parent 48ae01e commit 5c972df

File tree

11 files changed

+28
-8
lines changed

11 files changed

+28
-8
lines changed

itext.tests/itext.svg.tests/itext/svg/renderers/FillTest.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ public virtual void InvalidUrlFillTest() {
121121
[NUnit.Framework.Test]
122122
[LogMessage(SvgLogMessageConstant.UNMAPPED_TAG, Count = 4)]
123123
public virtual void TextFillFallbackTest() {
124-
//TODO update cmp file after DEVSIX-2915 will be fixed
125124
ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "textFillFallbackTest");
126125
}
127126

itext.tests/itext.svg.tests/itext/svg/renderers/StrokeTest.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,12 @@ public virtual void StrokeAttributesTest() {
102102

103103
[NUnit.Framework.Test]
104104
public virtual void HeightWidthZeroTest() {
105-
//TODO DEVSIX-8760 : change cmp after fix
106-
ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "height-width-zero");
105+
ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "heightWidthZero");
106+
}
107+
108+
[NUnit.Framework.Test]
109+
public virtual void HeightWidthNegativeTest() {
110+
ConvertAndCompareSinglePage(SOURCE_FOLDER, DESTINATION_FOLDER, "heightWidthNegative");
107111
}
108112

109113
[NUnit.Framework.Test]

itext.tests/itext.svg.tests/itext/svg/renderers/impl/ClipPathSvgNodeRendererLowLevelIntegrationTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public virtual void TestRectClipPathRenderer() {
7878
clipRenderer.AddChild(rectRenderer);
7979
clipRenderer.SetClippedRenderer(new RectangleSvgNodeRenderer());
8080
clipRenderer.Draw(sdc);
81-
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW\nn\n0 0 0 rg\n% rect\n0 0 0 0 re\nf\nQ\n", iText.Commons.Utils.JavaUtil.GetStringForBytes
81+
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW\nn\n0 0 0 rg\n% rect\nf\nQ\n", iText.Commons.Utils.JavaUtil.GetStringForBytes
8282
(cv.GetContentStream().GetBytes()));
8383
}
8484

@@ -93,7 +93,7 @@ public virtual void TestRectClipPathEoRendererNoChange() {
9393
clipRenderer.AddChild(rectRenderer);
9494
clipRenderer.SetClippedRenderer(new RectangleSvgNodeRenderer());
9595
clipRenderer.Draw(sdc);
96-
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW\nn\n0 0 0 rg\n% rect\n0 0 0 0 re\nf\nQ\n", iText.Commons.Utils.JavaUtil.GetStringForBytes
96+
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW\nn\n0 0 0 rg\n% rect\nf\nQ\n", iText.Commons.Utils.JavaUtil.GetStringForBytes
9797
(cv.GetContentStream().GetBytes()));
9898
}
9999

@@ -108,8 +108,8 @@ public virtual void TestRectEoClipPathRenderer() {
108108
clipRenderer.AddChild(rectRenderer);
109109
clipRenderer.SetClippedRenderer(new RectangleSvgNodeRenderer());
110110
clipRenderer.Draw(sdc);
111-
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW*\nn\n0 0 0 rg\n% rect\n0 0 0 0 re\nf\nQ\n",
112-
iText.Commons.Utils.JavaUtil.GetStringForBytes(cv.GetContentStream().GetBytes()));
111+
NUnit.Framework.Assert.AreEqual("q\n% rect\n0 0 300 300 re\nW*\nn\n0 0 0 rg\n% rect\nf\nQ\n", iText.Commons.Utils.JavaUtil.GetStringForBytes
112+
(cv.GetContentStream().GetBytes()));
113113
}
114114

115115
[NUnit.Framework.Test]
Binary file not shown.
Binary file not shown.
Lines changed: 6 additions & 0 deletions
Loading
Lines changed: 8 additions & 0 deletions
Loading

itext/itext.svg/itext/svg/renderers/impl/RectangleSvgNodeRenderer.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ protected internal override void DoDraw(SvgDrawContext context) {
5858
PdfCanvas cv = context.GetCurrentCanvas();
5959
cv.WriteLiteral("% rect\n");
6060
SetParameters(context);
61+
if (width <= 0 || height <= 0) {
62+
return;
63+
}
6164
bool singleValuePresent = (rxPresent && !ryPresent) || (!rxPresent && ryPresent);
6265
AffineTransform transform = ApplyNonScalingStrokeTransform(context);
6366
if (!rxPresent && !ryPresent) {

0 commit comments

Comments
 (0)