summaryrefslogtreecommitdiff
path: root/share/www/script
diff options
context:
space:
mode:
authorJan Lehnardt <jan@apache.org>2008-08-12 14:48:06 +0000
committerJan Lehnardt <jan@apache.org>2008-08-12 14:48:06 +0000
commit5907899532a9bff896d25cbbd9651f2fe88d2300 (patch)
tree1155e3624e383b84d22a43a2150910c059488a1c /share/www/script
parenta80e18ffb5ab0636b08152a7d5c22bac82ea706a (diff)
HTTP COPY & MOVE for documents with tests
git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@685171 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/script')
-rw-r--r--share/www/script/couch_tests.js51
1 files changed, 49 insertions, 2 deletions
diff --git a/share/www/script/couch_tests.js b/share/www/script/couch_tests.js
index 08c1bbe9..728aad33 100644
--- a/share/www/script/couch_tests.js
+++ b/share/www/script/couch_tests.js
@@ -115,6 +115,53 @@ var tests = {
// 1 less document should now be in the results.
T(results.total_rows == 2);
T(db.info().doc_count == 5);
+
+ // copy a doc
+ T(db.save({_id:"doc_to_be_copied",v:1}).ok);
+ var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied", {
+ headers: {"Destination":"doc_that_was_copied"}
+ });
+
+ T(xhr.status == 201);
+ T(db.open("doc_that_was_copied").v == 1);
+
+ // move a doc
+
+ // test error condition
+ var xhr = CouchDB.request("MOVE", "/test_suite_db/doc_to_be_copied", {
+ headers: {"Destination":"doc_that_was_moved"}
+ });
+ T(xhr.status == 400); // bad request, MOVE requires source rev.
+
+ var rev = db.open("doc_to_be_copied")._rev;
+ var xhr = CouchDB.request("MOVE", "/test_suite_db/doc_to_be_copied?rev=" + rev, {
+ headers: {"Destination":"doc_that_was_moved"}
+ });
+
+ T(xhr.status == 201);
+ T(db.open("doc_that_was_moved").v == 1);
+ T(db.open("doc_to_be_copied") == null);
+
+ // COPY with existing target
+ T(db.save({_id:"doc_to_be_copied",v:1}).ok);
+ var doc = db.save({_id:"doc_to_be_overwritten",v:1});
+ T(doc.ok);
+
+ // error condition
+ var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied", {
+ headers: {"Destination":"doc_to_be_overwritten"}
+ });
+ T(xhr.status == 412); // conflict
+
+ var rev = db.open("doc_to_be_overwritten")._rev;
+ var xhr = CouchDB.request("COPY", "/test_suite_db/doc_to_be_copied", {
+ headers: {"Destination":"doc_to_be_overwritten?rev=" + rev}
+ });
+ T(xhr.status == 201);
+
+ var newRev = db.open("doc_to_be_overwritten")._rev;
+ T(rev != newRev);
+
},
// Do some edit conflict detection tests
@@ -414,8 +461,8 @@ var tests = {
// This is the reduce phase, we are reducing over emitted values from
// the map functions.
for(var i in values) {
- total = total + values[i]
- sqrTotal = sqrTotal + (values[i] * values[i])
+ total = total + values[i];
+ sqrTotal = sqrTotal + (values[i] * values[i]);
}
count = values.length;
}