summaryrefslogtreecommitdiffstats
path: root/devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js')
-rw-r--r--devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js128
1 files changed, 128 insertions, 0 deletions
diff --git a/devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js b/devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js
new file mode 100644
index 0000000000..07680d7496
--- /dev/null
+++ b/devtools/client/performance-new/test/browser/browser_aboutprofiling-presets-custom.js
@@ -0,0 +1,128 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+"use strict";
+
+add_task(async function test() {
+ info(
+ "Test that about:profiling presets override the individual settings when changed."
+ );
+ const supportedFeatures = Services.profiler.GetFeatures();
+
+ if (!supportedFeatures.includes("stackwalk")) {
+ ok(true, "This platform does not support stackwalking, skip this test.");
+ return;
+ }
+ // This test assumes that the Web Developer preset is set by default, which is
+ // not the case on Nightly and custom builds.
+ BackgroundJSM.changePreset(
+ "aboutprofiling",
+ "web-developer",
+ supportedFeatures
+ );
+
+ await withAboutProfiling(async document => {
+ const webdevPreset = await getNearestInputFromText(
+ document,
+ "Web Developer"
+ );
+ const customPreset = await getNearestInputFromText(document, "Custom");
+ const stackwalkFeature = await getNearestInputFromText(
+ document,
+ "Native Stacks"
+ );
+ const geckoMainThread = await getNearestInputFromText(
+ document,
+ "GeckoMain"
+ );
+
+ {
+ info("Check the defaults on the about:profiling page.");
+ ok(
+ webdevPreset.checked,
+ "By default the Web Developer preset is checked."
+ );
+ ok(!customPreset.checked, "By default the custom preset is not checked.");
+ ok(
+ !stackwalkFeature.checked,
+ "Stack walking is not enabled for Web Developer."
+ );
+ ok(
+ !activeConfigurationHasFeature("stackwalk"),
+ "Stack walking is not in the active configuration."
+ );
+ ok(
+ geckoMainThread.checked,
+ "The GeckoMain thread is tracked for the Web Developer preset"
+ );
+ ok(
+ activeConfigurationHasThread("GeckoMain"),
+ "The GeckoMain thread is in the active configuration."
+ );
+ }
+
+ {
+ info("Change some settings, which will move the preset over to Custom.");
+
+ info("Click stack walking.");
+ stackwalkFeature.click();
+
+ info("Click the GeckoMain thread.");
+ geckoMainThread.click();
+ }
+
+ {
+ info("Check that the various settings were actually updated in the UI.");
+ ok(
+ !webdevPreset.checked,
+ "The Web Developer preset is no longer enabled."
+ );
+ ok(customPreset.checked, "The Custom preset is now checked.");
+ ok(stackwalkFeature.checked, "Stack walking was enabled");
+ ok(
+ activeConfigurationHasFeature("stackwalk"),
+ "Stack walking is in the active configuration."
+ );
+ ok(
+ !geckoMainThread.checked,
+ "GeckoMain was removed from tracked threads."
+ );
+ ok(
+ !activeConfigurationHasThread("GeckoMain"),
+ "The GeckoMain thread is not in the active configuration."
+ );
+ }
+
+ {
+ info(
+ "Click the Web Developer preset, which should revert the other settings."
+ );
+ webdevPreset.click();
+ }
+
+ {
+ info(
+ "Now verify that everything was reverted back to the original settings."
+ );
+ ok(webdevPreset.checked, "The Web Developer preset is checked again.");
+ ok(!customPreset.checked, "The custom preset is not checked.");
+ ok(
+ !stackwalkFeature.checked,
+ "Stack walking is reverted for the Web Developer preset."
+ );
+ ok(
+ !activeConfigurationHasFeature("stackwalk"),
+ "Stack walking is not in the active configuration."
+ );
+ ok(
+ geckoMainThread.checked,
+ "GeckoMain was added back to the tracked threads."
+ );
+ ok(
+ activeConfigurationHasThread("GeckoMain"),
+ "The GeckoMain thread is in the active configuration."
+ );
+ }
+ });
+});