diff options
author | Marcelo Galigniana <marcelogaligniana@gmail.com> | 2022-02-14 00:03:53 -0300 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-04-26 08:44:31 +0200 |
commit | 27aa7035f57f0db30b6632e4274e18b430906799 (patch) | |
tree | 8573068be094049e218fe2b35c8a67b123451d86 /tests/admin_changelist | |
parent | 37602e49484a88867f40e9498f86c49c2d1c5d7c (diff) | |
download | django-27aa7035f57f0db30b6632e4274e18b430906799.tar.gz |
Fixed #27471 -- Made admin's filter choices collapsable.
Diffstat (limited to 'tests/admin_changelist')
-rw-r--r-- | tests/admin_changelist/tests.py | 52 |
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") + ) |