Test form-urlencoded doc update

Update handlers have access to a form object parsed from an
application/x-www-form-urlencoded request.
diff --git a/script/test/update_documents.js b/script/test/update_documents.js
index 32ec72e..8684217 100644
--- a/script/test/update_documents.js
+++ b/script/test/update_documents.js
@@ -50,6 +50,13 @@
         doc[field] = value;
         return [doc, message];
       }),
+      "form-update" : stringFun(function(doc, req) {
+        for (var field in req.form) {
+          doc[field] = req.form[field];
+        }
+        var message = "updated doc from form";
+        return [doc, message];
+      }),
       "bump-counter" : stringFun(function(doc, req) {
         if (!doc.counter) doc.counter = 0;
         doc.counter += 1;
@@ -156,6 +163,17 @@
   doc = db.open(docid);
   T(doc.title == "test");
   
+  // form update via application/x-www-form-urlencoded
+  xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/form-update/"+docid, {
+    headers : {"Content-Type":"application/x-www-form-urlencoded"},
+    body    : "formfoo=bar&formbar=foo"
+  });
+  TEquals(201, xhr.status);
+  TEquals("updated doc from form", xhr.responseText);
+  doc = db.open(docid);
+  TEquals("bar", doc.formfoo);
+  TEquals("foo", doc.formbar);
+  
   // bump counter
   xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/bump-counter/"+docid, {
     headers : {"X-Couch-Full-Commit":"true"}