<?php /** * Copyright (c) 2012-2015, Agence Française Informatique (AFI). All rights reserved. * * BOKEH is free software; you can redistribute it and/or modify * it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by * the Free Software Foundation. * * There are special exceptions to the terms and conditions of the AGPL as it * is applied to this software (see README file). * * BOKEH is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE * along with BOKEH; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ abstract class RechercheControllerThumbnailTestCase extends AbstractControllerTestCase { protected $_storm_default_to_volatile = true, $_file_system; public function setUp() { parent::setUp(); $this->_file_system = $this->mock(); Class_WebService_Vignette::setFileSystem($this->_file_system); Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($this->_getCoolImagick()); } public function tearDown() { Class_WebService_Vignette::setFileSystem(null); Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory(null); parent::tearDown(); } protected function _getCoolImagick() { return $this->mock() ->whenCalled('newImage') ->answers($this->mock() ->whenCalled('thumbnailImage') ->answers(true) ->whenCalled('writeImage') ->answers(true)); } } class RechercheControllerThumbnailCmsTest extends RechercheControllerThumbnailTestCase { public function setUp() { parent::setUp(); $article = $this->fixture('Class_Article', ['id' => 123, 'titre' => 'An article with img', 'contenu' => 'This article should contains an image like this <img src="/images/articles/img.png" />']); $article->index(); $this->dispatch('recherche/vignette/id_notice/1', true); } /** @test */ public function responseShouldRedirectToVignetteUrl() { $this->assertContains('/temp/vignettes_titre/ANARTICLEWITHIMG-123-----8.jpg', $this->getResponseLocation()); } } class RechercheControllerThumbnailAlbumCmsWithImageTest extends RechercheControllerThumbnailTestCase { public function setUp() { parent::setUp(); $album = $this->fixture('Class_Album', ['id' => 777, 'titre' => 'Testing Album', 'visible' => 1, 'status' => Class_Album::STATUS_VALIDATED, 'ressources' => [$this->fixture('Class_AlbumRessource', ['id' => 12, 'fichier' => '12.png'])]]); $album->index(); $this->dispatch('recherche/vignette/id_notice/1', true); } /** @test */ public function shouldRedirectToGeneratedThumbnailUrl() { $this->assertContains('/temp/vignettes_titre/TESTINGALBUM------101.jpg', $this->getResponseLocation()); } } class RechercheControllerThumbnailAlbumSiteWithImageTest extends RechercheControllerThumbnailTestCase { public function setUp() { parent::setUp(); $album = $this->fixture('Class_Album', ['id' => 777, 'titre' => 'Testing Album', 'visible' => 1, 'status' => Class_Album::STATUS_VALIDATED, 'ressources' => [$this->fixture('Class_AlbumRessource', ['id' => 12, 'poster' => 'linuxfr.jpg', 'url' => 'http://www.linuxfr.org', 'fichier' => '12.png'])]]); $album->index(); $this->dispatch('recherche/vignette/id_notice/1', true); } /** @test */ public function shouldRedirectToGeneratedThumbnailUrl() { $this->assertContains('/temp/vignettes_titre/TESTINGALBUM------101.jpg', $this->getResponseLocation()); } }