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

Side by Side Diff: third_party/WebKit/LayoutTests/inspector-protocol/timeline/fetch-as-stream.js

Issue 2942573003: [DevTools] New harness for inspector-protocol layout tests (Closed)
Patch Set: Protocol -> dp Created 3 years, 6 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 (async function(testRunner) {
2 let {page, session, dp} = await testRunner.startHTML(`
3 <style>
4 div#test {
5 display: none;
6 background-color: blue;
7 width: 100px;
8 height: 100px;
9 }
10 </style>
11 <div id='test'>
12 </div>
13 `, '');
14
15 var tracingHelper = (await testRunner.loadScript('../resources/tracing-test.js '))(testRunner, session);
16 tracingHelper.startTracingAndSaveAsStream(onStart);
17
18 function onStart() {
19 session.evaluate(`
20 (function performActions()
21 {
22 var element = document.getElementById('test');
23 element.style.display = 'block';
24 var unused = element.clientWidth;
25 })();
26 `).then(evalDone);
27 }
28
29 function evalDone() {
30 tracingHelper.stopTracingAndReturnStream(onStop);
31 }
32
33 function onStop(streamHandle) {
34 var data1;
35 tracingHelper.retrieveStream(streamHandle, null, null, onGotStream1);
36
37 function onGotStream1(data) {
38 data1 = data;
39 tracingHelper.retrieveStream(streamHandle, 0, 1000, onGotStream2);
40 }
41
42 function onGotStream2(data) {
43 if (data1 !== data)
44 testRunner.log('FAIL: got different data for cunked vs. non-chunked read s');
45 dp.IO.close({ handle: streamHandle }).then(onCloseDone);
46 }
47
48 function onCloseDone(response) {
49 testRunner.log('Error after legit close: ' + JSON.stringify(response.error ));
50 dp.IO.read({ handle: streamHandle }).then(onReadAfterClose);
51 }
52
53 function onReadAfterClose(response) {
54 testRunner.log('Error after illegal read: ' + JSON.stringify(response.erro r));
55 dp.IO.close({ handle: streamHandle }).then(onCloseAfterClose);
56 }
57
58 function onCloseAfterClose(response) {
59 testRunner.log('Error after illegal close: ' + JSON.stringify(response.err or));
60 var trace = JSON.parse(data1);
61 performEventsSanityCheck(trace['traceEvents']);
62 testRunner.log('Metadata: ' + typeof trace['metadata'] + (trace['metadata' ] ? ', not null' : ''));
63 testRunner.completeTest();
64 }
65 }
66
67 function assertGreaterOrEqual(a, b, message) {
68 if (a >= b)
69 return;
70 testRunner.log(message + ' (' + a + ' < ' + b + ')');
71 testRunner.completeTest();
72 }
73
74 function performEventsSanityCheck(events) {
75 var phaseComplete = 0;
76
77 var knownEvents = {
78 'MessageLoop::PostTask': 0,
79 'FunctionCall': 0,
80 'UpdateLayoutTree': 0,
81 'Layout': 0
82 };
83
84 for (var i = 0; i < events.length; ++i) {
85 var event = events[i];
86 if (event.phase === 'X')
87 ++phaseComplete;
88 if (event.name in knownEvents)
89 ++knownEvents[event.name];
90 }
91 assertGreaterOrEqual(events.length, 10, 'Too few trace events recorded');
92 assertGreaterOrEqual(knownEvents['UpdateLayoutTree'], 1, 'Too few UpdateLayo utTree events');
93 assertGreaterOrEqual(knownEvents['Layout'], 1, 'Too few Layout events');
94 testRunner.log('Event sanity test done');
95 }
96 })
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698