Mercurial > hg > isophonics-drupal-site
comparison vendor/psy/psysh/test/CodeCleaner/ValidConstructorPassTest.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
| author | Chris Cannam |
|---|---|
| date | Mon, 23 Apr 2018 09:33:26 +0100 |
| parents | |
| children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
| 12:7a779792577d | 13:5fb285c0d0e3 |
|---|---|
| 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\ValidConstructorPass; | |
| 15 | |
| 16 class ValidConstructorPassTest extends CodeCleanerTestCase | |
| 17 { | |
| 18 protected function setUp() | |
| 19 { | |
| 20 $this->setPass(new ValidConstructorPass()); | |
| 21 } | |
| 22 | |
| 23 /** | |
| 24 * @dataProvider invalidStatements | |
| 25 * @expectedException \Psy\Exception\FatalErrorException | |
| 26 */ | |
| 27 public function testProcessInvalidStatement($code) | |
| 28 { | |
| 29 $this->parseAndTraverse($code); | |
| 30 } | |
| 31 | |
| 32 /** | |
| 33 * @dataProvider invalidParserStatements | |
| 34 * @expectedException \Psy\Exception\ParseErrorException | |
| 35 */ | |
| 36 public function testProcessInvalidStatementCatchedByParser($code) | |
| 37 { | |
| 38 $this->parseAndTraverse($code); | |
| 39 } | |
| 40 | |
| 41 public function invalidStatements() | |
| 42 { | |
| 43 $data = [ | |
| 44 ['class A { public static function A() {}}'], | |
| 45 ['class A { public static function a() {}}'], | |
| 46 ['class A { private static function A() {}}'], | |
| 47 ['class A { private static function a() {}}'], | |
| 48 ]; | |
| 49 | |
| 50 if (version_compare(PHP_VERSION, '7.0', '>=')) { | |
| 51 $data[] = ['class A { public function A(): ?array {}}']; | |
| 52 $data[] = ['class A { public function a(): ?array {}}']; | |
| 53 } | |
| 54 | |
| 55 return $data; | |
| 56 } | |
| 57 | |
| 58 public function invalidParserStatements() | |
| 59 { | |
| 60 return [ | |
| 61 ['class A { public static function __construct() {}}'], | |
| 62 ['class A { private static function __construct() {}}'], | |
| 63 ['class A { private static function __construct() {} public function A() {}}'], | |
| 64 ['namespace B; class A { private static function __construct() {}}'], | |
| 65 ]; | |
| 66 } | |
| 67 | |
| 68 /** | |
| 69 * @dataProvider validStatements | |
| 70 */ | |
| 71 public function testProcessValidStatement($code) | |
| 72 { | |
| 73 $this->parseAndTraverse($code); | |
| 74 $this->assertTrue(true); | |
| 75 } | |
| 76 | |
| 77 public function validStatements() | |
| 78 { | |
| 79 $data = [ | |
| 80 ['class A { public static function A() {} public function __construct() {}}'], | |
| 81 ['class A { private function __construct() {} public static function A() {}}'], | |
| 82 ['namespace B; class A { private static function A() {}}'], | |
| 83 ]; | |
| 84 | |
| 85 if (version_compare(PHP_VERSION, '7.0', '>=')) { | |
| 86 $data[] = ['class A { public static function A() {} public function __construct() {}}']; | |
| 87 $data[] = ['class A { private function __construct() {} public static function A(): ?array {}}']; | |
| 88 $data[] = ['namespace B; class A { private static function A(): ?array {}}']; | |
| 89 } | |
| 90 | |
| 91 return $data; | |
| 92 } | |
| 93 } |
