2010-03-18 07:48:03 +00:00
< ? php
/*
2010-04-25 16:06:54 +01:00
* This file is part of the Symfony package .
2011-01-15 13:29:43 +00:00
*
2011-03-06 11:40:06 +00:00
* ( c ) Fabien Potencier < fabien @ symfony . com >
2010-03-18 07:48:03 +00:00
*
* For the full copyright and license information , please view the LICENSE
* file that was distributed with this source code .
*/
2012-03-28 14:43:52 +01:00
namespace Symfony\Component\Yaml\Tests ;
2010-03-18 07:48:03 +00:00
2010-08-20 22:09:55 +01:00
use Symfony\Component\Yaml\Inline ;
2010-03-18 07:48:03 +00:00
class InlineTest extends \PHPUnit_Framework_TestCase
{
2014-03-27 09:46:24 +00:00
/**
* @ dataProvider getTestsForParse
*/
public function testParse ( $yaml , $value )
2010-03-18 07:48:03 +00:00
{
2014-03-27 09:46:24 +00:00
$this -> assertSame ( $value , Inline :: parse ( $yaml ), sprintf ( '::parse() converts an inline YAML to a PHP structure (%s)' , $yaml ));
2010-03-18 07:48:03 +00:00
}
2014-03-27 09:46:24 +00:00
/**
* @ dataProvider getTestsForParseWithMapObjects
*/
public function testParseWithMapObjects ( $yaml , $value )
2014-01-23 16:32:31 +00:00
{
2014-03-27 09:46:24 +00:00
$actual = Inline :: parse ( $yaml , false , false , true );
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
$this -> assertSame ( serialize ( $value ), serialize ( $actual ));
2014-01-23 16:32:31 +00:00
}
2014-03-27 09:46:24 +00:00
/**
* @ dataProvider getTestsForDump
*/
public function testDump ( $yaml , $value )
2010-03-18 07:48:03 +00:00
{
2014-03-27 09:46:24 +00:00
$this -> assertEquals ( $yaml , Inline :: dump ( $value ), sprintf ( '::dump() converts a PHP structure to an inline YAML (%s)' , $yaml ));
2010-05-06 12:25:53 +01:00
2014-09-21 20:22:48 +01:00
$this -> assertSame ( $value , Inline :: parse ( Inline :: dump ( $value )), 'check consistency' );
2010-03-18 07:48:03 +00:00
}
2011-11-04 07:17:10 +00:00
public function testDumpNumericValueWithLocale ()
{
$locale = setlocale ( LC_NUMERIC , 0 );
if ( false === $locale ) {
$this -> markTestSkipped ( 'Your platform does not support locales.' );
}
2015-06-30 07:51:58 +01:00
try {
$requiredLocales = array ( 'fr_FR.UTF-8' , 'fr_FR.UTF8' , 'fr_FR.utf-8' , 'fr_FR.utf8' , 'French_France.1252' );
if ( false === setlocale ( LC_NUMERIC , $requiredLocales )) {
$this -> markTestSkipped ( 'Could not set any of required locales: ' . implode ( ', ' , $requiredLocales ));
}
2011-11-04 07:17:10 +00:00
2015-06-30 07:51:58 +01:00
$this -> assertEquals ( '1.2' , Inline :: dump ( 1.2 ));
$this -> assertContains ( 'fr' , strtolower ( setlocale ( LC_NUMERIC , 0 )));
setlocale ( LC_NUMERIC , $locale );
} catch ( \Exception $e ) {
setlocale ( LC_NUMERIC , $locale );
throw $e ;
2011-11-29 20:13:34 +00:00
}
2011-11-04 07:17:10 +00:00
}
2011-07-13 21:58:57 +01:00
public function testHashStringsResemblingExponentialNumericsShouldNotBeChangedToINF ()
{
$value = '686e444' ;
$this -> assertSame ( $value , Inline :: parse ( Inline :: dump ( $value )));
}
2012-04-20 16:15:12 +01:00
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
*/
public function testParseScalarWithIncorrectlyQuotedStringShouldThrowException ()
{
$value = " 'don't do somthin' like that' " ;
2012-06-13 13:57:32 +01:00
Inline :: parse ( $value );
2012-04-20 16:15:12 +01:00
}
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
*/
public function testParseScalarWithIncorrectlyDoubleQuotedStringShouldThrowException ()
{
$value = '"don"t do somthin" like that"' ;
2012-06-13 13:57:32 +01:00
Inline :: parse ( $value );
}
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
*/
public function testParseInvalidMappingKeyShouldThrowException ()
{
$value = '{ "foo " bar": "bar" }' ;
Inline :: parse ( $value );
2012-04-20 16:15:12 +01:00
}
2012-06-13 13:57:32 +01:00
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
*/
public function testParseInvalidMappingShouldThrowException ()
{
Inline :: parse ( '[foo] bar' );
}
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
*/
public function testParseInvalidSequenceShouldThrowException ()
{
Inline :: parse ( '{ foo: bar } bar' );
}
2012-04-20 16:15:12 +01:00
public function testParseScalarWithCorrectlyQuotedStringShouldReturnString ()
{
$value = " 'don''t do somthin'' like that' " ;
$expect = " don't do somthin' like that " ;
$this -> assertSame ( $expect , Inline :: parseScalar ( $value ));
}
2014-08-15 13:16:41 +01:00
/**
* @ dataProvider getDataForParseReferences
*/
public function testParseReferences ( $yaml , $expected )
{
2014-08-31 04:28:38 +01:00
$this -> assertSame ( $expected , Inline :: parse ( $yaml , false , false , false , array ( 'var' => 'var-value' )));
2014-08-15 13:16:41 +01:00
}
public function getDataForParseReferences ()
{
return array (
'scalar' => array ( '*var' , 'var-value' ),
'list' => array ( '[ *var ]' , array ( 'var-value' )),
'list-in-list' => array ( '[[ *var ]]' , array ( array ( 'var-value' ))),
'map-in-list' => array ( '[ { key: *var } ]' , array ( array ( 'key' => 'var-value' ))),
'embedded-mapping-in-list' => array ( '[ key: *var ]' , array ( array ( 'key' => 'var-value' ))),
'map' => array ( '{ key: *var }' , array ( 'key' => 'var-value' )),
'list-in-map' => array ( '{ key: [*var] }' , array ( 'key' => array ( 'var-value' ))),
'map-in-map' => array ( '{ foo: { bar: *var } }' , array ( 'foo' => array ( 'bar' => 'var-value' ))),
);
}
public function testParseMapReferenceInSequence ()
{
$foo = array (
'a' => 'Steve' ,
'b' => 'Clark' ,
'c' => 'Brian' ,
);
2014-08-31 04:28:38 +01:00
$this -> assertSame ( array ( $foo ), Inline :: parse ( '[*foo]' , false , false , false , array ( 'foo' => $foo )));
2014-08-15 13:16:41 +01:00
}
2014-09-03 18:52:14 +01:00
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
* @ expectedExceptionMessage A reference must contain at least one character .
*/
public function testParseUnquotedAsterisk ()
{
Inline :: parse ( '{ foo: * }' );
}
/**
* @ expectedException \Symfony\Component\Yaml\Exception\ParseException
* @ expectedExceptionMessage A reference must contain at least one character .
*/
public function testParseUnquotedAsteriskFollowedByAComment ()
{
Inline :: parse ( '{ foo: * #foo }' );
}
2014-03-27 09:46:24 +00:00
public function getTestsForParse ()
2010-03-18 07:48:03 +00:00
{
2010-05-06 12:25:53 +01:00
return array (
2014-03-27 09:46:24 +00:00
array ( '' , '' ),
array ( 'null' , null ),
array ( 'false' , false ),
array ( 'true' , true ),
array ( '12' , 12 ),
array ( '-12' , - 12 ),
array ( '"quoted string"' , 'quoted string' ),
array ( " 'quoted string' " , 'quoted string' ),
array ( '12.30e+02' , 12.30e+02 ),
array ( '0x4D2' , 0x4D2 ),
array ( '02333' , 02333 ),
array ( '.Inf' , - log ( 0 )),
array ( '-.Inf' , log ( 0 )),
array ( " '686e444' " , '686e444' ),
array ( '686e444' , 646e444 ),
array ( '123456789123456789123456789123456789' , '123456789123456789123456789123456789' ),
array ( '"foo\r\nbar"' , " foo \r \n bar " ),
array ( " 'foo#bar' " , 'foo#bar' ),
array ( " 'foo # bar' " , 'foo # bar' ),
array ( " '#cfcfcf' " , '#cfcfcf' ),
array ( '::form_base.html.twig' , '::form_base.html.twig' ),
2015-01-05 10:24:54 +00:00
// Pre-YAML-1.2 booleans
2015-01-16 14:55:47 +00:00
array ( " 'y' " , 'y' ),
array ( " 'n' " , 'n' ),
array ( " 'yes' " , 'yes' ),
array ( " 'no' " , 'no' ),
array ( " 'on' " , 'on' ),
array ( " 'off' " , 'off' ),
2014-03-27 09:46:24 +00:00
array ( '2007-10-30' , mktime ( 0 , 0 , 0 , 10 , 30 , 2007 )),
array ( '2007-10-30T02:59:43Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 2007 )),
array ( '2007-10-30 02:59:43 Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 2007 )),
array ( '1960-10-30 02:59:43 Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 1960 )),
array ( '1730-10-30T02:59:43Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 1730 )),
array ( '"a \\"string\\" with \'quoted strings inside\'"' , 'a "string" with \'quoted strings inside\'' ),
array ( " 'a \" string \" with ''quoted strings inside''' " , 'a "string" with \'quoted strings inside\'' ),
2010-05-06 12:25:53 +01:00
// sequences
// urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon
2014-03-27 09:46:24 +00:00
array ( '[foo, http://urls.are/no/mappings, false, null, 12]' , array ( 'foo' , 'http://urls.are/no/mappings' , false , null , 12 )),
array ( '[ foo , bar , false , null , 12 ]' , array ( 'foo' , 'bar' , false , null , 12 )),
array ( '[\'foo,bar\', \'foo bar\']' , array ( 'foo,bar' , 'foo bar' )),
2010-05-06 12:25:53 +01:00
// mappings
2014-03-27 09:46:24 +00:00
array ( '{foo:bar,bar:foo,false:false,null:null,integer:12}' , array ( 'foo' => 'bar' , 'bar' => 'foo' , 'false' => false , 'null' => null , 'integer' => 12 )),
array ( '{ foo : bar, bar : foo, false : false, null : null, integer : 12 }' , array ( 'foo' => 'bar' , 'bar' => 'foo' , 'false' => false , 'null' => null , 'integer' => 12 )),
array ( '{foo: \'bar\', bar: \'foo: bar\'}' , array ( 'foo' => 'bar' , 'bar' => 'foo: bar' )),
array ( '{\'foo\': \'bar\', "bar": \'foo: bar\'}' , array ( 'foo' => 'bar' , 'bar' => 'foo: bar' )),
2015-04-18 16:02:51 +01:00
array ( '{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}' , array ( 'foo\'' => 'bar' , 'bar"' => 'foo: bar' )),
array ( '{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}' , array ( 'foo: ' => 'bar' , 'bar: ' => 'foo: bar' )),
2010-05-06 12:25:53 +01:00
// nested sequences and mappings
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, foo]]' , array ( 'foo' , array ( 'bar' , 'foo' ))),
array ( '[foo, {bar: foo}]' , array ( 'foo' , array ( 'bar' => 'foo' ))),
array ( '{ foo: {bar: foo} }' , array ( 'foo' => array ( 'bar' => 'foo' ))),
array ( '{ foo: [bar, foo] }' , array ( 'foo' => array ( 'bar' , 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[ foo, [ bar, foo ] ]' , array ( 'foo' , array ( 'bar' , 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[{ foo: {bar: foo} }]' , array ( array ( 'foo' => array ( 'bar' => 'foo' )))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, [foo, [bar, foo]], foo]]' , array ( 'foo' , array ( 'bar' , array ( 'foo' , array ( 'bar' , 'foo' )), 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]' , array ( 'foo' , array ( 'bar' => 'foo' , 'foo' => array ( 'foo' , array ( 'bar' => 'foo' ))), array ( 'foo' , array ( 'bar' => 'foo' )))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, bar: { foo: bar }]' , array ( 'foo' , '1' => array ( 'bar' => array ( 'foo' => 'bar' )))),
2014-09-22 12:59:59 +01:00
array ( '[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']' , array ( 'foo' , '@foo.baz' , array ( '%foo%' => 'foo is %foo%' , 'bar' => '%foo%' ), true , '@service_container' )),
2010-05-06 12:25:53 +01:00
);
}
2010-03-18 07:48:03 +00:00
2014-03-27 09:46:24 +00:00
public function getTestsForParseWithMapObjects ()
2014-01-23 16:32:31 +00:00
{
return array (
2014-03-27 09:46:24 +00:00
array ( '' , '' ),
array ( 'null' , null ),
array ( 'false' , false ),
array ( 'true' , true ),
array ( '12' , 12 ),
array ( '-12' , - 12 ),
array ( '"quoted string"' , 'quoted string' ),
array ( " 'quoted string' " , 'quoted string' ),
array ( '12.30e+02' , 12.30e+02 ),
array ( '0x4D2' , 0x4D2 ),
array ( '02333' , 02333 ),
array ( '.Inf' , - log ( 0 )),
array ( '-.Inf' , log ( 0 )),
array ( " '686e444' " , '686e444' ),
array ( '686e444' , 646e444 ),
array ( '123456789123456789123456789123456789' , '123456789123456789123456789123456789' ),
array ( '"foo\r\nbar"' , " foo \r \n bar " ),
array ( " 'foo#bar' " , 'foo#bar' ),
array ( " 'foo # bar' " , 'foo # bar' ),
array ( " '#cfcfcf' " , '#cfcfcf' ),
array ( '::form_base.html.twig' , '::form_base.html.twig' ),
array ( '2007-10-30' , mktime ( 0 , 0 , 0 , 10 , 30 , 2007 )),
array ( '2007-10-30T02:59:43Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 2007 )),
array ( '2007-10-30 02:59:43 Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 2007 )),
array ( '1960-10-30 02:59:43 Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 1960 )),
array ( '1730-10-30T02:59:43Z' , gmmktime ( 2 , 59 , 43 , 10 , 30 , 1730 )),
array ( '"a \\"string\\" with \'quoted strings inside\'"' , 'a "string" with \'quoted strings inside\'' ),
array ( " 'a \" string \" with ''quoted strings inside''' " , 'a "string" with \'quoted strings inside\'' ),
2014-01-23 16:32:31 +00:00
// sequences
// urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon
2014-03-27 09:46:24 +00:00
array ( '[foo, http://urls.are/no/mappings, false, null, 12]' , array ( 'foo' , 'http://urls.are/no/mappings' , false , null , 12 )),
array ( '[ foo , bar , false , null , 12 ]' , array ( 'foo' , 'bar' , false , null , 12 )),
array ( '[\'foo,bar\', \'foo bar\']' , array ( 'foo,bar' , 'foo bar' )),
2014-01-23 16:32:31 +00:00
// mappings
2014-03-27 09:46:24 +00:00
array ( '{foo:bar,bar:foo,false:false,null:null,integer:12}' , ( object ) array ( 'foo' => 'bar' , 'bar' => 'foo' , 'false' => false , 'null' => null , 'integer' => 12 )),
array ( '{ foo : bar, bar : foo, false : false, null : null, integer : 12 }' , ( object ) array ( 'foo' => 'bar' , 'bar' => 'foo' , 'false' => false , 'null' => null , 'integer' => 12 )),
array ( '{foo: \'bar\', bar: \'foo: bar\'}' , ( object ) array ( 'foo' => 'bar' , 'bar' => 'foo: bar' )),
array ( '{\'foo\': \'bar\', "bar": \'foo: bar\'}' , ( object ) array ( 'foo' => 'bar' , 'bar' => 'foo: bar' )),
2015-08-24 07:53:33 +01:00
array ( '{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}' , ( object ) array ( 'foo\'' => 'bar' , 'bar"' => 'foo: bar' )),
array ( '{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}' , ( object ) array ( 'foo: ' => 'bar' , 'bar: ' => 'foo: bar' )),
2014-01-23 16:32:31 +00:00
// nested sequences and mappings
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, foo]]' , array ( 'foo' , array ( 'bar' , 'foo' ))),
array ( '[foo, {bar: foo}]' , array ( 'foo' , ( object ) array ( 'bar' => 'foo' ))),
array ( '{ foo: {bar: foo} }' , ( object ) array ( 'foo' => ( object ) array ( 'bar' => 'foo' ))),
array ( '{ foo: [bar, foo] }' , ( object ) array ( 'foo' => array ( 'bar' , 'foo' ))),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[ foo, [ bar, foo ] ]' , array ( 'foo' , array ( 'bar' , 'foo' ))),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[{ foo: {bar: foo} }]' , array (( object ) array ( 'foo' => ( object ) array ( 'bar' => 'foo' )))),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, [foo, [bar, foo]], foo]]' , array ( 'foo' , array ( 'bar' , array ( 'foo' , array ( 'bar' , 'foo' )), 'foo' ))),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[foo, {bar: foo, foo: [foo, {bar: foo}]}, [foo, {bar: foo}]]' , array ( 'foo' , ( object ) array ( 'bar' => 'foo' , 'foo' => array ( 'foo' , ( object ) array ( 'bar' => 'foo' ))), array ( 'foo' , ( object ) array ( 'bar' => 'foo' )))),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[foo, bar: { foo: bar }]' , array ( 'foo' , '1' => ( object ) array ( 'bar' => ( object ) array ( 'foo' => 'bar' )))),
2014-09-22 12:59:59 +01:00
array ( '[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']' , array ( 'foo' , '@foo.baz' , ( object ) array ( '%foo%' => 'foo is %foo%' , 'bar' => '%foo%' ), true , '@service_container' )),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '{}' , new \stdClass ()),
array ( '{ foo : bar, bar : {} }' , ( object ) array ( 'foo' => 'bar' , 'bar' => new \stdClass ())),
array ( '{ foo : [], bar : {} }' , ( object ) array ( 'foo' => array (), 'bar' => new \stdClass ())),
array ( '{foo: \'bar\', bar: {} }' , ( object ) array ( 'foo' => 'bar' , 'bar' => new \stdClass ())),
array ( '{\'foo\': \'bar\', "bar": {}}' , ( object ) array ( 'foo' => 'bar' , 'bar' => new \stdClass ())),
array ( '{\'foo\': \'bar\', "bar": \'{}\'}' , ( object ) array ( 'foo' => 'bar' , 'bar' => '{}' )),
2014-01-23 16:32:31 +00:00
2014-03-27 09:46:24 +00:00
array ( '[foo, [{}, {}]]' , array ( 'foo' , array ( new \stdClass (), new \stdClass ()))),
array ( '[foo, [[], {}]]' , array ( 'foo' , array ( array (), new \stdClass ()))),
array ( '[foo, [[{}, {}], {}]]' , array ( 'foo' , array ( array ( new \stdClass (), new \stdClass ()), new \stdClass ()))),
array ( '[foo, {bar: {}}]' , array ( 'foo' , '1' => ( object ) array ( 'bar' => new \stdClass ()))),
2014-01-23 16:32:31 +00:00
);
}
2014-03-27 09:46:24 +00:00
public function getTestsForDump ()
2010-05-06 12:25:53 +01:00
{
return array (
2014-03-27 09:46:24 +00:00
array ( 'null' , null ),
array ( 'false' , false ),
array ( 'true' , true ),
array ( '12' , 12 ),
array ( " 'quoted string' " , 'quoted string' ),
2014-09-21 20:22:48 +01:00
array ( '!!float 1230' , 12.30e+02 ),
2014-03-27 09:46:24 +00:00
array ( '1234' , 0x4D2 ),
array ( '1243' , 02333 ),
array ( '.Inf' , - log ( 0 )),
array ( '-.Inf' , log ( 0 )),
array ( " '686e444' " , '686e444' ),
array ( '"foo\r\nbar"' , " foo \r \n bar " ),
array ( " 'foo#bar' " , 'foo#bar' ),
array ( " 'foo # bar' " , 'foo # bar' ),
array ( " '#cfcfcf' " , '#cfcfcf' ),
array ( " 'a \" string \" with ''quoted strings inside''' " , 'a "string" with \'quoted strings inside\'' ),
array ( " '-dash' " , '-dash' ),
array ( " '-' " , '-' ),
2013-10-10 23:23:27 +01:00
2015-01-05 10:24:54 +00:00
// Pre-YAML-1.2 booleans
2015-01-16 14:55:47 +00:00
array ( " 'y' " , 'y' ),
array ( " 'n' " , 'n' ),
array ( " 'yes' " , 'yes' ),
array ( " 'no' " , 'no' ),
array ( " 'on' " , 'on' ),
array ( " 'off' " , 'off' ),
2015-01-05 10:24:54 +00:00
2010-05-06 12:25:53 +01:00
// sequences
2014-03-27 09:46:24 +00:00
array ( '[foo, bar, false, null, 12]' , array ( 'foo' , 'bar' , false , null , 12 )),
array ( '[\'foo,bar\', \'foo bar\']' , array ( 'foo,bar' , 'foo bar' )),
2010-05-06 12:25:53 +01:00
// mappings
2014-03-27 09:46:24 +00:00
array ( '{ foo: bar, bar: foo, \'false\': false, \'null\': null, integer: 12 }' , array ( 'foo' => 'bar' , 'bar' => 'foo' , 'false' => false , 'null' => null , 'integer' => 12 )),
array ( '{ foo: bar, bar: \'foo: bar\' }' , array ( 'foo' => 'bar' , 'bar' => 'foo: bar' )),
2010-05-06 12:25:53 +01:00
// nested sequences and mappings
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, foo]]' , array ( 'foo' , array ( 'bar' , 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, [bar, [foo, [bar, foo]], foo]]' , array ( 'foo' , array ( 'bar' , array ( 'foo' , array ( 'bar' , 'foo' )), 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '{ foo: { bar: foo } }' , array ( 'foo' => array ( 'bar' => 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, { bar: foo }]' , array ( 'foo' , array ( 'bar' => 'foo' ))),
2010-05-06 12:25:53 +01:00
2014-03-27 09:46:24 +00:00
array ( '[foo, { bar: foo, foo: [foo, { bar: foo }] }, [foo, { bar: foo }]]' , array ( 'foo' , array ( 'bar' => 'foo' , 'foo' => array ( 'foo' , array ( 'bar' => 'foo' ))), array ( 'foo' , array ( 'bar' => 'foo' )))),
2012-04-20 16:15:12 +01:00
2014-09-22 12:59:59 +01:00
array ( '[foo, \'@foo.baz\', { \'%foo%\': \'foo is %foo%\', bar: \'%foo%\' }, true, \'@service_container\']' , array ( 'foo' , '@foo.baz' , array ( '%foo%' => 'foo is %foo%' , 'bar' => '%foo%' ), true , '@service_container' )),
2010-05-06 12:25:53 +01:00
);
2010-03-18 07:48:03 +00:00
}
}