Skip to content

Commit 420def6

Browse files
committed
DB/RestrictedClasses: add tests for namespaced names
1 parent 0901e3b commit 420def6

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

WordPress/Tests/DB/RestrictedClassesUnitTest.1.inc

Lines changed: 18 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,20 @@ $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();
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 {}
131+
MyNamespace\mysqli::do_something();
132+
\MyNamespace\PDO::do_something();
133+
namespace\Sub\PDOStatement::do_something();
134+
namespace\MYSQLI::do_something();

WordPress/Tests/DB/RestrictedClassesUnitTest.php

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

107110
case 'RestrictedClassesUnitTest.2.inc':

0 commit comments

Comments
 (0)