76 lines
1.8 KiB
JavaScript
76 lines
1.8 KiB
JavaScript
/* 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"
|
|
);
|
|
});
|