Skip to content

Commit 177bb1d

Browse files
caluwaertpPeter Caluwaert
andauthored
fix nfe (=NumberFormatException) when using inner-border on a mj-column (#10)
Co-authored-by: Peter Caluwaert <peter.caluwaert.ext@bosa.fgov.be>
1 parent 9b9a68b commit 177bb1d

File tree

4 files changed

+26
-8
lines changed

4 files changed

+26
-8
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<mjml>
2+
<mj-body>
3+
<mj-section>
4+
<mj-column padding="25px" border="5px solid green" inner-border="5px solid red" >
5+
<mj-text>hello</mj-text>
6+
</mj-column>
7+
</mj-section>
8+
</mj-body>
9+
</mjml>

src/main/java/ch/digitalfondue/mjml4j/BaseComponent.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import org.w3c.dom.Element;
44

5-
import java.util.*;
5+
import java.util.ArrayList;
6+
import java.util.LinkedHashMap;
7+
import java.util.List;
8+
import java.util.Locale;
9+
import java.util.Map;
610
import java.util.regex.Pattern;
711

812
import static ch.digitalfondue.mjml4j.Utils.equalsIgnoreCase;
@@ -247,7 +251,7 @@ CssBoxModel getBoxModel() {
247251

248252
var paddings = getShorthandAttributeValue("padding", "right") + getShorthandAttributeValue("padding", "left");
249253

250-
var borders = getShorthandBorderValue("right") + getShorthandBorderValue("left");
254+
var borders = getShorthandBorderValue("border", "right") + getShorthandBorderValue("border", "left");
251255

252256

253257
if (hasParentComponent() && getParent() instanceof BodyComponent parent) {
@@ -271,9 +275,9 @@ CssBoxModel getBoxModel() {
271275

272276
private static final Pattern PATTERN_SHORTHAND_BORDER_VALUE = Pattern.compile("(?:(?:^| )([0-9]+))");
273277

274-
double getShorthandBorderValue(String direction) {
275-
var mjAttributeDirection = getAttribute("border-" + direction);
276-
var mjAttribute = getAttribute("border");
278+
double getShorthandBorderValue(String attributeName, String direction) {
279+
var mjAttributeDirection = getAttribute(attributeName + "-" + direction);
280+
var mjAttribute = getAttribute(attributeName);
277281

278282
if (!Utils.isNullOrWhiteSpace(mjAttributeDirection)) {
279283
return CssUnitParser.parse(mjAttributeDirection).value();

src/main/java/ch/digitalfondue/mjml4j/MjmlComponentColumn.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ private int getSectionColumnCount() {
3838
CssBoxModel getBoxModel() {
3939

4040
var paddings = getShorthandAttributeValue("padding", "right") + getShorthandAttributeValue("padding", "left");
41-
var borders = getShorthandBorderValue("right") + getShorthandBorderValue("left");
42-
var innerBorders = getShorthandAttributeValue("inner-border", "left") + getShorthandAttributeValue("inner-border", "right");
41+
var borders = getShorthandBorderValue("border", "right") + getShorthandBorderValue("border", "left");
42+
var innerBorders = getShorthandBorderValue("inner-border", "left") + getShorthandBorderValue("inner-border", "right");
4343
var allPaddings = paddings + borders + innerBorders;
4444

4545
if (hasParentComponent()) {

src/test/java/ch/digitalfondue/mjml4j/BugTests.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,15 @@
55
import static ch.digitalfondue.mjml4j.Helpers.testTemplate;
66

77
class BugTests {
8-
8+
99
// see https://github.com/digitalfondue/mjml4j/issues/7
1010
@Test
1111
void checkMjSocialNpe() {
1212
testTemplate("bug-mj-social");
1313
}
14+
15+
@Test
16+
void checkMjColumnInnerBorderNfe() {
17+
testTemplate("bug-mj-column-inner-border");
18+
}
1419
}

0 commit comments

Comments
 (0)