/**
* Copyright (c) 2009-2015, Christer Sandberg
*/
package se.fishtank.css.selectors;
import java.util.List;
import org.junit.Test;
import org.w3c.dom.Attr;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import se.fishtank.css.selectors.dom.W3CNode;
import se.fishtank.css.selectors.selector.Selector;
import static org.junit.Assert.*;
/**
* Tests the simplified {@linkplain se.fishtank.css.selectors.Selectors selectors} API.
*
* @author Christer Sandberg
*/
public class SelectorsTest {
private final W3CNode document = Support.getTestDocument();
private final List<Selector> selectors = Selectors.parse("head > :not(meta)");
@Test
public void testQuerySelector() {
Node node = new Selectors<>(document).querySelector(selectors);
assertNotNull(node);
assertEquals("script", node.getNodeName());
NamedNodeMap attributes = node.getAttributes();
assertNotNull(attributes);
Attr attr = (Attr) attributes.getNamedItem("src");
assertNotNull(attr);
assertEquals("../frameworks/dummy.js", attr.getValue());
}
@Test
public void testQuerySelectorAll() {
List<Node> nodes = new Selectors<>(document).querySelectorAll(selectors);
assertEquals(2, nodes.size());
for (Node node : nodes) {
assertEquals("script", node.getNodeName());
}
}
}