From 526bfe8211fb917da20f377d407531437de60a93 Mon Sep 17 00:00:00 2001 From: "Angel Koilov (po_taka)" Date: Fri, 24 Feb 2017 21:18:34 +0200 Subject: [PATCH] issues-17 (#18) --- src/Potaka/BbCode/Tokenizer/Tokenizer.php | 3 ++- .../Potaka/BbCode/Tokenizer/TokenizerTest.php | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) 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); + } }