| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** @fileoverview Suite of tests for extensions-code-section. */ | 5 /** @fileoverview Suite of tests for extensions-code-section. */ |
| 6 cr.define('extension_code_section_tests', function() { | 6 cr.define('extension_code_section_tests', function() { |
| 7 /** @enum {string} */ | 7 /** @enum {string} */ |
| 8 var TestNames = { | 8 var TestNames = { |
| 9 Layout: 'layout', | 9 Layout: 'layout', |
| 10 }; | 10 }; |
| 11 | 11 |
| 12 function registerTests() { | 12 function registerTests() { |
| 13 suite('ExtensionCodeSectionTest', function() { | 13 suite('ExtensionCodeSectionTest', function() { |
| 14 /** @type {chrome.developerPrivate.RequestFileSourceResponse} */ | 14 /** @type {chrome.developerPrivate.RequestFileSourceResponse} */ |
| 15 var code = { | 15 var code = { |
| 16 beforeHighlight: 'this part before the highlight\nAnd this too\n', | 16 beforeHighlight: 'this part before the highlight\nAnd this too\n', |
| 17 highlight: 'highlight this part\n', | 17 highlight: 'highlight this part\n', |
| 18 afterHighlight: 'this part after the highlight\n', | 18 afterHighlight: 'this part after the highlight\n', |
| 19 message: 'Highlight message', | 19 message: 'Highlight message', |
| 20 }; | 20 }; |
| 21 | 21 |
| 22 /** @type {extensions.CodeSection} */ | 22 /** @type {extensions.CodeSection} */ |
| 23 var codeSection; | 23 var codeSection; |
| 24 | 24 |
| 25 var noCodeError = 'No code here'; | 25 var couldNotDisplayCode = 'No code here'; |
| 26 | 26 |
| 27 suiteSetup(function() { | 27 suiteSetup(function() { |
| 28 return PolymerTest.importHtml('chrome://extensions/code_section.html'); | 28 return PolymerTest.importHtml('chrome://extensions/code_section.html'); |
| 29 }); | 29 }); |
| 30 | 30 |
| 31 // Initialize an extension item before each test. | 31 // Initialize an extension item before each test. |
| 32 setup(function() { | 32 setup(function() { |
| 33 PolymerTest.clearBody(); | 33 PolymerTest.clearBody(); |
| 34 codeSection = new extensions.CodeSection(); | 34 codeSection = new extensions.CodeSection(); |
| 35 codeSection.noCodeError = noCodeError; | 35 codeSection.couldNotDisplayCode = couldNotDisplayCode; |
| 36 document.body.appendChild(codeSection); | 36 document.body.appendChild(codeSection); |
| 37 }); | 37 }); |
| 38 | 38 |
| 39 test(assert(TestNames.Layout), function() { | 39 test(assert(TestNames.Layout), function() { |
| 40 Polymer.dom.flush(); | 40 Polymer.dom.flush(); |
| 41 | 41 |
| 42 var testIsVisible = | 42 var testIsVisible = |
| 43 extension_test_util.isVisible.bind(null, codeSection); | 43 extension_test_util.isVisible.bind(null, codeSection); |
| 44 expectFalse(!!codeSection.code); | 44 expectFalse(!!codeSection.code); |
| 45 expectTrue(codeSection.isMainHidden_()); | 45 expectTrue(codeSection.isEmpty()); |
| 46 expectTrue(codeSection.$$('#main').hidden); | 46 expectTrue(codeSection.$$('#main').hidden); |
| 47 expectFalse(testIsVisible('#main')); | 47 expectFalse(testIsVisible('#main')); |
| 48 expectTrue(testIsVisible('#no-code')); | 48 expectTrue(testIsVisible('#no-code')); |
| 49 expectEquals('', codeSection.$['line-numbers'].textContent.trim()); | 49 expectEquals('', codeSection.$['line-numbers'].textContent.trim()); |
| 50 | 50 |
| 51 codeSection.code = code; | 51 codeSection.code = code; |
| 52 expectTrue(testIsVisible('#main')); | 52 expectTrue(testIsVisible('#main')); |
| 53 expectFalse(testIsVisible('#no-code')); | 53 expectFalse(testIsVisible('#no-code')); |
| 54 | 54 |
| 55 var fullSpan = codeSection.$$('#source span'); | 55 var fullSpan = codeSection.$$('#source span'); |
| 56 expectEquals( | 56 expectEquals( |
| 57 code.beforeHighlight + code.highlight + code.afterHighlight, | 57 code.beforeHighlight + code.highlight + code.afterHighlight, |
| 58 fullSpan.textContent); | 58 fullSpan.textContent); |
| 59 var highlightSpan = codeSection.$$('.highlight'); | 59 var highlightSpan = codeSection.$$('.highlight'); |
| 60 expectEquals(code.highlight, highlightSpan.textContent); | 60 expectEquals(code.highlight, highlightSpan.textContent); |
| 61 expectEquals(code.message, highlightSpan.title); | 61 expectEquals(code.message, highlightSpan.title); |
| 62 expectEquals('1\n2\n3\n4', | 62 expectEquals('1\n2\n3\n4', |
| 63 codeSection.$['line-numbers'].textContent.trim()); | 63 codeSection.$['line-numbers'].textContent.trim()); |
| 64 }); | 64 }); |
| 65 }); | 65 }); |
| 66 } | 66 } |
| 67 | 67 |
| 68 return { | 68 return { |
| 69 registerTests: registerTests, | 69 registerTests: registerTests, |
| 70 TestNames: TestNames, | 70 TestNames: TestNames, |
| 71 }; | 71 }; |
| 72 }); | 72 }); |
| OLD | NEW |