package org.rapidbeans.core.util; import java.io.File; import org.junit.Assert; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Node; public class XmlHelperTest { @Test public void testRetrieveNodeTopLevel() { Node tlNode = XmlHelper.getDocumentTopLevel(new File("testdata/xml/textXmlComplex01.xml")).getParentNode(); Assert.assertEquals("workbench", XmlHelper.getNode(tlNode, "//workbench").getNodeName()); } @Test public void testRetrieveSubnode() { Node tlNode = XmlHelper.getDocumentTopLevel(new File("testdata/xml/textXmlComplex01.xml")).getParentNode(); Assert.assertEquals("view", XmlHelper.getNode(tlNode, "//workbench/window/page/views/view").getNodeName()); } @Test public void testRetrieveSubnodeWithSpecNodeText() { Node tlNode = XmlHelper.getDocumentTopLevel(new File("testdata/xml/web.xml")).getParentNode(); Assert.assertEquals("param-name", XmlHelper.getNode(tlNode, "//web-app/context-param/param-name[.='config_home']").getNodeName()); Assert.assertEquals("config_home", XmlHelper.getNode(tlNode, "//web-app/context-param/param-name[.='config_home']").getFirstChild().getNodeValue()); } @Test public void testRetrieveSubnodeWithSpecAttribute() { Node tlNode = XmlHelper.getDocumentTopLevel(new File("testdata/xml/textXmlComplex01.xml")).getParentNode(); Assert.assertEquals("view", XmlHelper.getNode(tlNode, "//workbench/window/page/views/view[@id='org.eclipse.jdt.ui.PackageExplorer']").getNodeName()); } @Test public void testRetrieveSubnodeWithSpecAttributeComplex() { Node tlNode = XmlHelper.getDocumentTopLevel(new File("testdata/xml/textXmlComplex01.xml")).getParentNode(); Assert.assertEquals("false", XmlHelper.getNode( tlNode, "//workbench/window/page/views" + "/view[@id='org.eclipse.jdt.ui.PackageExplorer']" + "/viewState/customFilters/xmlDefinedFilters" + "/child[@filterId='org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*']" + "/@isEnabled").getNodeValue()); } @Test public void testRetrieveSubnodeWithSpecSubnode() { Document doc = XmlHelper.getDocument(new File("testdata/xml/web.xml")); Assert.assertEquals("web-app", XmlHelper.getNode(doc, "//web-app").getNodeName()); Assert.assertEquals("context-param", XmlHelper.getNode(doc, "//web-app/context-param").getNodeName()); Assert.assertEquals("param-name", XmlHelper.getNode(doc, "//web-app/context-param/param-name[.='config_home']").getNodeName()); Assert.assertEquals("param-name", XmlHelper.getNodes(doc, "//web-app/context-param/param-name[text()='config_home']").item(0).getNodeName()); Assert.assertEquals("context-param", XmlHelper.getNodes(doc, "//web-app/context-param[param-name/.='config_home']").item(0).getNodeName()); Assert.assertEquals("context-param", XmlHelper.getNodes(doc, "//web-app/context-param[param-name/text()='config_home']").item(0).getNodeName()); } @Test public void testParseIdAttrs() { XmlHelper.parseIdAttrs("//xxx/yyy[@id='org.eclipse.wst.server.ui.editor'" + " and @name='JBoss 6.0 Runtime Server']"); } }