from django.test import override_settings

from ..momentjs import clean_language_name, get_locale_url


def test_django_language_code_is_cleaned_for_moment_js():
    assert clean_language_name("en", ["en"]) == "en"


def test_two_part_django_language_code_is_cleaned_for_moment_js():
    assert clean_language_name("en_us", ["en-us"]) == "en-us"


def test_two_part_django_language_code_is_fallbacked_to_single_part_code():
    assert clean_language_name("en_us", ["en", "en-uk"]) == "en"


def test_django_language_code_cleanup_is_case_insensitive():
    assert clean_language_name("en_US", ["en-us"]) == "en-us"


def test_django_language_code_is_cleaned_to_none_if_translation_is_not_available():
    assert clean_language_name("pl", ["en"]) is None


def test_locale_url_getter_uses_passed_locales_list():
    with override_settings(MISAGO_MOMENT_JS_LOCALES=["en-us"]):
        assert get_locale_url("en_us", locales=["en"]).endswith("en.js")


def test_locale_url_getter_fallbacks_to_locales_setting_if_locales_kwarg_is_not_set():
    with override_settings(MISAGO_MOMENT_JS_LOCALES=["en-us"]):
        assert get_locale_url("en_us").endswith("en-us.js")


def test_locale_url_getter_uses_passed_static_path_template():
    locale_url = get_locale_url(
        "en_us", static_path_template="test/%s", locales=["en-us"]
    )
    assert locale_url == "test/en-us"


def test_locale_url_getter_returns_none_for_unsupported_locale():
    assert get_locale_url("pl", locales=["en"]) is None