private void runTest(String css, String golden, String... warnings)
throws Exception {
MessageContext mc = new MessageContext();
mq.getMessages().clear();
CssTree cssTree = css(fromString(css), true);
MessageQueue smq = new SimpleMessageQueue();
CssValidator v = makeCssValidator(smq);
boolean valid = v.validateCss(ac(cssTree));
mq.getMessages().addAll(smq.getMessages());
// If no warnings are expected, the result should be valid
if (warnings.length == 0) {
if (!valid) {
System.err.println(cssTree.toStringDeep());
}
assertTrue(css, valid);
} else {
removeInvalidNodes(AncestorChain.instance(cssTree));
}
mc.relevantKeys = new LinkedHashSet<SyntheticAttributeKey<?>>(
Arrays.<SyntheticAttributeKey<?>>asList(
CssValidator.CSS_PROPERTY_PART_TYPE,
CssValidator.CSS_PROPERTY_PART));
StringBuilder sb = new StringBuilder();
cssTree.format(mc, sb);
if (golden != null) {
assertEquals(css, golden.trim(), sb.toString().trim());
}
List<String> actualWarnings = Lists.newArrayList();