diff --git a/library/Class/WebService/AllServices.php b/library/Class/WebService/AllServices.php index 8edd42e491f54a3b11fe199891859e3c450694a9..691602bcd6b32623bfcec572d68c3b3bbeb5a1fc 100644 --- a/library/Class/WebService/AllServices.php +++ b/library/Class/WebService/AllServices.php @@ -18,116 +18,94 @@ * along with AFI-OPAC 2.0; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -////////////////////////////////////////////////////////////////////////////////////// -// OPAC3 : REPERTOIRE DES WEB_SERVICES -////////////////////////////////////////////////////////////////////////////////////// class Class_WebService_AllServices { const RETOUR_SERVICE_OK = 2; private static $_http_client; - private $services = array - ( - "Amazon" => array - ( - "valeurs" => array("isbn" => "2709624931","auteur" => "zola","page" => "1"), - "services" => array("rend_avis(@isbn,@page)" - ,"rend_analyses(@isbn)" - ,"rend_bibliographies(@isbn)" - ,"rend_livres_auteur(@auteur,@page)" - ,"rend_livres_similaires(@isbn)" - ,"rend_images(@isbn)") - ), - "AmazonSonores" => array - ( - "valeurs" => array("ean" => "0794881405923","asin" => "B00005BH6V","volume" => "1","track" => "1"), - "services" => array("rend_notice_ean(@ean)" - ,"getImages(@ean)") - ), - "AmazonVideo" => array - ( - "valeurs" => array("ean" => "3388334500012"), - "services" => array("rend_notice_ean(@ean)" - ,"getImages(@ean)") - ), - "AmazonCdrom" => array - ( - "valeurs" => array("ean" => "5030931031182"), - "services" => array("rend_notice_ean(@ean)" - ,"getImages(@ean)") - ), - "Lastfm" => array - ( - "valeurs" => array("titre" => "Unplugged","auteur" => "Eric Clapton"), - "services" => array("getAlbum(@titre,@auteur)" - ,"getMorceaux(@titre,@auteur)" - ,"getPhotos(@auteur)" - ,"getDiscographie(@auteur)") - ), - "Premiere" => array - ( - "valeurs" => array("titre" => "avatar"), - "services" => array("get_resume(@titre)" - ,"getImages(@titre)") - ), - "LibraryThing" => array - ( - "valeurs" => array("isbn" => "978-2-07-061239-0"), - "services" => array("rend_isbn_proches(@isbn)") - ), - "Fnac" => array - ( - "valeurs" => array("isbn" => "978-2-7427-6501-0"), - "services" => array("getResume(@isbn)") - ), - "OAI" => array - ( - "valeurs" => array("oai_handler" => 'http://oai.bnf.fr/oai2/OAIHandler', "set" => "gallica"), - "services" => array("getSetsFromHandler(@oai_handler)", - "getRecordsFromHandlerAndSet(@oai_handler, @set)") - ), - "SRU" => array - ( - "valeurs" => array("service_url" => 'http://bvpb.mcu.es/i18n/sru/sru.cmd', "query" => "spain"), - "services" => array("search(@service_url, @query)") - ) - ); - -//------------------------------------------------------------------------------------------------------ -// Lance un service AFI et renvoie le resultat -//------------------------------------------------------------------------------------------------------ - static function runServiceAfiBiographie($args) { + private $services = [ + 'Amazon' => ['valeurs' => ['isbn' => '2709624931', 'auteur' => 'zola', 'page' => '1'], + 'services' => ['rend_avis(@isbn,@page)', + 'rend_analyses(@isbn)', + 'rend_bibliographies(@isbn)', + 'rend_livres_auteur(@auteur,@page)', + 'rend_livres_similaires(@isbn)', + 'rend_images(@isbn)']], + + 'AmazonSonores' => ['valeurs' => ['ean' => '0794881405923', + 'asin' => 'B00005BH6V', + 'volume' => '1', + 'track' => '1'], + 'services' => ['rend_notice_ean(@ean)', 'getImages(@ean)']], + + 'AmazonVideo' => ['valeurs' => ['ean' => '3388334500012'], + 'services' => ['rend_notice_ean(@ean)', 'getImages(@ean)']], + + 'AmazonCdrom' => ['valeurs' => ['ean' => '5030931031182'], + 'services' => ['rend_notice_ean(@ean)', 'getImages(@ean)']], + + 'Lastfm' => ['valeurs' => ['titre' => 'Unplugged', 'auteur' => 'Eric Clapton'], + 'services' => ['getAlbum(@titre,@auteur)', + 'getMorceaux(@titre,@auteur)', + 'getPhotos(@auteur)', + 'getDiscographie(@auteur)']], + + 'Premiere' => ['valeurs' => ['titre' => 'avatar'], + 'services' => ['get_resume(@titre)', 'getImages(@titre)']], + + 'LibraryThing' => ['valeurs' => ['isbn' => '978-2-07-061239-0'], + 'services' => ['rend_isbn_proches(@isbn)']], + + 'Fnac' => ['valeurs' => ['isbn' => '978-2-7427-6501-0'], + 'services' => ['getResume(@isbn)']], + + 'OAI' => ['valeurs' => ['oai_handler' => 'http://oai.bnf.fr/oai2/OAIHandler', + 'set' => 'gallica'], + 'services' => ['getSetsFromHandler(@oai_handler)', + 'getRecordsFromHandlerAndSet(@oai_handler, @set)']], + + 'SRU' => ['valeurs' => ['service_url' => 'http://bvpb.mcu.es/i18n/sru/sru.cmd', + 'query' => 'spain'], + 'services' => ['search(@service_url, @query)']]]; + + + public static function runServiceAfiBiographie($args) { return self::runServiceAfi(8, $args); } - static function runServiceAfiVideo($args) { + public static function runServiceAfiVideo($args) { return self::runServiceAfi(9, $args); } - static function runServiceAfiInterviews($args) { + + public static function runServiceAfiInterviews($args) { return self::runServiceAfi(7, $args); } - static function runServiceAfiUploadVignette($args) { + + public static function runServiceAfiUploadVignette($args) { return self::runServiceAfi(12, $args); } - static function runServiceAfiUploadBiographie($args) { + + public static function runServiceAfiUploadBiographie($args) { return self::runServiceAfi(13, $args); } - static function runServiceGetUrlVignette($args) { + + public static function runServiceGetUrlVignette($args) { return self::runServiceAfi(10, $args); } - static function setHttpClient($client) { + + public static function setHttpClient($client) { self::$_http_client = $client; } - static function uploadVignetteForNotice($url, $id) { + public static function uploadVignetteForNotice($url, $id) { $notice = Class_Notice::find($id); $result = static::runServiceAfiUploadVignette(array_filter(['isbn' => $notice->getIsbn(), 'ean' => $notice->getEan(), @@ -149,7 +127,7 @@ class Class_WebService_AllServices { } - static function uploadBiographieForNotice($url, $id) { + public static function uploadBiographieForNotice($url, $id) { $notice = Class_Notice::find($id); $result = static::runServiceAfiUploadBiographie(array_filter(['url_auteur' => $url, 'clef_oeuvre' => $notice->getClefOeuvre()])); @@ -158,14 +136,14 @@ class Class_WebService_AllServices { } - static function httpGet($url, $args) { + public static function httpGet($url, $args) { if (!isset(self::$_http_client)) self::$_http_client = new Class_WebService_SimpleWebClient(); return self::$_http_client->open_url($url.'?'.http_build_query($args)); } - static function runServiceAfi($service,$args) { + public static function runServiceAfi($service,$args) { if (!$url_service = Class_CosmoVar::get('url_services')) return false; @@ -185,9 +163,6 @@ class Class_WebService_AllServices { } -//------------------------------------------------------------------------------------------------------ -// Test d'un service -//------------------------------------------------------------------------------------------------------ public function testService($id_service,$id_fonction) { if(!$id_service) return false; $instruction="\$cls=new Class_WebService_".$id_service."();"; @@ -215,12 +190,9 @@ class Class_WebService_AllServices { return $ret; } -//------------------------------------------------------------------------------------------------------ -// Liste des services -//------------------------------------------------------------------------------------------------------ - public function getServices() - { + + public function getServices() { return $this->services; } - -} \ No newline at end of file +} +?> \ No newline at end of file diff --git a/tests/application/modules/admin/controllers/ProfilControllerProfilJeunesseAndAdultesWithMenusTest.php b/tests/application/modules/admin/controllers/ProfilControllerProfilJeunesseAndAdultesWithMenusTest.php index ae1ac1ad1ea4aec3016f27c0c50804f121b65863..bbdb811c76c34ba1b50541531437dfdc3286160b 100644 --- a/tests/application/modules/admin/controllers/ProfilControllerProfilJeunesseAndAdultesWithMenusTest.php +++ b/tests/application/modules/admin/controllers/ProfilControllerProfilJeunesseAndAdultesWithMenusTest.php @@ -25,14 +25,19 @@ abstract class ProfilControllerProfilJeunesseAndAdultesWithMenusTestCase extends public function setUp() { parent::setUp(); - $picsou = Class_Article::getLoader() - ->newInstanceWithId(4) - ->setTitre('Picsou fait faillite'); + $picsou = $this->fixture('Class_Article', + ['id' => 4, + 'titre' => 'Picsou fait faillite', + 'contenu' => 'un drame familiale']); + $donald = $this->fixture('Class_Article', + ['id' => 5, + 'titre' => 'Donald a la plage', + 'contenu' => 'des vacances de rêve']); Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Article') ->whenCalled('getArticlesByPreferences') - ->with(array('nb_aff' => '2')) - ->answers(array($picsou)) + ->with(['nb_aff' => '2']) + ->answers([$picsou, $donald]) ->getWrapper() ->whenCalled('filterByLocaleAndWorkflow') @@ -51,6 +56,7 @@ abstract class ProfilControllerProfilJeunesseAndAdultesWithMenusTestCase extends 'picto' => 'vide.gif', 'preferences' => ['url' => 'http://www.google.com', 'target' => 0]], + ['type_menu' => 'NEWS', 'libelle' => 'Actu', 'picto' => 'vide.gif', @@ -175,7 +181,7 @@ class ProfilControllerProfilJeunesseAndAdultesWithMenusTestAccessors extends Pro class ProfilControllerProfilJeunesseAndAdultesWithMenusTestRender extends ProfilControllerProfilJeunesseAndAdultesWithMenusTestCase { public function setUp() { parent::setUp(); - $this->dispatch('/opac?id_profil='.$this->page_musique->getId()); + $this->dispatch('/opac?id_profil=' . $this->page_musique->getId()); } @@ -210,12 +216,26 @@ class ProfilControllerProfilJeunesseAndAdultesWithMenusTestRender extends Profil /** @test */ - public function linkForArticlePicsouShouldBeCmsArticleViewFourAndNamedActu() { - $this->assertXPathContentContains('//a[contains(@href, "cms/articleview/id/4")]', + public function boiteMenuVerticalMenuActuShouldOpenSubmenu() { + $this->assertXPathContentContains('//ul[@class="menuGauche"]/li/a[contains(@onclick, "afficher_sous_menu")]', 'Actu'); } + /** @test */ + public function linkForArticlePicsouShouldBePresent() { + $this->assertXPathContentContains('//a[contains(@href, "cms/articleview/id/4")]', + 'Picsou fait faillite'); + } + + + /** @test */ + public function linkForArticleDonaldShouldBePresent() { + $this->assertXPathContentContains('//a[contains(@href, "cms/articleview/id/5")]', + 'Donald a la plage'); + } + + /** @test */ public function articlesShouldHaveBeenFilterByLocaleAndWorkflow() { $this->assertTrue(Class_Article::getLoader()->methodHasBeenCalled('filterByLocaleAndWorkflow')); diff --git a/tests/application/modules/telephone/controllers/RechercheControllerHarryPotterTest.php b/tests/application/modules/telephone/controllers/RechercheControllerHarryPotterTest.php index dfc848b160ea31f018325a8ce4f3bf2ef870f4e4..35384c3c60a9330d8aec46de01288f9b2f3f9b0a 100644 --- a/tests/application/modules/telephone/controllers/RechercheControllerHarryPotterTest.php +++ b/tests/application/modules/telephone/controllers/RechercheControllerHarryPotterTest.php @@ -244,6 +244,23 @@ class Telephone_RechercheControllerHarryPotterTagsTest extends Telephone_Recherc class Telephone_RechercheControllerHarryPotterBiographieTest extends Telephone_RechercheControllerHarryPotterTestCase { + public function setUp() { + parent::setUp(); + $httpClient = Storm_Test_ObjectWrapper::mock() + ->whenCalled('open_url') + ->answers(json_encode(['biographie' => [['texte' => 'Inspiration et controverse']], + 'source' => 'afi', + 'vignette' => ''])); + Class_WebService_AllServices::setHttpClient($httpClient); + } + + + public function tearDown() { + Class_WebService_AllServices::setHttpClient(null); + parent::tearDown(); + } + + /** * @group longtest * @group integration