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 cr.define('settings_people_page_change_picture', function() { | 5 cr.define('settings_people_page_change_picture', function() { |
6 /** | 6 /** |
7 * @constructor | 7 * @constructor |
8 * @implements {settings.ChangePictureBrowserProxy} | 8 * @implements {settings.ChangePictureBrowserProxy} |
9 * @extends {settings.TestBrowserProxy} | 9 * @extends {settings.TestBrowserProxy} |
10 */ | 10 */ |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 }, | 78 }, |
79 }; | 79 }; |
80 | 80 |
81 function registerChangePictureTests() { | 81 function registerChangePictureTests() { |
82 suite('ChangePictureTests', function() { | 82 suite('ChangePictureTests', function() { |
83 var changePicture = null; | 83 var changePicture = null; |
84 var browserProxy = null; | 84 var browserProxy = null; |
85 var settingsCamera = null; | 85 var settingsCamera = null; |
86 var discardControlBar = null; | 86 var discardControlBar = null; |
87 | 87 |
88 function getSelectedItem() { | |
89 return changePicture.$$('#selector .iron-selected'); | |
90 } | |
91 | |
92 suiteSetup(function() { | 88 suiteSetup(function() { |
93 loadTimeData.overrideValues({ | 89 loadTimeData.overrideValues({ |
94 profilePhoto: 'Fake Profile Photo description', | 90 profilePhoto: 'Fake Profile Photo description', |
95 }); | 91 }); |
96 }); | 92 }); |
97 | 93 |
98 setup(function() { | 94 setup(function() { |
99 browserProxy = new TestChangePictureBrowserProxy(); | 95 browserProxy = new TestChangePictureBrowserProxy(); |
100 settings.ChangePictureBrowserProxyImpl.instance_ = browserProxy; | 96 settings.ChangePictureBrowserProxyImpl.instance_ = browserProxy; |
101 PolymerTest.clearBody(); | 97 PolymerTest.clearBody(); |
(...skipping 30 matching lines...) Expand all Loading... |
132 | 128 |
133 expectFalse(cameraIcon.hidden); | 129 expectFalse(cameraIcon.hidden); |
134 expectFalse(settingsCamera.cameraActive); | 130 expectFalse(settingsCamera.cameraActive); |
135 | 131 |
136 MockInteractions.tap(cameraIcon); | 132 MockInteractions.tap(cameraIcon); |
137 | 133 |
138 Polymer.dom.flush(); | 134 Polymer.dom.flush(); |
139 expectFalse(cameraIcon.hidden); | 135 expectFalse(cameraIcon.hidden); |
140 expectTrue(settingsCamera.cameraActive); | 136 expectTrue(settingsCamera.cameraActive); |
141 expectEquals(ChangePictureSelectionTypes.CAMERA, | 137 expectEquals(ChangePictureSelectionTypes.CAMERA, |
142 getSelectedItem().dataset.type); | 138 changePicture.selectedItem_.dataset.type); |
143 expectTrue(discardControlBar.hidden); | 139 expectTrue(discardControlBar.hidden); |
144 | 140 |
145 // Ensure that the camera is deactivated if user navigates away. | 141 // Ensure that the camera is deactivated if user navigates away. |
146 changePicture.currentRouteChanged(settings.Route.BASIC); | 142 changePicture.currentRouteChanged(settings.Route.BASIC); |
147 expectFalse(settingsCamera.cameraActive); | 143 expectFalse(settingsCamera.cameraActive); |
148 }); | 144 }); |
149 | 145 |
150 test('ChangePictureProfileImage', function() { | 146 test('ChangePictureProfileImage', function() { |
151 var profileImage = changePicture.$.profileImage; | 147 var profileImage = changePicture.$.profileImage; |
152 assertTrue(!!profileImage); | 148 assertTrue(!!profileImage); |
153 | 149 |
154 expectEquals(null, getSelectedItem()); | 150 expectEquals(undefined, changePicture.selectedItem_); |
155 MockInteractions.tap(profileImage); | 151 MockInteractions.tap(profileImage); |
156 | 152 |
157 return browserProxy.whenCalled('selectProfileImage').then(function() { | 153 return browserProxy.whenCalled('selectProfileImage').then(function() { |
158 Polymer.dom.flush(); | 154 Polymer.dom.flush(); |
159 | 155 |
160 expectEquals(ChangePictureSelectionTypes.PROFILE, | 156 expectEquals(ChangePictureSelectionTypes.PROFILE, |
161 getSelectedItem().dataset.type); | 157 changePicture.selectedItem_.dataset.type); |
162 expectFalse(settingsCamera.cameraActive); | 158 expectFalse(settingsCamera.cameraActive); |
163 expectTrue(discardControlBar.hidden); | 159 expectTrue(discardControlBar.hidden); |
| 160 |
| 161 // Ensure that the selection is restored after navigating away and |
| 162 // then back to the subpage. |
| 163 changePicture.currentRouteChanged(settings.Route.BASIC); |
| 164 changePicture.currentRouteChanged(settings.Route.CHANGE_PICTURE); |
| 165 expectEquals(ChangePictureSelectionTypes.PROFILE, |
| 166 changePicture.selectedItem_.dataset.type); |
164 }); | 167 }); |
165 }); | 168 }); |
166 | 169 |
167 test('ChangePictureOldImage', function() { | 170 test('ChangePictureOldImage', function() { |
168 // By default there is no old image and the element is hidden. | 171 // By default there is no old image and the element is hidden. |
169 var oldImage = changePicture.$.oldImage; | 172 var oldImage = changePicture.$.oldImage; |
170 assertTrue(!!oldImage); | 173 assertTrue(!!oldImage); |
171 assertTrue(oldImage.hidden); | 174 assertTrue(oldImage.hidden); |
172 | 175 |
173 cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg'); | 176 cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg'); |
174 Polymer.dom.flush(); | 177 Polymer.dom.flush(); |
175 | 178 |
176 // Expect the old image to be selected once an old image is sent via | 179 // Expect the old image to be selected once an old image is sent via |
177 // the native interface. | 180 // the native interface. |
178 expectEquals(ChangePictureSelectionTypes.OLD, | 181 expectEquals(ChangePictureSelectionTypes.OLD, |
179 getSelectedItem().dataset.type); | 182 changePicture.selectedItem_.dataset.type); |
180 expectFalse(oldImage.hidden); | 183 expectFalse(oldImage.hidden); |
181 expectFalse(settingsCamera.cameraActive); | 184 expectFalse(settingsCamera.cameraActive); |
182 expectFalse(discardControlBar.hidden); | 185 expectFalse(discardControlBar.hidden); |
183 }); | 186 }); |
184 | 187 |
185 test('ChangePictureSelectFirstDefaultImage', function() { | 188 test('ChangePictureSelectFirstDefaultImage', function() { |
186 var firstDefaultImage = changePicture.$$('img[data-type="default"]'); | 189 var firstDefaultImage = changePicture.$$('img[data-type="default"]'); |
187 assertTrue(!!firstDefaultImage); | 190 assertTrue(!!firstDefaultImage); |
188 | 191 |
189 MockInteractions.tap(firstDefaultImage); | 192 MockInteractions.tap(firstDefaultImage); |
190 | 193 |
191 return browserProxy.whenCalled('selectDefaultImage').then( | 194 return browserProxy.whenCalled('selectDefaultImage').then( |
192 function(args) { | 195 function(args) { |
193 expectEquals('chrome://foo/1.png', args[0]); | 196 expectEquals('chrome://foo/1.png', args[0]); |
194 | 197 |
195 Polymer.dom.flush(); | 198 Polymer.dom.flush(); |
196 expectEquals(ChangePictureSelectionTypes.DEFAULT, | 199 expectEquals(ChangePictureSelectionTypes.DEFAULT, |
197 getSelectedItem().dataset.type); | 200 changePicture.selectedItem_.dataset.type); |
198 expectEquals(firstDefaultImage, getSelectedItem()); | 201 expectEquals(firstDefaultImage, changePicture.selectedItem_); |
199 expectFalse(settingsCamera.cameraActive); | 202 expectFalse(settingsCamera.cameraActive); |
200 expectTrue(discardControlBar.hidden); | 203 expectTrue(discardControlBar.hidden); |
201 }); | 204 }); |
202 }); | 205 }); |
203 | 206 |
204 test('ChangePictureRestoreImageAfterDiscard', function() { | 207 test('ChangePictureRestoreImageAfterDiscard', function() { |
205 var firstDefaultImage = changePicture.$$('img[data-type="default"]'); | 208 var firstDefaultImage = changePicture.$$('img[data-type="default"]'); |
206 assertTrue(!!firstDefaultImage); | 209 assertTrue(!!firstDefaultImage); |
207 var discardOldImage = changePicture.$.discardOldImage; | 210 var discardOldImage = changePicture.$.discardOldImage; |
208 assertTrue(!!discardOldImage); | 211 assertTrue(!!discardOldImage); |
209 | 212 |
210 MockInteractions.tap(firstDefaultImage); | 213 MockInteractions.tap(firstDefaultImage); |
211 | 214 |
212 return browserProxy.whenCalled('selectDefaultImage').then(function() { | 215 return browserProxy.whenCalled('selectDefaultImage').then(function() { |
213 Polymer.dom.flush(); | 216 Polymer.dom.flush(); |
214 expectEquals(firstDefaultImage, getSelectedItem()); | 217 expectEquals(firstDefaultImage, changePicture.selectedItem_); |
215 | 218 |
216 cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg'); | 219 cr.webUIListenerCallback('old-image-changed', 'fake-old-image.jpg'); |
217 | 220 |
218 Polymer.dom.flush(); | 221 Polymer.dom.flush(); |
219 expectEquals(ChangePictureSelectionTypes.OLD, | 222 expectEquals(ChangePictureSelectionTypes.OLD, |
220 getSelectedItem().dataset.type); | 223 changePicture.selectedItem_.dataset.type); |
221 | 224 |
222 MockInteractions.tap(discardOldImage); | 225 MockInteractions.tap(discardOldImage); |
223 | 226 |
224 Polymer.dom.flush(); | 227 Polymer.dom.flush(); |
225 expectEquals(firstDefaultImage, getSelectedItem()); | 228 expectEquals(firstDefaultImage, changePicture.selectedItem_); |
226 }); | 229 }); |
227 }); | 230 }); |
228 }); | 231 }); |
229 } | 232 } |
230 | 233 |
231 return { | 234 return { |
232 registerTests: function() { | 235 registerTests: function() { |
233 registerChangePictureTests(); | 236 registerChangePictureTests(); |
234 }, | 237 }, |
235 }; | 238 }; |
236 }); | 239 }); |
OLD | NEW |