Permalink
Browse files

Changed the testcase to expect the unescaping only after the resolution

String values are not unescaped either in resolveValue() because it can
be called several times for the same parameter.
  • Loading branch information...
1 parent a1b6d4c commit 045f93603810a1c386ba717dbf4b3c02d150a847 @stof stof committed Feb 2, 2012
View
18 tests/Symfony/Tests/Component/DependencyInjection/ParameterBag/ParameterBagTest.php
@@ -94,7 +94,7 @@ public function testResolveValue()
$this->assertEquals(array('bar' => array('bar' => array('bar' => 'bar'))), $bag->resolveValue(array('%foo%' => array('%foo%' => array('%foo%' => '%foo%')))), '->resolveValue() replaces placeholders in nested arrays');
$this->assertEquals('I\'m a %%foo%%', $bag->resolveValue('I\'m a %%foo%%'), '->resolveValue() supports % escaping by doubling it');
$this->assertEquals('I\'m a bar %%foo bar', $bag->resolveValue('I\'m a %foo% %%foo %foo%'), '->resolveValue() supports % escaping by doubling it');
- $this->assertEquals(array('foo' => array('bar' => array('ding' => 'I\'m a bar %foo %bar'))), $bag->resolveValue(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')))), '->resolveValue() supports % escaping by doubling it');
+ $this->assertEquals(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar'))), $bag->resolveValue(array('foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')))), '->resolveValue() supports % escaping by doubling it');
$bag = new ParameterBag(array('foo' => true));
$this->assertSame(true, $bag->resolveValue('%foo%'), '->resolveValue() replaces arguments that are just a placeholder by their value without casting them to strings');
@@ -168,6 +168,22 @@ public function testResolveIndicatesWhyAParameterIsNeeded()
/**
* @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
+ */
+ public function testResolveUnespacesValue()
+ {
+ $bag = new ParameterBag(array(
+ 'foo' => array('bar' => array('ding' => 'I\'m a bar %%foo %%bar')),
+ 'bar' => 'I\'m a %%foo%%',
+ ));
+
+ $bag->resolve();
+
+ $this->assertEquals('I\'m a %foo%', $bag->get('bar'), '->resolveValue() supports % escaping by doubling it');
+ $this->assertEquals(array('bar' => array('ding' => 'I\'m a bar %foo %bar')), $bag->get('foo'), '->resolveValue() supports % escaping by doubling it');
+ }
+
+ /**
+ * @covers Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::resolve
* @dataProvider stringsWithSpacesProvider
*/
public function testResolveStringWithSpacesReturnsString($expected, $test, $description)

0 comments on commit 045f936

Please sign in to comment.