47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
"""Barre commune v0.4.1 (correctif fusion #125) — re-vendange 0.45.12.
|
|
|
|
- JS vendangé VERBATIM depuis dracodev-commons, branche
|
|
menu-compte-icones-svg-ns-v0-4-1 (PR commons #11),
|
|
ui/barre-apps/. Le CSS est inchangé par rapport à la v0.4.0.
|
|
- Correctif : en v0.4.0, les icônes du menu compte étaient
|
|
créées via document.createElement() — espace de noms HTML,
|
|
jamais dessinées par le navigateur (libellés décalés d'un
|
|
cran d'icône, aucun glyphe visible en production). La v0.4.1
|
|
crée le <svg> et ses primitives via
|
|
document.createElementNS() (espace de noms SVG).
|
|
"""
|
|
import hashlib
|
|
from pathlib import Path
|
|
|
|
R = Path(__file__).resolve().parents[1]
|
|
|
|
# Empreintes SHA-256 de la source commons
|
|
# (Projets/dracodev-commons, ui/barre-apps/ ; CSS : v0.4.0
|
|
# inchangé, JS : branche du correctif v0.4.1 @32a729f).
|
|
SHA256_CSS_V040 = "d8cf53b2f6700ebc7499d43869d5cae256d1f74636f0113bffb174b8a6bd06ec"
|
|
SHA256_JS_V041 = "82c4940e8e115ed71d95f7c0dcdc906b93e49855580cc0fec7a1ccba34f85a42"
|
|
|
|
|
|
def _sha256(chemin):
|
|
return hashlib.sha256((R / chemin).read_bytes()).hexdigest()
|
|
|
|
|
|
def test_barre_css_js_verbatim_commons_v041():
|
|
assert _sha256("static/css/draco-barre.css") == SHA256_CSS_V040
|
|
assert _sha256("static/js/draco-barre.js") == SHA256_JS_V041
|
|
|
|
|
|
def test_js_icones_espace_de_noms_svg():
|
|
js = (R / "static/js/draco-barre.js").read_text(encoding="utf-8")
|
|
assert "MENU_ICONES" in js
|
|
# Le correctif : création dans l'espace de noms SVG…
|
|
assert 'createElementNS(SVG_NS, "svg")' in js
|
|
assert "createElementNS(SVG_NS, spec[0])" in js
|
|
# …et plus aucune création HTML du svg ou des primitives.
|
|
assert 'createElement("svg")' not in js
|
|
assert "createElement(spec[0])" not in js
|
|
# Comportements conservés.
|
|
assert 'hub: "https://hub.dracodev.net/"' in js
|
|
assert '"profil", "Profil"' in js
|
|
assert 'data-compte-act", "deconnexion"' in js
|