Home | History | Annotate | Download | only in trace_model
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 'use strict';
      6 
      7 base.require('tracing.test_utils');
      8 base.require('tracing.trace_model');
      9 
     10 base.unittest.testSuite('tracing.trace_model.async_slice_group', function() {
     11   var Process = tracing.trace_model.Process;
     12   var Thread = tracing.trace_model.Thread;
     13   var AsyncSlice = tracing.trace_model.AsyncSlice;
     14   var AsyncSliceGroup = tracing.trace_model.AsyncSliceGroup;
     15   var newAsyncSlice = tracing.test_utils.newAsyncSlice;
     16 
     17   test('asyncSliceGroupBounds_Empty', function() {
     18     var g = new AsyncSliceGroup();
     19     g.updateBounds();
     20     assertTrue(g.bounds.isEmpty);
     21   });
     22 
     23   test('asyncSliceGroupBounds_Basic', function() {
     24     var model = new tracing.TraceModel();
     25     var p1 = new Process(model, 1);
     26     var t1 = new Thread(p1, 1);
     27     var g = new AsyncSliceGroup();
     28     g.push(newAsyncSlice(0, 1, t1, t1));
     29     g.push(newAsyncSlice(1, 1.5, t1, t1));
     30     assertEquals(2, g.length);
     31     g.updateBounds();
     32     assertEquals(0, g.bounds.min);
     33     assertEquals(2.5, g.bounds.max);
     34   });
     35 
     36   test('asyncSlice_toJSON', function() {
     37     var js = [
     38       '{',
     39       '  "category" : "",',
     40       '  "title" : "a",',
     41       '  "colorId" : 0,',
     42       '  "start" : 0,',
     43       '  "didNotFinish" : false,',
     44       '  "duration" : 1,',
     45       '  "startThread" : __T1_GUID__,',
     46       '  "endThread" : __T1_GUID__,',
     47       '  "subSlices" : [ {',
     48       '        "category" : "",',
     49       '        "title" : "a",',
     50       '        "colorId" : 0,',
     51       '        "start" : 0,',
     52       '        "didNotFinish" : false,',
     53       '        "duration" : 1,',
     54       '        "startThread" : __T1_GUID__,',
     55       '        "endThread" : __T1_GUID__',
     56       '      } ]',
     57       '}'].join('\n');
     58 
     59     var model = new tracing.TraceModel();
     60     var p1 = new Process(model, 1);
     61     var t1 = new Thread(p1, 1);
     62     var s = newAsyncSlice(0, 1, t1, t1);
     63 
     64     // Replace __T1_GUID__ with t1's actual GUID
     65     js = js.replace(/__T1_GUID__/g, t1.guid);
     66 
     67     // Modify whitespace of "js" so that string compare with another
     68     // JSON.stringified version can succeed.
     69     js = JSON.stringify(JSON.parse(js));
     70 
     71     assertEquals(js, JSON.stringify(s));
     72   });
     73 });
     74