Update of /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/filterTests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21948/tests/filterTests
Modified Files:
FilterTest.java
Log Message:
Add CssSelectorNodeFilter submitted by Rogers George.
Index: FilterTest.java
===================================================================
RCS file: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/tests/filterTests/FilterTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** FilterTest.java 7 Dec 2003 23:41:41 -0000 1.2
--- FilterTest.java 10 May 2004 22:31:46 -0000 1.3
***************
*** 27,31 ****
--- 27,33 ----
package org.htmlparser.tests.filterTests;
+ import org.htmlparser.Parser;
import org.htmlparser.filters.AndFilter;
+ import org.htmlparser.filters.CssSelectorNodeFilter;
import org.htmlparser.filters.HasAttributeFilter;
import org.htmlparser.filters.HasChildFilter;
***************
*** 35,43 ****
--- 37,48 ----
import org.htmlparser.filters.StringFilter;
import org.htmlparser.filters.TagNameFilter;
+ import org.htmlparser.lexer.Lexer;
import org.htmlparser.lexer.nodes.StringNode;
import org.htmlparser.lexer.nodes.TagNode;
import org.htmlparser.tags.BodyTag;
import org.htmlparser.tags.LinkTag;
+ import org.htmlparser.tags.Tag;
import org.htmlparser.tests.ParserTestCase;
+ import org.htmlparser.util.NodeIterator;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
***************
*** 241,244 ****
--- 246,275 ----
assertEquals ("attribute value", "three", link.getAttribute ("id"));
}
+
+ public void testEscape() throws Exception
+ {
+ assertEquals ("douchebag", CssSelectorNodeFilter.unescape ("doucheba\\g").toString ());
+ }
+
+ public void testSelectors() throws Exception
+ {
+ String html = "<html><head><title>sample title</title></head><body inserterr=\"true\" yomama=\"false\"><h3 id=\"heading\">big </invalid>heading</h3><ul id=\"things\"><li><br word=\"broken\"/>>moocow<li><applet/>doohickey<li class=\"last\"><b class=\"item\">final<br>item</b></ul></body></html>";
+ Lexer l;
+ Parser p;
+ CssSelectorNodeFilter it;
+ NodeIterator i;
+ int count;
+
+ l = new Lexer (html);
+ p = new Parser (l);
+ it = new CssSelectorNodeFilter ("li + li");
+ count = 0;
+ for (i = p.extractAllNodesThatMatch (it).elements (); i.hasMoreNodes ();)
+ {
+ assertEquals ("tag name wrong", "LI", ((Tag)i.nextNode()).getTagName());
+ count++;
+ }
+ assertEquals ("wrong count", 2, count);
+ }
}
|