diff options
Diffstat (limited to 'share/www/script/test/etags_views.js')
-rw-r--r-- | share/www/script/test/etags_views.js | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/share/www/script/test/etags_views.js b/share/www/script/test/etags_views.js deleted file mode 100644 index a12734f8..00000000 --- a/share/www/script/test/etags_views.js +++ /dev/null @@ -1,126 +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.etags_views = 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/etags", - language: "javascript", - views : { - basicView : { - map : stringFun(function(doc) { - emit(doc.integer, doc.string); - }) - }, - withReduce : { - map : stringFun(function(doc) { - emit(doc.integer, doc.string); - }), - reduce : stringFun(function(keys, values, rereduce) { - if (rereduce) { - return sum(values); - } else { - return values.length; - } - }) - } - } - } - T(db.save(designDoc).ok); - var xhr; - var docs = makeDocs(0, 10); - db.bulkSave(docs); - - // verify get w/Etag on map view - xhr = CouchDB.request("GET", "/test_suite_db/_design/etags/_view/basicView"); - T(xhr.status == 200); - var etag = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("GET", "/test_suite_db/_design/etags/_view/basicView", { - headers: {"if-none-match": etag} - }); - T(xhr.status == 304); - // TODO GET with keys (when that is available) - - // reduce view - xhr = CouchDB.request("GET", "/test_suite_db/_design/etags/_view/withReduce"); - T(xhr.status == 200); - var etag = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("GET", "/test_suite_db/_design/etags/_view/withReduce", { - headers: {"if-none-match": etag} - }); - T(xhr.status == 304); - - // confirm ETag changes with different POST bodies - xhr = CouchDB.request("POST", "/test_suite_db/_design/etags/_view/basicView", - {body: JSON.stringify({keys:[1]})} - ); - var etag1 = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("POST", "/test_suite_db/_design/etags/_view/basicView", - {body: JSON.stringify({keys:[2]})} - ); - var etag2 = xhr.getResponseHeader("etag"); - T(etag1 != etag2, "POST to map view generates key-depdendent ETags"); - - xhr = CouchDB.request("POST", - "/test_suite_db/_design/etags/_view/withReduce?group=true", - {body: JSON.stringify({keys:[1]})} - ); - etag1 = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("POST", - "/test_suite_db/_design/etags/_view/withReduce?group=true", - {body: JSON.stringify({keys:[2]})} - ); - etag2 = xhr.getResponseHeader("etag"); - T(etag1 != etag2, "POST to reduce view generates key-depdendent ETags"); - - // all docs - xhr = CouchDB.request("GET", "/test_suite_db/_all_docs"); - T(xhr.status == 200); - var etag = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("GET", "/test_suite_db/_all_docs", { - headers: {"if-none-match": etag} - }); - T(xhr.status == 304); - - // _changes - xhr = CouchDB.request("GET", "/test_suite_db/_changes"); - T(xhr.status == 200); - var etag = xhr.getResponseHeader("etag"); - xhr = CouchDB.request("GET", "/test_suite_db/_changes", { - headers: {"if-none-match": etag} - }); - T(xhr.status == 304); - - // list etag - // in the list test for now - - // A new database should have unique _all_docs etags. - db.deleteDb(); - db.createDb(); - db.save({a: 1}); - xhr = CouchDB.request("GET", "/test_suite_db/_all_docs"); - var etag = xhr.getResponseHeader("etag"); - db.deleteDb(); - db.createDb(); - db.save({a: 2}); - xhr = CouchDB.request("GET", "/test_suite_db/_all_docs"); - var new_etag = xhr.getResponseHeader("etag"); - T(etag != new_etag); - // but still be cacheable - xhr = CouchDB.request("GET", "/test_suite_db/_all_docs"); - T(new_etag == xhr.getResponseHeader("etag")); - -}; |