diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/www/script/couch_tests.js | 102 |
1 files changed, 56 insertions, 46 deletions
diff --git a/share/www/script/couch_tests.js b/share/www/script/couch_tests.js index 78307062..b35e66ce 100644 --- a/share/www/script/couch_tests.js +++ b/share/www/script/couch_tests.js @@ -124,53 +124,9 @@ 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:2}); - 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 over = db.open("doc_to_be_overwritten"); - T(rev != over._rev); - T(over.v == 1); + // make sure we can still open the old rev of the deleted doc + T(db.open(existingDoc._id, {rev: existingDoc._rev}).ok); }, // Do some edit conflict detection tests @@ -250,6 +206,60 @@ var tests = { } }, + copy_move_doc: function(debug) { + var db = new CouchDB("test_suite_db"); + db.deleteDb(); + db.createDb(); + if (debug) debugger; + + // 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:2}); + 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 over = db.open("doc_to_be_overwritten"); + T(rev != over._rev); + T(over.v == 1); + }, + uuids: function(debug) { var db = new CouchDB("test_suite_db"); db.deleteDb(); |