public function testClearResolversCacheClearsAll()
 {
     $resolver = $this->getMockResolver();
     $resolver->expects($this->exactly(5))->method('clear')->with('imagine_cache');
     $cacheManager = new CacheManager($this->getMockFilterConfiguration(), $this->getMockRouter(), $this->fixturesDir . '/assets', 'default');
     $cacheManager->addResolver('default', $resolver);
     $cacheManager->addResolver('thumbnail1', $resolver);
     $cacheManager->addResolver('thumbnail2', $resolver);
     $cacheManager->addResolver('thumbnail3', $resolver);
     $cacheManager->addResolver('thumbnail4', $resolver);
     $cacheManager->clearResolversCache('imagine_cache');
 }
 public function testFilterActionLive()
 {
     $router = $this->getMockRouter();
     $router->expects($this->any())->method('generate')->with('_imagine_thumbnail', array('path' => 'cats.jpeg'), false)->will($this->returnValue('/media/cache/thumbnail/cats.jpeg'));
     $dataLoader = new FileSystemLoader($this->imagine, array(), $this->dataDir);
     $dataManager = new DataManager($this->configuration, 'filesystem');
     $dataManager->addLoader('filesystem', $dataLoader);
     $filterLoader = new ThumbnailFilterLoader();
     $filterManager = new FilterManager($this->configuration);
     $filterManager->addLoader('thumbnail', $filterLoader);
     $webPathResolver = new WebPathResolver($this->filesystem);
     $cacheManager = new CacheManager($this->configuration, $router, $this->webRoot, 'web_path');
     $cacheManager->addResolver('web_path', $webPathResolver);
     $controller = new ImagineController($dataManager, $filterManager, $cacheManager);
     $request = Request::create('/media/cache/thumbnail/cats.jpeg');
     $response = $controller->filterAction($request, 'cats.jpeg', 'thumbnail');
     $targetPath = realpath($this->webRoot) . '/media/cache/thumbnail/cats.jpeg';
     $this->assertInstanceOf('Symfony\\Component\\HttpFoundation\\Response', $response);
     $this->assertEquals(201, $response->getStatusCode());
     $this->assertTrue(file_exists($targetPath));
     $this->assertNotEmpty(file_get_contents($targetPath));
     return $controller;
 }
예제 #3
0
    public function testShouldReturnUrlChangedInPostResolveEvent()
    {
        $dispatcher = $this->createEventDispatcherMock();
        $dispatcher
            ->expects($this->at(1))
            ->method('dispatch')
            ->with(ImagineEvents::POST_RESOLVE, $this->isInstanceOf('Liip\ImagineBundle\Events\CacheResolveEvent'))
            ->will($this->returnCallback(function ($name, $event) {
                $event->setUrl('changed_url');
            }))
        ;

        $cacheManager = new CacheManager(
            $this->createFilterConfigurationMock(),
            $this->createRouterMock(),
            new Signer('secret'),
            $dispatcher
        );
        $cacheManager->addResolver('default', $this->createResolverMock());

        $url = $cacheManager->resolve('cats.jpg', 'thumbnail');

        $this->assertEquals('changed_url', $url);
    }