1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 tvcm.require('tracing.trace_model.object_instance');
8 tvcm.require('tracing.analysis.generic_object_view');
10 tvcm.unittest.testSuite('tracing.analysis.generic_object_view_test', function() { // @suppress longLineCheck
11 var GenericObjectView = tracing.analysis.GenericObjectView;
13 test('undefinedValue', function() {
14 var view = new GenericObjectView();
15 view.object = undefined;
16 assertEquals('undefined', view.children[0].dataElement.textContent);
19 test('nullValue', function() {
20 var view = new GenericObjectView();
22 assertEquals('null', view.children[0].dataElement.textContent);
25 test('stringValue', function() {
26 var view = new GenericObjectView();
27 view.object = 'string value';
28 assertEquals('"string value"', view.children[0].textContent);
31 test('jsonObjectStringValue', function() {
32 var view = new GenericObjectView();
33 view.object = '{"x": 1}';
34 assertEquals(1, view.children.length);
35 assertEquals(4, view.children[0].children.length);
38 test('jsonArraStringValue', function() {
39 var view = new GenericObjectView();
40 view.object = '[1,2,3]';
41 assertEquals(3, view.children.length);
44 test('booleanValue', function() {
45 var view = new GenericObjectView();
47 assertEquals('false', view.children[0].dataElement.textContent);
50 test('numberValue', function() {
51 var view = new GenericObjectView();
52 view.object = 3.14159;
53 assertEquals('3.14159', view.children[0].textContent);
56 test('objectSnapshotValue', function() {
57 var view = new GenericObjectView();
59 var i10 = new tracing.trace_model.ObjectInstance(
60 {}, '0x1000', 'cat', 'name', 10);
61 var s10 = i10.addSnapshot(10, {foo: 1});
64 assertTrue(view.children[0].dataElement instanceof
65 tracing.analysis.ObjectSnapshotLink);
68 test('objectInstanceValue', function() {
69 var view = new GenericObjectView();
71 var i10 = new tracing.trace_model.ObjectInstance(
72 {}, '0x1000', 'cat', 'name', 10);
73 var s10 = i10.addSnapshot(10, {foo: 1});
76 assertTrue(view.children[0].dataElement instanceof
77 tracing.analysis.ObjectInstanceLink);
80 test('instantiate_emptyArrayValue', function() {
81 var view = new GenericObjectView();
83 this.addHTMLOutput(view);
86 test('instantiate_twoValueArrayValue', function() {
87 var view = new GenericObjectView();
89 this.addHTMLOutput(view);
92 test('instantiate_twoValueBArrayValue', function() {
93 var view = new GenericObjectView();
94 view.object = [1, {x: 1}];
95 this.addHTMLOutput(view);
98 test('instantiate_arrayValue', function() {
99 var view = new GenericObjectView();
100 view.object = [1, 2, 'three'];
101 this.addHTMLOutput(view);
104 test('instantiate_arrayWithSimpleObjectValue', function() {
105 var view = new GenericObjectView();
106 view.object = [{simple: 'object'}];
107 this.addHTMLOutput(view);
110 test('instantiate_arrayWithComplexObjectValue', function() {
111 var view = new GenericObjectView();
112 view.object = [{complex: 'object', field: 'two'}];
113 this.addHTMLOutput(view);
116 test('instantiate_objectValue', function() {
117 var view = new GenericObjectView();
119 'entry_one': 'entry_one_value',
121 'entry_three': [3, 4, 5]
123 this.addHTMLOutput(view);