Skip to content

Commit a5b720b

Browse files
Whitelist flex and grid displays and related properties in PML/MML (#363)
1 parent b2179cf commit a5b720b

File tree

2 files changed

+182
-10
lines changed
  • src
    • main/java/org/symphonyoss/symphony/messageml/elements
    • test/java/org/symphonyoss/symphony/messageml/elements

2 files changed

+182
-10
lines changed

src/main/java/org/symphonyoss/symphony/messageml/elements/Styles.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ public class Styles {
1515

1616
public static Set<String> ALLOWED_PROPERTIES = new HashSet<>();
1717
static {
18+
ALLOWED_PROPERTIES.add("align-content");
19+
ALLOWED_PROPERTIES.add("align-items");
20+
ALLOWED_PROPERTIES.add("align-self");
1821
ALLOWED_PROPERTIES.add("background");
1922
ALLOWED_PROPERTIES.add("background-attachment");
2023
ALLOWED_PROPERTIES.add("background-blend-mode");
@@ -67,6 +70,13 @@ public class Styles {
6770
ALLOWED_PROPERTIES.add("counter-reset");
6871
ALLOWED_PROPERTIES.add("display");
6972
ALLOWED_PROPERTIES.add("empty-cells");
73+
ALLOWED_PROPERTIES.add("flex");
74+
ALLOWED_PROPERTIES.add("flex-basis");
75+
ALLOWED_PROPERTIES.add("flex-direction");
76+
ALLOWED_PROPERTIES.add("flex-flow");
77+
ALLOWED_PROPERTIES.add("flex-grow");
78+
ALLOWED_PROPERTIES.add("flex-shrink");
79+
ALLOWED_PROPERTIES.add("flex-wrap");
7080
ALLOWED_PROPERTIES.add("font");
7181
ALLOWED_PROPERTIES.add("font-family");
7282
ALLOWED_PROPERTIES.add("font-kerning");
@@ -76,7 +86,29 @@ public class Styles {
7686
ALLOWED_PROPERTIES.add("font-style");
7787
ALLOWED_PROPERTIES.add("font-variant");
7888
ALLOWED_PROPERTIES.add("font-weight");
89+
ALLOWED_PROPERTIES.add("gap");
90+
ALLOWED_PROPERTIES.add("grid");
91+
ALLOWED_PROPERTIES.add("grid-area");
92+
ALLOWED_PROPERTIES.add("grid-auto-columns");
93+
ALLOWED_PROPERTIES.add("grid-auto-flow");
94+
ALLOWED_PROPERTIES.add("grid-auto-rows");
95+
ALLOWED_PROPERTIES.add("grid-column");
96+
ALLOWED_PROPERTIES.add("grid-column-end");
97+
ALLOWED_PROPERTIES.add("grid-column-gap");
98+
ALLOWED_PROPERTIES.add("grid-column-start");
99+
ALLOWED_PROPERTIES.add("grid-gap");
100+
ALLOWED_PROPERTIES.add("grid-row");
101+
ALLOWED_PROPERTIES.add("grid-row-end");
102+
ALLOWED_PROPERTIES.add("grid-row-gap");
103+
ALLOWED_PROPERTIES.add("grid-row-start");
104+
ALLOWED_PROPERTIES.add("grid-template");
105+
ALLOWED_PROPERTIES.add("grid-template-areas");
106+
ALLOWED_PROPERTIES.add("grid-template-columns");
107+
ALLOWED_PROPERTIES.add("grid-template-rows");
79108
ALLOWED_PROPERTIES.add("height");
109+
ALLOWED_PROPERTIES.add("justify-content");
110+
ALLOWED_PROPERTIES.add("justify-items");
111+
ALLOWED_PROPERTIES.add("justify-self");
80112
ALLOWED_PROPERTIES.add("letter-spacing");
81113
ALLOWED_PROPERTIES.add("line-height");
82114
ALLOWED_PROPERTIES.add("list-style");
@@ -106,6 +138,9 @@ public class Styles {
106138
ALLOWED_PROPERTIES.add("padding-left");
107139
ALLOWED_PROPERTIES.add("padding-right");
108140
ALLOWED_PROPERTIES.add("padding-top");
141+
ALLOWED_PROPERTIES.add("place-content");
142+
ALLOWED_PROPERTIES.add("place-items");
143+
ALLOWED_PROPERTIES.add("place-self");
109144
ALLOWED_PROPERTIES.add("table-layout");
110145
ALLOWED_PROPERTIES.add("text-align");
111146
ALLOWED_PROPERTIES.add("text-align-last");

src/test/java/org/symphonyoss/symphony/messageml/elements/StylesTest.java

Lines changed: 147 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,153 @@ public void validate() throws Exception {
2929

3030
@Test
3131
public void validateAll() throws Exception {
32-
String validString =
33-
"background:values values values;background-attachment:values;background-blend-mode:values;background-clip:values;background-color:values;background-image: url('http://myimage.jpg');background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSU [...] =);background-position:values;background-repeat:values;background-size:values;border:values with spaces;border-bottom:101010;"
34-
+ "border-bottom-color:10 px;border-bottom-left-radius:values;border-bottom-right-radius:10 px values;border-bottom-style:100;border-bottom-width:values values;border-collapse:values;border-color:values;border-image:values;border-image-outset:values;border-image-repeat:values;"
35-
+ "border-image-slice:values;border-image-source:values;border-image-width:values;border-left:values;border-left-color:values;border-left-style:values;border-left-width:values;border-radius:values;border-right:values;border-right-color:values;border-right-style:values;"
36-
+ "border-right-width:values;border-spacing:values;border-style:values;border-top:values;border-top-color:values;border-top-left-radius:values;border-top-right-radius:values;border-top-style:values;border-top-width:values;border-width:values;box-shadow:values;box-sizing:values;"
37-
+ "caption-side:values;clear:values;color:values;content:values;counter-increment:values;counter-reset:values;display:values;empty-cells:values;font:values;font-family:values;font-kerning:values;font-size:values;font-size-adjust:values;font-stretch:values;font-style:values;"
38-
+ "font-variant:values;font-weight:values;height:values;letter-spacing:values;line-height:values;list-style:values;list-style-image:values;list-style-position:values;list-style-type:values;margin:values;margin-bottom:values;margin-left:values;margin-right:values;margin-top:values;"
39-
+ "max-height:values;max-width:values;min-height:values;min-width:values;opacity:values;outline:values;outline-color:values;outline-offset:values;outline-style:values;outline-width:values;overflow:values;overflow-x:values;overflow-y:values;padding:values;padding-bottom:values;"
40-
+ "padding-left:values;padding-right:values;padding-top:values;table-layout:values;text-align:values;text-align-last:values;text-decoration:values;text-decoration-color:values;text-decoration-line:values;text-decoration-style:values;text-indent:values;text-justify:values;"
41-
+ "text-overflow:values;text-shadow:values;text-transform:values;visibility:values;white-space:values;width:values;word-break:values;word-spacing:values;word-wrap:values;";
32+
String validString = ""
33+
+ "align-content:values;"
34+
+ "align-items:values;"
35+
+ "align-self:values;"
36+
+ "background:values values values;"
37+
+ "background-attachment:values;"
38+
+ "background-blend-mode:values;"
39+
+ "background-clip:values;"
40+
+ "background-color:values;"
41+
+ "background-image: url('http://myimage.jpg');"
42+
+ "background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSU [...] =);"
43+
+ "background-position:values;"
44+
+ "background-repeat:values;"
45+
+ "background-size:values;"
46+
+ "border:values with spaces;"
47+
+ "border-bottom:101010;"
48+
+ "border-bottom-color:10 px;"
49+
+ "border-bottom-left-radius:values;"
50+
+ "border-bottom-right-radius:10 px values;"
51+
+ "border-bottom-style:100;"
52+
+ "border-bottom-width:values values;"
53+
+ "border-collapse:values;"
54+
+ "border-color:values;"
55+
+ "border-image:values;"
56+
+ "border-image-outset:values;"
57+
+ "border-image-repeat:values;"
58+
+ "border-image-slice:values;"
59+
+ "border-image-source:values;"
60+
+ "border-image-width:values;"
61+
+ "border-left:values;"
62+
+ "border-left-color:values;"
63+
+ "border-left-style:values;"
64+
+ "border-left-width:values;"
65+
+ "border-radius:values;"
66+
+ "border-right:values;"
67+
+ "border-right-color:values;"
68+
+ "border-right-style:values;"
69+
+ "border-right-width:values;"
70+
+ "border-spacing:values;"
71+
+ "border-style:values;"
72+
+ "border-top:values;"
73+
+ "border-top-color:values;"
74+
+ "border-top-left-radius:values;"
75+
+ "border-top-right-radius:values;"
76+
+ "border-top-style:values;"
77+
+ "border-top-width:values;"
78+
+ "border-width:values;"
79+
+ "box-shadow:values;"
80+
+ "box-sizing:values;"
81+
+ "caption-side:values;"
82+
+ "clear:values;"
83+
+ "color:values;"
84+
+ "content:values;"
85+
+ "counter-increment:values;"
86+
+ "counter-reset:values;"
87+
+ "display:values;"
88+
+ "empty-cells:values;"
89+
+ "flex:values;"
90+
+ "flex-basis:values;"
91+
+ "flex-direction:values;"
92+
+ "flex-flow:values;"
93+
+ "flex-grow:values;"
94+
+ "flex-shrink:values;"
95+
+ "flex-wrap:values;"
96+
+ "font:values;"
97+
+ "font-family:values;"
98+
+ "font-kerning:values;"
99+
+ "font-size:values;"
100+
+ "font-size-adjust:values;"
101+
+ "font-stretch:values;"
102+
+ "font-style:values;"
103+
+ "font-variant:values;"
104+
+ "font-weight:values;"
105+
+ "gap:values;"
106+
+ "grid:values;"
107+
+ "grid-area:values;"
108+
+ "grid-auto-columns:values;"
109+
+ "grid-auto-flow:values;"
110+
+ "grid-auto-rows:values;"
111+
+ "grid-column:values;"
112+
+ "grid-column-end:values;"
113+
+ "grid-column-gap:values;"
114+
+ "grid-column-start:values;"
115+
+ "grid-gap:values;"
116+
+ "grid-row:values;"
117+
+ "grid-row-end:values;"
118+
+ "grid-row-gap:values;"
119+
+ "grid-row-start:values;"
120+
+ "grid-template:values;"
121+
+ "grid-template-areas:values;"
122+
+ "grid-template-columns:values;"
123+
+ "grid-template-rows:values;"
124+
+ "height:values;"
125+
+ "justify-content:values;"
126+
+ "justify-items:values;"
127+
+ "justify-self:values;"
128+
+ "letter-spacing:values;"
129+
+ "line-height:values;"
130+
+ "list-style:values;"
131+
+ "list-style-image:values;"
132+
+ "list-style-position:values;"
133+
+ "list-style-type:values;"
134+
+ "margin:values;"
135+
+ "margin-bottom:values;"
136+
+ "margin-left:values;"
137+
+ "margin-right:values;"
138+
+ "margin-top:values;"
139+
+ "max-height:values;"
140+
+ "max-width:values;"
141+
+ "min-height:values;"
142+
+ "min-width:values;"
143+
+ "opacity:values;"
144+
+ "outline:values;"
145+
+ "outline-color:values;"
146+
+ "outline-offset:values;"
147+
+ "outline-style:values;"
148+
+ "outline-width:values;"
149+
+ "overflow:values;"
150+
+ "overflow-x:values;"
151+
+ "overflow-y:values;"
152+
+ "padding:values;"
153+
+ "padding-bottom:values;"
154+
+ "padding-left:values;"
155+
+ "padding-right:values;"
156+
+ "padding-top:values;"
157+
+ "place-content:values;"
158+
+ "place-items:values;"
159+
+ "place-self:values;"
160+
+ "table-layout:values;"
161+
+ "text-align:values;"
162+
+ "text-align-last:values;"
163+
+ "text-decoration:values;"
164+
+ "text-decoration-color:values;"
165+
+ "text-decoration-line:values;"
166+
+ "text-decoration-style:values;"
167+
+ "text-indent:values;"
168+
+ "text-justify:values;"
169+
+ "text-overflow:values;"
170+
+ "text-shadow:values;"
171+
+ "text-transform:values;"
172+
+ "visibility:values;"
173+
+ "white-space:values;"
174+
+ "width:values;"
175+
+ "word-break:values;"
176+
+ "word-spacing:values;"
177+
+ "word-wrap:values;";
178+
42179
Styles.validate(validString);
43180
}
44181
}

0 commit comments

Comments
 (0)