1 61 62 63 64 package org.jaxen.expr; 65 66 import java.io.IOException ; 67 import java.io.StringReader ; 68 import java.util.List ; 69 70 import javax.xml.parsers.DocumentBuilderFactory ; 71 import javax.xml.parsers.ParserConfigurationException ; 72 73 import org.jaxen.JaxenException; 74 import org.jaxen.dom.DOMXPath; 75 import org.w3c.dom.Document ; 76 import org.w3c.dom.Element ; 77 import org.xml.sax.InputSource ; 78 import org.xml.sax.SAXException ; 79 80 import junit.framework.TestCase; 81 82 91 public class EqualsTest extends TestCase 92 { 93 94 public void testEqualityAgainstNonExistentNodes() 95 throws JaxenException, ParserConfigurationException { 96 97 DOMXPath xpath = new DOMXPath("/a/b[c = ../d]"); 98 99 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 100 factory.setNamespaceAware(true); 101 Document doc = factory.newDocumentBuilder().newDocument(); 102 Element root = doc.createElement("a"); 103 doc.appendChild(root); 104 Element b = doc.createElement("b"); 105 root.appendChild(b); 106 Element c = doc.createElement("c"); 107 b.appendChild(c); 108 109 List result = (List ) xpath.evaluate(doc); 110 assertEquals(0, result.size()); 111 112 } 113 114 public void testOlander() 115 throws JaxenException, SAXException , IOException , ParserConfigurationException { 116 117 DOMXPath xpath = new DOMXPath("//BlockStatement//IfStatement[./Statement = ./ancestor::BlockStatement/following-sibling::BlockStatement//IfStatement/Statement]"); 118 119 String data = "<?xml version='1.0'?><Block><BlockStatement><LocalVariableDeclaration><Type><PrimitiveType>boolean</PrimitiveType></Type><VariableDeclarator><VariableDeclaratorId/></VariableDeclarator><VariableDeclarator><VariableDeclaratorId/></VariableDeclarator></LocalVariableDeclaration></BlockStatement><BlockStatement><Statement><IfStatement><Expression><PrimaryExpression><PrimaryPrefix><Name>a</Name></PrimaryPrefix></PrimaryExpression></Expression><Statement><StatementExpression><PrimaryExpression><PrimaryPrefix><Name>methodB</Name></PrimaryPrefix><PrimarySuffix><Arguments/></PrimarySuffix></PrimaryExpression></StatementExpression></Statement></IfStatement></Statement></BlockStatement><BlockStatement><Statement><IfStatement><Expression><PrimaryExpression><PrimaryPrefix><Name>b</Name></PrimaryPrefix></PrimaryExpression></Expression><Statement><StatementExpression><PrimaryExpression><PrimaryPrefix><Name>methodB</Name></PrimaryPrefix><PrimarySuffix><Arguments/></PrimarySuffix></PrimaryExpression></StatementExpression></Statement></IfStatement></Statement></BlockStatement></Block>"; 120 StringReader reader = new StringReader (data); 121 InputSource in = new InputSource (reader); 122 123 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 124 factory.setNamespaceAware(true); 125 Document doc = factory.newDocumentBuilder().parse(in); 126 127 List result = (List ) xpath.evaluate(doc); 128 assertEquals(1, result.size()); 129 130 } 131 132 } 133 | Popular Tags |