Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / tracing / tracing-timeline-load.html
1 <html>
2 <head>
3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/timeline-test.js"></script>
5 <script src="../tracing-test.js"></script>
6 <script>
7
8 function test()
9 {
10     function runTestWithDataAndCheck(input, expectedOutput)
11     {
12         var model = InspectorTest.tracingTimelineModel();
13
14         function createFileReader(file, delegate)
15         {
16             return new InspectorTest.FakeFileReader(input, delegate, model.saveToFile.bind(model));
17         }
18
19         function createFileWriter()
20         {
21             return new InspectorTest.StringOutputStream(checkSaveData);
22         }
23
24         function checkSaveData(output)
25         {
26             var saveData = JSON.parse(output);
27             InspectorTest.assertEquals(JSON.stringify(expectedOutput), JSON.stringify(saveData), "saved data is not equal to restored");
28         }
29
30         InspectorTest.override(model, "_createFileReader", createFileReader);
31         InspectorTest.override(model, "_createFileWriter", createFileWriter);
32
33         model.loadFromFile({}, new WebInspector.Progress());
34     }
35
36     function runTestOnMalformedInput(input)
37     {
38         InspectorTest.tracingModel().reset();
39         var model = InspectorTest.tracingTimelineModel();
40         model.reset();
41         function createFileReader(file, delegate)
42         {
43             return new InspectorTest.FakeFileReader(input, delegate, checkLoadedData);
44         }
45
46         function checkLoadedData(data)
47         {
48             InspectorTest.assertTrue(model.isEmpty());
49         }
50
51         InspectorTest.override(model, "_createFileReader", createFileReader);
52         model.loadFromFile({}, new WebInspector.Progress());
53     }
54
55     InspectorTest.runTestSuite([
56         function testNormal(next)
57         {
58             var data = [{"args":{"number":32},"cat":"__metadata","name":"num_cpus","ph":"M","pid":32127,"tid":0,"ts":0},
59                 {"args":{"sort_index":-5},"cat":"__metadata","name":"process_sort_index","ph":"M","pid":32127,"tid":12,"ts":0},
60                 {"args":{"name":"Renderer"},"cat":"__metadata","name":"process_name","ph":"M","pid":32127,"tid":12,"ts":0},
61                 {"args":{"sort_index":-1},"cat":"__metadata","name":"thread_sort_index","ph":"M","pid":32127,"tid":11,"ts":0},
62                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"B","pid":32120,"tid":9,"ts":95904702436,"tts":1161841},
63                 {"args":{"number":32},"cat":"__metadata","name":"num_cpus","ph":"M","pid":32120,"tid":0,"ts":0},
64                 {"args":{"sort_index":-5},"cat":"__metadata","name":"process_sort_index","ph":"M","pid":32120,"tid":10,"ts":0},
65                 {"args":{"name":"Renderer"},"cat":"__metadata","name":"process_name","ph":"M","pid":32120,"tid":10,"ts":0},
66                 {"args":{"sort_index":-1},"cat":"__metadata","name":"thread_sort_index","ph":"M","pid":32120,"tid":9,"ts":0},
67                 {"args":{"name":"CrRendererMain"},"cat":"__metadata","name":"thread_name","ph":"M","pid":32120,"tid":9,"ts":0},
68                 {"args":{"data":{"frame":"0x1cfa1f6a4000","scriptId":"52","scriptLine":664,"scriptName":"http://example.com/foo.js"}},"cat":"disabled-by-default-devtools.timeline","dur":21,"name":"FunctionCall","ph":"X","pid":32169,"tdur":20,"tid":35,"ts":95904848776,"tts":2613659},
69                 {"args":{"stack":[]},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32169,"s":"g","tid":35,"ts":95904848783,"tts":2613665},
70                 {"args":{"data":{"frame":"0x1cfa1f6a4000","scriptId":"52","scriptLine":664,"scriptName":"http://example.com/foo.js"}},"cat":"disabled-by-default-devtools.timeline","dur":20,"name":"FunctionCall","ph":"X","pid":32169,"tdur":18,"tid":35,"ts":95904848821,"tts":2613704},
71                 {"args":{"stack":[]},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32169,"s":"g","tid":35,"ts":95904848827,"tts":2613710},
72                 {"args":{"data":{"frame":"0x1cfa1f6a4000","scriptId":"52","scriptLine":664,"scriptName":"http://example.com/foo.js"}},"cat":"disabled-by-default-devtools.timeline","dur":19,"name":"FunctionCall","ph":"X","pid":32169,"tdur":18,"tid":35,"ts":95904848866,"tts":2613749},
73                 {"args":{"stack":[]},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32169,"s":"g","tid":35,"ts":95904848872,"tts":2613755},
74                 {"args":{"data":{"frame":"0x1cfa1f6a4000","scriptId":"52","scriptLine":664,"scriptName":"http://example.com/foo.js"}},"cat":"disabled-by-default-devtools.timeline","dur":19,"name":"FunctionCall","ph":"X","pid":32169,"tdur":19,"tid":35,"ts":95904848909,"tts":2613791},
75                 {"args":{"stack":[]},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32169,"s":"g","tid":35,"ts":95904848915,"tts":2613797},
76                 {"args":{"data":{"frame":"0x1cfa1f6a4000","scriptId":"52","scriptLine":664,"scriptName":"http://example.com/foo.js"}},"cat":"disabled-by-default-devtools.timeline","dur":21,"name":"FunctionCall","ph":"X","pid":32169,"tdur":19,"tid":35,"ts":95904848954,"tts":2613837},
77                 {"args":{"stack":[]},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32169,"s":"g","tid":35,"ts":95904848961,"tts":2613843},
78                 {"args":{"sessionId":"26.5"},"cat":"disabled-by-default-devtools.timeline","name":"TracingStartedInPage","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904694459,"tts":1432596},
79                 {"args":{"layerTreeId":1,"sessionId":"26.5"},"cat":"disabled-by-default-devtools.timeline","name":"SetLayerTreeId","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904694693,"tts":1432692},
80                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"E","pid":32157,"tid":26,"ts":95904694731,"tts":1432729},
81                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"B","pid":32157,"tid":26,"ts":95904694789,"tts":1432787},
82                 {"args":{"data":{"type":"beforeunload"}},"cat":"disabled-by-default-devtools.timeline","dur":16,"name":"EventDispatch","ph":"X","pid":32157,"tdur":13,"tid":26,"ts":95904695027,"tts":1433025},
83                 {"args":{"data":{"frame":"0x30acf4ca4000","requestId":"26.422","requestMethod":"GET","url":"http://localhost/bar.html?ws=E16865E8B9D1"}},"cat":"disabled-by-default-devtools.timeline","name":"ResourceSendRequest","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904695434,"tts":1433433},
84                 {"args":{"stack":null},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904695455,"tts":1433453},
85                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"E","pid":32157,"tid":26,"ts":95904695551,"tts":1433549},
86                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"B","pid":32157,"tid":26,"ts":95904696695,"tts":1433692},
87                 {"args":{},"cat":"disabled-by-default-devtools.timeline","name":"Program","ph":"E","pid":32157,"tid":26,"ts":95904696737,"tts":1433733},
88                 {"args":{"data":{"frame":"0x30acf4ca4000","mimeType":"text/html","requestId":"26.422","statusCode":200}},"cat":"disabled-by-default-devtools.timeline","name":"ResourceReceiveResponse","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904699823,"tts":1433961},
89                 {"args":{"data":{"frame":"0x30acf4ca4000","identifier":406}},"cat":"disabled-by-default-devtools.timeline","name":"WebSocketDestroy","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904701483,"tts":1435612},
90                 {"args":{"stack":null},"cat":"disabled-by-default-devtools.timeline.stack","name":"CallStack","ph":"I","pid":32157,"s":"g","tid":26,"ts":95904701489,"tts":1435618},
91                 {"args":{"number":32},"cat":"__metadata","name":"num_cpus","ph":"M","pid":32072,"tid":0,"ts":0},
92                 {"args":{"sort_index":-6},"cat":"__metadata","name":"process_sort_index","ph":"M","pid":32072,"tid":32096,"ts":0},
93                 {"args":{"name":"Browser"},"cat":"__metadata","name":"process_name","ph":"M","pid":32072,"tid":32096,"ts":0},
94                 {"args":{"name":"CrBrowserMain"},"cat":"__metadata","name":"thread_name","ph":"M","pid":32072,"tid":32072,"ts":0}
95             ];
96             var input = JSON.stringify(data);
97             runTestWithDataAndCheck(input, data);
98             next();
99         },
100
101         function testBroken(next)
102         {
103             var data = [{"args":{"number":32},"cat":"__metadata","name":"num_cpus","ph":"M","pid":32127,"tid":0,"ts":0,"t\"y}p}e\\":"UnknownRecordType"}];
104             runTestOnMalformedInput(JSON.stringify(data));
105             next();
106         },
107
108         function testMalformedJSON(next)
109         {
110             runTestOnMalformedInput("]");
111             next();
112         }
113     ]);
114 }
115
116 </script>
117 </head>
118
119 <body onload="runTest()">
120 <p>
121 Tests tracing based Timeline save/load functionality.
122 </p>
123 </body>
124 </html>