| <!DOCTYPE html> |
| <!-- |
| 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. |
| --> |
| |
| <link rel="import" href="/base/deep_utils.html"> |
| <link rel="import" href="/core/analysis/generic_object_view.html"> |
| <link rel="import" href="/model/object_instance.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { // @suppress longLineCheck |
| test('undefinedValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = undefined; |
| assert.equal(view.$.content.textContent, 'undefined'); |
| }); |
| |
| test('nullValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = null; |
| assert.equal(view.$.content.textContent, 'null'); |
| }); |
| |
| test('stringValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = 'string value'; |
| assert.equal(view.$.content.textContent, '"string value"'); |
| }); |
| |
| test('multiLineStringValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = 'i am a\n string value\ni have\n various indents'; |
| this.addHTMLOutput(view); |
| var c = view.$.content; |
| }); |
| |
| test('multiLineStringValueInsideObject', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = {key: 'i am a\n string value\ni have\n various indents', |
| value: 'simple'}; |
| this.addHTMLOutput(view); |
| var c = view.$.content; |
| |
| }); |
| |
| test('jsonObjectStringValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = '{"x": 1}'; |
| assert.equal(view.$.content.children.length, 1); |
| assert.equal(view.$.content.children[0].children.length, 4); |
| }); |
| |
| test('jsonArrayStringValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = '[1,2,3]'; |
| assert.equal(view.$.content.children.length, 3); |
| }); |
| |
| test('booleanValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = false; |
| assert.equal(view.$.content.textContent, 'false'); |
| }); |
| |
| test('numberValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = 3.14159; |
| assert.equal(view.$.content.textContent, '3.14159'); |
| }); |
| |
| test('objectSnapshotValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| |
| var i10 = new tr.model.ObjectInstance( |
| {}, '0x1000', 'cat', 'name', 10); |
| var s10 = i10.addSnapshot(10, {foo: 1}); |
| |
| view.object = s10; |
| this.addHTMLOutput(view); |
| assert.strictEqual(view.$.content.children[0].dataElement.tagName, |
| 'TR-C-A-ANALYSIS-LINK'); |
| }); |
| |
| test('objectInstanceValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| |
| var i10 = new tr.model.ObjectInstance( |
| {}, '0x1000', 'cat', 'name', 10); |
| var s10 = i10.addSnapshot(10, {foo: 1}); |
| |
| view.object = i10; |
| assert.strictEqual(view.$.content.children[0].dataElement.tagName, |
| 'TR-C-A-ANALYSIS-LINK'); |
| }); |
| |
| test('instantiate_emptyArrayValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = []; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('instantiate_twoValueArrayValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [1, 2]; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('instantiate_twoValueBArrayValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [1, {x: 1}]; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('instantiate_arrayValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [1, 2, 'three']; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('instantiate_arrayWithSimpleObjectValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [{simple: 'object'}]; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('instantiate_arrayWithComplexObjectValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [{col0: 'object', col1: 0}, |
| {col2: 'Object', col3: 1}]; |
| this.addHTMLOutput(view); |
| assert.equal(undefined, tr.b.findDeepElementMatching( |
| view.$.content, 'table')); |
| }); |
| |
| test('instantiate_arrayWithDeepObjectValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [{key: {deep: 'object values make isTable() return false'}}]; |
| this.addHTMLOutput(view); |
| assert.equal(undefined, tr.b.findDeepElementMatching( |
| view.$.content, 'table')); |
| }); |
| |
| test('jsonTableValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = [{col0: 'object', col1: 0}, {col0: 'Object', col1: 1}]; |
| this.addHTMLOutput(view); |
| var table = tr.b.findDeepElementMatching( |
| view.$.content, 'tr-b-ui-table'); |
| assert.equal('col0', table.tableColumns[0].title); |
| assert.equal('col1', table.tableColumns[1].title); |
| assert.equal('object', table.tableColumns[0].value(table.tableRows[0])); |
| assert.equal('Object', table.tableColumns[0].value(table.tableRows[1])); |
| assert.equal(0, table.tableColumns[1].value(table.tableRows[0])); |
| assert.equal(1, table.tableColumns[1].value(table.tableRows[1])); |
| }); |
| |
| test('instantiate_objectValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = { |
| 'entry_one': 'entry_one_value', |
| 'entry_two': 2, |
| 'entry_three': [3, 4, 5] |
| }; |
| this.addHTMLOutput(view); |
| }); |
| |
| test('timeDurationValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = new tr.b.units.TimeDuration(3); |
| assert.isDefined(tr.b.findDeepElementMatching( |
| view.$.content, 'tr-b-u-time-duration-span')); |
| }); |
| |
| test('timeStampValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = new tr.b.units.TimeStamp(3); |
| assert.isDefined(tr.b.findDeepElementMatching( |
| view.$.content, 'tr-b-u-time-stamp-span')); |
| }); |
| |
| test('sizeInBytesValue', function() { |
| var view = document.createElement('tr-c-a-generic-object-view'); |
| view.object = new tr.b.units.SizeInBytes(3); |
| assert.isDefined(tr.b.findDeepElementMatching( |
| view.$.content, 'tr-b-u-size-in-bytes-span')); |
| }); |
| |
| |
| }); |
| </script> |