diff --git a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php index 0e3b84951b55e6b5d46f2632c7cd8d75f9ef668c..40efd339f5206009ee2e8dd2d4c24c5c44cbdf8d 100644 --- a/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php +++ b/tests/application/modules/opac/controllers/BibNumeriqueControllerTest.php @@ -1016,4 +1016,115 @@ class BibNumeriqueControllerFullScreenEpubTest extends BibNumeriqueControllerAlb } } + + + +class BibNumeriqueControllerWithAlbumCategoriesTestCase extends AbstractControllerTestCase { + public function setUp() { + parent::setUp(); + + $this->fixture('Class_AlbumCategorie', + ['id' => 99, 'libelle' => 'All the sitos']); + + $this->fixture('Class_AlbumCategorie', + ['id' => 30, 'parent_id' => 99, 'libelle' => 'Cours']); + + $this->fixture('Class_AlbumCategorie', + ['id' => 102, 'libelle' => 'Dossiers numeriques']); + + $this + ->fixture('Class_Album', + ['id' => 8, + 'titre' => 'Online courses', + 'cat_id' => 30, + 'status' => Class_Album::STATUS_VALIDATED, + 'type_doc_id' => Class_TypeDoc::WEBSITE, + 'ressources' => [$this->fixture('Class_AlbumRessource', + ['id' => 32, + 'titre' => 'Coursera', + 'url' => 'http://bokeh-library-portal.org/'])]]); + + + + $this + ->fixture('Class_Album', + ['id' => 8, + 'titre' => 'Free Projects', + 'cat_id' => 99, + 'status' => Class_Album::STATUS_VALIDATED, + 'type_doc_id' => Class_TypeDoc::WEBSITE, + 'ressources' => [$this->fixture('Class_AlbumRessource', + ['id' => 3, + 'titre' => 'Bokeh', + 'url' => 'http://bokeh-library-portal.org/']), + + $this->fixture('Class_AlbumRessource', + ['id' => 42, + 'titre' => 'Koha', + 'url' => 'https://koha-community.org/']), + + $this->fixture('Class_AlbumRessource', + ['id' => 43, + 'titre' => '', + 'url' => 'https://krita.org/']), + ]]); + + + $this + ->fixture('Class_Album', + ['id' => 12, + 'titre' => 'Dossiers', + 'cat_id' => 102, + 'status' => Class_Album::STATUS_VALIDATED, + 'type_doc_id' => Class_TypeDoc::WEBSITE, + 'ressources' => [$this->fixture('Class_AlbumRessource', + ['id' => 10, + 'titre' => 'Linux FR', + 'url' => 'http://linuxfr.org/'])]]); + + Class_Profil::getCurrentProfil() + ->setCfgAccueil([ + 'modules' => [ + '1' => [ + 'division' => '2', + 'type_module' => 'BIB_NUMERIQUE', + 'preferences' => ['titre' => 'Documentaires', + 'id_categorie' => '99-102', + 'nb_aff_by_page' => 1, + 'display_order' => 'Selection', + 'type_aff' => Class_Systeme_ModulesAccueil_BibliothequeNumerique::DISPLAY_PAGINATED] + ] + ], + 'options' => []]); + } +} + + + +class BibNumeriqueControllerPaginationTest extends BibNumeriqueControllerWithAlbumCategoriesTestCase { + public function setUp() { + parent::setUp(); + + $this->dispatch('/bib-numerique/widget-page/id_module/1/id_division/2/page/2', true); + } + + + /** @test */ + public function linuxFrShouldBeVisible() { + $this->assertXPath('//div[@class="contenu"]//div[@class="sitotheque"]//a[@href="http://linuxfr.org/"]', + $this->_response->getBody()); + } + + + /** @test */ + public function page1LinkShouldBePresent() { + $this->assertXPathContentContains('//div[@class="paginationControl"]//a[contains(@href, "/page/1")]', '1', $this->_response->getBody()); + } + + + /** @test */ + public function suivantLinkShouldNotBePresent() { + $this->assertXPathContentContains('//div[@class="paginationControl"]//span[@class="disabled"]', 'Suivant', $this->_response->getBody()); + } +} ?> \ No newline at end of file