Updated from some -dev modules to alpha, beta or full releases
[yaffs-website] / vendor / psy / psysh / test / CodeCleaner / LeavePsyshAlonePassTest.php
1 <?php
2
3 /*
4  * This file is part of Psy Shell.
5  *
6  * (c) 2012-2018 Justin Hileman
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Psy\Test\CodeCleaner;
13
14 use Psy\CodeCleaner\LeavePsyshAlonePass;
15
16 class LeavePsyshAlonePassTest extends CodeCleanerTestCase
17 {
18     public function setUp()
19     {
20         $this->setPass(new LeavePsyshAlonePass());
21     }
22
23     public function testPassesInlineHtmlThroughJustFine()
24     {
25         $inline = $this->parse('not php at all!', '');
26         $this->traverse($inline);
27         $this->assertTrue(true);
28     }
29
30     /**
31      * @dataProvider validStatements
32      */
33     public function testProcessStatementPasses($code)
34     {
35         $this->parseAndTraverse($code);
36         $this->assertTrue(true);
37     }
38
39     public function validStatements()
40     {
41         return [
42             ['array_merge()'],
43             ['__psysh__()'],
44             ['$this'],
45             ['$psysh'],
46             ['$__psysh'],
47             ['$banana'],
48         ];
49     }
50
51     /**
52      * @dataProvider invalidStatements
53      * @expectedException \Psy\Exception\RuntimeException
54      */
55     public function testProcessStatementFails($code)
56     {
57         $this->parseAndTraverse($code);
58     }
59
60     public function invalidStatements()
61     {
62         return [
63             ['$__psysh__'],
64             ['var_dump($__psysh__)'],
65             ['$__psysh__ = "your mom"'],
66             ['$__psysh__->fakeFunctionCall()'],
67         ];
68     }
69 }