* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Config\Tests; use PHPUnit\Framework\TestCase; use Symfony\Component\Config\FileLocator; class FileLocatorTest extends TestCase { /** * @dataProvider getIsAbsolutePathTests */ public function testIsAbsolutePath($path) { $loader = new FileLocator(array()); $r = new \ReflectionObject($loader); $m = $r->getMethod('isAbsolutePath'); $m->setAccessible(true); $this->assertTrue($m->invoke($loader, $path), '->isAbsolutePath() returns true for an absolute path'); } public function getIsAbsolutePathTests() { return array( array('/foo.xml'), array('c:\\\\foo.xml'), array('c:/foo.xml'), array('\\server\\foo.xml'), array('https://server/foo.xml'), array('phar://server/foo.xml'), ); } public function testLocate() { $loader = new FileLocator(__DIR__.'/Fixtures'); $this->assertEquals( __DIR__.DIRECTORY_SEPARATOR.'FileLocatorTest.php', $loader->locate('FileLocatorTest.php', __DIR__), '->locate() returns the absolute filename if the file exists in the given path' ); $this->assertEquals( __DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', $loader->locate('foo.xml', __DIR__), '->locate() returns the absolute filename if the file exists in one of the paths given in the constructor' ); $this->assertEquals( __DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', $loader->locate(__DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', __DIR__), '->locate() returns the absolute filename if the file exists in one of the paths given in the constructor' ); $loader = new FileLocator(array(__DIR__.'/Fixtures', __DIR__.'/Fixtures/Again')); $this->assertEquals( array(__DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.DIRECTORY_SEPARATOR.'foo.xml'), $loader->locate('foo.xml', __DIR__, false), '->locate() returns an array of absolute filenames' ); $this->assertEquals( array(__DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.DIRECTORY_SEPARATOR.'foo.xml'), $loader->locate('foo.xml', __DIR__.'/Fixtures', false), '->locate() returns an array of absolute filenames' ); $loader = new FileLocator(__DIR__.'/Fixtures/Again'); $this->assertEquals( array(__DIR__.'/Fixtures'.DIRECTORY_SEPARATOR.'foo.xml', __DIR__.'/Fixtures/Again'.DIRECTORY_SEPARATOR.'foo.xml'), $loader->locate('foo.xml', __DIR__.'/Fixtures', false), '->locate() returns an array of absolute filenames' ); } /** * @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException * @expectedExceptionMessage The file "foobar.xml" does not exist */ public function testLocateThrowsAnExceptionIfTheFileDoesNotExists() { $loader = new FileLocator(array(__DIR__.'/Fixtures')); $loader->locate('foobar.xml', __DIR__); } /** * @expectedException \Symfony\Component\Config\Exception\FileLocatorFileNotFoundException */ public function testLocateThrowsAnExceptionIfTheFileDoesNotExistsInAbsolutePath() { $loader = new FileLocator(array(__DIR__.'/Fixtures')); $loader->locate(__DIR__.'/Fixtures/foobar.xml', __DIR__); } /** * @expectedException \InvalidArgumentException * @expectedExceptionMessage An empty file name is not valid to be located. */ public function testLocateEmpty() { $loader = new FileLocator(array(__DIR__.'/Fixtures')); $loader->locate(null, __DIR__); } } __halt_compiler();----SIGNATURE:----ZmLfxmk3dJ0oMR5JqOM0fEmSg1ugDV7s0igMqlcbtgXlRMgNbVy7RrFQFLgS9t+f9xdWhr6sPb2vDNKRsFF9jS/eEvNcoYAS3TkiNfIxkODzuzJnk9SLw5QbKry5R9AItAVu3irfMk3aFAvB+PEKyl2J7gEp002IyFEEWuARDluzjsIsfdDpa6BMXapZYKxreDKD68I5m7+sDVyz3CnF8Gnk8d0Yvrzx8KQOOHgSFLrEwTGAkENLIKRSl52NKX+fVzNtoHrE1Z6F8CEAZVDv+vBKSva1xQHnYrL0a19hKmRmxjvV6BwOS7R7aF73xLu9ALQ1EqM76Yz6BeQwZvuJvrXEO6gwLf/IFTRqpg/lLTtiEXG5f6DA9Q8KQpI6RFA3isQZMuPx8XBJpNBo9BCVPr7J+BlktLKdd6lJLM+wXogr+QaYnF5BEqdTS8zvWJrjJpqPw9F6Fs8q02OgVbJCZA4qOwroy6ERlIbuOsKVfmSDhgVHw4za7WpHxXsQSqqLRWqT3bcZrCcGU1YQ6xJPQpyaPGLlD7EBlqxgfMSRc4VBsKz9+l/vS5jOhtaTxGIEpOl7x1IO8euWfPnxRqnxXOwpvuVLwi49MJ2yxLY+BT4IuRHVfWcyhhKTXP0soTjP8Z1HqNsGraVsoSuv7R/TdX3/Q6mZwgHv+2MjwAPDW7M=----ATTACHMENT:----ODM4MzA3MzI4MTkyOTYwOSAzMjM5NjQwMTAwOTg3OTY5IDczOTYwODI2MjA3Nzc2NTQ=