ParserIntegrityTest.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. // Call Zend_Json_ServerTest::main() if this source file is executed directly.
  3. if (!defined("PHPUnit_MAIN_METHOD")) {
  4. define("PHPUnit_MAIN_METHOD", "Zend_Markup_ParserIntegrityTest::main");
  5. }
  6. require_once dirname(__FILE__) . '/../../TestHelper.php';
  7. require_once 'Zend/Markup.php';
  8. /**
  9. * Test class for Zend_Markup
  10. */
  11. class Zend_Markup_ParserIntegrityTest extends PHPUnit_Framework_TestCase
  12. {
  13. /**
  14. * Runs the test methods of this class.
  15. *
  16. * @return void
  17. */
  18. public static function main()
  19. {
  20. require_once "PHPUnit/TextUI/TestRunner.php";
  21. $suite = new PHPUnit_Framework_TestSuite("Zend_Markup_MarkupTest");
  22. $result = PHPUnit_TextUI_TestRunner::run($suite);
  23. }
  24. public function testBbcodeParser()
  25. {
  26. $parser = Zend_Markup::factory('bbcode')->getParser();
  27. $value = '[b][s][i]foobar[/i][/s][/b]';
  28. $output = '';
  29. $tree = $parser->parse($value);
  30. // iterate trough the tree and check if we can generate the original value
  31. $iterator = new RecursiveIteratorIterator($tree, RecursiveIteratorIterator::SELF_FIRST);
  32. foreach ($iterator as $token) {
  33. $output .= $token->getTag();
  34. if ($token->getStopper() != '') {
  35. $token->addChild(new Zend_Markup_Token(
  36. $token->getStopper(),
  37. Zend_Markup_Token::TYPE_NONE,
  38. '', array(), $token)
  39. );
  40. }
  41. }
  42. $this->assertEquals($value, $output);
  43. }
  44. }
  45. // Call Zend_Markup_BbcodeTest::main() if this source file is executed directly.
  46. if (PHPUnit_MAIN_METHOD == "Zend_Markup_ParserIntegrityTest::main") {
  47. Zend_Markup_BbcodeTest::main();
  48. }