Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / importer / gzip_importer_test.html
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 The Chromium Authors. All rights reserved.
4 Use of this source code is governed by a BSD-style license that can be
5 found in the LICENSE file.
6 -->
7
8 <link rel="import" href="/tracing/test_utils.html">
9 <link rel="import" href="/tracing/importer/gzip_importer.html">
10 <link rel="import" href="/tracing/importer/trace_event_importer.html">
11
12 <script>
13 'use strict';
14
15 tv.unittest.testSuite(function() {
16   var findSliceNamed = tracing.test_utils.findSliceNamed;
17   var original_data =
18       '[{"name":"a","args":{},"pid":52,"ts":520,"cat":"foo","tid":53,' +
19       '"ph":"B"},{"name":"a","args":{},"pid":52,"ts":520,"cat":"foo",' +
20       '"tid":53,"ph":"E"}]\n';
21   var gzip_data_base64 =
22       'H4sICHr4HVIAA3RyYWNlAIuuVspLzE1VslJKVNJRSixKL1ayqq7VUSrITFGy' +
23       'MjXSUSopBtEGOkrJiSVAVWn5+UB1JWBZY6CyDKCYk1KtDhWMcVWqjeUCALak' +
24       'EH+QAAAA';
25
26   test('failImportEmpty', function() {
27     self.assertFalse(tracing.importer.GzipImporter.canImport([]));
28     self.assertFalse(tracing.importer.GzipImporter.canImport(''));
29   });
30
31   test('inflateString', function() {
32     // Test inflating the data from a string.
33     var gzip_data = atob(gzip_data_base64);
34     var importer = new tracing.importer.GzipImporter(null, gzip_data);
35     self.assertTrue(tracing.importer.GzipImporter.canImport(gzip_data));
36     self.assertEquals(original_data, importer.extractSubtraces()[0]);
37   });
38
39   test('inflateArrayBuffer', function() {
40     // Test inflating the data from an ArrayBuffer.
41     var gzip_data = atob(gzip_data_base64);
42     var buffer = new ArrayBuffer(gzip_data.length);
43     var view = new Uint8Array(buffer);
44     for (var i = 0; i < gzip_data.length; i++)
45       view[i] = gzip_data.charCodeAt(i);
46     var importer = new tracing.importer.GzipImporter(null, buffer);
47     self.assertTrue(tracing.importer.GzipImporter.canImport(buffer));
48     self.assertEquals(original_data, importer.extractSubtraces()[0]);
49   });
50
51   test('import', function() {
52     var gzip_data = atob(gzip_data_base64);
53     self.assertTrue(tracing.importer.GzipImporter.canImport(gzip_data));
54
55     var model = new tracing.TraceModel(gzip_data);
56     var threads = model.getAllThreads();
57     self.assertEquals(threads.length, 1);
58
59     var slice = findSliceNamed(threads[0].sliceGroup, 'a');
60     self.assertEquals(slice.category, 'foo');
61   });
62
63   test('importXMLHttpRequest', function() {
64     var req = new XMLHttpRequest();
65     var url = '/test_data/simple_trace_gz.gz';
66     req.open('GET', url, false);
67     req.overrideMimeType('text/plain; charset=x-user-defined');
68     req.send(null);
69     var gzip_data = req.responseText;
70     self.assertTrue(tracing.importer.GzipImporter.canImport(gzip_data));
71
72     var model = new tracing.TraceModel(gzip_data);
73     var threads = model.getAllThreads();
74     self.assertEquals(threads.length, 2);
75
76     var slice = findSliceNamed(threads[0].sliceGroup, 'B');
77     self.assertEquals(slice.category, 'PERF');
78
79   });
80 });
81 </script>
82