192 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
namespace Knp\Bundle\GaufretteBundle\Tests\Functional;
 | 
						|
 | 
						|
use Symfony\Component\Filesystem\Filesystem;
 | 
						|
use Gaufrette\StreamWrapper;
 | 
						|
 | 
						|
class ConfigurationTest extends \PHPUnit_Framework_TestCase
 | 
						|
{
 | 
						|
    private $cacheDir;
 | 
						|
    private $kernel;
 | 
						|
 | 
						|
    public function setUp()
 | 
						|
    {
 | 
						|
        $this->cacheDir = __DIR__.'/Resources/cache';
 | 
						|
        if (file_exists($this->cacheDir)) {
 | 
						|
            $filesystem = new Filesystem();
 | 
						|
            $filesystem->remove($this->cacheDir);
 | 
						|
        }
 | 
						|
 | 
						|
        mkdir($this->cacheDir, 0777, true);
 | 
						|
 | 
						|
        $this->kernel = new TestKernel('test', false);
 | 
						|
        $this->kernel->boot();
 | 
						|
    }
 | 
						|
 | 
						|
    public function tearDown()
 | 
						|
    {
 | 
						|
        if (file_exists($this->cacheDir)) {
 | 
						|
            $filesystem = new Filesystem();
 | 
						|
            $filesystem->remove($this->cacheDir);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowForFilesystemAlias()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Gaufrette\Filesystem', $this->kernel->getContainer()->get('foo_filesystem'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldWorkForOtherEnv()
 | 
						|
    {
 | 
						|
        $kernel = new TestKernel('dev', false);
 | 
						|
        $kernel->boot();
 | 
						|
 | 
						|
        $container = $kernel->getContainer();
 | 
						|
        $this->assertInstanceOf('Gaufrette\Filesystem', $container->get('foo_filesystem'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowAccessToAllPublicServices()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Knp\Bundle\GaufretteBundle\FilesystemMap', $this->kernel->getContainer()->get('knp_gaufrette.filesystem_map'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     */
 | 
						|
    public function shouldAllowAccessToFilesystemThoughFilesystemMap()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Gaufrette\Filesystem', $this->kernel->getContainer()->get('knp_gaufrette.filesystem_map')->get('foo'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowAccessToLocalFilesystem()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Gaufrette\Adapter\Local', $this->kernel->getContainer()->get('foo_filesystem')->getAdapter());
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowAccessToCacheFilesystem()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Gaufrette\Adapter\Cache', $this->kernel->getContainer()->get('cache_filesystem')->getAdapter());
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowAccessToFtpFilesystem()
 | 
						|
    {
 | 
						|
        $this->assertInstanceOf('Gaufrette\Adapter\Ftp', $this->kernel->getContainer()->get('ftp_filesystem')->getAdapter());
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowToNotConfigureStreamWrapper()
 | 
						|
    {
 | 
						|
        $this->assertFalse($this->kernel->getContainer()->hasParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldConfigureStreamWrapperWithDefaultValues()
 | 
						|
    {
 | 
						|
        $kernel = new TestKernel('wrapper_1', false);
 | 
						|
        $kernel->boot();
 | 
						|
        $container = $kernel->getContainer();
 | 
						|
 | 
						|
        $this->assertTrue($container->hasParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
        $this->assertEquals('gaufrette', $container->getParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
 | 
						|
        $wrapperFsMap = StreamWrapper::getFilesystemMap();
 | 
						|
 | 
						|
        $expectedDomains = array(
 | 
						|
            'foo',
 | 
						|
            'cache',
 | 
						|
            'ftp',
 | 
						|
        );
 | 
						|
 | 
						|
        foreach ($expectedDomains as $eachExpectedDomain) {
 | 
						|
            $this->assertTrue($wrapperFsMap->has($eachExpectedDomain));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowToDefineProtocolOfStreamWrapper()
 | 
						|
    {
 | 
						|
        $kernel = new TestKernel('wrapper_2', false);
 | 
						|
        $kernel->boot();
 | 
						|
        $container = $kernel->getContainer();
 | 
						|
 | 
						|
        $this->assertTrue($container->hasParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
        $this->assertEquals('tada', $container->getParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowToDefineWhichFileSystemsShouldBeAddToStreamWrapper()
 | 
						|
    {
 | 
						|
        $kernel = new TestKernel('wrapper_2', false);
 | 
						|
        $kernel->boot();
 | 
						|
        $container = $kernel->getContainer();
 | 
						|
        $fileSystems = $container->getParameter('knp_gaufrette.stream_wrapper.filesystems');
 | 
						|
 | 
						|
        $this->assertEquals(array('pictures' => 'cache', 'text' => 'ftp'), $fileSystems);
 | 
						|
 | 
						|
        $wrapperFsMap = StreamWrapper::getFilesystemMap();
 | 
						|
 | 
						|
        foreach($fileSystems as $key => $fs) {
 | 
						|
            $this->assertTrue($wrapperFsMap->has($key));
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * @test
 | 
						|
     * @functional
 | 
						|
     */
 | 
						|
    public function shouldAllowToDefineFileSystemsWithoutDomain()
 | 
						|
    {
 | 
						|
        $kernel = new TestKernel('wrapper_3', false);
 | 
						|
        $kernel->boot();
 | 
						|
        $container = $kernel->getContainer();
 | 
						|
        $fileSystems = $container->getParameter('knp_gaufrette.stream_wrapper.filesystems');
 | 
						|
 | 
						|
        $this->assertTrue($container->hasParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
        $this->assertEquals('tada', $container->getParameter('knp_gaufrette.stream_wrapper.protocol'));
 | 
						|
        $this->assertEquals(array('cache' => 'cache', 'ftp' => 'ftp'), $fileSystems);
 | 
						|
 | 
						|
        $wrapperFsMap = StreamWrapper::getFilesystemMap();
 | 
						|
 | 
						|
        foreach($fileSystems as $key => $fs) {
 | 
						|
            $this->assertTrue($wrapperFsMap->has($key));
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |