Index: chrome/browser/ui/webui/options/certificate_manager_browsertest.js |
diff --git a/chrome/browser/ui/webui/options/certificate_manager_browsertest.js b/chrome/browser/ui/webui/options/certificate_manager_browsertest.js |
deleted file mode 100644 |
index 0db91295ec92d822248e052975513f19b64042a0..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/webui/options/certificate_manager_browsertest.js |
+++ /dev/null |
@@ -1,405 +0,0 @@ |
-// Copyright (c) 2012 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. |
- |
-// Mac and Windows go to native certificate manager, and certificate manager |
-// isn't implemented if OpenSSL is used. |
-GEN('#if defined(USE_NSS_CERTS)'); |
- |
-GEN_INCLUDE(['options_browsertest_base.js']); |
- |
-/** |
- * URL of the Certificates dialog in the Settings page. |
- * @const |
- */ |
-var CERTIFICATE_MANAGER_SETTINGS_PAGE_URL = |
- 'chrome://settings-frame/certificates'; |
- |
-// Standalone certificate manager dialog page is implemented only in Chrome OS. |
-GEN('#if defined(OS_CHROMEOS)'); |
- |
-/** |
- * URL of the standalone certificate manager dialog page. |
- * @const |
- */ |
-var CERTIFICATE_MANAGER_STANDALONE_PAGE_URL = 'chrome://certificate-manager/'; |
- |
-GEN('#endif // defined(OS_CHROMEOS)'); |
- |
-/** |
- * TestFixture for certificate manager WebUI testing. |
- * @extends {testing.Test} |
- * @constructor |
- */ |
-function CertificateManagerWebUIBaseTest() {} |
- |
-CertificateManagerWebUIBaseTest.prototype = { |
- __proto__: OptionsBrowsertestBase.prototype, |
- |
- /** @override */ |
- preLoad: function() { |
- // We can't check cr.isChromeOS in the preLoad since "cr" doesn't exist yet. |
- // This is copied from ui/webui/resources/js/cr.js, maybe |
- // there's a better way to do this. |
- this.isChromeOS = /CrOS/.test(navigator.userAgent); |
- |
- this.makeAndRegisterMockHandler( |
- [ |
- 'editCaCertificateTrust', |
- 'exportPersonalCertificate', |
- 'importPersonalCertificate', |
- 'importCaCertificate', |
- 'exportCertificate', |
- 'deleteCertificate', |
- 'populateCertificateManager', |
- 'viewCertificate', |
- ]); |
- }, |
- |
- /** @override */ |
- setUp: function() { |
- OptionsBrowsertestBase.prototype.setUp.call(this); |
- |
- var ariaRoleNotScopedSelectors = [ |
- '#tree-item-autogen-id-0', |
- '#tree-item-autogen-id-1', |
- '#tree-item-autogen-id-2', |
- '#tree-item-autogen-id-3', |
- '#tree-item-autogen-id-4', |
- ]; |
- |
- // Enable when failure is resolved. |
- // AX_ARIA_09: http://crbug.com/570567 |
- this.accessibilityAuditConfig.ignoreSelectors( |
- 'ariaRoleNotScoped', |
- ariaRoleNotScopedSelectors); |
- |
- // Enable when failure is resolved. |
- // AX_ARIA_10: http://crbug.com/570566 |
- this.accessibilityAuditConfig.ignoreSelectors( |
- 'unsupportedAriaAttribute', |
- '#caCertsTab-tree'); |
- |
- var focusableElementNotVisibleAndNotAriaHiddenSelectors = [ |
- '#personalCertsTab-tree', |
- '#personalCertsTab-import', |
- '#personalCertsTab-import-and-bind', |
- '#certificate-confirm', |
- ]; |
- |
- // Enable when failure is resolved. |
- // AX_FOCUS_01: http://crbug.com/570568 |
- this.accessibilityAuditConfig.ignoreSelectors( |
- 'focusableElementNotVisibleAndNotAriaHidden', |
- focusableElementNotVisibleAndNotAriaHiddenSelectors); |
- }, |
-}; |
- |
-/** |
- * TestFixture for certificate manager WebUI testing. |
- * @extends {CertificateManagerWebUIBaseTest} |
- * @constructor |
- */ |
-function CertificateManagerWebUIUnpopulatedTest() {} |
- |
-CertificateManagerWebUIUnpopulatedTest.prototype = { |
- __proto__: CertificateManagerWebUIBaseTest.prototype, |
- |
- /** |
- * Browse to the certificate manager dialog in the Settings page. |
- */ |
- browsePreload: CERTIFICATE_MANAGER_SETTINGS_PAGE_URL, |
- |
- /** @override */ |
- preLoad: function() { |
- CertificateManagerWebUIBaseTest.prototype.preLoad.call(this); |
- |
- // We expect the populateCertificateManager callback, but do not reply to |
- // it. This simulates what will be displayed if retrieving the cert list |
- // from NSS is slow. |
- this.mockHandler.expects(once()).populateCertificateManager(); |
- }, |
-}; |
- |
-// Test opening the certificate manager has correct location and buttons have |
-// correct initial states when onPopulateTree has not been called. |
-TEST_F('CertificateManagerWebUIUnpopulatedTest', |
- 'testUnpopulatedCertificateManager', function() { |
- assertEquals(this.browsePreload, document.location.href); |
- |
- // All buttons should be disabled to start. |
- expectTrue($('personalCertsTab-view').disabled); |
- expectTrue($('personalCertsTab-backup').disabled); |
- expectTrue($('personalCertsTab-delete').disabled); |
- expectTrue($('personalCertsTab-import').disabled); |
- if (this.isChromeOS) |
- expectTrue($('personalCertsTab-import-and-bind').disabled); |
- |
- expectTrue($('serverCertsTab-view').disabled); |
- expectTrue($('serverCertsTab-export').disabled); |
- expectTrue($('serverCertsTab-delete').disabled); |
- expectTrue($('serverCertsTab-import').disabled); |
- |
- expectTrue($('caCertsTab-view').disabled); |
- expectTrue($('caCertsTab-edit').disabled); |
- expectTrue($('caCertsTab-export').disabled); |
- expectTrue($('caCertsTab-delete').disabled); |
- expectTrue($('caCertsTab-import').disabled); |
- |
- expectTrue($('otherCertsTab-view').disabled); |
- expectTrue($('otherCertsTab-export').disabled); |
- expectTrue($('otherCertsTab-delete').disabled); |
- |
- Mock4JS.verifyAllMocks(); |
- |
- // If user database is not available, import buttons should be disabled. |
- CertificateManager.onModelReady(false /* userDbAvailable*/, |
- false /* tpmAvailable */); |
- |
- expectTrue($('personalCertsTab-import').disabled); |
- expectTrue($('serverCertsTab-import').disabled); |
- expectTrue($('caCertsTab-import').disabled); |
- |
- // Once we get the onModelReady call, the import buttons should be enabled, |
- // others should still be disabled. |
- CertificateManager.onModelReady(true /* userDbAvailable*/, |
- false /* tpmAvailable */); |
- |
- expectTrue($('personalCertsTab-view').disabled); |
- expectTrue($('personalCertsTab-backup').disabled); |
- expectTrue($('personalCertsTab-delete').disabled); |
- expectFalse($('personalCertsTab-import').disabled); |
- |
- expectTrue($('serverCertsTab-view').disabled); |
- expectTrue($('serverCertsTab-export').disabled); |
- expectTrue($('serverCertsTab-delete').disabled); |
- expectFalse($('serverCertsTab-import').disabled); |
- |
- expectTrue($('caCertsTab-view').disabled); |
- expectTrue($('caCertsTab-edit').disabled); |
- expectTrue($('caCertsTab-export').disabled); |
- expectTrue($('caCertsTab-delete').disabled); |
- expectFalse($('caCertsTab-import').disabled); |
- |
- expectTrue($('otherCertsTab-view').disabled); |
- expectTrue($('otherCertsTab-export').disabled); |
- expectTrue($('otherCertsTab-delete').disabled); |
- |
- // On ChromeOS, the import and bind button should only be enabled if TPM is |
- // present. |
- if (this.isChromeOS) { |
- expectTrue($('personalCertsTab-import-and-bind').disabled); |
- CertificateManager.onModelReady(true /* userDbAvailable*/, |
- true /* tpmAvailable */); |
- expectFalse($('personalCertsTab-import-and-bind').disabled); |
- } |
-}); |
- |
-/** |
- * TestFixture for certificate manager WebUI testing. |
- * @extends {CertificateManagerWebUIBaseTest} |
- * @constructor |
- */ |
-function CertificateManagerWebUITest() {} |
- |
-CertificateManagerWebUITest.prototype = { |
- __proto__: CertificateManagerWebUIBaseTest.prototype, |
- |
- /** @override */ |
- preLoad: function() { |
- CertificateManagerWebUIBaseTest.prototype.preLoad.call(this); |
- |
- var tpmAvailable = this.isChromeOS; |
- var userDbAvailable = true; |
- this.mockHandler.expects(once()).populateCertificateManager().will( |
- callFunction(function() { |
- CertificateManager.onModelReady(userDbAvailable, tpmAvailable); |
- |
- [['personalCertsTab-tree', |
- [{'id': 'o1', |
- 'name': 'org1', |
- 'subnodes': [{ 'id': 'c1', |
- 'name': 'cert1', |
- 'readonly': false, |
- 'untrusted': false, |
- 'extractable': true }], |
- }], |
- ], |
- ['caCertsTab-tree', |
- [{'id': 'o2', |
- 'name': 'org2', |
- 'subnodes': [{ 'id': 'ca_cert0', |
- 'name': 'ca_cert0', |
- 'readonly': false, |
- 'untrusted': false, |
- 'extractable': true, |
- 'policy': false }, |
- { 'id': 'ca_cert1', |
- 'name': 'ca_cert1', |
- 'readonly': false, |
- 'untrusted': false, |
- 'extractable': true, |
- 'policy': true }, |
- { 'id': 'ca_cert2', |
- 'name': 'ca_cert2', |
- 'readonly': false, |
- 'untrusted': false, |
- 'extractable': true, |
- 'policy': false }], |
- }], |
- ] |
- ].forEach(CertificateManager.onPopulateTree);})); |
- }, |
-}; |
- |
-/** |
- * TestFixture for testing certificate manager WebUI in the Settings page. |
- * @extends {CertificateManagerWebUITest} |
- * @constructor |
- */ |
-function CertificateManagerSettingsWebUITest() {} |
- |
-CertificateManagerSettingsWebUITest.prototype = { |
- __proto__: CertificateManagerWebUITest.prototype, |
- |
- /** |
- * Browse to the certificate manager dialog in the Settings page. |
- */ |
- browsePreload: CERTIFICATE_MANAGER_SETTINGS_PAGE_URL, |
-}; |
- |
-TEST_F('CertificateManagerSettingsWebUITest', |
- 'testViewAndDeleteCert', function() { |
- assertEquals(this.browsePreload, document.location.href); |
- |
- this.mockHandler.expects(once()).viewCertificate(['c1']); |
- |
- expectTrue($('personalCertsTab-view').disabled); |
- expectTrue($('personalCertsTab-backup').disabled); |
- expectTrue($('personalCertsTab-delete').disabled); |
- expectFalse($('personalCertsTab-import').disabled); |
- if (this.isChromeOS) |
- expectFalse($('personalCertsTab-import-and-bind').disabled); |
- |
- var personalCerts = $('personalCertsTab'); |
- |
- // Click on the first folder. |
- personalCerts.querySelector('div.tree-item').click(); |
- // Buttons should still be in same state. |
- expectTrue($('personalCertsTab-view').disabled); |
- expectTrue($('personalCertsTab-backup').disabled); |
- expectTrue($('personalCertsTab-delete').disabled); |
- expectFalse($('personalCertsTab-import').disabled); |
- if (this.isChromeOS) |
- expectFalse($('personalCertsTab-import-and-bind').disabled); |
- |
- // Click on the first cert. |
- personalCerts.querySelector('div.tree-item div.tree-item').click(); |
- // Buttons should now allow you to act on the cert. |
- expectFalse($('personalCertsTab-view').disabled); |
- expectFalse($('personalCertsTab-backup').disabled); |
- expectFalse($('personalCertsTab-delete').disabled); |
- expectFalse($('personalCertsTab-import').disabled); |
- if (this.isChromeOS) |
- expectFalse($('personalCertsTab-import-and-bind').disabled); |
- |
- // Click on the view button. |
- $('personalCertsTab-view').click(); |
- |
- Mock4JS.verifyAllMocks(); |
- |
- this.mockHandler.expects(once()).deleteCertificate(['c1']).will(callFunction( |
- function() { |
- CertificateManager.onPopulateTree(['personalCertsTab-tree', []]); |
- })); |
- |
- // Click on the delete button. |
- $('personalCertsTab-delete').click(); |
- |
- // Click on the cancel button to verify the confirmation overlay closes. |
- $('alertOverlayCancel').click(); |
- expectTrue($('alertOverlay').parentNode.classList.contains('transparent')); |
- |
- // Click on the delete button. |
- $('personalCertsTab-delete').click(); |
- |
- // Click on the ok button in the confirmation overlay. |
- $('alertOverlayOk').click(); |
- expectTrue($('alertOverlay').parentNode.classList.contains('transparent')); |
- |
- // Context sensitive buttons should be disabled. |
- expectTrue($('personalCertsTab-view').disabled); |
- expectTrue($('personalCertsTab-backup').disabled); |
- expectTrue($('personalCertsTab-delete').disabled); |
- expectFalse($('personalCertsTab-import').disabled); |
- if (this.isChromeOS) |
- expectFalse($('personalCertsTab-import-and-bind').disabled); |
- // Tree should be empty. |
- expectTrue(personalCerts.querySelector('div.tree-item') === null); |
-}); |
- |
-// Ensure certificate objects with the 'policy' property set have |
-// the cert-policy CSS class appended. |
-TEST_F('CertificateManagerSettingsWebUITest', |
- 'testPolicyInstalledCertificate', function() { |
- // Click on the first folder and get the certificates. |
- var caCertsTab = $('caCertsTab'); |
- caCertsTab.querySelector('div.tree-item').click(); |
- var certs = caCertsTab.querySelectorAll('div.tree-item div.tree-item'); |
- |
- // First cert shouldn't show the controlled setting badge, and the |
- // edit and delete buttons should be enabled. |
- var cert0 = certs[0]; |
- expectEquals('ca_cert0', cert0.data.name); |
- expectEquals(null, cert0.querySelector('.cert-policy')); |
- cert0.click(); |
- expectFalse($('caCertsTab-edit').disabled); |
- expectFalse($('caCertsTab-delete').disabled); |
- |
- // But the second should show the controlled setting badge, and the |
- // edit and delete buttons should be disabled. |
- var cert1 = certs[1]; |
- expectEquals('ca_cert1', cert1.data.name); |
- expectNotEquals(null, cert1.querySelector('.cert-policy')); |
- cert1.click(); |
- expectTrue($('caCertsTab-edit').disabled); |
- expectTrue($('caCertsTab-delete').disabled); |
-}); |
- |
-// Standalone certificate manager dialog page is implemented only in Chrome OS. |
-GEN('#if defined(OS_CHROMEOS)'); |
- |
-/** |
- * TestFixture for testing standalone certificate manager WebUI. |
- * @extends {CertificateManagerWebUITest} |
- * @constructor |
- */ |
-function CertificateManagerStandaloneWebUITest() {} |
- |
-CertificateManagerStandaloneWebUITest.prototype = { |
- __proto__: CertificateManagerWebUITest.prototype, |
- |
- /** |
- * Browse to the certificate manager page. |
- */ |
- browsePreload: CERTIFICATE_MANAGER_STANDALONE_PAGE_URL, |
-}; |
- |
-// Ensure that the standalone certificate manager page loads and displays the |
-// ceertificates correctly. |
-TEST_F('CertificateManagerStandaloneWebUITest', 'testCertsDisplaying', |
- function() { |
- assertEquals(this.browsePreload, document.location.href); |
- |
- // Click on the first folder and get the certificates. |
- var caCertsTab = $('caCertsTab'); |
- caCertsTab.querySelector('div.tree-item').click(); |
- var certs = caCertsTab.querySelectorAll('div.tree-item div.tree-item'); |
- |
- // There should be exactly three certificates displayed. |
- expectEquals(certs.length, 3); |
-}); |
- |
-GEN('#endif // defined(OS_CHROMEOS)'); |
- |
-GEN('#endif // defined(USE_NSS_CERTS)'); |