diff options
author | Romain d'Alverny <rda@mageia.org> | 2012-05-14 09:16:32 +0000 |
---|---|---|
committer | Romain d'Alverny <rda@mageia.org> | 2012-05-14 09:16:32 +0000 |
commit | 6eda908cfd5d885d5740bc4821dfb524c9e7a436 (patch) | |
tree | c02bc0a26cf954be14186091738eee56fbc5926e /lib/fabpot-yaml/test/sfYamlInlineTest.php | |
parent | 948f9d8ef1c3f688a688f99ed17974eb87b3d984 (diff) | |
download | fidd-6eda908cfd5d885d5740bc4821dfb524c9e7a436.tar fidd-6eda908cfd5d885d5740bc4821dfb524c9e7a436.tar.gz fidd-6eda908cfd5d885d5740bc4821dfb524c9e7a436.tar.bz2 fidd-6eda908cfd5d885d5740bc4821dfb524c9e7a436.tar.xz fidd-6eda908cfd5d885d5740bc4821dfb524c9e7a436.zip |
add library and var dir
Diffstat (limited to 'lib/fabpot-yaml/test/sfYamlInlineTest.php')
-rw-r--r-- | lib/fabpot-yaml/test/sfYamlInlineTest.php | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/lib/fabpot-yaml/test/sfYamlInlineTest.php b/lib/fabpot-yaml/test/sfYamlInlineTest.php new file mode 100644 index 0000000..097fb26 --- /dev/null +++ b/lib/fabpot-yaml/test/sfYamlInlineTest.php @@ -0,0 +1,147 @@ +<?php + +/* + * This file is part of the symfony package. + * (c) Fabien Potencier <fabien.potencier@symfony-project.com> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +require_once(dirname(__FILE__).'/lime/lime.php'); +require_once(dirname(__FILE__).'/../lib/sfYaml.php'); +require_once(dirname(__FILE__).'/../lib/sfYamlInline.php'); + +sfYaml::setSpecVersion('1.1'); + +$t = new lime_test(124); + +// ::load() +$t->diag('::load()'); + +$testsForLoad = array( + '' => '', + 'null' => null, + 'false' => false, + 'true' => true, + '12' => 12, + '"quoted string"' => 'quoted string', + "'quoted string'" => 'quoted string', + '12.30e+02' => 12.30e+02, + '0x4D2' => 0x4D2, + '02333' => 02333, + '.Inf' => -log(0), + '-.Inf' => log(0), + '123456789123456789' => '123456789123456789', + '"foo\r\nbar"' => "foo\r\nbar", + "'foo#bar'" => 'foo#bar', + "'foo # bar'" => 'foo # bar', + "'#cfcfcf'" => '#cfcfcf', + + '2007-10-30' => mktime(0, 0, 0, 10, 30, 2007), + '2007-10-30T02:59:43Z' => gmmktime(2, 59, 43, 10, 30, 2007), + '2007-10-30 02:59:43 Z' => gmmktime(2, 59, 43, 10, 30, 2007), + + '"a \\"string\\" with \'quoted strings inside\'"' => 'a "string" with \'quoted strings inside\'', + "'a \"string\" with ''quoted strings inside'''" => 'a "string" with \'quoted strings inside\'', + + // sequences + // urls are no key value mapping. see #3609. Valid yaml "key: value" mappings require a space after the colon + '[foo, http://urls.are/no/mappings, false, null, 12]' => array('foo', 'http://urls.are/no/mappings', false, null, 12), + '[ foo , bar , false , null , 12 ]' => array('foo', 'bar', false, null, 12), + '[\'foo,bar\', \'foo bar\']' => array('foo,bar', 'foo bar'), + + // mappings + '{foo:bar,bar:foo,false:false,null:null,integer:12}' => array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12), + '{ foo : bar, bar : foo, false : false, null : null, integer : 12 }' => array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12), + '{foo: \'bar\', bar: \'foo: bar\'}' => array('foo' => 'bar', 'bar' => 'foo: bar'), + '{\'foo\': \'bar\', "bar": \'foo: bar\'}' => array('foo' => 'bar', 'bar' => 'foo: bar'), + '{\'foo\'\'\': \'bar\', "bar\"": \'foo: bar\'}' => array('foo\'' => 'bar', "bar\"" => 'foo: bar'), + '{\'foo: \': \'bar\', "bar: ": \'foo: bar\'}' => array('foo: ' => 'bar', "bar: " => 'foo: bar'), + + // nested sequences and mappings + '[foo, [bar, foo]]' => array('foo', array('bar', 'foo')), + '[foo, {bar: foo}]' => array('foo', array('bar' => 'foo')), + '{ foo: {bar: foo} }' => array('foo' => array('bar' => 'foo')), + '{ foo: [bar, foo] }' => array('foo' => array('bar', 'foo')), + + '[ foo, [ bar, foo ] ]' => array('foo', array('bar', 'foo')), + + '[{ foo: {bar: foo} }]' => array(array('foo' => array('bar' => 'foo'))), + + '[foo, [bar, [foo, [bar, foo]], foo]]' => array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo')), + + '[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'))), + + '[foo, bar: { foo: bar }]' => array('foo', '1' => array('bar' => array('foo' => 'bar'))), +); + +foreach ($testsForLoad as $yaml => $value) +{ + $t->is_deeply(sfYamlInline::load($yaml), $value, sprintf('::load() converts an inline YAML to a PHP structure (%s)', $yaml)); +} + +$testsForDump = array( + 'null' => null, + 'false' => false, + 'true' => true, + '12' => 12, + "'quoted string'" => 'quoted string', + '12.30e+02' => 12.30e+02, + '1234' => 0x4D2, + '1243' => 02333, + '.Inf' => -log(0), + '-.Inf' => log(0), + '"foo\r\nbar"' => "foo\r\nbar", + "'foo#bar'" => 'foo#bar', + "'foo # bar'" => 'foo # bar', + "'#cfcfcf'" => '#cfcfcf', + + "'a \"string\" with ''quoted strings inside'''" => 'a "string" with \'quoted strings inside\'', + + // sequences + '[foo, bar, false, null, 12]' => array('foo', 'bar', false, null, 12), + '[\'foo,bar\', \'foo bar\']' => array('foo,bar', 'foo bar'), + + // mappings + '{ foo: bar, bar: foo, \'false\': false, \'null\': null, integer: 12 }' => array('foo' => 'bar', 'bar' => 'foo', 'false' => false, 'null' => null, 'integer' => 12), + '{ foo: bar, bar: \'foo: bar\' }' => array('foo' => 'bar', 'bar' => 'foo: bar'), + + // nested sequences and mappings + '[foo, [bar, foo]]' => array('foo', array('bar', 'foo')), + + '[foo, [bar, [foo, [bar, foo]], foo]]' => array('foo', array('bar', array('foo', array('bar', 'foo')), 'foo')), + + '{ foo: { bar: foo } }' => array('foo' => array('bar' => 'foo')), + + '[foo, { bar: foo }]' => array('foo', array('bar' => 'foo')), + + '[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'))), +); + +// ::dump() +$t->diag('::dump()'); +foreach ($testsForDump as $yaml => $value) +{ + $t->is(sfYamlInline::dump($value), $yaml, sprintf('::dump() converts a PHP structure to an inline YAML (%s)', $yaml)); +} + +foreach ($testsForLoad as $yaml => $value) +{ + if ($value == 1230) + { + continue; + } + + $t->is_deeply(sfYamlInline::load(sfYamlInline::dump($value)), $value, 'check consistency'); +} + +foreach ($testsForDump as $yaml => $value) +{ + if ($value == 1230) + { + continue; + } + + $t->is_deeply(sfYamlInline::load(sfYamlInline::dump($value)), $value, 'check consistency'); +} |