Home | History | Annotate | Download | only in src
      1 <!DOCTYPE HTML>
      2 <html>
      3 <!--
      4 Copyright (c) 2012 The Chromium Authors. All rights reserved.
      5 Use of this source code is governed by a BSD-style license that can be
      6 found in the LICENSE file.
      7 -->
      8 <head>
      9 <title>TimelineAsyncSliceGroup tests</title>
     10 <script src="base.js"></script>
     11 </head>
     12 <body>
     13   <script>
     14     base.require('unittest');
     15     base.require('test_utils');
     16     base.require('timeline_model');
     17   </script>
     18   <script>
     19     'use strict';
     20 
     21   var TimelineProcess = tracing.TimelineProcess;
     22   var TimelineThread = tracing.TimelineThread;
     23   var TimelineModel = tracing.TimelineModel;
     24   var TimelineAsyncSlice = tracing.TimelineAsyncSlice;
     25   var TimelineAsyncSliceGroup = tracing.TimelineAsyncSliceGroup;
     26   var newAsyncSlice = test_utils.newAsyncSlice;
     27 
     28   function testAsyncSliceGroupBounds_Empty() {
     29     var g = new TimelineAsyncSliceGroup(name);
     30     g.updateBounds();
     31     assertEquals(undefined, g.minTimestamp);
     32     assertEquals(undefined, g.maxTimestamp);
     33   }
     34 
     35   function testAsyncSliceGroupBounds_Basic() {
     36     var p1 = new TimelineProcess(1);
     37     var t1 = new TimelineThread(p1, 1);
     38     var g = new TimelineAsyncSliceGroup('a');
     39     g.push(newAsyncSlice(0, 1, t1, t1));
     40     g.push(newAsyncSlice(1, 1.5, t1, t1));
     41     assertEquals(2, g.length);
     42     g.updateBounds();
     43     assertEquals(0, g.minTimestamp);
     44     assertEquals(2.5, g.maxTimestamp);
     45   }
     46 
     47   function testAsyncSlice_toJSON() {
     48     var js = [
     49       '{',
     50       '  "category" : "",',
     51       '  "title" : "a",',
     52       '  "start" : 0,',
     53       '  "colorId" : 0,',
     54       '  "didNotFinish" : false,',
     55       '  "duration" : 1,',
     56       '  "startThread" : "1:1",',
     57       '  "endThread" : "1:1",',
     58       '  "subSlices" : [ {',
     59       '        "category" : "",',
     60       '        "title" : "a",',
     61       '        "start" : 0,',
     62       '        "colorId" : 0,',
     63       '        "didNotFinish" : false,',
     64       '        "duration" : 1,',
     65       '        "startThread" : "1:1",',
     66       '        "endThread" : "1:1"',
     67       '      } ]',
     68       '}'].join('\n');
     69     // Modify whitespace of "js" so that string compare with another
     70     // JSON.stringified version can succeed.
     71     js = JSON.stringify(JSON.parse(js));
     72 
     73     var p1 = new TimelineProcess(1);
     74     var t1 = new TimelineThread(p1, 1);
     75     var s = newAsyncSlice(0, 1, t1, t1);
     76 
     77     assertEquals(js, JSON.stringify(s));
     78   }
     79 
     80 </script>
     81 </body>
     82 </html>
     83