package com.ruoyi.system.utils;
public class ProtocolHtmlSanitizerTest
{
public static void main(String[] args)
{
shouldKeepSupportedFormatting();
shouldRemoveDangerousContentAndAttributes();
}
private static void shouldKeepSupportedFormatting()
{
String html = "
入园承诺
\n"
+ "第二行
";
String result = ProtocolHtmlSanitizer.clean(html);
require(result.contains("入园承诺
"), "居中样式未保留");
require(result.contains("第二行"), "文字样式未保留");
require(!result.contains("position"), "非白名单样式未清除");
}
private static void shouldRemoveDangerousContentAndAttributes()
{
String html = "正文"
+ "内容
";
String result = ProtocolHtmlSanitizer.clean(html);
require(result.contains("正文内容
"), "安全正文结构未保留");
require(!result.contains("script"), "危险标签未清除");
require(!result.contains("onclick"), "事件属性未清除");
require(!result.contains("javascript"), "危险样式内容未清除");
}
private static void require(boolean condition, String message)
{
if (!condition)
{
throw new AssertionError(message);
}
}
}