node/deps/v8/test/inspector/runtime/runtime-restore.js
Michaël Zasso d1d6b54b69 deps: cherry-pick 50f7455 from upstream V8
Original commit message:

    [inspector] added Runtime.globalLexicalScopeNames method

    The method returns names for all available top-level scope variables
    in giving context.

    R=dgozman@chromium.org,jgruber@chromium.org

    Bug: chromium:681333
    Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
    Change-Id: I2d0b600e1afbfef9087f53ea9c26abe1e112047c
    Reviewed-on: https://chromium-review.googlesource.com/719409
    Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Reviewed-by: Yang Guo <yangguo@chromium.org>
    Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48618}

Refs: 50f7455cd9

PR-URL: https://github.com/nodejs/node/pull/16591
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2017-12-21 14:47:29 +01:00

78 lines
2.3 KiB
JavaScript

// Copyright 2017 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
let {session, contextGroup, Protocol} = InspectorTest.start('Checks that Runtime agent correctly restore its state.');
contextGroup.addScript(`
var formatter = {
header: function(x)
{
return ["span", {}, "Header formatted ", x.name];
},
hasBody: function(x)
{
return true;
},
body: function(x)
{
return ["span", {}, "Body formatted ", x.name]
}
};
devtoolsFormatters = [ formatter ];
//# sourceURL=test.js`)
InspectorTest.runTestSuite([
function testExecutionContextsNotificationsOnRestore(next) {
Protocol.Runtime.onExecutionContextsCleared(InspectorTest.logMessage);
Protocol.Runtime.onExecutionContextCreated(InspectorTest.logMessage);
Protocol.Runtime.onExecutionContextDestroyed(InspectorTest.logMessage);
Protocol.Runtime.enable()
.then(reconnect)
.then(Protocol.Runtime.disable)
.then(() => {
Protocol.Runtime.onExecutionContextsCleared(null);
Protocol.Runtime.onExecutionContextCreated(null);
Protocol.Runtime.onExecutionContextDestroyed(null);
next()
});
},
function testConsoleAPICalledAfterRestore(next) {
Protocol.Runtime.onConsoleAPICalled(InspectorTest.logMessage);
Protocol.Runtime.enable()
.then(reconnect)
.then(() => Protocol.Runtime.evaluate({ expression: 'console.log(42);' }))
.then(Protocol.Runtime.disable)
.then(() => {
Protocol.Runtime.onConsoleAPICalled(null);
next();
});
},
function testSetCustomObjectFormatterEnabled(next) {
Protocol.Runtime.onConsoleAPICalled(InspectorTest.logMessage);
Protocol.Runtime.discardConsoleEntries()
.then(reconnect)
.then(() => Protocol.Runtime.enable())
.then(() => Protocol.Runtime.setCustomObjectFormatterEnabled({ enabled: true }))
.then(reconnect)
.then(() => Protocol.Runtime.evaluate({ expression: 'console.log({ name: 42 })'}))
.then(InspectorTest.logMessage)
.then(Protocol.Runtime.disable)
.then(() => {
Protocol.Runtime.onConsoleAPICalled(null);
next();
});
},
]);
function reconnect() {
InspectorTest.logMessage('will reconnect..');
session.reconnect();
}