summaryrefslogtreecommitdiffstats
path: root/devtools/client/performance/test/unit/test_marker-utils.js
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/client/performance/test/unit/test_marker-utils.js
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/client/performance/test/unit/test_marker-utils.js')
-rw-r--r--devtools/client/performance/test/unit/test_marker-utils.js115
1 files changed, 115 insertions, 0 deletions
diff --git a/devtools/client/performance/test/unit/test_marker-utils.js b/devtools/client/performance/test/unit/test_marker-utils.js
new file mode 100644
index 000000000..6fc06efbe
--- /dev/null
+++ b/devtools/client/performance/test/unit/test_marker-utils.js
@@ -0,0 +1,115 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+"use strict";
+
+/**
+ * Tests the marker utils methods.
+ */
+
+function run_test() {
+ run_next_test();
+}
+
+add_task(function () {
+ let { TIMELINE_BLUEPRINT } = require("devtools/client/performance/modules/markers");
+ let { PREFS } = require("devtools/client/performance/modules/global");
+ let { MarkerBlueprintUtils } = require("devtools/client/performance/modules/marker-blueprint-utils");
+
+ PREFS.registerObserver();
+
+ Services.prefs.setBoolPref(PLATFORM_DATA_PREF, false);
+
+ equal(MarkerBlueprintUtils.getMarkerLabel(
+ { name: "DOMEvent" }), "DOM Event",
+ "getMarkerLabel() returns a simple label");
+ equal(MarkerBlueprintUtils.getMarkerLabel(
+ { name: "Javascript", causeName: "setTimeout handler" }), "setTimeout",
+ "getMarkerLabel() returns a label defined via function");
+ equal(MarkerBlueprintUtils.getMarkerLabel(
+ { name: "GarbageCollection", causeName: "ALLOC_TRIGGER" }), "Incremental GC",
+ "getMarkerLabel() returns a label for a function that is generalizable");
+
+ ok(MarkerBlueprintUtils.getMarkerFields({ name: "Paint" }).length === 0,
+ "getMarkerFields() returns an empty array when no fields defined");
+
+ let fields = MarkerBlueprintUtils.getMarkerFields(
+ { name: "ConsoleTime", causeName: "snowstorm" });
+ equal(fields[0].label, "Timer Name:",
+ "getMarkerFields() returns an array with proper label");
+ equal(fields[0].value, "snowstorm",
+ "getMarkerFields() returns an array with proper value");
+
+ fields = MarkerBlueprintUtils.getMarkerFields({ name: "DOMEvent", type: "mouseclick" });
+ equal(fields.length, 1,
+ "getMarkerFields() ignores fields that are not found on marker");
+ equal(fields[0].label, "Event Type:",
+ "getMarkerFields() returns an array with proper label");
+ equal(fields[0].value, "mouseclick",
+ "getMarkerFields() returns an array with proper value");
+
+ fields = MarkerBlueprintUtils.getMarkerFields(
+ { name: "DOMEvent", eventPhase: Ci.nsIDOMEvent.AT_TARGET, type: "mouseclick" });
+ equal(fields.length, 2,
+ "getMarkerFields() returns multiple fields when using a fields function");
+ equal(fields[0].label, "Event Type:",
+ "getMarkerFields() correctly returns fields via function (1)");
+ equal(fields[0].value, "mouseclick",
+ "getMarkerFields() correctly returns fields via function (2)");
+ equal(fields[1].label, "Phase:",
+ "getMarkerFields() correctly returns fields via function (3)");
+ equal(fields[1].value, "Target",
+ "getMarkerFields() correctly returns fields via function (4)");
+
+ fields = MarkerBlueprintUtils.getMarkerFields(
+ { name: "GarbageCollection", causeName: "ALLOC_TRIGGER" });
+ equal(fields[0].value, "Too Many Allocations", "Uses L10N for GC reasons");
+
+ fields = MarkerBlueprintUtils.getMarkerFields(
+ { name: "GarbageCollection", causeName: "NOT_A_GC_REASON" });
+ equal(fields[0].value, "NOT_A_GC_REASON",
+ "Defaults to enum for GC reasons when not L10N'd");
+
+ equal(MarkerBlueprintUtils.getMarkerFields(
+ { name: "Javascript", causeName: "Some Platform Field" })[0].value, "(Gecko)",
+ "Correctly obfuscates JS markers when platform data is off.");
+ Services.prefs.setBoolPref(PLATFORM_DATA_PREF, true);
+ equal(MarkerBlueprintUtils.getMarkerFields(
+ { name: "Javascript", causeName: "Some Platform Field" })[0].value,
+ "Some Platform Field",
+ "Correctly deobfuscates JS markers when platform data is on.");
+
+ equal(MarkerBlueprintUtils.getMarkerGenericName("Javascript"), "Function Call",
+ "getMarkerGenericName() returns correct string when defined via function");
+ equal(MarkerBlueprintUtils.getMarkerGenericName("GarbageCollection"),
+ "Garbage Collection",
+ "getMarkerGenericName() returns correct string when defined via function");
+ equal(MarkerBlueprintUtils.getMarkerGenericName("Reflow"), "Layout",
+ "getMarkerGenericName() returns correct string when defined via string");
+
+ TIMELINE_BLUEPRINT.fakemarker = { group: 0 };
+ try {
+ MarkerBlueprintUtils.getMarkerGenericName("fakemarker");
+ ok(false, "getMarkerGenericName() should throw when no label on blueprint.");
+ } catch (e) {
+ ok(true, "getMarkerGenericName() should throw when no label on blueprint.");
+ }
+
+ TIMELINE_BLUEPRINT.fakemarker = { group: 0, label: () => void 0 };
+ try {
+ MarkerBlueprintUtils.getMarkerGenericName("fakemarker");
+ ok(false,
+ "getMarkerGenericName() should throw when label function returnd undefined.");
+ } catch (e) {
+ ok(true,
+ "getMarkerGenericName() should throw when label function returnd undefined.");
+ }
+
+ delete TIMELINE_BLUEPRINT.fakemarker;
+
+ equal(MarkerBlueprintUtils.getBlueprintFor({ name: "Reflow" }).label, "Layout",
+ "getBlueprintFor() should return marker def for passed in marker.");
+ equal(MarkerBlueprintUtils.getBlueprintFor({ name: "Not sure!" }).label(), "Unknown",
+ "getBlueprintFor() should return a default marker def if the marker is undefined.");
+
+ PREFS.unregisterObserver();
+});