diff --git a/application/modules/admin/controllers/AlbumController.php b/application/modules/admin/controllers/AlbumController.php index 87934f3155e724be4bd8ede51f84f2c7a2a317b8..4691d823d5e85a595a241b39a3d37537f80481f2 100644 --- a/application/modules/admin/controllers/AlbumController.php +++ b/application/modules/admin/controllers/AlbumController.php @@ -226,25 +226,15 @@ class Admin_AlbumController extends Zend_Controller_Action { } $this->view->album = $album; - $ressource = Class_AlbumRessource::newInstance() - ->setAlbum($album); - $form = $this->_ressourceForm($ressource); - - if ($this->_request->isPost() && ($form->isValid($this->_request->getPost()))) { - $ressource->updateAttributes($this->_request->getPost()); - if ($ressource->getAlbum()->save() - && $ressource->save() - && $ressource->receiveFile()) { - $this->_helper->notify(sprintf('Média %s sauvegardé', - $ressource->getTitre())); - $this->_redirect('admin/album/edit_ressource/id/' - . $ressource->getId()); - return; - } + $ressource = Class_AlbumRessource::newInstance()->setAlbum($album); + + if ($this->_setupRessourceFormAndSave($ressource)) { + $this->_helper->notify('Média "' . $ressource->getTitre() . '" sauvegardé'); + $this->_redirect('admin/album/edit_ressource/id/' . $ressource->getId()); + return; } $this->view->errors = $ressource->getErrors(); - $this->view->form = $form; } @@ -255,27 +245,40 @@ class Admin_AlbumController extends Zend_Controller_Action { return; } - $form = $this->_ressourceForm($ressource); - - if ($this->_request->isPost() && ($form->isValid($this->_request->getPost()))) { - $ressource->updateAttributes($this->_request->getPost()); - if ($ressource->getAlbum()->save() && $ressource->save() && $ressource->receiveFile()) { - $this->_helper->notify(sprintf('Média "%s" sauvegardé', - $ressource->getTitre())); - $this->_redirect('admin/album/edit_ressource/id/' - . $ressource->getId()); - return; - } + if ($this->_setupRessourceFormAndSave($ressource)) { + $this->_helper->notify('Média "' . $ressource->getTitre() . '" sauvegardé'); + $this->_redirect('admin/album/edit_ressource/id/' . $ressource->getId()); + return; } $this->view->errors = $ressource->getErrors(); - $form->getElement('fichier')->setValue($ressource->getFichier()); + $this->view->form->getElement('fichier') + ->setValue($ressource->getFichier()); + $this->view->form->getElement('poster') + ->setValue($ressource->getPoster()); - $this->view->form = $form; $this->view->ressource = $ressource; } + protected function _setupRessourceFormAndSave($model) { + $form = $this->_ressourceForm($model); + + $this->view->form = $form; + + if ($this->_request->isPost()) { + $model->updateAttributes($this->_request->getPost()); + + return $form->isValid($model) + && $model->save() + && $model->receiveFiles() + && $model->getAlbum()->save(); + } + + return false; + } + + public function sortressourcesAction() { $album = Class_Album::getLoader()->find((int)$this->_getParam('id')); $album->sortRessourceByFileName()->save(); diff --git a/application/modules/admin/views/scripts/album/edit-images.phtml b/application/modules/admin/views/scripts/album/edit-images.phtml index 6b92545603f9e368f23d08599723a0d6db8c5421..60d0137078add5a2297c907cce3fd854370bef8a 100644 --- a/application/modules/admin/views/scripts/album/edit-images.phtml +++ b/application/modules/admin/views/scripts/album/edit-images.phtml @@ -64,12 +64,11 @@ echo $this->bouton('id=add_link', <?php foreach ($this->ressources as $ressource) { ?> <li class="ressource" id="<?php echo $ressource->getId();?>"> <div style="width:50px;"><?php - if ($ressource->isImage()) { + if ($ressource->isImage() || $ressource->hasPoster()) { echo sprintf('<a rel="prettyPhoto" href="%s" title="%s">%s</a>', - $ressource->getOriginalUrl(), + ($ressource->isImage()) ? $ressource->getOriginalUrl() : $ressource->getPosterUrl(), $ressource->getTitre(), - $this->tagImg( - $ressource->getThumbnailUrl(), + $this->tagImg($ressource->getThumbnailUrl(), array('style' => 'width:50px') )); } diff --git a/library/Class/AlbumRessource.php b/library/Class/AlbumRessource.php index 6b47016d437339e2829c6db1d3b5d18d34493245..7006091500ec25cc29cb160a06d92005126d9068 100644 --- a/library/Class/AlbumRessource.php +++ b/library/Class/AlbumRessource.php @@ -41,17 +41,27 @@ class AlbumRessourceLoader extends Storm_Model_Loader { class Class_AlbumRessource extends Storm_Model_Abstract { + use Trait_Translator; + const BASE_PATH = 'media/'; - protected static $THUMBNAILS_BY_EXT = array('swf' => 'flash-logo.jpg', - 'mov' => 'quicktime-logo.png', - 'unknown' => 'earth-logo.jpg'); + + const MEDIA_TYPE_IMAGE = 1; + const MEDIA_TYPE_FILE = 2; + const MEDIA_TYPE_URL = 3; + + protected static $_image_extensions = ['png', 'jpg', 'jpeg', 'gif']; + + protected static $THUMBNAILS_BY_EXT = ['swf' => 'flash-logo.jpg', + 'mov' => 'quicktime-logo.png', + 'unknown' => 'earth-logo.jpg']; + protected static $_thumbnail_dir_checked = false; /** @var Class_MultiUpload */ protected $_multiUploadHandler; - /** @var Class_Upload */ - protected $_uploadHandler; + /** @var array of Class_Upload */ + protected $_uploadHandlers = []; /** @var Class_Folder_Manager */ protected $_folderManager; @@ -59,15 +69,17 @@ class Class_AlbumRessource extends Storm_Model_Abstract { /** @var Imagick */ protected $_image; + /** @var int used solely in validation */ + protected $_media_type; protected $_table_name = 'album_ressources'; protected $_primary_key = 'id'; protected $_loader_class = 'AlbumRessourceLoader'; - protected $_belongs_to = array('album' => array('model' => 'Class_Album', - 'referenced_in' => 'id_album')); + protected $_belongs_to = ['album' => ['model' => 'Class_Album', + 'referenced_in' => 'id_album']]; - protected $_default_attribute_values = array( + protected $_default_attribute_values = [ 'fichier' => '', 'folio' => null, 'titre' => '', @@ -75,16 +87,9 @@ class Class_AlbumRessource extends Storm_Model_Abstract { 'ordre' => 0, 'link_to' => '', 'matiere' => '', - 'vignette' => '', + 'poster' => '', 'url' => '' - ); - - /** - * @return AlbumRessourceLoader - */ - public static function getLoader() { - return self::getLoaderFor(__CLASS__); - } + ]; public static function sortByFileName($r1, $r2) { @@ -92,6 +97,11 @@ class Class_AlbumRessource extends Storm_Model_Abstract { } + public static function getImageExtensions() { + return self::$_image_extensions; + } + + /** * Les fichiers sont formattés ID_NOM_DU_FICHIER.EXT * Retourne NOM_DU_FICHIER.EXT @@ -152,16 +162,65 @@ class Class_AlbumRessource extends Storm_Model_Abstract { /** * @return bool */ - public function receiveFile() { + public function receiveFiles() { + if ($this->receiveFile() + && $this->receivePoster()) { + return $this->save(); + } + + return false; + } + + + public function receivePoster() { + $oldThumbnail = $this->getThumbnailPath(); + // fichier non requis - if (!array_isset('fichier', $_FILES) or (0 == $_FILES['fichier']['size'])) { + if (!$this->isFileUploadedForName('poster')) { + if ($this->isImage()) { + if (file_exists($oldThumbnail)) + @unlink($oldThumbnail); + + return $this->createThumbnail(); + } + return true; } + + $upload = $this->getUploadHandler('poster'); + if (!$upload->receive()) { + $this->addAttributeError('poster', $upload->getError()); + return false; + } + + $fileName = $upload->getSavedFileName(); + $oldPoster = $this->getPosterPath(); + $this->setPoster($fileName); + + if ('' != $oldPoster + && $oldPoster != $this->getPosterPath() + && file_exists($oldPoster)) + @unlink($oldPoster); + + if (file_exists($oldThumbnail)) + @unlink($oldThumbnail); + + return $this->createThumbnail(); + } + + + /** + * @return bool + */ + public function receiveFile() { + // fichier non requis + if (!$this->isFileUploadedForName('fichier')) + return true; $upload = $this->getUploadHandler('fichier'); if (!$upload->receive()) { - $this->addError($upload->getError()); + $this->addAttributeError('fichier', $upload->getError()); return false; } @@ -170,17 +229,24 @@ class Class_AlbumRessource extends Storm_Model_Abstract { // store old file and thumb for future deletion $oldFileName = $this->getFichier(); $oldOriginal = $this->getOriginalPath(); - $oldThumbnail = $this->getThumbnailPath(); if ($fileName != $oldFileName) { - $this->setFichier($fileName)->save(); - unlink($oldOriginal); + $this->setFichier($fileName); + if (file_exists($oldOriginal)) + @unlink($oldOriginal); } - if (file_exists($oldThumbnail)) - @unlink($oldThumbnail); + return true; + } - return $this->createThumbnail(); + + /** + * @param $name string + * @return bool + */ + public function isFileUploadedForName($name) { + return array_isset($name, $_FILES) + and (0 < $_FILES[$name]['size']); } @@ -188,12 +254,11 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return bool */ public function createThumbnail() { - if (!$this->isImage()) { + if (!$this->isImage() && !$this->hasPoster()) return true; - } if (!$this->getFolderManager()->ensure($this->getThumbnailsPath())) { - $this->addError('Répertoire des vignettes non éditable'); + $this->addError($this->_('Répertoire des vignettes non éditable')); return false; } @@ -202,15 +267,15 @@ class Class_AlbumRessource extends Storm_Model_Abstract { $image->thumbnailImage(160, 0); if (!$image->writeImage($this->getThumbnailPath())) { - $this->addError('Erreur lors de l\'enregistrement de la vignette'); + $this->addError($this->_('Erreur lors de l\'enregistrement de la vignette')); return false; } return true; } catch (Exception $e) { - $this->addError('Erreur lors de la création de la vignette ' - . (string)$e->getMessage()); + $this->addError(sprintf($this->_('Erreur lors de la création de la vignette %s'), + (string)$e->getMessage())); return false; } } @@ -222,7 +287,10 @@ class Class_AlbumRessource extends Storm_Model_Abstract { public function getImage() { if (!isset($this->_image)) { try { - $this->_image = new Imagick($this->getOriginalPath()); + $this->_image = new Imagick(($this->isImage) ? + $this->getOriginalPath() : + $this->getPosterPath()); + } catch (Exception $e) { $this->_image = new Imagick(); $this->_image->newPseudoImage(50, 50, "gradient:black-black"); @@ -290,22 +358,24 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return Class_Upload */ public function getUploadHandler($name) { - if (null === $this->_uploadHandler) { - $this->_uploadHandler = Class_Upload::newInstanceFor($name) + if (!array_key_exists($name, $this->_uploadHandlers)) { + $this->_uploadHandlers[$name] = Class_Upload::newInstanceFor($name) ->setBaseName($this->getId()) ->setBasePath($this->getOriginalsPath()); } - return $this->_uploadHandler; + return $this->_uploadHandlers[$name]->resetError(); } /** * @category testing * @param Class_Upload $handler + * @param $name input file name + * @return Class_AlbumRessource */ - public function setUploadHandler($handler) { - $this->_uploadHandler = $handler; + public function setUploadHandlerFor($handler, $name) { + $this->_uploadHandlers[$name] = $handler; return $this; } @@ -350,6 +420,15 @@ class Class_AlbumRessource extends Storm_Model_Abstract { } + /** + * @param $prefix string + * @return string + */ + public function getLocatedPoster($prefix) { + return $prefix . $this->getPoster(); + } + + /** * @return string */ @@ -448,7 +527,10 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return string */ public function getThumbnailPath() { - return $this->getLocatedFile($this->getThumbnailsPath()); + $thumbnailsPath = $this->getThumbnailsPath(); + return ($this->isImage()) ? + $this->getLocatedFile($thumbnailsPath): + $this->getLocatedPoster($thumbnailsPath); } @@ -464,11 +546,12 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return string */ public function getThumbnailUrl() { - if ($this->hasVignette()) - return $this->getThumbnailsUrl().$this->getVignette(); + if ($this->hasPoster()) + return $this->getLocatedPoster($this->getThumbnailsUrl()); if ($this->isImage()) return $this->getLocatedFile($this->getThumbnailsUrl()); + return $this->_getDefaultThumbnailUrl(); } @@ -519,6 +602,22 @@ class Class_AlbumRessource extends Storm_Model_Abstract { } + /** + * @return string + */ + public function getPosterPath() { + return $this->getLocatedPoster($this->getOriginalsPath()); + } + + + /** + * @return string + */ + public function getPosterUrl() { + return $this->getLocatedPoster($this->getOriginalsUrl()); + } + + public function beforeDelete() { parent::beforeDelete(); $this->deleteFiles(); @@ -528,12 +627,8 @@ class Class_AlbumRessource extends Storm_Model_Abstract { public function beforeSave() { parent::beforeSave(); - if ($this->isNew()) { + if ($this->isNew()) $this->setOrdre($this->getNextOrder()); - } - - if ($this->hasAlbum()) - $this->getAlbum()->updateDateMaj(); } @@ -555,7 +650,7 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return bool */ public function isImage() { - return $this->isFileExtensionIn(array('png', 'jpg', 'jpeg', 'gif')); + return $this->isFileExtensionIn($this->getImageExtensions()); } @@ -563,7 +658,7 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return bool */ public function isFlash() { - return $this->isFileExtensionIn(array('swf')); + return $this->isFileExtensionIn(['swf']); } @@ -571,7 +666,7 @@ class Class_AlbumRessource extends Storm_Model_Abstract { * @return bool */ public function isVideo() { - return $this->isFileExtensionIn(array('mov')); + return $this->isFileExtensionIn(['mov']); } @@ -626,6 +721,66 @@ class Class_AlbumRessource extends Storm_Model_Abstract { $folio = $this->getFolioFromFilename(); return $folio; } + + + + public function setMediaType($type) { + $this->_media_type = $type; + return $this; + } + + + public function getMediaType() { + return $this->_media_type; + } + + + public function validate() { + $media_type = $this->getMediaType(); + if (!$media_type) + return; + + if (self::MEDIA_TYPE_URL == $media_type) { + $this + ->validateAttribute('url', 'Zend_Validate_NotEmpty', 'Url du média requise') + ->validateAttribute('url', 'ZendAfi_Validate_Url', 'Url du média non valide'); + return; + } + + if (self::MEDIA_TYPE_IMAGE == $media_type) { + $this->validateMediaIsImage(); + return; + } + + $this->validateMediaIsOtherFile(); + } + + + public function validateMediaIsImage() { + $this->validateMediaIsFileWithExtensions($this->getImageExtensions()); + } + + + public function validateMediaIsOtherFile() { + $this->validateMediaIsFileWithExtensions(); + } + + + public function validateMediaIsFileWithExtensions($extensions = []) { + // en édition et fichier inchangé + if (!$this->isNew() && !$this->isFileUploadedForName('fichier')) + return; + + $handler = $this->getUploadHandler('fichier') + ->setAllowedExtensions($extensions); + + $this->checkAttribute('fichier', $handler->validate(), $handler->getError()); + } + + + public function toArray() { + return parent::toArray() + ['media_type' => $this->getMediaType()]; + } } ?> \ No newline at end of file diff --git a/library/Class/Upload.php b/library/Class/Upload.php index bbb2efad29589dcca9ac964f101e698ca741531f..cb6220540660f213a497ca67309ed12f4c369953 100644 --- a/library/Class/Upload.php +++ b/library/Class/Upload.php @@ -20,6 +20,8 @@ */ class Class_Upload { + use Trait_Translator; + /** @var string */ protected $_name; @@ -45,7 +47,7 @@ class Class_Upload { protected $_required = false; /** @var array */ - protected $_allowedExtensions = array(); + protected $_allowedExtensions = []; /** @@ -105,7 +107,7 @@ class Class_Upload { * @return bool */ public function receive() { - if (!$this->_validate()) { + if (!$this->validate()) { return false; } @@ -177,6 +179,15 @@ class Class_Upload { } + /** + * @return Class_Upload + */ + public function resetError() { + $this->_error = null; + return $this; + } + + /** * @category testing * @param UploadMover $mover @@ -252,19 +263,19 @@ class Class_Upload { /** @return bool */ - protected function _validate() { + public function validate() { if ('' == $this->_name) { - $this->setError('Transfert impossible, ce formulaire est mal configuré'); + $this->setError($this->_('Transfert impossible, ce formulaire est mal configuré')); return false; } if (!array_key_exists($this->_name, $_FILES)) { - $this->setError('Transfert impossible, champ de fichier introuvable'); + $this->setError($this->_('Transfert impossible, champ de fichier introuvable')); return false; } if (0 == (int)$_FILES[$this->_name]['size']) { - $this->setError('Le fichier était vide ou un problème réseau est survenu'); + $this->setError($this->_('Le fichier était vide ou un problème réseau est survenu')); return false; } @@ -276,9 +287,10 @@ class Class_Upload { $parts = explode('.', $_FILES[$this->_name]['name']); $ext = end($parts); - if ((0 < count($this->getAllowedExtensions())) - && (!in_array($ext, $this->getAllowedExtensions()))) { - $this->setError('Type de fichier non permis'); + $allowedExtensions = $this->getAllowedExtensions(); + if ((0 < count($allowedExtensions)) + && (!in_array($ext, $allowedExtensions))) { + $this->setError(sprintf($this->_('Le fichier n\'est pas de type %s'), implode(', ', $allowedExtensions))); return false; } @@ -292,6 +304,8 @@ class Class_Upload { * @category testing */ class UploadMover { + use Trait_Translator; + /** @var string */ protected $_error; @@ -304,7 +318,7 @@ class UploadMover { */ public function moveTo($source, $destination) { if (!move_uploaded_file($source, $destination)) { - $this->setError('Impossible d\'écrire le fichier sur le serveur au chemin [' . $destination . ']'); + $this->setError(sprintf($this->_('Impossible d\'écrire le fichier sur le serveur au chemin [%s]'), $destination)); return false; } diff --git a/library/ZendAfi/Form/Album/Ressource.php b/library/ZendAfi/Form/Album/Ressource.php index 111f78b39a437ce82b10e358955ab1a98a88524c..e1513cf5fbe09065ec01866468803100a394e6e5 100644 --- a/library/ZendAfi/Form/Album/Ressource.php +++ b/library/ZendAfi/Form/Album/Ressource.php @@ -32,15 +32,26 @@ class ZendAfi_Form_Album_Ressource extends ZendAfi_Form { $form ->populate($model->toArray()) ->addFileFor($model) + ->addPosterFor($model) + ->detectMediaType($model) + ->addDisplayGroup(['media_type', 'fichier', 'url', 'poster', 'link_to'], + 'file', + ['legend' => 'Fichier']) - ->addDisplayGroup(array('titre', 'folio', 'fichier', 'link_to', 'matiere'), + ->addDisplayGroup(['titre', 'folio', 'matiere'], 'ressource', - array('legend' => 'Media')) + ['legend' => 'Media']) - ->addDisplayGroup(array('description'), + ->addDisplayGroup(['description'], 'ressource_desc', - array('legend' => 'Description')); + ['legend' => 'Description']) + ->addJs(); + if ($album = $model->getAlbum() + and !$album->isLivreNumerique()) + $form->removeElement('folio'); + + return $form; } @@ -51,15 +62,19 @@ class ZendAfi_Form_Album_Ressource extends ZendAfi_Form { ->setAttrib('id', 'ressourcesForm') ->setAttrib('enctype', self::ENCTYPE_MULTIPART) - ->addElement('text', 'titre', ['label' => 'Titre', - 'size' => '80']) + ->addElement('text', 'titre', ['label' => 'Titre', 'size' => '80']) - ->addElement('text', 'folio', ['label' => 'Folio', - 'size' => '20']) + ->addElement('text', 'folio', ['label' => 'Folio', 'size' => '20']) - - ->addElement('url', 'link_to', ['label' => 'Lien vers', - 'size' => '80']) + ->addElement('radio', 'media_type', + ['label' => 'Type de média', + 'separator' => '', + 'multioptions' => [1 => 'Image', 2 => 'Autre fichier', 3 => 'Média en ligne'], + 'value' => 1]) + + ->addElement('url', 'url', ['label' => 'Url *', 'size' => '80']) + + ->addElement('url', 'link_to', ['label' => 'Lien vers', 'size' => '80']) ->addElement('ckeditor', 'description') @@ -75,7 +90,7 @@ class ZendAfi_Form_Album_Ressource extends ZendAfi_Form { * @return ZendAfi_Form_Album_Ressource */ public function addFileFor($model) { - $element = new ZendAfi_Form_Element_Image('fichier', ['label' => 'Fichier']); + $element = new ZendAfi_Form_Element_Image('fichier', ['label' => 'Fichier *']); if ($model) { $element ->setBasePath($model->getOriginalsPath()) @@ -84,6 +99,94 @@ class ZendAfi_Form_Album_Ressource extends ZendAfi_Form { } return $this->addElement($element); } + + + /** + * @param $album Class_AlbumRessource + * @return ZendAfi_Form_Album_Ressource + */ + public function addPosterFor($model) { + $element = new ZendAfi_Form_Element_Image('poster', ['label' => 'Affiche / Jacquette']); + if ($model) { + $element + ->setBasePath($model->getOriginalsPath()) + ->setBaseUrl($model->getThumbnailsUrl()) + ->setThumbnailUrl($model->getThumbnailUrl()); + } + return $this->addElement($element); + } + + + + public function addJs() { + Class_ScriptLoader::getInstance() + ->addInlineScript(' + function showMediaInputRowWithId(id) { + getMediaRowOfInputId(id).show(); + } + + function hideMediaInputRowWithId(id) { + getMediaRowOfInputId(id).hide(); + } + + function changeMediaInputLabelWithId(id, label) { + getMediaRowOfInputId(id).find("label").first().html(label); + } + + function getMediaRowOfInputId(id) { + return $("#" + id).parent("td").parent("tr"); + } + + function toggleMediaType() { + var currentVal = $("input:radio[name=media_type]:checked").val(); + if (1 == currentVal) { + hideMediaInputRowWithId("url"); + hideMediaInputRowWithId("poster"); + changeMediaInputLabelWithId("fichier", "Image *"); + showMediaInputRowWithId("fichier"); + showMediaInputRowWithId("link_to"); + return; + } + + if (2 == currentVal) { + hideMediaInputRowWithId("url"); + hideMediaInputRowWithId("link_to"); + changeMediaInputLabelWithId("fichier", "Fichier *"); + showMediaInputRowWithId("fichier"); + showMediaInputRowWithId("poster"); + return; + } + + hideMediaInputRowWithId("fichier"); + hideMediaInputRowWithId("link_to"); + showMediaInputRowWithId("url"); + showMediaInputRowWithId("poster"); + }') + + ->addJQueryReady('$("input:radio[name=media_type]").change(function(){toggleMediaType();}); + toggleMediaType();'); + return $this; + } + + + /** + * @param $model Class_AlbumRessource + * @return Zendafi_Form_Album_Ressource + */ + public function detectMediaType($model) { + if ($model->isImage()) { + $this->getElement('media_type')->setValue(1); + return $this; + } + + if ($model->getFichier()) { + $this->getElement('media_type')->setValue(2); + return $this; + } + + $this->getElement('media_type')->setValue(3); + return $this; + } } ?> \ No newline at end of file diff --git a/tests/application/modules/admin/controllers/AlbumControllerTest.php b/tests/application/modules/admin/controllers/AlbumControllerTest.php index cd0c86ce05753750c652d7e3fa37fb8fddfa872c..0f3df3bbf21ba3fd5f25596c8281f09d05fd3477 100644 --- a/tests/application/modules/admin/controllers/AlbumControllerTest.php +++ b/tests/application/modules/admin/controllers/AlbumControllerTest.php @@ -1249,8 +1249,8 @@ class Admin_AlbumControllerAlbumHarlockEditRessourceOneActionTest extends Admin_ /** @test */ - public function inputFolioShouldContainsOne() { - $this->assertXPath('//input[@name="folio"][@value="1"]', $this->_response->getBody()); + public function inputFolioShouldNotBePresent() { + $this->assertNotXPath('//input[@name="folio"]'); } @@ -1324,12 +1324,13 @@ class Admin_AlbumControllerAlbumHarlocPostRessourceOneActionTest extends Admin_A ->answers(true); $this->postDispatch('/admin/album/edit_ressource/id/1', - array('titre' => 'Atlantis', - 'description' => 'autre vaisseau', - 'link_to' => 'http://www.atlantis.com', - 'matiere' => '666', - 'folio' => '3R')); - $this->ressource = Class_AlbumRessource::getLoader()->find(1); + ['titre' => 'Atlantis', + 'description' => 'autre vaisseau', + 'link_to' => 'http://www.atlantis.com', + 'matiere' => '666', + 'folio' => '3R']); + + $this->ressource = Class_AlbumRessource::find(1); } diff --git a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php index af666afd225a054e3bc0fa928ad497b6fdc96d30..2d550adb028c3cdfae2114e125e73bf988ada55d 100644 --- a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php +++ b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php @@ -529,12 +529,12 @@ abstract class BibNumeriqueControllerAlbumMultiMediasTestCase extends AbstractCo ->setFichier('mimi_jolie.mp3') ->setTitre('Emilie jolie') ->setOrdre(1) - ->setVignette('mimi_jolie.png'), + ->setPoster('mimi_jolie.png'), Class_AlbumRessource::newInstanceWithId(4) ->setFichier('dark_night.mp4') ->setTitre('Batman Dark Knight') - ->setVignette('batman.jpg') + ->setPoster('batman.jpg') ->setOrdre(2) ->setDescription('Une nouvelle aventure du justicier noir'), @@ -542,13 +542,13 @@ abstract class BibNumeriqueControllerAlbumMultiMediasTestCase extends AbstractCo ->setUrl('http://progressive.totaleclips.com.edgesuite.net/107/e107950_227.mp4') ->setTitre('Hunger Games') ->setOrdre(3) - ->setVignette('hunger.jpg'), + ->setPoster('hunger.jpg'), Class_AlbumRessource::newInstanceWithId(6) ->setFichier('Monsieur l\'escargot.mp3') ->setTitre('Monsieur l\'escargot') ->setOrdre(4) - ->setVignette('l\'escargot.jpg')]); + ->setPoster('l\'escargot.jpg')]); } } diff --git a/tests/library/Class/AlbumRessourceTest.php b/tests/library/Class/AlbumRessourceTest.php index cf235831cf601e622551817c5850847d17a33593..b8e014b867574defa623777a2f803803334cd839 100644 --- a/tests/library/Class/AlbumRessourceTest.php +++ b/tests/library/Class/AlbumRessourceTest.php @@ -156,7 +156,13 @@ class AlbumRessourceReceivingFileTest extends AlbumRessourceFileUploadTestCase { ->method('receive') ->will($this->returnValue(false)); - $this->assertFalse($this->_resource->setUploadHandler($this->_handler)->receiveFile()); + $this->_handler + ->expects($this->once()) + ->method('resetError') + ->will($this->returnValue($this->_handler)); + + $this->assertFalse($this->_resource->setUploadHandlerFor($this->_handler, 'fichier') + ->receiveFile()); } } diff --git a/tests/library/Class/UploadTest.php b/tests/library/Class/UploadTest.php index c0511819fa8ba422875804d94cbe0e689656831d..279eea35b85fe1aa93965cce8f9087665d7c3788 100644 --- a/tests/library/Class/UploadTest.php +++ b/tests/library/Class/UploadTest.php @@ -106,7 +106,7 @@ class UploadFichierTest extends PHPUnit_Framework_TestCase { 'name' => 'test.xml' ); - $this->_assertError('Type de fichier non permis'); + $this->_assertError('Le fichier n\'est pas de type gif'); }