Bug 1243962 - e10s fixes for browser_console_variables_view_while_debugging_and_inspecting.js;r=linclark

MozReview-Commit-ID: JZfJMB9b4r9
This commit is contained in:
Brian Grinstead 2016-02-15 13:51:51 -08:00
Родитель e99b0be581
Коммит 18699ac303
2 изменённых файлов: 57 добавлений и 75 удалений

Просмотреть файл

@ -183,7 +183,6 @@ skip-if = e10s # Bug 1042253 - webconsole e10s tests
[browser_console_variables_view_special_names.js]
[browser_console_variables_view_while_debugging.js]
[browser_console_variables_view_while_debugging_and_inspecting.js]
skip-if = e10s # Bug 1042253 - webconsole tests disabled with e10s
[browser_eval_in_debugger_stackframe.js]
skip-if = e10s # Bug 1042253 - webconsole tests disabled with e10s
[browser_eval_in_debugger_stackframe2.js]

Просмотреть файл

@ -11,48 +11,35 @@
const TEST_URI = "http://example.com/browser/devtools/client/webconsole/" +
"test/test-eval-in-stackframe.html";
var gWebConsole, gJSTerm, gDebuggerWin, gThread, gDebuggerController,
gStackframes, gVariablesView;
add_task(function*() {
yield loadTab(TEST_URI);
let hud = yield openConsole();
function test() {
loadTab(TEST_URI).then(() => {
openConsole().then(consoleOpened);
}, true);
let dbgPanel = yield openDebugger();
yield openInspector();
yield waitForFrameAdded(dbgPanel);
yield openConsole();
yield testVariablesView(hud);
});
function* waitForFrameAdded(dbgPanel) {
let thread = dbgPanel.panelWin.DebuggerController.activeThread;
info("Waiting for framesadded");
yield new Promise(resolve => {
thread.addOneTimeListener("framesadded", resolve);
ContentTask.spawn(gBrowser.selectedBrowser, {}, function*() {
content.wrappedJSObject.firstCall();
});
});
}
function consoleOpened(hud) {
gWebConsole = hud;
gJSTerm = hud.jsterm;
function* testVariablesView(hud) {
info("testVariablesView");
let jsterm = hud.jsterm;
info("openDebugger");
openDebugger().then(debuggerOpened);
}
function debuggerOpened(result) {
info("debugger opened");
gDebuggerWin = result.panelWin;
gDebuggerController = gDebuggerWin.DebuggerController;
gThread = gDebuggerController.activeThread;
gStackframes = gDebuggerController.StackFrames;
openInspector().then(inspectorOpened);
}
function inspectorOpened() {
info("inspector opened");
gThread.addOneTimeListener("framesadded", onFramesAdded);
info("firstCall()");
content.wrappedJSObject.firstCall();
}
function onFramesAdded() {
info("onFramesAdded");
openConsole().then(() => gJSTerm.execute("fooObj").then(onExecuteFooObj));
}
function onExecuteFooObj(msg) {
let msg = yield jsterm.execute("fooObj");
ok(msg, "output message found");
ok(msg.textContent.includes('{ testProp2: "testValue2" }'),
"message text check");
@ -60,62 +47,58 @@ function onExecuteFooObj(msg) {
let anchor = msg.querySelector("a");
ok(anchor, "object link found");
gJSTerm.once("variablesview-fetched", onFooObjFetch);
info("Waiting for variable view to appear");
let variable = yield new Promise(resolve => {
jsterm.once("variablesview-fetched", (e, variable) => {
resolve(variable);
});
executeSoon(() => EventUtils.synthesizeMouse(anchor, 2, 2, {},
hud.iframeWindow));
});
EventUtils.synthesizeMouse(anchor, 2, 2, {}, gWebConsole.iframeWindow);
}
function onFooObjFetch(aEvent, aVar) {
gVariablesView = aVar._variablesView;
ok(gVariablesView, "variables view object");
findVariableViewProperties(aVar, [
info("Waiting for findVariableViewProperties");
let results = yield findVariableViewProperties(variable, [
{ name: "testProp2", value: "testValue2" },
{ name: "testProp", value: "testValue", dontMatch: true },
], { webconsole: gWebConsole }).then(onTestPropFound);
}
], { webconsole: hud });
function onTestPropFound(aResults) {
let prop = aResults[0].matchedProp;
let prop = results[0].matchedProp;
ok(prop, "matched the |testProp2| property in the variables view");
// Check that property value updates work and that jsterm functions can be
// used.
updateVariablesViewProperty({
variable = yield updateVariablesViewProperty({
property: prop,
field: "value",
string: "document.title + foo2 + $('p')",
webconsole: gWebConsole
}).then(onFooObjFetchAfterUpdate);
}
webconsole: hud
});
function onFooObjFetchAfterUpdate(aVar) {
info("onFooObjFetchAfterUpdate");
let para = content.wrappedJSObject.document.querySelector("p");
let expectedValue = content.document.title + "foo2SecondCall" + para;
let expectedValue = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () {
let para = content.wrappedJSObject.document.querySelector("p");
return content.document.title + "foo2SecondCall" + para;
});
findVariableViewProperties(aVar, [
results = yield findVariableViewProperties(variable, [
{ name: "testProp2", value: expectedValue },
], { webconsole: gWebConsole }).then(onUpdatedTestPropFound);
}
], { webconsole: hud });
function onUpdatedTestPropFound(aResults) {
let prop = aResults[0].matchedProp;
prop = results[0].matchedProp;
ok(prop, "matched the updated |testProp2| property value");
// Check that testProp2 was updated.
gJSTerm.execute("fooObj.testProp2").then(onExecuteFooObjTestProp2);
}
yield new Promise(resolve => {
executeSoon(() => {
jsterm.execute("fooObj.testProp2").then(resolve);
});
});
function onExecuteFooObjTestProp2() {
let para = content.wrappedJSObject.document.querySelector("p");
let expected = content.document.title + "foo2SecondCall" + para;
expectedValue = yield ContentTask.spawn(gBrowser.selectedBrowser, {}, function* () {
let para = content.wrappedJSObject.document.querySelector("p");
return content.document.title + "foo2SecondCall" + para;
});
isnot(gWebConsole.outputNode.textContent.indexOf(expected), -1,
isnot(hud.outputNode.textContent.indexOf(expectedValue), -1,
"fooObj.testProp2 is correct");
gWebConsole = gJSTerm = gDebuggerWin = gThread = gDebuggerController =
gStackframes = gVariablesView = null;
finishTest();
}