assertEquals($names, $node->getNode('names')); $this->assertEquals($values, $node->getNode('values')); $this->assertFalse($node->getAttribute('capture')); } public static function provideTests(): iterable { $tests = []; $names = new Nodes([new AssignContextVariable('foo', 1)], 1); $values = new Nodes([new ConstantExpression('foo', 1)], 1); $node = new SetNode(false, $names, $values, 1); $tests[] = [$node, <<env->getCharset()); EOF, new Environment(new ArrayLoader(), ['use_yield' => true]), ]; $tests[] = [$node, <<<'EOF' // line 1 $context["foo"] = ('' === $tmp = \Twig\Extension\CoreExtension::captureOutput((function () use (&$context, $macros, $blocks) { yield "foo"; yield from []; })())) ? '' : new Markup($tmp, $this->env->getCharset()); EOF, new Environment(new ArrayLoader(), ['use_yield' => false]), ]; $names = new Nodes([new AssignContextVariable('foo', 1)], 1); $values = new TextNode('foo', 1); $node = new SetNode(true, $names, $values, 1); $tests[] = [$node, <<env->getCharset()); EOF ]; $names = new Nodes([new AssignContextVariable('foo', 1)], 1); $values = new TextNode('', 1); $node = new SetNode(true, $names, $values, 1); $tests[] = [$node, <<env->getCharset()); EOF ]; $names = new Nodes([new AssignContextVariable('foo', 1), new AssignContextVariable('bar', 1)], 1); $values = new Nodes([new ConstantExpression('foo', 1), new ContextVariable('bar', 1)], 1); $node = new SetNode(false, $names, $values, 1); $tests[] = [$node, <<<'EOF' // line 1 [$context["foo"], $context["bar"]] = ["foo", ($context["bar"] ?? null)]; EOF ]; return $tests; } }