First commit
This commit is contained in:
commit
d5bb2f19fa
117 changed files with 68604 additions and 0 deletions
208
vendor/yosymfony/toml/tests/TomlBuilderTest.php
vendored
Normal file
208
vendor/yosymfony/toml/tests/TomlBuilderTest.php
vendored
Normal file
|
@ -0,0 +1,208 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Yosymfony\Toml package.
|
||||
*
|
||||
* (c) YoSymfony <http://github.com/yosymfony>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Yosymfony\Toml\tests;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Yosymfony\Toml\TomlBuilder;
|
||||
use Yosymfony\Toml\Toml;
|
||||
|
||||
class TomlBuilderTest extends TestCase
|
||||
{
|
||||
public function testExample()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addComment('Toml file')
|
||||
->addTable('data.string')
|
||||
->addValue('name', 'Toml', 'This is your name')
|
||||
->addValue('newline', "This string has a \n new line character.")
|
||||
->addValue('winPath', 'C:\\Users\\nodejs\\templates')
|
||||
->addValue('unicode', 'unicode character: '.json_decode('"\u03B4"'))
|
||||
->addTable('data.bool')
|
||||
->addValue('t', true)
|
||||
->addValue('f', false)
|
||||
->addTable('data.integer')
|
||||
->addValue('positive', 25, 'Comment inline.')
|
||||
->addValue('negative', -25)
|
||||
->addTable('data.float')
|
||||
->addValue('positive', 25.25)
|
||||
->addValue('negative', -25.25)
|
||||
->addTable('data.datetime')
|
||||
->addValue('datetime', new \Datetime())
|
||||
->addComment('Related to arrays')
|
||||
->addTable('data.array')
|
||||
->addValue('simple', array(1, 2, 3))
|
||||
->addValue('multiple', array(array(1, 2), array('abc', 'def'), array(1.1, 1.2), array(true, false), array(new \Datetime())))
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testArrayEmpty()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addComment('Toml file')
|
||||
->addValue('thevoid', array())
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testImplicitAndExplicitAfter()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addTable('a.b.c')
|
||||
->addValue('answer', 42)
|
||||
->addTable('a')
|
||||
->addValue('better', 43)
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testImplicitAndExplicitBefore()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addTable('a')
|
||||
->addValue('better', 43)
|
||||
->addTable('a.b.c')
|
||||
->addValue('answer', 42)
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testTableEmpty()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addTable('a')
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testTableSubEmpty()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addTable('a')
|
||||
->addTable('a.b')
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testKeyWhitespace()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('valid key', 2)
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testStringEscapesDoubleQuote()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('backspace', "This string has a \b backspace character.")
|
||||
->addValue('tab', "This string has a \t tab character.")
|
||||
->addValue('newline', "This string has a \n new line character.")
|
||||
->addValue('formfeed', "This string has a \f form feed character.")
|
||||
->addValue('carriage', "This string has a \r carriage return character.")
|
||||
->addValue('quote', 'This string has a " quote character.')
|
||||
->addValue('slash', "This string has a / slash character.")
|
||||
->addValue('backslash', 'This string has a \\ backslash character.')
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testKeyLiteralString()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('regex', "@<\i\c*\s*>")
|
||||
->getTomlString();
|
||||
|
||||
$array = Toml::Parse($result);
|
||||
|
||||
$this->assertNotNull($array);
|
||||
|
||||
$this->assertEquals('<\i\c*\s*>', $array['regex']);
|
||||
}
|
||||
|
||||
public function testKeyLiteralStringEscapingAt()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('regex', "@@<\i\c*\s*>")
|
||||
->getTomlString();
|
||||
|
||||
$array = Toml::Parse($result);
|
||||
|
||||
$this->assertNotNull($array);
|
||||
|
||||
$this->assertEquals('@<\i\c*\s*>', $array['regex']);
|
||||
}
|
||||
|
||||
public function testKeySpecialChars()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('~!@$^&*()_+-`1234567890[]|/?><.,;:\'', 1)
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testStringEscapesSingleQuote()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addValue('backspace', 'This string has a \b backspace character.')
|
||||
->addValue('tab', 'This string has a \t tab character.')
|
||||
->addValue('newline', 'This string has a \n new line character.')
|
||||
->addValue('formfeed', 'This string has a \f form feed character.')
|
||||
->addValue('carriage', 'This string has a \r carriage return character.')
|
||||
->addValue('quote', 'This string has a \" quote character.')
|
||||
->addValue('slash', 'This string has a \/ slash character.')
|
||||
->addValue('backslash', 'This string has a \\ backslash character.')
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
|
||||
public function testArrayOfTables()
|
||||
{
|
||||
$tb = new TomlBuilder();
|
||||
|
||||
$result = $tb->addArrayOfTable('fruit')
|
||||
->addValue('name', 'apple')
|
||||
->addArrayOfTable('fruit.variety')
|
||||
->addValue('name', 'red delicious')
|
||||
->addArrayOfTable('fruit.variety')
|
||||
->addValue('name', 'granny smith')
|
||||
->addArrayOfTable('fruit')
|
||||
->addValue('name', 'banana')
|
||||
->addArrayOfTable('fruit.variety')
|
||||
->addValue('name', 'plantain')
|
||||
->getTomlString();
|
||||
|
||||
$this->assertNotNull(Toml::Parse($result));
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue