summaryrefslogtreecommitdiffstats
path: root/devtools/shared/tests/unit/test_stack.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/shared/tests/unit/test_stack.js')
-rw-r--r--devtools/shared/tests/unit/test_stack.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/devtools/shared/tests/unit/test_stack.js b/devtools/shared/tests/unit/test_stack.js
new file mode 100644
index 000000000..ef747c83f
--- /dev/null
+++ b/devtools/shared/tests/unit/test_stack.js
@@ -0,0 +1,45 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Test stack.js.
+
+function run_test() {
+ let loader = new DevToolsLoader();
+ let require = loader.require;
+
+ const {StackFrameCache} = require("devtools/server/actors/utils/stack");
+
+ let cache = new StackFrameCache();
+ cache.initFrames();
+ let baseFrame = {
+ line: 23,
+ column: 77,
+ source: "nowhere",
+ functionDisplayName: "nobody",
+ parent: null,
+ asyncParent: null,
+ asyncCause: null
+ };
+ cache.addFrame(baseFrame);
+
+ let event = cache.makeEvent();
+ do_check_eq(event[0], null);
+ do_check_eq(event[1].functionDisplayName, "nobody");
+ do_check_eq(event.length, 2);
+
+ cache.addFrame({
+ line: 24,
+ column: 78,
+ source: "nowhere",
+ functionDisplayName: "still nobody",
+ parent: null,
+ asyncParent: baseFrame,
+ asyncCause: "async"
+ });
+
+ event = cache.makeEvent();
+ do_check_eq(event[0].functionDisplayName, "still nobody");
+ do_check_eq(event[0].parent, 0);
+ do_check_eq(event[0].asyncParent, 1);
+ do_check_eq(event.length, 1);
+}