Browse Source

Merge pull request #15420 from cakephp/issue-15415

Fix type error when App.namespace config if unset.
Mark Sch 5 years ago
parent
commit
0c658ec7aa
2 changed files with 15 additions and 1 deletions
  1. 1 1
      src/Core/App.php
  2. 14 0
      tests/TestCase/Core/AppTest.php

+ 1 - 1
src/Core/App.php

@@ -136,7 +136,7 @@ class App
 
         $nonPluginNamespaces = [
             'Cake',
-            str_replace('\\', '/', Configure::read('App.namespace')),
+            str_replace('\\', '/', (string)Configure::read('App.namespace')),
         ];
         if (in_array($pluginName, $nonPluginNamespaces, true)) {
             return $name;

+ 14 - 0
tests/TestCase/Core/AppTest.php

@@ -16,6 +16,8 @@ declare(strict_types=1);
 namespace Cake\Test\TestCase\Core;
 
 use Cake\Core\App;
+use Cake\Core\Configure;
+use Cake\Database\Driver\Mysql;
 use Cake\TestSuite\TestCase;
 use TestApp\Core\TestApp;
 
@@ -111,6 +113,18 @@ class AppTest extends TestCase
     }
 
     /**
+     * @link https://github.com/cakephp/cakephp/issues/15415
+     * @return void
+     */
+    public function testShortNameWithAppNamespaceUnset()
+    {
+        Configure::delete('App.namespace');
+
+        $result = App::shortName(Mysql::class, 'Database/Driver');
+        $this->assertSame('Mysql', $result);
+    }
+
+    /**
      * classNameProvider
      *
      * Return test permutations for testClassName method. Format: