зеркало из https://github.com/mozilla/gecko-dev.git
merge weave
This commit is contained in:
Коммит
c907eea30f
|
@ -158,6 +158,7 @@ CollectionIterator.prototype = {
|
|||
let record = new this._coll._recordObj();
|
||||
record.deserialize(JSON.stringify(item)); // FIXME: inefficient
|
||||
record.baseUri = this._coll.uri;
|
||||
record.id = record.data.id;
|
||||
|
||||
self.done(record);
|
||||
};
|
||||
|
|
|
@ -52,6 +52,7 @@ function WBORecord(uri) {
|
|||
this._WBORec_init(uri);
|
||||
}
|
||||
WBORecord.prototype = {
|
||||
id: null,
|
||||
deleted: false,
|
||||
_logName: "Record.WBO",
|
||||
|
||||
|
@ -72,7 +73,7 @@ WBORecord.prototype = {
|
|||
if (typeof(value) != "string")
|
||||
value = value.spec;
|
||||
let foo = value.split('/');
|
||||
this.data.id = foo.pop();
|
||||
this.id = foo.pop();
|
||||
this.baseUri = Utils.makeURI(foo.join('/') + '/');
|
||||
},
|
||||
|
||||
|
@ -126,7 +127,7 @@ WBORecord.prototype = {
|
|||
].join("\n ") + " }",
|
||||
};
|
||||
|
||||
Utils.deferGetSet(WBORecord, "data", ["id", "parentid", "modified", "depth",
|
||||
Utils.deferGetSet(WBORecord, "data", ["parentid", "modified", "depth",
|
||||
"sortindex", "payload"]);
|
||||
|
||||
Utils.lazy(this, 'Records', RecordManager);
|
||||
|
|
|
@ -4,6 +4,7 @@ try {
|
|||
Cu.import("resource://weave/async.js");
|
||||
Cu.import("resource://weave/auth.js");
|
||||
Cu.import("resource://weave/identity.js");
|
||||
Cu.import("resource://weave/resource.js");
|
||||
Cu.import("resource://weave/base_records/wbo.js");
|
||||
} catch (e) { do_throw(e); }
|
||||
|
||||
|
@ -11,11 +12,18 @@ Function.prototype.async = Async.sugar;
|
|||
|
||||
function record_handler(metadata, response) {
|
||||
let obj = {id: "asdf-1234-asdf-1234",
|
||||
modified: "2454725.98283",
|
||||
modified: 2454725.98283,
|
||||
payload: JSON.stringify({cheese: "roquefort"})};
|
||||
return httpd_basic_auth_handler(JSON.stringify(obj), metadata, response);
|
||||
}
|
||||
|
||||
function record_handler2(metadata, response) {
|
||||
let obj = {id: "record2",
|
||||
modified: 2454725.98284,
|
||||
payload: JSON.stringify({cheese: "gruyere"})};
|
||||
return httpd_basic_auth_handler(JSON.stringify(obj), metadata, response);
|
||||
}
|
||||
|
||||
function async_test() {
|
||||
let self = yield;
|
||||
let server;
|
||||
|
@ -26,27 +34,41 @@ function async_test() {
|
|||
|
||||
log.info("Setting up server and authenticator");
|
||||
|
||||
server = httpd_setup({"/record": record_handler});
|
||||
server = httpd_setup({"/record": record_handler,
|
||||
"/record2": record_handler2});
|
||||
|
||||
let auth = new BasicAuthenticator(new Identity("secret", "guest", "guest"));
|
||||
Auth.defaultAuthenticator = auth;
|
||||
|
||||
log.info("Getting a WBO record");
|
||||
|
||||
let res = new WBORecord("http://localhost:8080/record");
|
||||
let rec = yield res.get(self.cb);
|
||||
let res = new Resource("http://localhost:8080/record");
|
||||
yield res.get(self.cb);
|
||||
|
||||
let rec = new WBORecord(res.uri.spec);
|
||||
rec.deserialize(res.data);
|
||||
|
||||
do_check_eq(rec.id, "record"); // NOT "asdf-1234-asdf-1234"!
|
||||
do_check_eq(rec.modified, 2454725.98283);
|
||||
do_check_eq(typeof(rec.payload), "object");
|
||||
do_check_eq(rec.payload.cheese, "roquefort");
|
||||
do_check_eq(res.lastRequest.status, 200);
|
||||
do_check_eq(res.lastChannel.responseStatus, 200);
|
||||
|
||||
log.info("Getting a WBO record using the record manager");
|
||||
|
||||
let rec2 = yield Records.get(self.cb, "http://localhost:8080/record2");
|
||||
do_check_eq(rec2.id, "record2");
|
||||
do_check_eq(rec2.modified, 2454725.98284);
|
||||
do_check_eq(typeof(rec2.payload), "object");
|
||||
do_check_eq(rec2.payload.cheese, "gruyere");
|
||||
do_check_eq(Records.lastResource.lastChannel.responseStatus, 200);
|
||||
|
||||
log.info("Done!");
|
||||
do_test_finished();
|
||||
}
|
||||
catch (e) { do_throw(e); }
|
||||
finally { server.stop(); }
|
||||
|
||||
|
||||
self.done();
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче