1
0
mirror of https://github.com/django/django.git synced 2025-10-26 07:06:08 +00:00

Fixed #32647 -- Restored multi-row select with shift-modifier in admin changelist.

Regression in 30e59705fc.
This commit is contained in:
Carlton Gibson
2021-04-15 17:15:28 +02:00
parent 54e94640ac
commit 5c73fbb6a9
3 changed files with 52 additions and 1 deletions

View File

@@ -1381,6 +1381,28 @@ class SeleniumTests(AdminSeleniumTestCase):
self.assertIs(all_selector.get_property('checked'), False)
self.assertEqual(row.get_attribute('class'), '')
def test_modifier_allows_multiple_section(self):
"""
Selecting a row and then selecting another row whilst holding shift
should select all rows in-between.
"""
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
Parent.objects.bulk_create([Parent(name='parent%d' % i) for i in range(5)])
self.admin_login(username='super', password='secret')
self.selenium.get(self.live_server_url + reverse('admin:admin_changelist_parent_changelist'))
checkboxes = self.selenium.find_elements_by_css_selector('tr input.action-select')
self.assertEqual(len(checkboxes), 5)
for c in checkboxes:
self.assertIs(c.get_property('checked'), False)
# Check first row. Hold-shift and check next-to-last row.
checkboxes[0].click()
ActionChains(self.selenium).key_down(Keys.SHIFT).click(checkboxes[-2]).key_up(Keys.SHIFT).perform()
for c in checkboxes[:-2]:
self.assertIs(c.get_property('checked'), True)
self.assertIs(checkboxes[-1].get_property('checked'), False)
def test_select_all_across_pages(self):
Parent.objects.bulk_create([Parent(name='parent%d' % i) for i in range(101)])
self.admin_login(username='super', password='secret')