kopia lustrzana https://github.com/wagtail/wagtail
Re-implement unit tests depending on dropdown markup
rodzic
586358632e
commit
830c7c62d8
|
@ -4,7 +4,7 @@
|
|||
Reusable dropdown menu component built with Tippy.js.
|
||||
|
||||
- `classname` (string?) - more classes for parent element
|
||||
- `attrs` (string?) - more classes for parent element
|
||||
- `attrs` (string?) - more attributes for parent element
|
||||
- `toggle_icon` (string?) - toggle icon identifier
|
||||
- `toggle_label` (string?) - Visible label for the toggle button
|
||||
- `toggle_aria_label` (string?) - aria-label for the toggle button
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
{% if translations %}
|
||||
{% fragment as toggle_classname %}{% if theme == "large" %}button{% else %}button button-small{% endif %} {{ class }}{% endfragment %}
|
||||
|
||||
{% dropdown attrs=self.attrs toggle_icon="arrow-down" toggle_label=locale_label classname="w-inline-block" toggle_classname=toggle_classname %}
|
||||
{% dropdown attrs="data-locale-selector" toggle_icon="arrow-down" toggle_label=locale_label classname="w-inline-block" toggle_classname=toggle_classname %}
|
||||
{% for translation in translations %}
|
||||
<a href="{{ translation.url }}" data-locale-selector-link>
|
||||
{{ translation.locale.get_display_name }}
|
||||
|
|
|
@ -235,7 +235,7 @@ class TestPageHeaderButtonsHooks(TestButtonsHooks):
|
|||
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertTemplateUsed(
|
||||
response, "wagtailadmin/pages/listing/_modern_dropdown.html"
|
||||
response, "wagtailadmin/pages/listing/_page_header_buttons.html"
|
||||
)
|
||||
|
||||
self.assertContains(response, "Another useless header button")
|
||||
|
|
|
@ -1112,8 +1112,7 @@ class TestCanChoosePage(WagtailTestUtils, TestCase):
|
|||
class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
||||
fixtures = ["test.json"]
|
||||
|
||||
LOCALE_SELECTOR_HTML = '<a href="javascript:void(0)" aria-label="English" class="c-dropdown__button u-btn-current w-no-underline">'
|
||||
LOCALE_INDICATOR_HTML = '<use href="#icon-site"></use></svg>\n English'
|
||||
LOCALE_SELECTOR_HTML = r"data-locale-selector[^<]+<button[^<]+<svg[^<]+<use[^<]+<\/use[^<]+<\/svg[^<]+English"
|
||||
|
||||
def setUp(self):
|
||||
self.root_page = Page.objects.get(id=2)
|
||||
|
@ -1132,7 +1131,9 @@ class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
|||
switch_to_french_url = self.get_choose_page_url(
|
||||
self.fr_locale, parent_page_id=self.child_page_fr.pk
|
||||
)
|
||||
self.LOCALE_SELECTOR_HTML_FR = f'<a href="{switch_to_french_url}" aria-label="French" class="u-link is-live w-no-underline">'
|
||||
self.LOCALE_SELECTOR_HTML_FR = (
|
||||
f'<a href="{switch_to_french_url}" data-locale-selector-link>'
|
||||
)
|
||||
|
||||
self.login()
|
||||
|
||||
|
@ -1160,17 +1161,17 @@ class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
|||
response = self.client.get(reverse("wagtailadmin_choose_page"))
|
||||
html = response.json().get("html")
|
||||
|
||||
self.assertIn(self.LOCALE_SELECTOR_HTML, html)
|
||||
self.assertRegex(html, self.LOCALE_SELECTOR_HTML)
|
||||
|
||||
switch_to_french_url = self.get_choose_page_url(locale=self.fr_locale)
|
||||
fr_selector = f'<a href="{switch_to_french_url}" aria-label="French" class="u-link is-live w-no-underline">'
|
||||
fr_selector = f'<a href="{switch_to_french_url}" data-locale-selector-link>'
|
||||
self.assertIn(fr_selector, html)
|
||||
|
||||
def test_locale_selector(self):
|
||||
response = self.get(self.child_page.pk)
|
||||
|
||||
html = response.json().get("html")
|
||||
self.assertIn(self.LOCALE_SELECTOR_HTML, html)
|
||||
self.assertRegex(html, self.LOCALE_SELECTOR_HTML)
|
||||
self.assertIn(self.LOCALE_SELECTOR_HTML_FR, html)
|
||||
|
||||
def test_locale_selector_without_translation(self):
|
||||
|
@ -1178,8 +1179,7 @@ class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
|||
|
||||
response = self.get(self.child_page.pk)
|
||||
html = response.json().get("html")
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML, html)
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML_FR, html)
|
||||
self.assertNotIn("data-locale-selector", html)
|
||||
|
||||
def test_locale_selector_with_active_locale(self):
|
||||
switch_to_french_url = self.get_choose_page_url(
|
||||
|
@ -1188,18 +1188,18 @@ class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
|||
response = self.client.get(switch_to_french_url)
|
||||
html = response.json().get("html")
|
||||
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML, html)
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML_FR, html)
|
||||
self.assertNotIn(f'data-title="{self.root_page.title}"', html)
|
||||
self.assertIn(self.root_page_fr.title, html)
|
||||
self.assertIn(
|
||||
'<a href="javascript:void(0)" aria-label="French" class="c-dropdown__button u-btn-current w-no-underline">',
|
||||
self.assertRegex(
|
||||
html,
|
||||
r"data-locale-selector[^<]+<button[^<]+<svg[^<]+<use[^<]+<\/use[^<]+<\/svg[^<]+French",
|
||||
)
|
||||
switch_to_english_url = self.get_choose_page_url(
|
||||
locale=Locale.objects.get(language_code="en")
|
||||
)
|
||||
self.assertIn(
|
||||
f'<a href="{switch_to_english_url}" aria-label="English" class="u-link is-live w-no-underline">',
|
||||
f'<a href="{switch_to_english_url}" data-locale-selector-link>',
|
||||
html,
|
||||
)
|
||||
|
||||
|
@ -1207,5 +1207,4 @@ class TestPageChooserLocaleSelector(WagtailTestUtils, TestCase):
|
|||
def test_locale_selector_not_present_when_i18n_disabled(self):
|
||||
response = self.get(self.child_page.pk)
|
||||
html = response.json().get("html")
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML, html)
|
||||
self.assertNotIn(self.LOCALE_SELECTOR_HTML_FR, html)
|
||||
self.assertNotIn("data-locale-selector", html)
|
||||
|
|
|
@ -34,7 +34,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
self.assertInHTML(
|
||||
"""<input id="__ID__" name="__NAME__" type="hidden" />""", js_args[0]
|
||||
)
|
||||
self.assertIn(">Choose a page<", js_args[0])
|
||||
self.assertIn("Choose a page", js_args[0])
|
||||
self.assertEqual(js_args[1], "__ID__")
|
||||
self.assertEqual(
|
||||
js_args[2],
|
||||
|
@ -68,7 +68,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
|
||||
html = widget.render_html("test", None, {})
|
||||
self.assertInHTML("""<input name="test" type="hidden" />""", html)
|
||||
self.assertIn(">Choose a page<", html)
|
||||
self.assertIn("Choose a page", html)
|
||||
|
||||
def test_render_js_init(self):
|
||||
widget = widgets.AdminPageChooser()
|
||||
|
@ -116,7 +116,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
)
|
||||
|
||||
html = widget.render("test", self.child_page, {"id": "test-id"})
|
||||
self.assertIn(">Choose a page (Simple Page)<", html)
|
||||
self.assertIn("Choose a page (Simple Page)", html)
|
||||
|
||||
def test_render_with_target_model_as_single_instance(self):
|
||||
widget = widgets.AdminPageChooser(target_models=SimplePage)
|
||||
|
@ -128,7 +128,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
)
|
||||
|
||||
html = widget.render("test", self.child_page, {"id": "test-id"})
|
||||
self.assertIn(">Choose a page (Simple Page)<", html)
|
||||
self.assertIn("Choose a page (Simple Page)", html)
|
||||
|
||||
def test_render_with_target_model_as_single_string(self):
|
||||
widget = widgets.AdminPageChooser(target_models="tests.SimplePage")
|
||||
|
@ -140,7 +140,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
)
|
||||
|
||||
html = widget.render("test", self.child_page, {"id": "test-id"})
|
||||
self.assertIn(">Choose a page (Simple Page)<", html)
|
||||
self.assertIn("Choose a page (Simple Page)", html)
|
||||
|
||||
def test_render_with_multiple_target_models(self):
|
||||
target_models = [SimplePage, "tests.eventpage"]
|
||||
|
@ -153,7 +153,7 @@ class TestAdminPageChooserWidget(TestCase):
|
|||
)
|
||||
|
||||
html = widget.render("test", self.child_page, {"id": "test-id"})
|
||||
self.assertIn(">Choose a page<", html)
|
||||
self.assertIn("Choose a page", html)
|
||||
|
||||
def test_render_js_init_with_can_choose_root(self):
|
||||
widget = widgets.AdminPageChooser(can_choose_root=True)
|
||||
|
|
|
@ -260,10 +260,10 @@ class TestFormsIndexWithLocalisationEnabled(WagtailTestUtils, TestCase):
|
|||
)
|
||||
|
||||
def get_switch_current_locale_markup(self, locale):
|
||||
return f'<a href="javascript:void(0)" aria-label="{locale.get_display_name()}" class="c-dropdown__button u-btn-current w-no-underline">'
|
||||
return rf"data-locale-selector[^<]+<button[^<]+<svg[^<]+<use[^<]+<\/use[^<]+<\/svg[^<]+{locale.get_display_name()}"
|
||||
|
||||
def get_switch_link_markup(self, locale):
|
||||
return f'<a href="{self.forms_index_url}?locale={locale.language_code}" aria-label="{locale.get_display_name()}" class="u-link is-live w-no-underline">'
|
||||
return f'<a href="{self.forms_index_url}?locale={locale.language_code}" data-locale-selector-link>'
|
||||
|
||||
def test_forms_index(self):
|
||||
response = self.client.get(self.forms_index_url)
|
||||
|
@ -271,16 +271,18 @@ class TestFormsIndexWithLocalisationEnabled(WagtailTestUtils, TestCase):
|
|||
# Check response
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
self.assertContains(
|
||||
response, self.get_switch_current_locale_markup(self.en_locale)
|
||||
self.assertRegex(
|
||||
response.content.decode(),
|
||||
self.get_switch_current_locale_markup(self.en_locale),
|
||||
)
|
||||
self.assertContains(response, self.get_switch_link_markup(self.fr_locale))
|
||||
|
||||
response = self.client.get(
|
||||
self.forms_index_url, {"locale": self.fr_locale.language_code}
|
||||
)
|
||||
self.assertContains(
|
||||
response, self.get_switch_current_locale_markup(self.fr_locale)
|
||||
self.assertRegex(
|
||||
response.content.decode(),
|
||||
self.get_switch_current_locale_markup(self.fr_locale),
|
||||
)
|
||||
self.assertContains(response, self.get_switch_link_markup(self.en_locale))
|
||||
|
||||
|
@ -313,10 +315,7 @@ class TestFormsIndexWithLocalisationEnabled(WagtailTestUtils, TestCase):
|
|||
def test_switcher_doesnt_show_with_i18n_disabled(self):
|
||||
response = self.client.get(self.forms_index_url)
|
||||
|
||||
self.assertNotContains(
|
||||
response, self.get_switch_current_locale_markup(self.en_locale)
|
||||
)
|
||||
self.assertNotContains(response, self.get_switch_link_markup(self.fr_locale))
|
||||
self.assertNotContains(response, "data-locale-selector")
|
||||
|
||||
|
||||
class TestFormsSubmissionsList(WagtailTestUtils, TestCase):
|
||||
|
|
|
@ -511,15 +511,14 @@ class TestTranslatableCreateView(WagtailTestUtils, TestCase):
|
|||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
# Check that the locale select exists and is set correctly
|
||||
expected = '<a href="javascript:void(0)" aria-label="French" class="c-dropdown__button u-btn-current w-no-underline">'
|
||||
self.assertContains(response, expected)
|
||||
self.assertRegex(
|
||||
response.content.decode(),
|
||||
r"data-locale-selector[^<]+<button[^<]+<svg[^<]+<use[^<]+<\/use[^<]+<\/svg[^<]+French",
|
||||
)
|
||||
|
||||
# Check that the other locale link is right
|
||||
expected = """
|
||||
<a href="/admin/modeladmintest/translatablebook/create/?locale=en" aria-label="English" class="u-link is-live w-no-underline">
|
||||
English
|
||||
</a>"""
|
||||
self.assertContains(response, expected, html=True)
|
||||
expected = '<a href="/admin/modeladmintest/translatablebook/create/?locale=en" data-locale-selector-link>'
|
||||
self.assertIn(expected, response.content.decode())
|
||||
|
||||
|
||||
class TestRevisableCreateView(WagtailTestUtils, TestCase):
|
||||
|
@ -806,7 +805,7 @@ class TestTranslatableBookEditView(WagtailTestUtils, TestCase):
|
|||
|
||||
# Check the locale switcher is there
|
||||
expected = """
|
||||
<a href="/admin/modeladmintest/translatablebook/edit/1/?locale=en" aria-label="English" class="u-link is-live w-no-underline">
|
||||
<a href="/admin/modeladmintest/translatablebook/edit/1/?locale=en" data-locale-selector-link>
|
||||
English
|
||||
</a>"""
|
||||
self.assertContains(response, expected, html=True)
|
||||
|
|
|
@ -227,7 +227,7 @@ class TestLocaleSelectorOnList(WagtailTestUtils, TestCase):
|
|||
)
|
||||
self.assertContains(
|
||||
response,
|
||||
f'<a href="{switch_to_french_url}" aria-label="French" class="u-link is-live w-no-underline">',
|
||||
f'<a href="{switch_to_french_url}" data-locale-selector-link>',
|
||||
)
|
||||
|
||||
# Check that the add URLs include the locale
|
||||
|
@ -249,14 +249,7 @@ class TestLocaleSelectorOnList(WagtailTestUtils, TestCase):
|
|||
reverse("wagtailsnippets_snippetstests_translatablesnippet:list")
|
||||
)
|
||||
|
||||
switch_to_french_url = (
|
||||
reverse("wagtailsnippets_snippetstests_translatablesnippet:list")
|
||||
+ "?locale=fr"
|
||||
)
|
||||
self.assertNotContains(
|
||||
response,
|
||||
f'<a href="{switch_to_french_url}" aria-label="French" class="u-link is-live w-no-underline">',
|
||||
)
|
||||
self.assertNotContains(response, "data-locale-selector")
|
||||
|
||||
# Check that the add URLs don't include the locale
|
||||
add_url = reverse("wagtailsnippets_snippetstests_translatablesnippet:add")
|
||||
|
@ -271,9 +264,7 @@ class TestLocaleSelectorOnList(WagtailTestUtils, TestCase):
|
|||
def test_locale_selector_not_present_on_non_translatable_snippet(self):
|
||||
response = self.client.get(reverse("wagtailsnippets_tests_advert:list"))
|
||||
|
||||
self.assertNotContains(
|
||||
response, 'aria-label="French" class="u-link is-live w-no-underline">'
|
||||
)
|
||||
self.assertNotContains(response, "data-locale-selector")
|
||||
|
||||
# Check that the add URLs don't include the locale
|
||||
add_url = reverse("wagtailsnippets_tests_advert:add")
|
||||
|
@ -4840,7 +4831,7 @@ class TestAdminSnippetChooserWidget(WagtailTestUtils, TestCase):
|
|||
self.assertInHTML(
|
||||
'<input type="hidden" name="__NAME__" id="__ID__">', js_args[0]
|
||||
)
|
||||
self.assertIn(">Choose advert<", js_args[0])
|
||||
self.assertIn("Choose advert", js_args[0])
|
||||
self.assertEqual(js_args[1], "__ID__")
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue