summaryrefslogtreecommitdiffstats
path: root/browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js')
-rw-r--r--browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js124
1 files changed, 124 insertions, 0 deletions
diff --git a/browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js b/browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js
new file mode 100644
index 0000000000..dea7b1c473
--- /dev/null
+++ b/browser/components/translations/tests/browser/browser_translations_about_preferences_settings_never_translate_sites.js
@@ -0,0 +1,124 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const { PermissionTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/PermissionTestUtils.sys.mjs"
+);
+
+add_task(async function test_about_preferences_never_translate_site_settings() {
+ const {
+ cleanup,
+ elements: { settingsButton },
+ } = await setupAboutPreferences(LANGUAGE_PAIRS, {
+ prefs: [["browser.translations.newSettingsUI.enable", false]],
+ permissionsUrls: [
+ "https://example.com",
+ "https://example.org",
+ "https://example.net",
+ ],
+ });
+
+ info("Ensuring the list of never-translate sites is empty");
+ is(
+ getNeverTranslateSitesFromPerms().length,
+ 0,
+ "The list of never-translate sites is empty"
+ );
+
+ info("Adding two sites to the neverTranslateSites perms");
+ PermissionTestUtils.add(
+ "https://example.com",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+ PermissionTestUtils.add(
+ "https://example.org",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+ PermissionTestUtils.add(
+ "https://example.net",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+
+ const dialogWindow = await waitForOpenDialogWindow(
+ "chrome://browser/content/preferences/dialogs/translations.xhtml",
+ () => {
+ click(
+ settingsButton,
+ "Opening the about:preferences Translations Settings"
+ );
+ }
+ );
+ let tree = dialogWindow.document.getElementById("neverTranslateSitesTree");
+ let remove = dialogWindow.document.getElementById("removeNeverTranslateSite");
+ let removeAll = dialogWindow.document.getElementById(
+ "removeAllNeverTranslateSites"
+ );
+
+ is(tree.view.rowCount, 3, "The never-translate sites list has 2 items");
+ ok(remove.disabled, "The 'Remove Site' button is disabled");
+ ok(!removeAll.disabled, "The 'Remove All Sites' button is enabled");
+
+ info("Selecting the first never-translate site.");
+ tree.view.selection.select(0);
+ ok(!remove.disabled, "The 'Remove Site' button is enabled");
+
+ click(remove, "Clicking the remove-site button");
+ is(
+ tree.view.rowCount,
+ 2,
+ "The never-translate sites list now contains 2 items"
+ );
+ is(
+ getNeverTranslateSitesFromPerms().length,
+ 2,
+ "There are 2 sites with permissions"
+ );
+
+ info("Removing all sites from the neverTranslateSites perms");
+ PermissionTestUtils.remove("https://example.com", TRANSLATIONS_PERMISSION);
+ PermissionTestUtils.remove("https://example.org", TRANSLATIONS_PERMISSION);
+ PermissionTestUtils.remove("https://example.net", TRANSLATIONS_PERMISSION);
+
+ is(tree.view.rowCount, 0, "The never-translate sites list is empty");
+ ok(remove.disabled, "The 'Remove Site' button is disabled");
+ ok(removeAll.disabled, "The 'Remove All Sites' button is disabled");
+
+ info("Adding more sites to the neverTranslateSites perms");
+ PermissionTestUtils.add(
+ "https://example.org",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+ PermissionTestUtils.add(
+ "https://example.com",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+ PermissionTestUtils.add(
+ "https://example.net",
+ TRANSLATIONS_PERMISSION,
+ Services.perms.DENY_ACTION
+ );
+
+ is(tree.view.rowCount, 3, "The never-translate sites list has 3 items");
+ ok(remove.disabled, "The 'Remove Site' button is disabled");
+ ok(!removeAll.disabled, "The 'Remove All Sites' button is enabled");
+
+ click(removeAll, "Clicking the remove-all sites button");
+ is(tree.view.rowCount, 0, "The never-translate sites list is empty");
+ ok(remove.disabled, "The 'Remove Site' button is disabled");
+ ok(removeAll.disabled, "The 'Remove All Sites' button is disabled");
+ is(
+ getNeverTranslateSitesFromPerms().length,
+ 0,
+ "There are no sites in the neverTranslateSites perms"
+ );
+
+ await waitForCloseDialogWindow(dialogWindow);
+ await cleanup();
+});