3 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Rewriter;
5 use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
10 * @covers \Drupal\drupalmoduleupgrader\Plugin\DMU\Rewriter\FormState
12 class FormStateTest extends TestBase {
15 * @var \Drupal\drupalmoduleupgrader\RewriterInterface
19 public function setUp() {
25 'get' => 'getUserInput',
26 'set' => 'setUserInput',
30 $this->plugin = $this->getPlugin([], $definition);
33 public function testRewriteValuesAsGetter() {
34 $expr = Parser::parseExpression('$form_state["values"]');
35 $rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
36 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
37 $this->assertEquals('$form_state->getValues()', $rewritten->getText());
39 $expr = Parser::parseExpression('$form_state["values"]["foo"]');
40 $rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
41 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
42 $this->assertEquals('$form_state->getValue(["foo"])', $rewritten->getText());
44 $expr = Parser::parseExpression('$form_state["values"]["foo"][0]');
45 $rewritten = $this->plugin->rewriteAsGetter($expr, 'values');
46 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
47 $this->assertEquals('$form_state->getValue(["foo", 0])', $rewritten->getText());
50 public function testRewriteKnownPropertyAsGetter() {
51 $expr = Parser::parseExpression('$form_state["input"]');
52 $rewritten = $this->plugin->rewriteAsGetter($expr, 'input');
53 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
54 $this->assertEquals('$form_state->getUserInput()', $rewritten->getText());
57 public function testRewriteArbitraryKeyAsGetter() {
58 $expr = Parser::parseExpression('$form_state["foo"]["baz"]');
59 $rewritten = $this->plugin->rewriteAsGetter($expr, 'foo');
60 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
61 $this->assertEquals('$form_state->get(["foo", "baz"])', $rewritten->getText());
64 public function testRewriteValuesAsSetter() {
65 /** @var \Pharborist\Operators\AssignNode $expr */
66 $expr = Parser::parseExpression('$form_state["values"]["foo"] = "baz"');
67 $rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'values', $expr);
68 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
69 $this->assertEquals('$form_state->setValue(["foo"], "baz")', $rewritten->getText());
71 $expr = Parser::parseExpression('$form_state["values"]["foo"][1] = "bar"');
72 $rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'values', $expr);
73 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
74 $this->assertEquals('$form_state->setValue(["foo", 1], "bar")', $rewritten->getText());
77 public function testRewriteKnownPropertyAsSetter() {
78 /** @var \Pharborist\Operators\AssignNode $expr */
79 $expr = Parser::parseExpression('$form_state["input"] = array()');
80 $rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'input', $expr);
81 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
82 $this->assertEquals('$form_state->setUserInput(array())', $rewritten->getText());
85 public function testRewriteArbitraryKeyAsSetter() {
86 /** @var \Pharborist\Operators\AssignNode $expr */
87 $expr = Parser::parseExpression('$form_state["foo"]["baz"] = "bar"');
88 $rewritten = $this->plugin->rewriteAsSetter($expr->getLeftOperand(), 'foo', $expr);
89 $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
90 $this->assertEquals('$form_state->set(["foo", "baz"], "bar")', $rewritten->getText());