package moulder.moulds;
import static org.custommonkey.xmlunit.XMLAssert.assertXMLEqual;
import java.io.StringReader;
import java.util.List;
import moulder.Moulder;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
import org.junit.Test;
public class AddCssClassMoulderTest extends BaseMoulderTest {
@Test
public void noClass() throws Exception {
final String bodyHtml = "<tag>text</tag>";
final String cssClass = "ss";
final String expected = "<tag class=\"ss\">text\n</tag>";
test(bodyHtml, cssClass, expected);
}
@Test
public void withSameClass() throws Exception {
final String bodyHtml = "<tag class=\"ss\">text</tag>";
final String cssClass = "ss";
final String expected = "<tag class=\"ss\">text\n</tag>";
test(bodyHtml, cssClass, expected);
}
@Test
public void withSimilarClass() throws Exception {
final String bodyHtml = "<tag class=\"sss ss1\">text</tag>";
final String cssClass = "ss";
final String expected = "<tag class=\"sss ss1 ss\">text\n</tag>";
test(bodyHtml, cssClass, expected);
}
private void test(String bodyHtml, String cssClass, String expected) throws Exception {
Document document = Jsoup.parseBodyFragment(bodyHtml);
Element element = document.getElementsByTag("tag").first();
Moulder moulder = new AddCssClassMoulder(cssClass);
List<Node> processed = moulder.process(element);
assertXMLEqual(new StringReader("<body>" + expected + "</body>"),
new StringReader(html(processed)));
}
}