| <!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> |
| |