summaryrefslogtreecommitdiff
path: root/browser/devtools/debugger/test/browser_dbg_propertyview-07.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/devtools/debugger/test/browser_dbg_propertyview-07.js')
-rw-r--r--browser/devtools/debugger/test/browser_dbg_propertyview-07.js106
1 files changed, 106 insertions, 0 deletions
diff --git a/browser/devtools/debugger/test/browser_dbg_propertyview-07.js b/browser/devtools/debugger/test/browser_dbg_propertyview-07.js
new file mode 100644
index 000000000..b8dfce0af
--- /dev/null
+++ b/browser/devtools/debugger/test/browser_dbg_propertyview-07.js
@@ -0,0 +1,106 @@
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Make sure that the property view displays function parameters.
+ */
+
+const TAB_URL = EXAMPLE_URL + "browser_dbg_frame-parameters.html";
+
+var gPane = null;
+var gTab = null;
+var gDebugger = null;
+
+function test()
+{
+ debug_tab_pane(TAB_URL, function(aTab, aDebuggee, aPane) {
+ gTab = aTab;
+ gPane = aPane;
+ gDebugger = gPane.panelWin;
+
+ testFrameParameters();
+ });
+}
+
+function testFrameParameters()
+{
+ gDebugger.addEventListener("Debugger:FetchedVariables", function test() {
+ gDebugger.removeEventListener("Debugger:FetchedVariables", test, false);
+ Services.tm.currentThread.dispatch({ run: function() {
+
+ var frames = gDebugger.DebuggerView.StackFrames.widget._list,
+ localScope = gDebugger.DebuggerView.Variables._list.querySelector(".variables-view-scope"),
+ localNodes = localScope.querySelector(".variables-view-element-details").childNodes;
+
+ is(gDebugger.DebuggerController.activeThread.state, "paused",
+ "Should only be getting stack frames while paused.");
+
+ is(frames.querySelectorAll(".dbg-stackframe").length, 3,
+ "Should have three frames.");
+
+ is(localNodes.length, 12,
+ "The localScope should contain all the created variable elements.");
+
+ is(localNodes[0].querySelector(".value").getAttribute("value"), "[object Window]",
+ "Should have the right property value for 'this'.");
+
+ is(localNodes[1].querySelector(".value").getAttribute("value"), "[object Object]",
+ "Should have the right property value for 'aArg'.");
+
+ is(localNodes[2].querySelector(".value").getAttribute("value"), '"beta"',
+ "Should have the right property value for 'bArg'.");
+
+ is(localNodes[3].querySelector(".value").getAttribute("value"), "3",
+ "Should have the right property value for 'cArg'.");
+
+ is(localNodes[4].querySelector(".value").getAttribute("value"), "false",
+ "Should have the right property value for 'dArg'.");
+
+ is(localNodes[5].querySelector(".value").getAttribute("value"), "null",
+ "Should have the right property value for 'eArg'.");
+
+ is(localNodes[6].querySelector(".value").getAttribute("value"), "undefined",
+ "Should have the right property value for 'fArg'.");
+
+ is(localNodes[7].querySelector(".value").getAttribute("value"), "1",
+ "Should have the right property value for 'a'.");
+
+ is(localNodes[8].querySelector(".value").getAttribute("value"), "[object Arguments]",
+ "Should have the right property value for 'arguments'.");
+
+ is(localNodes[9].querySelector(".value").getAttribute("value"), "[object Object]",
+ "Should have the right property value for 'b'.");
+
+ is(localNodes[10].querySelector(".value").getAttribute("value"), "[object Object]",
+ "Should have the right property value for 'c'.");
+
+ resumeAndFinish();
+ }}, 0);
+ }, false);
+
+ EventUtils.sendMouseEvent({ type: "click" },
+ content.document.querySelector("button"),
+ content.window);
+}
+
+function resumeAndFinish() {
+ gDebugger.addEventListener("Debugger:AfterFramesCleared", function listener() {
+ gDebugger.removeEventListener("Debugger:AfterFramesCleared", listener, true);
+
+ var frames = gDebugger.DebuggerView.StackFrames.widget._list;
+ is(frames.querySelectorAll(".dbg-stackframe").length, 0,
+ "Should have no frames.");
+
+ closeDebuggerAndFinish();
+ }, true);
+
+ gDebugger.DebuggerController.activeThread.resume();
+}
+
+registerCleanupFunction(function() {
+ removeTab(gTab);
+ gPane = null;
+ gTab = null;
+ gDebugger = null;
+});