summaryrefslogtreecommitdiffstats
path: root/devtools/client/memory/test/xpcshell/test_tree-map-01.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/memory/test/xpcshell/test_tree-map-01.js')
-rw-r--r--devtools/client/memory/test/xpcshell/test_tree-map-01.js76
1 files changed, 76 insertions, 0 deletions
diff --git a/devtools/client/memory/test/xpcshell/test_tree-map-01.js b/devtools/client/memory/test/xpcshell/test_tree-map-01.js
new file mode 100644
index 0000000000..58de506798
--- /dev/null
+++ b/devtools/client/memory/test/xpcshell/test_tree-map-01.js
@@ -0,0 +1,76 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {
+ drawBox,
+} = require("resource://devtools/client/memory/components/tree-map/draw.js");
+
+add_task(async function() {
+ let fillRectValues, strokeRectValues;
+ const ctx = {
+ fillRect: (...args) => {
+ fillRectValues = args;
+ },
+ strokeRect: (...args) => {
+ strokeRectValues = args;
+ },
+ };
+ const node = {
+ x: 20,
+ y: 30,
+ dx: 50,
+ dy: 70,
+ type: "other",
+ depth: 2,
+ };
+ const padding = [10, 10];
+ const borderWidth = () => 1;
+ const dragZoom = {
+ offsetX: 0,
+ offsetY: 0,
+ zoom: 0,
+ };
+ drawBox(ctx, node, borderWidth, dragZoom, padding);
+ ok(true, JSON.stringify([ctx, fillRectValues, strokeRectValues]));
+ equal(ctx.fillStyle, "hsl(204,60%,70%)", "The fillStyle is set");
+ equal(ctx.strokeStyle, "hsl(204,60%,35%)", "The strokeStyle is set");
+ equal(ctx.lineWidth, 1, "The lineWidth is set");
+ deepEqual(fillRectValues, [10.5, 20.5, 49, 69], "Draws a filled rectangle");
+ deepEqual(
+ strokeRectValues,
+ [10.5, 20.5, 49, 69],
+ "Draws a stroked rectangle"
+ );
+
+ dragZoom.zoom = 0.5;
+
+ drawBox(ctx, node, borderWidth, dragZoom, padding);
+ ok(true, JSON.stringify([ctx, fillRectValues, strokeRectValues]));
+ deepEqual(
+ fillRectValues,
+ [15.5, 30.5, 74, 104],
+ "Draws a zoomed filled rectangle"
+ );
+ deepEqual(
+ strokeRectValues,
+ [15.5, 30.5, 74, 104],
+ "Draws a zoomed stroked rectangle"
+ );
+
+ dragZoom.offsetX = 110;
+ dragZoom.offsetY = 130;
+
+ drawBox(ctx, node, borderWidth, dragZoom, padding);
+ deepEqual(
+ fillRectValues,
+ [-94.5, -99.5, 74, 104],
+ "Draws a zoomed and offset filled rectangle"
+ );
+ deepEqual(
+ strokeRectValues,
+ [-94.5, -99.5, 74, 104],
+ "Draws a zoomed and offset stroked rectangle"
+ );
+});