<!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>