summaryrefslogtreecommitdiff
path: root/tests/admin_changelist
diff options
context:
space:
mode:
authorMarcelo Galigniana <marcelogaligniana@gmail.com>2022-02-14 00:03:53 -0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-04-26 08:44:31 +0200
commit27aa7035f57f0db30b6632e4274e18b430906799 (patch)
tree8573068be094049e218fe2b35c8a67b123451d86 /tests/admin_changelist
parent37602e49484a88867f40e9498f86c49c2d1c5d7c (diff)
downloaddjango-27aa7035f57f0db30b6632e4274e18b430906799.tar.gz
Fixed #27471 -- Made admin's filter choices collapsable.
Diffstat (limited to 'tests/admin_changelist')
-rw-r--r--tests/admin_changelist/tests.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py
index e24654dfcb..24c24a670b 100644
--- a/tests/admin_changelist/tests.py
+++ b/tests/admin_changelist/tests.py
@@ -1810,3 +1810,55 @@ class SeleniumTests(AdminSeleniumTestCase):
)
finally:
alert.dismiss()
+
+ def test_collapse_filters(self):
+ from selenium.webdriver.common.by import By
+
+ self.admin_login(username="super", password="secret")
+ self.selenium.get(self.live_server_url + reverse("admin:auth_user_changelist"))
+
+ # The UserAdmin has 3 field filters by default: "staff status",
+ # "superuser status", and "active".
+ details = self.selenium.find_elements(By.CSS_SELECTOR, "details")
+ # All filters are opened at first.
+ for detail in details:
+ self.assertTrue(detail.get_attribute("open"))
+ # Collapse "staff' and "superuser" filters.
+ for detail in details[:2]:
+ summary = detail.find_element(By.CSS_SELECTOR, "summary")
+ summary.click()
+ self.assertFalse(detail.get_attribute("open"))
+ # Filters are in the same state after refresh.
+ self.selenium.refresh()
+ self.assertFalse(
+ self.selenium.find_element(
+ By.CSS_SELECTOR, "[data-filter-title='staff status']"
+ ).get_attribute("open")
+ )
+ self.assertFalse(
+ self.selenium.find_element(
+ By.CSS_SELECTOR, "[data-filter-title='superuser status']"
+ ).get_attribute("open")
+ )
+ self.assertTrue(
+ self.selenium.find_element(
+ By.CSS_SELECTOR, "[data-filter-title='active']"
+ ).get_attribute("open")
+ )
+ # Collapse a filter on another view (Bands).
+ self.selenium.get(
+ self.live_server_url + reverse("admin:admin_changelist_band_changelist")
+ )
+ self.selenium.find_element(By.CSS_SELECTOR, "summary").click()
+ # Go to Users view and then, back again to Bands view.
+ self.selenium.get(self.live_server_url + reverse("admin:auth_user_changelist"))
+ self.selenium.get(
+ self.live_server_url + reverse("admin:admin_changelist_band_changelist")
+ )
+ # The filter remains in the same state.
+ self.assertFalse(
+ self.selenium.find_element(
+ By.CSS_SELECTOR,
+ "[data-filter-title='number of members']",
+ ).get_attribute("open")
+ )