| Index: chrome/test/data/extensions/api_test/quick_unlock_private/apiTests/background.js
|
| diff --git a/chrome/test/data/extensions/api_test/quick_unlock_private/apiTests/background.js b/chrome/test/data/extensions/api_test/quick_unlock_private/apiTests/background.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..caac07052c96502ff6eec663fd6944ad62a9b051
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/quick_unlock_private/apiTests/background.js
|
| @@ -0,0 +1,118 @@
|
| +// Copyright 2016 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +var QuickUnlockMode = chrome.quickUnlockPrivate.QuickUnlockMode;
|
| +
|
| +function checkPassword(password, callback) {
|
| + chrome.quickUnlockPrivate.getActiveModes(onGetActiveModes);
|
| +
|
| + function onGetActiveModes(modes) {
|
| + var passwords = Array(modes.length).fill('');
|
| + chrome.quickUnlockPrivate.setModes(password, modes, passwords, callback);
|
| + }
|
| +}
|
| +
|
| +// Verifies that the valid password is accepted. This uses a fake authentication
|
| +// backend.
|
| +function checkValidPasswordTest() {
|
| + checkPassword('valid', onCheckPassword);
|
| +
|
| + function onCheckPassword(result) {
|
| + chrome.test.assertTrue(result);
|
| + chrome.test.succeed();
|
| + };
|
| +}
|
| +
|
| +// Verifies that the invalid password is rejected. This uses a fake
|
| +// authentication backend.
|
| +function checkInvalidPasswordTest() {
|
| + checkPassword('invalid', onCheckPassword);
|
| +
|
| + function onCheckPassword(result) {
|
| + chrome.test.assertFalse(result);
|
| + chrome.test.succeed();
|
| + };
|
| +}
|
| +
|
| +// Verifies that chrome.quickUnlockPrivate.getAvailableModes returns only PIN.
|
| +function checkAvailableModes() {
|
| + chrome.quickUnlockPrivate.getAvailableModes(onGetAvailableModes);
|
| +
|
| + function onGetAvailableModes(modes) {
|
| + chrome.test.checkDeepEq(modes, [QuickUnlockMode.PIN]);
|
| + chrome.test.succeed();
|
| + }
|
| +}
|
| +
|
| +// Verifies that we cannot change modes with an invalid password.
|
| +function checkSetModesFailsWithInvalidPassword() {
|
| + function onActiveModesChanged(newModes) {
|
| + chrome.test.fail('Mode change callback should not be called');
|
| + }
|
| +
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.addListener(
|
| + onActiveModesChanged);
|
| +
|
| + chrome.quickUnlockPrivate.setModes(
|
| + 'invalid', [QuickUnlockMode.PIN], ['111'], onModeSet);
|
| +
|
| + function onModeSet(success) {
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.removeListener(
|
| + onActiveModesChanged);
|
| +
|
| + chrome.test.assertFalse(success);
|
| + chrome.test.succeed();
|
| + }
|
| +}
|
| +
|
| +// Verifies that we can set the quick unlock mode to PIN, we can fetch that mode
|
| +// using getActiveModes, and that we can clear the pin with setModes.
|
| +function checkSetAndGetModes() {
|
| + chrome.quickUnlockPrivate.setModes(
|
| + 'valid', [QuickUnlockMode.PIN], ['111'], onModeSet);
|
| +
|
| + function onModeSet(result) {
|
| + chrome.test.assertTrue(result);
|
| + chrome.quickUnlockPrivate.getActiveModes(onGetActiveModesExpectPin);
|
| + }
|
| +
|
| + function onGetActiveModesExpectPin(modes) {
|
| + chrome.test.checkDeepEq(modes, [QuickUnlockMode.PIN]);
|
| + chrome.quickUnlockPrivate.setModes('valid', [], [], onModeClear);
|
| + }
|
| +
|
| + function onModeClear(result) {
|
| + chrome.test.assertTrue(result);
|
| + chrome.quickUnlockPrivate.getActiveModes(onGetActiveModesExpectNone);
|
| + }
|
| +
|
| + function onGetActiveModesExpectNone(modes) {
|
| + chrome.test.checkDeepEq(modes, []);
|
| + chrome.test.succeed();
|
| + }
|
| +}
|
| +
|
| +// Verifies that the onActiveModesChange event gets called.
|
| +function checkActiveModesChangedEvent() {
|
| + chrome.quickUnlockPrivate.setModes('valid', [], [], chrome.test.assertTrue);
|
| +
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.addListener(
|
| + onActiveModesChanged);
|
| + function onActiveModesChanged(newModes) {
|
| + chrome.quickUnlockPrivate.onActiveModesChanged.removeListener(
|
| + onActiveModesChanged);
|
| +
|
| + chrome.test.checkDeepEq(newModes, [QuickUnlockMode.PIN]);
|
| + chrome.test.succeed();
|
| + }
|
| +
|
| + chrome.quickUnlockPrivate.setModes(
|
| + 'valid', [QuickUnlockMode.PIN], ['111'], chrome.test.assertTrue);
|
| +}
|
| +
|
| +chrome.test.sendMessage('ready');
|
| +chrome.test.runTests(
|
| + [checkValidPasswordTest, checkInvalidPasswordTest, checkAvailableModes,
|
| + checkSetModesFailsWithInvalidPassword, checkSetAndGetModes,
|
| + checkActiveModesChangedEvent]);
|
|
|