summaryrefslogtreecommitdiff
path: root/tests/test_forms.py
diff options
context:
space:
mode:
authorMarius Gedminas <marius@gedmin.as>2013-03-28 17:29:49 +0200
committerMarius Gedminas <marius@gedmin.as>2013-04-01 13:08:26 +0300
commit5aa5eef5d36e9fd5dda86c0291c6c849594ce3df (patch)
treee42795bd5f432b34741d87a28d51a50a7d6382d6 /tests/test_forms.py
parentdfe37cb151ec3a09040a26297bb575f29d97dbe6 (diff)
downloadwebtest-5aa5eef5d36e9fd5dda86c0291c6c849594ce3df.tar.gz
Handle the short form of <select multiple>
See http://www.w3.org/TR/REC-html40/interact/forms.html#adef-multiple if you need convincing that this is valid HTML (first example, a couple of pages down).
Diffstat (limited to 'tests/test_forms.py')
-rw-r--r--tests/test_forms.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/tests/test_forms.py b/tests/test_forms.py
index 1370614..5d93180 100644
--- a/tests/test_forms.py
+++ b/tests/test_forms.py
@@ -237,7 +237,7 @@ def select_app(environ, start_response):
<input name="button" type="submit" value="single">
</form>
<form method="POST" id="multiple_select_form">
- <select id="multiple" name="multiple" multiple="multiple">
+ <select id="multiple" name="multiple" multiple>
<option value="8" selected="selected">Eight</option>
<option value="9">Nine</option>
<option value="10">Ten</option>
@@ -293,9 +293,9 @@ def select_app_without_values(environ, start_response):
<form method="POST" id="multiple_select_form">
<select id="multiple" name="multiple" multiple="multiple">
<option>Eight</option>
- <option>Nine</option>
+ <option selected value="Nine">Nine</option>
<option>Ten</option>
- <option>Eleven</option>
+ <option selected>Eleven</option>
</select>
<input name="button" type="submit" value="multiple">
</form>
@@ -625,6 +625,32 @@ class TestSelect(unittest.TestCase):
display = single_form.submit("button")
self.assertIn("<p>You selected Six</p>", display, display)
+ def test_multiple_select_no_value(self):
+ app = webtest.TestApp(select_app_without_values)
+ res = app.get('/')
+ self.assertEqual(res.status_int, 200)
+ self.assertEqual(res.headers['content-type'],
+ 'text/html; charset=utf-8')
+ self.assertEqual(res.content_type, 'text/html')
+
+ multiple_form = res.forms["multiple_select_form"]
+ self.assertEqual(multiple_form["multiple"].value, ["Nine", "Eleven"])
+ display = multiple_form.submit("button")
+ self.assertIn("<p>You selected Nine, Eleven</p>", display, display)
+
+ res = app.get('/')
+ self.assertEqual(res.status_int, 200)
+ self.assertEqual(res.headers['content-type'],
+ 'text/html; charset=utf-8')
+ self.assertEqual(res.content_type, 'text/html')
+
+ multiple_form = res.forms["multiple_select_form"]
+ self.assertEqual(multiple_form["multiple"].value, ["Nine", "Eleven"])
+ multiple_form.set("multiple", ["Nine", "Ten"])
+ self.assertEqual(multiple_form["multiple"].value, ["Nine", "Ten"])
+ display = multiple_form.submit("button")
+ self.assertIn("<p>You selected Nine, Ten</p>", display, display)
+
class SingleUploadFileApp(object):