summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js')
-rw-r--r--devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js b/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js
new file mode 100644
index 000000000..83083eef3
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_variables-view-08.js
@@ -0,0 +1,61 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test that property values are not missing when the property names only contain whitespace.
+ */
+
+const TAB_URL = EXAMPLE_URL + "doc_whitespace-property-names.html";
+
+var test = Task.async(function* () {
+ let options = {
+ source: TAB_URL,
+ line: 1
+ };
+ var dbg = initDebugger(TAB_URL, options);
+ const [tab,, panel] = yield dbg;
+ const debuggerLineNumber = 24;
+ const scopes = waitForCaretAndScopes(panel, debuggerLineNumber);
+ callInTab(tab, "doPause");
+ yield scopes;
+
+ const variables = panel.panelWin.DebuggerView.Variables;
+ ok(variables, "Should get the variables view.");
+
+ const scope = [...variables][0];
+ ok(scope, "Should get the current function's scope.");
+
+ let obj;
+ for (let [name, value] of scope) {
+ if (name === "obj") {
+ obj = value;
+ }
+ }
+ ok(obj, "Should have found the 'obj' variable");
+
+ info("Expanding variable 'obj'");
+ let expanded = once(variables, "fetched");
+ obj.expand();
+ yield expanded;
+
+ let values = ["", " ", "\r", "\n", "\t", "\f", "\uFEFF", "\xA0"];
+ let count = values.length;
+
+ for (let [property, value] of obj) {
+ let index = values.indexOf(property);
+ if (index >= 0) {
+ --count;
+ is(value._nameString, property,
+ "The _nameString is different than the property name");
+ is(value._valueString, index + "",
+ "The _valueString is different than the stringified value");
+ is(value._valueLabel.getAttribute("value"), index + "",
+ "The _valueLabel value is different than the stringified value");
+ }
+ }
+ is(count, 0, "There are " + count + " missing properties");
+
+ resumeDebuggerThenCloseAndFinish(panel);
+});