diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /devtools/client/shared/test/browser_graphs-03.js | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/shared/test/browser_graphs-03.js')
-rw-r--r-- | devtools/client/shared/test/browser_graphs-03.js | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/devtools/client/shared/test/browser_graphs-03.js b/devtools/client/shared/test/browser_graphs-03.js new file mode 100644 index 0000000000..5617c91820 --- /dev/null +++ b/devtools/client/shared/test/browser_graphs-03.js @@ -0,0 +1,131 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +// Tests that graph widgets can handle clients getting/setting the +// selection or cursor. + +const LineGraphWidget = require("devtools/client/shared/widgets/LineGraphWidget"); + +add_task(async function() { + await addTab("about:blank"); + await performTest(); + gBrowser.removeCurrentTab(); +}); + +async function performTest() { + const { host, doc } = await createHost(); + const graph = new LineGraphWidget(doc.body, "fps"); + await graph.once("ready"); + + await testSelection(graph); + await testCursor(graph); + + await graph.destroy(); + host.destroy(); +} + +async function testSelection(graph) { + ok( + graph.getSelection().start === null, + "The graph's selection should initially have a null start value." + ); + ok( + graph.getSelection().end === null, + "The graph's selection should initially have a null end value." + ); + ok(!graph.hasSelection(), "There shouldn't initially be any selection."); + + const selected = graph.once("selecting"); + graph.setSelection({ start: 100, end: 200 }); + + await selected; + ok(true, "A 'selecting' event has been fired."); + + ok(graph.hasSelection(), "There should now be a selection."); + is( + graph.getSelection().start, + 100, + "The graph's selection now has an updated start value." + ); + is( + graph.getSelection().end, + 200, + "The graph's selection now has an updated end value." + ); + + let thrown; + try { + graph.setSelection({ start: null, end: null }); + } catch (e) { + thrown = true; + } + ok(thrown, "Setting a null selection shouldn't work."); + + ok(graph.hasSelection(), "There should still be a selection."); + + const deselected = graph.once("deselecting"); + graph.dropSelection(); + + await deselected; + ok(true, "A 'deselecting' event has been fired."); + + ok(!graph.hasSelection(), "There shouldn't be any selection anymore."); + ok( + graph.getSelection().start === null, + "The graph's selection now has a null start value." + ); + ok( + graph.getSelection().end === null, + "The graph's selection now has a null end value." + ); +} + +function testCursor(graph) { + ok( + graph.getCursor().x === null, + "The graph's cursor should initially have a null X value." + ); + ok( + graph.getCursor().y === null, + "The graph's cursor should initially have a null Y value." + ); + ok(!graph.hasCursor(), "There shouldn't initially be any cursor."); + + graph.setCursor({ x: 100, y: 50 }); + + ok(graph.hasCursor(), "There should now be a cursor."); + is( + graph.getCursor().x, + 100, + "The graph's cursor now has an updated start value." + ); + is( + graph.getCursor().y, + 50, + "The graph's cursor now has an updated end value." + ); + + let thrown; + try { + graph.setCursor({ x: null, y: null }); + } catch (e) { + thrown = true; + } + ok(thrown, "Setting a null cursor shouldn't work."); + + ok(graph.hasCursor(), "There should still be a cursor."); + + graph.dropCursor(); + + ok(!graph.hasCursor(), "There shouldn't be any cursor anymore."); + ok( + graph.getCursor().x === null, + "The graph's cursor now has a null start value." + ); + ok( + graph.getCursor().y === null, + "The graph's cursor now has a null end value." + ); +} |