Html程序  |  83行  |  2.29 KB

<!DOCTYPE HTML>
<html>
<!--
Copyright (c) 2012 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<head>
<title>TimelineAsyncSliceGroup tests</title>
<script src="base.js"></script>
</head>
<body>
  <script>
    base.require('unittest');
    base.require('test_utils');
    base.require('timeline_model');
  </script>
  <script>
    'use strict';

  var TimelineProcess = tracing.TimelineProcess;
  var TimelineThread = tracing.TimelineThread;
  var TimelineModel = tracing.TimelineModel;
  var TimelineAsyncSlice = tracing.TimelineAsyncSlice;
  var TimelineAsyncSliceGroup = tracing.TimelineAsyncSliceGroup;
  var newAsyncSlice = test_utils.newAsyncSlice;

  function testAsyncSliceGroupBounds_Empty() {
    var g = new TimelineAsyncSliceGroup(name);
    g.updateBounds();
    assertEquals(undefined, g.minTimestamp);
    assertEquals(undefined, g.maxTimestamp);
  }

  function testAsyncSliceGroupBounds_Basic() {
    var p1 = new TimelineProcess(1);
    var t1 = new TimelineThread(p1, 1);
    var g = new TimelineAsyncSliceGroup('a');
    g.push(newAsyncSlice(0, 1, t1, t1));
    g.push(newAsyncSlice(1, 1.5, t1, t1));
    assertEquals(2, g.length);
    g.updateBounds();
    assertEquals(0, g.minTimestamp);
    assertEquals(2.5, g.maxTimestamp);
  }

  function testAsyncSlice_toJSON() {
    var js = [
      '{',
      '  "category" : "",',
      '  "title" : "a",',
      '  "start" : 0,',
      '  "colorId" : 0,',
      '  "didNotFinish" : false,',
      '  "duration" : 1,',
      '  "startThread" : "1:1",',
      '  "endThread" : "1:1",',
      '  "subSlices" : [ {',
      '        "category" : "",',
      '        "title" : "a",',
      '        "start" : 0,',
      '        "colorId" : 0,',
      '        "didNotFinish" : false,',
      '        "duration" : 1,',
      '        "startThread" : "1:1",',
      '        "endThread" : "1:1"',
      '      } ]',
      '}'].join('\n');
    // Modify whitespace of "js" so that string compare with another
    // JSON.stringified version can succeed.
    js = JSON.stringify(JSON.parse(js));

    var p1 = new TimelineProcess(1);
    var t1 = new TimelineThread(p1, 1);
    var s = newAsyncSlice(0, 1, t1, t1);

    assertEquals(js, JSON.stringify(s));
  }

</script>
</body>
</html>