View source
<?php
namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Rewriter;
use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
use Pharborist\Parser;
class FormStateTest extends TestBase {
protected $plugin;
public function setUp() {
parent::setUp();
$definition = [
'properties' => [
'input' => [
'get' => 'getUserInput',
'set' => 'setUserInput',
],
],
];
$this->plugin = $this
->getPlugin([], $definition);
}
public function testRewriteValuesAsGetter() {
$expr = Parser::parseExpression('$form_state["values"]');
$rewritten = $this->plugin
->rewriteAsGetter($expr, 'values');
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->getValues()', $rewritten
->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"]');
$rewritten = $this->plugin
->rewriteAsGetter($expr, 'values');
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->getValue(["foo"])', $rewritten
->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"][0]');
$rewritten = $this->plugin
->rewriteAsGetter($expr, 'values');
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->getValue(["foo", 0])', $rewritten
->getText());
}
public function testRewriteKnownPropertyAsGetter() {
$expr = Parser::parseExpression('$form_state["input"]');
$rewritten = $this->plugin
->rewriteAsGetter($expr, 'input');
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->getUserInput()', $rewritten
->getText());
}
public function testRewriteArbitraryKeyAsGetter() {
$expr = Parser::parseExpression('$form_state["foo"]["baz"]');
$rewritten = $this->plugin
->rewriteAsGetter($expr, 'foo');
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->get(["foo", "baz"])', $rewritten
->getText());
}
public function testRewriteValuesAsSetter() {
$expr = Parser::parseExpression('$form_state["values"]["foo"] = "baz"');
$rewritten = $this->plugin
->rewriteAsSetter($expr
->getLeftOperand(), 'values', $expr);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->setValue(["foo"], "baz")', $rewritten
->getText());
$expr = Parser::parseExpression('$form_state["values"]["foo"][1] = "bar"');
$rewritten = $this->plugin
->rewriteAsSetter($expr
->getLeftOperand(), 'values', $expr);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->setValue(["foo", 1], "bar")', $rewritten
->getText());
}
public function testRewriteKnownPropertyAsSetter() {
$expr = Parser::parseExpression('$form_state["input"] = array()');
$rewritten = $this->plugin
->rewriteAsSetter($expr
->getLeftOperand(), 'input', $expr);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->setUserInput(array())', $rewritten
->getText());
}
public function testRewriteArbitraryKeyAsSetter() {
$expr = Parser::parseExpression('$form_state["foo"]["baz"] = "bar"');
$rewritten = $this->plugin
->rewriteAsSetter($expr
->getLeftOperand(), 'foo', $expr);
$this
->assertInstanceOf('\\Pharborist\\Objects\\ObjectMethodCallNode', $rewritten);
$this
->assertEquals('$form_state->set(["foo", "baz"], "bar")', $rewritten
->getText());
}
}