diff --git a/src/Potaka/BbCode/Tokenizer/Tokenizer.php b/src/Potaka/BbCode/Tokenizer/Tokenizer.php index 90abc87..c85c164 100644 --- a/src/Potaka/BbCode/Tokenizer/Tokenizer.php +++ b/src/Potaka/BbCode/Tokenizer/Tokenizer.php @@ -35,7 +35,8 @@ class Tokenizer if ($textAsArray[$tmpPosion] === ']') { $closeTagFound = true; break; - } elseif ($textAsArray[$tmpPosion] === '=') { + // for the time being we support only 1 argument + } elseif ($textAsArray[$tmpPosion] === '=' && $argumentFound === false) { $argumentFound = true; } else { if ($argumentFound) { diff --git a/tests/phpUnit/Test/Potaka/BbCode/Tokenizer/TokenizerTest.php b/tests/phpUnit/Test/Potaka/BbCode/Tokenizer/TokenizerTest.php index eb21782..347e36f 100644 --- a/tests/phpUnit/Test/Potaka/BbCode/Tokenizer/TokenizerTest.php +++ b/tests/phpUnit/Test/Potaka/BbCode/Tokenizer/TokenizerTest.php @@ -231,4 +231,28 @@ class TokenizerTest extends TestCase $this->assertSameTokenized($expected, $result); } + + /** + * @see https://github.com/angelk/bbCode/issues/17 + */ + public function testInvalidOptions() + { + $tokenizer = new Tokenizer(); + $url = 'https://www.facebook.com/permalink.php?story_fbid=1554622461246932&id=121306641245195'; + $text = 'a[url=' . $url . ']fb[/url]'; + $result = $tokenizer->tokenize($text); + $expected = new Tag(null); + + $urlTag = new Tag('url'); + $urlTag->setArgumen($url); + $urlTag->addTag( + (new Tag(null))->setText('fb') + ); + + $expected->addTag( + (new Tag(null))->setText('a') + )->addTag($urlTag); + + $this->assertSameTokenized($expected, $result); + } }