diff options
Diffstat (limited to 'toolkit/components/places/tests/unifiedcomplete/test_remote_tab_matches.js')
-rw-r--r-- | toolkit/components/places/tests/unifiedcomplete/test_remote_tab_matches.js | 203 |
1 files changed, 0 insertions, 203 deletions
diff --git a/toolkit/components/places/tests/unifiedcomplete/test_remote_tab_matches.js b/toolkit/components/places/tests/unifiedcomplete/test_remote_tab_matches.js deleted file mode 100644 index 56998d4d6..000000000 --- a/toolkit/components/places/tests/unifiedcomplete/test_remote_tab_matches.js +++ /dev/null @@ -1,203 +0,0 @@ -/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- - * vim:set ts=2 sw=2 sts=2 et: -*/ -"use strict"; - -Cu.import("resource://services-sync/main.js"); - -Services.prefs.setCharPref("services.sync.username", "someone@somewhere.com"); - -// A mock "Tabs" engine which autocomplete will use instead of the real -// engine. We pass a constructor that Sync creates. -function MockTabsEngine() { - this.clients = null; // We'll set this dynamically -} - -MockTabsEngine.prototype = { - name: "tabs", - - getAllClients() { - return this.clients; - }, -} - -// A clients engine that doesn't need to be a constructor. -let MockClientsEngine = { - isMobile(guid) { - Assert.ok(guid.endsWith("desktop") || guid.endsWith("mobile")); - return guid.endsWith("mobile"); - }, -} - -// Tell Sync about the mocks. -Weave.Service.engineManager.register(MockTabsEngine); -Weave.Service.clientsEngine = MockClientsEngine; - -// Tell the Sync XPCOM service it is initialized. -let weaveXPCService = Cc["@mozilla.org/weave/service;1"] - .getService(Ci.nsISupports) - .wrappedJSObject; -weaveXPCService.ready = true; - -// Configure the singleton engine for a test. -function configureEngine(clients) { - // Configure the instance Sync created. - let engine = Weave.Service.engineManager.get("tabs"); - engine.clients = clients; - // Send an observer that pretends the engine just finished a sync. - Services.obs.notifyObservers(null, "weave:engine:sync:finish", "tabs"); -} - -// Make a match object suitable for passing to check_autocomplete. -function makeRemoteTabMatch(url, deviceName, extra = {}) { - return { - uri: makeActionURI("remotetab", {url, deviceName}), - title: extra.title || url, - style: [ "action", "remotetab" ], - icon: extra.icon, - } -} - -// The tests. -add_task(function* test_nomatch() { - // Nothing matches. - configureEngine({ - guid_desktop: { - clientName: "My Desktop", - tabs: [{ - urlHistory: ["http://foo.com/"], - }], - } - }); - - // No remote tabs match here, so we only expect search results. - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }) ], - }); -}); - -add_task(function* test_minimal() { - // The minimal client and tabs info we can get away with. - configureEngine({ - guid_desktop: { - clientName: "My Desktop", - tabs: [{ - urlHistory: ["http://example.com/"], - }], - } - }); - - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }), - makeRemoteTabMatch("http://example.com/", "My Desktop") ], - }); -}); - -add_task(function* test_maximal() { - // Every field that could possibly exist on a remote record. - configureEngine({ - guid_mobile: { - clientName: "My Phone", - tabs: [{ - urlHistory: ["http://example.com/"], - title: "An Example", - icon: "http://favicon", - }], - } - }); - - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }), - makeRemoteTabMatch("http://example.com/", "My Phone", - { title: "An Example", - icon: "moz-anno:favicon:http://favicon/" - }), - ], - }); -}); - -add_task(function* test_noShowIcons() { - Services.prefs.setBoolPref("services.sync.syncedTabs.showRemoteIcons", false); - configureEngine({ - guid_mobile: { - clientName: "My Phone", - tabs: [{ - urlHistory: ["http://example.com/"], - title: "An Example", - icon: "http://favicon", - }], - } - }); - - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }), - makeRemoteTabMatch("http://example.com/", "My Phone", - { title: "An Example", - // expecting the default favicon due to that pref. - icon: "", - }), - ], - }); - Services.prefs.clearUserPref("services.sync.syncedTabs.showRemoteIcons"); -}); - -add_task(function* test_matches_title() { - // URL doesn't match search expression, should still match the title. - configureEngine({ - guid_mobile: { - clientName: "My Phone", - tabs: [{ - urlHistory: ["http://foo.com/"], - title: "An Example", - }], - } - }); - - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }), - makeRemoteTabMatch("http://foo.com/", "My Phone", - { title: "An Example" }), - ], - }); -}); - -add_task(function* test_localtab_matches_override() { - // We have an open tab to the same page on a remote device, only "switch to - // tab" should appear as duplicate detection removed the remote one. - - // First setup Sync to have the page as a remote tab. - configureEngine({ - guid_mobile: { - clientName: "My Phone", - tabs: [{ - urlHistory: ["http://foo.com/"], - title: "An Example", - }], - } - }); - - // Setup Places to think the tab is open locally. - let uri = NetUtil.newURI("http://foo.com/"); - yield PlacesTestUtils.addVisits([ - { uri: uri, title: "An Example" }, - ]); - addOpenPages(uri, 1); - - yield check_autocomplete({ - search: "ex", - searchParam: "enable-actions", - matches: [ makeSearchMatch("ex", { heuristic: true }), - makeSwitchToTabMatch("http://foo.com/", { title: "An Example" }), - ], - }); -}); |