package xapi.elemental.api; import org.junit.Assert; import org.junit.Test; import elemental.dom.Element; public class PotentialNodeTest { private static class TestNode extends PotentialNode<Element> { @Override protected Element build(String html) { return null; } @Override public String toString() { StringBuilder b = new StringBuilder(); toHtml(b); return b.toString(); } } @Test public void testSimpleHtml() { TestNode node = new TestNode(); node.setTagName("div"); node.append("Hello World"); Assert.assertEquals("<div>Hello World</div>", node.toString()); } @Test public void testSimpleAttributes() { TestNode node = new TestNode(); node.setTagName("div"); node.setAttribute("class", "awesome"); node.append("Hello World"); Assert.assertEquals("<div class='awesome'>Hello World</div>", node.toString()); } @Test public void testStyle_AttributeSet() { TestNode node = new TestNode(); node.setTagName("div"); node.setAttribute("style", "totally:awesome"); node.append("Hello World"); Assert.assertEquals("<div style='totally:awesome;'>Hello World</div>", node.toString()); node.setAttribute("style", "really:great"); Assert.assertEquals("<div style='really:great;'>Hello World</div>", node.toString()); } @Test public void testStyle_AttributeAdd() { TestNode node = new TestNode(); node.setTagName("div"); node.addAttribute("style", "totally:awesome"); node.append("Hello World"); Assert.assertEquals("<div style='totally:awesome;'>Hello World</div>", node.toString()); node.addAttribute("style", "really:great"); Assert.assertEquals("<div style='totally:awesome;really:great;'>Hello World</div>", node.toString()); } @Test public void testStyle_DirectSet() { TestNode node = new TestNode(); node.setTagName("div"); node.setStyle("totally", "awesome"); node.append("Hello World"); Assert.assertEquals("<div style='totally:awesome;'>Hello World</div>", node.toString()); node.setAttribute("style", "really:great"); Assert.assertEquals("<div style='really:great;'>Hello World</div>", node.toString()); } @Test public void testStyle_DirectAdd() { TestNode node = new TestNode(); node.setTagName("div"); node.setStyle("totally","awesome"); node.append("Hello World"); Assert.assertEquals("<div style='totally:awesome;'>Hello World</div>", node.toString()); node.setStyle("really","great"); Assert.assertEquals("<div style='totally:awesome;really:great;'>Hello World</div>", node.toString()); } @Test public void testComplexBuilder() { TestNode node = new TestNode(); TestNode child = new TestNode(); node.setTagName("div"); node.setAttribute("class", "awesome"); node.append("Hello"); node.addChild(child); child.setTagName("br"); node.append("World"); System.out.println(node.toString()); Assert.assertEquals("<div class='awesome'>Hello<br/>World</div>", node.toString()); } }