Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
function testRootObject(objExpr, summary = objExpr) {
return async function () {
info("Test JSON with root empty object " + objExpr + " started");
const TEST_JSON_URL = "data:application/json," + objExpr;
await addJsonViewTab(TEST_JSON_URL);
const objectText = await getElementText(".jsonPanelBox .panelContent");
is(objectText, summary, "The root object " + objExpr + " is visible");
};
}
function testNestedObject(objExpr, summary = objExpr) {
return async function () {
info("Test JSON with nested empty object " + objExpr + " started");
const TEST_JSON_URL = "data:application/json,[" + objExpr + "]";
await addJsonViewTab(TEST_JSON_URL);
const objectCellCount = await getElementCount(
".jsonPanelBox .treeTable .objectCell"
);
is(objectCellCount, 1, "There must be one object cell");
const objectCellText = await getElementText(
".jsonPanelBox .treeTable .objectCell"
);
is(objectCellText, summary, objExpr + " has a visible summary");
// Collapse auto-expanded node.
await clickJsonNode(".jsonPanelBox .treeTable .treeLabel");
const textAfter = await getElementText(
".jsonPanelBox .treeTable .objectCell"
);
is(textAfter, summary, objExpr + " still has a visible summary");
};
}
add_task(testRootObject("null"));
add_task(testNestedObject("null"));
add_task(testNestedObject("[]"));
add_task(testNestedObject("{}"));