Skip to content

Commit a6b8b32

Browse files
committed
DB/RestrictedClasses: add tests for namespaced names
1 parent 3ed84e2 commit a6b8b32

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

WordPress/Tests/DB/RestrictedClassesUnitTest.1.inc

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class MyMysqli extends mysqli {}
3030
class YourMysqli extends \mysqli {}
3131

3232
class OurMysqli implements mysqli {}
33-
class TheirMysqli implements \mysqli {}
33+
class TheirMysqli implements \MYSQLI {}
3434

3535
$db5 = new PDO();
3636
$db6 = ( new PDO() )->exec();
@@ -115,3 +115,24 @@ $anon = new readonly class {
115115
$anon = new readonly class() extends PDOStatement {}; // Error.
116116

117117
$anon = new #[MyAttribute] readonly class {};
118+
119+
/*
120+
* Safeguard correct handling of namespaced class references (the namespace types not handled below are already handled
121+
* in other tests above).
122+
*/
123+
$obj = new MyNamespace\PDO();
124+
$obj = new \MyNamespace\PDOStatement();
125+
$obj = new namespace\Sub\mysqli();
126+
$obj = new namespace\PDO(); // Error.
127+
class MyClass1 extends MyNamespace\mysqli {}
128+
class MyClass2 extends \MyNamespace\PDO {}
129+
class MyClass3 extends namespace\Sub\PDOStatement {}
130+
class MyClass4 extends namespace\mysqli {} // Error.
131+
class MyClass5 implements MyNamespace\mysqli {}
132+
class MyClass6 implements \MyNamespace\PDO {}
133+
class MyClass7 implements namespace\Sub\PDOStatement {}
134+
class MyClass8 implements namespace\mysqli {} // Error.
135+
MyNamespace\mysqli::do_something();
136+
\MyNamespace\PDO::do_something();
137+
namespace\Sub\PDOStatement::do_something();
138+
namespace\MYSQLI::do_something(); // Error.

WordPress/Tests/DB/RestrictedClassesUnitTest.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ public function getErrorList( $testFile = '' ) {
102102
103 => 1,
103103
106 => 1,
104104
115 => 1,
105+
126 => 1,
106+
130 => 1,
107+
134 => 1,
108+
138 => 1,
105109
);
106110

107111
case 'RestrictedClassesUnitTest.2.inc':

0 commit comments

Comments
 (0)