inspector_tracing_controller_client_test.html revision 4a4f2fe02baf385f6c24fc98c6e17bf6ac5e0724
1<!DOCTYPE html> 2<!-- 3Copyright (c) 2013 The Chromium Authors. All rights reserved. 4Use of this source code is governed by a BSD-style license that can be 5found in the LICENSE file. 6--> 7 8<link rel="import" 9 href="/tracing/ui/extras/about_tracing/inspector_tracing_controller_client.html"> 10 11<script> 12'use strict'; 13 14tr.b.unittest.testSuite(function() { // @suppress longLineCheck 15 test('beginRecording_sendCategoriesAndOptions', function() { 16 var controller = 17 new tr.ui.e.about_tracing.InspectorTracingControllerClient(); 18 controller.conn_ = new (function() { 19 this.req = function(method, params) { 20 var msg = JSON.stringify({ 21 id: 1, 22 method: method, 23 params: params 24 }); 25 return new (function() { 26 this.msg = msg; 27 this.then = function(m1, m2) { 28 return this; 29 }; 30 })(); 31 }; 32 this.setNotificationListener = function(method, listener) { 33 }; 34 })(); 35 36 var recordingOptions = { 37 categoryFilter: JSON.stringify(['a', 'b', 'c']), 38 useSystemTracing: false, 39 tracingRecordMode: 'test-mode', 40 useSampling: true 41 }; 42 43 var result = JSON.parse(controller.beginRecording(recordingOptions).msg); 44 assert.equal(result.params.categories, JSON.stringify(['a', 'b', 'c'])); 45 var options = result.params.options.split(','); 46 var tracingRecordTestMode = false; 47 var sampleFlag = false; 48 for (var s in options) { 49 if (options[s] === 'test-mode') tracingRecordTestMode = true; 50 else if (options[s] === 'enable-sampling') sampleFlag = true; 51 else assert.equal(options[s], ''); 52 } 53 assert.isTrue(tracingRecordTestMode); 54 assert.isTrue(sampleFlag); 55 }); 56 57 test('oldFormat', function() { 58 var chunks = []; 59 tr.ui.e.about_tracing.appendTraceChunksTo(chunks, '"{ "method": "Tracing.dataCollected", "params": { "value": [ {"cat":"__metadata","pid":28871,"tid":0,"ts":0,"ph":"M","name":"num_cpus","args":{"number":4}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_sort_index","args":{"sort_index":-5}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_name","args":{"name":"Renderer"}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_labels","args":{"labels":"JS Bin"}},{"cat":"__metadata","pid":28871,"tid":28908,"ts":0,"ph":"M","name":"thread_sort_index","args":{"sort_index":-1}},{"cat":"__metadata","pid":28871,"tid":28917,"ts":0,"ph":"M","name":"thread_name","args":{"name":"Compositor"}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"thread_name","args":{"name":"Chrome_ChildIOThread"}},{"cat":"__metadata","pid":28871,"tid":28919,"ts":0,"ph":"M","name":"thread_name","args":{"name":"CompositorRasterWorker1/28919"}},{"cat":"__metadata","pid":28871,"tid":28908,"ts":0,"ph":"M","name":"thread_name","args":{"name":"CrRendererMain"}},{"cat":"ipc,toplevel","pid":28871,"tid":28911,"ts":22000084746,"ph":"X","name":"ChannelReader::DispatchInputData","args":{"class":64,"line":25},"tdur":0,"tts":1853064},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"overhead","args":{"average_overhead":0.015}} ] } }"'); // @suppress longLineCheck 60 assert.equal(chunks.length, 1); 61 JSON.parse('[' + chunks.join('') + ']'); 62 }); 63 64 test('newFormat', function() { 65 var chunks = []; 66 tr.ui.e.about_tracing.appendTraceChunksTo(chunks, '"{ "method": "Tracing.dataCollected", "params": { "value": [{"cat":"__metadata","pid":28871,"tid":0,"ts":0,"ph":"M","name":"num_cpus","args":{"number":4}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_sort_index","args":{"sort_index":-5}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_name","args":{"name":"Renderer"}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"process_labels","args":{"labels":"JS Bin"}},{"cat":"__metadata","pid":28871,"tid":28908,"ts":0,"ph":"M","name":"thread_sort_index","args":{"sort_index":-1}},{"cat":"__metadata","pid":28871,"tid":28917,"ts":0,"ph":"M","name":"thread_name","args":{"name":"Compositor"}},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"thread_name","args":{"name":"Chrome_ChildIOThread"}},{"cat":"__metadata","pid":28871,"tid":28919,"ts":0,"ph":"M","name":"thread_name","args":{"name":"CompositorRasterWorker1/28919"}},{"cat":"__metadata","pid":28871,"tid":28908,"ts":0,"ph":"M","name":"thread_name","args":{"name":"CrRendererMain"}},{"cat":"ipc,toplevel","pid":28871,"tid":28911,"ts":22000084746,"ph":"X","name":"ChannelReader::DispatchInputData","args":{"class":64,"line":25},"tdur":0,"tts":1853064},{"cat":"__metadata","pid":28871,"tid":28911,"ts":0,"ph":"M","name":"overhead","args":{"average_overhead":0.015}}] } }"'); // @suppress longLineCheck 67 assert.equal(chunks.length, 1); 68 JSON.parse('[' + chunks.join('') + ']'); 69 }); 70 71 test('stringAndObjectPayload', function() { 72 var connection = new tr.ui.e.about_tracing.InspectorConnection(); 73 connection.setNotificationListener('Tracing.dataCollected', 74 function(message) { 75 assert.typeOf(message, 'string'); 76 JSON.parse(message); 77 } 78 ); 79 connection.dispatchMessage_('{ "method": "Tracing.dataCollected", "params": { "value": [] } }'); // @suppress longLineCheck 80 connection.dispatchMessage_({'method': 'Tracing.dataCollected', 'params': {'value': [] } }); // @suppress longLineCheck 81 }); 82}); 83</script> 84