diff options
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.js | 61 |
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); +}); |