Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / analysis / generic_object_view_test.js
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.
4
5 'use strict';
6
7 tvcm.require('tracing.trace_model.object_instance');
8 tvcm.require('tracing.analysis.generic_object_view');
9
10 tvcm.unittest.testSuite('tracing.analysis.generic_object_view_test', function() { // @suppress longLineCheck
11   var GenericObjectView = tracing.analysis.GenericObjectView;
12
13   test('undefinedValue', function() {
14     var view = new GenericObjectView();
15     view.object = undefined;
16     assertEquals('undefined', view.children[0].dataElement.textContent);
17   });
18
19   test('nullValue', function() {
20     var view = new GenericObjectView();
21     view.object = null;
22     assertEquals('null', view.children[0].dataElement.textContent);
23   });
24
25   test('stringValue', function() {
26     var view = new GenericObjectView();
27     view.object = 'string value';
28     assertEquals('"string value"', view.children[0].textContent);
29   });
30
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);
36   });
37
38   test('jsonArraStringValue', function() {
39     var view = new GenericObjectView();
40     view.object = '[1,2,3]';
41     assertEquals(3, view.children.length);
42   });
43
44   test('booleanValue', function() {
45     var view = new GenericObjectView();
46     view.object = false;
47     assertEquals('false', view.children[0].dataElement.textContent);
48   });
49
50   test('numberValue', function() {
51     var view = new GenericObjectView();
52     view.object = 3.14159;
53     assertEquals('3.14159', view.children[0].textContent);
54   });
55
56   test('objectSnapshotValue', function() {
57     var view = new GenericObjectView();
58
59     var i10 = new tracing.trace_model.ObjectInstance(
60         {}, '0x1000', 'cat', 'name', 10);
61     var s10 = i10.addSnapshot(10, {foo: 1});
62
63     view.object = s10;
64     assertTrue(view.children[0].dataElement instanceof
65                tracing.analysis.ObjectSnapshotLink);
66   });
67
68   test('objectInstanceValue', function() {
69     var view = new GenericObjectView();
70
71     var i10 = new tracing.trace_model.ObjectInstance(
72         {}, '0x1000', 'cat', 'name', 10);
73     var s10 = i10.addSnapshot(10, {foo: 1});
74
75     view.object = i10;
76     assertTrue(view.children[0].dataElement instanceof
77                tracing.analysis.ObjectInstanceLink);
78   });
79
80   test('instantiate_emptyArrayValue', function() {
81     var view = new GenericObjectView();
82     view.object = [];
83     this.addHTMLOutput(view);
84   });
85
86   test('instantiate_twoValueArrayValue', function() {
87     var view = new GenericObjectView();
88     view.object = [1, 2];
89     this.addHTMLOutput(view);
90   });
91
92   test('instantiate_twoValueBArrayValue', function() {
93     var view = new GenericObjectView();
94     view.object = [1, {x: 1}];
95     this.addHTMLOutput(view);
96   });
97
98   test('instantiate_arrayValue', function() {
99     var view = new GenericObjectView();
100     view.object = [1, 2, 'three'];
101     this.addHTMLOutput(view);
102   });
103
104   test('instantiate_arrayWithSimpleObjectValue', function() {
105     var view = new GenericObjectView();
106     view.object = [{simple: 'object'}];
107     this.addHTMLOutput(view);
108   });
109
110   test('instantiate_arrayWithComplexObjectValue', function() {
111     var view = new GenericObjectView();
112     view.object = [{complex: 'object', field: 'two'}];
113     this.addHTMLOutput(view);
114   });
115
116   test('instantiate_objectValue', function() {
117     var view = new GenericObjectView();
118     view.object = {
119       'entry_one': 'entry_one_value',
120       'entry_two': 2,
121       'entry_three': [3, 4, 5]
122     };
123     this.addHTMLOutput(view);
124   });
125 });