Newer
Older

llaffont
committed
<?php
/**
* Copyright (c) 2012, Agence Française Informatique (AFI). All rights reserved.
*
* AFI-OPAC 2.0 is free software; you can redistribute it and/or modify
* it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
* the Free Software Foundation.
*
* There are special exceptions to the terms and conditions of the AGPL as it
* is applied to this software (see README file).
*
* AFI-OPAC 2.0 is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
* 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

llaffont
committed
*/
require_once 'AbstractControllerTestCase.php';
class JavaControllerWidthDefaultKiosqueTest extends AbstractControllerTestCase {

llaffont
committed
public function setUp() {
parent::setUp();
$cfg_accueil = ['modules' => ['1' => ['division' => 1,
'type_module' => 'KIOSQUE']],

llaffont
committed

llaffont
committed
$this->profil_cache = Class_Profil::getLoader()->newInstanceWithId(5345)
->setBrowser('opac')
->setLibelle('Profil cache')
->setCfgAccueil($cfg_accueil);
Class_Profil::setCurrentProfil(Class_Profil::getLoader()->newInstanceWithId(2)
->setLibelle('Accueil'));
$_SESSION['id_profil'] = 2;

llaffont
committed
$this->dispatch('java/kiosque?id_module=1&id_profil=5345', true);

llaffont
committed
}
/** @test */
public function sessionIdProfilShouldBeProfil2() {
$this->assertEquals(2, $_SESSION['id_profil']);
}
/** @test */
public function vueShouldDefaultsToDiaporama() {
$this->assertXPath('//script[contains(@src, "diaporama")]');
}
}
class JavaControllerCarrouselHorizontalTest extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
$this->fixture('Class_Profil',
['id' => 3,
'browser' => 'opac',
'libelle' => 'kiosque test',
'cfg_accueil' => ['modules' => ['1' => ['division' => 1,
'type_module' => 'KIOSQUE',
'titre' => '',
'vue' => 'mycarousel_horizontal',
'preferences' => ['op_speed' => 400]]],
'options' => []]])
->beCurrentProfil();
Storm_Test_ObjectWrapper::onLoaderOfModel('Class_Catalogue')
->whenCalled('getNoticesByPreferences')
->answers([
['id_notice' => 4,
'titre' => 'Madagascar',
'vignette' => 'http://thumbnail.com/madagascar.jpg'
]
]);
$this->dispatch('java/kiosque/id_module/1/titre/title+%2F+with+some+%2F+slashes/vue/mycarousel_horizontal', true);
}
/** @test */
public function titleShouldBeRemovedBecauseOfPossibleApacheMisconfigurationOfAllowEncodedSlashes() {
$this->assertXPath('//div[@class="jMyCarousel"]//a[@href="/recherche/viewnotice/id_module/1/vue/mycarousel_horizontal/id/4"]');
}
/** @test */
public function jMyCarouselShouldBeLoaded() {
$this->assertContains('jMyCarousel', $this->_response->getBody());
class JavaControllerWithKiosqueMurPageTest extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
$cfg_accueil = ['modules' => ['1' => ['division' => 1,
'type_module' => 'KIOSQUE',
'preferences' => ['style_liste' => 'mur',
'nb_notices' => 10,
'nb_analyse' => 50]]]];
Class_Profil::getCurrentProfil()->setCfgAccueil($cfg_accueil);
$this->dispatch('java/page/no/2/id_module/1', true);
}
/** @test */
public function firstControlShouldLinkToPageOne() {
$this->assertXPath('//div[@class="controls"]/a[1][contains(@href, "java/page/no/1/id_module/1")]');
}
/** @test */
public function lastControlShouldLinkToPageThree() {
$this->assertXPath('//div[@class="controls"]/a[2][contains(@href, "java/page/no/3/id_module/1")]');
}
}
class JavaControllerWithKiosqueMurAndPanierDeletedTest extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
$cfg_accueil = ['modules' => ['1' => ['division' => 1,
'type_module' => 'KIOSQUE',
'preferences' => ['style_liste' => 'mur',
'id_panier' => 99999,
'nb_notices' => 10,
'nb_analyse' => 50,
'titre' => 'Mon panier']]]];
Class_Profil::getCurrentProfil()->setCfgAccueil($cfg_accueil);
$this->dispatch('/', true);
}
/** @test */
public function titreMonPanierShouldBeDisplayed() {
$this->assertXPathContentContains('//h1', 'Mon panier', $this->_response->getBody());
}
}
class JavaControllerKiosqueSlideShowWidthWrongParamsTest extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
$cfg_accueil = ['modules' => ['1' => ['division' => 1,
'type_module' => 'MENU']],
'options' => []];
$this->profil = Class_Profil::newInstanceWithId(5345, ['browser' => 'opac',
'libelle' => 'Profil cache',
'cfg_acceuil' => $cfg_accueil]);
$this->mock_sql = Storm_Test_ObjectWrapper::mock();
Zend_Registry::set('sql', $this->mock_sql);
$this->mock_sql
->whenCalled('fetchAll')
->with("select notices.id_notice, notices.editeur, notices.annee, notices.date_creation, notices.date_maj, notices.facettes, notices.clef_oeuvre from notices where url_vignette > '' and url_vignette != 'NO' order by date_creation DESC LIMIT 0,50",
false)
->answers([])
->beStrict();
$this->dispatch('java/kiosque?id_module=1&id_profil=5345', true);
}
/** @test */
public function vueShouldDefaultsToDiaporama() {
$this->assertXPathContentContains('//script', 'slideshow');
}
}