diff --git a/lib/autoloader.php b/lib/autoloader.php index 9cc573c099..215da536e5 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -94,7 +94,7 @@ class Autoloader { $paths[] = \OC::$CLASSPATH[$class]; /** * @TODO: Remove this when necessary - * Remove "apps/" from inclusion path for smooth migration to mutli app dir + * Remove "apps/" from inclusion path for smooth migration to multi app dir */ if (strpos(\OC::$CLASSPATH[$class], 'apps/') === 0) { \OCP\Util::writeLog('core', 'include path for class "' . $class . '" starts with "apps/"', \OCP\Util::DEBUG); @@ -113,8 +113,10 @@ class Autoloader { // If not found in the root of the app directory, insert '/lib' after app id and try again. $paths[] = $appPath . '/lib/' . strtolower(str_replace('\\', '/', $rest) . '.php'); } - } elseif (strpos($class, 'Test_') === 0) { - $paths[] = \OC::$SERVERROOT . '/tests/lib/' . strtolower(str_replace('_', '/', substr($class, 5)) . '.php'); + } elseif ($class === 'Test\\TestCase') { + // This File is considered public API, so we make sure that the class + // can still be loaded, although the PSR-4 paths have not been loaded. + $paths[] = \OC::$SERVERROOT . '/tests/lib/TestCase.php'; } elseif (strpos($class, 'Test\\') === 0) { $paths[] = \OC::$SERVERROOT . '/tests/lib/' . strtolower(str_replace('\\', '/', substr($class, 5)) . '.php'); } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 86bedc3f32..e2b980b1c8 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -8,6 +8,8 @@ if ($configDir) { require_once __DIR__ . '/../lib/base.php'; +\OC::$composerAutoloader->addPsr4('Test\\', OC::$SERVERROOT . '/tests/lib/', true); +\OC::$composerAutoloader->addPsr4('Tests\\', OC::$SERVERROOT . '/tests/', true); \OC::$loader->addValidRoot(OC::$SERVERROOT . '/tests'); // load all enabled apps diff --git a/tests/lib/testcase.php b/tests/lib/TestCase.php similarity index 100% rename from tests/lib/testcase.php rename to tests/lib/TestCase.php diff --git a/tests/lib/autoloader.php b/tests/lib/autoloader.php index adea702eca..3669f514be 100644 --- a/tests/lib/autoloader.php +++ b/tests/lib/autoloader.php @@ -37,18 +37,18 @@ class AutoLoader extends TestCase { ], $this->loader->findClass('OC_Files')); } + public function testLoadTestTestCase() { + $this->assertEquals([ + \OC::$SERVERROOT . '/tests/lib/TestCase.php' + ], $this->loader->findClass('Test\TestCase')); + } + public function testLoadTestNamespace() { $this->assertEquals([ \OC::$SERVERROOT . '/tests/lib/foo/bar.php' ], $this->loader->findClass('Test\Foo\Bar')); } - public function testLoadTest() { - $this->assertEquals([ - \OC::$SERVERROOT . '/tests/lib/foo/bar.php' - ], $this->loader->findClass('Test_Foo_Bar')); - } - public function testLoadCore() { $this->assertEquals([ \OC::$SERVERROOT . '/lib/private/legacy/foo/bar.php',