Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Side by Side Diff: test/inspector/runtime/clear-of-command-line-api.js

Issue 2379303002: Revert "[inspector] added inspector test runner [part 3-5]" (Closed)
Patch Set: Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 print("Tests that CommandLineAPI is presented only while evaluation.");
6
7 InspectorTest.evaluateInPage(
8 `
9 var methods = ["dir","dirxml","profile","profileEnd","clear","table","keys","val ues","debug","undebug","monitor","unmonitor","inspect","copy"];
10 var window = this;
11 function presentedAPIMethods()
12 {
13 var methodCount = 0;
14 for (var method of methods) {
15 try {
16 if (eval("window." + method + "&&" + method + ".toString ? " + metho d + ".toString().indexOf(\\"[Command Line API]\\") !== -1 : false"))
17 ++methodCount;
18 } catch (e) {
19 }
20 }
21 methodCount += eval("\\"$_\\" in window ? $_ === 239 : false") ? 1 : 0;
22 return methodCount;
23 }
24
25 function setPropertyForMethod()
26 {
27 window.dir = 42;
28 }
29
30 function defineValuePropertyForMethod()
31 {
32 Object.defineProperty(window, "dir", { value: 42 });
33 }
34
35 function defineAccessorPropertyForMethod()
36 {
37 Object.defineProperty(window, "dir", { set: function() {}, get: function(){ return 42 } });
38 }
39
40 function definePropertiesForMethod()
41 {
42 Object.defineProperties(window, { "dir": { set: function() {}, get: function (){ return 42 } }});
43 }
44
45 var builtinGetOwnPropertyDescriptorOnObject;
46 var builtinGetOwnPropertyDescriptorOnObjectPrototype;
47 var builtinGetOwnPropertyDescriptorOnWindow;
48
49 function redefineGetOwnPropertyDescriptors()
50 {
51 builtinGetOwnPropertyDescriptorOnObject = Object.getOwnPropertyDescriptor;
52 Object.getOwnPropertyDescriptor = function() {}
53 builtinGetOwnPropertyDescriptorOnObjectPrototype = Object.prototype.getOwnPr opertyDescriptor;
54 Object.prototype.getOwnPropertyDescriptor = function() {}
55 builtinGetOwnPropertyDescriptorOnWindow = window.getOwnPropertyDescriptor;
56 window.getOwnPropertyDescriptor = function() {}
57 }
58
59 function restoreGetOwnPropertyDescriptors()
60 {
61 Object.getOwnPropertyDescriptor = builtinGetOwnPropertyDescriptorOnObject;
62 Object.prototype.getOwnPropertyDescriptor = builtinGetOwnPropertyDescriptorO nObjectPrototype;
63 window.getOwnPropertyDescriptor = builtinGetOwnPropertyDescriptorOnWindow;
64 }`);
65
66 runExpressionAndDumpPresentedMethods("")
67 .then(dumpLeftMethods)
68 .then(() => runExpressionAndDumpPresentedMethods("setPropertyForMethod()"))
69 .then(dumpLeftMethods)
70 .then(dumpDir)
71 .then(() => runExpressionAndDumpPresentedMethods("defineValuePropertyForMethod ()"))
72 .then(dumpLeftMethods)
73 .then(dumpDir)
74 .then(() => runExpressionAndDumpPresentedMethods("definePropertiesForMethod()" ))
75 .then(dumpLeftMethods)
76 .then(dumpDir)
77 .then(() => runExpressionAndDumpPresentedMethods("defineAccessorPropertyForMet hod()"))
78 .then(dumpLeftMethods)
79 .then(dumpDir)
80 .then(() => runExpressionAndDumpPresentedMethods("redefineGetOwnPropertyDescri ptors()"))
81 .then(dumpLeftMethods)
82 .then(dumpDir)
83 .then(() => evaluate("restoreGetOwnPropertyDescriptors()", false))
84 .then(InspectorTest.completeTest);
85
86 function evaluate(expression, includeCommandLineAPI)
87 {
88 var cb;
89 var p = new Promise(resolver => cb = resolver);
90 InspectorTest.sendCommandOrDie("Runtime.evaluate", { expression: expression, o bjectGroup: "console", includeCommandLineAPI: includeCommandLineAPI }, cb);
91 return p;
92 }
93
94 function setLastEvaluationResultTo239()
95 {
96 return evaluate("239", false);
97 }
98
99 function runExpressionAndDumpPresentedMethods(expression)
100 {
101 InspectorTest.log(expression);
102 return setLastEvaluationResultTo239()
103 .then(() => evaluate(expression + "; var a = presentedAPIMethods(); a", true ))
104 .then((result) => InspectorTest.logObject(result));
105 }
106
107 function dumpLeftMethods()
108 {
109 // Should always be zero.
110 return setLastEvaluationResultTo239()
111 .then(() => evaluate("presentedAPIMethods()", false))
112 .then((result) => InspectorTest.logObject(result));
113 }
114
115 function dumpDir()
116 {
117 // Should always be presented.
118 return evaluate("dir", false)
119 .then((result) => InspectorTest.logObject(result));
120 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698