Move parseFontFaceDescriptor to CSSPropertyParser.cpp
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / http / tests / inspector / protocol-test.js
blob973efe7682c914fd3dd55b71d4d5b92858e9bfac
1 var initialize_ProtocolTest = function() {
3 InspectorTest.filterProps = function(object, nondeterministicProps)
5 if (object instanceof Object)
6 for (var prop in object)
7 if (prop in nondeterministicProps)
8 object[prop] = "<" + typeof object[prop] + ">";
9 else
10 object[prop] = this.filterProps(object[prop], nondeterministicProps);
11 else if (object instanceof Array)
12 for (var i = 0; i < object.length; ++i)
13 object[i] = this.filterProps(object[i], nondeterministicProps);
14 else if (typeof object === "number")
15 object = "<number>";
16 else if (typeof object === "string" && object.indexOf("\"id\"") != -1)
17 object = "<string>";
18 return object;
21 InspectorTest._dumpEvent = function()
23 var args = Array.prototype.slice.call(arguments);
24 var eventName = args.shift();
25 InspectorTest._agentCoverage[eventName] = "checked";
26 InspectorTest.addResult("event " + InspectorTest._agentName + "." + eventName);
27 InspectorTest.addObject(InspectorTest._lastReceivedMessage, InspectorTest._customFormatters);
28 InspectorTest.addResult("");
30 var originalEventHandler = args.shift();
31 originalEventHandler.apply(this, args);
35 InspectorTest._dumpCallArguments = function(callArguments)
37 var callArgumentsCopy = JSON.parse(JSON.stringify(callArguments));
38 var agentName = callArgumentsCopy.shift();
39 var functionName = callArgumentsCopy.shift();
40 this.filterProps(callArgumentsCopy, this._customFormatters);
41 var expression = JSON.stringify(callArgumentsCopy);
42 expression = expression.slice(1, expression.length - 1).replace(/\"<number>\"/g, "<number>").replace(/\"<string>\"/g, "<string>");
44 InspectorTest.addResult("-----------------------------------------------------------");
45 InspectorTest.addResult(agentName + "." + functionName + "(" + expression + ")");
46 InspectorTest.addResult("");
49 InspectorTest._callback = function(result)
51 InspectorTest.addResult("response:");
52 InspectorTest.addObject(InspectorTest._lastReceivedMessage, InspectorTest._customFormatters);
53 InspectorTest.addResult("");
54 InspectorTest._runNextTest();
57 InspectorTest._runNextTest = function()
59 var step = ++this._step;
60 var nextTest = this._testSuite[step];
61 if (nextTest) {
62 InspectorTest._dumpCallArguments(nextTest);
64 nextTest.push(this._callback.bind(this));
66 var agentName = nextTest.shift();
67 var functionName = nextTest.shift();
68 window[agentName][functionName].apply(window[agentName], nextTest);
70 var lastSentMessage = InspectorTest._lastSentMessage; // This is because the next call will override _lastSentMessage.
71 InspectorTest.addResult("request:");
72 InspectorTest.addObject(lastSentMessage, InspectorTest._customFormatters);
73 InspectorTest.addResult("");
75 if (agentName === this._agentName)
76 this._agentCoverage[functionName] = "checked";
78 else {
79 InspectorTest.addResult("===========================================================");
80 InspectorTest.addResult("Coverage for " + this._agentName);
81 InspectorTest.addObject(this._agentCoverage);
82 InspectorBackend.dispatch = this._originalDispatch;
83 InspectorFrontendHost.sendMessageToBackend = this._originalSendMessageToBackend;
84 this.completeTest();
88 InspectorTest.runProtocolTestSuite = function(agentName, testSuite, nondeterministicProps)
90 this._agentName = agentName;
91 this._testSuite = testSuite;
92 this._customFormatters = {};
93 for (var i = 0; i < nondeterministicProps.length; ++i)
94 this._customFormatters[nondeterministicProps[i]] = "formatAsTypeName";
95 var agent = window[agentName];
97 this._agentCoverage = {};
98 for (var key in agent)
99 this._agentCoverage[key] = "not checked";
101 var domain = agentName.replace(/Agent$/,"");
102 var domainMessagesHandler = InspectorBackend._domainDispatchers[domain];
103 for (var eventName in domainMessagesHandler) {
104 if (typeof domainMessagesHandler[eventName] !== "function")
105 continue;
106 this._agentCoverage[eventName] = "not checked";
107 domainMessagesHandler[eventName] = InspectorTest._dumpEvent.bind(domainMessagesHandler, eventName, domainMessagesHandler[eventName]);
110 this._originalDispatch = InspectorBackend.dispatch;
111 InspectorBackend.dispatch = function(message)
113 InspectorTest._lastReceivedMessage = (typeof message === "string") ? JSON.parse(message) : message;
114 InspectorTest._originalDispatch.apply(InspectorBackend, [message]);
117 this._originalSendMessageToBackend = InspectorFrontendHost.sendMessageToBackend;
118 InspectorFrontendHost.sendMessageToBackend = function(message)
120 InspectorTest._lastSentMessage = JSON.parse(message);
121 InspectorTest._originalSendMessageToBackend.apply(InspectorFrontendHost, [message]);
124 this._step = -1;
126 this._runNextTest();