Skip to content
Snippets Groups Projects
Commit 8e4395e2 authored by Sebastien ANDRE's avatar Sebastien ANDRE
Browse files

Merge branch 'hotline#181171_pb_au_niveau_de_la_recherche_sur_les_paniers' into 'master'

hotline : #181171 : paginated list now use _ charac

See merge request !4832
parents 07e9cc06 f08a0acc
Branches
Tags
1 merge request!4832hotline : #181171 : paginated list now use _ charac
Pipeline #26099 passed with stage
in 15 minutes and 22 seconds
- correctif #181171 : Magasin de thème : Le filtrage dans les écrans paginé, tient compte maintenant du caractère "_"
\ No newline at end of file
......@@ -23,15 +23,22 @@
class ZendAfi_View_Helper_Template_HideContentForJS
extends ZendAfi_View_Helper_BaseHelper {
public function hideContentForJS($html) {
$text = preg_replace('/(<(script|style|link)\b[^>]*>).*?(<\/\2>)/is', "", $html);
public function hideContentForJS(string $html) : string {
$text = static::cleanHtmlContent($html);
$text = str_replace( '<', ' <', $text);
return $this->_div(['class' => 'hidde_content'], preg_replace('/(\p{P})+/', ' ', $text));
}
$text = strip_tags(html_entity_decode($text));
$text = preg_replace('/(\p{P}|\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf)+/', ' ', $text);
public static function cleanHtmlContent(string $html) : string {
$text = preg_replace('/(<(script|style|link)\b[^>]*>).*?(<\/\2>)/is', '', $html);
$text = str_replace('<', ' <', $text);
$text = strip_tags(html_entity_decode($text));
return $this->_div(['class' => 'hidde_content'], $text);
return preg_replace('/(\t|\n|\v|\f|\r| |\xC2\x85|\xc2\xa0|\xe1\xa0\x8e|\xe2\x80[\x80-\x8D]|\xe2\x80\xa8|\xe2\x80\xa9|\xe2\x80\xaF|\xe2\x81\x9f|\xe2\x81\xa0|\xe3\x80\x80|\xef\xbb\xbf)+/',
' ',
$text);
}
}
......@@ -268,17 +268,29 @@ class Intonation_Library_PaginatedCollectionHelper {
protected function _search($term, $collection) {
$terms = strtolower($term);
$terms = explode(' ', $terms);
return $collection->select(function($wrapper) use ($terms)
{
if ( ! $this->_wakeUp($wrapper->inJsSearch()))
return false;
foreach($terms as $term)
if (false === strpos(strtolower($wrapper->getContentForJSSearch()), $term))
return false;
return $collection
->select(function($wrapper) use ($terms)
{
if ( ! $this->_wakeUp($wrapper->inJsSearch()))
return false;
return true;
});
foreach ($terms as $term)
if ($this->_searchInList($wrapper->getModelDatasForJSSearch(), $term))
return true;
return false;
});
}
protected function _searchInList(array $datas, string $term) : bool {
foreach ($datas as $data)
if (false !== strpos($data,
ZendAfi_View_Helper_Template_HideContentForJS::cleanHtmlContent($term)))
return true;
return false;
}
......
......@@ -161,26 +161,28 @@ abstract class Intonation_Library_View_Wrapper_Abstract {
}
public function formatForSearch() {
return implode(' ', [$this->getMainTitleAsText(),
$this->getSecondaryTitle(),
$this->getDescription()
]);
public function formatForSearch() : string {
return implode(' ', $this->_datasOnModel());
}
public function getContentForJSSearch() {
public function getContentForJSSearch() : string {
return $this->_search_content ??= $this->_in_js_search
? $this->_view->hideContentForJS($this->formatForSearch() . ' %s')
: '';
}
if ($this->_search_content)
return $this->_search_content;
return $this->_search_content = $this->_in_js_search
? $this->_view->hideContentForJS(implode(' ',
[$this->getMainTitleAsText(),
$this->getSecondaryTitle(),
$this->getDescription(),
'%s']))
: '';
public function getModelDatasForJSSearch() : array {
return array_map(fn($data) => strtolower(ZendAfi_View_Helper_Template_HideContentForJS::cleanHtmlContent($data ?? '')),
$this->_datasOnModel());
}
protected function _datasOnModel() : array {
return [$this->getMainTitleAsText(),
$this->getSecondaryTitle(),
$this->getDescription()];
}
......
......@@ -21,13 +21,14 @@
class Intonation_Library_View_Wrapper_Newsletter extends Intonation_Library_View_Wrapper_Abstract {
public function getMainTitle() {
return $this->_model->getTitre();
}
public function getContentForJSSearch() {
if(!$content = parent::getContentForJSSearch())
public function getContentForJSSearch() : string {
if ( ! $content = parent::getContentForJSSearch())
return '';
if ($this->_model->hasRecipient(Class_Users::getIdentity()))
......
......@@ -217,10 +217,10 @@ class Intonation_Library_View_Wrapper_Review extends Intonation_Library_View_Wra
}
public function getContentForJSSearch() {
public function getContentForJSSearch() : string {
return ($content = parent::getContentForJSSearch())
? sprintf($content,
$this->_('%d/5 note étoile avis',$this->_model->getNote()))
$this->_('%d/5 note étoile avis', $this->_model->getNote()))
: '';
}
......
......@@ -22,12 +22,13 @@
require_once 'TemplatesTest.php';
include_once 'tests/fixtures/NanookFixtures.php';
abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTestCase {
protected $_mock_emprunts, $_emprunteur;
public function setUp() {
parent::setUp();
$item = $this->fixture(Class_Exemplaire::class,
['id' => 967,
'code_barres' => 123,
......@@ -155,7 +156,6 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
'libelle' => 'Istres',
'id_origine' => 'IST']);
$this->_emprunteur = new Class_WebService_SIGB_Emprunteur('1234', 'Florence');
$this->_emprunteur
->setLibraryCode('IST')
......@@ -186,7 +186,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
'titre_principal' => 'Blacksad',
'clef_alpha' => 'BLACKSAD']);
$libre_domain = $this->fixture('Class_Catalogue',
$libre_domain = $this->fixture(Class_Catalogue::class,
['id' => 1,
'libelle' => 'Libre']);
......@@ -271,7 +271,6 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
->beStrict();
Zend_Registry::set('sql', $mock);
Class_Loan_Pnb::setTimeSource(new TimeSourceForTest('2017-11-14 10:23:10'));
......@@ -302,11 +301,11 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
'order_line_id' => '584837a045ce56ef0a072a8b']);
$membership = $this->fixture(Class_Membership::class,
[ 'id' => 1,
'code' => 1,
'libelle' => 'Abonné adulte',
'enabled' => 1
]);
[ 'id' => 1,
'code' => 1,
'libelle' => 'Abonné adulte',
'enabled' => 1
]);
$this->fixture(Class_User_Membership::class,
[ 'id' => 1,
......@@ -322,8 +321,10 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
class TemplatesDispatchAbonneLoansTest extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/prets/id_profil/72');
}
......@@ -349,7 +350,9 @@ class TemplatesDispatchAbonneLoansTest extends TemplatesIntonationAccountTestCas
abstract class TemplatesAbonnePaginatedCollectionsTestCase extends TemplatesIntonationAccountTestCase {
abstract class TemplatesAbonnePaginatedCollectionsTestCase
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
......@@ -372,16 +375,14 @@ abstract class TemplatesAbonnePaginatedCollectionsTestCase extends TemplatesInto
class TemplatesAbonnePaginatedLoansPage2Test extends TemplatesAbonnePaginatedCollectionsTestCase {
protected function _getModels() : array {
$cards = new Class_User_Cards(Class_Users::getIdentity());
$loans = $cards->getLoansWithOutPNB([]);
return array_map(function($loan)
{
return (new Intonation_Library_View_Wrapper_Loan)
->setModel($loan)
->setView($this->view);
}, $loans->getArrayCopy());
return array_map(fn($loan) => (new Intonation_Library_View_Wrapper_Loan)
->setModel($loan)
->setView($this->view),
$loans->getArrayCopy());
}
......@@ -397,8 +398,8 @@ class TemplatesAbonnePaginatedLoansPage2Test extends TemplatesAbonnePaginatedCol
class TemplatesAbonnePaginatedReviewsPage2Test extends TemplatesAbonnePaginatedCollectionsTestCase {
class TemplatesAbonnePaginatedReviewsPage2Test
extends TemplatesAbonnePaginatedCollectionsTestCase {
protected function _getModels() : array {
$this->fixture(Class_AvisNotice::class,
......@@ -429,12 +430,10 @@ class TemplatesAbonnePaginatedReviewsPage2Test extends TemplatesAbonnePaginatedC
['id' => 3,
'clef_oeuvre' => 'PSYKOTIC']);
return array_map(function($review)
{
return (new Intonation_Library_View_Wrapper_ReviewsByRecord)
->setModel($review)
->setView($this->view);
}, Class_AvisNotice::groupByRecords(Class_AvisNotice::findAll()));
return array_map(fn($review) => (new Intonation_Library_View_Wrapper_ReviewsByRecord)
->setModel($review)
->setView($this->view),
Class_AvisNotice::groupByRecords(Class_AvisNotice::findAll()));
}
......@@ -484,18 +483,17 @@ class TemplatesAbonnePaginatedReviewsPage2Test extends TemplatesAbonnePaginatedC
class TemplatesAbonnePaginatedLoansPage1AndSearchTest extends TemplatesAbonnePaginatedCollectionsTestCase {
class TemplatesAbonnePaginatedLoansPage1AndSearchTest
extends TemplatesAbonnePaginatedCollectionsTestCase {
protected function _getModels() : array {
$cards = new Class_User_Cards(Class_Users::getIdentity());
$loans = $cards->getPNBLoans([]);
return array_map(function($loan)
{
return (new Intonation_Library_View_Wrapper_PNBLoan)
->setModel($loan)
->setView($this->view);
}, $loans->getArrayCopy());
return array_map(fn($loan) => (new Intonation_Library_View_Wrapper_PNBLoan)
->setModel($loan)
->setView($this->view),
$loans->getArrayCopy());
}
......@@ -528,8 +526,8 @@ class TemplatesAbonnePaginatedLoansPage1AndSearchTest extends TemplatesAbonnePag
class TemplateAbonnePaginatedCollectionWithNoResultTest extends TemplatesAbonnePaginatedLoansPage2Test {
class TemplateAbonnePaginatedCollectionWithNoResultTest
extends TemplatesAbonnePaginatedLoansPage2Test {
protected function _dispatch(Intonation_Library_PaginatedCollectionHelper $helper) {
$this->dispatch('/opac/index/ajax-paginated-list/size/1/page/1/search/no+data/id/'
......@@ -555,6 +553,7 @@ class TemplateAbonnePaginatedCollectionWithNoResultTest extends TemplatesAbonneP
class TemplatesAbonneDispatchAjaxLoansTest extends TemplatesIntonationAccountTestCase {
public function setUp(){
parent::setUp();
......@@ -608,9 +607,12 @@ class TemplatesAbonneDispatchAjaxLoansTest extends TemplatesIntonationAccountTes
abstract class TemplatesAbonneDispatchWithILSChildCardTestCase extends TemplatesIntonationAccountTestCase {
abstract class TemplatesAbonneDispatchWithILSChildCardTestCase
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
$user =
$this->fixture(Class_Users::class,
['id' => 42,
......@@ -666,7 +668,10 @@ abstract class TemplatesAbonneDispatchWithILSChildCardTestCase extends Templates
class TemplatesAbonneDispatchsWithILSChildCardFailuresTest extends TemplatesAbonneDispatchWithILSChildCardTestCase {
class TemplatesAbonneDispatchsWithILSChildCardFailuresTest
extends TemplatesAbonneDispatchWithILSChildCardTestCase {
/** @test */
public function WithOrdreabonn1LoanlistTitleShouldNotContainsBeartEnPublic() {
Class_Users::find(42)->setOrdreabon(1);
......@@ -688,7 +693,7 @@ class TemplatesAbonneDispatchsWithILSChildCardFailuresTest extends TemplatesAbon
/** @test
ChildCard is based on same Idabon
ChildCard is based on same Idabon
*/
public function withDifferentIdabonForCurrentUserloanlistShouldNotContainsBeartEnPublic() {
Class_Users::getIdentity()->setIdabon(42);
......@@ -700,7 +705,7 @@ class TemplatesAbonneDispatchsWithILSChildCardFailuresTest extends TemplatesAbon
/** @test
ChildCard Only Displayed for Master Card
ChildCard Only Displayed for Master Card
*/
public function withDifferentOrdreabonForCurrentUserloanlistShouldNotContainsBeartEnPublic() {
Class_Users::getIdentity()->setOrdreabon(42);
......@@ -732,9 +737,12 @@ class TemplatesAbonneDispatchsWithILSChildCardFailuresTest extends TemplatesAbon
class TemplatesAbonneDispatchAjaxLoansWithILSChildCardTest extends TemplatesAbonneDispatchWithILSChildCardTestCase {
class TemplatesAbonneDispatchAjaxLoansWithILSChildCardTest
extends TemplatesAbonneDispatchWithILSChildCardTestCase {
public function setUp(){
parent::setUp();
$this->dispatch('/opac/abonne/ajax-loans/id_profil/72');
}
......@@ -756,10 +764,12 @@ class TemplatesAbonneDispatchAjaxLoansWithILSChildCardTest extends TemplatesAbon
class TemplatesAbonneDispatchReservationWithILSChildCardTest
extends TemplatesAbonneDispatchWithILSChildCardTestCase {
class TemplatesAbonneDispatchReservationWithILSChildCardTest extends TemplatesAbonneDispatchWithILSChildCardTestCase {
public function setUp(){
parent::setUp();
$this->dispatch('/opac/abonne/reservations/id_profil/72');
}
......@@ -782,6 +792,7 @@ class TemplatesAbonneDispatchReservationWithILSChildCardTest extends TemplatesAb
class TemplatesAbonneDispatchMonHistoriqueTest extends TemplatesIntonationAccountTestCase {
public function setUp(){
parent::setUp();
......@@ -830,7 +841,6 @@ class TemplatesAbonneDispatchMonHistoriqueTest extends TemplatesIntonationAccoun
}
/** @test */
public function pageShouldDisplayTitleMonHistoriqueDePrets() {
$this->assertXPathContentContains('//h2//span', 'Mon historique de prêts');
......@@ -841,6 +851,7 @@ class TemplatesAbonneDispatchMonHistoriqueTest extends TemplatesIntonationAccoun
class TemplatesAbonneDispatchLoansWithHistoryTest extends TemplatesIntonationAccountTestCase {
public function setUp(){
parent::setUp();
......@@ -887,7 +898,6 @@ class TemplatesAbonneDispatchLoansWithHistoryTest extends TemplatesIntonationAcc
$this->_emprunteur->setService($this->_mock_emprunts);
$this->dispatch('/opac/abonne/ajax-loans/history/1/id_profil/72');
}
......@@ -914,6 +924,7 @@ class TemplatesAbonneDispatchLoansWithHistoryTest extends TemplatesIntonationAcc
class TemplatesAbonneDispatchHoldsTest extends TemplatesIntonationAccountTestCase {
public function setUp(){
parent::setUp();
......@@ -962,6 +973,7 @@ class TemplatesAbonneDispatchHoldsTest extends TemplatesIntonationAccountTestCas
class TemplatesAbonneDispatchLargeNumberOfHoldsTest extends TemplatesIntonationAccountTestCase {
public function setUp(){
parent::setUp();
......@@ -1106,6 +1118,7 @@ class TemplatesAbonneDispatchConfigurationsTest extends TemplatesIntonationAccou
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/configurations/id_profil/72');
}
......@@ -1124,7 +1137,9 @@ class TemplatesAbonneDispatchConfigurationsTest extends TemplatesIntonationAccou
class TemplatesAbonneDispatchDonnerDesAvisTest extends TemplatesIntonationAccountTestCase {
/** @test */
public function donnerDesAvisShouldBeDisplay() {
$this->dispatch('/opac/abonne/donner-des-avis/id_profil/72');
......@@ -1138,12 +1153,13 @@ class TemplatesAbonneDispatchDonnerDesAvisTest extends TemplatesIntonationAccoun
class TemplatesAbonneDispatchSuivreUneRechercheTest
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
$this->onLoaderOfModel('Class_TypeDoc')
->whenCalled('findUsedTypeDocIds')
->answers([]);
$this->dispatch('/opac/abonne/suivre-une-recherche/id_profil/72');
}
......@@ -1164,8 +1180,10 @@ class TemplatesAbonneDispatchSuivreUneRechercheTest
class TemplatesAbonneAccountWithInterdireModifTest extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_AdminVar::set('INTERDIRE_MODIF_FICHE_ABONNE', '1');
}
......@@ -1212,6 +1230,7 @@ class TemplatesAbonneAccountWithInterdireModifTest extends TemplatesIntonationAc
class TemplatesAbonneAccountFieldsTest extends TemplatesIntonationAccountTestCase {
public function fields() {
return [['nom', 'dev'], ['prenom', 'dev'], ['pseudo', 'dev'],
['adresse', '5 av du paradis'], ['code_postal', '89399'], ['ville', 'soucy'],
......@@ -1221,6 +1240,7 @@ class TemplatesAbonneAccountFieldsTest extends TemplatesIntonationAccountTestCas
['mode_contact', Class_Users::MODE_CONTACT_SMS]];
}
/**
* @test
* @dataProvider fields
......@@ -1280,6 +1300,7 @@ class TemplatesAbonneAccountFieldsTest extends TemplatesIntonationAccountTestCas
class TemplatesAbonneAccountEditTest extends TemplatesIntonationAccountTestCase {
/** @test */
public function editAccountLinkShouldBePresent() {
$this->dispatch('/opac/abonne/fiche/id_profil/72');
......@@ -1374,8 +1395,10 @@ class TemplatesAbonneAccountEditTest extends TemplatesIntonationAccountTestCase
class TemplatesAbonneDispatchAccountTest extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_FileManager::setFileSystem(null);
$this->dispatch('/opac/abonne/fiche/id_profil/72');
......@@ -1392,8 +1415,7 @@ class TemplatesAbonneDispatchAccountTest extends TemplatesIntonationAccountTestC
public function paulProfileImageShouldBeReadBlack() {
$this->assertXpath('//img[@src="'
. Class_Url::relative("/public/opac/images/abonnes/read_black.png")
. '"]',
$this->_response->getBody());
. '"]');
}
......@@ -1579,6 +1601,7 @@ class TemplatesAbonneInformationsTest extends TemplatesIntonationAccountTestCase
class TemplatesAbonneDispatchClearHistoryTest extends TemplatesIntonationAccountTestCase {
/** @test */
public function shouldRedirect() {
$this->dispatch('/opac/abonne/clear-history/id_profil/72');
......@@ -1590,8 +1613,10 @@ class TemplatesAbonneDispatchClearHistoryTest extends TemplatesIntonationAccount
class TemplatesAbonneDispatchCardsTest extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/cards/id_profil/72');
}
......@@ -1603,11 +1628,13 @@ class TemplatesAbonneDispatchCardsTest extends TemplatesIntonationAccountTestCas
}
class TemplatesAbonneDispatchPagesTest extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp() {
parent::setUp();
$this->_buildTemplateProfil(['id' => 200]);
$conf = (new Class_Systeme_Widget_Action)
......@@ -1642,9 +1669,8 @@ class TemplatesAbonneDispatchPagesTest extends AbstractControllerTestCase {
class TemplatesAbonneWithPNBHoldsTest extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
class TemplatesAbonneWithPNBHoldsTest extends AbstractControllerTestCase {
public function setUp() {
parent::setUp();
......@@ -1674,14 +1700,14 @@ class TemplatesAbonneWithPNBHoldsTest extends AbstractControllerTestCase {
ZendAfi_Auth::getInstance()->logUser($logged_user);
RessourcesNumeriquesFixtures::activateDilicom();
$this->fixture('Class_Album',
$this->fixture(Class_Album::class,
['id' => 37,
'id_origine' => 'Dilicom-88817216',
'titre' => 'Les jardins'
]);
foreach(range(1, 3) as $index)
$this->fixture('Class_Hold_Pnb',
$this->fixture(Class_Hold_Pnb::class,
['id' => $index,
'user_id' => 6,
'record_origin_id' => 'Dilicom-88817216',
......@@ -1727,15 +1753,13 @@ class TemplatesAbonneWithPNBHoldsTest extends AbstractControllerTestCase {
class TemplatesAbonneSearchHistoryTest extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp() {
parent::setUp();
$this->_buildTemplateProfil(['id' => 9]);
$searcher = $this->fixture('Class_Users',
$searcher = $this->fixture(Class_Users::class,
['id' => 1,
'login' => 'Searcher',
'password' => 'secret',
......@@ -1771,7 +1795,6 @@ class TemplatesAbonneSearchHistoryTest extends AbstractControllerTestCase {
class TemplatesAbonneEditActionFicheTest extends Admin_AbstractControllerTestCase {
public function setUp() {
parent::setUp();
......@@ -1783,7 +1806,6 @@ class TemplatesAbonneEditActionFicheTest extends Admin_AbstractControllerTestCas
'fiche')),
[Intonation_Library_View_Wrapper_User_RichContent_Agenda::class => '0']);
$this->dispatch('/admin/widget/edit-action/id/abonne_fiche/id_profil/19');
}
......@@ -1805,10 +1827,6 @@ class TemplatesAbonneEditActionFicheTest extends Admin_AbstractControllerTestCas
class TemplatesAbonneAgendaDisabledTest extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp() {
parent::setUp();
......@@ -1843,6 +1861,7 @@ class TemplatesAbonneAgendaDisabledTest extends AbstractControllerTestCase {
class TemplatesAbonneJumbotronLoansTest extends TemplatesIntonationAccountTestCase {
/** @test */
public function abonneHasLoanShouldRenderScript() {
$this->dispatch('/abonne/has-loan/id_profil/72');
......@@ -1857,8 +1876,6 @@ require_once __DIR__ . '/../../fixtures/KohaFixtures.php';
abstract class TemplatesAbonneKohaAjaxLoansTestCase extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp() {
parent::setUp();
......@@ -1938,9 +1955,6 @@ abstract class TemplatesAbonneKohaAjaxLoansTestCase extends AbstractControllerTe
class TemplatesAbonneKohaAjaxLoansTest extends TemplatesAbonneKohaAjaxLoansTestCase {
protected $_storm_default_to_volatile = true;
public function _prepareResponse() {
$this->mock_web_client
->whenCalled('open_url')
......@@ -1958,7 +1972,8 @@ class TemplatesAbonneKohaAjaxLoansTest extends TemplatesAbonneKohaAjaxLoansTestC
class TemplatesAbonneKohaAjaxLoansHistoryMoreThan20Test extends TemplatesAbonneKohaAjaxLoansTestCase {
class TemplatesAbonneKohaAjaxLoansHistoryMoreThan20Test
extends TemplatesAbonneKohaAjaxLoansTestCase {
public function _prepareResponse() {
$this->mock_web_client
......@@ -1991,7 +2006,8 @@ class TemplatesAbonneKohaAjaxLoansHistoryMoreThan20Test extends TemplatesAbonneK
class TemplatesAbonneKohaAjaxLoansHistoryFourItemsTest extends TemplatesAbonneKohaAjaxLoansTestCase {
class TemplatesAbonneKohaAjaxLoansHistoryFourItemsTest
extends TemplatesAbonneKohaAjaxLoansTestCase {
public function _prepareResponse() {
$this->mock_web_client
......@@ -2009,7 +2025,7 @@ class TemplatesAbonneKohaAjaxLoansHistoryFourItemsTest extends TemplatesAbonneKo
/** @test */
public function bodyShouldContainsCarousel() {
$this->assertXPath('//div[contains(@class,"carousel slide")]',$this->_response->getBody());
$this->assertXPath('//div[contains(@class,"carousel slide")]');
}
......@@ -2024,10 +2040,6 @@ class TemplatesAbonneKohaAjaxLoansHistoryFourItemsTest extends TemplatesAbonneKo
abstract class TemplatesAbonneCacheTestCase extends AbstractControllerTestCase {
protected $_storm_default_to_volatile = true;
public function setUp(){
parent::setUp();
......@@ -2039,13 +2051,13 @@ abstract class TemplatesAbonneCacheTestCase extends AbstractControllerTestCase {
'comm_params' => ['url_serveur' => 'http://localhost']]);
$user = $this->fixture(Class_Users::class,
['id' => 3,
'login' => 'patron',
'password' => 'patron',
'id_int_bib' => 1,
'id_site' => 1,
'idabon' => '007',
'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]);
['id' => 3,
'login' => 'patron',
'password' => 'patron',
'id_int_bib' => 1,
'id_site' => 1,
'idabon' => '007',
'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]);
$cache = $this
->mock()
......@@ -2083,6 +2095,7 @@ class TemplatesAbonneCacheReservationsTest extends TemplatesAbonneCacheTestCase
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/reservations');
}
}
......@@ -2094,6 +2107,7 @@ class TemplatesAbonneCacheFicheTest extends TemplatesAbonneCacheTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/fiche');
}
}
......@@ -2105,6 +2119,7 @@ class TemplatesAbonneCachePretsTest extends TemplatesAbonneCacheTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/prets');
}
}
......@@ -2116,6 +2131,7 @@ class TemplatesAbonneCacheLoansHistoryTest extends TemplatesAbonneCacheTestCase
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/loans-history');
}
}
......@@ -2127,6 +2143,7 @@ class TemplatesAbonneCacheAjaxLoansTest extends TemplatesAbonneCacheTestCase {
public function setUp() {
parent::setUp();
$this->dispatch('/opac/abonne/ajax-loans');
}
}
......@@ -2162,7 +2179,8 @@ class TemplatesAbonneCacheSuggestionsTest extends TemplatesAbonneCacheTestCase {
class TemplatesAbonnePaginatedReviewsSearchConsRoiTest extends TemplatesAbonnePaginatedReviewsPage2Test {
class TemplatesAbonnePaginatedReviewsSearchConsRoiTest
extends TemplatesAbonnePaginatedReviewsPage2Test {
protected function _dispatch(Intonation_Library_PaginatedCollectionHelper $helper) {
$this->dispatch('/opac/index/ajax-paginated-list/page/1/render/ajax/size/3/search/cons+roi/id/' . $helper->getId());
......@@ -2196,8 +2214,8 @@ class TemplatesAbonnePaginatedReviewsSearchConsRoiTest extends TemplatesAbonnePa
class TemplatesAbonnePaginatedReviewsSearchConsRoiPage2Test extends TemplatesAbonnePaginatedReviewsPage2Test {
class TemplatesAbonnePaginatedReviewsSearchConsRoiPage2Test
extends TemplatesAbonnePaginatedReviewsPage2Test {
protected function _dispatch(Intonation_Library_PaginatedCollectionHelper $helper) {
$this->dispatch('/opac/index/ajax-paginated-list/page/2/render/ajax/size/1/search/cons+roi/id/' . $helper->getId());
......@@ -2214,8 +2232,10 @@ class TemplatesAbonnePaginatedReviewsSearchConsRoiPage2Test extends TemplatesAbo
class TemplatesDispatchAbonneUserMembershipTest extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_AdminVar::set('TEMPLATING', 1);
$this->fixture(Class_Membership::class,
......@@ -2230,10 +2250,9 @@ class TemplatesDispatchAbonneUserMembershipTest extends TemplatesIntonationAccou
'libelle' => 'Bouquets numériques',
'enabled' => 1]);
$user = Class_Users::getIdentity();
$this->fixture(Class_User_Membership::class,
$this->fixture(Class_User_Membership::class,
['id' => 4,
'membership_id' => 1,
'user' => $user,
......@@ -2266,6 +2285,7 @@ class TemplatesDispatchAbonneUserMembershipTest extends TemplatesIntonationAccou
$this->dispatch('/opac/abonne');
}
/** @test */
public function pageShouldContainsAbonnements() {
$this->assertXPathContentContains('//dt[contains(@class,"user_info")]', 'Abonnements');
......@@ -2301,9 +2321,14 @@ class TemplatesDispatchAbonneUserMembershipTest extends TemplatesIntonationAccou
}
class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementTest extends TemplatesIntonationAccountTestCase {
class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementTest
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_FileManager::setFileSystem(null);
Class_User_ILSSubscription::setTimesource(new TimeSourceForTest('2022-01-01'));
......@@ -2324,7 +2349,8 @@ class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementTest extends Temp
$this->dispatch('/opac/abonne/fiche/id_profil/72');
}
public function tearDown(){
public function tearDown() {
Class_User_ILSSubscription::setTimesource(null);
parent::tearDown();
}
......@@ -2344,9 +2370,13 @@ class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementTest extends Temp
class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementExpiredButUniqueTest extends TemplatesIntonationAccountTestCase {
class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementExpiredButUniqueTest
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_FileManager::setFileSystem(null);
Class_User_ILSSubscription::setTimesource(new TimeSourceForTest('2022-01-01'));
......@@ -2354,7 +2384,8 @@ class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementExpiredButUniqueT
$this->dispatch('/opac/abonne/fiche/id_profil/72');
}
public function tearDown(){
public function tearDown() {
Class_User_ILSSubscription::setTimesource(null);
parent::tearDown();
}
......@@ -2369,9 +2400,12 @@ class TemplatesAbonneDispatchFicheWithMembershipBadgeAbonnementExpiredButUniqueT
class TemplatesAbonneDispatchFicheBadgeAbonnementWithoutMembershipsTest extends TemplatesIntonationAccountTestCase {
class TemplatesAbonneDispatchFicheBadgeAbonnementWithoutMembershipsTest
extends TemplatesIntonationAccountTestCase {
public function setUp() {
parent::setUp();
Class_FileManager::setFileSystem(null);
Class_User_Membership::deleteBy([]);
......@@ -2381,7 +2415,8 @@ class TemplatesAbonneDispatchFicheBadgeAbonnementWithoutMembershipsTest extends
$this->dispatch('/opac/abonne/fiche/id_profil/72');
}
public function tearDown(){
public function tearDown() {
Class_User_ILSSubscription::setTimesource(null);
parent::tearDown();
}
......@@ -2398,3 +2433,71 @@ class TemplatesAbonneDispatchFicheBadgeAbonnementWithoutMembershipsTest extends
$this->assertXPathContentContains('//span[contains(@class,"badge_tag")]//span[contains(@class,"sr-only")]',"Vous êtes abonné(e) jusqu'au");
}
}
/* hotline : https://forge.afi-sa.net/issues/181171 */
class TemplatesAbonnePaginatedReviewsSearchWithEnteteUnderscoreTest
extends TemplatesAbonnePaginatedCollectionsTestCase {
protected function _getModels() : array {
$this->fixture(Class_AvisNotice::class,
['id' => 4,
'id_user' => 666,
'id_notice' => 2,
'clef_oeuvre' => 'PSYKO',
'note' => '4',
'entete' => 'test sur le libéllé',
'avis' => 'test sur le libéllé complet',
'source_author' => null]);
$this->fixture(Class_AvisNotice::class,
['id' => 5,
'id_user' => 666,
'id_notice' => 3,
'clef_oeuvre' => 'PSYKO',
'note' => '4',
'entete' => 'cest_un_Test',
'avis' => 'Cest Un Test De Recherche JS',
'source_author' => null]);
$this->fixture(Class_Notice::class,
['id' => 2,
'clef_oeuvre' => 'PSYKO']);
$this->fixture(Class_Notice::class,
['id' => 3,
'clef_oeuvre' => 'PSYKOTIC']);
return array_map(fn($review) => (new Intonation_Library_View_Wrapper_ReviewsByRecord)
->setModel($review)
->setView($this->view),
Class_AvisNotice::groupByRecords(Class_AvisNotice::findAll()));
}
protected function _dispatch(Intonation_Library_PaginatedCollectionHelper $helper) {
$this->dispatch('/opac/index/ajax-paginated-list/search/_test/id/'
. $helper->getId());
}
/** @test */
public function inputSearchShouldHaveValueEqualToSearchUrlParam() {
$this->assertXPath('//div//form//input[contains(@class, "ajax_search")][@value="_test"]');
}
/** @test */
public function shouldContainsReviewWithContentAvecSaCouronne() {
$this->assertXPathContentContains('//div[contains(@class,"card_body_Intonation_Library_View_Wrapper_ReviewInRecord")]',
'Test De Recherche');
}
/** @test */
public function reviewNumberShouldBeOneOnly() {
$this->assertXPathCount('//div[contains(@class, "card_body_Intonation_Library_View_Wrapper_ReviewInRecord")]', 1);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment