Index: chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc |
diff --git a/chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc b/chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc |
index 4867a5ef0919001ffa75a2c00688b5cf2fdd7c29..e52f893740f2ed6ee94ea1bed8aee9f5ef1a6388 100644 |
--- a/chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc |
+++ b/chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc |
@@ -20,9 +20,12 @@ |
#include "chrome/browser/ui/browser.h" |
#include "chrome/common/pref_names.h" |
#include "chrome/test/base/browser_with_test_window_test.h" |
+#include "chrome/test/base/testing_browser_process.h" |
+#include "chrome/test/base/testing_profile_manager.h" |
#include "chromeos/attestation/attestation_constants.h" |
#include "chromeos/attestation/mock_attestation_flow.h" |
#include "chromeos/cryptohome/async_method_caller.h" |
+#include "chromeos/cryptohome/cryptohome_parameters.h" |
#include "chromeos/cryptohome/mock_async_method_caller.h" |
#include "chromeos/dbus/dbus_method_call_status.h" |
#include "chromeos/dbus/mock_cryptohome_client.h" |
@@ -74,7 +77,7 @@ class FakeBoolDBusMethod { |
void RegisterKeyCallbackTrue( |
chromeos::attestation::AttestationKeyType key_type, |
- const std::string& user_id, |
+ const cryptohome::Identification& user_id, |
const std::string& key_name, |
const cryptohome::AsyncMethodCaller::Callback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
@@ -84,7 +87,7 @@ void RegisterKeyCallbackTrue( |
void RegisterKeyCallbackFalse( |
chromeos::attestation::AttestationKeyType key_type, |
- const std::string& user_id, |
+ const cryptohome::Identification& user_id, |
const std::string& key_name, |
const cryptohome::AsyncMethodCaller::Callback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
@@ -94,7 +97,7 @@ void RegisterKeyCallbackFalse( |
void SignChallengeCallbackTrue( |
chromeos::attestation::AttestationKeyType key_type, |
- const std::string& user_id, |
+ const cryptohome::Identification& user_id, |
const std::string& key_name, |
const std::string& domain, |
const std::string& device_id, |
@@ -108,7 +111,7 @@ void SignChallengeCallbackTrue( |
void SignChallengeCallbackFalse( |
chromeos::attestation::AttestationKeyType key_type, |
- const std::string& user_id, |
+ const cryptohome::Identification& user_id, |
const std::string& key_name, |
const std::string& domain, |
const std::string& device_id, |
@@ -122,7 +125,7 @@ void SignChallengeCallbackFalse( |
void GetCertificateCallbackTrue( |
chromeos::attestation::AttestationCertificateProfile certificate_profile, |
- const std::string& user_id, |
+ const AccountId& account_id, |
const std::string& request_origin, |
bool force_new_key, |
const chromeos::attestation::AttestationFlow::CertificateCallback& |
@@ -134,7 +137,7 @@ void GetCertificateCallbackTrue( |
void GetCertificateCallbackFalse( |
chromeos::attestation::AttestationCertificateProfile certificate_profile, |
- const std::string& user_id, |
+ const AccountId& account_id, |
const std::string& request_origin, |
bool force_new_key, |
const chromeos::attestation::AttestationFlow::CertificateCallback& |
@@ -147,9 +150,11 @@ void GetCertificateCallbackFalse( |
class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
protected: |
EPKPChallengeKeyTestBase() |
- : settings_helper_(false), extension_(test_util::CreateEmptyExtension()), |
+ : settings_helper_(false), |
+ extension_(test_util::CreateEmptyExtension()), |
+ profile_manager_(TestingBrowserProcess::GetGlobal()), |
fake_user_manager_(new chromeos::FakeChromeUserManager), |
- user_manager_enabler_(fake_user_manager_){ |
+ user_manager_enabler_(fake_user_manager_) { |
// Set up the default behavior of mocks. |
ON_CALL(mock_cryptohome_client_, TpmAttestationDoesKeyExist(_, _, _, _)) |
.WillByDefault(WithArgs<3>(Invoke(FakeBoolDBusMethod( |
@@ -176,6 +181,8 @@ class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
} |
void SetUp() override { |
+ ASSERT_TRUE(profile_manager_.SetUp()); |
+ |
BrowserWithTestWindowTest::SetUp(); |
// Set the user preferences. |
@@ -185,8 +192,19 @@ class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
prefs_->Set(prefs::kAttestationExtensionWhitelist, whitelist); |
SetAuthenticatedUser(); |
+ } |
+ |
+ // This will be called by BrowserWithTestWindowTest::SetUp(); |
+ TestingProfile* CreateProfile() override { |
fake_user_manager_->AddUserWithAffiliation( |
AccountId::FromUserEmail(kUserEmail), true); |
+ return profile_manager_.CreateTestingProfile(kUserEmail); |
+ } |
+ |
+ void DestroyProfile(TestingProfile* profile) override { |
+ profile_manager_.DeleteTestingProfile(profile->GetProfileUserName()); |
+ // Profile itself will be destroyed later in |
+ // ProfileManager::ProfileInfo::~ProfileInfo() . |
} |
// Derived classes can override this method to set the required authenticated |
@@ -202,9 +220,11 @@ class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
chromeos::ScopedCrosSettingsTestHelper settings_helper_; |
scoped_refptr<extensions::Extension> extension_; |
policy::StubEnterpriseInstallAttributes stub_install_attributes_; |
- PrefService* prefs_; |
+ TestingProfileManager profile_manager_; |
+ // fake_user_manager_ is owned by user_manager_enabler_. |
chromeos::FakeChromeUserManager* fake_user_manager_; |
chromeos::ScopedUserManagerEnabler user_manager_enabler_; |
+ PrefService* prefs_ = nullptr; |
}; |
class EPKPChallengeMachineKeyTest : public EPKPChallengeKeyTestBase { |
@@ -308,10 +328,11 @@ TEST_F(EPKPChallengeMachineKeyTest, Success) { |
_, _, _, _)) |
.Times(1); |
// SignEnterpriseChallenge must be called exactly once. |
- EXPECT_CALL(mock_async_method_caller_, |
- TpmAttestationSignEnterpriseChallenge( |
- chromeos::attestation::KEY_DEVICE, "", "attest-ent-machine", |
- "google.com", "device_id", _, "challenge", _)) |
+ EXPECT_CALL( |
+ mock_async_method_caller_, |
+ TpmAttestationSignEnterpriseChallenge( |
+ chromeos::attestation::KEY_DEVICE, cryptohome::Identification(), |
+ "attest-ent-machine", "google.com", "device_id", _, "challenge", _)) |
.Times(1); |
scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( |
@@ -470,17 +491,19 @@ TEST_F(EPKPChallengeUserKeyTest, Success) { |
chromeos::attestation::PROFILE_ENTERPRISE_USER_CERTIFICATE, |
_, _, _, _)) |
.Times(1); |
+ const AccountId account_id = AccountId::FromUserEmail(kUserEmail); |
// SignEnterpriseChallenge must be called exactly once. |
EXPECT_CALL(mock_async_method_caller_, |
TpmAttestationSignEnterpriseChallenge( |
- chromeos::attestation::KEY_USER, kUserEmail, |
- "attest-ent-user", kUserEmail, "device_id", _, |
+ chromeos::attestation::KEY_USER, |
+ cryptohome::Identification(account_id), "attest-ent-user", |
+ cryptohome::Identification(account_id).id(), "device_id", _, |
"challenge", _)) |
.Times(1); |
// RegisterKey must be called exactly once. |
EXPECT_CALL(mock_async_method_caller_, |
TpmAttestationRegisterKey(chromeos::attestation::KEY_USER, |
- kUserEmail, |
+ cryptohome::Identification(account_id), |
"attest-ent-user", _)) |
.Times(1); |
@@ -514,9 +537,20 @@ class EPKPChallengeMachineKeyUnmanagedUserTest |
: public EPKPChallengeMachineKeyTest { |
protected: |
void SetAuthenticatedUser() override { |
- SigninManagerFactory::GetForProfile(browser()->profile())-> |
- SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
+ SigninManagerFactory::GetForProfile(browser()->profile()) |
+ ->SetAuthenticatedAccountInfo(account_id_.GetGaiaId(), |
+ account_id_.GetUserEmail()); |
} |
+ |
+ TestingProfile* CreateProfile() override { |
+ fake_user_manager_->AddUser(account_id_); |
+ TestingProfile* profile = |
+ profile_manager_.CreateTestingProfile(account_id_.GetUserEmail()); |
+ return profile; |
+ } |
+ |
+ const AccountId account_id_ = |
+ AccountId::FromUserEmailGaiaId("test@chromium.com", "12345"); |
}; |
TEST_F(EPKPChallengeMachineKeyUnmanagedUserTest, UserNotManaged) { |
@@ -527,9 +561,20 @@ TEST_F(EPKPChallengeMachineKeyUnmanagedUserTest, UserNotManaged) { |
class EPKPChallengeUserKeyUnmanagedUserTest : public EPKPChallengeUserKeyTest { |
protected: |
void SetAuthenticatedUser() override { |
- SigninManagerFactory::GetForProfile(browser()->profile())-> |
- SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
+ SigninManagerFactory::GetForProfile(browser()->profile()) |
+ ->SetAuthenticatedAccountInfo(account_id_.GetGaiaId(), |
+ account_id_.GetUserEmail()); |
} |
+ |
+ TestingProfile* CreateProfile() override { |
+ fake_user_manager_->AddUser(account_id_); |
+ TestingProfile* profile = |
+ profile_manager_.CreateTestingProfile(account_id_.GetUserEmail()); |
+ return profile; |
+ } |
+ |
+ const AccountId account_id_ = |
+ AccountId::FromUserEmailGaiaId("test@chromium.com", "12345"); |
}; |
TEST_F(EPKPChallengeUserKeyUnmanagedUserTest, UserNotManaged) { |