summaryrefslogtreecommitdiff
path: root/share/www/script/test/rev_stemming.js
diff options
context:
space:
mode:
Diffstat (limited to 'share/www/script/test/rev_stemming.js')
-rw-r--r--share/www/script/test/rev_stemming.js99
1 files changed, 0 insertions, 99 deletions
diff --git a/share/www/script/test/rev_stemming.js b/share/www/script/test/rev_stemming.js
deleted file mode 100644
index 03d91c2a..00000000
--- a/share/www/script/test/rev_stemming.js
+++ /dev/null
@@ -1,99 +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.rev_stemming = function(debug) {
- var db = new CouchDB("test_suite_db_a", {"X-Couch-Full-Commit":"false"});
- db.deleteDb();
- db.createDb();
- var dbB = new CouchDB("test_suite_db_b", {"X-Couch-Full-Commit":"false"});
- dbB.deleteDb();
- dbB.createDb();
- if (debug) debugger;
-
- var newLimit = 5;
-
- T(db.getDbProperty("_revs_limit") == 1000);
-
- var doc = {_id:"foo",foo:0}
- for( var i=0; i < newLimit + 1; i++) {
- doc.foo++;
- T(db.save(doc).ok);
- }
- var doc0 = db.open("foo", {revs:true});
- T(doc0._revisions.ids.length == newLimit + 1);
-
- var docBar = {_id:"bar",foo:0}
- for( var i=0; i < newLimit + 1; i++) {
- docBar.foo++;
- T(db.save(docBar).ok);
- }
- T(db.open("bar", {revs:true})._revisions.ids.length == newLimit + 1);
-
- T(db.setDbProperty("_revs_limit", newLimit).ok);
-
- for( var i=0; i < newLimit + 1; i++) {
- doc.foo++;
- T(db.save(doc).ok);
- }
- doc0 = db.open("foo", {revs:true});
- T(doc0._revisions.ids.length == newLimit);
-
-
- // If you replicate after you make more edits than the limit, you'll
- // cause a spurious edit conflict.
- CouchDB.replicate("test_suite_db_a", "test_suite_db_b");
- var docB1 = dbB.open("foo",{conflicts:true})
- T(docB1._conflicts == null);
-
- for( var i=0; i < newLimit - 1; i++) {
- doc.foo++;
- T(db.save(doc).ok);
- }
-
- // one less edit than limit, no conflict
- CouchDB.replicate("test_suite_db_a", "test_suite_db_b");
- var docB1 = dbB.open("foo",{conflicts:true})
- T(docB1._conflicts == null);
-
- //now we hit the limit
- for( var i=0; i < newLimit; i++) {
- doc.foo++;
- T(db.save(doc).ok);
- }
-
- CouchDB.replicate("test_suite_db_a", "test_suite_db_b");
-
- var docB2 = dbB.open("foo",{conflicts:true});
-
- // we have a conflict, but the previous replicated rev is always the losing
- // conflict
- T(docB2._conflicts[0] == docB1._rev)
-
- // We having already updated bar before setting the limit, so it's still got
- // a long rev history. compact to stem the revs.
-
- T(db.open("bar", {revs:true})._revisions.ids.length == newLimit + 1);
-
- T(db.compact().ok);
-
- // compaction isn't instantaneous, loop until done
- while (db.info().compact_running) {};
-
- // force reload because ETags don't honour compaction
- var req = db.request("GET", "/test_suite_db_a/bar?revs=true", {
- headers:{"if-none-match":"pommes"}
- });
-
- var finalDoc = JSON.parse(req.responseText);
- TEquals(newLimit, finalDoc._revisions.ids.length,
- "should return a truncated revision list");
-};