⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domutilstest.java

📁 这是一个关于java的JSP页面中设计选项卡的库文件.
💻 JAVA
字号:
/* * The contents of this file are subject to the GNU Lesser General Public * License Version 2.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.gnu.org/copyleft/lesser.html * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * Developer: * Todd Ditchendorf, todd@ditchnet.org * */package org.ditchnet.xml.dom;import java.util.List;import junit.framework.Test;import junit.framework.TestCase;import junit.framework.TestSuite;import javax.xml.parsers.*;import org.w3c.dom.*;import org.xml.sax.InputSource;import org.ditchnet.test.DitchBaseTestCase;import org.ditchnet.xml.Xhtml;public class DomUtilsTest extends DitchBaseTestCase {	public static void main(String[] args) {		junit.textui.TestRunner.run( suite() );	}		public static Test suite() {		TestSuite suite = new TestSuite(			"Tests for DOM utility algorithms contained in DomUtils class");		suite.addTestSuite( DomUtilsTest.class );		return suite;	}		final static String RES_FILE_SYSTEM_ID 		= "testResources/domUtilsTestDoc.xml";	final static String DOC_BODY_ID					= "doc-body";	final static String MAIN_HEADER_ID				= "main-header";	final static String HEADER_CLASS_NAME			= "header";	final static String MAIN_LIST_ID				= "main-list";	final static String FIRST_LIST_ITEM_ID			= "first-list-item";	final static String FIRST_SUB_LIST_ID			= "first-sub-list";	final static String CLASS_BREAKER_ID			= "class-breaker";	final static String LIST_CLASS_NAME				= "list";	final static String LIST_ITEM_CLASS_NAME		= "list-item";	final static String ANOTHER_CLASS_NAME			= "another-class";	final static String DEPTH_FIRST_ID				= "depth-first";	final static String BREADTH_FIRST_ID			= "breadth-first";	final static String DEPTH_BREADTH_CLASS_NAME	= "depth-breadth";		Document doc;		public DomUtilsTest(String name) {		super(name);	}		public void setUp() throws Exception {		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();		DocumentBuilder builder = factory.newDocumentBuilder();		doc = builder.parse(			new InputSource( RES_FILE_SYSTEM_ID ));	}		public void testResDocumentExists() {		Element docEl = doc.getDocumentElement();		assertEquals(Xhtml.Tag.HTML.toString(),					 docEl.getTagName());	}		public void testHasId() {		Element mainHeader = doc.getElementById( MAIN_HEADER_ID );		assertTrue(DomUtils.hasId(mainHeader,MAIN_HEADER_ID));		assertFalse(DomUtils.hasId(mainHeader," " + MAIN_HEADER_ID));	}		public void testHasClassName() {		Element firstSubList = doc.getElementById( FIRST_SUB_LIST_ID );		assertEquals(Xhtml.Tag.UL.toString(),					 firstSubList.getNodeName());		assertTrue("The first sub list should have 'list' as a class name",				   DomUtils.hasClassName(firstSubList,LIST_CLASS_NAME));		assertTrue("The first sub list should have 'another-class as a class name",				   DomUtils.hasClassName(firstSubList,ANOTHER_CLASS_NAME));		assertTrue(DomUtils.hasClassName(firstSubList,ANOTHER_CLASS_NAME+" "));		assertTrue(DomUtils.hasClassName(firstSubList," "+ANOTHER_CLASS_NAME+" "));		assertTrue(DomUtils.hasClassName(firstSubList," "+ANOTHER_CLASS_NAME));				Element li = doc.getElementById( MAIN_LIST_ID );		assertTrue(DomUtils.hasClassName(li, LIST_CLASS_NAME ));		assertTrue(DomUtils.hasClassName(li, ANOTHER_CLASS_NAME ));		assertFalse(DomUtils.hasClassName(li,ANOTHER_CLASS_NAME+ANOTHER_CLASS_NAME));				li = doc.getElementById(CLASS_BREAKER_ID);		assertFalse(DomUtils.hasClassName(li,LIST_ITEM_CLASS_NAME));	}		public void testIsElementNode() {		Element html = doc.getDocumentElement();		assertTrue(DomUtils.isElementNode(html));		assertFalse(DomUtils.isElementNode(html.getFirstChild()));		Node title = doc.getElementsByTagName(Xhtml.Tag.TITLE.toString()).item(0);		assertTrue(DomUtils.isElementNode(title));		assertFalse(DomUtils.isElementNode(title.getFirstChild()));	}		public void testGetFirstAncestorByClassName() {		Element firstListItem = doc.getElementById( FIRST_LIST_ITEM_ID );		assertEquals(Xhtml.Tag.LI.toString(),					 firstListItem.getTagName());		Element mainList = DomUtils.getFirstAncestorByClassName(														firstListItem,														LIST_CLASS_NAME );		assertEquals(Xhtml.Tag.UL.toString(),					 mainList.getTagName());		assertTrue(DomUtils.hasId( mainList, MAIN_LIST_ID ));	}		public void testGetFirstAncestorOrSelfByClassName() {		Element ul = doc.getElementById( FIRST_SUB_LIST_ID );		Element target = DomUtils.getFirstAncestorOrSelfByClassName(													ul,													LIST_CLASS_NAME);		assertSame(ul,target);		assertTrue(DomUtils.hasId(ul,FIRST_SUB_LIST_ID));				Element li = doc.getElementById( FIRST_LIST_ITEM_ID );		target = DomUtils.getFirstAncestorOrSelfByClassName(													li,													LIST_CLASS_NAME);		assertNotSame(li,target);		assertTrue(DomUtils.hasId(ul,FIRST_SUB_LIST_ID));	}		public void testGetFirstChildByClassName() {		Element body = doc.getElementById( DOC_BODY_ID );		Element h1 = DomUtils.getFirstChildByClassName(body,HEADER_CLASS_NAME);		assertTrue(DomUtils.hasId(h1,MAIN_HEADER_ID));		assertTrue(DomUtils.hasClassName(h1,HEADER_CLASS_NAME));		Element mainList = doc.getElementById( MAIN_LIST_ID );		Element li = 			DomUtils.getFirstChildByClassName(mainList,LIST_ITEM_CLASS_NAME);		assertTrue(DomUtils.hasId(li,FIRST_LIST_ITEM_ID));	}		public void testGetFirstDescendantByClassNameBreadthFirst() {		Element html = doc.getDocumentElement();		Element h1 = DomUtils.getFirstDescendantByClassNameBreadthFirst(															html,															HEADER_CLASS_NAME);		assertTrue(DomUtils.hasId(h1,MAIN_HEADER_ID));		assertTrue(DomUtils.hasClassName(h1,HEADER_CLASS_NAME));		assertFalse(DomUtils.hasClassName(h1,"header-"));				Element body = doc.getElementById( DOC_BODY_ID );		h1 = DomUtils.getFirstDescendantByClassNameBreadthFirst(															body,															HEADER_CLASS_NAME);		assertTrue(DomUtils.hasId(h1,MAIN_HEADER_ID));		assertTrue(DomUtils.hasClassName(h1,HEADER_CLASS_NAME));		assertFalse(DomUtils.hasClassName(h1,"-header"));		assertFalse(DomUtils.hasClassName(h1,"headerheader"));				Element li = DomUtils.getFirstDescendantByClassNameBreadthFirst(													body,													DEPTH_BREADTH_CLASS_NAME );		assertTrue(DomUtils.hasId(li,BREADTH_FIRST_ID));	}	public void testGetFirstDescendantByClassNameDepthFirst() {		Element html = doc.getDocumentElement();		Element h1 = DomUtils.getFirstDescendantByClassNameDepthFirst(													html,													HEADER_CLASS_NAME);		assertTrue(DomUtils.hasId(h1,MAIN_HEADER_ID));		assertTrue(DomUtils.hasClassName(h1,HEADER_CLASS_NAME));		assertFalse(DomUtils.hasClassName(h1,"header-"));				Element body = doc.getElementById( DOC_BODY_ID );		h1 = DomUtils.getFirstDescendantByClassNameDepthFirst(													body,													HEADER_CLASS_NAME);		assertTrue(DomUtils.hasId(h1,MAIN_HEADER_ID));		assertTrue(DomUtils.hasClassName(h1,HEADER_CLASS_NAME));		assertFalse(DomUtils.hasClassName(h1,"-header"));		assertFalse(DomUtils.hasClassName(h1,"headerheader"));				Element li = DomUtils.getFirstDescendantByClassNameDepthFirst(													body,													DEPTH_BREADTH_CLASS_NAME );		assertTrue(DomUtils.hasId(li,DEPTH_FIRST_ID));	}		public void testGetChildrenByClassName() {		Element ul = doc.getElementById( MAIN_LIST_ID );		List lis = DomUtils.getChildrenByClassName(ul,LIST_ITEM_CLASS_NAME);		assertEquals(3,lis.size());	}		public void testGetDescendantsByClassName() {		Element ul = doc.getElementById( FIRST_SUB_LIST_ID );		List lis = DomUtils.getDescendantsByClassName(ul,LIST_ITEM_CLASS_NAME);		assertEquals(1,lis.size());		ul = doc.getElementById( MAIN_LIST_ID );		lis = DomUtils.getDescendantsByClassName(ul,LIST_ITEM_CLASS_NAME);		assertEquals(5,lis.size());	}}/***************************<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>DomUtils Test Document</title></head><body id="doc-body" class="test-body another-class"><h1 id="main-header" class="header">DomUtils Test Document</h1><ul id="main-list" class="list another-class"><li id="first-list-item" class="list-item">List Item!<ul id="first-sub-list" class="list another-class"><li id="depth-first" class="list-item sub-list-item depth-breadth">Nested List Item!</li></ul></li><li id="breadth-first" class="list-item depth-breadth"></li><li id="class-breaker" class="no-list-item"><li class="list-item"></li></li><li class="list-item"></li></ul></body></html>****************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -