diff options
| author | Jan Lehnardt <jan@apache.org> | 2009-10-11 05:49:19 +0000 | 
|---|---|---|
| committer | Jan Lehnardt <jan@apache.org> | 2009-10-11 05:49:19 +0000 | 
| commit | e3610fa481b5c506ca0b69f49a6f350fce8b3399 (patch) | |
| tree | b0050828126b4bf2dda4eb1c977630787d7b0f3a /share/www/script | |
| parent | e3507c9e1bb57986ccffc9324d99bec4d0e4cc58 (diff) | |
add create_target:true option to _replicate that creates the target database
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@824029 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'share/www/script')
| -rw-r--r-- | share/www/script/couch.js | 5 | ||||
| -rw-r--r-- | share/www/script/test/replication.js | 24 | 
2 files changed, 28 insertions, 1 deletions
diff --git a/share/www/script/couch.js b/share/www/script/couch.js index f6c1199a..86465c95 100644 --- a/share/www/script/couch.js +++ b/share/www/script/couch.js @@ -387,9 +387,12 @@ CouchDB.getVersion = function() {  CouchDB.replicate = function(source, target, rep_options) {    rep_options = rep_options || {};    var headers = rep_options.headers || {}; +  var body = rep_options.body || {}; +  body.source = source; +  body.target = target;    CouchDB.last_req = CouchDB.request("POST", "/_replicate", {      headers: headers, -    body: JSON.stringify({source: source, target: target}) +    body: JSON.stringify(body)    });    CouchDB.maybeThrowError(CouchDB.last_req);    return JSON.parse(CouchDB.last_req.responseText); diff --git a/share/www/script/test/replication.js b/share/www/script/test/replication.js index 210ffa2c..78678937 100644 --- a/share/www/script/test/replication.js +++ b/share/www/script/test/replication.js @@ -277,4 +277,28 @@ couchTests.replication = function(debug) {      T(result2.no_changes == true);      T(result2.session_id == result.session_id);    } + +  // test optional automatic creation of the target db + +  var dbA = new CouchDB("test_suite_db_a", {"X-Couch-Full-Commit":"false"}); +  var dbB = new CouchDB("test_suite_db_b", {"X-Couch-Full-Commit":"false"}); +   +  dbA.deleteDb(); +  dbA.createDb(); +  dbB.deleteDb(); +   +  // local +  CouchDB.replicate(dbA.name, "test_suite_db_b", { +    body: {"create_target": true} +  }); +  TEquals("test_suite_db_b", dbB.info().db_name, +    "Target database should exist"); + +  // remote +  dbB.deleteDb(); +  CouchDB.replicate(dbA.name, "http://" + CouchDB.host + "/test_suite_db_b", { +    body: {"create_target": true} +  }); +  TEquals("test_suite_db_b", dbB.info().db_name, +    "Target database should exist");  };  | 
