lithium\tests\cases\core\LibrariesTest::testClassInstanceWithSubnamespace PHP Method

testClassInstanceWithSubnamespace() public method

    public function testClassInstanceWithSubnamespace()
    {
        $testApp = Libraries::get(true, 'resources') . '/tmp/tests/test_app';
        mkdir($testApp);
        $paths = array("/controllers", "/controllers/admin");
        foreach ($paths as $path) {
            $namespace = str_replace('/', '\\', $path);
            $dotsyntax = str_replace('/', '.', trim($path, '/'));
            $class = 'Posts';
            Libraries::add('test_app', array('path' => $testApp));
            $body = <<<EOD
<?php
namespace test_app{$namespace};
class {$class}Controller extends \\lithium\\action\\Controller {
\tpublic function index() {
\t\treturn true;
\t}
}
?>
EOD;
            mkdir($testApp . $path, 0777, true);
            $filepath = $testApp . $path . "/{$class}Controller.php";
            file_put_contents($filepath, $body);
            Libraries::cache(false);
            $expected = "test_app{$namespace}\\{$class}Controller";
            $instance = Libraries::instance($dotsyntax, "Posts", array('library' => 'test_app'));
            $result = get_class($instance);
            $this->assertEqual($expected, $result, "{$path} did not work");
        }
    }