diff options
| author | Marius Gedminas <marius@gedmin.as> | 2013-03-28 17:29:49 +0200 |
|---|---|---|
| committer | Marius Gedminas <marius@gedmin.as> | 2013-04-01 13:08:26 +0300 |
| commit | 5aa5eef5d36e9fd5dda86c0291c6c849594ce3df (patch) | |
| tree | e42795bd5f432b34741d87a28d51a50a7d6382d6 /tests/test_forms.py | |
| parent | dfe37cb151ec3a09040a26297bb575f29d97dbe6 (diff) | |
| download | webtest-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.py | 32 |
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): |
