Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Rewriter / FormStateTest.php
1 <?php
2
3 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Rewriter;
4
5 use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
6 use Pharborist\Parser;
7
8 /**
9  * @group DMU.Rewriter
10  * @covers \Drupal\drupalmoduleupgrader\Plugin\DMU\Rewriter\FormState
11  */
12 class FormStateTest extends TestBase {
13
14   /**
15    * @var \Drupal\drupalmoduleupgrader\RewriterInterface
16    */
17   protected $plugin;
18
19   public function setUp() {
20     parent::setUp();
21
22     $definition = [
23       'properties' => [
24         'input' => [
25           'get' => 'getUserInput',
26           'set' => 'setUserInput',
27         ],
28       ],
29     ];
30     $this->plugin = $this->getPlugin([], $definition);
31   }
32
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());
38
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());
43
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());
48   }
49
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());
55   }
56
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());
62   }
63
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());
70
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());
75   }
76
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());
83   }
84
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());
91   }
92
93 }