Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Rewriter / FormStateTest.php
diff --git a/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Plugin/DMU/Rewriter/FormStateTest.php b/web/modules/contrib/drupalmoduleupgrader/tests/src/Unit/Plugin/DMU/Rewriter/FormStateTest.php
new file mode 100644 (file)
index 0000000..ef15773
--- /dev/null
@@ -0,0 +1,93 @@
+<?php
+
+namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Rewriter;
+
+use Drupal\Tests\drupalmoduleupgrader\Unit\TestBase;
+use Pharborist\Parser;
+
+/**
+ * @group DMU.Rewriter
+ * @covers \Drupal\drupalmoduleupgrader\Plugin\DMU\Rewriter\FormState
+ */
+class FormStateTest extends TestBase {
+
+  /**
+   * @var \Drupal\drupalmoduleupgrader\RewriterInterface
+   */
+  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() {
+    /** @var \Pharborist\Operators\AssignNode $expr */
+    $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() {
+    /** @var \Pharborist\Operators\AssignNode $expr */
+    $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() {
+    /** @var \Pharborist\Operators\AssignNode $expr */
+    $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());
+  }
+
+}