From 2c5674c289ea663344af49c40fb7cf8cdcadfd74 Mon Sep 17 00:00:00 2001
From: Patrick Barroca <pbarroca@afi-sa.fr>
Date: Thu, 24 Oct 2019 11:16:32 +0200
Subject: [PATCH] dev #94557 : rt fix

---
 FEATURES/94557                                | 12 +--
 VERSIONS_WIP/94557                            |  2 +-
 .../Whisperies/tests/WhisperiesTest.php       | 73 ++++++++++---------
 3 files changed, 47 insertions(+), 40 deletions(-)

diff --git a/FEATURES/94557 b/FEATURES/94557
index 37d558ca92d..f042d5168e0 100644
--- a/FEATURES/94557
+++ b/FEATURES/94557
@@ -1,10 +1,10 @@
         '94557' =>
-            ['Label' => $this->_('[Explo] [Contractuel] connecteur Whisperies'),
-             'Desc' => '',
+            ['Label' => $this->_('Connecteur Whisperies'),
+             'Desc' => $this->_('Des centaines de livres interactifs pour enfants'),
              'Image' => '',
-             'Video' => '',
-             'Category' => '',
+             'Video' => 'https://www.youtube.com/watch?v=SL-y3zDVqQs',
+             'Category' => $this->_('Bibliothèque numérique'),
              'Right' => function($feature_description, $user) {return true;},
-             'Wiki' => '',
+             'Wiki' => 'http://wiki.bokeh-library-portal.org/index.php?title=Whisperies',
              'Test' => '',
-             'Date' => '2019-09-27'],
\ No newline at end of file
+             'Date' => '2019-10-24'],
\ No newline at end of file
diff --git a/VERSIONS_WIP/94557 b/VERSIONS_WIP/94557
index d011948d43b..bde5e5744e7 100644
--- a/VERSIONS_WIP/94557
+++ b/VERSIONS_WIP/94557
@@ -1 +1 @@
- - ticket #94557 : connecteur Whisperies
\ No newline at end of file
+ - ticket #94557 : Bibliothèque numérique : Ajout d'un connecteur Whisperies, des centaines de livres interactifs pour enfants
\ No newline at end of file
diff --git a/library/digital_resources/Whisperies/tests/WhisperiesTest.php b/library/digital_resources/Whisperies/tests/WhisperiesTest.php
index 5d34ccc69ab..bfdc554edb0 100644
--- a/library/digital_resources/Whisperies/tests/WhisperiesTest.php
+++ b/library/digital_resources/Whisperies/tests/WhisperiesTest.php
@@ -23,8 +23,6 @@ class WhisperiesFixtures {
   use Storm_Test_THelpers;
 
   public function prepare() {
-    Class_AdminVar::set('Whisperies_ENABLE', '1');
-
     $whisperies_xml = file_get_contents(__DIR__ . '/export.xml');
     $http_client = $this->mock()
                         ->whenCalled('open_url')
@@ -68,8 +66,8 @@ abstract class WhisperiesActivatedTestCase extends AbstractControllerTestCase {
 
 
 
-class WhisperiesSsoTest extends WhisperiesActivatedTestCase {
 
+class WhisperiesSsoTest extends WhisperiesActivatedTestCase {
   public function setUp() {
     parent::setUp();
     ZendAfi_Auth::getInstance()->logUser($this->_user);
@@ -85,14 +83,26 @@ class WhisperiesSsoTest extends WhisperiesActivatedTestCase {
 
 
   /** @test */
-  public function shouldRedirectToResource() {
+  public function userWithPermissionshouldBeRedirectedToResource() {
     $ticket = (new Class_CasTicket())->getTicketForCurrentUser();
     $this->dispatch('/opac/modules/' . Class_DigitalResource::getInstance()->getSsoActionForPlugin('Whisperies'), true);
 
     $this->assertXPathContentContains('//script',
                                       'https://whisperies.com/mediatheques?ticket='.$ticket,
                                       $this->_response->getBody());
+  }
 
+
+  /** @test */
+  public function userWithRoleInviteShouldNotHaveAccessToModulesWhisperies() {
+    $tom = $this->fixture('Class_Users',
+                                 ['id' => 1,
+                                  'login' => 'Tom',
+                                  'password' => 'pwd']);
+    ZendAfi_Auth::getInstance()->logUser($tom);
+    $this->dispatch('/opac/modules/' . Class_DigitalResource::getInstance()->getSsoActionForPlugin('Whisperies'), true);
+
+    $this->assertFlashMessengerContentContains('Votre compte n\'est pas autorisé à accéder à cette ressource.');
   }
 }
 
@@ -176,55 +186,52 @@ class WhisperiesDashboardActivatedTest extends WhisperiesActivatedTestCase {
 }
 
 
+
+
 class WhisperiesHarvestTest extends AbstractControllerTestCase {
   protected
     $_storm_default_to_volatile = true,
-    $_tom;
+    $_album,
+    $_record;
 
 
   public function setUp() {
     parent::setUp();
     Storm_Cache::beVolatile();
     (new WhisperiesFixtures())->prepare()->harvest();
+    $this->_album = Class_Album::find(1);
+    $this->_album->index();
+    $this->_record = Class_Notice::find(1);
+  }
 
-    Class_Album::find(1)->index();
-    $this->_tom = $this->fixture('Class_Users',
-                                 ['id' => 1,
-                                  'login' => 'Tom',
-                                  'password' => 'pwd']);
-    ZendAfi_Auth::getInstance()->logUser($this->_tom);
+
+  public function recordProperties() {
+    return [['titre_principal', 'Aventure sans pareille d\'une boîte normale de taille moyenne'],
+            ['resume', 'Dans le sixième épisode de la saison 3 des Flashbacks'],
+    ];
   }
 
 
-  /** @test */
-  public function userWithRoleInviteShouldNotHaveAccessToModulesLSQR() {
-    $this->dispatch('/opac/modules/whisperies', true);
-    $this->assertFlashMessengerContentContains('Votre compte n\'est pas autorisé à accéder à cette ressource.');
+  /** @test
+      @dataProvider recordProperties */
+  public function recordPropertyShouldContain($property, $value) {
+    $this->assertContains($value, $this->_record->callGetterByAttributeName($property));
   }
 
 
-  public function keyValues() {
-    return [['Aventure sans pareille d\'une boîte normale de taille moyenne', 'getTitrePrincipal'],
-            ['Dans le sixième épisode de la saison 3 des Flashbacks', 'getResume'],
-            ['Elle contient un trésor', 'getAlbum->getDescription'],
-            ['9782376782834', 'getAlbum->getEan'],
-            ['1', 'getAlbum->getGenre'],
-            ['https://www.whisperies.com/mediatheques/fiche/aventure-sans-pareille-d-une-boite-normale-de-taille-moyenne' ,'getAlbum->getExternalUri'],
-            ['https://www.whisperies.com/medias/stories/13832/1659f6628ba8e76a835d7c893e3e9d8a.png' ,'getAlbum->getPoster']
+  public function albumProperties() {
+    return [['description', 'Elle contient un trésor'],
+            ['ean', '9782376782834'],
+            ['genre', '1'],
+            ['external_uri', 'https://www.whisperies.com/mediatheques/fiche/aventure-sans-pareille-d-une-boite-normale-de-taille-moyenne'],
+            ['poster', 'https://www.whisperies.com/medias/stories/13832/1659f6628ba8e76a835d7c893e3e9d8a.png'],
     ];
   }
 
 
   /** @test
-      @dataProvider keyValues  */
-  public function checkHarvest($key,$value) {
-    $notice = Class_Notice::find(1);
-    if (count($subfunc = explode('->',$value))>1) {
-      $notice = call_user_func([Class_Notice::find(1), $subfunc[0]]);
-      $value = $subfunc[1];
-
-    }
-    $this->assertContains($key,call_user_func([$notice, $value]));
+      @dataProvider albumProperties */
+  public function albumPropertyShouldContain($property, $value) {
+    $this->assertContains($value, $this->_album->callGetterByAttributeName($property));
   }
-
 }
-- 
GitLab