From 70aaa59cdb05ddcc0de17ab577d6ed940d2fed40 Mon Sep 17 00:00:00 2001 From: Jakub Zalas Date: Sat, 7 Jun 2014 12:34:21 +0200 Subject: [PATCH 1/2] [Validator] Add tests for the PropertyPath class. --- .../Validator/Tests/Util/PropertyPathTest.php | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php diff --git a/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php b/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php new file mode 100644 index 0000000000000..db8739b543161 --- /dev/null +++ b/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php @@ -0,0 +1,34 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Validator\Tests\Util; + +use Symfony\Component\Validator\Util\PropertyPath; + +class PropertyPathTest extends \PHPUnit_Framework_TestCase +{ + /** + * @dataProvider provideAppendPaths + */ + public function testAppend($basePath, $subPath, $expectedPath, $message) + { + $this->assertSame($expectedPath, PropertyPath::append($basePath, $subPath), $message); + } + + public function provideAppendPaths() + { + return array( + array('foo', '', 'foo', 'It returns the basePath if subPath is empty'), + array('', 'bar', 'bar', 'It returns the subPath if basePath is empty'), + array('foo', 'bar', 'foo.bar', 'It append the subPath to the basePath'), + ); + } +} From b8558d28130a3689891e9fd2c57f2783e35132c4 Mon Sep 17 00:00:00 2001 From: Jakub Zalas Date: Sat, 7 Jun 2014 12:35:36 +0200 Subject: [PATCH 2/2] [Validator] Fix array notation support in the PropertyPath::append(). --- src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php | 1 + src/Symfony/Component/Validator/Util/PropertyPath.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php b/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php index db8739b543161..fcb202e0e065d 100644 --- a/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php +++ b/src/Symfony/Component/Validator/Tests/Util/PropertyPathTest.php @@ -29,6 +29,7 @@ public function provideAppendPaths() array('foo', '', 'foo', 'It returns the basePath if subPath is empty'), array('', 'bar', 'bar', 'It returns the subPath if basePath is empty'), array('foo', 'bar', 'foo.bar', 'It append the subPath to the basePath'), + array('foo', '[bar]', 'foo[bar]', 'It does not include the dot separator if subPath uses the array notation') ); } } diff --git a/src/Symfony/Component/Validator/Util/PropertyPath.php b/src/Symfony/Component/Validator/Util/PropertyPath.php index c8f20e7200c26..4d397a9124d99 100644 --- a/src/Symfony/Component/Validator/Util/PropertyPath.php +++ b/src/Symfony/Component/Validator/Util/PropertyPath.php @@ -38,7 +38,7 @@ class PropertyPath public static function append($basePath, $subPath) { if ('' !== (string) $subPath) { - if ('[' === $subPath{1}) { + if ('[' === $subPath{0}) { return $basePath.$subPath; }