| Index: chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| diff --git a/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js b/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8d0d4944bc1fc988f4cfd1b09c82a312668013e0
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/api_test/certificate_provider/request_pin/basic.js
|
| @@ -0,0 +1,62 @@
|
| +// 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.
|
| +
|
| +// The script requests pin and checks the input. If correct PIN (1234) is
|
| +// provided, the script requests to close the dialog and stops there. If wrong
|
| +// PIN is provided, the request is repeated until the limit of 3 bad tries is
|
| +// reached. If the dialog is closed, the request is repeated without considering
|
| +// it a wrong attempt. This allows the testing of quota limit of closed dialogs
|
| +// (3 closed dialogs per 10 minutes).
|
| +function userInputCallback(codeValue) {
|
| + if (chrome.runtime.lastError) {
|
| + // Should end up here only when quota is exceeded.
|
| + lastError = chrome.runtime.lastError.message;
|
| + return;
|
| + }
|
| +
|
| + if (attempts >= 3) {
|
| + chrome.test.sendMessage('No attempt left');
|
| + return;
|
| + }
|
| +
|
| + if (!codeValue || !codeValue.userInput) {
|
| + chrome.certificateProvider.requestPin(
|
| + {signRequestId: 123}, userInputCallback);
|
| + chrome.test.sendMessage('User closed the dialog', function(message) {
|
| + if (message == 'GetLastError') {
|
| + chrome.test.sendMessage(lastError);
|
| + }
|
| + });
|
| + return;
|
| + }
|
| +
|
| + var success = codeValue.userInput == '1234'; // Validate the code.
|
| + if (success) {
|
| + chrome.certificateProvider.stopPinRequest(
|
| + {signRequestId: 123}, closeCallback);
|
| + chrome.test.sendMessage(lastError == '' ? 'Success' : lastError);
|
| + } else {
|
| + attempts++;
|
| + var code = attempts < 3 ? {signRequestId: 123, errorType: 'INVALID_PIN'} : {
|
| + signRequestId: 123,
|
| + requestType: 'PUK',
|
| + errorType: 'MAX_ATTEMPTS_EXCEEDED',
|
| + attemptsLeft: 0
|
| + };
|
| + chrome.certificateProvider.requestPin(code, userInputCallback);
|
| + chrome.test.sendMessage(lastError == '' ? 'Invalid PIN' : lastError);
|
| + }
|
| +}
|
| +
|
| +function closeCallback() {
|
| + if (chrome.runtime.lastError != null) {
|
| + console.error('Error: ' + chrome.runtime.lastError.message);
|
| + lastError = chrome.runtime.lastError.message;
|
| + return;
|
| + }
|
| +}
|
| +
|
| +var attempts = 0;
|
| +var lastError = '';
|
| +chrome.certificateProvider.requestPin({signRequestId: 123}, userInputCallback);
|
|
|