summaryrefslogtreecommitdiffstats
path: root/devtools/client/inspector/grids/test/xpcshell/test_compare_fragments_geometry.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--devtools/client/inspector/grids/test/xpcshell/test_compare_fragments_geometry.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/devtools/client/inspector/grids/test/xpcshell/test_compare_fragments_geometry.js b/devtools/client/inspector/grids/test/xpcshell/test_compare_fragments_geometry.js
new file mode 100644
index 0000000000..57f617a3ec
--- /dev/null
+++ b/devtools/client/inspector/grids/test/xpcshell/test_compare_fragments_geometry.js
@@ -0,0 +1,129 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {
+ compareFragmentsGeometry,
+} = require("resource://devtools/client/inspector/grids/utils/utils.js");
+
+const TESTS = [
+ {
+ desc: "No fragments",
+ grids: [[], []],
+ expected: true,
+ },
+ {
+ desc: "Different number of fragments",
+ grids: [
+ [{}, {}, {}],
+ [{}, {}],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different number of columns",
+ grids: [
+ [{ cols: { lines: [{}, {}] }, rows: { lines: [] } }],
+ [{ cols: { lines: [{}] }, rows: { lines: [] } }],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different number of rows",
+ grids: [
+ [{ cols: { lines: [{}, {}] }, rows: { lines: [{}] } }],
+ [{ cols: { lines: [{}, {}] }, rows: { lines: [{}, {}] } }],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different number of rows and columns",
+ grids: [
+ [{ cols: { lines: [{}] }, rows: { lines: [{}] } }],
+ [{ cols: { lines: [{}, {}] }, rows: { lines: [{}, {}] } }],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different column sizes",
+ grids: [
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 500 }] },
+ rows: { lines: [] },
+ },
+ ],
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 1000 }] },
+ rows: { lines: [] },
+ },
+ ],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different row sizes",
+ grids: [
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 500 }] },
+ rows: { lines: [{ start: -100 }] },
+ },
+ ],
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 500 }] },
+ rows: { lines: [{ start: 0 }] },
+ },
+ ],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Different row and column sizes",
+ grids: [
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 500 }] },
+ rows: { lines: [{ start: -100 }] },
+ },
+ ],
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 505 }] },
+ rows: { lines: [{ start: 0 }] },
+ },
+ ],
+ ],
+ expected: false,
+ },
+ {
+ desc: "Complete structure, same fragments",
+ grids: [
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 100.3 }, { start: 200.6 }] },
+ rows: { lines: [{ start: 0 }, { start: 1000 }, { start: 2000 }] },
+ },
+ ],
+ [
+ {
+ cols: { lines: [{ start: 0 }, { start: 100.3 }, { start: 200.6 }] },
+ rows: { lines: [{ start: 0 }, { start: 1000 }, { start: 2000 }] },
+ },
+ ],
+ ],
+ expected: true,
+ },
+];
+
+function run_test() {
+ for (const { desc, grids, expected } of TESTS) {
+ if (desc) {
+ info(desc);
+ }
+ equal(compareFragmentsGeometry(grids[0], grids[1]), expected);
+ }
+}