From 7949f7fe746dbbe3eeefbc123bbb2c551b091733 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 14 Apr 2006 05:14:34 +0000 Subject: Fixed #93 and #121 --- tests/UnitTests/simpletest/test/parser_test.php | 648 ------------------------ 1 file changed, 648 deletions(-) delete mode 100644 tests/UnitTests/simpletest/test/parser_test.php (limited to 'tests/UnitTests/simpletest/test/parser_test.php') diff --git a/tests/UnitTests/simpletest/test/parser_test.php b/tests/UnitTests/simpletest/test/parser_test.php deleted file mode 100644 index 6356c343..00000000 --- a/tests/UnitTests/simpletest/test/parser_test.php +++ /dev/null @@ -1,648 +0,0 @@ -assertFalse($regex->match("Hello", $match)); - $this->assertEqual($match, ""); - } - - function testNoSubject() { - $regex = &new ParallelRegex(false); - $regex->addPattern(".*"); - $this->assertTrue($regex->match("", $match)); - $this->assertEqual($match, ""); - } - - function testMatchAll() { - $regex = &new ParallelRegex(false); - $regex->addPattern(".*"); - $this->assertTrue($regex->match("Hello", $match)); - $this->assertEqual($match, "Hello"); - } - - function testCaseSensitive() { - $regex = &new ParallelRegex(true); - $regex->addPattern("abc"); - $this->assertTrue($regex->match("abcdef", $match)); - $this->assertEqual($match, "abc"); - $this->assertTrue($regex->match("AAABCabcdef", $match)); - $this->assertEqual($match, "abc"); - } - - function testCaseInsensitive() { - $regex = &new ParallelRegex(false); - $regex->addPattern("abc"); - $this->assertTrue($regex->match("abcdef", $match)); - $this->assertEqual($match, "abc"); - $this->assertTrue($regex->match("AAABCabcdef", $match)); - $this->assertEqual($match, "ABC"); - } - - function testMatchMultiple() { - $regex = &new ParallelRegex(true); - $regex->addPattern("abc"); - $regex->addPattern("ABC"); - $this->assertTrue($regex->match("abcdef", $match)); - $this->assertEqual($match, "abc"); - $this->assertTrue($regex->match("AAABCabcdef", $match)); - $this->assertEqual($match, "ABC"); - $this->assertFalse($regex->match("Hello", $match)); - } - - function testPatternLabels() { - $regex = &new ParallelRegex(false); - $regex->addPattern("abc", "letter"); - $regex->addPattern("123", "number"); - $this->assertIdentical($regex->match("abcdef", $match), "letter"); - $this->assertEqual($match, "abc"); - $this->assertIdentical($regex->match("0123456789", $match), "number"); - $this->assertEqual($match, "123"); - } - } - - class TestOfStateStack extends UnitTestCase { - - function testStartState() { - $stack = &new SimpleStateStack("one"); - $this->assertEqual($stack->getCurrent(), "one"); - } - - function testExhaustion() { - $stack = &new SimpleStateStack("one"); - $this->assertFalse($stack->leave()); - } - - function testStateMoves() { - $stack = &new SimpleStateStack("one"); - $stack->enter("two"); - $this->assertEqual($stack->getCurrent(), "two"); - $stack->enter("three"); - $this->assertEqual($stack->getCurrent(), "three"); - $this->assertTrue($stack->leave()); - $this->assertEqual($stack->getCurrent(), "two"); - $stack->enter("third"); - $this->assertEqual($stack->getCurrent(), "third"); - $this->assertTrue($stack->leave()); - $this->assertTrue($stack->leave()); - $this->assertEqual($stack->getCurrent(), "one"); - } - } - - class TestParser { - - function accept() { - } - - function a() { - } - - function b() { - } - } - Mock::generate('TestParser'); - - class TestOfLexer extends UnitTestCase { - - function testEmptyPage() { - $handler = &new MockTestParser($this); - $handler->expectNever("accept"); - $handler->setReturnValue("accept", true); - $handler->expectNever("accept"); - $handler->setReturnValue("accept", true); - $lexer = &new SimpleLexer($handler); - $lexer->addPattern("a+"); - $this->assertTrue($lexer->parse("")); - } - - function testSinglePattern() { - $handler = &new MockTestParser($this); - $handler->expectArgumentsAt(0, "accept", array("aaa", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "accept", array("x", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(2, "accept", array("a", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "accept", array("yyy", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(4, "accept", array("a", LEXER_MATCHED)); - $handler->expectArgumentsAt(5, "accept", array("x", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(6, "accept", array("aaa", LEXER_MATCHED)); - $handler->expectArgumentsAt(7, "accept", array("z", LEXER_UNMATCHED)); - $handler->expectCallCount("accept", 8); - $handler->setReturnValue("accept", true); - $lexer = &new SimpleLexer($handler); - $lexer->addPattern("a+"); - $this->assertTrue($lexer->parse("aaaxayyyaxaaaz")); - $handler->tally(); - } - - function testMultiplePattern() { - $handler = &new MockTestParser($this); - $target = array("a", "b", "a", "bb", "x", "b", "a", "xxxxxx", "a", "x"); - for ($i = 0; $i < count($target); $i++) { - $handler->expectArgumentsAt($i, "accept", array($target[$i], '*')); - } - $handler->expectCallCount("accept", count($target)); - $handler->setReturnValue("accept", true); - $lexer = &new SimpleLexer($handler); - $lexer->addPattern("a+"); - $lexer->addPattern("b+"); - $this->assertTrue($lexer->parse("ababbxbaxxxxxxax")); - $handler->tally(); - } - } - - class TestOfLexerModes extends UnitTestCase { - - function testIsolatedPattern() { - $handler = &new MockTestParser($this); - $handler->expectArgumentsAt(0, "a", array("a", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array("b", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(2, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "a", array("bxb", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(4, "a", array("aaa", LEXER_MATCHED)); - $handler->expectArgumentsAt(5, "a", array("x", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(6, "a", array("aaaa", LEXER_MATCHED)); - $handler->expectArgumentsAt(7, "a", array("x", LEXER_UNMATCHED)); - $handler->expectCallCount("a", 8); - $handler->setReturnValue("a", true); - $lexer = &new SimpleLexer($handler, "a"); - $lexer->addPattern("a+", "a"); - $lexer->addPattern("b+", "b"); - $this->assertTrue($lexer->parse("abaabxbaaaxaaaax")); - $handler->tally(); - } - - function testModeChange() { - $handler = &new MockTestParser($this); - $handler->expectArgumentsAt(0, "a", array("a", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array("b", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(2, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "a", array("b", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(4, "a", array("aaa", LEXER_MATCHED)); - $handler->expectArgumentsAt(0, "b", array(":", LEXER_ENTER)); - $handler->expectArgumentsAt(1, "b", array("a", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(2, "b", array("b", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "b", array("a", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(4, "b", array("bb", LEXER_MATCHED)); - $handler->expectArgumentsAt(5, "b", array("a", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(6, "b", array("bbb", LEXER_MATCHED)); - $handler->expectArgumentsAt(7, "b", array("a", LEXER_UNMATCHED)); - $handler->expectCallCount("a", 5); - $handler->expectCallCount("b", 8); - $handler->setReturnValue("a", true); - $handler->setReturnValue("b", true); - $lexer = &new SimpleLexer($handler, "a"); - $lexer->addPattern("a+", "a"); - $lexer->addEntryPattern(":", "a", "b"); - $lexer->addPattern("b+", "b"); - $this->assertTrue($lexer->parse("abaabaaa:ababbabbba")); - $handler->tally(); - } - - function testNesting() { - $handler = &new MockTestParser($this); - $handler->setReturnValue("a", true); - $handler->setReturnValue("b", true); - $handler->expectArgumentsAt(0, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array("b", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(2, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "a", array("b", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(0, "b", array("(", LEXER_ENTER)); - $handler->expectArgumentsAt(1, "b", array("bb", LEXER_MATCHED)); - $handler->expectArgumentsAt(2, "b", array("a", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(3, "b", array("bb", LEXER_MATCHED)); - $handler->expectArgumentsAt(4, "b", array(")", LEXER_EXIT)); - $handler->expectArgumentsAt(4, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(5, "a", array("b", LEXER_UNMATCHED)); - $handler->expectCallCount("a", 6); - $handler->expectCallCount("b", 5); - $lexer = &new SimpleLexer($handler, "a"); - $lexer->addPattern("a+", "a"); - $lexer->addEntryPattern("(", "a", "b"); - $lexer->addPattern("b+", "b"); - $lexer->addExitPattern(")", "b"); - $this->assertTrue($lexer->parse("aabaab(bbabb)aab")); - $handler->tally(); - } - - function testSingular() { - $handler = &new MockTestParser($this); - $handler->setReturnValue("a", true); - $handler->setReturnValue("b", true); - $handler->expectArgumentsAt(0, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(2, "a", array("xx", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(3, "a", array("xx", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(0, "b", array("b", LEXER_SPECIAL)); - $handler->expectArgumentsAt(1, "b", array("bbb", LEXER_SPECIAL)); - $handler->expectCallCount("a", 4); - $handler->expectCallCount("b", 2); - $lexer = &new SimpleLexer($handler, "a"); - $lexer->addPattern("a+", "a"); - $lexer->addSpecialPattern("b+", "a", "b"); - $this->assertTrue($lexer->parse("aabaaxxbbbxx")); - $handler->tally(); - } - - function testUnwindTooFar() { - $handler = &new MockTestParser($this); - $handler->setReturnValue("a", true); - $handler->expectArgumentsAt(0, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array(")", LEXER_EXIT)); - $handler->expectCallCount("a", 2); - $lexer = &new SimpleLexer($handler, "a"); - $lexer->addPattern("a+", "a"); - $lexer->addExitPattern(")", "a"); - $this->assertFalse($lexer->parse("aa)aa")); - $handler->tally(); - } - } - - class TestOfLexerHandlers extends UnitTestCase { - - function testModeMapping() { - $handler = &new MockTestParser($this); - $handler->setReturnValue("a", true); - $handler->expectArgumentsAt(0, "a", array("aa", LEXER_MATCHED)); - $handler->expectArgumentsAt(1, "a", array("(", LEXER_ENTER)); - $handler->expectArgumentsAt(2, "a", array("bb", LEXER_MATCHED)); - $handler->expectArgumentsAt(3, "a", array("a", LEXER_UNMATCHED)); - $handler->expectArgumentsAt(4, "a", array("bb", LEXER_MATCHED)); - $handler->expectArgumentsAt(5, "a", array(")", LEXER_EXIT)); - $handler->expectArgumentsAt(6, "a", array("b", LEXER_UNMATCHED)); - $handler->expectCallCount("a", 7); - $lexer = &new SimpleLexer($handler, "mode_a"); - $lexer->addPattern("a+", "mode_a"); - $lexer->addEntryPattern("(", "mode_a", "mode_b"); - $lexer->addPattern("b+", "mode_b"); - $lexer->addExitPattern(")", "mode_b"); - $lexer->mapHandler("mode_a", "a"); - $lexer->mapHandler("mode_b", "a"); - $this->assertTrue($lexer->parse("aa(bbabb)b")); - $handler->tally(); - } - } - - Mock::generate("HtmlSaxParser"); - - class TestOfHtmlLexer extends UnitTestCase { - var $_handler; - var $_lexer; - - function setUp() { - $this->_handler = &new MockSimpleSaxParser($this); - $this->_handler->setReturnValue("acceptStartToken", true); - $this->_handler->setReturnValue("acceptEndToken", true); - $this->_handler->setReturnValue("acceptAttributeToken", true); - $this->_handler->setReturnValue("acceptEntityToken", true); - $this->_handler->setReturnValue("acceptTextToken", true); - $this->_handler->setReturnValue("ignore", true); - $this->_lexer = &SimpleSaxParser::createLexer($this->_handler); - } - - function tearDown() { - $this->_handler->tally(); - } - - function testUninteresting() { - $this->_handler->expectOnce("acceptTextToken", array("", "*")); - $this->assertTrue($this->_lexer->parse("")); - } - - function testSkipCss() { - $this->_handler->expectMaximumCallCount("acceptTextToken", 0); - $this->_handler->expectAtLeastOnce("ignore"); - $this->assertTrue($this->_lexer->parse("")); - } - - function testSkipJavaScript() { - $this->_handler->expectMaximumCallCount("acceptTextToken", 0); - $this->_handler->expectAtLeastOnce("ignore"); - $this->assertTrue($this->_lexer->parse("")); - } - - function testSkipComments() { - $this->_handler->expectMaximumCallCount("acceptTextToken", 0); - $this->_handler->expectAtLeastOnce("ignore"); - $this->assertTrue($this->_lexer->parse("")); - } - - function testTitleTag() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 2); - $this->_handler->expectOnce("acceptTextToken", array("Hello", "*")); - $this->_handler->expectOnce("acceptEndToken", array("", "*")); - $this->assertTrue($this->_lexer->parse("Hello")); - } - - function testFramesetTag() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 2); - $this->_handler->expectOnce("acceptTextToken", array("Frames", "*")); - $this->_handler->expectOnce("acceptEndToken", array("", "*")); - $this->assertTrue($this->_lexer->parse("Frames")); - } - - function testInputTag() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("name", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array("value", "*")); - $this->_handler->expectArgumentsAt(3, "acceptStartToken", array(">", "*")); - $this->_handler->expectArgumentsAt(0, "acceptAttributeToken", array("=a.b.c", "*")); - $this->_handler->expectArgumentsAt(1, "acceptAttributeToken", array("= d", "*")); - $this->assertTrue($this->_lexer->parse("")); - } - - function testEmptyLink() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 2); - $this->_handler->expectOnce("acceptEndToken", array("", "*")); - $this->assertTrue($this->_lexer->parse("")); - } - - function testLabelledLink() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 2); - $this->_handler->expectOnce("acceptEndToken", array("", "*")); - $this->_handler->expectArgumentsAt(0, "acceptTextToken", array("", "*")); - $this->_handler->expectArgumentsAt(1, "acceptTextToken", array("label", "*")); - $this->_handler->expectArgumentsAt(2, "acceptTextToken", array("", "*")); - $this->_handler->expectCallCount("acceptTextToken", 3); - $this->assertTrue($this->_lexer->parse("label")); - } - - function testLinkAddress() { - $this->_handler->expectArgumentsAt(0, "acceptTextToken", array("", "*")); - $this->_handler->expectArgumentsAt(1, "acceptTextToken", array("label", "*")); - $this->_handler->expectArgumentsAt(2, "acceptTextToken", array("", "*")); - $this->_handler->expectCallCount("acceptTextToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("href", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptAttributeToken", array("= '", "*")); - $this->_handler->expectArgumentsAt(1, "acceptAttributeToken", array("here.html", "*")); - $this->_handler->expectArgumentsAt(2, "acceptAttributeToken", array("'", "*")); - $this->_handler->expectCallCount("acceptAttributeToken", 3); - $this->assertTrue($this->_lexer->parse("label")); - } - - function testEncodedLinkAddress() { - $this->_handler->expectArgumentsAt(0, "acceptTextToken", array("", "*")); - $this->_handler->expectArgumentsAt(1, "acceptTextToken", array("label", "*")); - $this->_handler->expectArgumentsAt(2, "acceptTextToken", array("", "*")); - $this->_handler->expectCallCount("acceptTextToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("href", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptAttributeToken", array("= '", "*")); - $this->_handler->expectArgumentsAt(1, "acceptAttributeToken", array("here&there.html", "*")); - $this->_handler->expectArgumentsAt(2, "acceptAttributeToken", array("'", "*")); - $this->_handler->expectCallCount("acceptAttributeToken", 3); - $this->assertTrue($this->_lexer->parse("label")); - } - - function testEmptyLinkWithId() { - $this->_handler->expectArgumentsAt(0, "acceptTextToken", array("", "*")); - $this->_handler->expectArgumentsAt(1, "acceptTextToken", array("label", "*")); - $this->_handler->expectArgumentsAt(2, "acceptTextToken", array("", "*")); - $this->_handler->expectCallCount("acceptTextToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("id", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array(">", "*")); - $this->_handler->expectCallCount("acceptStartToken", 3); - $this->_handler->expectArgumentsAt(0, "acceptAttributeToken", array("=\"", "*")); - $this->_handler->expectArgumentsAt(1, "acceptAttributeToken", array("0", "*")); - $this->_handler->expectArgumentsAt(2, "acceptAttributeToken", array("\"", "*")); - $this->_handler->expectCallCount("acceptAttributeToken", 3); - $this->assertTrue($this->_lexer->parse("label")); - } - - function testComplexLink() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("HREF", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array("bool", "*")); - $this->_handler->expectArgumentsAt(3, "acceptStartToken", array("Style", "*")); - $this->_handler->expectArgumentsAt(4, "acceptStartToken", array(">", LEXER_EXIT)); - $this->_handler->expectCallCount("acceptStartToken", 5); - $this->_handler->expectArgumentsAt(0, "acceptAttributeToken", array("= '", "*")); - $this->_handler->expectArgumentsAt(1, "acceptAttributeToken", array("here.html", LEXER_UNMATCHED)); - $this->_handler->expectArgumentsAt(2, "acceptAttributeToken", array("'", "*")); - $this->_handler->expectArgumentsAt(3, "acceptAttributeToken", array("=\"", "*")); - $this->_handler->expectArgumentsAt(4, "acceptAttributeToken", array("'coo", "*")); - $this->_handler->expectArgumentsAt(5, "acceptAttributeToken", array('\"', "*")); - $this->_handler->expectArgumentsAt(6, "acceptAttributeToken", array("l'", "*")); - $this->_handler->expectArgumentsAt(7, "acceptAttributeToken", array("\"", "*")); - $this->_handler->expectCallCount("acceptAttributeToken", 8); - $this->assertTrue($this->_lexer->parse("label")); - } - - function testSubmit() { - $this->_handler->expectArgumentsAt(0, "acceptStartToken", array("_handler->expectArgumentsAt(1, "acceptStartToken", array("type", "*")); - $this->_handler->expectArgumentsAt(2, "acceptStartToken", array("name", "*")); - $this->_handler->expectArgumentsAt(3, "acceptStartToken", array("value", "*")); - $this->_handler->expectArgumentsAt(4, "acceptStartToken", array("/", "*")); - $this->_handler->expectArgumentsAt(5, "acceptStartToken", array(">", LEXER_EXIT)); - $this->_handler->expectCallCount("acceptStartToken", 6); - $this->assertTrue($this->_lexer->parse('')); - } - - function testFramesParsedWithoutError() { - $this->assertTrue($this->_lexer->parse( - '')); - $this->assertTrue($this->_lexer->parse( - 'Hello')); - } - } - - class TestOfTextExtraction extends UnitTestCase { - - function testSpaceNormalisation() { - $this->assertEqual( - SimpleSaxParser::normalise("\nOne\tTwo \nThree\t"), - 'One Two Three'); - } - - function testTagSuppression() { - $this->assertEqual( - SimpleSaxParser::normalise('Hello'), - 'Hello'); - } - - function testAdjoiningTagSuppression() { - $this->assertEqual( - SimpleSaxParser::normalise('HelloGoodbye'), - 'HelloGoodbye'); - } - - function testExtractImageAltTextWithDifferentQuotes() { - $this->assertEqual( - SimpleSaxParser::normalise('One\'Two\'Three'), - 'One Two Three'); - } - - function testExtractImageAltTextMultipleTimes() { - $this->assertEqual( - SimpleSaxParser::normalise('OneTwoThree'), - 'One Two Three'); - } - - function testHtmlEntityTranslation() { - $this->assertEqual( - SimpleSaxParser::normalise('<>"&'), - '<>"&'); - } - } - - class TestSimpleSaxParser extends SimpleSaxParser { - var $_lexer; - - function TestSimpleSaxParser(&$listener, &$lexer) { - $this->_lexer = &$lexer; - $this->SimpleSaxParser($listener); - } - - function &createLexer() { - return $this->_lexer; - } - } - - Mock::generate("SimpleSaxListener"); - Mock::generate("SimpleLexer"); - - class TestOfSaxGeneration extends UnitTestCase { - var $_listener; - var $_lexer; - - function setUp() { - $this->_listener = &new MockSimpleSaxListener($this); - $this->_lexer = &new MockSimpleLexer($this); - $this->_parser = &new TestSimpleSaxParser($this->_listener, $this->_lexer); - } - - function tearDown() { - $this->_listener->tally(); - $this->_lexer->tally(); - } - - function testLexerFailure() { - $this->_lexer->setReturnValue("parse", false); - $this->assertFalse($this->_parser->parse("")); - } - - function testLexerSuccess() { - $this->_lexer->setReturnValue("parse", true); - $this->assertTrue($this->_parser->parse("")); - } - - function testSimpleLinkStart() { - $this->_parser->parse(""); - $this->_listener->expectOnce("startElement", array("a", array())); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testSimpleTitleStart() { - $this->_parser->parse(""); - $this->_listener->expectOnce("startElement", array("title", array())); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testLinkStart() { - $this->_parser->parse(""); - $this->_listener->expectOnce("startElement", array("a", array("href" => "here.html"))); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken("href", LEXER_MATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("=\"", LEXER_ENTER)); - $this->assertTrue($this->_parser->acceptAttributeToken("here.html", LEXER_UNMATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("\"", LEXER_EXIT)); - $this->assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testLinkStartWithEncodedUrl() { - $this->_parser->parse(""); - $this->_listener->expectOnce( - "startElement", - array("a", array("href" => "here&there.html"))); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken("href", LEXER_MATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("=\"", LEXER_ENTER)); - $this->assertTrue($this->_parser->acceptAttributeToken("here&there.html", LEXER_UNMATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("\"", LEXER_EXIT)); - $this->assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testLinkStartWithId() { - $this->_parser->parse(""); - $this->_listener->expectOnce( - "startElement", - array("a", array("id" => "0"))); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken("id", LEXER_MATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("= \"", LEXER_ENTER)); - $this->assertTrue($this->_parser->acceptAttributeToken("0", LEXER_UNMATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("\"", LEXER_EXIT)); - $this->assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testLinkEnd() { - $this->_parser->parse(""); - $this->_listener->expectOnce("endElement", array("a")); - $this->_listener->setReturnValue("endElement", true); - $this->assertTrue($this->_parser->acceptEndToken("", LEXER_SPECIAL)); - } - - function testInput() { - $this->_parser->parse(""); - $this->_listener->expectOnce( - "startElement", - array("input", array("name" => "a"))); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken("name", LEXER_MATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("= a", LEXER_SPECIAL)); - $this->assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testButton() { - $this->_parser->parse(""); - $this->_listener->expectOnce( - "startElement", - array("button", array("name" => "a"))); - $this->_listener->setReturnValue("startElement", true); - $this->assertTrue($this->_parser->acceptStartToken("assertTrue($this->_parser->acceptStartToken("name", LEXER_MATCHED)); - $this->assertTrue($this->_parser->acceptAttributeToken("= a", LEXER_SPECIAL)); - $this->assertTrue($this->_parser->acceptStartToken(">", LEXER_EXIT)); - } - - function testContent() { - $this->_parser->parse(""); - $this->_listener->expectOnce("addContent", array("stuff")); - $this->_listener->setReturnValue("addContent", true); - $this->assertTrue($this->_parser->acceptTextToken("stuff", LEXER_UNMATCHED)); - } - - function testIgnore() { - $this->_parser->parse(""); - $this->_listener->expectNever("addContent"); - $this->assertTrue($this->_parser->ignore("stuff", LEXER_UNMATCHED)); - } - } -?> \ No newline at end of file -- cgit v1.2.3