summaryrefslogtreecommitdiffstats
path: root/toolkit/components/glean/tests/xpcshell
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/glean/tests/xpcshell')
-rw-r--r--toolkit/components/glean/tests/xpcshell/test_Glean.js76
-rw-r--r--toolkit/components/glean/tests/xpcshell/test_GleanServerKnobs.js38
-rw-r--r--toolkit/components/glean/tests/xpcshell/test_JOG.js37
3 files changed, 125 insertions, 26 deletions
diff --git a/toolkit/components/glean/tests/xpcshell/test_Glean.js b/toolkit/components/glean/tests/xpcshell/test_Glean.js
index 18b450a69b..f5661f91b6 100644
--- a/toolkit/components/glean/tests/xpcshell/test_Glean.js
+++ b/toolkit/components/glean/tests/xpcshell/test_Glean.js
@@ -514,7 +514,7 @@ add_task(async function test_fog_object_works() {
let expected = [
{ colour: "red", diameter: 5 },
{ colour: "blue", diameter: 7 },
- { colour: "orange", diameter: null },
+ { colour: "orange" },
];
Assert.deepEqual(expected, result);
@@ -528,10 +528,10 @@ add_task(async function test_fog_object_works() {
Glean.testOnly.balloons.set(balloons);
result = Glean.testOnly.balloons.testGetValue();
expected = [
- { colour: "inf", diameter: null },
- { colour: "negative-inf", diameter: null },
- { colour: "nan", diameter: null },
- { colour: "undef", diameter: null },
+ { colour: "inf" },
+ { colour: "negative-inf" },
+ { colour: "nan" },
+ { colour: "undef" },
];
Assert.deepEqual(expected, result);
@@ -562,3 +562,69 @@ add_task(async function test_fog_object_works() {
"Should throw because last object was invalid."
);
});
+
+add_task(async function test_fog_complex_object_works() {
+ if (!Glean.testOnly.crashStack) {
+ // FIXME(bug 1883857): object metric type not available, e.g. in artifact builds.
+ // Skipping this test.
+ return;
+ }
+
+ Assert.equal(
+ undefined,
+ Glean.testOnly.crashStack.testGetValue(),
+ "No object stored"
+ );
+
+ Glean.testOnly.crashStack.set({});
+ let result = Glean.testOnly.crashStack.testGetValue();
+ Assert.deepEqual({}, result);
+
+ let stack = {
+ status: "OK",
+ crash_info: {
+ typ: "main",
+ address: "0xf001ba11",
+ crashing_thread: 1,
+ },
+ main_module: 0,
+ modules: [
+ {
+ base_addr: "0x00000000",
+ end_addr: "0x00004000",
+ },
+ ],
+ };
+
+ Glean.testOnly.crashStack.set(stack);
+ result = Glean.testOnly.crashStack.testGetValue();
+ Assert.deepEqual(stack, result);
+
+ stack = {
+ status: "OK",
+ modules: [
+ {
+ base_addr: "0x00000000",
+ end_addr: "0x00004000",
+ },
+ ],
+ };
+ Glean.testOnly.crashStack.set(stack);
+ result = Glean.testOnly.crashStack.testGetValue();
+ Assert.deepEqual(stack, result);
+
+ stack = {
+ status: "OK",
+ modules: [],
+ };
+ Glean.testOnly.crashStack.set(stack);
+ result = Glean.testOnly.crashStack.testGetValue();
+ Assert.deepEqual({ status: "OK" }, result);
+
+ stack = {
+ status: "OK",
+ };
+ Glean.testOnly.crashStack.set(stack);
+ result = Glean.testOnly.crashStack.testGetValue();
+ Assert.deepEqual(stack, result);
+});
diff --git a/toolkit/components/glean/tests/xpcshell/test_GleanServerKnobs.js b/toolkit/components/glean/tests/xpcshell/test_GleanServerKnobs.js
index 31ed262798..6b36d74ec4 100644
--- a/toolkit/components/glean/tests/xpcshell/test_GleanServerKnobs.js
+++ b/toolkit/components/glean/tests/xpcshell/test_GleanServerKnobs.js
@@ -21,9 +21,11 @@ add_task(function test_fog_metrics_disabled_remotely() {
// Create and set a feature configuration that disables the test metric.
const feature_config = {
- "test_only.cheesy_string": false,
+ metrics_enabled: {
+ "test_only.cheesy_string": false,
+ },
};
- Services.fog.setMetricsFeatureConfig(JSON.stringify(feature_config));
+ Services.fog.applyServerKnobsConfig(JSON.stringify(feature_config));
// Attempt to set another cheesy string in the test metric. This should not
// record because of the override to the metric's default value in the
@@ -49,10 +51,12 @@ add_task(function test_fog_multiple_metrics_disabled_remotely() {
// Create and set a feature configuration that disables multiple test
// metrics.
var feature_config = {
- "test_only.cheesy_string": false,
- "test_only.meaning_of_life": false,
+ metrics_enabled: {
+ "test_only.cheesy_string": false,
+ "test_only.meaning_of_life": false,
+ },
};
- Services.fog.setMetricsFeatureConfig(JSON.stringify(feature_config));
+ Services.fog.applyServerKnobsConfig(JSON.stringify(feature_config));
// Attempt to set the metrics again. This should not record because of the
// override to the metrics' default value in the feature configuration.
@@ -65,10 +69,12 @@ add_task(function test_fog_multiple_metrics_disabled_remotely() {
// Change the feature configuration to re-enable the `cheesy_string` metric.
feature_config = {
- "test_only.cheesy_string": true,
- "test_only.meaning_of_life": false,
+ metrics_enabled: {
+ "test_only.cheesy_string": true,
+ "test_only.meaning_of_life": false,
+ },
};
- Services.fog.setMetricsFeatureConfig(JSON.stringify(feature_config));
+ Services.fog.applyServerKnobsConfig(JSON.stringify(feature_config));
// Attempt to set the metrics again. This should only record `cheesy_string`
// because of the most recent feature configuration.
@@ -101,9 +107,11 @@ add_task(function test_fog_metrics_feature_config_api_handles_null_values() {
// Create and set a feature configuration that disables the test metric.
const feature_config = {
- "test_only.cheesy_string": false,
+ metrics_enabled: {
+ "test_only.cheesy_string": false,
+ },
};
- Services.fog.setMetricsFeatureConfig(JSON.stringify(feature_config));
+ Services.fog.applyServerKnobsConfig(JSON.stringify(feature_config));
// Attempt to set another cheesy string in the test metric. This should not
// record because of the override to the metric's default value in the
@@ -113,7 +121,7 @@ add_task(function test_fog_metrics_feature_config_api_handles_null_values() {
Assert.equal(str1, Glean.testOnly.cheesyString.testGetValue("test-ping"));
// Set the configuration to `null`.
- Services.fog.setMetricsFeatureConfig(null);
+ Services.fog.applyServerKnobsConfig(null);
// Attempt to set another cheesy string in the test metric. This should now
// record because `null` doesn't change already existing configuration.
@@ -122,7 +130,7 @@ add_task(function test_fog_metrics_feature_config_api_handles_null_values() {
// Set the configuration to `""` to replicate getting an empty string from
// Nimbus.
- Services.fog.setMetricsFeatureConfig("");
+ Services.fog.applyServerKnobsConfig("");
// Attempt to set another cheesy string in the test metric. This should now
// record again because `""` doesn't change already existing configuration.
@@ -140,9 +148,11 @@ add_task(function test_fog_metrics_disabled_reset_fog_behavior() {
// Create and set a feature configuration that disables the test metric.
const feature_config = {
- "test_only.cheesy_string": false,
+ metrics_enabled: {
+ "test_only.cheesy_string": false,
+ },
};
- Services.fog.setMetricsFeatureConfig(JSON.stringify(feature_config));
+ Services.fog.applyServerKnobsConfig(JSON.stringify(feature_config));
// Attempt to set another cheesy string in the test metric. This should not
// record because of the override to the metric's default value in the
diff --git a/toolkit/components/glean/tests/xpcshell/test_JOG.js b/toolkit/components/glean/tests/xpcshell/test_JOG.js
index 00f3ded135..2017d7a52e 100644
--- a/toolkit/components/glean/tests/xpcshell/test_JOG.js
+++ b/toolkit/components/glean/tests/xpcshell/test_JOG.js
@@ -289,7 +289,16 @@ add_task(async function test_jog_custom_pings() {
`"ping"`,
false
);
- Services.fog.testRegisterRuntimePing("jog-ping", true, true, true, true, []);
+ Services.fog.testRegisterRuntimePing(
+ "jog-ping",
+ true,
+ true,
+ true,
+ true,
+ true,
+ [],
+ []
+ );
Assert.ok("jogPing" in GleanPings);
let submitted = false;
Glean.jogCat.jogPingBool.set(false);
@@ -639,9 +648,16 @@ add_task(function test_jog_dotted_categories_work() {
add_task(async function test_jog_ping_works() {
const kReason = "reason-1";
- Services.fog.testRegisterRuntimePing("my-ping", true, true, true, true, [
- kReason,
- ]);
+ Services.fog.testRegisterRuntimePing(
+ "my-ping",
+ true,
+ true,
+ true,
+ true,
+ true,
+ [],
+ [kReason]
+ );
let submitted = false;
GleanPings.myPing.testBeforeNextSubmit(reason => {
submitted = true;
@@ -653,9 +669,16 @@ add_task(async function test_jog_ping_works() {
add_task(async function test_jog_noinfo_ping_works() {
const kReason = "reason-1";
- Services.fog.testRegisterRuntimePing("noinfo-ping", true, true, true, false, [
- kReason,
- ]);
+ Services.fog.testRegisterRuntimePing(
+ "noinfo-ping",
+ true,
+ true,
+ true,
+ false,
+ true,
+ [],
+ [kReason]
+ );
let submitted = false;
GleanPings.noinfoPing.testBeforeNextSubmit(reason => {
submitted = true;