summaryrefslogtreecommitdiffstats
path: root/devtools/client/netmonitor/test/browser_net_filter-04.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /devtools/client/netmonitor/test/browser_net_filter-04.js
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/netmonitor/test/browser_net_filter-04.js')
-rw-r--r--devtools/client/netmonitor/test/browser_net_filter-04.js80
1 files changed, 80 insertions, 0 deletions
diff --git a/devtools/client/netmonitor/test/browser_net_filter-04.js b/devtools/client/netmonitor/test/browser_net_filter-04.js
new file mode 100644
index 0000000000..d690813285
--- /dev/null
+++ b/devtools/client/netmonitor/test/browser_net_filter-04.js
@@ -0,0 +1,80 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests if invalid filter types are sanitized when loaded from the preferences.
+ */
+
+const BASIC_REQUESTS = [
+ { url: "sjs_content-type-test-server.sjs?fmt=html&res=undefined" },
+ { url: "sjs_content-type-test-server.sjs?fmt=css" },
+ { url: "sjs_content-type-test-server.sjs?fmt=js" },
+];
+
+const REQUESTS_WITH_MEDIA = BASIC_REQUESTS.concat([
+ { url: "sjs_content-type-test-server.sjs?fmt=font" },
+ { url: "sjs_content-type-test-server.sjs?fmt=image" },
+ { url: "sjs_content-type-test-server.sjs?fmt=audio" },
+ { url: "sjs_content-type-test-server.sjs?fmt=video" },
+]);
+
+const REQUESTS_WITH_MEDIA_AND_FLASH = REQUESTS_WITH_MEDIA.concat([
+ { url: "sjs_content-type-test-server.sjs?fmt=flash" },
+]);
+
+const REQUESTS_WITH_MEDIA_AND_FLASH_AND_WS =
+ REQUESTS_WITH_MEDIA_AND_FLASH.concat([
+ /* "Upgrade" is a reserved header and can not be set on XMLHttpRequest */
+ { url: "sjs_content-type-test-server.sjs?fmt=ws" },
+ ]);
+
+add_task(async function () {
+ Services.prefs.setCharPref(
+ "devtools.netmonitor.filters",
+ '["bogus", "js", "alsobogus"]'
+ );
+
+ const { monitor } = await initNetMonitor(FILTERING_URL, {
+ requestCount: 1,
+ expectedEventTimings: 0,
+ });
+ info("Starting test... ");
+
+ const { document, store, windowRequire } = monitor.panelWin;
+ const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
+ const { Prefs } = windowRequire("devtools/client/netmonitor/src/utils/prefs");
+
+ store.dispatch(Actions.batchEnable(false));
+
+ is(Prefs.filters.length, 3, "All the filter types should be loaded.");
+ is(
+ Prefs.filters[0],
+ "bogus",
+ "The first filter type is invalid, but loaded anyway."
+ );
+
+ // As the view is filtered and there is only one request for which we fetch event timings
+ const wait = waitForNetworkEvents(monitor, 9, { expectedEventTimings: 1 });
+ await performRequestsInContent(REQUESTS_WITH_MEDIA_AND_FLASH_AND_WS);
+ await wait;
+
+ testFilterButtons(monitor, "js");
+ ok(true, "Only the correct filter type was taken into consideration.");
+
+ EventUtils.sendMouseEvent(
+ { type: "click" },
+ document.querySelector(".requests-list-filter-html-button")
+ );
+
+ const filters = Services.prefs.getCharPref("devtools.netmonitor.filters");
+ is(
+ filters,
+ '["html","js"]',
+ "The filters preferences were saved directly after the click and only" +
+ " with the valid."
+ );
+
+ await teardown(monitor);
+});