|
29 | 29 | package org.owasp.html;
|
30 | 30 |
|
31 | 31 | import java.util.Arrays;
|
| 32 | +import java.util.Collections; |
32 | 33 | import java.util.List;
|
33 | 34 | import java.util.Locale;
|
| 35 | +import java.util.Map; |
34 | 36 | import java.util.Set;
|
35 | 37 | import java.util.regex.Pattern;
|
36 | 38 | import java.util.stream.Collectors;
|
@@ -229,6 +231,54 @@ public static final void testStyleFiltering() {
|
229 | 231 | .allowStandardUrlProtocols()));
|
230 | 232 | }
|
231 | 233 |
|
| 234 | + @Test |
| 235 | + public void testCustomPropertyStyleFilterung() { |
| 236 | + assertEquals( |
| 237 | + Arrays.stream(new String[] { |
| 238 | + "<h1>Header</h1>", |
| 239 | + "<p>Paragraph 1</p>", |
| 240 | + "<p>Click me out</p>", |
| 241 | + "<p></p>", |
| 242 | + "<p><b>Fancy</b> with <i><b>soupy</b></i><b> tags</b>.", |
| 243 | + "</p><p style=\"text-align:center\">Stylish Para 1</p>", |
| 244 | + "<p>Stylish Para 2</p>", |
| 245 | + ""}).collect(Collectors.joining("\n")), |
| 246 | + apply(new HtmlPolicyBuilder() |
| 247 | + .allowCommonInlineFormattingElements() |
| 248 | + .allowCommonBlockElements() |
| 249 | + .allowStyling( |
| 250 | + CssSchema.withProperties( |
| 251 | + Map.of("text-align", |
| 252 | + new CssSchema.Property(0, |
| 253 | + Set.of("center"), |
| 254 | + Collections.emptyMap())))) |
| 255 | + .allowStandardUrlProtocols())); |
| 256 | + } |
| 257 | + |
| 258 | + @Test |
| 259 | + public void testCustomPropertyStyleFilterungDisallowed() { |
| 260 | + assertEquals( |
| 261 | + Arrays.stream(new String[] { |
| 262 | + "<h1>Header</h1>", |
| 263 | + "<p>Paragraph 1</p>", |
| 264 | + "<p>Click me out</p>", |
| 265 | + "<p></p>", |
| 266 | + "<p><b>Fancy</b> with <i><b>soupy</b></i><b> tags</b>.", |
| 267 | + "</p><p>Stylish Para 1</p>", |
| 268 | + "<p>Stylish Para 2</p>", |
| 269 | + ""}).collect(Collectors.joining("\n")), |
| 270 | + apply(new HtmlPolicyBuilder() |
| 271 | + .allowCommonInlineFormattingElements() |
| 272 | + .allowCommonBlockElements() |
| 273 | + .allowStyling( |
| 274 | + CssSchema.withProperties( |
| 275 | + Map.of("text-align", |
| 276 | + new CssSchema.Property(0, |
| 277 | + Set.of("left", "right"), |
| 278 | + Collections.emptyMap())))) |
| 279 | + .allowStandardUrlProtocols())); |
| 280 | + } |
| 281 | + |
232 | 282 | @Test
|
233 | 283 | public static final void testElementTransforming() {
|
234 | 284 | assertEquals(
|
|
0 commit comments