"""Tests für die Pfad-Umschreibung des Hermes-Dashboard-Proxys (Anmeldung seit Hermes v0.21).""" from routers import hermes_ui def test_umleitung_auf_login_bekommt_praefix(): assert hermes_ui.praefixiere_ort("/login?next=%2F") == "/hermes-ui/login?next=%2F" assert hermes_ui.praefixiere_ort("/") == "/hermes-ui/" def test_fremde_oder_schon_praefixierte_ziele_bleiben(): assert hermes_ui.praefixiere_ort("/hermes-ui/sessions") == "/hermes-ui/sessions" assert hermes_ui.praefixiere_ort("https://example.org/x") == "https://example.org/x" assert hermes_ui.praefixiere_ort("//evil.example/x") == "//evil.example/x" def test_anmeldeseite_schickt_an_praefixierten_pfad(): html = (b'Login' b'
' b'' b'') neu = hermes_ui.praefixiere_html(html) assert b'action="/hermes-ui/auth/password-login"' in neu assert b'fetch("/hermes-ui/auth/password-login"' in neu assert b'"/hermes-ui/login?x=1"' in neu assert b'window.__HERMES_BASE_PATH__="/hermes-ui"' in neu def test_andere_absolute_pfade_bleiben_unberuehrt(): html = b'xy' neu = hermes_ui.praefixiere_html(html) assert b'href="/assets/x.js"' in neu assert b'href="/authors"' in neu