from webapp.app import parse_accept_language, resolve_effective_ui_language class _Request: def __init__(self, header: str): self.headers = {"accept-language": header} def test_parse_accept_language_collects_supported_languages_in_browser_order() -> None: assert parse_accept_language("en-US,en;q=0.9,fi;q=0.8,sv;q=0.7") == ["en", "fi", "sv"] def test_resolve_effective_ui_language_prefers_finnish_then_swedish_then_english() -> None: request = _Request("en-US,en;q=0.9,sv;q=0.8,fi;q=0.7") assert resolve_effective_ui_language(request, "auto") == "fi" def test_resolve_effective_ui_language_falls_back_to_english_when_no_supported_match() -> None: request = _Request("de-DE,de;q=0.9,fr;q=0.8") assert resolve_effective_ui_language(request, "auto") == "en" def test_resolve_effective_ui_language_keeps_explicit_language() -> None: request = _Request("fi,sv,en") assert resolve_effective_ui_language(request, "sv") == "sv"