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.
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">
15 tv.unittest.testSuite(function() {
16 var findSliceNamed = tracing.test_utils.findSliceNamed;
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' +
26 test('failImportEmpty', function() {
27 self.assertFalse(tracing.importer.GzipImporter.canImport([]));
28 self.assertFalse(tracing.importer.GzipImporter.canImport(''));
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]);
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]);
51 test('import', function() {
52 var gzip_data = atob(gzip_data_base64);
53 self.assertTrue(tracing.importer.GzipImporter.canImport(gzip_data));
55 var model = new tracing.TraceModel(gzip_data);
56 var threads = model.getAllThreads();
57 self.assertEquals(threads.length, 1);
59 var slice = findSliceNamed(threads[0].sliceGroup, 'a');
60 self.assertEquals(slice.category, 'foo');
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');
69 var gzip_data = req.responseText;
70 self.assertTrue(tracing.importer.GzipImporter.canImport(gzip_data));
72 var model = new tracing.TraceModel(gzip_data);
73 var threads = model.getAllThreads();
74 self.assertEquals(threads.length, 2);
76 var slice = findSliceNamed(threads[0].sliceGroup, 'B');
77 self.assertEquals(slice.category, 'PERF');