Bug 1377668 - Avoid invalid object by using noGrip option; r=nchevobbe
MozReview-Commit-ID: IiH5o52tTgS
--- a/devtools/client/jsonview/components/json-panel.js
+++ b/devtools/client/jsonview/components/json-panel.js
@@ -76,16 +76,17 @@ define(function (require, exports, modul
// Hide object summary when non-empty object is expanded (bug 1244912).
if (isObject(member.value) && member.hasChildren && member.open) {
return null;
}
// Render the value (summary) using Reps library.
return Rep(Object.assign({}, props, {
cropLimit: 50,
+ noGrip: true
}));
},
renderTree: function () {
// Append custom column for displaying values. This column
// Take all available horizontal space.
let columns = [{
id: "value",
--- a/devtools/client/jsonview/test/browser.ini
+++ b/devtools/client/jsonview/test/browser.ini
@@ -31,15 +31,16 @@ subsuite = clipboard
skip-if = (os == 'linux' && bits == 32 && debug) # bug 1328915, disable linux32 debug devtools for timeouts
[browser_jsonview_csp_json.js]
[browser_jsonview_empty_object.js]
[browser_jsonview_filter.js]
[browser_jsonview_invalid_json.js]
[browser_jsonview_manifest.js]
[browser_jsonview_nojs.js]
[browser_jsonview_nul.js]
+[browser_jsonview_object-type.js]
[browser_jsonview_save_json.js]
support-files =
!/toolkit/content/tests/browser/common/mockTransfer.js
[browser_jsonview_slash.js]
[browser_jsonview_utf8.js]
[browser_jsonview_valid_json.js]
[browser_json_refresh.js]
--- a/devtools/client/jsonview/test/browser_jsonview_empty_object.js
+++ b/devtools/client/jsonview/test/browser_jsonview_empty_object.js
@@ -28,17 +28,17 @@ function testNestedObject(objExpr, summa
let objectCellCount = yield getElementCount(
".jsonPanelBox .treeTable .objectCell");
is(objectCellCount, 1, "There must be one object cell");
let objectCellText = yield getElementText(
".jsonPanelBox .treeTable .objectCell");
is(objectCellText, summary, objExpr + " has a visible summary");
- // Collapsed auto-expanded node.
+ // Collapse auto-expanded node.
yield clickJsonNode(".jsonPanelBox .treeTable .treeLabel");
let textAfter = yield getElementText(
".jsonPanelBox .treeTable .objectCell");
is(textAfter, summary, objExpr + " still has a visible summary");
};
}
new file mode 100644
--- /dev/null
+++ b/devtools/client/jsonview/test/browser_jsonview_object-type.js
@@ -0,0 +1,27 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {ELLIPSIS} = require("devtools/shared/l10n");
+
+add_task(function* () {
+ info("Test Object type property started");
+
+ const TEST_JSON_URL = "data:application/json,{\"x\":{\"type\":\"string\"}}";
+ yield addJsonViewTab(TEST_JSON_URL);
+
+ let count = yield getElementCount(".jsonPanelBox .treeTable .treeRow");
+ is(count, 2, "There must be two rows");
+
+ // Collapse auto-expanded node.
+ yield clickJsonNode(".jsonPanelBox .treeTable .treeLabel");
+
+ count = yield getElementCount(".jsonPanelBox .treeTable .treeRow");
+ is(count, 1, "There must be one row");
+
+ let label = yield getElementText(".jsonPanelBox .treeTable .objectCell");
+ is(label, `{${ELLIPSIS}}`, "The label must be indicating an object");
+});