services/common/tests/unit/test_storageservice_bso.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* Any copyright is dedicated to the Public Domain.
     2  * http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Cu.import("resource://services-common/storageservice.js");
     6 function run_test() {
     7   initTestLogging("Trace");
     9   run_next_test();
    10 }
    12 add_test(function test_bso_constructor() {
    13   _("Ensure created BSO instances are initialized properly.");
    15   let bso = new BasicStorageObject();
    16   do_check_eq(bso.id, null);
    17   do_check_eq(bso.collection, null);
    18   do_check_attribute_count(bso.data, 0);
    19   do_check_eq(bso.payload, null);
    20   do_check_eq(bso.modified, null);
    21   do_check_eq(bso.sortindex, 0);
    22   do_check_eq(bso.ttl, null);
    24   let bso = new BasicStorageObject("foobar");
    25   do_check_eq(bso.id, "foobar");
    26   do_check_eq(bso.collection, null);
    27   do_check_attribute_count(bso.data, 0);
    29   let bso = new BasicStorageObject("foo", "coll");
    30   do_check_eq(bso.id, "foo");
    31   do_check_eq(bso.collection, "coll");
    32   do_check_attribute_count(bso.data, 0);
    34   run_next_test();
    35 });
    37 add_test(function test_bso_attributes() {
    38   _("Ensure attribute getters and setters work.");
    40   let bso = new BasicStorageObject("foobar");
    41   bso.payload = "pay";
    42   do_check_eq(bso.payload, "pay");
    44   bso.modified = 35423;
    45   do_check_eq(bso.modified, 35423);
    47   bso.sortindex = 10;
    48   do_check_eq(bso.sortindex, 10);
    50   bso.ttl = 60;
    51   do_check_eq(bso.ttl, 60);
    53   run_next_test();
    54 });
    56 add_test(function test_bso_deserialize() {
    57   _("Ensure that deserialize() works.");
    59   _("A simple working test.");
    60   let json = '{"id": "foobar", "payload": "pay", "modified": 1223145532}';
    61   let bso = new BasicStorageObject();
    62   bso.deserialize(json);
    63   do_check_neq(bso, null);
    64   do_check_eq(bso.id, "foobar");
    65   do_check_eq(bso.payload, "pay");
    66   do_check_eq(bso.modified, 1223145532);
    68   _("Invalid JSON.");
    69   let json = '{id: "foobar}';
    70   let bso = new BasicStorageObject();
    71   try {
    72     bso.deserialize(json);
    73     do_check_true(false);
    74   } catch (ex) {
    75     do_check_eq(ex.name, "SyntaxError");
    76   }
    78   _("Invalid key in JSON.");
    79   let json = '{"id": "foo", "payload": "pay", "BADKEY": "irrelevant"}';
    80   let bso = new BasicStorageObject();
    81   try {
    82     bso.deserialize(json);
    83     do_check_true(false);
    84   } catch (ex) {
    85     do_check_eq(ex.name, "Error");
    86     do_check_eq(ex.message.indexOf("Invalid key"), 0);
    87   }
    89   _("Loading native JS objects works.");
    90   let bso = new BasicStorageObject();
    91   bso.deserialize({id: "foo", payload: "pay"});
    92   do_check_neq(bso, null);
    93   do_check_eq(bso.id, "foo");
    94   do_check_eq(bso.payload, "pay");
    96   _("Passing invalid type is caught.");
    97   let bso = new BasicStorageObject();
    98   try {
    99     bso.deserialize(["foo", "bar"]);
   100     do_check_true(false);
   101   } catch (ex) {
   102     do_check_eq(ex.name, "Error");
   103   }
   105   run_next_test();
   106 });
   108 add_test(function test_bso_toJSON() {
   109   _("Ensure JSON serialization works.");
   111   let bso = new BasicStorageObject();
   112   do_check_attribute_count(bso.toJSON(), 0);
   114   bso.id = "foo";
   115   bso.payload = "pay";
   116   let json = bso.toJSON();
   117   let original = json;
   119   do_check_attribute_count(original, 2);
   120   do_check_eq(original.id, "foo");
   121   do_check_eq(original.payload, "pay");
   123   run_next_test();
   124 });

mercurial