diff --git a/VERSIONS_WIP/151167 b/VERSIONS_WIP/151167 new file mode 100644 index 0000000000000000000000000000000000000000..594b5e2487d0aa9c229ba29bce854d4b7d5f8160 --- /dev/null +++ b/VERSIONS_WIP/151167 @@ -0,0 +1 @@ + - fonctionnalité #151167 : recherche avancée : amélioration de l'ergonomie du composant de recherche dans les codifications \ No newline at end of file diff --git a/application/modules/opac/controllers/AuthoritySuggestController.php b/application/modules/opac/controllers/AuthoritySuggestController.php index 370c67d5d1115ea3ad9e6a77f5407bfc268a9834..a930c95fbbba5b180de255e2de5ac4f0f1aa084c 100644 --- a/application/modules/opac/controllers/AuthoritySuggestController.php +++ b/application/modules/opac/controllers/AuthoritySuggestController.php @@ -35,7 +35,7 @@ class AuthoritySuggestController extends ZendAfi_Controller_Action { return; } - $id_champ = $this->_getParam('id_champ'); + $id_champ = $this->_getParam('id_champ', ''); $mode_recherche = $this->_getParam('mode'); $limite_resultat = 100; @@ -43,13 +43,26 @@ class AuthoritySuggestController extends ZendAfi_Controller_Action { ? $authority::getListeSuggestion($recherche, $mode_recherche, $limite_resultat, $id_champ) : $authority::getListeSuggestion($recherche, $mode_recherche, $limite_resultat); - if (!$liste) { - echo ''; - return; - } + echo $this->_renderTagList($liste, $id_champ); + } + + + protected function _renderTagList(array $liste, string $id_champ) : string { + if (!$liste) + return ''; + + $suggests = array_map(fn($item) => $this->view->tag('li', + $this->view->tag('a', + $item[1], + ['clef' => $item[0], + 'href' => '#', + 'onclick' => 'selectSuggest(\''.$id_champ.'\',this); return false']), + ['class' => 'tag_liste']), + $liste); - foreach($liste as $item) - echo '<div class="tag_liste" clef="'.$item[0].'" onclick="selectSuggest(\''.$id_champ.'\',this)">'.$item[1].'</div>'; + return $this->view->tag('ul', + implode('', $suggests), + ['class' => 'tag_liste_results']); } @@ -66,4 +79,4 @@ class AuthoritySuggestController extends ZendAfi_Controller_Action { if (isset($authorities[$code])) return $authorities[$code]; } -} \ No newline at end of file +} diff --git a/library/ZendAfi/View/Helper/TagListeSuggestion.php b/library/ZendAfi/View/Helper/TagListeSuggestion.php index d7e60e43fd9f6c65fe13885603a475e59b054096..ae60d61e6a8269e13972ed309d9ea61eaff35e56 100644 --- a/library/ZendAfi/View/Helper/TagListeSuggestion.php +++ b/library/ZendAfi/View/Helper/TagListeSuggestion.php @@ -174,21 +174,21 @@ class ZendAfi_View_Helper_TagListeSuggestion } - protected function _configFor($type) { - $dewey_pcdm4_options = [Class_CodifSuggest::MODE_ON_INDEX => $this->_('Indice commence par'), + protected function _configFor(string $type) { + $dewey_pcdm4_options = [Class_CodifSuggest::MODE_CONTAINS => $this->_('Libellé contient'), Class_CodifSuggest::MODE_START_WITH => $this->_('Libellé commence par'), - Class_CodifSuggest::MODE_CONTAINS => $this->_('Libellé contient'), - Class_CodifSuggest::MODE_CONTAINS_EXACT_WORDS => $this->_('Libellé contient l\'expression')]; + Class_CodifSuggest::MODE_CONTAINS_EXACT_WORDS => $this->_('Libellé contient l\'expression'), + Class_CodifSuggest::MODE_ON_INDEX => $this->_('Indice commence par')]; $map = [ - 'auteur' => ['Class_CodifAuteur', [1 => $this->_('commence par')]], - 'responsibility' => ['Class_CodifAuteurFonction', [1 => $this->_('commence par')]], - 'matiere' => ['Class_CodifMatiere'], - 'interet' => ['Class_CodifCentreInteret'], - 'dewey' => ['Class_CodifDewey', $dewey_pcdm4_options], - 'pcdm4' => ['Class_CodifPcdm4', $dewey_pcdm4_options], - 'thesaurus' => ['Class_CodifThesaurus'], - 'tag' => ['Class_CodifTags'] + 'auteur' => [Class_CodifAuteur::class, [1 => $this->_('Commence par')]], + 'responsibility' => [Class_CodifAuteurFonction::class, [1 => $this->_('Commence par')]], + 'matiere' => [Class_CodifMatiere::class], + 'interet' => [Class_CodifCentreInteret::class], + 'dewey' => [Class_CodifDewey::class, $dewey_pcdm4_options], + 'pcdm4' => [Class_CodifPcdm4::class, $dewey_pcdm4_options], + 'thesaurus' => [Class_CodifThesaurus::class], + 'tag' => [Class_CodifTags::class] ]; return array_key_exists($type, $map) @@ -207,9 +207,9 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestionConfig extends Class_Entity { use Trait_Translator; public static function simple($name, $options=null) { - $class_name = ('Class_CodifThesaurus' == $name) - ? 'ZendAfi_View_Helper_Admin_TagListeSuggestionConfigThesaurus' - : 'ZendAfi_View_Helper_Admin_TagListeSuggestionConfig'; + $class_name = (Class_CodifThesaurus::class == $name) + ? ZendAfi_View_Helper_Admin_TagListeSuggestionConfigThesaurus::class + : ZendAfi_View_Helper_Admin_TagListeSuggestionConfig::class; $conf = (new $class_name()) ->setModelClass($name); @@ -246,9 +246,9 @@ class ZendAfi_View_Helper_Admin_TagListeSuggestionConfigThesaurus extends ZendAfi_View_Helper_Admin_TagListeSuggestionConfig { public function __construct() { - $this->setOptions([Class_CodifThesaurus::SUGGEST_HIERARCHY_CONTAINS => $this->_('Hierarchie contient'), + $this->setOptions([Class_CodifThesaurus::SUGGEST_LABEL_CONTAINS => $this->_('Libellé contient'), Class_CodifThesaurus::SUGGEST_LABEL_STARTS_WITH => $this->_('Libellé commence par'), - Class_CodifThesaurus::SUGGEST_LABEL_CONTAINS => $this->_('Libellé contient'), + Class_CodifThesaurus::SUGGEST_HIERARCHY_CONTAINS => $this->_('Hierarchie contient'), Class_CodifThesaurus::SUGGEST_INDEX_STARTS_WITH => $this->_('Indice commence par')]); } diff --git a/library/templates/Intonation/Assets/css/intonation.css b/library/templates/Intonation/Assets/css/intonation.css index 71f638710d4c5d4ad095b0b6449a8a98a3ca0100..e016830e0a227a299347ded5a10003703fb360e3 100644 --- a/library/templates/Intonation/Assets/css/intonation.css +++ b/library/templates/Intonation/Assets/css/intonation.css @@ -1033,3 +1033,13 @@ span.more_description_data_author:before { .boite.admin_tools a[href*="/admin/auth/logout"].menu_admin_front_anchor img { filter: invert(1); } + + +.tag_liste_results { + position: absolute; + z-index: 10; + box-shadow: 5px 1px 1px var(--front-dropdown-shadow); + border: 1px solid var(--front-separator); + padding: 5px; + border: 1px solid rgba(0,0,0,0.5); +} diff --git a/library/templates/Intonation/View/RenderForm.php b/library/templates/Intonation/View/RenderForm.php index b6322ac11b296bf93e692a06f8e8923c6be803ff..a55409be20dd86233ce71990724d6b76acbef666 100644 --- a/library/templates/Intonation/View/RenderForm.php +++ b/library/templates/Intonation/View/RenderForm.php @@ -118,4 +118,4 @@ class Intonation_View_RenderForm extends ZendAfi_View_Helper_RenderForm { get_class($this->_form), preg_replace("/[^a-zA-Z]/", '', $element->getId()))); } -} \ No newline at end of file +} diff --git a/library/templates/Intonation/View/TagListeSuggestion.php b/library/templates/Intonation/View/TagListeSuggestion.php index 78167a551afc99b88834d56a875607ecb26bd8da..fb8b1cb6cbc6be6672c7f5f68e5f5e2c68c894f8 100644 --- a/library/templates/Intonation/View/TagListeSuggestion.php +++ b/library/templates/Intonation/View/TagListeSuggestion.php @@ -21,47 +21,55 @@ class Intonation_View_TagListeSuggestion extends ZendAfi_View_Helper_TagListeSuggestion { - protected function _renderCurrentSelection() { + protected function _renderCurrentSelection() : string { return $this->_div(['class' => 'form-control form-control-sm h_auto p-3'], $this->_renderValuesInput() - . $this->_renderDropSearch() . $this->_div(['id' => $this->_name . '_aff'], $this->_renderSelection()) - . $this->_tag('button', - $this->_tag('i', '', - ['class' => 'fas fa-trash-alt']), - ['class' => 'btn-sm', - 'onclick' => 'suggestClear(\''.$this->_name.'\', true);return false;'])); + + . $this->_renderDropSearch() +); + } + + + protected function _renderDropSearch() : string { + $search_id = $this->_name . '_saisie'; + + $this->_injectScriptToCloseSearchResultWhenClickOutsideComponent($search_id); + + return $this->_div(['id' => $search_id, + 'class' => 'search overflow-auto'], + + $this->_div(['class' => 'input-group p-1 form-inline'], + $this->_renderTrash() + . $this->_renderTypeSelect() + . $this->_renderTermInput()) + + . $this->_renderListPlaceholder()); + } + + + protected function _injectScriptToCloseSearchResultWhenClickOutsideComponent(string $search_id) : self { + Class_ScriptLoader::getInstance() + ->addJQueryReady('$(\'body\').click(function(e) { + if (!document.getElementById(\'' . $search_id . '\').contains(e.target)) + $(\'#' . $search_id . ' .tag_liste_results\').remove() + })'); + return $this; } - protected function _renderDropSearch() { - return $this - ->_div(['class' => 'dropleft'], - $this->_tag('button', - '', - ['class' => 'btn-sm dropdown-toggle btn-light float-right mr-n3 mt-n3', - 'type' => 'button', - 'id' => $this->_name . 'dropdown', - 'data-toggle' => 'dropdown', - 'aria-haspopup' => 'true', - 'aria-expanded' => 'false']) - - . $this->_div(['id' => $this->_name . '_saisie', - 'class' => 'dropdown-menu search overflow-auto', - 'aria-labelledby' => $this->_name . 'dropdown'], - - $this->_div(['class' => 'input-group p-1 form-inline'], - $this->_renderTypeSelect() - . $this->_renderTermInput()) - - . $this->_renderListPlaceholder()) - ); + protected function _renderTrash() : string { + return $this->_tag('button', + $this->_tag('i', '', + ['class' => 'fas fa-trash-alt']), + ['class' => 'btn-sm', + 'onclick' => 'suggestClear(\''.$this->_name.'\', true);return false;']); } - protected function _renderTypeSelect() { + protected function _renderTypeSelect() : string { return $this->_tag('label', $this->_('type de recherche'), ['class' => 'sr-only', 'for' => $this->_mode_name]) @@ -69,7 +77,7 @@ class Intonation_View_TagListeSuggestion extends ZendAfi_View_Helper_TagListeSug } - protected function _renderTermInput() { + protected function _renderTermInput() : string { return $this->_tag('label', $this->_('termes à rechercher'), ['class' => 'sr-only', 'for' => $this->_input_name]) @@ -81,7 +89,7 @@ class Intonation_View_TagListeSuggestion extends ZendAfi_View_Helper_TagListeSug } - protected function _renderSearch() { + protected function _renderSearch() : string { return ''; } } diff --git a/public/opac/js/tag_selection/tag_selection.css b/public/opac/js/tag_selection/tag_selection.css index 49f08f285760dd0c002bfc0ca26bca193b954c92..5d99606bdfa41d203a3b9b8451a186a76fb5f43a 100644 --- a/public/opac/js/tag_selection/tag_selection.css +++ b/public/opac/js/tag_selection/tag_selection.css @@ -30,12 +30,11 @@ span.selected { cursor: default; display: inline-block; - white-space: nowrap; + text-align: left; font-size: 1em; line-height: 1.2em; padding: 0.2em; margin: 0 0.1em 0.1em 0.1em; - text-align: center; border: 1px solid #BBB; } diff --git a/tests/application/modules/opac/controllers/AuthoritySuggestControllerTest.php b/tests/application/modules/opac/controllers/AuthoritySuggestControllerTest.php index 4059829eefd5b689ca15ba400889fc97b5e38d9f..17d71707818c9d0724a4a0be13c5b9811bd06f8e 100644 --- a/tests/application/modules/opac/controllers/AuthoritySuggestControllerTest.php +++ b/tests/application/modules/opac/controllers/AuthoritySuggestControllerTest.php @@ -67,7 +67,7 @@ class AuthoritySuggestControllerSimpleTest extends AbstractControllerTestCase { */ public function forAutoritysAsAdminPortailBodyShouldContainsTagListe($type, $id, $content) { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/' . $type . '/mode/1/valeur/l/id_champ/suggest'); - $this->assertXPathContentContains('//div[@class="tag_liste"][@clef="'. $id .'"]', + $this->assertXPathContentContains('//li[@class="tag_liste"]/a[@clef="'. $id .'"]', $content, $this->_response->getBody()); } @@ -124,7 +124,7 @@ class AuthoritySuggestControllerThesaurusPirateTest extends AbstractControllerTe protected function assertPirateIsSuggested() { - $this->assertXPathContentContains('//div[@class="tag_liste"][@clef="1"]', + $this->assertXPathContentContains('//li[@class="tag_liste"]/a[@clef="1"]', '1 : pirate', $this->_response->getBody()); } diff --git a/tests/scenarios/AdvancedSearch/AdvancedSearchInTemplateTest.php b/tests/scenarios/AdvancedSearch/AdvancedSearchInTemplateTest.php index 9a74540618d83d8eac4ac9f604b055198630d96d..ae99ac3e8021b113e522cd97d9bab434c9444ffd 100644 --- a/tests/scenarios/AdvancedSearch/AdvancedSearchInTemplateTest.php +++ b/tests/scenarios/AdvancedSearch/AdvancedSearchInTemplateTest.php @@ -34,4 +34,22 @@ class AdvancedSearchFormInTemplateElementsTest extends AdvancedSearchFormWithDep $this->assertNotXPath('//form//form'); } + + /** @test */ + public function formDivForElementsShouldHaveResponsiveClassesCol12_ColSm() { + $this->assertXPath('//form//label/following-sibling::div[@class="col-12 col-sm"]'); + } + + + /** @test */ + public function authorSaisieShouldContainsButtonForSuggestClear() { + $this->assertXPath('//div[@id="author_saisie"]//button[@onclick="suggestClear(\'author\', true);return false;"]'); + } + + + /** @test */ + public function scriptLoaderShouldContainsCodeToCloseAuthorResultsOnClickOutsideSearchComponent() { + $this->assertXPathContentContains('//script', + '$(\'#author_saisie .tag_liste_results\').remove()'); + } } diff --git a/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php b/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php index e2689ba59d685f24c58e9b9bb69baa89604a0d71..bd125277340d54d00c8a55c5f2ed32ddd0fe8ddb 100644 --- a/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php +++ b/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php @@ -1138,25 +1138,6 @@ class AdvancedSearchFormUnauthorizedMultiInputTest extends AbstractControllerTes -class AdvancedSearchFormWithDeprecatedDomainsCriteriaIntonationTest - extends AdvancedSearchFormWithDeprecatedDomainsCriteriaTest { - protected function _prepareFixtures() { - parent::_prepareFixtures(); - - Class_AdminVar::set('TEMPLATING', 1); - Class_Profil::getCurrentProfil()->setTemplate('INTONATION'); - } - - - /** @test */ - public function shouldRenderAsBootstrap() { - $this->assertXPath('//div[contains(@class, "form-control")]//button[@id="authordropdown"]'); - } -} - - - - class AdvancedSearchFormWithDomainCriteriaDispatchTest extends AbstractControllerTestCase { protected $_storm_default_to_volatile = true; @@ -1326,7 +1307,7 @@ class AdvancedSearchAuthoritySuggestTest extends AbstractControllerTestCase { 'libelle' => 'Herbert' ]); $this->dispatch('/authority-suggest/suggest/type_autorite/auteur/valeur/herb/id_champ/author'); - $this->assertXpathContentContains('//div[@clef="1"][contains(@onclick, "author")]', 'Herbert'); + $this->assertXpathContentContains('//a[@clef="1"][contains(@onclick, "author")]', 'Herbert'); } @@ -1340,7 +1321,7 @@ class AdvancedSearchAuthoritySuggestTest extends AbstractControllerTestCase { 'libelle' => 'Le Saux Laetitia' ]); $this->dispatch('/authority-suggest/suggest/type_autorite/auteur/valeur/le%20Saux/id_champ/author'); - $this->assertXpathContentContains('//div[@clef="1"][contains(@onclick, "author")]', 'Le Saux'); + $this->assertXpathContentContains('//a[@clef="1"][contains(@onclick, "author")]', 'Le Saux'); } @@ -1351,7 +1332,7 @@ class AdvancedSearchAuthoritySuggestTest extends AbstractControllerTestCase { 'libelle' => 'Herbert' ]); $this->dispatch('/authority-suggest/suggest/type_autorite/auteur/valeur/herb/id_champ/author'); - $this->assertXpathContentContains('//div[@clef="1"][contains(@onclick, "author")]', 'Herbert'); + $this->assertXpathContentContains('//a[@clef="1"][contains(@onclick, "author")]', 'Herbert'); } } diff --git a/tests/scenarios/AdvancedSearch/SuggestSearchTest.php b/tests/scenarios/AdvancedSearch/SuggestSearchTest.php index d0fd9c4fde3a66a7d570386ddf114bfe7cb9c149..234d642828bd84d5067c5f2d61f18404a506df3f 100644 --- a/tests/scenarios/AdvancedSearch/SuggestSearchTest.php +++ b/tests/scenarios/AdvancedSearch/SuggestSearchTest.php @@ -65,7 +65,7 @@ class SuggestSearchDeweyTest extends AbstractControllerTestCase { public function searchOnIndice0011ShouldReturnVieIntellectuelle() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/dewey/id_champ/dewey/mode/10/valeur/0011'); - $this->assertEquals('<div class="tag_liste" clef="0011" onclick="selectSuggest(\'dewey\',this)">001.1 : Vie intellectuelle</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="0011" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.1 : Vie intellectuelle</a></li></ul>', $this->_response->getBody()); } @@ -73,14 +73,16 @@ class SuggestSearchDeweyTest extends AbstractControllerTestCase { /** @test */ public function searchOnContainsVieShouldReturnAll() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/dewey/id_champ/dewey/mode/2/valeur/Vie'); - $this->assertEquals('<div class="tag_liste" clef="0011" onclick="selectSuggest(\'dewey\',this)">001.1 : Vie intellectuelle</div><div class="tag_liste" clef="0012" onclick="selectSuggest(\'dewey\',this)">001.2 : Ravie</div><div class="tag_liste" clef="0013" onclick="selectSuggest(\'dewey\',this)">001.3 : Reve et vie </div>', $this->_response->getBody()); + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="0011" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.1 : Vie intellectuelle</a></li><li class="tag_liste"><a clef="0012" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.2 : Ravie</a></li><li class="tag_liste"><a clef="0013" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.3 : Reve et vie </a></li></ul>', + $this->_response->getBody()); } /** @test */ public function searchOnContainsExpressionVieShouldReturnWithExactWordVie() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/dewey/id_champ/dewey/mode/3/valeur/Vie'); - $this->assertEquals('<div class="tag_liste" clef="0011" onclick="selectSuggest(\'dewey\',this)">001.1 : Vie intellectuelle</div><div class="tag_liste" clef="0013" onclick="selectSuggest(\'dewey\',this)">001.3 : Reve et vie </div>', $this->_response->getBody()); + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="0011" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.1 : Vie intellectuelle</a></li><li class="tag_liste"><a clef="0013" href="#" onclick="selectSuggest(\'dewey\',this); return false">001.3 : Reve et vie </a></li></ul>', + $this->_response->getBody()); } } @@ -136,7 +138,7 @@ class SuggestSearchMatiereSuggestTest extends AbstractControllerTestCase { public function startWithScienShouldContainsScienceOnly() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/matiere/id_champ/matiere/mode/1/valeur/scienc'); - $this->assertEquals('<div class="tag_liste" clef="10" onclick="selectSuggest(\'matiere\',this)">Science et ignorance</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="10" href="#" onclick="selectSuggest(\'matiere\',this); return false">Science et ignorance</a></li></ul>', $this->_response->getBody()); } @@ -145,7 +147,7 @@ class SuggestSearchMatiereSuggestTest extends AbstractControllerTestCase { public function containsIgnoranceScienceShouldContainsTwoSuggest() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/matiere/id_champ/matiere/mode/2/valeur/ignorance science'); - $this->assertEquals('<div class="tag_liste" clef="10" onclick="selectSuggest(\'matiere\',this)">Science et ignorance</div><div class="tag_liste" clef="11" onclick="selectSuggest(\'matiere\',this)">Conscience et ignorance</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="10" href="#" onclick="selectSuggest(\'matiere\',this); return false">Science et ignorance</a></li><li class="tag_liste"><a clef="11" href="#" onclick="selectSuggest(\'matiere\',this); return false">Conscience et ignorance</a></li></ul>', $this->_response->getBody()); } @@ -154,7 +156,7 @@ class SuggestSearchMatiereSuggestTest extends AbstractControllerTestCase { public function containsExactMatchScienceEtIgnoContainsOneSuggest() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/matiere/id_champ/matiere/mode/3/valeur/science et igno'); - $this->assertEquals('<div class="tag_liste" clef="10" onclick="selectSuggest(\'matiere\',this)">Science et ignorance</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="10" href="#" onclick="selectSuggest(\'matiere\',this); return false">Science et ignorance</a></li></ul>', $this->_response->getBody()); } @@ -163,7 +165,7 @@ class SuggestSearchMatiereSuggestTest extends AbstractControllerTestCase { public function containsRougeNoirShouldContainsOneSuggestNoirEtRouge() { $this->dispatch('/opac/authority-suggest/suggest/type_autorite/matiere/id_champ/matiere/mode/2/valeur/rouge noir'); - $this->assertEquals('<div class="tag_liste" clef="12" onclick="selectSuggest(\'matiere\',this)">Noir et rouge</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="12" href="#" onclick="selectSuggest(\'matiere\',this); return false">Noir et rouge</a></li></ul>', $this->_response->getBody()); } } diff --git a/tests/scenarios/AuthorPage/AuthorWidgetTest.php b/tests/scenarios/AuthorPage/AuthorWidgetTest.php index 180402c55e8423bc38e6803bc63227c1698705b8..eb25c75f3c9db04fde00963a7a4e1984803399d6 100644 --- a/tests/scenarios/AuthorPage/AuthorWidgetTest.php +++ b/tests/scenarios/AuthorPage/AuthorWidgetTest.php @@ -498,7 +498,7 @@ class AuthorWidgetResponsibilitiesInputSuggestTest extends AuthorWidgetOnPageTes $this->dispatch('/opac/authority-suggest/suggest?type_autorite=responsibility&id_champ=responsibilities&mode=1&valeur=Pro'); - $this->assertEquals('<div class="tag_liste" clef="635" onclick="selectSuggest(\'responsibilities\',this)">Programmeur informatique</div>', + $this->assertEquals('<ul class="tag_liste_results"><li class="tag_liste"><a clef="635" href="#" onclick="selectSuggest(\'responsibilities\',this); return false">Programmeur informatique</a></li></ul>', $this->_response->getBody()); } }