diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /browser/components/extensions/test/browser/browser_ext_browsingData_history.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/components/extensions/test/browser/browser_ext_browsingData_history.js')
-rw-r--r-- | browser/components/extensions/test/browser/browser_ext_browsingData_history.js | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/browser/components/extensions/test/browser/browser_ext_browsingData_history.js b/browser/components/extensions/test/browser/browser_ext_browsingData_history.js new file mode 100644 index 0000000000..2f696f3154 --- /dev/null +++ b/browser/components/extensions/test/browser/browser_ext_browsingData_history.js @@ -0,0 +1,123 @@ +/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */ +/* vim: set sts=2 sw=2 et tw=80: */ +"use strict"; + +ChromeUtils.defineESModuleGetters(this, { + PlacesTestUtils: "resource://testing-common/PlacesTestUtils.sys.mjs", + PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs", +}); + +const OLD_URL = "http://example.com/"; +const RECENT_URL = "http://example.com/2/"; +const REFERENCE_DATE = new Date(); + +// Visits to add via addVisits +const PLACEINFO = [ + { + uri: RECENT_URL, + title: `test visit for ${RECENT_URL}`, + visitDate: REFERENCE_DATE, + }, + { + uri: OLD_URL, + title: `test visit for ${OLD_URL}`, + visitDate: new Date(Number(REFERENCE_DATE) - 1000), + }, + { + uri: OLD_URL, + title: `test visit for ${OLD_URL}`, + visitDate: new Date(Number(REFERENCE_DATE) - 2000), + }, +]; + +async function setupHistory() { + await PlacesUtils.history.clear(); + await PlacesTestUtils.addVisits(PLACEINFO); + is( + await PlacesTestUtils.visitsInDB(RECENT_URL), + 1, + "Expected number of visits found in history database." + ); + is( + await PlacesTestUtils.visitsInDB(OLD_URL), + 2, + "Expected number of visits found in history database." + ); +} + +add_task(async function testHistory() { + function background() { + browser.test.onMessage.addListener(async (msg, options) => { + if (msg == "removeHistory") { + await browser.browsingData.removeHistory(options); + } else { + await browser.browsingData.remove(options, { history: true }); + } + browser.test.sendMessage("historyRemoved"); + }); + } + + let extension = ExtensionTestUtils.loadExtension({ + background, + manifest: { + permissions: ["browsingData"], + }, + }); + + async function testRemovalMethod(method) { + // Clear history with no since value. + await setupHistory(); + extension.sendMessage(method, {}); + await extension.awaitMessage("historyRemoved"); + + is( + await PlacesTestUtils.visitsInDB(RECENT_URL), + 0, + "Expected number of visits removed from history database." + ); + is( + await PlacesTestUtils.visitsInDB(OLD_URL), + 0, + "Expected number of visits removed from history database." + ); + + // Clear history with recent since value. + await setupHistory(); + extension.sendMessage(method, { since: REFERENCE_DATE - 1000 }); + await extension.awaitMessage("historyRemoved"); + + is( + await PlacesTestUtils.visitsInDB(RECENT_URL), + 0, + "Expected number of visits removed from history database." + ); + is( + await PlacesTestUtils.visitsInDB(OLD_URL), + 1, + "Expected number of visits removed from history database." + ); + + // Clear history with old since value. + await setupHistory(); + extension.sendMessage(method, { since: REFERENCE_DATE - 100000 }); + await extension.awaitMessage("historyRemoved"); + + is( + await PlacesTestUtils.visitsInDB(RECENT_URL), + 0, + "Expected number of visits removed from history database." + ); + is( + await PlacesTestUtils.visitsInDB(OLD_URL), + 0, + "Expected number of visits removed from history database." + ); + } + + await extension.startup(); + + await testRemovalMethod("removeHistory"); + await testRemovalMethod("remove"); + + await extension.unload(); +}); |