/** * Tests that `Libraries::map()` and `Libraries::unmap()` * */ public function testMapUnmap() { $testApp = Libraries::get(true, 'resources') . '/tmp/tests/test_app'; mkdir($testApp, 0777, true); Libraries::add('test_app', array('path' => $testApp)); mkdir($testApp . '/lib', 0777); mkdir($testApp . '/_patch', 0777); file_put_contents($testApp . '/lib/LibTest.php', "<?php namespace test_app\\lib;\n\n\t\t\tclass LibTest{ public function testMe() {\n\t\t\t\treturn 'core class';\n\t\t\t}}"); file_put_contents($testApp . '/_patch/PatchedLibTest.php', "<?php namespace test_app\\lib;\n\n\t\t\tclass LibTest{ public function testMe() {\n\t\t\t\treturn 'patched class';\n\t\t\t}}"); $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php'); $result = Libraries::path('test_app\\lib\\LibTest'); $this->assertEqual($expected, $result); Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php')); $expected = $result = Libraries::realPath($testApp . '/_patch/PatchedLibTest.php'); $result = Libraries::path('test_app\\lib\\LibTest'); Libraries::unmap(array('test_app\\lib\\LibTest')); $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php'); $result = Libraries::path('test_app\\lib\\LibTest'); $this->assertEqual($expected, $result); Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php')); Libraries::unmap('test_app\\lib\\LibTest'); $expected = $result = Libraries::realPath($testApp . '/lib/LibTest.php'); $result = Libraries::path('test_app\\lib\\LibTest'); Libraries::map(array('test_app\\lib\\LibTest' => $testApp . '/_patch/PatchedLibTest.php')); $object = new \test_app\lib\LibTest(); $result = $object->testMe(); $this->assertEqual('patched class', $result); $this->_cleanUp(); }