Test form-urlencoded doc update Update handlers have access to a form object parsed from an application/x-www-form-urlencoded request.
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/018d114c Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/018d114c Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/018d114c Branch: refs/heads/route-events Commit: 018d114c904f6458f07ce3490c5860c61a88de6c Parents: 2c586f7 Author: Johannes J. Schmidt <[email protected]> Authored: Thu Mar 28 00:11:26 2013 +0100 Committer: Garren Smith <[email protected]> Committed: Thu May 9 09:59:55 2013 +0200 ---------------------------------------------------------------------- share/www/script/test/update_documents.js | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/couchdb/blob/018d114c/share/www/script/test/update_documents.js ---------------------------------------------------------------------- diff --git a/share/www/script/test/update_documents.js b/share/www/script/test/update_documents.js index 32ec72e..8684217 100644 --- a/share/www/script/test/update_documents.js +++ b/share/www/script/test/update_documents.js @@ -50,6 +50,13 @@ couchTests.update_documents = function(debug) { 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 @@ couchTests.update_documents = function(debug) { 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"}
