summaryrefslogtreecommitdiff
path: root/share/www
diff options
context:
space:
mode:
authorDamien F. Katz <damien@apache.org>2009-05-06 19:11:10 +0000
committerDamien F. Katz <damien@apache.org>2009-05-06 19:11:10 +0000
commit4b5e0a20aa087dd26df644c0432627aa3e5826d4 (patch)
tree1494b164fdef4004bff44aa39edbc2f1bf60d8f3 /share/www
parent887c9b1a8b551272c3ca06906cfdc4fb901830a8 (diff)
First cut at _changes api. Update the by_id and by_seq indexes to contain update seq numbers and pointers to bodies on disk, for use in the _changes api. This is a new file version, but the code can continue to serve the old 0.9 version without problems, though certain features in the _changes api will not be able to work. Upgrade to new file version (from 1 to 2) by compacting the file. Also fixed bugs with how the stats api tracks open databases.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@772406 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www')
-rw-r--r--share/www/script/couch.js13
-rw-r--r--share/www/script/couch_tests.js1
-rw-r--r--share/www/script/test/changes.js38
-rw-r--r--share/www/script/test/replication.js2
4 files changed, 48 insertions, 6 deletions
diff --git a/share/www/script/couch.js b/share/www/script/couch.js
index 4586cca8..8f3d96ad 100644
--- a/share/www/script/couch.js
+++ b/share/www/script/couch.js
@@ -319,16 +319,19 @@ CouchDB.replicate = function(source, target, rep_options) {
return JSON.parse(CouchDB.last_req.responseText);
}
-CouchDB.request = function(method, uri, options) {
- options = options || {};
- var req = null;
+CouchDB.newXhr = function() {
if (typeof(XMLHttpRequest) != "undefined") {
- req = new XMLHttpRequest();
+ return new XMLHttpRequest();
} else if (typeof(ActiveXObject) != "undefined") {
- req = new ActiveXObject("Microsoft.XMLHTTP");
+ return new ActiveXObject("Microsoft.XMLHTTP");
} else {
throw new Error("No XMLHTTPRequest support detected");
}
+}
+
+CouchDB.request = function(method, uri, options) {
+ options = options || {};
+ var req = CouchDB.newXhr();
req.open(method, uri, false);
if (options.headers) {
var headers = options.headers;
diff --git a/share/www/script/couch_tests.js b/share/www/script/couch_tests.js
index 6e4699e4..62e877d8 100644
--- a/share/www/script/couch_tests.js
+++ b/share/www/script/couch_tests.js
@@ -60,6 +60,7 @@ loadTest("view_offsets.js");
loadTest("view_pagination.js");
loadTest("view_sandboxing.js");
loadTest("view_xml.js");
+loadTest("changes.js");
loadTest("replication.js");
loadTest("etags_head.js");
loadTest("etags_views.js");
diff --git a/share/www/script/test/changes.js b/share/www/script/test/changes.js
new file mode 100644
index 00000000..fef2bcca
--- /dev/null
+++ b/share/www/script/test/changes.js
@@ -0,0 +1,38 @@
+// 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.changes = function(debug) {
+ var db = new CouchDB("test_suite_db");
+ db.deleteDb();
+ db.createDb();
+ if (debug) debugger;
+
+
+ var req = CouchDB.newXhr();
+
+ req.open("GET", "/test_suite_db/_changes", false);
+ req.send("");
+ var resp = JSON.parse(req.responseText);
+
+ T(resp.results.length == 0 && resp.last_seq==0)
+
+ var doc = {_id:"foo", bar:1};
+ db.save(doc);
+
+ req.open("GET", "/test_suite_db/_changes", false);
+ req.send("");
+ var resp = JSON.parse(req.responseText);
+
+ T(resp.results.length == 1 && resp.last_seq==1)
+ T(resp.results[0].changes[0].rev == doc._rev)
+
+};
diff --git a/share/www/script/test/replication.js b/share/www/script/test/replication.js
index d76d2fd8..405b0b1d 100644
--- a/share/www/script/test/replication.js
+++ b/share/www/script/test/replication.js
@@ -189,7 +189,7 @@ couchTests.replication = function(debug) {
dbB.save({_id:"foo",value:"b"});
};
- this.afterBA1 = function(dbA, dbB) {
+ this.afterBA1 = function(dbA, dbB) {
var docA = dbA.open("foo", {conflicts: true});
var docB = dbB.open("foo", {conflicts: true});