From 51c24d8799fb09f04d0a5deb713eaeceb20d15c7 Mon Sep 17 00:00:00 2001 From: Shubh1815 Date: Mon, 15 Nov 2021 19:57:11 +0530 Subject: Fixed #33024 -- Fixed height of admin selector boxes in collapsed fieldset. Thanks Tom Carrick for the review. --- tests/admin_views/admin.py | 19 +++++++++++++++++++ tests/admin_views/tests.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) (limited to 'tests') diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 3d276b2235..9cd078074b 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -1164,6 +1164,25 @@ site7 = admin.AdminSite(name="admin7") site7.register(Article, ArticleAdmin2) site7.register(Section) site7.register(PrePopulatedPost, PrePopulatedPostReadOnlyAdmin) +site7.register( + Pizza, + filter_horizontal=['toppings'], + fieldsets=( + ('Collapsible', { + 'classes': ['collapse'], + 'fields': ['toppings'], + }), + ), +) +site7.register( + Question, + filter_horizontal=['related_questions'], + fieldsets=( + ('Not collapsible', { + 'fields': ['related_questions'], + }), + ), +) # Used to test ModelAdmin.sortable_by and get_sortable_by(). diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 560d0e6134..2ea27f5312 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -4810,6 +4810,49 @@ class SeleniumTests(AdminSeleniumTestCase): self.assertTrue(self.selenium.find_element(By.ID, 'id_title').is_displayed()) self.assertEqual(self.selenium.find_element(By.ID, 'fieldsetcollapser0').text, "Hide") + def test_selectbox_height_collapsible_fieldset(self): + from selenium.webdriver.common.by import By + + self.admin_login( + username='super', + password='secret', + login_url=reverse('admin7:index'), + ) + url = self.live_server_url + reverse('admin7:admin_views_pizza_add') + self.selenium.get(url) + self.selenium.find_elements(By.LINK_TEXT, 'Show')[0].click() + filter_box = self.selenium.find_element(By.ID, 'id_toppings_filter') + from_box = self.selenium.find_element(By.ID, 'id_toppings_from') + to_box = self.selenium.find_element(By.ID, 'id_toppings_to') + self.assertEqual( + to_box.get_property('offsetHeight'), + ( + filter_box.get_property('offsetHeight') + + from_box.get_property('offsetHeight') + ), + ) + + def test_selectbox_height_not_collapsible_fieldset(self): + from selenium.webdriver.common.by import By + + self.admin_login( + username='super', + password='secret', + login_url=reverse('admin7:index'), + ) + url = self.live_server_url + reverse('admin7:admin_views_question_add') + self.selenium.get(url) + filter_box = self.selenium.find_element(By.ID, 'id_related_questions_filter') + from_box = self.selenium.find_element(By.ID, 'id_related_questions_from') + to_box = self.selenium.find_element(By.ID, 'id_related_questions_to') + self.assertEqual( + to_box.get_property('offsetHeight'), + ( + filter_box.get_property('offsetHeight') + + from_box.get_property('offsetHeight') + ), + ) + def test_first_field_focus(self): """JavaScript-assisted auto-focus on first usable form field.""" from selenium.webdriver.common.by import By -- cgit v1.3