package org.jsoup.nodes; import org.junit.Test; import java.util.Iterator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * Tests for Attributes. * * @author Jonathan Hedley */ public class AttributesTest { @Test public void html() { Attributes a = new Attributes(); a.put("Tot", "a&p"); a.put("Hello", "There"); a.put("data-name", "Jsoup"); assertEquals(3, a.size()); assertTrue(a.hasKey("Tot")); assertTrue(a.hasKey("Hello")); assertTrue(a.hasKey("data-name")); assertFalse(a.hasKey("tot")); assertTrue(a.hasKeyIgnoreCase("tot")); assertEquals("There", a.getIgnoreCase("hEllo")); assertEquals(1, a.dataset().size()); assertEquals("Jsoup", a.dataset().get("name")); assertEquals("", a.get("tot")); assertEquals("a&p", a.get("Tot")); assertEquals("a&p", a.getIgnoreCase("tot")); assertEquals(" Tot=\"a&p\" Hello=\"There\" data-name=\"Jsoup\"", a.html()); assertEquals(a.html(), a.toString()); } @Test public void testIteratorRemovable() { Attributes a = new Attributes(); a.put("Tot", "a&p"); a.put("Hello", "There"); a.put("data-name", "Jsoup"); Iterator<Attribute> iterator = a.iterator(); iterator.next(); iterator.remove(); assertEquals(2, a.size()); } @Test public void testIterator() { Attributes a = new Attributes(); String[][] datas = {{"Tot", "raul"}, {"Hello", "pismuth"}, {"data-name", "Jsoup"}}; for (String[] atts : datas) { a.put(atts[0], atts[1]); } Iterator<Attribute> iterator = a.iterator(); assertTrue(iterator.hasNext()); int i = 0; for (Attribute attribute : a) { assertEquals(datas[i][0], attribute.getKey()); assertEquals(datas[i][1], attribute.getValue()); i++; } assertEquals(datas.length, i); } @Test public void testIteratorEmpty() { Attributes a = new Attributes(); Iterator<Attribute> iterator = a.iterator(); assertFalse(iterator.hasNext()); } @Test public void removeCaseSensitive() { Attributes a = new Attributes(); a.put("Tot", "a&p"); a.put("tot", "one"); a.put("Hello", "There"); a.put("hello", "There"); a.put("data-name", "Jsoup"); assertEquals(5, a.size()); a.remove("Tot"); a.remove("Hello"); assertEquals(3, a.size()); assertTrue(a.hasKey("tot")); assertFalse(a.hasKey("Tot")); } }