Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 extension-item. */ | 5 /** @fileoverview Suite of tests for extension-item. */ |
| 6 cr.define('extension_item_tests', function() { | 6 cr.define('extension_item_tests', function() { |
| 7 /** | 7 /** |
| 8 * The data used to populate the extension item. | 8 * The data used to populate the extension item. |
| 9 * @type {chrome.developerPrivate.ExtensionInfo} | 9 * @type {chrome.developerPrivate.ExtensionInfo} |
| 10 */ | 10 */ |
| 11 var extensionData = extension_test_util.createExtensionInfo(); | 11 var extensionData = extension_test_util.createExtensionInfo(); |
| 12 | 12 |
| 13 // The normal elements, which should always be shown. | 13 // The normal elements, which should always be shown. |
| 14 var normalElements = [ | 14 var normalElements = [ |
| 15 {selector: '#name', text: extensionData.name}, | 15 {selector: '#name', text: extensionData.name}, |
| 16 {selector: '#icon'}, | 16 {selector: '#icon'}, |
| 17 {selector: '#description', text: extensionData.description}, | 17 {selector: '#description', text: extensionData.description}, |
| 18 {selector: '#enable-toggle'}, | 18 {selector: '#enable-toggle'}, |
| 19 {selector: '#details-button'}, | 19 {selector: '#details-button'}, |
| 20 {selector: '#remove-button'}, | 20 {selector: '#remove-button'}, |
| 21 ]; | 21 ]; |
| 22 // The developer elements, which should only be shown if in developer | 22 // The developer elements, which should only be shown if in developer |
| 23 // mode *and* showing details. | 23 // mode *and* showing details. |
| 24 var devElements = [ | 24 var devElements = [ |
| 25 {selector: '#version', text: extensionData.version}, | 25 {selector: '#version', text: extensionData.version}, |
| 26 {selector: '#extension-id', text: 'ID:' + extensionData.id}, | 26 {selector: '#extension-id', text: 'ID:' + extensionData.id}, |
| 27 {selector: '#inspect-views'}, | 27 {selector: '#inspect-views'}, |
| 28 {selector: '#inspect-views paper-button', text: 'foo.html'}, | 28 {selector: '#inspect-views paper-button', text: 'foo.html,'}, |
| 29 {selector: '#inspect-views paper-button:nth-of-type(0n + 2)', | 29 {selector: '#inspect-views paper-button:nth-of-type(2)', |
| 30 text: 'bar.html'}, | 30 text: '1 moreā¦'}, |
| 31 ]; | 31 ]; |
| 32 | 32 |
| 33 /** | 33 /** |
| 34 * Tests that the elements' visibility matches the expected visibility. | 34 * Tests that the elements' visibility matches the expected visibility. |
| 35 * @param {extensions.Item} item | 35 * @param {extensions.Item} item |
| 36 * @param {Array<Object<string>>} elements | 36 * @param {Array<Object<string>>} elements |
| 37 * @param {boolean} visibility | 37 * @param {boolean} visibility |
| 38 */ | 38 */ |
| 39 function testElementsVisibility(item, elements, visibility) { | 39 function testElementsVisibility(item, elements, visibility) { |
| 40 elements.forEach(function(element) { | 40 elements.forEach(function(element) { |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 test(assert(TestNames.ClickableItems), function() { | 118 test(assert(TestNames.ClickableItems), function() { |
| 119 item.set('inDevMode', true); | 119 item.set('inDevMode', true); |
| 120 | 120 |
| 121 mockDelegate.testClickingCalls( | 121 mockDelegate.testClickingCalls( |
| 122 item.$['remove-button'], 'deleteItem', [item.data.id]); | 122 item.$['remove-button'], 'deleteItem', [item.data.id]); |
| 123 mockDelegate.testClickingCalls( | 123 mockDelegate.testClickingCalls( |
| 124 item.$['enable-toggle'], 'setItemEnabled', [item.data.id, false]); | 124 item.$['enable-toggle'], 'setItemEnabled', [item.data.id, false]); |
| 125 mockDelegate.testClickingCalls( | 125 mockDelegate.testClickingCalls( |
| 126 item.$$('#inspect-views paper-button'), | 126 item.$$('#inspect-views paper-button'), |
| 127 'inspectItemView', [item.data.id, item.data.views[0]]); | 127 'inspectItemView', [item.data.id, item.data.views[0]]); |
| 128 mockDelegate.testClickingCalls( | |
| 129 item.$$('#inspect-views paper-button:nth-of-type(0n + 2)'), | |
| 130 'inspectItemView', [item.data.id, item.data.views[1]]); | |
| 131 | 128 |
| 132 var listener = new extension_test_util.ListenerMock(); | 129 var listener1 = new extension_test_util.ListenerMock(); |
| 133 listener.addListener(item, 'extension-item-show-details', | 130 listener1.addListener(item, 'extension-item-show-details', |
| 134 {data: item.data}); | 131 {data: item.data}); |
| 135 MockInteractions.tap(item.$$('#details-button')); | 132 MockInteractions.tap(item.$$('#details-button')); |
| 136 listener.verify(); | 133 listener1.verify(); |
| 134 | |
| 135 var listener2 = new extension_test_util.ListenerMock(); | |
| 136 listener2.addListener(item, 'extension-item-show-details', | |
| 137 {data: item.data}); | |
| 138 MockInteractions.tap( | |
| 139 item.$$('#inspect-views paper-button:nth-of-type(0n + 2)')); | |
|
michaelpg
2017/02/27 01:29:50
(2)
Devlin
2017/02/27 19:28:09
D'oh! Really done this time.
| |
| 140 listener2.verify(); | |
| 137 | 141 |
| 138 item.set('data.disableReasons.corruptInstall', true); | 142 item.set('data.disableReasons.corruptInstall', true); |
| 139 Polymer.dom.flush(); | 143 Polymer.dom.flush(); |
| 140 mockDelegate.testClickingCalls( | 144 mockDelegate.testClickingCalls( |
| 141 item.$$('#repair-button'), 'repairItem', [item.data.id]); | 145 item.$$('#repair-button'), 'repairItem', [item.data.id]); |
| 146 | |
| 147 item.set('data.disableReasons.corruptInstall', false); | |
| 148 Polymer.dom.flush(); | |
| 149 mockDelegate.testClickingCalls( | |
| 150 item.$$('#reload-button'), 'reloadItem', [item.data.id]); | |
| 142 }); | 151 }); |
| 143 | 152 |
| 144 test(assert(TestNames.Warnings), function() { | 153 test(assert(TestNames.Warnings), function() { |
| 145 var hasCorruptedWarning = function() { | 154 var hasCorruptedWarning = function() { |
| 146 return extension_test_util.isVisible(item, '#corrupted-warning'); | 155 return extension_test_util.isVisible(item, '#corrupted-warning'); |
| 147 }; | 156 }; |
| 148 var hasSuspiciousWarning = function() { | 157 var hasSuspiciousWarning = function() { |
| 149 return extension_test_util.isVisible(item, '#suspicious-warning'); | 158 return extension_test_util.isVisible(item, '#suspicious-warning'); |
| 150 }; | 159 }; |
| 151 var hasBlacklistedWarning = function() { | 160 var hasBlacklistedWarning = function() { |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 216 expectFalse(extension_test_util.isVisible(item, '#source-indicator')); | 225 expectFalse(extension_test_util.isVisible(item, '#source-indicator')); |
| 217 }); | 226 }); |
| 218 }); | 227 }); |
| 219 } | 228 } |
| 220 | 229 |
| 221 return { | 230 return { |
| 222 registerTests: registerTests, | 231 registerTests: registerTests, |
| 223 TestNames: TestNames, | 232 TestNames: TestNames, |
| 224 }; | 233 }; |
| 225 }); | 234 }); |
| OLD | NEW |