package test.svg;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import net.sf.latexdraw.parsers.svg.SVGAttr;
import net.sf.latexdraw.parsers.svg.SVGDocument;
import net.sf.latexdraw.parsers.svg.SVGNamedNodeMap;
import org.junit.Before;
import org.junit.Test;
import org.w3c.dom.DOMException;
public class TestSVGNamedNodeMap{
protected SVGNamedNodeMap map;
protected SVGDocument doc;
@Before
public void setUp() {
doc = new SVGDocument();
map = new SVGNamedNodeMap();
}
@Test
public void testSVGNamedNodeMap() {
assertNotNull(map.getAttributes());
}
@Test
public void testGetLength() {
map.getAttributes().clear();
assertEquals(0, map.getLength());
map.getAttributes().add(new SVGAttr("", "", doc.createElement("elt"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertEquals(1, map.getLength());
map.getAttributes().clear();
}
@Test
public void testGetNamedItem() {
map.getAttributes().clear();
assertNull(map.getNamedItem(null));
assertNull(map.getNamedItem("")); //$NON-NLS-1$
assertNull(map.getNamedItem("test")); //$NON-NLS-1$
map.getAttributes().add(new SVGAttr("test", "", doc.createElement("elt"))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
assertNull(map.getNamedItem(null));
assertNull(map.getNamedItem("")); //$NON-NLS-1$
assertNotNull(map.getNamedItem("test")); //$NON-NLS-1$
map.getAttributes().clear();
}
@Test
public void testItem() {
SVGAttr attr = new SVGAttr("test", "", doc.createElement("elt")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
map.getAttributes().clear();
assertNull(map.item(0));
assertNull(map.item(-1));
assertNull(map.item(1));
map.getAttributes().add(attr);
assertNull(map.item(-1));
assertNull(map.item(1));
assertEquals(map.item(0), attr);
map.getAttributes().clear();
}
@Test
public void testRemoveNamedItem() {
SVGAttr attr = new SVGAttr("test", "", doc.createElement("elt")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
map.getAttributes().clear();
try {
map.removeNamedItem(null);
fail();
}
catch(DOMException e) { /* ok */ }
try {
map.removeNamedItem(""); //$NON-NLS-1$
fail();
}
catch(DOMException e) { /* ok */ }
try {
map.removeNamedItem("test"); //$NON-NLS-1$
fail();
}
catch(DOMException e) { /* ok */ }
map.getAttributes().add(attr);
assertEquals(attr, map.removeNamedItem("test")); //$NON-NLS-1$
try {
map.removeNamedItem("test"); //$NON-NLS-1$
fail();
}
catch(DOMException e) { /* ok */ }
map.getAttributes().clear();
}
@Test
public void testSetNamedItem() {
SVGAttr attr1 = new SVGAttr("test1", "v1", doc.createElement("elt1")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SVGAttr attr2 = new SVGAttr("test2", "v2", doc.createElement("elt2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SVGAttr attr3 = new SVGAttr("test1", "v1b", doc.createElement("elt1b")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
map.getAttributes().clear();
assertNull(map.setNamedItem(null));
assertNull(map.setNamedItem(attr1));
assertEquals(attr1, map.getNamedItem("test1")); //$NON-NLS-1$
assertNull(map.setNamedItem(attr2));
assertEquals(attr1, map.getNamedItem("test1")); //$NON-NLS-1$
assertEquals(attr2, map.getNamedItem("test2")); //$NON-NLS-1$
assertEquals(attr1, map.setNamedItem(attr3));
assertEquals(attr3, map.getNamedItem("test1")); //$NON-NLS-1$
assertEquals(attr2, map.getNamedItem("test2")); //$NON-NLS-1$
map.getAttributes().clear();
}
@Test
public void testClone() {
SVGAttr attr1 = new SVGAttr("test1", "v1", doc.createElement("elt1")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SVGAttr attr2 = new SVGAttr("test2", "v2", doc.createElement("elt2")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
SVGNamedNodeMap map2;
map.getAttributes().clear();
assertNull(map.setNamedItem(attr1));
assertNull(map.setNamedItem(attr2));
map2 = (SVGNamedNodeMap)map.clone();
assertEquals(map.getLength(), map2.getLength());
assertTrue(map.getNamedItem("test1").isEqualNode(map2.getNamedItem("test1"))); //$NON-NLS-1$ //$NON-NLS-2$
assertTrue(map.getNamedItem("test2").isEqualNode(map2.getNamedItem("test2"))); //$NON-NLS-1$ //$NON-NLS-2$
map.getAttributes().clear();
}
@Test
public void testGetAttributes() {
assertNotNull(map.getAttributes());
}
}