services/sync/tests/unit/test_tab_store.js

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* Any copyright is dedicated to the Public Domain.
     2    http://creativecommons.org/publicdomain/zero/1.0/ */
     4 Cu.import("resource://services-sync/engines/tabs.js");
     5 Cu.import("resource://services-sync/service.js");
     6 Cu.import("resource://services-sync/util.js");
     7 Cu.import("resource://testing-common/services-common/utils.js");
     9 function getMockStore() {
    10   let engine = new TabEngine(Service);
    11   let store = engine._store;
    12   store.getTabState = mockGetTabState;
    13   store.shouldSkipWindow = mockShouldSkipWindow;
    14   return store;
    15 }
    17 function test_create() {
    18   let store = new TabEngine(Service)._store;
    20   _("Create a first record");
    21   let rec = {id: "id1",
    22              clientName: "clientName1",
    23              cleartext: "cleartext1",
    24              modified: 1000};
    25   store.applyIncoming(rec);
    26   do_check_eq(store._remoteClients["id1"], "cleartext1");
    27   do_check_eq(Svc.Prefs.get("notifyTabState"), 1);
    29   _("Create a second record");
    30   let rec = {id: "id2",
    31              clientName: "clientName2",
    32              cleartext: "cleartext2",
    33              modified: 2000};
    34   store.applyIncoming(rec);
    35   do_check_eq(store._remoteClients["id2"], "cleartext2");
    36   do_check_eq(Svc.Prefs.get("notifyTabState"), 0);
    38   _("Create a third record");
    39   let rec = {id: "id3",
    40              clientName: "clientName3",
    41              cleartext: "cleartext3",
    42              modified: 3000};
    43   store.applyIncoming(rec);
    44   do_check_eq(store._remoteClients["id3"], "cleartext3");
    45   do_check_eq(Svc.Prefs.get("notifyTabState"), 0);
    47   // reset the notifyTabState
    48   Svc.Prefs.reset("notifyTabState");
    49 }
    51 function test_getAllTabs() {
    52   let store = getMockStore();
    53   let tabs;
    55   store.getWindowEnumerator = mockGetWindowEnumerator.bind(this, "http://foo.com", 1, 1);
    57   _("Get all tabs.");
    58   tabs = store.getAllTabs();
    59   _("Tabs: " + JSON.stringify(tabs));
    60   do_check_eq(tabs.length, 1);
    61   do_check_eq(tabs[0].title, "title");
    62   do_check_eq(tabs[0].urlHistory.length, 1);
    63   do_check_eq(tabs[0].urlHistory[0], ["http://foo.com"]);
    64   do_check_eq(tabs[0].icon, "image");
    65   do_check_eq(tabs[0].lastUsed, 1);
    67   _("Get all tabs, and check that filtering works.");
    68   store.getWindowEnumerator = mockGetWindowEnumerator.bind(this, "about:foo", 1, 1);
    69   tabs = store.getAllTabs(true);
    70   _("Filtered: " + JSON.stringify(tabs));
    71   do_check_eq(tabs.length, 0);
    72 }
    74 function test_createRecord() {
    75   let store = getMockStore();
    76   let record;
    78   store.getTabState = mockGetTabState;
    79   store.shouldSkipWindow = mockShouldSkipWindow;
    80   store.getWindowEnumerator = mockGetWindowEnumerator.bind(this, "http://foo.com", 1, 1);
    82   let tabs = store.getAllTabs();
    83   let tabsize = JSON.stringify(tabs[0]).length;
    84   let numtabs = Math.ceil(20000./77.);
    86   store.getWindowEnumerator = mockGetWindowEnumerator.bind(this, "http://foo.com", 1, 1);
    87   record = store.createRecord("fake-guid");
    88   do_check_true(record instanceof TabSetRecord);
    89   do_check_eq(record.tabs.length, 1);
    91   _("create a big record");
    92   store.getWindowEnumerator = mockGetWindowEnumerator.bind(this, "http://foo.com", 1, numtabs);
    93   record = store.createRecord("fake-guid");
    94   do_check_true(record instanceof TabSetRecord);
    95   do_check_eq(record.tabs.length, 256);
    96 }
    98 function run_test() {
    99   test_create();
   100   test_getAllTabs();
   101   test_createRecord();
   102 }

mercurial