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 var ROOT_PATH = '../../../../'; | 5 var ROOT_PATH = '../../../../../'; |
6 | 6 |
7 GEN_INCLUDE( | 7 GEN_INCLUDE( |
8 [ROOT_PATH + 'chrome/test/data/webui/polymer_browser_test_base.js']); | 8 [ROOT_PATH + 'chrome/test/data/webui/polymer_browser_test_base.js']); |
9 | 9 |
10 /** | 10 /** |
11 * Test fixture for DestinationSearch of Print Preview. | 11 * Test fixture for DestinationSearch of Print Preview. |
12 * @constructor | 12 * @constructor |
13 * @extends {PolymerTest} | 13 * @extends {PolymerTest} |
14 */ | 14 */ |
15 function PrintPreviewDestinationSearchTest() {} | 15 function PrintPreviewDestinationSearchTest() {} |
16 | 16 |
17 PrintPreviewDestinationSearchTest.prototype = { | 17 PrintPreviewDestinationSearchTest.prototype = { |
18 __proto__: PolymerTest.prototype, | 18 __proto__: PolymerTest.prototype, |
19 | 19 |
20 /** @override */ | 20 /** @override */ |
21 browsePreload: 'chrome://print', | 21 browsePreload: 'chrome://print', |
22 | 22 |
23 /** @override */ | 23 /** @override */ |
24 runAccessibilityChecks: false, | 24 runAccessibilityChecks: false, |
25 | 25 |
26 /** @override */ | 26 /** @override */ |
27 extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ | 27 extraLibraries: PolymerTest.getLibraries(ROOT_PATH).concat([ |
28 ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js', | 28 ROOT_PATH + 'chrome/test/data/webui/settings/test_browser_proxy.js', |
| 29 'native_layer_stub.js', |
29 ]), | 30 ]), |
30 | 31 |
31 }; | 32 }; |
32 | 33 |
33 TEST_F('PrintPreviewDestinationSearchTest', 'Select', function() { | 34 TEST_F('PrintPreviewDestinationSearchTest', 'Select', function() { |
34 var self = this; | 35 var self = this; |
35 | 36 |
36 suite('DestinationSearchTest', function() { | 37 suite('DestinationSearchTest', function() { |
37 var root_; | 38 var root_; |
38 | 39 |
39 var destinationSearch_; | 40 var destinationSearch_; |
40 var nativeLayer_; | 41 var nativeLayer_; |
41 var invitationStore_; | 42 var invitationStore_; |
42 var destinationStore_; | 43 var destinationStore_; |
43 var userInfo_; | 44 var userInfo_; |
44 | 45 |
45 /** | |
46 * Test version of the native layer. | |
47 * TODO (rbpotter): Merge this with NativeLayerStub() from print_preview.js | |
48 * and put into a separate file. | |
49 * @constructor | |
50 * @extends {settings.TestBrowserProxy} | |
51 */ | |
52 function NativeLayerStub() { | |
53 settings.TestBrowserProxy.call(this, [ 'setupPrinter' ]); | |
54 this.destinationToWatch_ = ''; | |
55 this.eventTarget_ = mock(cr.EventTarget); | |
56 this.getLocalDestinationCapabilitiesCallCount_ = 0; | |
57 this.setupPrinterResponse_ = null; | |
58 this.shouldReject_ = false; | |
59 } | |
60 | |
61 NativeLayerStub.prototype = { | |
62 __proto__: settings.TestBrowserProxy.prototype, | |
63 didGetCapabilitiesOnce: function(destinationId) { | |
64 return (destinationId == this.destinationToWatch_ && | |
65 this.getLocalDestinationCapabilitiesCallCount_ == 1); | |
66 }, | |
67 getEventTarget: function() { return this.eventTarget_; }, | |
68 setDestinationToWatch: function(destinationId) { | |
69 this.destinationToWatch_ = destinationId; | |
70 this.getLocalDestinationCapabilitiesCallCount_ = 0; | |
71 }, | |
72 setSetupPrinterResponse: function(reject, response) { | |
73 this.shouldReject_ = reject; | |
74 this.setupPrinterResponse_ = response; | |
75 }, | |
76 setupPrinter: function(printerId) { | |
77 this.methodCalled('setupPrinter', printerId); | |
78 return this.shouldReject_ ? | |
79 Promise.reject(this.setupPrinterResponse_) : | |
80 Promise.resolve(this.setupPrinterResponse_); | |
81 }, | |
82 startGetLocalDestinationCapabilities: function(destinationId) { | |
83 if (destinationId == this.destinationToWatch_) | |
84 this.getLocalDestinationCapabilitiesCallCount_++; | |
85 }, | |
86 }; | |
87 NativeLayerStub.EventType = print_preview.NativeLayer.EventType; | |
88 | |
89 function getCaps() { | 46 function getCaps() { |
90 return { | 47 return { |
91 'printer': { | 48 'printer': { |
92 'color': { | 49 'color': { |
93 'option': [{ | 50 'option': [{ |
94 'is_default': true, | 51 'is_default': true, |
95 'type': 'STANDARD_MONOCHROME', | 52 'type': 'STANDARD_MONOCHROME', |
96 'vendor_id': '13' | 53 'vendor_id': '13' |
97 }] | 54 }] |
98 }, | 55 }, |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 // Select destination. | 143 // Select destination. |
187 if (cr.isChromeOS) { | 144 if (cr.isChromeOS) { |
188 destinationSearch.handleConfigureDestination_(dest); | 145 destinationSearch.handleConfigureDestination_(dest); |
189 } else { | 146 } else { |
190 destinationSearch.handleOnDestinationSelect_(dest); | 147 destinationSearch.handleOnDestinationSelect_(dest); |
191 } | 148 } |
192 }; | 149 }; |
193 | 150 |
194 setup(function() { | 151 setup(function() { |
195 Mock4JS.clearMocksToVerify(); | 152 Mock4JS.clearMocksToVerify(); |
196 nativeLayer_ = new NativeLayerStub(); | 153 nativeLayer_ = new print_preview.NativeLayerStub(); |
197 var nativeLayerEventTarget = nativeLayer_.getEventTarget(); | 154 var nativeLayerEventTarget = mock(cr.EventTarget); |
| 155 nativeLayer_.setEventTarget(nativeLayerEventTarget.proxy()); |
198 nativeLayerEventTarget.expects(atLeastOnce()) | 156 nativeLayerEventTarget.expects(atLeastOnce()) |
199 .addEventListener(ANYTHING, ANYTHING, ANYTHING); | 157 .addEventListener(ANYTHING, ANYTHING, ANYTHING); |
200 | 158 |
201 invitationStore_ = new print_preview.InvitationStore(); | 159 invitationStore_ = new print_preview.InvitationStore(); |
202 var nativeLayerProxy = nativeLayer_; | |
203 nativeLayerProxy.eventTarget_ = nativeLayerEventTarget.proxy(); | |
204 destinationStore_ = new print_preview.DestinationStore( | 160 destinationStore_ = new print_preview.DestinationStore( |
205 nativeLayerProxy, new print_preview.UserInfo(), | 161 nativeLayer_, new print_preview.UserInfo(), |
206 new print_preview.AppState()); | 162 new print_preview.AppState()); |
207 userInfo_ = new print_preview.UserInfo(); | 163 userInfo_ = new print_preview.UserInfo(); |
208 | 164 |
209 destinationSearch_ = new print_preview.DestinationSearch( | 165 destinationSearch_ = new print_preview.DestinationSearch( |
210 destinationStore_, invitationStore_, userInfo_); | 166 destinationStore_, invitationStore_, userInfo_); |
211 destinationSearch_.decorate($('destination-search')); | 167 destinationSearch_.decorate($('destination-search')); |
212 }); | 168 }); |
213 | 169 |
214 teardown(function() { | 170 teardown(function() { |
215 Mock4JS.verifyAllMocks(); | 171 Mock4JS.verifyAllMocks(); |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 // Simulate a click. | 262 // Simulate a click. |
307 dest.onActivate_(); | 263 dest.onActivate_(); |
308 | 264 |
309 // Verify that the destination has been selected. | 265 // Verify that the destination has been selected. |
310 assertEquals(printerId, destinationStore_.selectedDestination.id); | 266 assertEquals(printerId, destinationStore_.selectedDestination.id); |
311 }); | 267 }); |
312 }); | 268 }); |
313 | 269 |
314 mocha.run(); | 270 mocha.run(); |
315 }); | 271 }); |
OLD | NEW |