Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / LayoutTests / inspector / 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>
6
7 function test()
8 {
9     function runTestWithDataAndCheck(input, expectedOutput)
10     {
11         WebInspector.inspectorView.showPanel("timeline");
12         var model = new WebInspector.TimelineModelImpl(WebInspector.timelineManager);
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             saveData.shift(); // strip version info
28             expectedOutput.shift();
29             InspectorTest.assertEquals(JSON.stringify(expectedOutput), JSON.stringify(saveData), "saved data is not equal to restored");
30             InspectorTest.addResult("passed");
31         }
32
33         InspectorTest.override(model, "_createFileReader", createFileReader);
34         InspectorTest.override(model, "_createFileWriter", createFileWriter);
35
36         model.loadFromFile({}, new WebInspector.Progress());
37     }
38
39     InspectorTest.runTestSuite([
40         function testNormal(next)
41         {
42             var data = ["Version",
43                 {"startTime":1310749854316.8408,"data":{"requestId":43,"url":"http://www.webkit.org/","requestMethod":"GET"},"type":"ResourceSendRequest"},
44                 {"startTime":1310749855118.9329,"data":{"requestId":43,"statusCode":200,"mimeType":"text/html"},"children":[],"endTime":1310749855118.968,"type":"ResourceReceiveResponse"},
45                 {"startTime":1310749855136.245,"data":{"requestId":44,"url":"http://www.webkit.org/css/main.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
46                 {"startTime":1310749855136.655,"data":{"requestId":45,"url":"http://www.webkit.org/css/green.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
47                 {"startTime":1310749855137.023,"data":{"requestId":46,"url":"http://www.webkit.org/css/blue.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
48                 {"startTime":1310749855137.342,"data":{"requestId":47,"url":"http://www.webkit.org/css/yellow.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
49                 {"startTime":1310749855137.656,"data":{"requestId":48,"url":"http://www.webkit.org/css/pink.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
50                 {"startTime":1310749855137.989,"data":{"requestId":49,"url":"http://www.webkit.org/css/purple.css","requestMethod":"GET"},"type":"ResourceSendRequest"},
51                 {"startTime":1310749855138.308,"data":{"requestId":50,"url":"http://www.webkit.org/css/gray.css","requestMethod":"GET"},"type":"ResourceSendRequest"}
52             ];
53             var input = JSON.stringify(data);
54             runTestWithDataAndCheck(input, data);
55             next();
56         },
57
58         function testIncompatible(next)
59         {
60             var data = ["Version",
61                 {"startTime":1310749854316.8408,"data":{"requestId":43,"url":"http://www.webkit.org/","requestMethod":"GET"},"t\"y}p}e\\":"UnknownRecordType"}
62             ];
63             var input = JSON.stringify(data);
64             runTestWithDataAndCheck(input, data);
65             next();
66         },
67
68         function testMalformed(next)
69         {
70             var data = ["Version"];
71             // At least 1 record is parsed in first chunk.
72             var input = '["Version",'
73                 +'{"startTime":1310749854316.8408,"data":{"requestId":43},"type":"UnknownRecordType"},'
74                 +'{"startTime":1310749854316.8508,"data":{"requestId":43},"type":"UnknownRecordType"},'
75                 +'{"startTime":1310749854316.8608,"data":{"requestId":43},"type":"UnknownRecordType"},'
76                 +'{"startTime":1310749854316.8708,"data":{"requestId":43_MALFORMED_JSON_},"type":"UnknownRecordType"}]';
77             runTestWithDataAndCheck(input, data);
78             next();
79         }
80     ]);
81 }
82
83 </script>
84 </head>
85
86 <body onload="runTest()">
87 <p>
88 Tests the Timeline save/load functionality.
89 </p>
90
91 <p>
92 Also tests save/load of unknown (incompatible) record types. <a href="https://bugs.webkit.org/show_bug.cgi?id=91714">(Bug 91714)</a>
93 </p>
94
95 </body>
96 </html>