blob: 5bb622ec1d5d5126dde044ce700eac7be942bf98 [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright (c) 2013 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.
-->
<link rel="import" href="/core/test_utils.html">
<link rel="import" href="/core/trace_model/object_instance.html">
<script>
'use strict';
tv.b.unittest.testSuite(function() {
test('getSnapshotAtWithImplicitCreation', function() {
var instance = new tv.c.trace_model.ObjectInstance(
{}, '0x1000', 'cat', 'n', 10);
var s10 = instance.addSnapshot(10, 'a');
instance.addSnapshot(40, 'b');
instance.wasDeleted(60);
var s1 = instance.getSnapshotAt(1);
assert.equal(s1, s10);
var s10 = instance.getSnapshotAt(10);
assert.equal(s10.args, 'a');
assert.equal(instance.getSnapshotAt(15), s10);
var s40 = instance.getSnapshotAt(40);
assert.equal(s40.args, 'b');
assert.equal(instance.getSnapshotAt(50), s40);
assert.equal(instance.getSnapshotAt(59.9), s40);
});
test('getSnapshotAtWithExplicitCreation', function() {
var instance = new tv.c.trace_model.ObjectInstance(
{}, '0x1000', 'cat', 'n', 10);
instance.creationTsWasExplicit = true;
instance.addSnapshot(10, 'a');
instance.wasDeleted(60);
assert.throws(function() {
instance.getSnapshotAt(1);
});
var s10 = instance.getSnapshotAt(10);
assert.equal(s10.args, 'a');
assert.equal(instance.getSnapshotAt(15), s10);
});
test('getSnapshotBeforeFirstSnapshot', function() {
var instance = new tv.c.trace_model.ObjectInstance(
{}, '0x1000', 'cat', 'n', 10);
var s15 = instance.addSnapshot(15, 'a');
instance.wasDeleted(40);
assert.equal(instance.getSnapshotAt(10), s15);
});
test('getSnapshotAfterLastSnapshot', function() {
var instance = new tv.c.trace_model.ObjectInstance(
{}, '0x1000', 'cat', 'n', 10);
var s15 = instance.addSnapshot(15, 'a');
instance.wasDeleted(40);
assert.equal(instance.getSnapshotAt(20), s15);
});
});
</script>