object_snapshot_test.js revision 66a37686207944273ced825e0e8b6b6375f8c3de
166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Copyright (c) 2013 The Chromium Authors. All rights reserved. 266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// Use of this source code is governed by a BSD-style license that can be 366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis// found in the LICENSE file. 466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis'use strict'; 666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.object_instance'); 866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.require('tracing.trace_model.object_snapshot'); 966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennisbase.unittest.testSuite('tracing.trace_model.object_snapshot', function() { 1166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis test('snapshotTypeRegistry', function() { 1266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis function MySnapshot() { 1366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis tracing.trace_model.ObjectSnapshot.apply(this, arguments); 1466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis this.myFoo = this.args.foo; 1566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 1666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 1766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis MySnapshot.prototype = { 1866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis __proto__: tracing.trace_model.ObjectSnapshot.prototype 1966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }; 2066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis 2166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var instance = new tracing.trace_model.ObjectInstance( 2266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis {}, '0x1000', 'cat', 'MySnapshot', 10); 2366a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis try { 2466a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis tracing.trace_model.ObjectSnapshot.register('MySnapshot', MySnapshot); 2566a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis var snapshot = instance.addSnapshot(15, {foo: 'bar'}); 2666a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertTrue(snapshot instanceof MySnapshot); 2766a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis assertEquals('bar', snapshot.myFoo); 2866a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } finally { 2966a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis tracing.trace_model.ObjectSnapshot.unregister('MySnapshot'); 3066a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis } 3166a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis }); 3266a37686207944273ced825e0e8b6b6375f8c3deJamie Gennis}); 33