blob: ef4c06381bc52fe97eb7e4a1b0f237bd82294c01 [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/trace_model/object_instance.html">
<link rel="import" href="/core/trace_model/object_snapshot.html">
<script>
'use strict';
tv.b.unittest.testSuite(function() {
test('snapshotTypeRegistry', function() {
function MySnapshot() {
tv.c.trace_model.ObjectSnapshot.apply(this, arguments);
this.myFoo = this.args.foo;
}
MySnapshot.prototype = {
__proto__: tv.c.trace_model.ObjectSnapshot.prototype
};
var instance = new tv.c.trace_model.ObjectInstance(
{}, '0x1000', 'cat', 'MySnapshot', 10);
try {
tv.c.trace_model.ObjectSnapshot.register(
MySnapshot,
{typeName: 'MySnapshot'});
var snapshot = instance.addSnapshot(15, {foo: 'bar'});
assert.instanceOf(snapshot, MySnapshot);
assert.equal(snapshot.myFoo, 'bar');
} finally {
tv.c.trace_model.ObjectSnapshot.unregister(MySnapshot);
}
});
});
</script>