// 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.
#ifndef CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_
#define CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_
#include <string>
#include "chromeos/dbus/cryptohome/rpc.pb.h"
#include "chromeos/dbus/cryptohome_client.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace chromeos {
class MockCryptohomeClient : public CryptohomeClient {
public:
MockCryptohomeClient();
virtual ~MockCryptohomeClient();
MOCK_METHOD1(Init, void(dbus::Bus* bus));
MOCK_METHOD2(SetAsyncCallStatusHandlers,
void(const AsyncCallStatusHandler& handler,
const AsyncCallStatusWithDataHandler& data_handler));
MOCK_METHOD0(ResetAsyncCallStatusHandlers, void());
MOCK_METHOD1(WaitForServiceToBeAvailable,
void(const WaitForServiceToBeAvailableCallback& callback));
MOCK_METHOD1(IsMounted, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(Unmount, bool(bool* success));
MOCK_METHOD3(AsyncCheckKey,
void(const std::string& username,
const std::string& key,
const AsyncMethodCallback& callback));
MOCK_METHOD4(AsyncMigrateKey,
void(const std::string& username,
const std::string& from_key,
const std::string& to_key,
const AsyncMethodCallback& callback));
MOCK_METHOD2(AsyncRemove, void(const std::string& username,
const AsyncMethodCallback& callback));
MOCK_METHOD1(GetSystemSalt, void(const GetSystemSaltCallback& callback));
MOCK_METHOD2(GetSanitizedUsername,
void(const std::string& username,
const StringDBusMethodCallback& callback));
MOCK_METHOD1(BlockingGetSanitizedUsername,
std::string(const std::string& username));
MOCK_METHOD4(AsyncMount, void(const std::string& username,
const std::string& key,
int flags,
const AsyncMethodCallback& callback));
MOCK_METHOD4(AsyncAddKey, void(const std::string& username,
const std::string& key,
const std::string& new_key,
const AsyncMethodCallback& callback));
MOCK_METHOD1(AsyncMountGuest,
void(const AsyncMethodCallback& callback));
MOCK_METHOD3(AsyncMountPublic, void(const std::string& public_mount_id,
int flags,
const AsyncMethodCallback& callback));
MOCK_METHOD1(TpmIsReady, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(TpmIsEnabled, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(CallTpmIsEnabledAndBlock, bool(bool* enabled));
MOCK_METHOD1(TpmGetPassword, void(const StringDBusMethodCallback& callback));
MOCK_METHOD1(TpmIsOwned, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(CallTpmIsOwnedAndBlock, bool(bool* owned));
MOCK_METHOD1(TpmIsBeingOwned, void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(CallTpmIsBeingOwnedAndBlock, bool(bool* owning));
MOCK_METHOD1(TpmCanAttemptOwnership,
void(const VoidDBusMethodCallback& callback));
MOCK_METHOD1(TpmClearStoredPassword,
void(const VoidDBusMethodCallback& callback));
MOCK_METHOD0(CallTpmClearStoredPasswordAndBlock, bool());
MOCK_METHOD1(Pkcs11IsTpmTokenReady,
void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(Pkcs11GetTpmTokenInfo,
void(const Pkcs11GetTpmTokenInfoCallback& callback));
MOCK_METHOD2(Pkcs11GetTpmTokenInfoForUser,
void(const std::string& username,
const Pkcs11GetTpmTokenInfoCallback& callback));
MOCK_METHOD3(InstallAttributesGet,
bool(const std::string& name,
std::vector<uint8>* value,
bool* successful));
MOCK_METHOD3(InstallAttributesSet,
bool(const std::string& name,
const std::vector<uint8>& value,
bool* successful));
MOCK_METHOD1(InstallAttributesFinalize, bool(bool* successful));
MOCK_METHOD1(InstallAttributesIsReady,
void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(InstallAttributesIsInvalid, bool(bool* is_invalid));
MOCK_METHOD1(InstallAttributesIsFirstInstall, bool(bool* is_first_install));
MOCK_METHOD1(TpmAttestationIsPrepared,
void(const BoolDBusMethodCallback& callback));
MOCK_METHOD1(TpmAttestationIsEnrolled,
void(const BoolDBusMethodCallback& callback));
MOCK_METHOD2(AsyncTpmAttestationCreateEnrollRequest,
void(attestation::PrivacyCAType pca_type,
const AsyncMethodCallback& callback));
MOCK_METHOD3(AsyncTpmAttestationEnroll,
void(attestation::PrivacyCAType pca_type,
const std::string& pca_response,
const AsyncMethodCallback& callback));
MOCK_METHOD5(
AsyncTpmAttestationCreateCertRequest,
void(attestation::PrivacyCAType pca_type,
attestation::AttestationCertificateProfile certificate_profile,
const std::string& user_id,
const std::string& request_origin,
const AsyncMethodCallback& callback));
MOCK_METHOD5(AsyncTpmAttestationFinishCertRequest,
void(const std::string& pca_response,
attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const AsyncMethodCallback& callback));
MOCK_METHOD4(TpmAttestationDoesKeyExist,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const BoolDBusMethodCallback& callback));
MOCK_METHOD4(TpmAttestationGetCertificate,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback));
MOCK_METHOD4(TpmAttestationGetPublicKey,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback));
MOCK_METHOD4(TpmAttestationRegisterKey,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const AsyncMethodCallback& callback));
MOCK_METHOD8(TpmAttestationSignEnterpriseChallenge,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const std::string& domain,
const std::string& device_id,
attestation::AttestationChallengeOptions options,
const std::string& challenge,
const AsyncMethodCallback& callback));
MOCK_METHOD5(TpmAttestationSignSimpleChallenge,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const std::string& challenge,
const AsyncMethodCallback& callback));
MOCK_METHOD4(TpmAttestationGetKeyPayload,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const DataMethodCallback& callback));
MOCK_METHOD5(TpmAttestationSetKeyPayload,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_name,
const std::string& payload,
const BoolDBusMethodCallback& callback));
MOCK_METHOD4(TpmAttestationDeleteKeys,
void(attestation::AttestationKeyType key_type,
const std::string& user_id,
const std::string& key_prefix,
const BoolDBusMethodCallback& callback));
MOCK_METHOD4(CheckKeyEx,
void(const cryptohome::AccountIdentifier& id,
const cryptohome::AuthorizationRequest& auth,
const cryptohome::CheckKeyRequest& request,
const ProtobufMethodCallback& callback));
MOCK_METHOD4(MountEx,
void(const cryptohome::AccountIdentifier& id,
const cryptohome::AuthorizationRequest& auth,
const cryptohome::MountRequest& request,
const ProtobufMethodCallback& callback));
MOCK_METHOD4(AddKeyEx,
void(const cryptohome::AccountIdentifier& id,
const cryptohome::AuthorizationRequest& auth,
const cryptohome::AddKeyRequest& request,
const ProtobufMethodCallback& callback));
MOCK_METHOD4(UpdateKeyEx,
void(const cryptohome::AccountIdentifier& id,
const cryptohome::AuthorizationRequest& auth,
const cryptohome::UpdateKeyRequest& request,
const ProtobufMethodCallback& callback));
MOCK_METHOD4(RemoveKeyEx,
void(const cryptohome::AccountIdentifier& id,
const cryptohome::AuthorizationRequest& auth,
const cryptohome::RemoveKeyRequest& request,
const ProtobufMethodCallback& callback));
};
} // namespace chromeos
#endif // CHROMEOS_DBUS_MOCK_CRYPTOHOME_CLIENT_H_