function testTargetsAreInElements(targets, elements) {
let c = 0;
for (let target of targets) {
if (c >= elements.length) {
ok(false, "We shouldn't have more targets than elements found.");
break;
}
let element = elements[c];
let isMatching = (target.id == element.id);
let test_function = (target.todo ? todo : ok);
// Only move to the next element in the elements if this one was a match.
// This handles the case of an unexpected element showing up, and prevents
// cascading errors in that case. If we've instead screwed up the target
// list, then we will get cascading errors.
if (isMatching) {
++c;
}
}
// Make sure we don't have any extra elements after going through all the targets.
is(c, elements.length, "We shouldn't have more elements than we have targets.");
}
function runTests() {
// Part 1: Look for all the grid elements starting from the document root.
let elementsFromRoot = document.documentElement.getElementsWithGrid();
// Check that the expected elements were returned.
// Targets are provided in order we expect them to appear.
// Has to end in a non-todo element in order for testing logic to work.
let targetsFromRoot = [
{id: "root", message: "root with display:grid"},
{id: "a", message: "'plain' grid container with display:grid"},
{id: "b", message: "display:subgrid inside display:grid (to be fixed in Bug 1240834)", todo: true},
{id: "c", message: "'plain' grid container with display:inline-grid"},
{id: "d", message: "display:subgrid inside display:inline-grid (to be fixed in Bug 1240834)", todo: true},
{id: "e", message: "grid container with visibility:hidden"},
{id: "f", message: "grid container inside an element"},
{id: "g", message: "overflow:scroll grid container"},
{id: "h", message: "button as a grid container"},
{id: "i", message: "fieldset as a grid container"},
{id: "k1", message: "grid container containing a grid container"},
{id: "k2", message: "grid container inside a grid container"},
];
is(elementsFromRoot.length, 10, "Found expected number of elements within document root.");
testTargetsAreInElements(targetsFromRoot, elementsFromRoot);
// Part 2: Look for all the grid elements starting from a non-root element.
let elementsFromNonRoot = document.getElementById("a_non_root_element").getElementsWithGrid();
let targetsFromNonRoot = [
{id: "f", message: "grid container inside an element (from non-root element)"},
];
is(elementsFromNonRoot.length, 1, "Found expected number of elements from non-root element.");
testTargetsAreInElements(targetsFromNonRoot, elementsFromNonRoot);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.