comparison vendor/psy/psysh/test/CodeCleaner/InstanceOfPassTest.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
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\InstanceOfPass;
15
16 class InstanceOfPassTest extends CodeCleanerTestCase
17 {
18 protected function setUp()
19 {
20 $this->setPass(new InstanceOfPass());
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 public function invalidStatements()
33 {
34 return [
35 ['null instanceof stdClass'],
36 ['true instanceof stdClass'],
37 ['9 instanceof stdClass'],
38 ['1.0 instanceof stdClass'],
39 ['"foo" instanceof stdClass'],
40 ['__DIR__ instanceof stdClass'],
41 ['PHP_SAPI instanceof stdClass'],
42 ['1+1 instanceof stdClass'],
43 ['true && false instanceof stdClass'],
44 ['"a"."b" instanceof stdClass'],
45 ['!5 instanceof stdClass'],
46 ];
47 }
48
49 /**
50 * @dataProvider validStatements
51 */
52 public function testProcessValidStatement($code)
53 {
54 $this->parseAndTraverse($code);
55 $this->assertTrue(true);
56 }
57
58 public function validStatements()
59 {
60 $data = [
61 ['$a instanceof stdClass'],
62 ['strtolower("foo") instanceof stdClass'],
63 ['array(1) instanceof stdClass'],
64 ['(string) "foo" instanceof stdClass'],
65 ['(1+1) instanceof stdClass'],
66 ['"foo ${foo} $bar" instanceof stdClass'],
67 ['DateTime::ISO8601 instanceof stdClass'],
68 ];
69
70 return $data;
71 }
72 }