Index: chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc |
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc |
index 6e6c0068eccbc9efc38a7c3929f85ad4a0eb33d6..069dd04ae4abae1bc18c78a35af68dadc6ff0419 100644 |
--- a/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc |
+++ b/chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_apitest_nss.cc |
@@ -9,10 +9,12 @@ |
#include "chrome/browser/chromeos/policy/device_policy_cros_browser_test.h" |
#include "chrome/browser/extensions/extension_apitest.h" |
#include "chrome/browser/extensions/extension_service.h" |
-#include "chrome/browser/net/nss_context.h" |
+#include "chrome/browser/net/cert_database_service_factory.h" |
#include "chrome/browser/net/url_request_mock_util.h" |
#include "chromeos/chromeos_switches.h" |
#include "chromeos/login/user_names.h" |
+#include "chromeos/tpm_token_loader.h" |
+#include "components/cert_database/public/cert_database_service.h" |
#include "components/policy/core/browser/browser_policy_connector.h" |
#include "components/policy/core/common/mock_configuration_policy_provider.h" |
#include "components/policy/core/common/policy_map.h" |
@@ -136,7 +138,7 @@ const char kTestExtensionID[] = "aecpbnckhoppanpmefllkdkohionpmig"; |
class EnterprisePlatformKeysTest : public ExtensionApiTest { |
public: |
- EnterprisePlatformKeysTest() : nss_db_(NULL) {} |
+ EnterprisePlatformKeysTest() {} |
virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |
ExtensionApiTest::SetUpCommandLine(command_line); |
@@ -177,45 +179,20 @@ class EnterprisePlatformKeysTest : public ExtensionApiTest { |
{ |
base::RunLoop loop; |
- GetNSSCertDatabaseForProfile( |
- browser()->profile(), |
- base::Bind(&EnterprisePlatformKeysTest::DidGetCertDatabase, |
- base::Unretained(this), |
- loop.QuitClosure())); |
+ CertDatabaseServiceFactory::GetForBrowserContext(browser()->profile()) |
+ ->GetNSSCertDatabase( |
+ base::Bind(&EnterprisePlatformKeysTest::DidGetCertDatabase, |
+ base::Unretained(this), |
+ loop.QuitClosure())); |
loop.Run(); |
} |
SetPolicy(); |
} |
- void SetUpTestSystemSlot() { |
- base::RunLoop loop; |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&EnterprisePlatformKeysTest::SetUpTestSystemSlotOnIO, |
- base::Unretained(this), |
- browser()->profile()->GetResourceContext(), |
- loop.QuitClosure())); |
- loop.Run(); |
- } |
- |
- void TearDownTestSystemSlot() { |
- base::RunLoop loop; |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(&EnterprisePlatformKeysTest::TearDownTestSystemSlotOnIO, |
- base::Unretained(this), |
- loop.QuitClosure())); |
- loop.Run(); |
- } |
- |
private: |
void DidGetCertDatabase(const base::Closure& done_callback, |
net::NSSCertDatabase* cert_db) { |
- nss_db_ = cert_db; |
- |
// In order to use a prepared certificate, import a private key to the |
// user's token for which the Javscript test will import the certificate. |
ImportPrivateKeyPKCS8ToSlot(privateKeyPkcs8User, |
@@ -224,28 +201,6 @@ class EnterprisePlatformKeysTest : public ExtensionApiTest { |
done_callback.Run(); |
} |
- void SetUpTestSystemSlotOnIO(content::ResourceContext* context, |
- const base::Closure& done_callback) { |
- test_system_slot_.reset(new crypto::ScopedTestSystemNSSKeySlot()); |
- ASSERT_TRUE(test_system_slot_->ConstructedSuccessfully()); |
- |
- // Import a private key to the system slot. The Javascript part of this |
- // test has a prepared certificate for this key. |
- ImportPrivateKeyPKCS8ToSlot(privateKeyPkcs8System, |
- arraysize(privateKeyPkcs8System), |
- test_system_slot_->slot()); |
- |
- content::BrowserThread::PostTask( |
- content::BrowserThread::UI, FROM_HERE, done_callback); |
- } |
- |
- void TearDownTestSystemSlotOnIO(const base::Closure& done_callback) { |
- test_system_slot_.reset(); |
- |
- content::BrowserThread::PostTask( |
- content::BrowserThread::UI, FROM_HERE, done_callback); |
- } |
- |
void SetPolicy() { |
// Extensions that are force-installed come from an update URL, which |
// defaults to the webstore. Use a mock URL for this test with an update |
@@ -274,23 +229,72 @@ class EnterprisePlatformKeysTest : public ExtensionApiTest { |
observer.Wait(); |
} |
- net::NSSCertDatabase* nss_db_; |
policy::DevicePolicyCrosTestHelper device_policy_test_helper_; |
- scoped_ptr<crypto::ScopedTestSystemNSSKeySlot> test_system_slot_; |
policy::MockConfigurationPolicyProvider policy_provider_; |
}; |
-} // namespace |
+class EnterprisePlatformKeysTestWithSystemToken |
+ : public EnterprisePlatformKeysTest { |
+ public: |
+ EnterprisePlatformKeysTestWithSystemToken() { |
+ chromeos::TPMTokenLoader::InitializeForTest(); |
+ } |
-IN_PROC_BROWSER_TEST_F(EnterprisePlatformKeysTest, SystemTokenEnabled) { |
- SetUpTestSystemSlot(); |
- ASSERT_TRUE(RunExtensionSubtest( |
- "", |
- base::StringPrintf("chrome-extension://%s/basic.html?systemTokenEnabled", |
- kTestExtensionID))) |
- << message_; |
- TearDownTestSystemSlot(); |
-} |
+ virtual void SetUpOnMainThread() OVERRIDE { |
+ base::RunLoop loop; |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind( |
+ &EnterprisePlatformKeysTestWithSystemToken::SetUpTestSystemSlotOnIO, |
+ base::Unretained(this), |
+ browser()->profile()->GetResourceContext(), |
+ loop.QuitClosure())); |
+ loop.Run(); |
+ |
+ EnterprisePlatformKeysTest::SetUpOnMainThread(); |
+ } |
+ |
+ virtual void TearDownOnMainThread() OVERRIDE { |
+ EnterprisePlatformKeysTest::TearDownOnMainThread(); |
+ base::RunLoop loop; |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&EnterprisePlatformKeysTestWithSystemToken:: |
+ TearDownTestSystemSlotOnIO, |
+ base::Unretained(this), |
+ loop.QuitClosure())); |
+ loop.Run(); |
+ } |
+ |
+ private: |
+ void SetUpTestSystemSlotOnIO(content::ResourceContext* context, |
+ const base::Closure& done_callback) { |
+ test_system_slot_.reset(new crypto::ScopedTestSystemNSSKeySlot()); |
+ ASSERT_TRUE(test_system_slot_->ConstructedSuccessfully()); |
+ |
+ // Import a private key to the system slot. The Javascript part of this |
+ // test has a prepared certificate for this key. |
+ ImportPrivateKeyPKCS8ToSlot(privateKeyPkcs8System, |
+ arraysize(privateKeyPkcs8System), |
+ test_system_slot_->slot()); |
+ |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::UI, FROM_HERE, done_callback); |
+ } |
+ |
+ void TearDownTestSystemSlotOnIO(const base::Closure& done_callback) { |
+ test_system_slot_.reset(); |
+ |
+ content::BrowserThread::PostTask( |
+ content::BrowserThread::UI, FROM_HERE, done_callback); |
+ } |
+ |
+ scoped_ptr<crypto::ScopedTestSystemNSSKeySlot> test_system_slot_; |
+}; |
+ |
+} // namespace |
IN_PROC_BROWSER_TEST_F(EnterprisePlatformKeysTest, SystemTokenDisabled) { |
ASSERT_TRUE(RunExtensionSubtest( |
@@ -321,3 +325,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, |
"location.", |
extension->install_warnings()[0].message); |
} |
+ |
+IN_PROC_BROWSER_TEST_F(EnterprisePlatformKeysTestWithSystemToken, |
+ SystemTokenEnabled) { |
+ ASSERT_TRUE(RunExtensionSubtest( |
+ "", |
+ base::StringPrintf("chrome-extension://%s/basic.html?systemTokenEnabled", |
+ kTestExtensionID))) |
+ << message_; |
+} |