summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/xpcshell
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-03 06:00:38 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-03 06:00:38 -0500
commit8148615da179fdd60f19018e13b4e94b95609cc6 (patch)
tree771fccdd99fa3adf35fdd2c81d8197b415a89b91 /browser/components/extensions/test/xpcshell
parent494802c1be7888025b95260d23db187467d2b9dd (diff)
downloadUXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar
UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.gz
UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.lz
UXP-8148615da179fdd60f19018e13b4e94b95609cc6.tar.xz
UXP-8148615da179fdd60f19018e13b4e94b95609cc6.zip
Remove browser tests - Part 1: The Tests (except for experiments)
Diffstat (limited to 'browser/components/extensions/test/xpcshell')
-rw-r--r--browser/components/extensions/test/xpcshell/.eslintrc.js9
-rw-r--r--browser/components/extensions/test/xpcshell/head.js55
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_bookmarks.js601
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_history.js487
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_manifest_commands.js24
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_manifest_omnibox.js61
-rw-r--r--browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js57
-rw-r--r--browser/components/extensions/test/xpcshell/xpcshell.ini11
8 files changed, 0 insertions, 1305 deletions
diff --git a/browser/components/extensions/test/xpcshell/.eslintrc.js b/browser/components/extensions/test/xpcshell/.eslintrc.js
deleted file mode 100644
index 2bfe540ea..000000000
--- a/browser/components/extensions/test/xpcshell/.eslintrc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-"use strict";
-
-module.exports = { // eslint-disable-line no-undef
- "extends": "../../../../../testing/xpcshell/xpcshell.eslintrc.js",
-
- "globals": {
- "browser": false,
- },
-};
diff --git a/browser/components/extensions/test/xpcshell/head.js b/browser/components/extensions/test/xpcshell/head.js
deleted file mode 100644
index de4a4a3f6..000000000
--- a/browser/components/extensions/test/xpcshell/head.js
+++ /dev/null
@@ -1,55 +0,0 @@
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
-
-/* exported createHttpServer */
-
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
-
-XPCOMUtils.defineLazyModuleGetter(this, "AppConstants",
- "resource://gre/modules/AppConstants.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "Extension",
- "resource://gre/modules/Extension.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionData",
- "resource://gre/modules/Extension.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionManagement",
- "resource://gre/modules/ExtensionManagement.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionTestUtils",
- "resource://testing-common/ExtensionXPCShellUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
- "resource://gre/modules/FileUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "HttpServer",
- "resource://testing-common/httpd.js");
-XPCOMUtils.defineLazyModuleGetter(this, "NetUtil",
- "resource://gre/modules/NetUtil.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "Schemas",
- "resource://gre/modules/Schemas.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "Services",
- "resource://gre/modules/Services.jsm");
-
-ExtensionTestUtils.init(this);
-
-
-/**
- * Creates a new HttpServer for testing, and begins listening on the
- * specified port. Automatically shuts down the server when the test
- * unit ends.
- *
- * @param {integer} [port]
- * The port to listen on. If omitted, listen on a random
- * port. The latter is the preferred behavior.
- *
- * @returns {HttpServer}
- */
-function createHttpServer(port = -1) {
- let server = new HttpServer();
- server.start(port);
-
- do_register_cleanup(() => {
- return new Promise(resolve => {
- server.stop(resolve);
- });
- });
-
- return server;
-}
diff --git a/browser/components/extensions/test/xpcshell/test_ext_bookmarks.js b/browser/components/extensions/test/xpcshell/test_ext_bookmarks.js
deleted file mode 100644
index 142c0a37c..000000000
--- a/browser/components/extensions/test/xpcshell/test_ext_bookmarks.js
+++ /dev/null
@@ -1,601 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-function backgroundScript() {
- let unsortedId, ourId;
- let initialBookmarkCount = 0;
- let createdBookmarks = new Set();
- let createdFolderId;
- let collectedEvents = [];
- const nonExistentId = "000000000000";
- const bookmarkGuids = {
- menuGuid: "menu________",
- toolbarGuid: "toolbar_____",
- unfiledGuid: "unfiled_____",
- };
-
- function checkOurBookmark(bookmark) {
- browser.test.assertEq(ourId, bookmark.id, "Bookmark has the expected Id");
- browser.test.assertTrue("parentId" in bookmark, "Bookmark has a parentId");
- browser.test.assertEq(0, bookmark.index, "Bookmark has the expected index"); // We assume there are no other bookmarks.
- browser.test.assertEq("http://example.org/", bookmark.url, "Bookmark has the expected url");
- browser.test.assertEq("test bookmark", bookmark.title, "Bookmark has the expected title");
- browser.test.assertTrue("dateAdded" in bookmark, "Bookmark has a dateAdded");
- browser.test.assertFalse("dateGroupModified" in bookmark, "Bookmark does not have a dateGroupModified");
- browser.test.assertFalse("unmodifiable" in bookmark, "Bookmark is not unmodifiable");
- }
-
- function checkBookmark(expected, bookmark) {
- browser.test.assertEq(expected.url, bookmark.url, "Bookmark has the expected url");
- browser.test.assertEq(expected.title, bookmark.title, "Bookmark has the expected title");
- browser.test.assertEq(expected.index, bookmark.index, "Bookmark has expected index");
- if ("parentId" in expected) {
- browser.test.assertEq(expected.parentId, bookmark.parentId, "Bookmark has the expected parentId");
- }
- }
-
- function expectedError() {
- browser.test.fail("Did not get expected error");
- }
-
- function checkOnCreated(id, parentId, index, title, url, dateAdded) {
- let createdData = collectedEvents.pop();
- browser.test.assertEq("onCreated", createdData.event, "onCreated was the last event received");
- browser.test.assertEq(id, createdData.id, "onCreated event received the expected id");
- let bookmark = createdData.bookmark;
- browser.test.assertEq(id, bookmark.id, "onCreated event received the expected bookmark id");
- browser.test.assertEq(parentId, bookmark.parentId, "onCreated event received the expected bookmark parentId");
- browser.test.assertEq(index, bookmark.index, "onCreated event received the expected bookmark index");
- browser.test.assertEq(title, bookmark.title, "onCreated event received the expected bookmark title");
- browser.test.assertEq(url, bookmark.url, "onCreated event received the expected bookmark url");
- browser.test.assertEq(dateAdded, bookmark.dateAdded, "onCreated event received the expected bookmark dateAdded");
- }
-
- function checkOnChanged(id, url, title) {
- // If both url and title are changed, then url is fired last.
- let changedData = collectedEvents.pop();
- browser.test.assertEq("onChanged", changedData.event, "onChanged was the last event received");
- browser.test.assertEq(id, changedData.id, "onChanged event received the expected id");
- browser.test.assertEq(url, changedData.info.url, "onChanged event received the expected url");
- // title is fired first.
- changedData = collectedEvents.pop();
- browser.test.assertEq("onChanged", changedData.event, "onChanged was the last event received");
- browser.test.assertEq(id, changedData.id, "onChanged event received the expected id");
- browser.test.assertEq(title, changedData.info.title, "onChanged event received the expected title");
- }
-
- function checkOnMoved(id, parentId, oldParentId, index, oldIndex) {
- let movedData = collectedEvents.pop();
- browser.test.assertEq("onMoved", movedData.event, "onMoved was the last event received");
- browser.test.assertEq(id, movedData.id, "onMoved event received the expected id");
- let info = movedData.info;
- browser.test.assertEq(parentId, info.parentId, "onMoved event received the expected parentId");
- browser.test.assertEq(oldParentId, info.oldParentId, "onMoved event received the expected oldParentId");
- browser.test.assertEq(index, info.index, "onMoved event received the expected index");
- browser.test.assertEq(oldIndex, info.oldIndex, "onMoved event received the expected oldIndex");
- }
-
- function checkOnRemoved(id, parentId, index, url) {
- let removedData = collectedEvents.pop();
- browser.test.assertEq("onRemoved", removedData.event, "onRemoved was the last event received");
- browser.test.assertEq(id, removedData.id, "onRemoved event received the expected id");
- let info = removedData.info;
- browser.test.assertEq(parentId, removedData.info.parentId, "onRemoved event received the expected parentId");
- browser.test.assertEq(index, removedData.info.index, "onRemoved event received the expected index");
- let node = info.node;
- browser.test.assertEq(id, node.id, "onRemoved event received the expected node id");
- browser.test.assertEq(parentId, node.parentId, "onRemoved event received the expected node parentId");
- browser.test.assertEq(index, node.index, "onRemoved event received the expected node index");
- browser.test.assertEq(url, node.url, "onRemoved event received the expected node url");
- }
-
- browser.bookmarks.onChanged.addListener((id, info) => {
- collectedEvents.push({event: "onChanged", id, info});
- });
-
- browser.bookmarks.onCreated.addListener((id, bookmark) => {
- collectedEvents.push({event: "onCreated", id, bookmark});
- });
-
- browser.bookmarks.onMoved.addListener((id, info) => {
- collectedEvents.push({event: "onMoved", id, info});
- });
-
- browser.bookmarks.onRemoved.addListener((id, info) => {
- collectedEvents.push({event: "onRemoved", id, info});
- });
-
- browser.bookmarks.get(["not-a-bookmark-guid"]).then(expectedError, invalidGuidError => {
- browser.test.assertTrue(
- invalidGuidError.message.includes("Invalid value for property 'guid': not-a-bookmark-guid"),
- "Expected error thrown when trying to get a bookmark using an invalid guid"
- );
-
- return browser.bookmarks.get([nonExistentId]).then(expectedError, nonExistentIdError => {
- browser.test.assertTrue(
- nonExistentIdError.message.includes("Bookmark not found"),
- "Expected error thrown when trying to get a bookmark using a non-existent Id"
- );
- });
- }).then(() => {
- return browser.bookmarks.search({});
- }).then(results => {
- initialBookmarkCount = results.length;
- return browser.bookmarks.create({title: "test bookmark", url: "http://example.org"});
- }).then(result => {
- ourId = result.id;
- checkOurBookmark(result);
- browser.test.assertEq(1, collectedEvents.length, "1 expected event received");
- checkOnCreated(ourId, bookmarkGuids.unfiledGuid, 0, "test bookmark", "http://example.org/", result.dateAdded);
-
- return browser.bookmarks.get(ourId);
- }).then(results => {
- browser.test.assertEq(results.length, 1);
- checkOurBookmark(results[0]);
-
- unsortedId = results[0].parentId;
- return browser.bookmarks.get(unsortedId);
- }).then(results => {
- let folder = results[0];
- browser.test.assertEq(1, results.length, "1 bookmark was returned");
-
- browser.test.assertEq(unsortedId, folder.id, "Folder has the expected id");
- browser.test.assertTrue("parentId" in folder, "Folder has a parentId");
- browser.test.assertTrue("index" in folder, "Folder has an index");
- browser.test.assertFalse("url" in folder, "Folder does not have a url");
- browser.test.assertEq("Other Bookmarks", folder.title, "Folder has the expected title");
- browser.test.assertTrue("dateAdded" in folder, "Folder has a dateAdded");
- browser.test.assertTrue("dateGroupModified" in folder, "Folder has a dateGroupModified");
- browser.test.assertFalse("unmodifiable" in folder, "Folder is not unmodifiable"); // TODO: Do we want to enable this?
-
- return browser.bookmarks.getChildren(unsortedId);
- }).then(results => {
- browser.test.assertEq(1, results.length, "The folder has one child");
- checkOurBookmark(results[0]);
-
- return browser.bookmarks.update(nonExistentId, {title: "new test title"}).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("No bookmarks found for the provided GUID"),
- "Expected error thrown when trying to update a non-existent bookmark"
- );
-
- return browser.bookmarks.update(ourId, {title: "new test title", url: "http://example.com/"});
- });
- }).then(result => {
- browser.test.assertEq("new test title", result.title, "Updated bookmark has the expected title");
- browser.test.assertEq("http://example.com/", result.url, "Updated bookmark has the expected URL");
- browser.test.assertEq(ourId, result.id, "Updated bookmark has the expected id");
-
- browser.test.assertEq(2, collectedEvents.length, "2 expected events received");
- checkOnChanged(ourId, "http://example.com/", "new test title");
-
- return Promise.resolve().then(() => {
- return browser.bookmarks.update(ourId, {url: "this is not a valid url"});
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Invalid bookmark:"),
- "Expected error thrown when trying update with an invalid url"
- );
- return browser.bookmarks.getTree();
- });
- }).then(results => {
- browser.test.assertEq(1, results.length, "getTree returns one result");
- let bookmark = results[0].children.find(bookmarkItem => bookmarkItem.id == unsortedId);
- browser.test.assertEq(
- "Other Bookmarks",
- bookmark.title,
- "Folder returned from getTree has the expected title"
- );
-
- return browser.bookmarks.create({parentId: "invalid"}).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Invalid bookmark"),
- "Expected error thrown when trying to create a bookmark with an invalid parentId"
- );
- browser.test.assertTrue(
- error.message.includes(`"parentGuid":"invalid"`),
- "Expected error thrown when trying to create a bookmark with an invalid parentId"
- );
- });
- }).then(() => {
- return browser.bookmarks.remove(ourId);
- }).then(result => {
- browser.test.assertEq(undefined, result, "Removing a bookmark returns undefined");
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnRemoved(ourId, bookmarkGuids.unfiledGuid, 0, "http://example.com/");
-
- return browser.bookmarks.get(ourId).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Bookmark not found"),
- "Expected error thrown when trying to get a removed bookmark"
- );
- });
- }).then(() => {
- return browser.bookmarks.remove(nonExistentId).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("No bookmarks found for the provided GUID"),
- "Expected error thrown when trying removed a non-existent bookmark"
- );
- });
- }).then(() => {
- // test bookmarks.search
- return Promise.all([
- browser.bookmarks.create({title: "MØzillä", url: "http://møzîllä.örg/"}),
- browser.bookmarks.create({title: "Example", url: "http://example.org/"}),
- browser.bookmarks.create({title: "Mozilla Folder"}),
- browser.bookmarks.create({title: "EFF", url: "http://eff.org/"}),
- browser.bookmarks.create({title: "Menu Item", url: "http://menu.org/", parentId: bookmarkGuids.menuGuid}),
- browser.bookmarks.create({title: "Toolbar Item", url: "http://toolbar.org/", parentId: bookmarkGuids.toolbarGuid}),
- ]);
- }).then(results => {
- browser.test.assertEq(6, collectedEvents.length, "6 expected events received");
- checkOnCreated(results[5].id, bookmarkGuids.toolbarGuid, 0, "Toolbar Item", "http://toolbar.org/", results[5].dateAdded);
- checkOnCreated(results[4].id, bookmarkGuids.menuGuid, 0, "Menu Item", "http://menu.org/", results[4].dateAdded);
- checkOnCreated(results[3].id, bookmarkGuids.unfiledGuid, 0, "EFF", "http://eff.org/", results[3].dateAdded);
- checkOnCreated(results[2].id, bookmarkGuids.unfiledGuid, 0, "Mozilla Folder", undefined, results[2].dateAdded);
- checkOnCreated(results[1].id, bookmarkGuids.unfiledGuid, 0, "Example", "http://example.org/", results[1].dateAdded);
- checkOnCreated(results[0].id, bookmarkGuids.unfiledGuid, 0, "MØzillä", "http://møzîllä.örg/", results[0].dateAdded);
-
- for (let result of results) {
- if (result.title !== "Mozilla Folder") {
- createdBookmarks.add(result.id);
- }
- }
- let folderResult = results[2];
- createdFolderId = folderResult.id;
- return Promise.all([
- browser.bookmarks.create({title: "Mozilla", url: "http://allizom.org/", parentId: createdFolderId}),
- browser.bookmarks.create({title: "Mozilla Corporation", url: "http://allizom.com/", parentId: createdFolderId}),
- browser.bookmarks.create({title: "Firefox", url: "http://allizom.org/firefox/", parentId: createdFolderId}),
- ]).then(newBookmarks => {
- browser.test.assertEq(3, collectedEvents.length, "3 expected events received");
- checkOnCreated(newBookmarks[2].id, createdFolderId, 0, "Firefox", "http://allizom.org/firefox/", newBookmarks[2].dateAdded);
- checkOnCreated(newBookmarks[1].id, createdFolderId, 0, "Mozilla Corporation", "http://allizom.com/", newBookmarks[1].dateAdded);
- checkOnCreated(newBookmarks[0].id, createdFolderId, 0, "Mozilla", "http://allizom.org/", newBookmarks[0].dateAdded);
-
- return browser.bookmarks.create({
- title: "About Mozilla",
- url: "http://allizom.org/about/",
- parentId: createdFolderId,
- index: 1,
- });
- }).then(result => {
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnCreated(result.id, createdFolderId, 1, "About Mozilla", "http://allizom.org/about/", result.dateAdded);
-
- // returns all items on empty object
- return browser.bookmarks.search({});
- }).then(bookmarksSearchResults => {
- browser.test.assertTrue(bookmarksSearchResults.length >= 9, "At least as many bookmarks as added were returned by search({})");
-
- return Promise.resolve().then(() => {
- return browser.bookmarks.remove(createdFolderId);
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Cannot remove a non-empty folder"),
- "Expected error thrown when trying to remove a non-empty folder"
- );
- return browser.bookmarks.getSubTree(createdFolderId);
- });
- });
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of nodes returned by getSubTree");
- browser.test.assertEq("Mozilla Folder", results[0].title, "Folder has the expected title");
- let children = results[0].children;
- browser.test.assertEq(4, children.length, "Expected number of bookmarks returned by getSubTree");
- browser.test.assertEq("Firefox", children[0].title, "Bookmark has the expected title");
- browser.test.assertEq("About Mozilla", children[1].title, "Bookmark has the expected title");
- browser.test.assertEq(1, children[1].index, "Bookmark has the expected index");
- browser.test.assertEq("Mozilla Corporation", children[2].title, "Bookmark has the expected title");
- browser.test.assertEq("Mozilla", children[3].title, "Bookmark has the expected title");
-
- // throws an error for invalid query objects
- Promise.resolve().then(() => {
- return browser.bookmarks.search();
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Incorrect argument types for bookmarks.search"),
- "Expected error thrown when trying to search with no arguments"
- );
- });
-
- Promise.resolve().then(() => {
- return browser.bookmarks.search(null);
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Incorrect argument types for bookmarks.search"),
- "Expected error thrown when trying to search with null as an argument"
- );
- });
-
- Promise.resolve().then(() => {
- return browser.bookmarks.search(function() {});
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Incorrect argument types for bookmarks.search"),
- "Expected error thrown when trying to search with a function as an argument"
- );
- });
-
- Promise.resolve().then(() => {
- return browser.bookmarks.search({banana: "banana"});
- }).then(expectedError, error => {
- let substr = `an unexpected "banana" property`;
- browser.test.assertTrue(
- error.message.includes(substr),
- `Expected error ${JSON.stringify(error.message)} to contain ${JSON.stringify(substr)}`);
- });
-
- Promise.resolve().then(() => {
- return browser.bookmarks.search({url: "spider-man vs. batman"});
- }).then(expectedError, error => {
- let substr = 'must match the format "url"';
- browser.test.assertTrue(
- error.message.includes(substr),
- `Expected error ${JSON.stringify(error.message)} to contain ${JSON.stringify(substr)}`);
- });
-
- // queries the full url
- return browser.bookmarks.search("http://example.org/");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for url search");
- checkBookmark({title: "Example", url: "http://example.org/", index: 2}, results[0]);
-
- // queries a partial url
- return browser.bookmarks.search("example.org");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for url search");
- checkBookmark({title: "Example", url: "http://example.org/", index: 2}, results[0]);
-
- // queries the title
- return browser.bookmarks.search("EFF");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for title search");
- checkBookmark({title: "EFF", url: "http://eff.org/", index: 0, parentId: bookmarkGuids.unfiledGuid}, results[0]);
-
- // finds menu items
- return browser.bookmarks.search("Menu Item");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for menu item search");
- checkBookmark({title: "Menu Item", url: "http://menu.org/", index: 0, parentId: bookmarkGuids.menuGuid}, results[0]);
-
- // finds toolbar items
- return browser.bookmarks.search("Toolbar Item");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for toolbar item search");
- checkBookmark({title: "Toolbar Item", url: "http://toolbar.org/", index: 0, parentId: bookmarkGuids.toolbarGuid}, results[0]);
-
- // finds folders
- return browser.bookmarks.search("Mozilla Folder");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of folders returned");
- browser.test.assertEq("Mozilla Folder", results[0].title, "Folder has the expected title");
-
- // is case-insensitive
- return browser.bookmarks.search("corporation");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returnedfor case-insensitive search");
- browser.test.assertEq("Mozilla Corporation", results[0].title, "Bookmark has the expected title");
-
- // is case-insensitive for non-ascii
- return browser.bookmarks.search("MøZILLÄ");
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for non-ascii search");
- browser.test.assertEq("MØzillä", results[0].title, "Bookmark has the expected title");
-
- // returns multiple results
- return browser.bookmarks.search("allizom");
- }).then(results => {
- browser.test.assertEq(4, results.length, "Expected number of multiple results returned");
- browser.test.assertEq("Mozilla", results[0].title, "Bookmark has the expected title");
- browser.test.assertEq("Mozilla Corporation", results[1].title, "Bookmark has the expected title");
- browser.test.assertEq("Firefox", results[2].title, "Bookmark has the expected title");
- browser.test.assertEq("About Mozilla", results[3].title, "Bookmark has the expected title");
-
- // accepts a url field
- return browser.bookmarks.search({url: "http://allizom.com/"});
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for url field");
- checkBookmark({title: "Mozilla Corporation", url: "http://allizom.com/", index: 2}, results[0]);
-
- // normalizes urls
- return browser.bookmarks.search({url: "http://allizom.com"});
- }).then(results => {
- browser.test.assertEq(results.length, 1, "Expected number of results returned for normalized url field");
- checkBookmark({title: "Mozilla Corporation", url: "http://allizom.com/", index: 2}, results[0]);
-
- // normalizes urls even more
- return browser.bookmarks.search({url: "http:allizom.com"});
- }).then(results => {
- browser.test.assertEq(results.length, 1, "Expected number of results returned for normalized url field");
- checkBookmark({title: "Mozilla Corporation", url: "http://allizom.com/", index: 2}, results[0]);
-
- // accepts a title field
- return browser.bookmarks.search({title: "Mozilla"});
- }).then(results => {
- browser.test.assertEq(results.length, 1, "Expected number of results returned for title field");
- checkBookmark({title: "Mozilla", url: "http://allizom.org/", index: 3}, results[0]);
-
- // can combine title and query
- return browser.bookmarks.search({title: "Mozilla", query: "allizom"});
- }).then(results => {
- browser.test.assertEq(1, results.length, "Expected number of results returned for title and query fields");
- checkBookmark({title: "Mozilla", url: "http://allizom.org/", index: 3}, results[0]);
-
- // uses AND conditions
- return browser.bookmarks.search({title: "EFF", query: "allizom"});
- }).then(results => {
- browser.test.assertEq(
- 0,
- results.length,
- "Expected number of results returned for non-matching title and query fields"
- );
-
- // returns an empty array on item not found
- return browser.bookmarks.search("microsoft");
- }).then(results => {
- browser.test.assertEq(0, results.length, "Expected number of results returned for non-matching search");
-
- return Promise.resolve().then(() => {
- return browser.bookmarks.getRecent("");
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Incorrect argument types for bookmarks.getRecent"),
- "Expected error thrown when calling getRecent with an empty string"
- );
- });
- }).then(() => {
- return Promise.resolve().then(() => {
- return browser.bookmarks.getRecent(1.234);
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Incorrect argument types for bookmarks.getRecent"),
- "Expected error thrown when calling getRecent with a decimal number"
- );
- });
- }).then(() => {
- return Promise.all([
- browser.bookmarks.search("corporation"),
- browser.bookmarks.getChildren(bookmarkGuids.menuGuid),
- ]);
- }).then(results => {
- let corporationBookmark = results[0][0];
- let childCount = results[1].length;
-
- browser.test.assertEq(2, corporationBookmark.index, "Bookmark has the expected index");
-
- return browser.bookmarks.move(corporationBookmark.id, {index: 0}).then(result => {
- browser.test.assertEq(0, result.index, "Bookmark has the expected index");
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnMoved(corporationBookmark.id, createdFolderId, createdFolderId, 0, 2);
-
- return browser.bookmarks.move(corporationBookmark.id, {parentId: bookmarkGuids.menuGuid});
- }).then(result => {
- browser.test.assertEq(bookmarkGuids.menuGuid, result.parentId, "Bookmark has the expected parent");
- browser.test.assertEq(childCount, result.index, "Bookmark has the expected index");
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnMoved(corporationBookmark.id, bookmarkGuids.menuGuid, createdFolderId, 1, 0);
-
- return browser.bookmarks.move(corporationBookmark.id, {index: 0});
- }).then(result => {
- browser.test.assertEq(bookmarkGuids.menuGuid, result.parentId, "Bookmark has the expected parent");
- browser.test.assertEq(0, result.index, "Bookmark has the expected index");
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnMoved(corporationBookmark.id, bookmarkGuids.menuGuid, bookmarkGuids.menuGuid, 0, 1);
-
- return browser.bookmarks.move(corporationBookmark.id, {parentId: bookmarkGuids.toolbarGuid, index: 1});
- }).then(result => {
- browser.test.assertEq(bookmarkGuids.toolbarGuid, result.parentId, "Bookmark has the expected parent");
- browser.test.assertEq(1, result.index, "Bookmark has the expected index");
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnMoved(corporationBookmark.id, bookmarkGuids.toolbarGuid, bookmarkGuids.menuGuid, 1, 0);
-
- createdBookmarks.add(corporationBookmark.id);
- });
- }).then(() => {
- return browser.bookmarks.getRecent(4);
- }).then(results => {
- browser.test.assertEq(4, results.length, "Expected number of results returned by getRecent");
- let prevDate = results[0].dateAdded;
- for (let bookmark of results) {
- browser.test.assertTrue(bookmark.dateAdded <= prevDate, "The recent bookmarks are sorted by dateAdded");
- prevDate = bookmark.dateAdded;
- }
- let bookmarksByTitle = results.sort((a, b) => {
- return a.title.localeCompare(b.title);
- });
- browser.test.assertEq("About Mozilla", bookmarksByTitle[0].title, "Bookmark has the expected title");
- browser.test.assertEq("Firefox", bookmarksByTitle[1].title, "Bookmark has the expected title");
- browser.test.assertEq("Mozilla", bookmarksByTitle[2].title, "Bookmark has the expected title");
- browser.test.assertEq("Mozilla Corporation", bookmarksByTitle[3].title, "Bookmark has the expected title");
-
- return browser.bookmarks.search({});
- }).then(results => {
- let startBookmarkCount = results.length;
-
- return browser.bookmarks.search({title: "Mozilla Folder"}).then(result => {
- return browser.bookmarks.removeTree(result[0].id);
- }).then(() => {
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnRemoved(createdFolderId, bookmarkGuids.unfiledGuid, 1);
-
- return browser.bookmarks.search({}).then(searchResults => {
- browser.test.assertEq(
- startBookmarkCount - 4,
- searchResults.length,
- "Expected number of results returned after removeTree");
- });
- });
- }).then(() => {
- return browser.bookmarks.create({title: "Empty Folder"});
- }).then(result => {
- let emptyFolderId = result.id;
-
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnCreated(emptyFolderId, bookmarkGuids.unfiledGuid, 3, "Empty Folder", undefined, result.dateAdded);
-
- browser.test.assertEq("Empty Folder", result.title, "Folder has the expected title");
- return browser.bookmarks.remove(emptyFolderId).then(() => {
- browser.test.assertEq(1, collectedEvents.length, "1 expected events received");
- checkOnRemoved(emptyFolderId, bookmarkGuids.unfiledGuid, 3);
-
- return browser.bookmarks.get(emptyFolderId).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("Bookmark not found"),
- "Expected error thrown when trying to get a removed folder"
- );
- });
- });
- }).then(() => {
- return browser.bookmarks.getChildren(nonExistentId).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("root is null"),
- "Expected error thrown when trying to getChildren for a non-existent folder"
- );
- });
- }).then(() => {
- return Promise.resolve().then(() => {
- return browser.bookmarks.move(nonExistentId, {});
- }).then(expectedError, error => {
- browser.test.assertTrue(
- error.message.includes("No bookmarks found for the provided GUID"),
- "Expected error thrown when calling move with a non-existent bookmark"
- );
- });
- }).then(() => {
- // remove all created bookmarks
- let promises = Array.from(createdBookmarks, guid => browser.bookmarks.remove(guid));
- return Promise.all(promises);
- }).then(() => {
- browser.test.assertEq(createdBookmarks.size, collectedEvents.length, "expected number of events received");
-
- return browser.bookmarks.search({});
- }).then(results => {
- browser.test.assertEq(initialBookmarkCount, results.length, "All created bookmarks have been removed");
-
- return browser.test.notifyPass("bookmarks");
- }).catch(error => {
- browser.test.fail(`Error: ${String(error)} :: ${error.stack}`);
- browser.test.notifyFail("bookmarks");
- });
-}
-
-let extensionData = {
- background: `(${backgroundScript})()`,
- manifest: {
- permissions: ["bookmarks"],
- },
-};
-
-add_task(function* test_contentscript() {
- let extension = ExtensionTestUtils.loadExtension(extensionData);
- yield extension.startup();
- yield extension.awaitFinish("bookmarks");
- yield extension.unload();
-});
diff --git a/browser/components/extensions/test/xpcshell/test_ext_history.js b/browser/components/extensions/test/xpcshell/test_ext_history.js
deleted file mode 100644
index 78df33151..000000000
--- a/browser/components/extensions/test/xpcshell/test_ext_history.js
+++ /dev/null
@@ -1,487 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-XPCOMUtils.defineLazyModuleGetter(this, "PlacesTestUtils",
- "resource://testing-common/PlacesTestUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "PlacesUtils",
- "resource://gre/modules/PlacesUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionUtils",
- "resource://gre/modules/ExtensionUtils.jsm");
-
-add_task(function* test_delete() {
- function background() {
- let historyClearedCount = 0;
- let removedUrls = [];
-
- browser.history.onVisitRemoved.addListener(data => {
- if (data.allHistory) {
- historyClearedCount++;
- browser.test.assertEq(0, data.urls.length, "onVisitRemoved received an empty urls array");
- } else {
- browser.test.assertEq(1, data.urls.length, "onVisitRemoved received one URL");
- removedUrls.push(data.urls[0]);
- }
- });
-
- browser.test.onMessage.addListener((msg, arg) => {
- if (msg === "delete-url") {
- browser.history.deleteUrl({url: arg}).then(result => {
- browser.test.assertEq(undefined, result, "browser.history.deleteUrl returns nothing");
- browser.test.sendMessage("url-deleted");
- });
- } else if (msg === "delete-range") {
- browser.history.deleteRange(arg).then(result => {
- browser.test.assertEq(undefined, result, "browser.history.deleteRange returns nothing");
- browser.test.sendMessage("range-deleted", removedUrls);
- });
- } else if (msg === "delete-all") {
- browser.history.deleteAll().then(result => {
- browser.test.assertEq(undefined, result, "browser.history.deleteAll returns nothing");
- browser.test.sendMessage("history-cleared", [historyClearedCount, removedUrls]);
- });
- }
- });
-
- browser.test.sendMessage("ready");
- }
-
- const BASE_URL = "http://mozilla.com/test_history/";
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- permissions: ["history"],
- },
- background: `(${background})()`,
- });
-
- yield extension.startup();
- yield extension.awaitMessage("ready");
- yield PlacesTestUtils.clearHistory();
-
- let historyClearedCount;
- let visits = [];
- let visitDate = new Date(1999, 9, 9, 9, 9).getTime();
-
- function pushVisit(subvisits) {
- visitDate += 1000;
- subvisits.push({date: new Date(visitDate)});
- }
-
- // Add 5 visits for one uri and 3 visits for 3 others
- for (let i = 0; i < 4; ++i) {
- let visit = {
- url: `${BASE_URL}${i}`,
- title: "visit " + i,
- visits: [],
- };
- if (i === 0) {
- for (let j = 0; j < 5; ++j) {
- pushVisit(visit.visits);
- }
- } else {
- pushVisit(visit.visits);
- }
- visits.push(visit);
- }
-
- yield PlacesUtils.history.insertMany(visits);
- equal((yield PlacesTestUtils.visitsInDB(visits[0].url)), 5, "5 visits for uri found in history database");
-
- let testUrl = visits[2].url;
- ok((yield PlacesTestUtils.isPageInDB(testUrl)), "expected url found in history database");
-
- extension.sendMessage("delete-url", testUrl);
- yield extension.awaitMessage("url-deleted");
- equal((yield PlacesTestUtils.isPageInDB(testUrl)), false, "expected url not found in history database");
-
- // delete 3 of the 5 visits for url 1
- let filter = {
- startTime: visits[0].visits[0].date,
- endTime: visits[0].visits[2].date,
- };
-
- extension.sendMessage("delete-range", filter);
- let removedUrls = yield extension.awaitMessage("range-deleted");
- ok(!removedUrls.includes(visits[0].url), `${visits[0].url} not received by onVisitRemoved`);
- ok((yield PlacesTestUtils.isPageInDB(visits[0].url)), "expected uri found in history database");
- equal((yield PlacesTestUtils.visitsInDB(visits[0].url)), 2, "2 visits for uri found in history database");
- ok((yield PlacesTestUtils.isPageInDB(visits[1].url)), "expected uri found in history database");
- equal((yield PlacesTestUtils.visitsInDB(visits[1].url)), 1, "1 visit for uri found in history database");
-
- // delete the rest of the visits for url 1, and the visit for url 2
- filter.startTime = visits[0].visits[0].date;
- filter.endTime = visits[1].visits[0].date;
-
- extension.sendMessage("delete-range", filter);
- yield extension.awaitMessage("range-deleted");
-
- equal((yield PlacesTestUtils.isPageInDB(visits[0].url)), false, "expected uri not found in history database");
- equal((yield PlacesTestUtils.visitsInDB(visits[0].url)), 0, "0 visits for uri found in history database");
- equal((yield PlacesTestUtils.isPageInDB(visits[1].url)), false, "expected uri not found in history database");
- equal((yield PlacesTestUtils.visitsInDB(visits[1].url)), 0, "0 visits for uri found in history database");
-
- ok((yield PlacesTestUtils.isPageInDB(visits[3].url)), "expected uri found in history database");
-
- extension.sendMessage("delete-all");
- [historyClearedCount, removedUrls] = yield extension.awaitMessage("history-cleared");
- equal(PlacesUtils.history.hasHistoryEntries, false, "history is empty");
- equal(historyClearedCount, 2, "onVisitRemoved called for each clearing of history");
- equal(removedUrls.length, 3, "onVisitRemoved called the expected number of times");
- for (let i = 1; i < 3; ++i) {
- let url = visits[i].url;
- ok(removedUrls.includes(url), `${url} received by onVisitRemoved`);
- }
- yield extension.unload();
-});
-
-add_task(function* test_search() {
- const SINGLE_VISIT_URL = "http://example.com/";
- const DOUBLE_VISIT_URL = "http://example.com/2/";
- const MOZILLA_VISIT_URL = "http://mozilla.com/";
- const REFERENCE_DATE = new Date();
- // pages/visits to add via History.insert
- const PAGE_INFOS = [
- {
- url: SINGLE_VISIT_URL,
- title: `test visit for ${SINGLE_VISIT_URL}`,
- visits: [
- {date: new Date(Number(REFERENCE_DATE) - 1000)},
- ],
- },
- {
- url: DOUBLE_VISIT_URL,
- title: `test visit for ${DOUBLE_VISIT_URL}`,
- visits: [
- {date: REFERENCE_DATE},
- {date: new Date(Number(REFERENCE_DATE) - 2000)},
- ],
- },
- {
- url: MOZILLA_VISIT_URL,
- title: `test visit for ${MOZILLA_VISIT_URL}`,
- visits: [
- {date: new Date(Number(REFERENCE_DATE) - 3000)},
- ],
- },
- ];
-
- function background(BGSCRIPT_REFERENCE_DATE) {
- const futureTime = Date.now() + 24 * 60 * 60 * 1000;
-
- browser.test.onMessage.addListener(msg => {
- browser.history.search({text: ""}).then(results => {
- browser.test.sendMessage("empty-search", results);
- return browser.history.search({text: "mozilla.com"});
- }).then(results => {
- browser.test.sendMessage("text-search", results);
- return browser.history.search({text: "example.com", maxResults: 1});
- }).then(results => {
- browser.test.sendMessage("max-results-search", results);
- return browser.history.search({text: "", startTime: BGSCRIPT_REFERENCE_DATE - 2000, endTime: BGSCRIPT_REFERENCE_DATE - 1000});
- }).then(results => {
- browser.test.sendMessage("date-range-search", results);
- return browser.history.search({text: "", startTime: futureTime});
- }).then(results => {
- browser.test.assertEq(0, results.length, "no results returned for late start time");
- return browser.history.search({text: "", endTime: 0});
- }).then(results => {
- browser.test.assertEq(0, results.length, "no results returned for early end time");
- return browser.history.search({text: "", startTime: Date.now(), endTime: 0});
- }).then(results => {
- browser.test.fail("history.search rejects with startTime that is after the endTime");
- }, error => {
- browser.test.assertEq(
- "The startTime cannot be after the endTime",
- error.message,
- "history.search rejects with startTime that is after the endTime");
- }).then(() => {
- browser.test.notifyPass("search");
- });
- });
-
- browser.test.sendMessage("ready");
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- permissions: ["history"],
- },
- background: `(${background})(${Number(REFERENCE_DATE)})`,
- });
-
- function findResult(url, results) {
- return results.find(r => r.url === url);
- }
-
- function checkResult(results, url, expectedCount) {
- let result = findResult(url, results);
- notEqual(result, null, `history.search result was found for ${url}`);
- equal(result.visitCount, expectedCount, `history.search reports ${expectedCount} visit(s)`);
- equal(result.title, `test visit for ${url}`, "title for search result is correct");
- }
-
- yield extension.startup();
- yield extension.awaitMessage("ready");
- yield PlacesTestUtils.clearHistory();
-
- yield PlacesUtils.history.insertMany(PAGE_INFOS);
-
- extension.sendMessage("check-history");
-
- let results = yield extension.awaitMessage("empty-search");
- equal(results.length, 3, "history.search with empty text returned 3 results");
- checkResult(results, SINGLE_VISIT_URL, 1);
- checkResult(results, DOUBLE_VISIT_URL, 2);
- checkResult(results, MOZILLA_VISIT_URL, 1);
-
- results = yield extension.awaitMessage("text-search");
- equal(results.length, 1, "history.search with specific text returned 1 result");
- checkResult(results, MOZILLA_VISIT_URL, 1);
-
- results = yield extension.awaitMessage("max-results-search");
- equal(results.length, 1, "history.search with maxResults returned 1 result");
- checkResult(results, DOUBLE_VISIT_URL, 2);
-
- results = yield extension.awaitMessage("date-range-search");
- equal(results.length, 2, "history.search with a date range returned 2 result");
- checkResult(results, DOUBLE_VISIT_URL, 2);
- checkResult(results, SINGLE_VISIT_URL, 1);
-
- yield extension.awaitFinish("search");
- yield extension.unload();
- yield PlacesTestUtils.clearHistory();
-});
-
-add_task(function* test_add_url() {
- function background() {
- const TEST_DOMAIN = "http://example.com/";
-
- browser.test.onMessage.addListener((msg, testData) => {
- let [details, type] = testData;
- details.url = details.url || `${TEST_DOMAIN}${type}`;
- if (msg === "add-url") {
- details.title = `Title for ${type}`;
- browser.history.addUrl(details).then(() => {
- return browser.history.search({text: details.url});
- }).then(results => {
- browser.test.assertEq(1, results.length, "1 result found when searching for added URL");
- browser.test.sendMessage("url-added", {details, result: results[0]});
- });
- } else if (msg === "expect-failure") {
- let expectedMsg = testData[2];
- browser.history.addUrl(details).then(() => {
- browser.test.fail(`Expected error thrown for ${type}`);
- }, error => {
- browser.test.assertTrue(
- error.message.includes(expectedMsg),
- `"Expected error thrown when trying to add a URL with ${type}`
- );
- browser.test.sendMessage("add-failed");
- });
- }
- });
-
- browser.test.sendMessage("ready");
- }
-
- let addTestData = [
- [{}, "default"],
- [{visitTime: new Date()}, "with_date"],
- [{visitTime: Date.now()}, "with_ms_number"],
- [{visitTime: new Date().toISOString()}, "with_iso_string"],
- [{transition: "typed"}, "valid_transition"],
- ];
-
- let failTestData = [
- [{transition: "generated"}, "an invalid transition", "|generated| is not a supported transition for history"],
- [{visitTime: Date.now() + 1000000}, "a future date", "cannot be a future date"],
- [{url: "about.config"}, "an invalid url", "about.config is not a valid URL"],
- ];
-
- function* checkUrl(results) {
- ok((yield PlacesTestUtils.isPageInDB(results.details.url)), `${results.details.url} found in history database`);
- ok(PlacesUtils.isValidGuid(results.result.id), "URL was added with a valid id");
- equal(results.result.title, results.details.title, "URL was added with the correct title");
- if (results.details.visitTime) {
- equal(results.result.lastVisitTime,
- Number(ExtensionUtils.normalizeTime(results.details.visitTime)),
- "URL was added with the correct date");
- }
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- permissions: ["history"],
- },
- background: `(${background})()`,
- });
-
- yield PlacesTestUtils.clearHistory();
- yield extension.startup();
- yield extension.awaitMessage("ready");
-
- for (let data of addTestData) {
- extension.sendMessage("add-url", data);
- let results = yield extension.awaitMessage("url-added");
- yield checkUrl(results);
- }
-
- for (let data of failTestData) {
- extension.sendMessage("expect-failure", data);
- yield extension.awaitMessage("add-failed");
- }
-
- yield extension.unload();
-});
-
-add_task(function* test_get_visits() {
- function background() {
- const TEST_DOMAIN = "http://example.com/";
- const FIRST_DATE = Date.now();
- const INITIAL_DETAILS = {
- url: TEST_DOMAIN,
- visitTime: FIRST_DATE,
- transition: "link",
- };
-
- let visitIds = new Set();
-
- function checkVisit(visit, expected) {
- visitIds.add(visit.visitId);
- browser.test.assertEq(expected.visitTime, visit.visitTime, "visit has the correct visitTime");
- browser.test.assertEq(expected.transition, visit.transition, "visit has the correct transition");
- browser.history.search({text: expected.url}).then(results => {
- // all results will have the same id, so we only need to use the first one
- browser.test.assertEq(results[0].id, visit.id, "visit has the correct id");
- });
- }
-
- let details = Object.assign({}, INITIAL_DETAILS);
-
- browser.history.addUrl(details).then(() => {
- return browser.history.getVisits({url: details.url});
- }).then(results => {
- browser.test.assertEq(1, results.length, "the expected number of visits were returned");
- checkVisit(results[0], details);
- details.url = `${TEST_DOMAIN}/1/`;
- return browser.history.addUrl(details);
- }).then(() => {
- return browser.history.getVisits({url: details.url});
- }).then(results => {
- browser.test.assertEq(1, results.length, "the expected number of visits were returned");
- checkVisit(results[0], details);
- details.visitTime = FIRST_DATE - 1000;
- details.transition = "typed";
- return browser.history.addUrl(details);
- }).then(() => {
- return browser.history.getVisits({url: details.url});
- }).then(results => {
- browser.test.assertEq(2, results.length, "the expected number of visits were returned");
- checkVisit(results[0], INITIAL_DETAILS);
- checkVisit(results[1], details);
- }).then(() => {
- browser.test.assertEq(3, visitIds.size, "each visit has a unique visitId");
- browser.test.notifyPass("get-visits");
- });
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- permissions: ["history"],
- },
- background: `(${background})()`,
- });
-
- yield PlacesTestUtils.clearHistory();
- yield extension.startup();
-
- yield extension.awaitFinish("get-visits");
- yield extension.unload();
-});
-
-add_task(function* test_on_visited() {
- const SINGLE_VISIT_URL = "http://example.com/1/";
- const DOUBLE_VISIT_URL = "http://example.com/2/";
- let visitDate = new Date(1999, 9, 9, 9, 9).getTime();
-
- // pages/visits to add via History.insertMany
- const PAGE_INFOS = [
- {
- url: SINGLE_VISIT_URL,
- title: `visit to ${SINGLE_VISIT_URL}`,
- visits: [
- {date: new Date(visitDate)},
- ],
- },
- {
- url: DOUBLE_VISIT_URL,
- title: `visit to ${DOUBLE_VISIT_URL}`,
- visits: [
- {date: new Date(visitDate += 1000)},
- {date: new Date(visitDate += 1000)},
- ],
- },
- ];
-
- function background() {
- let onVisitedData = [];
-
- browser.history.onVisited.addListener(data => {
- if (data.url.includes("moz-extension")) {
- return;
- }
- onVisitedData.push(data);
- if (onVisitedData.length == 3) {
- browser.test.sendMessage("on-visited-data", onVisitedData);
- }
- });
-
- browser.test.sendMessage("ready");
- }
-
- let extension = ExtensionTestUtils.loadExtension({
- manifest: {
- permissions: ["history"],
- },
- background: `(${background})()`,
- });
-
- yield PlacesTestUtils.clearHistory();
- yield extension.startup();
- yield extension.awaitMessage("ready");
-
- yield PlacesUtils.history.insertMany(PAGE_INFOS);
-
- let onVisitedData = yield extension.awaitMessage("on-visited-data");
-
- function checkOnVisitedData(index, expected) {
- let onVisited = onVisitedData[index];
- ok(PlacesUtils.isValidGuid(onVisited.id), "onVisited received a valid id");
- equal(onVisited.url, expected.url, "onVisited received the expected url");
- // Title will be blank until bug 1287928 lands
- // https://bugzilla.mozilla.org/show_bug.cgi?id=1287928
- equal(onVisited.title, "", "onVisited received a blank title");
- equal(onVisited.lastVisitTime, expected.time, "onVisited received the expected time");
- equal(onVisited.visitCount, expected.visitCount, "onVisited received the expected visitCount");
- }
-
- let expected = {
- url: PAGE_INFOS[0].url,
- title: PAGE_INFOS[0].title,
- time: PAGE_INFOS[0].visits[0].date.getTime(),
- visitCount: 1,
- };
- checkOnVisitedData(0, expected);
-
- expected.url = PAGE_INFOS[1].url;
- expected.title = PAGE_INFOS[1].title;
- expected.time = PAGE_INFOS[1].visits[0].date.getTime();
- checkOnVisitedData(1, expected);
-
- expected.time = PAGE_INFOS[1].visits[1].date.getTime();
- expected.visitCount = 2;
- checkOnVisitedData(2, expected);
-
- yield extension.unload();
-});
diff --git a/browser/components/extensions/test/xpcshell/test_ext_manifest_commands.js b/browser/components/extensions/test/xpcshell/test_ext_manifest_commands.js
deleted file mode 100644
index 4de7afe01..000000000
--- a/browser/components/extensions/test/xpcshell/test_ext_manifest_commands.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-
-add_task(function* test_manifest_commands() {
- let normalized = yield ExtensionTestUtils.normalizeManifest({
- "commands": {
- "toggle-feature": {
- "suggested_key": {"default": "Shifty+Y"},
- "description": "Send a 'toggle-feature' event to the extension",
- },
- },
- });
-
- let expectedError = (
- String.raw`commands.toggle-feature.suggested_key.default: Value must either: ` +
- String.raw`match the pattern /^\s*(Alt|Ctrl|Command|MacCtrl)\s*\+\s*(Shift\s*\+\s*)?([A-Z0-9]|Comma|Period|Home|End|PageUp|PageDown|Space|Insert|Delete|Up|Down|Left|Right)\s*$/, or ` +
- String.raw`match the pattern /^(MediaNextTrack|MediaPlayPause|MediaPrevTrack|MediaStop)$/`
- );
-
- ok(normalized.error.includes(expectedError),
- `The manifest error ${JSON.stringify(normalized.error)} must contain ${JSON.stringify(expectedError)}`);
-});
diff --git a/browser/components/extensions/test/xpcshell/test_ext_manifest_omnibox.js b/browser/components/extensions/test/xpcshell/test_ext_manifest_omnibox.js
deleted file mode 100644
index 2cb141235..000000000
--- a/browser/components/extensions/test/xpcshell/test_ext_manifest_omnibox.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-function* testKeyword(params) {
- let normalized = yield ExtensionTestUtils.normalizeManifest({
- "omnibox": {
- "keyword": params.keyword,
- },
- });
-
- if (params.expectError) {
- let expectedError = (
- String.raw`omnibox.keyword: String "${params.keyword}" ` +
- String.raw`must match /^[^?\s:]([^\s:]*[^/\s:])?$/`
- );
- ok(normalized.error.includes(expectedError),
- `The manifest error ${JSON.stringify(normalized.error)} ` +
- `must contain ${JSON.stringify(expectedError)}`);
- } else {
- equal(normalized.error, undefined, "Should not have an error");
- equal(normalized.errors.length, 0, "Should not have warnings");
- }
-}
-
-add_task(function* test_manifest_commands() {
- // accepted single character keywords
- yield testKeyword({keyword: "a", expectError: false});
- yield testKeyword({keyword: "-", expectError: false});
- yield testKeyword({keyword: "嗨", expectError: false});
- yield testKeyword({keyword: "*", expectError: false});
- yield testKeyword({keyword: "/", expectError: false});
-
- // rejected single character keywords
- yield testKeyword({keyword: "?", expectError: true});
- yield testKeyword({keyword: " ", expectError: true});
- yield testKeyword({keyword: ":", expectError: true});
-
- // accepted multi-character keywords
- yield testKeyword({keyword: "aa", expectError: false});
- yield testKeyword({keyword: "http", expectError: false});
- yield testKeyword({keyword: "f?a", expectError: false});
- yield testKeyword({keyword: "fa?", expectError: false});
- yield testKeyword({keyword: "f/x", expectError: false});
- yield testKeyword({keyword: "/fx", expectError: false});
-
- // rejected multi-character keywords
- yield testKeyword({keyword: " a", expectError: true});
- yield testKeyword({keyword: "a ", expectError: true});
- yield testKeyword({keyword: " ", expectError: true});
- yield testKeyword({keyword: " a ", expectError: true});
- yield testKeyword({keyword: "?fx", expectError: true});
- yield testKeyword({keyword: "fx/", expectError: true});
- yield testKeyword({keyword: "f:x", expectError: true});
- yield testKeyword({keyword: "fx:", expectError: true});
- yield testKeyword({keyword: "f x", expectError: true});
-
- // miscellaneous tests
- yield testKeyword({keyword: "こんにちは", expectError: false});
- yield testKeyword({keyword: "http://", expectError: true});
-});
diff --git a/browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js b/browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js
deleted file mode 100644
index 2c436535d..000000000
--- a/browser/components/extensions/test/xpcshell/test_ext_manifest_permissions.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
-/* vim: set sts=2 sw=2 et tw=80: */
-"use strict";
-
-/* globals chrome */
-
-function* testPermission(options) {
- function background(bgOptions) {
- browser.test.sendMessage("typeof-namespace", {
- browser: typeof browser[bgOptions.namespace],
- chrome: typeof chrome[bgOptions.namespace],
- });
- }
-
- let extensionDetails = {
- background: `(${background})(${JSON.stringify(options)})`,
- };
-
- let extension = ExtensionTestUtils.loadExtension(extensionDetails);
-
- yield extension.startup();
-
- let types = yield extension.awaitMessage("typeof-namespace");
- equal(types.browser, "undefined", `Type of browser.${options.namespace} without manifest entry`);
- equal(types.chrome, "undefined", `Type of chrome.${options.namespace} without manifest entry`);
-
- yield extension.unload();
-
- extensionDetails.manifest = options.manifest;
- extension = ExtensionTestUtils.loadExtension(extensionDetails);
-
- yield extension.startup();
-
- types = yield extension.awaitMessage("typeof-namespace");
- equal(types.browser, "object", `Type of browser.${options.namespace} with manifest entry`);
- equal(types.chrome, "object", `Type of chrome.${options.namespace} with manifest entry`);
-
- yield extension.unload();
-}
-
-add_task(function* test_browserAction() {
- yield testPermission({
- namespace: "browserAction",
- manifest: {
- browser_action: {},
- },
- });
-});
-
-add_task(function* test_pageAction() {
- yield testPermission({
- namespace: "pageAction",
- manifest: {
- page_action: {},
- },
- });
-});
diff --git a/browser/components/extensions/test/xpcshell/xpcshell.ini b/browser/components/extensions/test/xpcshell/xpcshell.ini
deleted file mode 100644
index b9148a697..000000000
--- a/browser/components/extensions/test/xpcshell/xpcshell.ini
+++ /dev/null
@@ -1,11 +0,0 @@
-[DEFAULT]
-head = head.js
-tail =
-firefox-appdir = browser
-tags = webextensions
-
-[test_ext_bookmarks.js]
-[test_ext_history.js]
-[test_ext_manifest_commands.js]
-[test_ext_manifest_omnibox.js]
-[test_ext_manifest_permissions.js]