summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms
diff options
context:
space:
mode:
authorChris Beaven <smileychris@gmail.com>2011-09-18 04:09:44 +0000
committerChris Beaven <smileychris@gmail.com>2011-09-18 04:09:44 +0000
commite63fa0ff832e4a6c18aa9f427b643b3445c5abb0 (patch)
tree347b26d96b63ca393300df65878eab8866820d03 /tests/regressiontests/forms
parent1ec25c4fb7df0fdbc30bb7ae1e06e97451dec361 (diff)
Fixes #8103 -- Select widget should only allow for one selected option
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16848 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms')
-rw-r--r--tests/regressiontests/forms/tests/widgets.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/tests/regressiontests/forms/tests/widgets.py b/tests/regressiontests/forms/tests/widgets.py
index b4ceb2fcff..e6667f7629 100644
--- a/tests/regressiontests/forms/tests/widgets.py
+++ b/tests/regressiontests/forms/tests/widgets.py
@@ -12,7 +12,6 @@ from django.utils.translation import activate, deactivate
from django.utils.unittest import TestCase
-
class FormsWidgetTestCase(TestCase):
# Each Widget class corresponds to an HTML form widget. A Widget knows how to
# render itself, given a field name and some data. Widgets don't perform
@@ -257,6 +256,15 @@ class FormsWidgetTestCase(TestCase):
<option value="R">Ringo</option>
</select>""")
+ # Only one option can be selected, see #8103:
+ self.assertEqual(w.render('choices', '0', choices=(('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('0', 'extra'))), """<select name="choices">
+<option value="0" selected="selected">0</option>
+<option value="1">1</option>
+<option value="2">2</option>
+<option value="3">3</option>
+<option value="0">extra</option>
+</select>""")
+
# The value is compared to its str():
self.assertEqual(w.render('num', 2, choices=[('1', '1'), ('2', '2'), ('3', '3')]), """<select name="num">
<option value="1">1</option>
@@ -440,6 +448,15 @@ class FormsWidgetTestCase(TestCase):
<option value="R">Ringo</option>
</select>""")
+ # Multiple options (with the same value) can be selected, see #8103:
+ self.assertEqual(w.render('choices', ['0'], choices=(('0', '0'), ('1', '1'), ('2', '2'), ('3', '3'), ('0', 'extra'))), """<select multiple="multiple" name="choices">
+<option value="0" selected="selected">0</option>
+<option value="1">1</option>
+<option value="2">2</option>
+<option value="3">3</option>
+<option value="0" selected="selected">extra</option>
+</select>""")
+
# If multiple values are given, but some of them are not valid, the valid ones are selected:
self.assertEqual(w.render('beatles', ['J', 'G', 'foo'], choices=(('J', 'John'), ('P', 'Paul'), ('G', 'George'), ('R', 'Ringo'))), """<select multiple="multiple" name="beatles">
<option value="J" selected="selected">John</option>