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