mirror of
https://github.com/twigphp/Twig.git
synced 2026-08-24 11:26:24 +00:00
81 lines
2.4 KiB
PHP
81 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Twig\Tests\Node;
|
|
|
|
/*
|
|
* This file is part of Twig.
|
|
*
|
|
* (c) Fabien Potencier
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
use Twig\Node\Expression\AssignNameExpression;
|
|
use Twig\Node\Expression\ConstantExpression;
|
|
use Twig\Node\Expression\NameExpression;
|
|
use Twig\Node\Node;
|
|
use Twig\Node\PrintNode;
|
|
use Twig\Node\SetNode;
|
|
use Twig\Node\TextNode;
|
|
use Twig\Test\NodeTestCase;
|
|
|
|
class SetTest extends NodeTestCase
|
|
{
|
|
public function testConstructor()
|
|
{
|
|
$names = new Node([new AssignNameExpression('foo', 1)], [], 1);
|
|
$values = new Node([new ConstantExpression('foo', 1)], [], 1);
|
|
$node = new SetNode(false, $names, $values, 1);
|
|
|
|
$this->assertEquals($names, $node->getNode('names'));
|
|
$this->assertEquals($values, $node->getNode('values'));
|
|
$this->assertFalse($node->getAttribute('capture'));
|
|
}
|
|
|
|
public function getTests()
|
|
{
|
|
$tests = [];
|
|
|
|
$names = new Node([new AssignNameExpression('foo', 1)], [], 1);
|
|
$values = new Node([new ConstantExpression('foo', 1)], [], 1);
|
|
$node = new SetNode(false, $names, $values, 1);
|
|
$tests[] = [$node, <<<EOF
|
|
// line 1
|
|
\$context["foo"] = "foo";
|
|
EOF
|
|
];
|
|
|
|
$names = new Node([new AssignNameExpression('foo', 1)], [], 1);
|
|
$values = new Node([new PrintNode(new ConstantExpression('foo', 1), 1)], [], 1);
|
|
$node = new SetNode(true, $names, $values, 1);
|
|
$tests[] = [$node, <<<EOF
|
|
// line 1
|
|
ob_start(function () { return ''; });
|
|
echo "foo";
|
|
\$context["foo"] = ('' === \$tmp = ob_get_clean()) ? '' : new Markup(\$tmp, \$this->env->getCharset());
|
|
EOF
|
|
];
|
|
|
|
$names = new Node([new AssignNameExpression('foo', 1)], [], 1);
|
|
$values = new TextNode('foo', 1);
|
|
$node = new SetNode(true, $names, $values, 1);
|
|
$tests[] = [$node, <<<EOF
|
|
// line 1
|
|
\$context["foo"] = ('' === \$tmp = "foo") ? '' : new Markup(\$tmp, \$this->env->getCharset());
|
|
EOF
|
|
];
|
|
|
|
$names = new Node([new AssignNameExpression('foo', 1), new AssignNameExpression('bar', 1)], [], 1);
|
|
$values = new Node([new ConstantExpression('foo', 1), new NameExpression('bar', 1)], [], 1);
|
|
$node = new SetNode(false, $names, $values, 1);
|
|
$tests[] = [$node, <<<EOF
|
|
// line 1
|
|
list(\$context["foo"], \$context["bar"]) = ["foo", {$this->getVariableGetter('bar')}];
|
|
EOF
|
|
];
|
|
|
|
return $tests;
|
|
}
|
|
}
|