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(0n + 2)', |
30 text: 'bar.html'}, | 30 text: '1 moreā¦'}, |
michaelpg
2017/02/23 04:22:08
why the fancy ellipsis?
Devlin
2017/02/23 19:09:21
That's apparently how we format the string in the
michaelpg
2017/02/27 01:29:50
Cool, TIL.
| |
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/23 04:22:08
you don't need the 0n +
https://drafts.csswg.org/s
Devlin
2017/02/23 19:09:21
Done.
michaelpg
2017/02/27 01:29:50
well, you did the one above instead ;-)
| |
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 |