diff --git a/opac/tests/test_interface_home.py b/opac/tests/test_interface_home.py index 52aaf6c92..7377e8f02 100644 --- a/opac/tests/test_interface_home.py +++ b/opac/tests/test_interface_home.py @@ -55,3 +55,90 @@ def test_collection_trans_home(self): self.assertStatus(response, 200) expected_anchor = "colección falsa" self.assertIn(expected_anchor, response.data.decode("utf-8")) + + def test_home_logo_shown_when_configured(self): + """ + Verificamos se a home exibe o logo da coleção quando está configurado. + """ + + with current_app.app_context(): + utils.makeOneCollection( + { + "name_pt": "coleção falsa", + "home_logo_pt": "http://example.com/logo_pt.png", + "home_logo_en": "http://example.com/logo_en.png", + "home_logo_es": "http://example.com/logo_es.png", + } + ) + + with self.client as c: + # idioma em 'pt_br' + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + "http://example.com/logo_pt.png", + response.data.decode("utf-8"), + ) + self.assertNotIn( + 'id="collectionNameHome"', response.data.decode("utf-8") + ) + + # idioma em 'en' + response = c.get( + url_for("main.set_locale", lang_code="en"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + "http://example.com/logo_en.png", + response.data.decode("utf-8"), + ) + + def test_home_logo_fallback_to_text_when_not_configured(self): + """ + Verificamos se a home exibe o nome da coleção em texto quando não há logo configurado. + """ + + with current_app.app_context(): + utils.makeOneCollection({"name_pt": "coleção falsa"}) + + with self.client as c: + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + 'id="collectionNameHome"', response.data.decode("utf-8") + ) + self.assertIn("coleção falsa", response.data.decode("utf-8")) + + def test_home_aria_label_uses_collection_name(self): + """ + Verificamos se o aria-label usa o nome dinâmico da coleção. + """ + + with current_app.app_context(): + utils.makeOneCollection({"name_pt": "coleção falsa"}) + + with self.client as c: + response = c.get( + url_for("main.set_locale", lang_code="pt_BR"), + headers={"Referer": "/"}, + follow_redirects=True, + ) + + self.assertStatus(response, 200) + self.assertIn( + 'aria-label="Acessar site coleção coleção falsa"', + response.data.decode("utf-8"), + ) diff --git a/opac/webapp/templates/article/includes/alternative_header.html b/opac/webapp/templates/article/includes/alternative_header.html index 6a8104659..fe49d0e8d 100644 --- a/opac/webapp/templates/article/includes/alternative_header.html +++ b/opac/webapp/templates/article/includes/alternative_header.html @@ -45,7 +45,12 @@

- + {%- set header_logo_url = cimages.get_header_logo(g.collection, session.lang)|default('')|trim -%} + {%- if header_logo_url -%} + {{ cimages.render_logo(header_logo_url, coll_macro.get_collection_name(), img_class='img-fluid scielo__logo-img mt-1 ms-5') }} + {%- else -%} +
{{ coll_macro.get_collection_name() }}
-
+ + {%- endif -%}