// 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. 'use strict'; base.require('tracing.trace_model.object_instance'); base.require('tracing.trace_model.object_snapshot'); base.unittest.testSuite('tracing.trace_model.object_snapshot', function() { test('snapshotTypeRegistry', function() { function MySnapshot() { tracing.trace_model.ObjectSnapshot.apply(this, arguments); this.myFoo = this.args.foo; } MySnapshot.prototype = { __proto__: tracing.trace_model.ObjectSnapshot.prototype }; var instance = new tracing.trace_model.ObjectInstance( {}, '0x1000', 'cat', 'MySnapshot', 10); try { tracing.trace_model.ObjectSnapshot.register('MySnapshot', MySnapshot); var snapshot = instance.addSnapshot(15, {foo: 'bar'}); assertTrue(snapshot instanceof MySnapshot); assertEquals('bar', snapshot.myFoo); } finally { tracing.trace_model.ObjectSnapshot.unregister('MySnapshot'); } }); });