mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-15 03:29:01 +00:00
107 lines
3.3 KiB
JavaScript
107 lines
3.3 KiB
JavaScript
|
/* Any copyright is dedicated to the Public Domain.
|
||
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||
|
|
||
|
/**
|
||
|
* Tests that the profiler's tree view renders generalized platform data
|
||
|
* when `contentOnly` is on correctly.
|
||
|
*/
|
||
|
|
||
|
var { CATEGORY_MASK } = require("devtools/client/performance/modules/global");
|
||
|
|
||
|
function test() {
|
||
|
let { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
|
||
|
let { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
|
||
|
|
||
|
/*
|
||
|
* should have a tree like:
|
||
|
* root
|
||
|
* - A
|
||
|
* - B
|
||
|
* - C
|
||
|
* - D
|
||
|
* - E
|
||
|
* - F
|
||
|
* - (JS)
|
||
|
* - (GC)
|
||
|
* - (JS)
|
||
|
*/
|
||
|
|
||
|
let threadNode = new ThreadNode(gThread, { startTime: 0, endTime: 30, contentOnly: true });
|
||
|
// Don't display the synthesized (root) and the real (root) node twice.
|
||
|
threadNode.calls = threadNode.calls[0].calls;
|
||
|
let treeRoot = new CallView({ frame: threadNode, autoExpandDepth: 10 });
|
||
|
|
||
|
let container = document.createElement("vbox");
|
||
|
treeRoot.attachTo(container);
|
||
|
|
||
|
let A = treeRoot.getChild(0);
|
||
|
let JS = treeRoot.getChild(1);
|
||
|
let GC = A.getChild(1);
|
||
|
let JS2 = A.getChild(2).getChild().getChild();
|
||
|
|
||
|
is(JS.target.getAttribute("category"), "js",
|
||
|
"Generalized JS node has correct category");
|
||
|
is(JS.target.getAttribute("tooltiptext"), "JIT",
|
||
|
"Generalized JS node has correct category");
|
||
|
is(JS.target.querySelector(".call-tree-name").getAttribute("value"), "JIT",
|
||
|
"Generalized JS node has correct display value as just the category name.");
|
||
|
|
||
|
is(JS2.target.getAttribute("category"), "js",
|
||
|
"Generalized second JS node has correct category");
|
||
|
is(JS2.target.getAttribute("tooltiptext"), "JIT",
|
||
|
"Generalized second JS node has correct category");
|
||
|
is(JS2.target.querySelector(".call-tree-name").getAttribute("value"), "JIT",
|
||
|
"Generalized second JS node has correct display value as just the category name.");
|
||
|
|
||
|
is(GC.target.getAttribute("category"), "gc",
|
||
|
"Generalized GC node has correct category");
|
||
|
is(GC.target.getAttribute("tooltiptext"), "GC",
|
||
|
"Generalized GC node has correct category");
|
||
|
is(GC.target.querySelector(".call-tree-name").getAttribute("value"), "GC",
|
||
|
"Generalized GC node has correct display value as just the category name.");
|
||
|
|
||
|
finish();
|
||
|
}
|
||
|
|
||
|
var gThread = synthesizeProfileForTest([{
|
||
|
time: 5,
|
||
|
frames: [
|
||
|
{ location: "(root)" },
|
||
|
{ location: "http://content/A" },
|
||
|
{ location: "http://content/B" },
|
||
|
{ location: "http://content/C" }
|
||
|
]
|
||
|
}, {
|
||
|
time: 5 + 6,
|
||
|
frames: [
|
||
|
{ location: "(root)" },
|
||
|
{ location: "http://content/A" },
|
||
|
{ location: "http://content/B" },
|
||
|
{ location: "contentY", category: CATEGORY_MASK("css") },
|
||
|
{ location: "http://content/D" }
|
||
|
]
|
||
|
}, {
|
||
|
time: 5 + 6 + 7,
|
||
|
frames: [
|
||
|
{ location: "(root)" },
|
||
|
{ location: "http://content/A" },
|
||
|
{ location: "contentY", category: CATEGORY_MASK("css") },
|
||
|
{ location: "http://content/E" },
|
||
|
{ location: "http://content/F" },
|
||
|
{ location: "contentY", category: CATEGORY_MASK("js") },
|
||
|
]
|
||
|
}, {
|
||
|
time: 5 + 20,
|
||
|
frames: [
|
||
|
{ location: "(root)" },
|
||
|
{ location: "contentX", category: CATEGORY_MASK("js") },
|
||
|
]
|
||
|
}, {
|
||
|
time: 5 + 25,
|
||
|
frames: [
|
||
|
{ location: "(root)" },
|
||
|
{ location: "http://content/A" },
|
||
|
{ location: "contentZ", category: CATEGORY_MASK("gc", 1) },
|
||
|
]
|
||
|
}]);
|