object_snapshot_test.html revision b2cbf1594f8d6e4ba32d384cf379f62a74ed7654
1<!DOCTYPE html>
2<!--
3Copyright (c) 2013 The Chromium Authors. All rights reserved.
4Use of this source code is governed by a BSD-style license that can be
5found in the LICENSE file.
6-->
7
8<link rel="import" href="/model/object_instance.html">
9<link rel="import" href="/model/object_snapshot.html">
10
11<script>
12'use strict';
13
14tr.b.unittest.testSuite(function() {
15  test('snapshotTypeRegistry', function() {
16    function MySnapshot() {
17      tr.model.ObjectSnapshot.apply(this, arguments);
18      this.myFoo = this.args.foo;
19    }
20
21    MySnapshot.prototype = {
22      __proto__: tr.model.ObjectSnapshot.prototype
23    };
24
25    var instance = new tr.model.ObjectInstance(
26        {}, '0x1000', 'cat', 'MySnapshot', 10);
27    try {
28      tr.model.ObjectSnapshot.register(
29          MySnapshot,
30          {typeName: 'MySnapshot'});
31      var snapshot = instance.addSnapshot(15, {foo: 'bar'});
32      assert.instanceOf(snapshot, MySnapshot);
33      assert.equal(snapshot.myFoo, 'bar');
34    } finally {
35      tr.model.ObjectSnapshot.unregister(MySnapshot);
36    }
37  });
38});
39</script>
40
41