/** * A utility method for these tests that will evaluate its arguments as bbcode with * a fresh parser loaded with only the default bbcodes. It returns the * bbcode output, which in most cases should be in the input itself. */ private function defaultBBCodeParse($bbcode) { $parser = new JBBCode\Parser(); $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet()); $parser->parse($bbcode); return $parser->getAsBBCode(); }
/** * Test over nesting. */ public function testOverNesting() { $parser = new JBBCode\Parser(); $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet()); $parser->addBBCode('quote', '<blockquote>{param}</blockquote>', false, true, 2); $bbcode = '[quote][quote][quote]wut[/quote] huh?[/quote] i don\'t know[/quote]'; $parser->parse($bbcode); $expectedBbcode = '[quote][quote] huh?[/quote] i don\'t know[/quote]'; $expectedHtml = '<blockquote><blockquote> huh?</blockquote> i don\'t know</blockquote>'; $this->assertEquals($expectedBbcode, $parser->getAsBBCode()); $this->assertEquals($expectedHtml, $parser->getAsHtml()); }
/** * Tests that when a tag is not closed within an unparseable tag, * the BBCode output does not automatically close that tag (because * the contents were not parsed). */ public function testUnclosedTag() { $parser = new JBBCode\Parser(); $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet()); $parser->addBBCode('verbatim', '{param}', false, false); $parser->parse('[verbatim]i wonder [b]what will happen[/verbatim]'); $this->assertEquals('i wonder [b]what will happen', $parser->getAsHtml()); $this->assertEquals('[verbatim]i wonder [b]what will happen[/verbatim]', $parser->getAsBBCode()); }
<?php require_once "/path/to/jbbcode/Parser.php"; $parser = new JBBCode\Parser(); $parser->addCodeDefinitionSet(new JBBCode\DefaultCodeDefinitionSet()); $text = "The bbcode in here [b]is never closed!"; $parser->parse($text); print $parser->getAsBBCode();