| <!DOCTYPE html> |
| <html> |
| <!-- |
| Copyright (c) 2010 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>TimelineModel tests</title> |
| <script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js"></script> |
| <script src="../shared/js/cr.js"></script> |
| <script src="../shared/js/cr/event_target.js"></script> |
| <script src="timeline_model.js"></script> |
| <script> |
| goog.require('goog.testing.jsunit'); |
| </script> |
| |
| </head> |
| <body> |
| <script> |
| var TimelineCpu = tracing.TimelineCpu; |
| var TimelineSlice = tracing.TimelineSlice; |
| var TimelineProcess = tracing.TimelineProcess; |
| var TimelineThread = tracing.TimelineThread; |
| var TimelineModel = tracing.TimelineModel; |
| |
| function testThreadBounds_Empty() { |
| var t = new TimelineThread(undefined, 1); |
| t.updateBounds(); |
| assertEquals(undefined, t.minTimestamp); |
| assertEquals(undefined, t.maxTimestamp); |
| } |
| |
| function testThreadBounds_SubRow() { |
| var t = new TimelineThread(undefined, 1); |
| t.subRows[0].push(new TimelineSlice('a', 0, 1, {}, 3)); |
| t.updateBounds(); |
| assertEquals(1, t.minTimestamp); |
| assertEquals(4, t.maxTimestamp); |
| } |
| |
| function testThreadBounds_NestedSubrow() { |
| var t = new TimelineThread(undefined, 1); |
| t.nonNestedSubRows.push([]); |
| t.nonNestedSubRows[0].push(new TimelineSlice('a', 0, 1, {}, 3)); |
| t.updateBounds(); |
| assertEquals(1, t.minTimestamp); |
| assertEquals(4, t.maxTimestamp); |
| } |
| |
| function testThreadBounds_SubRowAndNonNestedSubRow() { |
| var t = new TimelineThread(undefined, 1); |
| t.subRows[0].push(new TimelineSlice('a', 0, 0.5, {}, 3)); |
| t.nonNestedSubRows.push([]); |
| t.nonNestedSubRows[0].push(new TimelineSlice('b', 0, 1, {}, 4.5)); |
| t.updateBounds(); |
| assertEquals(0.5, t.minTimestamp); |
| assertEquals(5.5, t.maxTimestamp); |
| } |
| |
| function testModelBounds_EmptyModel() { |
| var m = new TimelineModel(); |
| m.updateBounds(); |
| assertEquals(undefined, m.minTimestamp); |
| assertEquals(undefined, m.maxTimestamp); |
| } |
| |
| function testModelBounds_OneEmptyThread() { |
| var m = new TimelineModel(); |
| var t = m.getOrCreateProcess(1).getOrCreateThread(1); |
| m.updateBounds(); |
| assertEquals(undefined, m.minTimestamp); |
| assertEquals(undefined, m.maxTimestamp); |
| } |
| |
| function testModelBounds_OneThrad() { |
| var m = new TimelineModel(); |
| var t = m.getOrCreateProcess(1).getOrCreateThread(1); |
| t.subRows[0].push(new TimelineSlice('a', 0, 1, {}, 3)); |
| m.updateBounds(); |
| assertEquals(1, m.minTimestamp); |
| assertEquals(4, m.maxTimestamp); |
| } |
| |
| function testModelBounds_OneThreadAndOneEmptyThread() { |
| var m = new TimelineModel(); |
| var t1 = m.getOrCreateProcess(1).getOrCreateThread(1); |
| t1.subRows[0].push(new TimelineSlice('a', 0, 1, {}, 3)); |
| var t2 = m.getOrCreateProcess(1).getOrCreateThread(1); |
| m.updateBounds(); |
| assertEquals(1, m.minTimestamp); |
| assertEquals(4, m.maxTimestamp); |
| } |
| |
| function testCpuBounds_Empty() { |
| var cpu = new TimelineCpu(undefined, 1); |
| cpu.updateBounds(); |
| assertEquals(undefined, cpu.minTimestamp); |
| assertEquals(undefined, cpu.maxTimestamp); |
| } |
| |
| |
| function testCpuBounds_OneSlice() { |
| var cpu = new TimelineCpu(undefined, 1); |
| cpu.slices.push(new TimelineSlice('a', 0, 1, {}, 3)); |
| cpu.updateBounds(); |
| assertEquals(1, cpu.minTimestamp); |
| assertEquals(4, cpu.maxTimestamp); |
| } |
| |
| function testModelBounds_OneCpu() { |
| } |
| |
| |
| function testModelBounds_OneCpuOneThread() { |
| } |
| |
| </script> |
| </body> |
| </html> |