Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(727)

Side by Side Diff: chrome/test/data/webui/settings/quick_unlock_authenticate_browsertest_chromeos.js

Issue 2823713002: md settings: Change action link to button on lock screen. (Closed)
Patch Set: Use offset width Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 cr.define('settings_people_page_quick_unlock', function() { 5 cr.define('settings_people_page_quick_unlock', function() {
6 var element = null; 6 var element = null;
7 var quickUnlockPrivateApi = null; 7 var quickUnlockPrivateApi = null;
8 var QuickUnlockMode = chrome.quickUnlockPrivate.QuickUnlockMode; 8 var QuickUnlockMode = chrome.quickUnlockPrivate.QuickUnlockMode;
9 var fakeUma = null; 9 var fakeUma = null;
10 10
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 139 }
140 140
141 function registerLockScreenTests() { 141 function registerLockScreenTests() {
142 suite('lock-screen', function() { 142 suite('lock-screen', function() {
143 /** @const */ var ENABLE_LOCK_SCREEN_PREF = 'settings.enable_screen_lock'; 143 /** @const */ var ENABLE_LOCK_SCREEN_PREF = 'settings.enable_screen_lock';
144 144
145 var fakeSettings = null; 145 var fakeSettings = null;
146 var passwordRadioButton = null; 146 var passwordRadioButton = null;
147 var pinPasswordRadioButton = null; 147 var pinPasswordRadioButton = null;
148 var noneRadioButton = null; 148 var noneRadioButton = null;
149 var configureButton = null;
150 149
151 /** 150 /**
152 * Asserts that only the given radio button is active and all of the 151 * Asserts that only the given radio button is active and all of the
153 * others are inactive. 152 * others are inactive.
154 * @param {Element} radioButton 153 * @param {Element} radioButton
155 */ 154 */
156 function assertRadioButtonActive(radioButton) { 155 function assertRadioButtonActive(radioButton) {
157 function doAssert(element, name) { 156 function doAssert(element, name) {
158 if (radioButton == element) 157 if (radioButton == element)
159 assertTrue(element.active, 'Expected ' + name + ' to be active'); 158 assertTrue(element.active, 'Expected ' + name + ' to be active');
(...skipping 20 matching lines...) Expand all
180 179
181 /** 180 /**
182 * Changes the lock screen pref value using the settings API; this is like 181 * Changes the lock screen pref value using the settings API; this is like
183 * the pref got changed from an unkown source such as another tab. 182 * the pref got changed from an unkown source such as another tab.
184 * @param {boolean} value 183 * @param {boolean} value
185 */ 184 */
186 function setLockScreenPref(value) { 185 function setLockScreenPref(value) {
187 fakeSettings.setPref(ENABLE_LOCK_SCREEN_PREF, value, '', assertTrue); 186 fakeSettings.setPref(ENABLE_LOCK_SCREEN_PREF, value, '', assertTrue);
188 } 187 }
189 188
189 function isSetupPinButtonVisible() {
190 Polymer.dom.flush();
191 var setupPinButton = element.$$('#setupPinButton');
192 return isVisible(setupPinButton);
193 }
194
190 setup(function(done) { 195 setup(function(done) {
191 PolymerTest.clearBody(); 196 PolymerTest.clearBody();
192 197
193 CrSettingsPrefs.deferInitialization = true; 198 CrSettingsPrefs.deferInitialization = true;
194 199
195 // Build pref fakes. 200 // Build pref fakes.
196 var fakePrefs = [{ 201 var fakePrefs = [{
197 key: ENABLE_LOCK_SCREEN_PREF, 202 key: ENABLE_LOCK_SCREEN_PREF,
198 type: chrome.settingsPrivate.PrefType.BOOLEAN, 203 type: chrome.settingsPrivate.PrefType.BOOLEAN,
199 value: true 204 value: true
(...skipping 22 matching lines...) Expand all
222 document.body.appendChild(element); 227 document.body.appendChild(element);
223 Polymer.dom.flush(); 228 Polymer.dom.flush();
224 229
225 element.setModes_ = 230 element.setModes_ =
226 quickUnlockPrivateApi.setModes.bind(quickUnlockPrivateApi, ''); 231 quickUnlockPrivateApi.setModes.bind(quickUnlockPrivateApi, '');
227 232
228 passwordRadioButton = 233 passwordRadioButton =
229 getFromElement('paper-radio-button[name="password"]'); 234 getFromElement('paper-radio-button[name="password"]');
230 pinPasswordRadioButton = 235 pinPasswordRadioButton =
231 getFromElement('paper-radio-button[name="pin+password"]'); 236 getFromElement('paper-radio-button[name="pin+password"]');
232 configureButton = getFromElement('a[is="action-link"]');
233 237
234 done(); 238 done();
235 }); 239 });
236 }); 240 });
237 241
238 // Showing the choose method screen does not make any destructive pref or 242 // Showing the choose method screen does not make any destructive pref or
239 // quickUnlockPrivate calls. 243 // quickUnlockPrivate calls.
240 test('ShowingScreenDoesNotModifyPrefs', function() { 244 test('ShowingScreenDoesNotModifyPrefs', function() {
241 assertTrue(getLockScreenPref()); 245 assertTrue(getLockScreenPref());
242 assertRadioButtonActive(passwordRadioButton); 246 assertRadioButtonActive(passwordRadioButton);
243 assertDeepEquals([], quickUnlockPrivateApi.activeModes); 247 assertDeepEquals([], quickUnlockPrivateApi.activeModes);
244 }); 248 });
245 249
246 // The various radio buttons update internal state and do not modify 250 // The various radio buttons update internal state and do not modify
247 // prefs. 251 // prefs.
248 test('TappingButtonsChangesUnderlyingState', function() { 252 test('TappingButtonsChangesUnderlyingState', function() {
249 function togglePin() { 253 function togglePin() {
250 assertRadioButtonActive(passwordRadioButton); 254 assertRadioButtonActive(passwordRadioButton);
251 255
252 // Tap pin+password button. 256 // Tap pin+password button.
253 MockInteractions.tap(pinPasswordRadioButton); 257 MockInteractions.tap(pinPasswordRadioButton);
254 assertRadioButtonActive(pinPasswordRadioButton); 258 assertRadioButtonActive(pinPasswordRadioButton);
255 assertTrue(isVisible(configureButton)); 259 assertTrue(isSetupPinButtonVisible());
256 assertDeepEquals([], quickUnlockPrivateApi.activeModes); 260 assertDeepEquals([], quickUnlockPrivateApi.activeModes);
257 261
258 // Enable quick unlock so that we verify tapping password disables it. 262 // Enable quick unlock so that we verify tapping password disables it.
259 setActiveModes([QuickUnlockMode.PIN]); 263 setActiveModes([QuickUnlockMode.PIN]);
260 264
261 // Tap password button and verify quick unlock is disabled. 265 // Tap password button and verify quick unlock is disabled.
262 MockInteractions.tap(passwordRadioButton); 266 MockInteractions.tap(passwordRadioButton);
263 assertRadioButtonActive(passwordRadioButton); 267 assertRadioButtonActive(passwordRadioButton);
264 assertFalse(isVisible(configureButton)); 268 assertFalse(isSetupPinButtonVisible());
265 assertDeepEquals([], quickUnlockPrivateApi.activeModes); 269 assertDeepEquals([], quickUnlockPrivateApi.activeModes);
266 } 270 }
267 271
268 // Verify toggling PIN on/off does not disable screen lock. 272 // Verify toggling PIN on/off does not disable screen lock.
269 setLockScreenPref(true); 273 setLockScreenPref(true);
270 togglePin(); 274 togglePin();
271 assertTrue(getLockScreenPref()); 275 assertTrue(getLockScreenPref());
272 276
273 // Verify toggling PIN on/off does not enable screen lock. 277 // Verify toggling PIN on/off does not enable screen lock.
274 setLockScreenPref(false); 278 setLockScreenPref(false);
275 togglePin(); 279 togglePin();
276 assertFalse(getLockScreenPref()); 280 assertFalse(getLockScreenPref());
277 }); 281 });
278 282
279 // If quick unlock is changed by another settings page the radio button 283 // If quick unlock is changed by another settings page the radio button
280 // will update to show quick unlock is active. 284 // will update to show quick unlock is active.
281 test('EnablingQuickUnlockChangesButtonState', function() { 285 test('EnablingQuickUnlockChangesButtonState', function() {
282 setActiveModes([QuickUnlockMode.PIN]); 286 setActiveModes([QuickUnlockMode.PIN]);
283 assertRadioButtonActive(pinPasswordRadioButton); 287 assertRadioButtonActive(pinPasswordRadioButton);
284 assertTrue(isVisible(configureButton)); 288 assertTrue(isSetupPinButtonVisible());
285 289
286 setActiveModes([]); 290 setActiveModes([]);
287 assertRadioButtonActive(passwordRadioButton); 291 assertRadioButtonActive(passwordRadioButton);
288 assertDeepEquals([], quickUnlockPrivateApi.activeModes); 292 assertDeepEquals([], quickUnlockPrivateApi.activeModes);
289 }); 293 });
290 294
291 // Tapping the PIN configure button opens up the setup PIN dialog, and 295 // Tapping the PIN configure button opens up the setup PIN dialog, and
292 // records a chose pin or password uma. 296 // records a chose pin or password uma.
293 test('TappingConfigureOpensSetupPin', function() { 297 test('TappingConfigureOpensSetupPin', function() {
294 assertEquals(0, fakeUma.getHistogramValue( 298 assertEquals(0, fakeUma.getHistogramValue(
295 LockScreenProgress.CHOOSE_PIN_OR_PASSWORD)); 299 LockScreenProgress.CHOOSE_PIN_OR_PASSWORD));
296 assertRadioButtonActive(passwordRadioButton); 300 assertRadioButtonActive(passwordRadioButton);
297 301
298 MockInteractions.tap(pinPasswordRadioButton); 302 MockInteractions.tap(pinPasswordRadioButton);
299 assertTrue(isVisible(configureButton)); 303 assertTrue(isSetupPinButtonVisible());
300 assertRadioButtonActive(pinPasswordRadioButton) 304 assertRadioButtonActive(pinPasswordRadioButton)
301 305
302 MockInteractions.tap(configureButton); 306 Polymer.dom.flush();
307 MockInteractions.tap(getFromElement('#setupPinButton'));
303 var setupPinDialog = getFromElement('#setupPin'); 308 var setupPinDialog = getFromElement('#setupPin');
304 assertTrue(setupPinDialog.$.dialog.open); 309 assertTrue(setupPinDialog.$.dialog.open);
305 assertEquals(1, fakeUma.getHistogramValue( 310 assertEquals(1, fakeUma.getHistogramValue(
306 LockScreenProgress.CHOOSE_PIN_OR_PASSWORD)); 311 LockScreenProgress.CHOOSE_PIN_OR_PASSWORD));
307 }); 312 });
308 }); 313 });
309 } 314 }
310 315
311 function registerSetupPinDialogTests() { 316 function registerSetupPinDialogTests() {
312 suite('setup-pin-dialog', function() { 317 suite('setup-pin-dialog', function() {
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 }); 490 });
486 }); 491 });
487 } 492 }
488 493
489 return { 494 return {
490 registerAuthenticateTests: registerAuthenticateTests, 495 registerAuthenticateTests: registerAuthenticateTests,
491 registerLockScreenTests: registerLockScreenTests, 496 registerLockScreenTests: registerLockScreenTests,
492 registerSetupPinDialogTests: registerSetupPinDialogTests 497 registerSetupPinDialogTests: registerSetupPinDialogTests
493 }; 498 };
494 }); 499 });
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc ('k') | third_party/polymer/v1_0/chromium.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698