From 197a439cc4c6b61fac3db0e8d60ca16411673e0d Mon Sep 17 00:00:00 2001 From: Jan Lehnardt Date: Thu, 10 Jul 2008 19:47:37 +0000 Subject: Make RESTful attachment API concurrency aware and the code a little more concise (thanks Damien!) git-svn-id: https://svn.apache.org/repos/asf/incubator/couchdb/trunk@675699 13f79535-47bb-0310-9956-ffa450edef68 --- share/www/script/couch_tests.js | 65 ++++++++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 27 deletions(-) (limited to 'share') diff --git a/share/www/script/couch_tests.js b/share/www/script/couch_tests.js index a0e6b2ff..6a1e72c8 100644 --- a/share/www/script/couch_tests.js +++ b/share/www/script/couch_tests.js @@ -561,54 +561,65 @@ var tests = { // test RESTful doc API - // test without rev, should fail - var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc/foo.txt"); - T(xhr.status == 412); - - db.deleteDocAttachment({_id:"bin_doc"}, "foo.txt"); - var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt"); - T(xhr.status == 404); - - var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc/foo.txt", { - body: "This is not base64 encoded text", - headers:{"Content-Type":"text/plain;charset=utf-8"} + var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc2/foo2.txt", { + body:"This is no base64 encoded text", + headers:{"Content-Type": "text/plain;charset=utf-8"} }); T(xhr.status == 201); - - var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/foo.txt"); - T(xhr.responseText == "This is not base64 encoded text"); + var rev = JSON.parse(xhr.responseText).rev; + + var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc2/foo2.txt"); + T(xhr.responseText == "This is no base64 encoded text"); T(xhr.getResponseHeader("Content-Type") == "text/plain;charset=utf-8"); + + // test without rev, should fail + var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc2/foo2.txt"); + T(xhr.status == 412); + // test with rev, should not fail + var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc2/foo2.txt?rev=" + rev); + T(xhr.status == 200); + + // test binary data - var xhr = CouchDB.request("GET", "/favicon.ico"); - var bin_data = xhr.responseText; - // bin_data = 123; - var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc/favicon.ico", { - headers:{"Content-Type":"image/vnd.microsoft.icon"}, + var bin_data = "JHAPDO*AU£PN ){(3u[d 93DQ9¡€])} ææøo'∂ƒæ≤çæππ•¥∫¶®#†π¶®¥π€ª®˙π8np"; + var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt", { + headers:{"Content-Type":"text/plain;charset=utf-8"}, body:bin_data }); T(xhr.status == 201); var rev = JSON.parse(xhr.responseText).rev; - - var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc/favicon.ico"); + + var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt"); T(xhr.responseText == bin_data); - T(xhr.getResponseHeader("Content-Type") == "image/vnd.microsoft.icon"); + T(xhr.getResponseHeader("Content-Type") == "text/plain;charset=utf-8"); - var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc/favicon.ico", { - headers:{"Content-Type":"image/vnd.microsoft.icon"}, + var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt", { + headers:{"Content-Type":"text/plain;charset=utf-8"}, body:bin_data }); T(xhr.status == 412); - var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc/favicon.ico?rev="+rev, { - headers:{"Content-Type":"image/vnd.microsoft.icon"}, + var xhr = CouchDB.request("PUT", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev, { + headers:{"Content-Type":"text/plain;charset=utf-8"}, body:bin_data }); T(xhr.status == 201); var rev = JSON.parse(xhr.responseText).rev; - var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc/foo.txt?rev="+rev); + var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt"); + T(xhr.responseText == bin_data); + T(xhr.getResponseHeader("Content-Type") == "text/plain;charset=utf-8"); + + var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev); + T(xhr.responseText == bin_data); + T(xhr.getResponseHeader("Content-Type") == "text/plain;charset=utf-8"); + + var xhr = CouchDB.request("DELETE", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev); T(xhr.status == 200); + + var xhr = CouchDB.request("GET", "/test_suite_db/bin_doc3/attachment.txt?rev=" + rev); + T(xhr.status == 404); }, content_negotiation: function(debug) { -- cgit v1.2.3