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.
7 tvcm.require('tracing.test_utils');
8 tvcm.require('tracing.trace_model.object_instance');
10 tvcm.unittest.testSuite('tracing.trace_model.object_instance_test', function() {
11 test('getSnapshotAtWithImplicitCreation', function() {
12 var instance = new tracing.trace_model.ObjectInstance(
13 {}, '0x1000', 'cat', 'n', 10);
14 var s10 = instance.addSnapshot(10, 'a');
15 instance.addSnapshot(40, 'b');
16 instance.wasDeleted(60);
18 var s1 = instance.getSnapshotAt(1);
19 assertEquals(s10, s1);
21 var s10 = instance.getSnapshotAt(10);
22 assertEquals('a', s10.args);
23 assertEquals(s10, instance.getSnapshotAt(15));
25 var s40 = instance.getSnapshotAt(40);
26 assertEquals('b', s40.args);
27 assertEquals(s40, instance.getSnapshotAt(50));
28 assertEquals(s40, instance.getSnapshotAt(59.9));
31 test('getSnapshotAtWithExplicitCreation', function() {
32 var instance = new tracing.trace_model.ObjectInstance(
33 {}, '0x1000', 'cat', 'n', 10);
34 instance.creationTsWasExplicit = true;
35 instance.addSnapshot(10, 'a');
36 instance.wasDeleted(60);
38 assertThrows(function() {
39 instance.getSnapshotAt(1);
42 var s10 = instance.getSnapshotAt(10);
43 assertEquals('a', s10.args);
44 assertEquals(s10, instance.getSnapshotAt(15));
47 test('getSnapshotBeforeFirstSnapshot', function() {
48 var instance = new tracing.trace_model.ObjectInstance(
49 {}, '0x1000', 'cat', 'n', 10);
50 var s15 = instance.addSnapshot(15, 'a');
51 instance.wasDeleted(40);
53 assertEquals(s15, instance.getSnapshotAt(10));
56 test('getSnapshotAfterLastSnapshot', function() {
57 var instance = new tracing.trace_model.ObjectInstance(
58 {}, '0x1000', 'cat', 'n', 10);
59 var s15 = instance.addSnapshot(15, 'a');
60 instance.wasDeleted(40);
62 assertEquals(s15, instance.getSnapshotAt(20));