summaryrefslogtreecommitdiff
path: root/share/www/script/test/update_documents.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/www/script/test/update_documents.js')
-rw-r--r--share/www/script/test/update_documents.js164
1 files changed, 0 insertions, 164 deletions
diff --git a/share/www/script/test/update_documents.js b/share/www/script/test/update_documents.js
deleted file mode 100644
index da68d621..00000000
--- a/share/www/script/test/update_documents.js
+++ /dev/null
@@ -1,164 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License"); you may not
-// use this file except in compliance with the License. You may obtain a copy
-// of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-// License for the specific language governing permissions and limitations under
-// the License.
-
-
-couchTests.update_documents = function(debug) {
- var db = new CouchDB("test_suite_db", {"X-Couch-Full-Commit":"false"});
- db.deleteDb();
- db.createDb();
- if (debug) debugger;
-
- var designDoc = {
- _id:"_design/update",
- language: "javascript",
- updates: {
- "hello" : stringFun(function(doc, req) {
- log(doc);
- log(req);
- if (!doc) {
- if (req.id) {
- return [
- // Creates a new document with the PUT docid,
- { _id : req.id,
- reqs : [req] },
- // and returns an HTML response to the client.
- "<p>New World</p>"];
- };
- //
- return [null, "<p>Empty World</p>"];
- };
- // we can update the document inline
- doc.world = "hello";
- // we can record aspects of the request or use them in application logic.
- doc.reqs && doc.reqs.push(req);
- doc.edited_by = req.userCtx;
- return [doc, "<p>hello doc</p>"];
- }),
- "in-place" : stringFun(function(doc, req) {
- var field = req.query.field;
- var value = req.query.value;
- var message = "set "+field+" to "+value;
- doc[field] = value;
- return [doc, message];
- }),
- "bump-counter" : stringFun(function(doc, req) {
- if (!doc.counter) doc.counter = 0;
- doc.counter += 1;
- var message = "<h1>bumped it!</h1>";
- return [doc, message];
- }),
- "error" : stringFun(function(doc, req) {
- superFail.badCrash;
- }),
- "xml" : stringFun(function(doc, req) {
- var xml = new XML('<xml></xml>');
- xml.title = doc.title;
- var posted_xml = new XML(req.body);
- doc.via_xml = posted_xml.foo.toString();
- var resp = {
- "headers" : {
- "Content-Type" : "application/xml"
- },
- "body" : xml.toXMLString()
- };
-
- return [doc, resp];
- }),
- "get-uuid" : stringFun(function(doc, req) {
- return [null, req.uuid];
- })
- }
- };
- T(db.save(designDoc).ok);
-
- var doc = {"word":"plankton", "name":"Rusty"}
- var resp = db.save(doc);
- T(resp.ok);
- var docid = resp.id;
-
- // update error
- var xhr = CouchDB.request("POST", "/test_suite_db/_design/update/_update/");
- T(xhr.status == 404, 'Should be missing');
- T(JSON.parse(xhr.responseText).reason == "Invalid path.");
-
- // hello update world
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/hello/"+docid);
- T(xhr.status == 201);
- T(xhr.responseText == "<p>hello doc</p>");
- T(/charset=utf-8/.test(xhr.getResponseHeader("Content-Type")))
-
- doc = db.open(docid);
- T(doc.world == "hello");
-
- // Fix for COUCHDB-379
- T(equals(xhr.getResponseHeader("Server").substr(0,7), "CouchDB"));
-
- // hello update world (no docid)
- xhr = CouchDB.request("POST", "/test_suite_db/_design/update/_update/hello");
- T(xhr.status == 200);
- T(xhr.responseText == "<p>Empty World</p>");
-
- // no GET allowed
- xhr = CouchDB.request("GET", "/test_suite_db/_design/update/_update/hello");
- // T(xhr.status == 405); // TODO allow qs to throw error code as well as error message
- T(JSON.parse(xhr.responseText).error == "method_not_allowed");
-
- // // hello update world (non-existing docid)
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/hello/nonExistingDoc");
- T(xhr.status == 201);
- T(xhr.responseText == "<p>New World</p>");
-
- // in place update
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/in-place/"+docid+'?field=title&value=test');
- T(xhr.status == 201);
- T(xhr.responseText == "set title to test");
- doc = db.open(docid);
- T(doc.title == "test");
-
- // bump counter
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/bump-counter/"+docid, {
- headers : {"X-Couch-Full-Commit":"true"}
- });
- T(xhr.status == 201);
- T(xhr.responseText == "<h1>bumped it!</h1>");
- doc = db.open(docid);
- T(doc.counter == 1);
-
- // _update honors full commit if you need it to
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/bump-counter/"+docid, {
- headers : {"X-Couch-Full-Commit":"true"}
- });
-
- var NewRev = xhr.getResponseHeader("X-Couch-Update-NewRev");
- doc = db.open(docid);
- T(doc['_rev'] == NewRev);
-
-
- T(doc.counter == 2);
-
- // parse xml
- xhr = CouchDB.request("PUT", "/test_suite_db/_design/update/_update/xml/"+docid, {
- headers : {"X-Couch-Full-Commit":"true"},
- "body" : '<xml><foo>bar</foo></xml>'
- });
- T(xhr.status == 201);
- T(xhr.responseText == "<xml>\n <title>test</title>\n</xml>");
-
- doc = db.open(docid);
- T(doc.via_xml == "bar");
-
- // Server provides UUID when POSTing without an ID in the URL
- xhr = CouchDB.request("POST", "/test_suite_db/_design/update/_update/get-uuid/");
- T(xhr.status == 200);
- T(xhr.responseText.length == 32);
-
-};