blob: 2f6d7ee65229347020d157fc4c2dcf8211e7e360 [file] [log] [blame]
// 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');
}
});
});