Bug 1161072 - Wait for all async operations to finish before proceeding in browser_tilt_picking_inspector.js. r=bgrins

This commit is contained in:
Alexandre Poirot 2015-08-11 00:51:15 -07:00
parent 2375205fae
commit 337895ce0f

View File

@ -2,7 +2,8 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
let presenter;
Components.utils.import("resource://gre/modules/Task.jsm");
let promise = require("promise");
function test() {
if (!isTiltEnabled()) {
@ -22,27 +23,39 @@ function test() {
let {TargetFactory} = require("devtools/framework/target");
let target = TargetFactory.forTab(gBrowser.selectedTab);
gDevTools.showToolbox(target, "inspector").then(function(toolbox) {
let contentDocument = toolbox.target.tab.linkedBrowser.contentDocument;
let div = contentDocument.getElementById("first-law");
toolbox.getCurrentPanel().selection.setNode(div);
createTilt({
onTiltOpen: function(instance)
{
presenter = instance.presenter;
whenOpen();
}
}, false, function suddenDeath()
{
ok(false, "Tilt could not be initialized properly.");
cleanup();
});
});
gDevTools.showToolbox(target, "inspector")
.then(Task.async(onToolbox));
});
}
function whenOpen() {
function* onToolbox(toolbox) {
let contentDocument = toolbox.target.tab.linkedBrowser.contentDocument;
let div = contentDocument.getElementById("first-law");
let inspector = toolbox.getPanel("inspector");
let onInspectorUpdated = inspector.once("inspector-updated");
inspector.selection.setNode(div);
yield onInspectorUpdated;
let deferred = promise.defer();
onInspectorUpdated = inspector.once("inspector-updated");
createTilt({
onTiltOpen: function(instance)
{
deferred.resolve(instance.presenter);
}
}, false, function suddenDeath()
{
ok(false, "Tilt could not be initialized properly.");
cleanup();
});
let presenter = yield deferred.promise;
yield onInspectorUpdated;
whenOpen(presenter);
}
function whenOpen(presenter) {
ok(presenter._currentSelection > 0,
"Highlighting a node didn't work properly.");
ok(!presenter._highlight.disabled,