From e21a3a1a2324684f2e34bce024082d7d1d244b6a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 7 May 2013 23:08:36 +0200 Subject: [PATCH] Autoloader: test cases --- tests/lib/autoloader.php | 58 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/tests/lib/autoloader.php b/tests/lib/autoloader.php index e769bf3bcf6..d9fc016adf5 100644 --- a/tests/lib/autoloader.php +++ b/tests/lib/autoloader.php @@ -6,14 +6,62 @@ * See the COPYING-README file. */ -class Test_AutoLoader extends PHPUnit_Framework_TestCase { +namespace Test; - public function testLeadingSlashOnClassName(){ - $this->assertTrue(class_exists('\OC\Files\Storage\Local')); +class AutoLoader extends \PHPUnit_Framework_TestCase { + /** + * @var \OC\Autoloader $loader + */ + private $loader; + + public function setUp() { + $this->loader = new \OC\AutoLoader(); } - public function testNoLeadingSlashOnClassName(){ - $this->assertTrue(class_exists('OC\Files\Storage\Local')); + public function testLeadingSlashOnClassName() { + $this->assertEquals(array('files/storage/local.php'), $this->loader->findClass('\OC\Files\Storage\Local')); } + public function testNoLeadingSlashOnClassName() { + $this->assertEquals(array('files/storage/local.php'), $this->loader->findClass('OC\Files\Storage\Local')); + } + + public function testLegacyPath() { + $this->assertEquals(array('legacy/files.php', 'files.php'), $this->loader->findClass('OC_Files')); + } + + public function testClassPath() { + $this->loader->registerClass('Foo\Bar', 'foobar.php'); + $this->assertEquals(array('foobar.php'), $this->loader->findClass('Foo\Bar')); + } + + public function testPrefixNamespace() { + $this->loader->registerPrefix('Foo', 'foo'); + $this->assertEquals(array('foo/Foo/Bar.php'), $this->loader->findClass('Foo\Bar')); + } + + public function testPrefix() { + $this->loader->registerPrefix('Foo_', 'foo'); + $this->assertEquals(array('foo/Foo/Bar.php'), $this->loader->findClass('Foo_Bar')); + } + + public function loadTestNamespace() { + $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test\Foo\Bar')); + } + + public function loadTest() { + $this->assertEquals(array('test/foo/bar.php'), $this->loader->findClass('Test_Foo_Bar')); + } + + public function loadCoreNamespace() { + $this->assertEquals(array('lib/foo/bar.php'), $this->loader->findClass('OC\Foo\Bar')); + } + + public function loadCore() { + $this->assertEquals(array('lib/legacy/foo/bar.php', 'lib/foo/bar.php'), $this->loader->findClass('OC_Foo_Bar')); + } + + public function loadPublicNamespace() { + $this->assertEquals(array('lib/public/foo/bar.php'), $this->loader->findClass('OCP\Foo\Bar')); + } }