tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_tab_provider.js (1905B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 const { TabProvider } = ChromeUtils.importESModule(
      5  "resource://services-sync/engines/tabs.sys.mjs"
      6 );
      7 
      8 add_task(async function test_getAllTabs() {
      9  let provider = TabProvider;
     10  provider.shouldSkipWindow = mockShouldSkipWindow;
     11 
     12  let tabs;
     13 
     14  provider.getWindowEnumerator = mockGetWindowEnumerator.bind(this, [
     15    "http://bar.com",
     16  ]);
     17 
     18  _("Get all tabs.");
     19  tabs = await provider.getAllTabsWithEstimatedMax(
     20    false,
     21    Number.MAX_SAFE_INTEGER
     22  );
     23  _("Tabs: " + JSON.stringify(tabs));
     24  equal(tabs.length, 1);
     25  equal(tabs[0].title, "title");
     26  equal(tabs[0].urlHistory.length, 1);
     27  equal(tabs[0].urlHistory[0], "http://bar.com/");
     28  equal(tabs[0].icon, "");
     29  equal(tabs[0].lastUsed, 2); // windowenumerator returns in ms but the getAllTabs..() returns in seconds
     30 
     31  _("Get all tabs, and check that filtering works.");
     32  provider.getWindowEnumerator = mockGetWindowEnumerator.bind(this, [
     33    "http://foo.com",
     34    "about:foo",
     35  ]);
     36  tabs = await provider.getAllTabsWithEstimatedMax(
     37    true,
     38    Number.MAX_SAFE_INTEGER
     39  );
     40  _("Filtered: " + JSON.stringify(tabs));
     41  equal(tabs.length, 1);
     42 
     43  _("Get all tabs, and check that they are properly sorted");
     44  provider.getWindowEnumerator = mockGetWindowEnumerator.bind(this, [
     45    "http://foo.com",
     46    "http://bar.com",
     47  ]);
     48  tabs = await provider.getAllTabsWithEstimatedMax(
     49    true,
     50    Number.MAX_SAFE_INTEGER
     51  );
     52  _("Ordered: " + JSON.stringify(tabs));
     53  equal(tabs[0].lastUsed > tabs[1].lastUsed, true);
     54 
     55  // reader mode URLs are provided.
     56  provider.getWindowEnumerator = mockGetWindowEnumerator.bind(this, [
     57    "about:reader?url=http%3A%2F%2Ffoo.com%2F",
     58  ]);
     59  tabs = await provider.getAllTabsWithEstimatedMax(
     60    true,
     61    Number.MAX_SAFE_INTEGER
     62  );
     63  equal(tabs[0].urlHistory[0], "http://foo.com/");
     64 });