summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJulien Phalip <jphalip@gmail.com>2013-07-30 00:21:08 -0700
committerJulien Phalip <jphalip@gmail.com>2013-07-30 00:21:08 -0700
commite351dbf6ee5d344a0fe73a6d05c7dcad7b1d2e9c (patch)
tree39e2756c9aa060f8d52f6a2601b00c18f98654da /tests
parent6ed579e7eb6e1eda3dd1b0afb306d58b9498bfa0 (diff)
Fixed #19082 -- Enabled admin field pre-population for existing objects.
Thanks to msaelices and d1ffuz0r for the initial patch and tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_views/models.py4
-rw-r--r--tests/admin_views/tests.py44
2 files changed, 46 insertions, 2 deletions
diff --git a/tests/admin_views/models.py b/tests/admin_views/models.py
index 5ec4fbb544..a1131210d7 100644
--- a/tests/admin_views/models.py
+++ b/tests/admin_views/models.py
@@ -644,8 +644,8 @@ class MainPrepopulated(models.Model):
max_length=20,
choices=(('option one', 'Option One'),
('option two', 'Option Two')))
- slug1 = models.SlugField()
- slug2 = models.SlugField()
+ slug1 = models.SlugField(blank=True)
+ slug2 = models.SlugField(blank=True)
class RelatedPrepopulated(models.Model):
parent = models.ForeignKey(MainPrepopulated)
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 19c5207cf9..fdb5d7d436 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -3438,6 +3438,50 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
slug2='option-one-tabular-inline-ignored-characters',
)
+ def test_populate_existing_object(self):
+ """
+ Ensure that the prepopulation works for existing objects too, as long
+ as the original field is empty.
+ Refs #19082.
+ """
+ # Slugs are empty to start with.
+ item = MainPrepopulated.objects.create(
+ name=' this is the mAin nÀMë',
+ pubdate='2012-02-18',
+ status='option two',
+ slug1='',
+ slug2='',
+ )
+ self.admin_login(username='super',
+ password='secret',
+ login_url='/test_admin/admin/')
+
+ object_url = '%s%s' % (
+ self.live_server_url,
+ '/test_admin/admin/admin_views/mainprepopulated/{}/'.format(item.id))
+
+ self.selenium.get(object_url)
+ self.selenium.find_element_by_css_selector('#id_name').send_keys(' the best')
+
+ # The slugs got prepopulated since they were originally empty
+ slug1 = self.selenium.find_element_by_css_selector('#id_slug1').get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector('#id_slug2').get_attribute('value')
+ self.assertEqual(slug1, 'main-name-best-2012-02-18')
+ self.assertEqual(slug2, 'option-two-main-name-best')
+
+ # Save the object
+ self.selenium.find_element_by_xpath('//input[@value="Save"]').click()
+ self.wait_page_loaded()
+
+ self.selenium.get(object_url)
+ self.selenium.find_element_by_css_selector('#id_name').send_keys(' hello')
+
+ # The slugs got prepopulated didn't change since they were originally not empty
+ slug1 = self.selenium.find_element_by_css_selector('#id_slug1').get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector('#id_slug2').get_attribute('value')
+ self.assertEqual(slug1, 'main-name-best-2012-02-18')
+ self.assertEqual(slug2, 'option-two-main-name-best')
+
def test_collapsible_fieldset(self):
"""
Test that the 'collapse' class in fieldsets definition allows to