/services/sync/tests/unit/test_records_wbo.js
http://github.com/zpao/v8monkey · JavaScript · 80 lines · 65 code · 14 blank · 1 comment · 0 complexity · 7a960806655a3faece0ab432454776ea MD5 · raw file
- Cu.import("resource://services-sync/record.js");
- Cu.import("resource://services-sync/identity.js");
- Cu.import("resource://services-sync/resource.js");
- Cu.import("resource://services-sync/util.js");
- function test_toJSON() {
- _("Create a record, for now without a TTL.");
- let wbo = new WBORecord("coll", "a_record");
- wbo.modified = 12345;
- wbo.sortindex = 42;
- wbo.payload = {};
- _("Verify that the JSON representation contains the WBO properties, but not TTL.");
- let json = JSON.parse(JSON.stringify(wbo));
- do_check_eq(json.modified, 12345);
- do_check_eq(json.sortindex, 42);
- do_check_eq(json.payload, "{}");
- do_check_false("ttl" in json);
- _("Set a TTL, make sure it's present in the JSON representation.");
- wbo.ttl = 30*60;
- json = JSON.parse(JSON.stringify(wbo));
- do_check_eq(json.ttl, 30*60);
- }
- function test_fetch() {
- let record = {id: "asdf-1234-asdf-1234",
- modified: 2454725.98283,
- payload: JSON.stringify({cheese: "roquefort"})};
- let record2 = {id: "record2",
- modified: 2454725.98284,
- payload: JSON.stringify({cheese: "gruyere"})};
- let coll = [{id: "record2",
- modified: 2454725.98284,
- payload: JSON.stringify({cheese: "gruyere"})}];
- _("Setting up server.");
- let server = httpd_setup({
- "/record": httpd_handler(200, "OK", JSON.stringify(record)),
- "/record2": httpd_handler(200, "OK", JSON.stringify(record2)),
- "/coll": httpd_handler(200, "OK", JSON.stringify(coll))
- });
- do_test_pending();
- try {
- _("Fetching a WBO record");
- let rec = new WBORecord("coll", "record");
- rec.fetch("http://localhost:8080/record");
- do_check_eq(rec.id, "asdf-1234-asdf-1234"); // NOT "record"!
- do_check_eq(rec.modified, 2454725.98283);
- do_check_eq(typeof(rec.payload), "object");
- do_check_eq(rec.payload.cheese, "roquefort");
- _("Fetching a WBO record using the record manager");
- let rec2 = Records.get("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.response.status, 200);
- // Testing collection extraction.
- _("Extracting collection.");
- let rec3 = new WBORecord("tabs", "foo"); // Create through constructor.
- do_check_eq(rec3.collection, "tabs");
- } finally {
- server.stop(do_test_finished);
- }
- }
- function run_test() {
- initTestLogging("Trace");
- test_toJSON();
- test_fetch();
- }