Index: chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_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/enterprise_platform_keys_api_unittest.cc |
similarity index 55% |
copy from chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api_unittest.cc |
copy to chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api_unittest.cc |
index 5219c167014e0bb8737eb9a89303788bba690a09..f0694a06c989f73f6621f8b39088f02cc16ed066 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/enterprise_platform_keys_api_unittest.cc |
@@ -2,7 +2,7 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "chrome/browser/extensions/api/enterprise_platform_keys_private/enterprise_platform_keys_private_api.h" |
+#include "chrome/browser/extensions/api/enterprise_platform_keys/enterprise_platform_keys_api.h" |
#include <string> |
@@ -58,13 +58,11 @@ const char kUserEmail[] = "test@google.com"; |
class FakeBoolDBusMethod { |
public: |
FakeBoolDBusMethod(chromeos::DBusMethodCallStatus status, bool value) |
- : status_(status), |
- value_(value) {} |
+ : status_(status), value_(value) {} |
- void operator() (const chromeos::BoolDBusMethodCallback& callback) { |
+ void operator()(const chromeos::BoolDBusMethodCallback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, status_, value_)); |
+ FROM_HERE, base::Bind(callback, status_, value_)); |
} |
private: |
@@ -78,8 +76,7 @@ void RegisterKeyCallbackTrue( |
const std::string& key_name, |
const cryptohome::AsyncMethodCaller::Callback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, true, cryptohome::MOUNT_ERROR_NONE)); |
+ FROM_HERE, base::Bind(callback, true, cryptohome::MOUNT_ERROR_NONE)); |
} |
void RegisterKeyCallbackFalse( |
@@ -88,8 +85,7 @@ void RegisterKeyCallbackFalse( |
const std::string& key_name, |
const cryptohome::AsyncMethodCaller::Callback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, false, cryptohome::MOUNT_ERROR_NONE)); |
+ FROM_HERE, base::Bind(callback, false, cryptohome::MOUNT_ERROR_NONE)); |
} |
void SignChallengeCallbackTrue( |
@@ -102,8 +98,7 @@ void SignChallengeCallbackTrue( |
const std::string& challenge, |
const cryptohome::AsyncMethodCaller::DataCallback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, true, "response")); |
+ FROM_HERE, base::Bind(callback, true, "response")); |
} |
void SignChallengeCallbackFalse( |
@@ -116,8 +111,7 @@ void SignChallengeCallbackFalse( |
const std::string& challenge, |
const cryptohome::AsyncMethodCaller::DataCallback& callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, false, "")); |
+ FROM_HERE, base::Bind(callback, false, "")); |
} |
void GetCertificateCallbackTrue( |
@@ -128,8 +122,7 @@ void GetCertificateCallbackTrue( |
const chromeos::attestation::AttestationFlow::CertificateCallback& |
callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, true, "certificate")); |
+ FROM_HERE, base::Bind(callback, true, "certificate")); |
} |
void GetCertificateCallbackFalse( |
@@ -140,23 +133,23 @@ void GetCertificateCallbackFalse( |
const chromeos::attestation::AttestationFlow::CertificateCallback& |
callback) { |
base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback, false, "")); |
+ FROM_HERE, base::Bind(callback, false, "")); |
} |
-class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
+class EPKChallengeKeyTestBase : public BrowserWithTestWindowTest { |
protected: |
- EPKPChallengeKeyTestBase() |
- : settings_helper_(false), extension_(test_util::CreateEmptyExtension()), |
+ EPKChallengeKeyTestBase() |
+ : settings_helper_(false), |
+ extension_(test_util::CreateEmptyExtension()), |
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( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, false)))); |
+ .WillByDefault(WithArgs<3>(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, false)))); |
ON_CALL(mock_cryptohome_client_, TpmAttestationIsPrepared(_)) |
- .WillByDefault(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, true))); |
+ .WillByDefault(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, true))); |
ON_CALL(mock_async_method_caller_, TpmAttestationRegisterKey(_, _, _, _)) |
.WillByDefault(Invoke(RegisterKeyCallbackTrue)); |
ON_CALL(mock_async_method_caller_, |
@@ -192,8 +185,41 @@ class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
// Derived classes can override this method to set the required authenticated |
// user in the SigninManager class. |
virtual void SetAuthenticatedUser() { |
- SigninManagerFactory::GetForProfile(browser()->profile())-> |
- SetAuthenticatedAccountInfo("12345", kUserEmail); |
+ SigninManagerFactory::GetForProfile(browser()->profile()) |
+ ->SetAuthenticatedAccountInfo("12345", kUserEmail); |
+ } |
+ |
+ // Like extension_function_test_utils::RunFunctionAndReturnError but with an |
+ // explicit ListValue. |
+ std::string RunFunctionAndReturnError(UIThreadExtensionFunction* function, |
+ scoped_ptr<base::ListValue> args, |
+ Browser* browser) { |
+ scoped_refptr<ExtensionFunction> function_owner(function); |
+ // Without a callback the function will not generate a result. |
+ function->set_has_callback(true); |
+ utils::RunFunction(function, std::move(args), browser, utils::NONE); |
+ EXPECT_FALSE(function->GetResultList()) << "Did not expect a result"; |
+ return function->GetError(); |
+ } |
+ |
+ // Like extension_function_test_utils::RunFunctionAndReturnSingleResult but |
+ // with an explicit ListValue. |
+ base::Value* RunFunctionAndReturnSingleResult( |
+ UIThreadExtensionFunction* function, |
+ scoped_ptr<base::ListValue> args, |
+ Browser* browser) { |
+ scoped_refptr<ExtensionFunction> function_owner(function); |
+ // Without a callback the function will not generate a result. |
+ function->set_has_callback(true); |
+ utils::RunFunction(function, std::move(args), browser, utils::NONE); |
+ EXPECT_TRUE(function->GetError().empty()) << "Unexpected error: " |
+ << function->GetError(); |
+ const base::Value* single_result = NULL; |
+ if (function->GetResultList() != NULL && |
+ function->GetResultList()->Get(0, &single_result)) { |
+ return single_result->DeepCopy(); |
+ } |
+ return NULL; |
} |
NiceMock<chromeos::MockCryptohomeClient> mock_cryptohome_client_; |
@@ -207,97 +233,94 @@ class EPKPChallengeKeyTestBase : public BrowserWithTestWindowTest { |
chromeos::ScopedUserManagerEnabler user_manager_enabler_; |
}; |
-class EPKPChallengeMachineKeyTest : public EPKPChallengeKeyTestBase { |
+class EPKChallengeMachineKeyTest : public EPKChallengeKeyTestBase { |
protected: |
- static const char kArgs[]; |
- |
- EPKPChallengeMachineKeyTest() |
- : func_(new EPKPChallengeMachineKey(&mock_cryptohome_client_, |
- &mock_async_method_caller_, |
- &mock_attestation_flow_, |
- &stub_install_attributes_)) { |
+ EPKChallengeMachineKeyTest() |
+ : impl_(&mock_cryptohome_client_, |
+ &mock_async_method_caller_, |
+ &mock_attestation_flow_, |
+ &stub_install_attributes_), |
+ func_(new EnterprisePlatformKeysChallengeMachineKeyFunction(&impl_)) { |
func_->set_extension(extension_.get()); |
} |
// Returns an error string for the given code. |
std::string GetCertificateError(int error_code) { |
return base::StringPrintf( |
- EPKPChallengeMachineKey::kGetCertificateFailedError, |
- error_code); |
+ EPKPChallengeMachineKey::kGetCertificateFailedError, error_code); |
} |
- scoped_refptr<EPKPChallengeMachineKey> func_; |
-}; |
- |
-// Base 64 encoding of 'challenge'. |
-const char EPKPChallengeMachineKeyTest::kArgs[] = "[\"Y2hhbGxlbmdl\"]"; |
+ scoped_ptr<base::ListValue> CreateArgs() { |
+ scoped_ptr<base::ListValue> args(new base::ListValue); |
+ args->Append(base::BinaryValue::CreateWithCopiedBuffer("challenge", 9)); |
+ return args; |
+ } |
-TEST_F(EPKPChallengeMachineKeyTest, ChallengeBadBase64) { |
- EXPECT_EQ(EPKPChallengeKeyBase::kChallengeBadBase64Error, |
- utils::RunFunctionAndReturnError( |
- func_.get(), "[\"****\"]", browser())); |
-} |
+ EPKPChallengeMachineKey impl_; |
+ scoped_refptr<EnterprisePlatformKeysChallengeMachineKeyFunction> func_; |
+ base::ListValue args_; |
+}; |
-TEST_F(EPKPChallengeMachineKeyTest, NonEnterpriseDevice) { |
+TEST_F(EPKChallengeMachineKeyTest, NonEnterpriseDevice) { |
stub_install_attributes_.SetRegistrationUser(""); |
EXPECT_EQ(EPKPChallengeMachineKey::kNonEnterpriseDeviceError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, ExtensionNotWhitelisted) { |
+TEST_F(EPKChallengeMachineKeyTest, ExtensionNotWhitelisted) { |
base::ListValue empty_whitelist; |
prefs_->Set(prefs::kAttestationExtensionWhitelist, empty_whitelist); |
EXPECT_EQ(EPKPChallengeKeyBase::kExtensionNotWhitelistedError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, DevicePolicyDisabled) { |
+TEST_F(EPKChallengeMachineKeyTest, DevicePolicyDisabled) { |
settings_helper_.SetBoolean(chromeos::kDeviceAttestationEnabled, false); |
EXPECT_EQ(EPKPChallengeKeyBase::kDevicePolicyDisabledError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, DoesKeyExistDbusFailed) { |
+TEST_F(EPKChallengeMachineKeyTest, DoesKeyExistDbusFailed) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationDoesKeyExist(_, _, _, _)) |
- .WillRepeatedly(WithArgs<3>(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_FAILURE, false)))); |
+ .WillRepeatedly(WithArgs<3>(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_FAILURE, false)))); |
EXPECT_EQ(GetCertificateError(kDBusError), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, GetCertificateFailed) { |
+TEST_F(EPKChallengeMachineKeyTest, GetCertificateFailed) { |
EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)) |
.WillRepeatedly(Invoke(GetCertificateCallbackFalse)); |
EXPECT_EQ(GetCertificateError(kGetCertificateFailed), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, SignChallengeFailed) { |
+TEST_F(EPKChallengeMachineKeyTest, SignChallengeFailed) { |
EXPECT_CALL(mock_async_method_caller_, |
TpmAttestationSignEnterpriseChallenge(_, _, _, _, _, _, _, _)) |
.WillRepeatedly(Invoke(SignChallengeCallbackFalse)); |
EXPECT_EQ(EPKPChallengeKeyBase::kSignChallengeFailedError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, KeyExists) { |
+TEST_F(EPKChallengeMachineKeyTest, KeyExists) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationDoesKeyExist(_, _, _, _)) |
- .WillRepeatedly(WithArgs<3>(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, true)))); |
+ .WillRepeatedly(WithArgs<3>(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, true)))); |
// GetCertificate must not be called if the key exists. |
- EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)) |
- .Times(0); |
+ EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)).Times(0); |
- EXPECT_TRUE(utils::RunFunction(func_.get(), kArgs, browser(), utils::NONE)); |
+ EXPECT_TRUE( |
+ utils::RunFunction(func_.get(), CreateArgs(), browser(), utils::NONE)); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, Success) { |
+TEST_F(EPKChallengeMachineKeyTest, Success) { |
// GetCertificate must be called exactly once. |
EXPECT_CALL(mock_attestation_flow_, |
GetCertificate( |
@@ -311,46 +334,46 @@ TEST_F(EPKPChallengeMachineKeyTest, Success) { |
"google.com", "device_id", _, "challenge", _)) |
.Times(1); |
- scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( |
- func_.get(), kArgs, browser(), utils::NONE)); |
+ scoped_ptr<base::Value> value( |
+ RunFunctionAndReturnSingleResult(func_.get(), CreateArgs(), browser())); |
- std::string response; |
- value->GetAsString(&response); |
- EXPECT_EQ("cmVzcG9uc2U=" /* Base64 encoding of 'response' */, response); |
+ const base::BinaryValue* response; |
+ ASSERT_TRUE(value->GetAsBinary(&response)); |
+ EXPECT_EQ("response", |
+ std::string(response->GetBuffer(), response->GetSize())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, AttestationNotPrepared) { |
+TEST_F(EPKChallengeMachineKeyTest, AttestationNotPrepared) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationIsPrepared(_)) |
- .WillRepeatedly(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, false))); |
+ .WillRepeatedly(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, false))); |
EXPECT_EQ(GetCertificateError(kResetRequired), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeMachineKeyTest, AttestationPreparedDbusFailed) { |
+TEST_F(EPKChallengeMachineKeyTest, AttestationPreparedDbusFailed) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationIsPrepared(_)) |
- .WillRepeatedly(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_FAILURE, true))); |
+ .WillRepeatedly( |
+ Invoke(FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_FAILURE, true))); |
EXPECT_EQ(GetCertificateError(kDBusError), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-class EPKPChallengeUserKeyTest : public EPKPChallengeKeyTestBase { |
+class EPKChallengeUserKeyTest : public EPKChallengeKeyTestBase { |
protected: |
- static const char kArgs[]; |
- |
- EPKPChallengeUserKeyTest() : |
- func_(new EPKPChallengeUserKey(&mock_cryptohome_client_, |
- &mock_async_method_caller_, |
- &mock_attestation_flow_, |
- &stub_install_attributes_)) { |
+ EPKChallengeUserKeyTest() |
+ : impl_(&mock_cryptohome_client_, |
+ &mock_async_method_caller_, |
+ &mock_attestation_flow_, |
+ &stub_install_attributes_), |
+ func_(new EnterprisePlatformKeysChallengeUserKeyFunction(&impl_)) { |
func_->set_extension(extension_.get()); |
} |
void SetUp() override { |
- EPKPChallengeKeyTestBase::SetUp(); |
+ EPKChallengeKeyTestBase::SetUp(); |
// Set the user preferences. |
prefs_->SetBoolean(prefs::kAttestationEnabled, true); |
@@ -362,173 +385,178 @@ class EPKPChallengeUserKeyTest : public EPKPChallengeKeyTestBase { |
error_code); |
} |
- scoped_refptr<EPKPChallengeUserKey> func_; |
-}; |
+ scoped_ptr<base::ListValue> CreateArgs() { return CreateArgsInternal(true); } |
-// Base 64 encoding of 'challenge' |
-const char EPKPChallengeUserKeyTest::kArgs[] = "[\"Y2hhbGxlbmdl\", true]"; |
+ scoped_ptr<base::ListValue> CreateArgsNoRegister() { |
+ return CreateArgsInternal(false); |
+ } |
-TEST_F(EPKPChallengeUserKeyTest, ChallengeBadBase64) { |
- EXPECT_EQ(EPKPChallengeKeyBase::kChallengeBadBase64Error, |
- utils::RunFunctionAndReturnError( |
- func_.get(), "[\"****\", true]", browser())); |
-} |
+ scoped_ptr<base::ListValue> CreateArgsInternal(bool register_key) { |
+ scoped_ptr<base::ListValue> args(new base::ListValue); |
+ args->Append(base::BinaryValue::CreateWithCopiedBuffer("challenge", 9)); |
+ args->Append(new base::FundamentalValue(register_key)); |
+ return args; |
+ } |
-TEST_F(EPKPChallengeUserKeyTest, UserPolicyDisabled) { |
+ EPKPChallengeUserKey impl_; |
+ scoped_refptr<EnterprisePlatformKeysChallengeUserKeyFunction> func_; |
+}; |
+ |
+TEST_F(EPKChallengeUserKeyTest, UserPolicyDisabled) { |
prefs_->SetBoolean(prefs::kAttestationEnabled, false); |
EXPECT_EQ(EPKPChallengeUserKey::kUserPolicyDisabledError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, ExtensionNotWhitelisted) { |
+TEST_F(EPKChallengeUserKeyTest, ExtensionNotWhitelisted) { |
base::ListValue empty_whitelist; |
prefs_->Set(prefs::kAttestationExtensionWhitelist, empty_whitelist); |
EXPECT_EQ(EPKPChallengeKeyBase::kExtensionNotWhitelistedError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, DevicePolicyDisabled) { |
+TEST_F(EPKChallengeUserKeyTest, DevicePolicyDisabled) { |
settings_helper_.SetBoolean(chromeos::kDeviceAttestationEnabled, false); |
EXPECT_EQ(EPKPChallengeKeyBase::kDevicePolicyDisabledError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, DoesKeyExistDbusFailed) { |
+TEST_F(EPKChallengeUserKeyTest, DoesKeyExistDbusFailed) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationDoesKeyExist(_, _, _, _)) |
- .WillRepeatedly(WithArgs<3>(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_FAILURE, false)))); |
+ .WillRepeatedly(WithArgs<3>(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_FAILURE, false)))); |
EXPECT_EQ(GetCertificateError(kDBusError), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, GetCertificateFailed) { |
+TEST_F(EPKChallengeUserKeyTest, GetCertificateFailed) { |
EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)) |
.WillRepeatedly(Invoke(GetCertificateCallbackFalse)); |
EXPECT_EQ(GetCertificateError(kGetCertificateFailed), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, SignChallengeFailed) { |
+TEST_F(EPKChallengeUserKeyTest, SignChallengeFailed) { |
EXPECT_CALL(mock_async_method_caller_, |
TpmAttestationSignEnterpriseChallenge(_, _, _, _, _, _, _, _)) |
.WillRepeatedly(Invoke(SignChallengeCallbackFalse)); |
EXPECT_EQ(EPKPChallengeKeyBase::kSignChallengeFailedError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, KeyRegistrationFailed) { |
+TEST_F(EPKChallengeUserKeyTest, KeyRegistrationFailed) { |
EXPECT_CALL(mock_async_method_caller_, TpmAttestationRegisterKey(_, _, _, _)) |
.WillRepeatedly(Invoke(RegisterKeyCallbackFalse)); |
EXPECT_EQ(EPKPChallengeUserKey::kKeyRegistrationFailedError, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, KeyExists) { |
+TEST_F(EPKChallengeUserKeyTest, KeyExists) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationDoesKeyExist(_, _, _, _)) |
- .WillRepeatedly(WithArgs<3>(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, true)))); |
+ .WillRepeatedly(WithArgs<3>(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, true)))); |
// GetCertificate must not be called if the key exists. |
- EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)) |
- .Times(0); |
+ EXPECT_CALL(mock_attestation_flow_, GetCertificate(_, _, _, _, _)).Times(0); |
- EXPECT_TRUE(utils::RunFunction(func_.get(), kArgs, browser(), utils::NONE)); |
+ EXPECT_TRUE( |
+ utils::RunFunction(func_.get(), CreateArgs(), browser(), utils::NONE)); |
} |
-TEST_F(EPKPChallengeUserKeyTest, KeyNotRegistered) { |
+TEST_F(EPKChallengeUserKeyTest, KeyNotRegistered) { |
EXPECT_CALL(mock_async_method_caller_, TpmAttestationRegisterKey(_, _, _, _)) |
.Times(0); |
- EXPECT_TRUE(utils::RunFunction( |
- func_.get(), "[\"Y2hhbGxlbmdl\", false]", browser(), utils::NONE)); |
+ EXPECT_TRUE(utils::RunFunction(func_.get(), CreateArgsNoRegister(), browser(), |
+ utils::NONE)); |
} |
-TEST_F(EPKPChallengeUserKeyTest, PersonalDevice) { |
+TEST_F(EPKChallengeUserKeyTest, PersonalDevice) { |
stub_install_attributes_.SetRegistrationUser(""); |
// Currently personal devices are not supported. |
EXPECT_EQ(GetCertificateError(kUserRejected), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, Success) { |
+TEST_F(EPKChallengeUserKeyTest, Success) { |
// GetCertificate must be called exactly once. |
- EXPECT_CALL(mock_attestation_flow_, |
- GetCertificate( |
- chromeos::attestation::PROFILE_ENTERPRISE_USER_CERTIFICATE, |
- _, _, _, _)) |
+ EXPECT_CALL( |
+ mock_attestation_flow_, |
+ GetCertificate(chromeos::attestation::PROFILE_ENTERPRISE_USER_CERTIFICATE, |
+ _, _, _, _)) |
.Times(1); |
// SignEnterpriseChallenge must be called exactly once. |
- EXPECT_CALL(mock_async_method_caller_, |
- TpmAttestationSignEnterpriseChallenge( |
- chromeos::attestation::KEY_USER, kUserEmail, |
- "attest-ent-user", kUserEmail, "device_id", _, |
- "challenge", _)) |
+ EXPECT_CALL( |
+ mock_async_method_caller_, |
+ TpmAttestationSignEnterpriseChallenge( |
+ chromeos::attestation::KEY_USER, kUserEmail, "attest-ent-user", |
+ kUserEmail, "device_id", _, "challenge", _)) |
.Times(1); |
// RegisterKey must be called exactly once. |
EXPECT_CALL(mock_async_method_caller_, |
TpmAttestationRegisterKey(chromeos::attestation::KEY_USER, |
- kUserEmail, |
- "attest-ent-user", _)) |
+ kUserEmail, "attest-ent-user", _)) |
.Times(1); |
- scoped_ptr<base::Value> value(utils::RunFunctionAndReturnSingleResult( |
- func_.get(), kArgs, browser(), utils::NONE)); |
+ scoped_ptr<base::Value> value( |
+ RunFunctionAndReturnSingleResult(func_.get(), CreateArgs(), browser())); |
- std::string response; |
- value->GetAsString(&response); |
- EXPECT_EQ("cmVzcG9uc2U=" /* Base64 encoding of 'response' */, response); |
+ const base::BinaryValue* response; |
+ ASSERT_TRUE(value->GetAsBinary(&response)); |
+ EXPECT_EQ("response", |
+ std::string(response->GetBuffer(), response->GetSize())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, AttestationNotPrepared) { |
+TEST_F(EPKChallengeUserKeyTest, AttestationNotPrepared) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationIsPrepared(_)) |
- .WillRepeatedly(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_SUCCESS, false))); |
+ .WillRepeatedly(Invoke( |
+ FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_SUCCESS, false))); |
EXPECT_EQ(GetCertificateError(kResetRequired), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-TEST_F(EPKPChallengeUserKeyTest, AttestationPreparedDbusFailed) { |
+TEST_F(EPKChallengeUserKeyTest, AttestationPreparedDbusFailed) { |
EXPECT_CALL(mock_cryptohome_client_, TpmAttestationIsPrepared(_)) |
- .WillRepeatedly(Invoke(FakeBoolDBusMethod( |
- chromeos::DBUS_METHOD_CALL_FAILURE, true))); |
+ .WillRepeatedly( |
+ Invoke(FakeBoolDBusMethod(chromeos::DBUS_METHOD_CALL_FAILURE, true))); |
EXPECT_EQ(GetCertificateError(kDBusError), |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-class EPKPChallengeMachineKeyUnmanagedUserTest |
- : public EPKPChallengeMachineKeyTest { |
+class EPKChallengeMachineKeyUnmanagedUserTest |
+ : public EPKChallengeMachineKeyTest { |
protected: |
void SetAuthenticatedUser() override { |
- SigninManagerFactory::GetForProfile(browser()->profile())-> |
- SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
+ SigninManagerFactory::GetForProfile(browser()->profile()) |
+ ->SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
} |
}; |
-TEST_F(EPKPChallengeMachineKeyUnmanagedUserTest, UserNotManaged) { |
+TEST_F(EPKChallengeMachineKeyUnmanagedUserTest, UserNotManaged) { |
EXPECT_EQ(EPKPChallengeKeyBase::kUserNotManaged, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
-class EPKPChallengeUserKeyUnmanagedUserTest : public EPKPChallengeUserKeyTest { |
+class EPKChallengeUserKeyUnmanagedUserTest : public EPKChallengeUserKeyTest { |
protected: |
void SetAuthenticatedUser() override { |
- SigninManagerFactory::GetForProfile(browser()->profile())-> |
- SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
+ SigninManagerFactory::GetForProfile(browser()->profile()) |
+ ->SetAuthenticatedAccountInfo("12345", "test@chromium.com"); |
} |
}; |
-TEST_F(EPKPChallengeUserKeyUnmanagedUserTest, UserNotManaged) { |
+TEST_F(EPKChallengeUserKeyUnmanagedUserTest, UserNotManaged) { |
EXPECT_EQ(EPKPChallengeKeyBase::kUserNotManaged, |
- utils::RunFunctionAndReturnError(func_.get(), kArgs, browser())); |
+ RunFunctionAndReturnError(func_.get(), CreateArgs(), browser())); |
} |
} // namespace |