| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright (c) 2015 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| 4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
| 5 found in the LICENSE file. | 5 found in the LICENSE file. |
| 6 --> | 6 --> |
| 7 | 7 |
| 8 <link rel="import" href="/tracing/base/iteration_helpers.html"> | 8 <link rel="import" href="/tracing/base/iteration_helpers.html"> |
| 9 <link rel="import" href="/tracing/base/scalar.html"> | 9 <link rel="import" href="/tracing/base/scalar.html"> |
| 10 <link rel="import" href="/tracing/base/unit.html"> | 10 <link rel="import" href="/tracing/base/unit.html"> |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 assert.isUndefined(opt_expectedColor); // Test sanity check. | 49 assert.isUndefined(opt_expectedColor); // Test sanity check. |
| 50 return; | 50 return; |
| 51 } | 51 } |
| 52 | 52 |
| 53 var node = tr.ui.b.asHTMLOrTextNode(value); | 53 var node = tr.ui.b.asHTMLOrTextNode(value); |
| 54 var spanEl = document.createElement('span'); | 54 var spanEl = document.createElement('span'); |
| 55 Polymer.dom(spanEl).appendChild(node); | 55 Polymer.dom(spanEl).appendChild(node); |
| 56 test.addHTMLOutput(spanEl); | 56 test.addHTMLOutput(spanEl); |
| 57 | 57 |
| 58 assert.strictEqual(Polymer.dom(node).textContent, expectedTextContent); | 58 assert.strictEqual(Polymer.dom(node).textContent, expectedTextContent); |
| 59 if (opt_expectedColor === undefined) | 59 if (opt_expectedColor === undefined) { |
| 60 assert.notInstanceOf(node, HTMLElement); | 60 assert.notInstanceOf(node, HTMLElement); |
| 61 else | 61 } else { |
| 62 assert.strictEqual(node.style.color, opt_expectedColor); | 62 assert.strictEqual(node.style.color, opt_expectedColor); |
| 63 } |
| 63 } | 64 } |
| 64 | 65 |
| 65 function checkCompareFieldsEqual(column, fieldValuesA, fieldValuesB) { | 66 function checkCompareFieldsEqual(column, fieldValuesA, fieldValuesB) { |
| 66 assert.strictEqual(column.compareFields(fieldValuesA, fieldValuesB), 0); | 67 assert.strictEqual(column.compareFields(fieldValuesA, fieldValuesB), 0); |
| 67 } | 68 } |
| 68 | 69 |
| 69 function checkCompareFieldsLess(column, fieldValuesA, fieldValuesB) { | 70 function checkCompareFieldsLess(column, fieldValuesA, fieldValuesB) { |
| 70 assert.isBelow(column.compareFields(fieldValuesA, fieldValuesB), 0); | 71 assert.isBelow(column.compareFields(fieldValuesA, fieldValuesB), 0); |
| 71 assert.isAbove(column.compareFields(fieldValuesB, fieldValuesA), 0); | 72 assert.isAbove(column.compareFields(fieldValuesB, fieldValuesA), 0); |
| 72 } | 73 } |
| 73 | 74 |
| 74 function checkNumericMemoryColumnFieldFormat(test, column, fieldValues, unit, | 75 function checkNumericMemoryColumnFieldFormat(test, column, fieldValues, unit, |
| 75 expectedValue) { | 76 expectedValue) { |
| 76 var value = column.formatMultipleFields( | 77 var value = column.formatMultipleFields( |
| 77 buildScalarCell(unit, fieldValues).fields); | 78 buildScalarCell(unit, fieldValues).fields); |
| 78 if (expectedValue === undefined) { | 79 if (expectedValue === undefined) { |
| 79 assert.equal(value, ''); | 80 assert.equal(value, ''); |
| 80 assert.isUndefined(expectedUnits); // Test sanity check. | 81 assert.isUndefined(expectedUnits); // Test sanity check. |
| 81 return; | 82 return; |
| 82 } | 83 } |
| 83 | 84 |
| 84 test.addHTMLOutput(value); | 85 test.addHTMLOutput(value); |
| 85 assert.equal(value.tagName, 'TR-V-UI-SCALAR-SPAN'); | 86 assert.equal(value.tagName, 'TR-V-UI-SCALAR-SPAN'); |
| 86 assert.equal(value.value, expectedValue); | 87 assert.equal(value.value, expectedValue); |
| 87 assert.equal(value.unit, unit); | 88 assert.equal(value.unit, unit); |
| 88 } | 89 } |
| 89 | 90 |
| 90 function buildScalarCell(unit, values) { | 91 function buildScalarCell(unit, values) { |
| 91 return new MemoryCell(values.map(function(value) { | 92 return new MemoryCell(values.map(function(value) { |
| 92 if (value === undefined) | 93 if (value === undefined) return undefined; |
| 93 return undefined; | |
| 94 return new Scalar(unit, value); | 94 return new Scalar(unit, value); |
| 95 })); | 95 })); |
| 96 } | 96 } |
| 97 | 97 |
| 98 function buildTestRows() { | 98 function buildTestRows() { |
| 99 return [ | 99 return [ |
| 100 { | 100 { |
| 101 title: 'Row 1', | 101 title: 'Row 1', |
| 102 fields: { | 102 fields: { |
| 103 'cpu_temperature': new MemoryCell(['below zero', 'absolute zero']) | 103 'cpu_temperature': new MemoryCell(['below zero', 'absolute zero']) |
| (...skipping 29 matching lines...) Expand all Loading... |
| 133 } | 133 } |
| 134 } | 134 } |
| 135 ]; | 135 ]; |
| 136 } | 136 } |
| 137 | 137 |
| 138 function checkCellValue( | 138 function checkCellValue( |
| 139 test, value, expectedText, expectedColor, opt_expectedInfos) { | 139 test, value, expectedText, expectedColor, opt_expectedInfos) { |
| 140 var expectedInfos = opt_expectedInfos || []; | 140 var expectedInfos = opt_expectedInfos || []; |
| 141 assert.lengthOf(Polymer.dom(value).childNodes, 1 + expectedInfos.length); | 141 assert.lengthOf(Polymer.dom(value).childNodes, 1 + expectedInfos.length); |
| 142 assert.strictEqual(value.style.color, expectedColor); | 142 assert.strictEqual(value.style.color, expectedColor); |
| 143 if (typeof expectedText === 'string') | 143 if (typeof expectedText === 'string') { |
| 144 assert.strictEqual( | 144 assert.strictEqual( |
| 145 Polymer.dom(Polymer.dom(value).childNodes[0]).textContent, | 145 Polymer.dom(Polymer.dom(value).childNodes[0]).textContent, |
| 146 expectedText); | 146 expectedText); |
| 147 else | 147 } else { |
| 148 expectedText(Polymer.dom(value).childNodes[0]); | 148 expectedText(Polymer.dom(value).childNodes[0]); |
| 149 } |
| 149 for (var i = 0; i < expectedInfos.length; i++) { | 150 for (var i = 0; i < expectedInfos.length; i++) { |
| 150 var expectedInfo = expectedInfos[i]; | 151 var expectedInfo = expectedInfos[i]; |
| 151 var infoEl = Polymer.dom(value).childNodes[i + 1]; | 152 var infoEl = Polymer.dom(value).childNodes[i + 1]; |
| 152 assert.strictEqual(Polymer.dom(infoEl).textContent, expectedInfo.icon); | 153 assert.strictEqual(Polymer.dom(infoEl).textContent, expectedInfo.icon); |
| 153 assert.strictEqual(infoEl.title, expectedInfo.message); | 154 assert.strictEqual(infoEl.title, expectedInfo.message); |
| 154 assert.strictEqual(infoEl.style.color, expectedInfo.color || ''); | 155 assert.strictEqual(infoEl.style.color, expectedInfo.color || ''); |
| 155 } | 156 } |
| 156 test.addHTMLOutput(value); | 157 test.addHTMLOutput(value); |
| 157 } | 158 } |
| 158 | 159 |
| (...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 515 | 516 |
| 516 assert.isTrue(MemoryColumn.nameMatchesCondition('test_column', /test/)); | 517 assert.isTrue(MemoryColumn.nameMatchesCondition('test_column', /test/)); |
| 517 assert.isTrue( | 518 assert.isTrue( |
| 518 MemoryColumn.nameMatchesCondition('test_column', /^[^_]*_[^_]*$/)); | 519 MemoryColumn.nameMatchesCondition('test_column', /^[^_]*_[^_]*$/)); |
| 519 assert.isFalse(MemoryColumn.nameMatchesCondition('test_column', /test$/)); | 520 assert.isFalse(MemoryColumn.nameMatchesCondition('test_column', /test$/)); |
| 520 }); | 521 }); |
| 521 | 522 |
| 522 test('checkStringMemoryColumn_value_singleField', function() { | 523 test('checkStringMemoryColumn_value_singleField', function() { |
| 523 var c = new StringMemoryColumn('', ['x'], AggregationMode.MAX); | 524 var c = new StringMemoryColumn('', ['x'], AggregationMode.MAX); |
| 524 c.color = function(fields, contexts) { | 525 c.color = function(fields, contexts) { |
| 525 if (fields[0] < '0') | 526 if (fields[0] < '0') return 'green'; |
| 526 return 'green'; | 527 if (contexts && contexts[0] % 2 === 0) return 'red'; |
| 527 if (contexts && contexts[0] % 2 === 0) | |
| 528 return 'red'; | |
| 529 return undefined; | 528 return undefined; |
| 530 }; | 529 }; |
| 531 | 530 |
| 532 var infos1 = [{ icon: '\u{1F648}', message: 'Some info', color: 'blue' }]; | 531 var infos1 = [{ icon: '\u{1F648}', message: 'Some info', color: 'blue' }]; |
| 533 var infos2 = [ | 532 var infos2 = [ |
| 534 { icon: '\u{1F649}', message: 'Start', color: 'cyan' }, | 533 { icon: '\u{1F649}', message: 'Start', color: 'cyan' }, |
| 535 { icon: '\u{1F64A}', message: 'Stop' } | 534 { icon: '\u{1F64A}', message: 'Stop' } |
| 536 ]; | 535 ]; |
| 537 c.addInfos = function(fields, contexts, infos) { | 536 c.addInfos = function(fields, contexts, infos) { |
| 538 if (fields[0] < '0') | 537 if (fields[0] < '0') { |
| 539 infos.push.apply(infos, infos1); | 538 infos.push.apply(infos, infos1); |
| 540 else if (contexts && contexts[0] % 2 === 0) | 539 } else if (contexts && contexts[0] % 2 === 0) { |
| 541 infos.push.apply(infos, infos2); | 540 infos.push.apply(infos, infos2); |
| 541 } |
| 542 }; | 542 }; |
| 543 | 543 |
| 544 var row = {x: new MemoryCell(['123'])}; | 544 var row = {x: new MemoryCell(['123'])}; |
| 545 assert.strictEqual(c.value(row), '123'); | 545 assert.strictEqual(c.value(row), '123'); |
| 546 | 546 |
| 547 var row = {x: new MemoryCell(['-123']), contexts: [undefined]}; | 547 var row = {x: new MemoryCell(['-123']), contexts: [undefined]}; |
| 548 checkCellValue(this, c.value(row), '-123', 'green', infos1); | 548 checkCellValue(this, c.value(row), '-123', 'green', infos1); |
| 549 | 549 |
| 550 var row = {x: new MemoryCell(['123']), contexts: [42]}; | 550 var row = {x: new MemoryCell(['123']), contexts: [42]}; |
| 551 checkCellValue(this, c.value(row), '123', 'red', infos2); | 551 checkCellValue(this, c.value(row), '123', 'red', infos2); |
| 552 }); | 552 }); |
| 553 | 553 |
| 554 test('checkStringMemoryColumn_value_multipleFields', function() { | 554 test('checkStringMemoryColumn_value_multipleFields', function() { |
| 555 var c1 = new StringMemoryColumn('test_column1', ['x'], | 555 var c1 = new StringMemoryColumn('test_column1', ['x'], |
| 556 undefined /* aggregation mode */); | 556 undefined /* aggregation mode */); |
| 557 var c2 = new StringMemoryColumn('test_column2', ['x'], | 557 var c2 = new StringMemoryColumn('test_column2', ['x'], |
| 558 AggregationMode.DIFF); | 558 AggregationMode.DIFF); |
| 559 c2.color = function(fields, contexts) { | 559 c2.color = function(fields, contexts) { |
| 560 return '#009999'; | 560 return '#009999'; |
| 561 }; | 561 }; |
| 562 var c3 = new StringMemoryColumn('test_column3', ['x'], | 562 var c3 = new StringMemoryColumn('test_column3', ['x'], |
| 563 AggregationMode.MAX); | 563 AggregationMode.MAX); |
| 564 c3.color = function(fields, contexts) { | 564 c3.color = function(fields, contexts) { |
| 565 if (fields[0] < '0') | 565 if (fields[0] < '0') { |
| 566 return 'green'; | 566 return 'green'; |
| 567 else if (contexts && contexts[contexts.length - 1] % 2 === 0) | 567 } else if (contexts && contexts[contexts.length - 1] % 2 === 0) { |
| 568 return 'red'; | 568 return 'red'; |
| 569 } |
| 569 return undefined; | 570 return undefined; |
| 570 }; | 571 }; |
| 571 | 572 |
| 572 var infos1 = [{ icon: '\u{1F648}', message: 'Some info', color: 'blue' }]; | 573 var infos1 = [{ icon: '\u{1F648}', message: 'Some info', color: 'blue' }]; |
| 573 var infos2 = [ | 574 var infos2 = [ |
| 574 { icon: '\u{1F649}', message: 'Start', color: 'cyan' }, | 575 { icon: '\u{1F649}', message: 'Start', color: 'cyan' }, |
| 575 { icon: '\u{1F64A}', message: 'Stop' } | 576 { icon: '\u{1F64A}', message: 'Stop' } |
| 576 ]; | 577 ]; |
| 577 c1.addInfos = c2.addInfos = c3.addInfos = | 578 c1.addInfos = c2.addInfos = c3.addInfos = |
| 578 function(fields, contexts, infos) { | 579 function(fields, contexts, infos) { |
| 579 if (fields[0] < '0') | 580 if (fields[0] < '0') { |
| 580 infos.push.apply(infos, infos1); | 581 infos.push.apply(infos, infos1); |
| 581 else if (contexts && contexts[contexts.length - 1] % 2 === 0) | 582 } else if (contexts && contexts[contexts.length - 1] % 2 === 0) { |
| 582 infos.push.apply(infos, infos2); | 583 infos.push.apply(infos, infos2); |
| 584 } |
| 583 }; | 585 }; |
| 584 | 586 |
| 585 var row = {x: new MemoryCell(['123', '456'])}; | 587 var row = {x: new MemoryCell(['123', '456'])}; |
| 586 checkCellValue(this, c1.value(row), '(unsupported aggregation mode)', ''); | 588 checkCellValue(this, c1.value(row), '(unsupported aggregation mode)', ''); |
| 587 checkCellValue(this, c2.value(row), '123 \u2192 456', 'rgb(0, 153, 153)'); | 589 checkCellValue(this, c2.value(row), '123 \u2192 456', 'rgb(0, 153, 153)'); |
| 588 assert.strictEqual(c3.value(row), '456'); | 590 assert.strictEqual(c3.value(row), '456'); |
| 589 | 591 |
| 590 var row = { | 592 var row = { |
| 591 x: new MemoryCell(['-123', undefined, '+123']), | 593 x: new MemoryCell(['-123', undefined, '+123']), |
| 592 contexts: [12, 14, undefined] | 594 contexts: [12, 14, undefined] |
| (...skipping 634 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1227 }); | 1229 }); |
| 1228 assert.deepEqual(Object.keys(cells), ['a', 'b', 'd']); | 1230 assert.deepEqual(Object.keys(cells), ['a', 'b', 'd']); |
| 1229 checkSizeNumericFields( | 1231 checkSizeNumericFields( |
| 1230 cells.a, mockColumn, [9, undefined, undefined, undefined]); | 1232 cells.a, mockColumn, [9, undefined, undefined, undefined]); |
| 1231 checkSizeNumericFields(cells.b, mockColumn, [314, 159, undefined, 265]); | 1233 checkSizeNumericFields(cells.b, mockColumn, [314, 159, undefined, 265]); |
| 1232 checkSizeNumericFields( | 1234 checkSizeNumericFields( |
| 1233 cells.d, mockColumn, [undefined, undefined, undefined, 0]); | 1235 cells.d, mockColumn, [undefined, undefined, undefined, 0]); |
| 1234 }); | 1236 }); |
| 1235 }); | 1237 }); |
| 1236 </script> | 1238 </script> |
| OLD | NEW |