diff --git a/VERSIONS_HOTLINE/129535 b/VERSIONS_HOTLINE/129535
new file mode 100644
index 0000000000000000000000000000000000000000..7294e31ed539bf295568344f372f622ff891d36b
--- /dev/null
+++ b/VERSIONS_HOTLINE/129535
@@ -0,0 +1,3 @@
+ - ticket #129535 : Vignettes : Amélioration du vignettage des albums, lorsque vous supprimez la vignette défectueuse de l'album, Bokeh va générer une vignette à partir du premier média de type image.
+   	  	    	      	Dans les magasins de thèmes, le crayon de modification de vignette de notice est de nouveau cliquable. Vous pouvez également modifier la vignette d'une notice dans le menu plus des notices. Les vignettes dans les carousels et le résultat de recherche sont de nouveau chargées correctement.
+				Correction des balises ALT des avis qui ne comportent plus de HTML.
diff --git a/library/Class/Album.php b/library/Class/Album.php
index 26b89e1cf2df66677be8b84c36d0328ac4218f41..937252177a63d4e033a2a41d9c3677aaead00060 100644
--- a/library/Class/Album.php
+++ b/library/Class/Album.php
@@ -725,6 +725,36 @@ class Class_Album extends Storm_Model_Abstract {
   }
 
 
+  public function updateThumbnailFromMedia() {
+    if ( $this->hasFichier())
+      return $this;
+
+    if ( ! $resources = $this->getImages())
+      return $this;
+
+    if ( ! $resource = array_shift($resources))
+      return $this;
+
+    $params = ['width' => (int) $this->getThumbnailWidth(),
+               'id' => (int) $resource->getId()];
+
+    $path = $resource->getThumbnailFilePathForParams($params);
+
+    if ( !$image = Class_Notice_Thumbnail_ProviderAbstract::getImageFactory()->newImage($path))
+      return $this;
+
+    try {
+      $image->thumbnailImage(THUMBNAIL_FIT_WIDTH_HEIGHT, THUMBNAIL_FIT_WIDTH_HEIGHT, true, false);
+
+      if ($image->writeImage($this->getThumbnailPath()))
+        return $this->setFichier($resource->getFichier());
+
+    } catch (Exception $e) {}
+
+    return $this;
+  }
+
+
   public function getVignettePath() {
     return $this->getBasePath() . $this->getFichier();
   }
@@ -961,6 +991,7 @@ class Class_Album extends Storm_Model_Abstract {
 
   public function beforeSave() {
     $this
+      ->updateThumbnailFromMedia()
       ->updateDateMaj()
       ->collectAuthors()
       ->collectEditors()
@@ -1159,6 +1190,7 @@ class Class_Album extends Storm_Model_Abstract {
   public function _getKindOf($type) {
     $type = substr($type, 0, strlen($type) - 1);
     $items = [];
+    $ressources = $this->getRessources();
     foreach ($this->getRessources() as $ressource)
       if ($ressource->{'is' . $type}())
         $items[] = $ressource;
diff --git a/library/Class/AlbumRessource.php b/library/Class/AlbumRessource.php
index 11c9656976b31627ca3fb5fa92aad4fa83b02abd..0a8c60a20b3c0e2caeecd48ce9cfb3d728b33751 100644
--- a/library/Class/AlbumRessource.php
+++ b/library/Class/AlbumRessource.php
@@ -536,12 +536,12 @@ class Class_AlbumRessource extends Storm_Model_Abstract {
   public function getThumbnailSubPathForParams($params) {
     self::checkThumbnailDirExists();
 
-    return '/temp/'.md5($this->getOriginalPath().serialize($params)).'.'.$this->getFileExtension();
+    return 'temp/'.md5($this->getOriginalPath().serialize($params)).'.'.$this->getFileExtension();
   }
 
 
   public function getThumbnailFilePathForParams($params) {
-    return USERFILESPATH.$this->getThumbnailSubPathForParams($params);
+    return USERFILESPATH . '/' . $this->getThumbnailSubPathForParams($params);
   }
 
 
diff --git a/library/Class/Notice/Thumbnail/ProviderAbstract.php b/library/Class/Notice/Thumbnail/ProviderAbstract.php
index 58eacb85b08ad3459d470b8a7f2a7bb9469257f0..570a05e0626abf1bd51434b9ed970542f3df195c 100644
--- a/library/Class/Notice/Thumbnail/ProviderAbstract.php
+++ b/library/Class/Notice/Thumbnail/ProviderAbstract.php
@@ -21,9 +21,13 @@
 
 
 abstract class Class_Notice_Thumbnail_ProviderAbstract {
+
   const THUMBS_DIRECTORY = 'vignettes_titre/';
+
+
   protected static $_default_image_factory;
 
+
   protected $_record;
 
 
@@ -33,7 +37,7 @@ abstract class Class_Notice_Thumbnail_ProviderAbstract {
   }
 
 
-  public function getImageFactory() {
+  public static function getImageFactory() {
     return isset(static::$_default_image_factory)
       ? static::$_default_image_factory
       : new Class_Notice_Thumbnail_ProviderImageFactory();
diff --git a/library/Class/Notice/Thumbnail/ProviderLocal.php b/library/Class/Notice/Thumbnail/ProviderLocal.php
index 0f041bd68ecf5c4f83a9cb6ad413b1f56a856d5a..213406902c73589dfd4926b261903ab1589c97c0 100644
--- a/library/Class/Notice/Thumbnail/ProviderLocal.php
+++ b/library/Class/Notice/Thumbnail/ProviderLocal.php
@@ -27,7 +27,7 @@ class Class_Notice_Thumbnail_ProviderLocal
     if (!$url = $this->_getOriginalUrlOrPath())
       return $this->noWebThumbRecord();
 
-    if(!$image = $this->getImageFactory()->newImage($url))
+    if(!$image = static::getImageFactory()->newImage($url))
       return $this->noWebThumbRecord();
 
     $filename = $this->_record->getClefAlpha().'.jpg';
diff --git a/library/ZendAfi/Controller/Plugin/Manager/Album.php b/library/ZendAfi/Controller/Plugin/Manager/Album.php
index 4ae160956db7efeda5fe7be96f19f2e7a9c3c67b..fba9ace95424eabf2f664bc350c32a6fa52ef692 100644
--- a/library/ZendAfi/Controller/Plugin/Manager/Album.php
+++ b/library/ZendAfi/Controller/Plugin/Manager/Album.php
@@ -159,8 +159,9 @@ class ZendAfi_Controller_Plugin_Manager_Album extends ZendAfi_Controller_Plugin_
       return;
     }
 
-    $this->_view->album = $album;
     $ressource = Class_AlbumRessource::newInstance()->setAlbum($album);
+    $this->_view->album = $album;
+    $this->_view->album->addRessource($ressource);
 
     if ($this->_setupRessourceFormAndSave($ressource)) {
       $this->_helper->notify($this->_('Média "%s" sauvegardé', $ressource->getTitre()));
diff --git a/library/ZendAfi/View/Helper/Admin/FileManager/File.php b/library/ZendAfi/View/Helper/Admin/FileManager/File.php
index 0a9e601f58cf3aac36c9c10db5549cb1b42c1cba..a5d98f1746e12d9932b668ad1bf37b0d5aba732a 100644
--- a/library/ZendAfi/View/Helper/Admin/FileManager/File.php
+++ b/library/ZendAfi/View/Helper/Admin/FileManager/File.php
@@ -32,9 +32,12 @@ class ZendAfi_View_Helper_Admin_FileManager_File extends ZendAfi_View_Helper_Bas
            $this->_tag('dt', $this->_('Extension :')),
            $this->_tag('dd', $file->getExtension()),
 
-           $this->_tag('dt', $this->_('Emplacement :')),
+           $this->_tag('dt', $this->_('Dossier parent :')),
            $this->_tag('dd', $file->getParentPath()),
 
+           $this->_tag('dt', $this->_('Emplacement :')),
+           $this->_tag('dd', $file->getRealpath()),
+
            $this->_tag('dt', $this->_('Taille :')),
            $this->_tag('dd', $file->getSize()),
 
diff --git a/library/templates/Intonation/Assets/css/intonation.css b/library/templates/Intonation/Assets/css/intonation.css
index e6a7f39d55fdedde3636cb175fe939738ee927fb..b7ba818f681d09f9511db7eeaf4092a214021492 100644
--- a/library/templates/Intonation/Assets/css/intonation.css
+++ b/library/templates/Intonation/Assets/css/intonation.css
@@ -50,7 +50,7 @@ body {
     font-size: 1.25rem;
 }
 
-.card-img-top .card-img-overlay.record_no_thumbnail {
+.card-img-overlay.record_no_thumbnail {
     position: relative;
 }
 
@@ -998,3 +998,15 @@ a.audio_track:hover .fa-music::before {
 .collection_action > .card-link {
     width: 100%;
 }
+
+.record_no_thumbnail {
+    overflow: hidden;
+}
+
+.jumbotron_thumbnail .position-absolute {
+    z-index: 1;
+}
+
+.img-thumbnail {
+    display: block;
+}
diff --git a/library/templates/Intonation/Library/View/Wrapper/Abstract.php b/library/templates/Intonation/Library/View/Wrapper/Abstract.php
index 581a19614b1f1a18a0f48a11d249e535e6f40492..6c384ee1e035177561982ea1faf912f2647c3816 100644
--- a/library/templates/Intonation/Library/View/Wrapper/Abstract.php
+++ b/library/templates/Intonation/Library/View/Wrapper/Abstract.php
@@ -178,6 +178,12 @@ abstract class Intonation_Library_View_Wrapper_Abstract {
   }
 
 
+  public function getPictureAlt() {
+    return $this->_('Couverture de %s',
+                    strip_tags($this->getMainTitle()));
+  }
+
+
   /** @return string */
   abstract public function getMainTitle();
 
diff --git a/library/templates/Intonation/Library/View/Wrapper/Record.php b/library/templates/Intonation/Library/View/Wrapper/Record.php
index f25b2e2742710bbe876bde0b977ca81e4b0570d3..68a0415f3d0390c9aabe9ef2bc5b550187c668a1 100644
--- a/library/templates/Intonation/Library/View/Wrapper/Record.php
+++ b/library/templates/Intonation/Library/View/Wrapper/Record.php
@@ -23,6 +23,7 @@
 class Intonation_Library_View_Wrapper_Record extends Intonation_Library_View_Wrapper_Abstract {
 
   protected
+    $_picture_cache,
     $_selectable_action = false,
     $_main_title,
     $_description,
@@ -68,7 +69,7 @@ class Intonation_Library_View_Wrapper_Record extends Intonation_Library_View_Wra
 
 
   public function getPicture() {
-    return $this->_model->fetchUrlLocalVignette();
+    return $this->_fetchUrlPicture();
   }
 
 
@@ -618,6 +619,7 @@ class Intonation_Library_View_Wrapper_Record extends Intonation_Library_View_Wra
 
 
   public function getHtmlPicture() {
+    $this->_fetchUrlPicture();
     return $this->_model->hasVignette()
       ? ''
       : $this->_view->div(['class' => 'record_no_thumbnail'],
@@ -665,6 +667,14 @@ class Intonation_Library_View_Wrapper_Record extends Intonation_Library_View_Wra
                            'id' => $this->_model->getId()])
       : '';
   }
+
+
+  protected function _fetchUrlPicture() {
+    if ( $this->_picture_cache)
+      return $this->_picture_cache;
+
+    return $this->_picture_cache = $this->_model->fetchUrlLocalVignette();
+  }
 }
 
 
diff --git a/library/templates/Intonation/Library/View/Wrapper/Review.php b/library/templates/Intonation/Library/View/Wrapper/Review.php
index f9be83b69f19d1005e0f22613600b1f81a7345d6..2f9aec86a290b45c2d1b0687931fc36a950f554f 100644
--- a/library/templates/Intonation/Library/View/Wrapper/Review.php
+++ b/library/templates/Intonation/Library/View/Wrapper/Review.php
@@ -22,7 +22,20 @@
 
 class Intonation_Library_View_Wrapper_Review extends Intonation_Library_View_Wrapper_Abstract {
 
-  protected $_badges_caches;
+  protected $_badges_caches,
+    $_record_wrapper;
+
+
+  protected function _getRecordWrapper() {
+    if ($this->_record_wrapper)
+      return $this->_record_wrapper;
+
+    $record = ($record = $this->_model->getFirstNotice())
+      ? $record
+      : new Class_Notice;
+
+    return $this->_record_wrapper = Class_Template::current()->newWrapper($record, $this->_view);
+  }
 
 
   public function getMainTitle() {
@@ -88,13 +101,13 @@ class Intonation_Library_View_Wrapper_Review extends Intonation_Library_View_Wra
   protected  function _getMainLinkTitle() {
     return ($author = $this->_model->getNomAff())
       ? $this->_('Lire l\'avis donné par %s',
-                      $author)
+                 $author)
       : $this->_('Lire l\'avis');
   }
 
 
   public function getPicture() {
-    return $this->_model->getUrlVignette();
+    return $this->_getRecordWrapper()->getPicture();
   }
 
 
@@ -197,7 +210,7 @@ class Intonation_Library_View_Wrapper_Review extends Intonation_Library_View_Wra
 
 
   public function getHtmlPicture() {
-    return '';
+    return $this->_getRecordWrapper()->getHtmlPicture();
   }
 
 
@@ -211,4 +224,9 @@ class Intonation_Library_View_Wrapper_Review extends Intonation_Library_View_Wra
       ? true
       : parent::_allowHTMLInDescription();
   }
+
+
+  public function getPictureAlt() {
+    return $this->_getRecordWrapper()->getPictureAlt();
+  }
 }
\ No newline at end of file
diff --git a/library/templates/Intonation/View/RenderThumbnailWithAction.php b/library/templates/Intonation/View/RenderThumbnailWithAction.php
index 56eeef0352a2c99f6d7df4971d7aea38eb4fd80c..963d61794d66d37a16a481f5f0cf38a185c191d2 100644
--- a/library/templates/Intonation/View/RenderThumbnailWithAction.php
+++ b/library/templates/Intonation/View/RenderThumbnailWithAction.php
@@ -34,10 +34,7 @@ class Intonation_View_RenderThumbnailWithAction extends ZendAfi_View_Helper_Base
 
     $thumbnail = $this->view->tagImg($image,
                                      ['class' => 'img-thumbnail w-100',
-                                      'alt' => ($image
-                                                ? $this->_('Couverture de %s',
-                                                           $element->getMainTitle())
-                                                : '')]);
+                                      'alt' => $element->getPictureAlt()]);
 
     $attributes = array_merge($attributes,
                               ['onclick' => '$(this).toggleClass(\'modal_image\');']);
diff --git a/library/templates/Intonation/View/TagMedia.php b/library/templates/Intonation/View/TagMedia.php
index 1561f518211e17365a43dbf108aca10b2f552abe..8f65ed6d23d3faa3b3a059bab56d418b5e43d74f 100644
--- a/library/templates/Intonation/View/TagMedia.php
+++ b/library/templates/Intonation/View/TagMedia.php
@@ -50,8 +50,7 @@ class Intonation_View_TagMedia extends ZendAfi_View_Helper_BaseHelper {
     if ($picture = $instance->getPicture())
       return $this->_div($attribs,
                          $this->view->tagImg($picture,
-                                             array_merge(['alt' => $this->_('Couverture de %s',
-                                                                            $instance->getMainTitle())],
+                                             array_merge(['alt' => $instance->getPictureAlt()],
                                                          $img_attribs)));
 
     return '';
diff --git a/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php b/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
index e20a03e443c5bb33d4734cc9d42ea0b96f94a5ee..036c2636301032b424758b6e4a090fddd58de08c 100644
--- a/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
+++ b/tests/application/modules/admin/controllers/AlbumControllerPharoVideosTest.php
@@ -76,45 +76,49 @@ class Admin_AlbumControllerPharoVideosAddTest extends Admin_AlbumControllerPharo
 
 
 class Admin_AlbumControllerPharoVideosPostAddTest extends Admin_AlbumControllerPharoVideosTestCase {
-  protected $new_ressource;
+  protected
+    $_new_ressource,
+    $_album,
+    $_record;
 
 
   public function setUp() {
     parent::setUp();
-    Class_Exemplaire::beVolatile();
-    $this->postDispatch('/admin/album/add-ressource/id/777', ['url' => 'http://www.pharocast.org',
-                                                              'media_type' => 3,
-                                                              'duration' => '00:20:00',
-                                                              'titre' => 'Pharo cast',
-                          ]);
-    $this->new_ressource = Class_AlbumRessource::findFirstBy(['order' => 'id desc']);
-
+    $this->postDispatch('/admin/album/add-ressource/id/777',
+                        ['url' => 'http://www.pharocast.org',
+                         'media_type' => 3,
+                         'duration' => '00:20:00',
+                         'titre' => 'Pharo cast',
+                        ]);
+
+    $this->_new_ressource = Class_AlbumRessource::findFirstBy(['order' => 'id desc']);
+    $this->_album = Class_Album::find(777);
+    $this->_record = $this->_album->getNotice();
   }
 
 
   /** @test */
   public function durationShouldBe20min() {
-    $this->assertEquals('00:20:00' , $this->new_ressource->getDuration());
+    $this->assertEquals('00:20:00' , $this->_new_ressource->getDuration());
   }
 
 
   /** @test */
   public function noticeShouldHaveBeenGenerated() {
-    $this->assertNotNull($this->new_ressource->getAlbum()->getNotice());
+    $this->assertEquals($this->_record,
+                        $this->_new_ressource->getAlbum()->getNotice());
   }
 
 
   /** @test */
   public function noticeUnimarcShouldContainsPharoCast() {
-    $notice = $this->new_ressource->getAlbum()->getNotice();
-    $this->assertContains('Pharo cast', $notice->get_subfield('464','t'));
+    $this->assertContains('Pharo cast', $this->_record->get_subfield('464','t'));
   }
 
 
   /** @test */
   public function noticeUnimarcShouldContainsDuration() {
-    $notice = $this->new_ressource->getAlbum()->getNotice();
-    $this->assertContains('00:20:00', $notice->get_subfield('464','a'));
+    $this->assertContains('00:20:00', $this->_record->get_subfield('464','a'));
   }
 }
 
diff --git a/tests/application/modules/admin/controllers/FileManagerControllerTest.php b/tests/application/modules/admin/controllers/FileManagerControllerTest.php
index 9449562a1c540eca6b9686a99aad52243676be35..952ca65460bf2a8dd1510ef7c5fdeaf5b60671da 100644
--- a/tests/application/modules/admin/controllers/FileManagerControllerTest.php
+++ b/tests/application/modules/admin/controllers/FileManagerControllerTest.php
@@ -748,6 +748,13 @@ class FileManagerControllerDropDispatchTest extends FileManagerControllerTestCas
     $this->dispatch('/admin/file-manager/properties?item=userfiles%2Fimage%2Fwhite', true);
     $this->assertXPathContentContains('//dl//dd', 'white');
   }
+
+
+  /** @test */
+  public function dispatchPropertiesShouldDisplayEmplacement() {
+    $this->dispatch('/admin/file-manager/properties?item=userfiles%2Fimage%2Fwhite');
+    $this->assertXPathContentContains('//dl//dt', 'Emplacement');
+  }
 }
 
 
diff --git a/tests/application/modules/opac/controllers/RechercheControllerThumbnailTest.php b/tests/application/modules/opac/controllers/RechercheControllerThumbnailTest.php
index ffbf11850cb98f2f04bb384d8f12f09bcf4a8410..a567f7ef96573088ff2213ed3b1f909cd4c69594 100644
--- a/tests/application/modules/opac/controllers/RechercheControllerThumbnailTest.php
+++ b/tests/application/modules/opac/controllers/RechercheControllerThumbnailTest.php
@@ -93,6 +93,24 @@ class RechercheControllerThumbnailAlbumCmsWithImageTest
   public function setUp() {
     parent::setUp();
 
+    $new_image = $this
+      ->mock()
+      ->whenCalled('thumbnailImage')->answers(true)
+      ->whenCalled('writeImage')->answers(true);
+
+    $imagick = $this
+      ->mock()
+
+      ->whenCalled('newImage')->with('./userfiles/temp/765451650634531fa7f2389da916b8bb.png')
+      ->answers(null)
+
+      ->whenCalled('newImage')->with('./userfiles/album/777/big/media/12.png')
+      ->answers($new_image)
+
+      ->beStrict();
+
+    Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($imagick);
+
     $album = $this->fixture('Class_Album',
                             ['id' => 777,
                              'titre' => 'Testing Album',
diff --git a/tests/library/Class/AlbumTest.php b/tests/library/Class/AlbumTest.php
index 29b02598b5185d8ed916c82a1d53d82457628aee..0da7d6fdaf78d1e78acf5b9c74dcc2500f24b1c2 100644
--- a/tests/library/Class/AlbumTest.php
+++ b/tests/library/Class/AlbumTest.php
@@ -569,18 +569,21 @@ class AlbumHarlockSortingResourcesTest extends AlbumHarlockTestCase {
       ->newInstanceWithId(1)
       ->setTitre('Nausica')
       ->setFichier('1_AB.jpg')
+      ->setIdAlbum(999)
       ->setOrdre(1);
 
     $this->_arcadia = Class_AlbumRessource::getLoader()
       ->newInstanceWithId(2)
       ->setTitre('Arcadia')
       ->setFichier('03.jpg')
+      ->setIdAlbum(999)
       ->setOrdre(2);
 
     $this->_sylphide = Class_AlbumRessource::getLoader()
       ->newInstanceWithId(3)
       ->setTitre('Sylphide')
       ->setFichier('3_25.jpg')
+      ->setIdAlbum(999)
       ->setOrdre(3);
 
     Storm_Test_ObjectWrapper::onLoaderOfModel('Class_AlbumRessource')
@@ -763,3 +766,83 @@ class AlbumIsbnMarcTest extends ModelTestCase {
     $this->assertEquals('9782081377523', $this->_album->getIsbn());
   }
 }
+
+
+
+
+class AlbumUpdateVignetteTest extends ModelTestCase {
+
+
+  public function setUp() {
+    parent::setUp();
+
+    $new_image = $this
+      ->mock()
+      ->whenCalled('thumbnailImage')->answers(true)
+      ->whenCalled('writeImage')->answers(true);
+
+    $imagick = $this->mock()
+                    ->whenCalled('newImage')->answers($new_image);
+
+    Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($imagick);
+
+    $resources = [$this->fixture(Class_AlbumRessource::class,
+                                 ['id' => 3,
+                                  'id_album' => 1,
+                                  'fichier' => 'equitation3.jpg']),
+
+                  $this->fixture(Class_AlbumRessource::class,
+                                 ['id' => 4,
+                                  'id_album' => 1,
+                                  'fichier' => 'equitation4.jpg'])];
+
+    $resource_without_image = [$this->fixture(Class_AlbumRessource::class,
+                                              ['id' => 6,
+                                               'id_album' => 3])];
+
+    $this->fixture(Class_Album::class,
+                   ['id' => 1,
+                    'ressources' => $resources,
+                    'titre' => 'Photographie de Nasram prise aux écuries']);
+
+    $this->fixture(Class_Album::class,
+                   ['id' => 2,
+                    'titre' => 'Photographie de Nasram prise aux écuries sans resources']);
+
+
+    $this->fixture(Class_Album::class,
+                   ['id' => 3,
+                    'ressources' => $resource_without_image,
+                    'titre' => 'Photographie de Nasram prise aux écuries avec une resource sans image']);
+  }
+
+
+  /** @test */
+  public function albumFichierShouldBeEquitation3() {
+    $this->assertEquals('equitation3.jpg', Class_Album::find(1)->getFichier());
+  }
+
+
+  /** @test */
+  public function resource3ThumbnailUrlShouldNotContainsDoubleSlash() {
+    $this->assertNotContains('//', Class_AlbumRessource::find(3)->getThumbnailUrlForParams([]));
+  }
+
+
+  /** @test */
+  public function resource4ThumbnailFilePashShouldContainsSlash() {
+    $this->assertEquals('./userfiles/temp/7326c1358db613ca0f925f4168943ddf.jpg', Class_AlbumRessource::find(4)->getThumbnailFilePathForParams([]));
+  }
+
+
+  /** @test */
+  public function albumSansRessourcesShouldDontHaveFichier() {
+    $this->assertEquals('', Class_Album::find(2)->getFichier());
+  }
+
+
+  /** @test */
+  public function albumWithEmptyRessourceShouldDontHaveFichier() {
+    $this->assertEquals('', Class_Album::find(3)->getFichier());
+  }
+}
diff --git a/tests/library/Class/NoticeTest.php b/tests/library/Class/NoticeTest.php
index 0d4768e7afe55a0a91faa1d2f98f4269841b19c0..41d46593f7ed9d0009770b51428da7ac3cd43d21 100644
--- a/tests/library/Class/NoticeTest.php
+++ b/tests/library/Class/NoticeTest.php
@@ -207,12 +207,18 @@ class NoticeVignetteTest extends ModelTestCase {
                                                      'action' => 'notice',
                                                      'id' => $album->getId()])]);
 
+    $new_image = $this->mock()
+                      ->whenCalled('thumbnailImage')->answers(true)
+                      ->whenCalled('writeImage')->answers(true);
+
     $image_factory = $this->mock()
+
+                          ->whenCalled('newImage')->with('./userfiles/temp/716e853c26f2f7d57a12e9eb811be450.jpg')
+                          ->answers($new_image)
+
                           ->whenCalled('newImage')
                           ->with($album->getThumbnailPath())
-                          ->answers($this->mock()
-                                    ->whenCalled('thumbnailImage')->answers(null)
-                                    ->whenCalled('writeImage')->answers(null))
+                          ->answers($new_image)
                           ->beStrict();
     Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($image_factory);
 
@@ -247,13 +253,24 @@ class NoticeVignetteTest extends ModelTestCase {
                                                      'action' => 'notice',
                                                      'id' => $album->getId()])]);
 
-    $image_factory = $this->mock()
-                          ->whenCalled('newImage')
-                          ->with(Class_AlbumRessource::find(5)->getOriginalPath())
-                          ->answers($this->mock()
-                                    ->whenCalled('thumbnailImage')->answers(null)
-                                    ->whenCalled('writeImage')->answers(null))
-                          ->beStrict();
+    $new_image = $this->mock()
+                      ->whenCalled('thumbnailImage')->answers(true)
+                      ->whenCalled('writeImage')->answers(true);
+
+    $image_factory = $this
+      ->mock()
+
+      ->whenCalled('newImage')->with('./userfiles/temp/716e853c26f2f7d57a12e9eb811be450.jpg')
+      ->answers($new_image)
+
+      ->whenCalled('newImage')->with('./userfiles/album/2/thumb_resthumb.jpg')
+      ->answers($new_image)
+
+      ->whenCalled('newImage')->with('./userfiles/album/2/big/media/resthumb.jpg')
+      ->answers($new_image)
+
+      ->beStrict();
+
     Class_Notice_Thumbnail_ProviderAbstract::setDefaultImageFactory($image_factory);
 
 
diff --git a/tests/scenarios/Templates/TemplatesAbonneTest.php b/tests/scenarios/Templates/TemplatesAbonneTest.php
index 49db660f4f80b53bfefd94f41b7dc80a3642c8ef..f06cb8215475881e1aecac0530d4922b21fce89e 100644
--- a/tests/scenarios/Templates/TemplatesAbonneTest.php
+++ b/tests/scenarios/Templates/TemplatesAbonneTest.php
@@ -205,7 +205,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
     $this->fixture('Class_AvisNotice',
                    ['id' => 4,
                     'id_user' => 666,
-                    'id_notice' => 2,
+                    'id_notice' => 20090,
                     'clef_oeuvre' => 'PSYKO',
                     'note' => '4',
                     'entete' => 'Le Roi',
@@ -214,8 +214,10 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
 
     $this->fixture('Class_Notice',
                    ['id' => 20090,
+                    'url_vignette' => '404.jpg',
                     'clef_oeuvre' => 'PSYKO',
-                   ]);
+                   ])
+         ->setTitrePrincipal('Psykoooo');
 
     $newsletter = $this->fixture('Class_Newsletter',
                                  ['id' => 45,
@@ -755,6 +757,13 @@ class TemplatesDispatchAbonneReviewsTest extends TemplatesIntonationAccountTestC
     $this->dispatch('/opac/abonne/mes-avis/id_profil/72');
     $this->assertXPathContentContains('//div//a[contains(@href, "/abonne/donner-des-avis")]', 'Commencer maintenant');
   }
+
+
+  /** @test */
+  public function imageAltShouldNotContainsHtml() {
+    $this->dispatch('/opac/abonne/mes-avis/id_profil/72');
+    $this->assertXPath('//div[contains(@class, "truncate_list_wrapper")]//div[@class="img-thumbnail"]//img[@alt="Couverture de Psykoooo"]');
+  }
 }
 
 
diff --git a/tests/scenarios/Templates/TemplatesSearchTest.php b/tests/scenarios/Templates/TemplatesSearchTest.php
index 2d5d797c35e122fd94a3c2d9b427c4906bc7e19b..9659ed5b6d2cbbf4ad9c1dfe436ac23034a4d4c2 100644
--- a/tests/scenarios/Templates/TemplatesSearchTest.php
+++ b/tests/scenarios/Templates/TemplatesSearchTest.php
@@ -449,6 +449,12 @@ class TemplatesSearchDispatchIntonationSearchListFormatWallTest extends Template
   public function facetsBlocksShouldContainsOnclickToggleClassFacetBlockClosed() {
     $this->assertXPathContentContains('//form[contains(@class, "form_facets")]//ul/li[contains(@class, "facette_titre facet_type_A facet_block_toggle_visibility facet_block_closed")]/b[contains(@onclick, "$(this).parent().toggleClass(\'facet_block_closed\');")]', 'Auteur');
   }
+
+
+  /** @test */
+  public function record89UrlVignetteShouldHaveBeenSetToNo() {
+    $this->assertEquals('NO', Class_Notice::find(89)->getUrlVignette());
+  }
 }