Further modules included.
[yaffs-website] / web / modules / contrib / drupalmoduleupgrader / tests / src / Unit / Plugin / DMU / Converter / Functions / VariableGetTest.php
1 <?php
2
3 namespace Drupal\Tests\drupalmoduleupgrader\Unit\Plugin\DMU\Converter\Functions;
4
5 use Pharborist\Filter;
6 use Pharborist\Parser;
7
8 /**
9  * @group DMU.Converter.Functions
10  * @covers \Drupal\drupalmoduleupgrader\Plugin\DMU\Converter\Functions\VariableGet
11  */
12 class VariableGetTest extends FunctionCallModifierTestBase {
13
14   public function testNonStringKey() {
15     $original = <<<'END'
16 <?php
17 variable_get($my_var, TRUE);
18 END;
19     $expected = <<<'END'
20 <?php
21 // @FIXME
22 // The correct configuration object could not be determined. You'll need to
23 // rewrite this call manually.
24 variable_get($my_var, TRUE);
25 END;
26
27     $snippet = Parser::parseSource($original);
28     $function_call = $snippet->find(Filter::isFunctionCall('variable_get'))->get(0);
29     $rewritten = $this->plugin->rewrite($function_call, $this->target);
30     $this->assertNull($rewritten);
31     $this->assertSame($expected, $snippet->getText());
32   }
33
34   public function testForeignStringKey() {
35     $original = <<<'END'
36 <?php
37 variable_get('bar_wambooli', TRUE);
38 END;
39     $expected = <<<'END'
40 <?php
41 // @FIXME
42 // This looks like another module's variable. You'll need to rewrite this call
43 // to ensure that it uses the correct configuration object.
44 variable_get('bar_wambooli', TRUE);
45 END;
46
47     $snippet = Parser::parseSource($original);
48     $function_call = $snippet->find(Filter::isFunctionCall('variable_get'))->get(0);
49     $rewritten = $this->plugin->rewrite($function_call, $this->target);
50     $this->assertNull($rewritten);
51     $this->assertSame($expected, $snippet->getText());
52   }
53
54   public function testStringKeyAndUnextractableDefaultValue() {
55     $original = <<<'END'
56 <?php
57 variable_get('foo_wambooli', array());
58 END;
59     $expected = <<<'END'
60 <?php
61 // @FIXME
62 // Could not extract the default value because it is either indeterminate, or
63 // not scalar. You'll need to provide a default value in
64 // config/install/@module.settings.yml and config/schema/@module.schema.yml.
65 variable_get('foo_wambooli', array());
66 END;
67
68     $snippet = Parser::parseSource($original);
69     $function_call = $snippet->find(Filter::isFunctionCall('variable_get'))->get(0);
70     $rewritten = $this->plugin->rewrite($function_call, $this->target);
71     $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
72     $this->assertEquals('\Drupal::config(\'foo.settings\')->get(\'foo_wambooli\')', $rewritten->getText());
73     $this->assertSame($expected, $snippet->getText());
74   }
75
76   public function testStringKeyAndExtractableDefaultValue() {
77     $function_call = Parser::parseExpression('variable_get("foo_wambooli", 30)');
78     $rewritten = $this->plugin->rewrite($function_call, $this->target);
79     $this->assertInstanceOf('\Pharborist\Objects\ObjectMethodCallNode', $rewritten);
80     $this->assertEquals('\Drupal::config(\'foo.settings\')->get("foo_wambooli")', $rewritten->getText());
81   }
82
83 }