1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
6 #define CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
10 #include "base/basictypes.h"
11 #include "base/callback.h"
12 #include "chromeos/cryptohome/async_method_caller.h"
13 #include "testing/gmock/include/gmock/gmock.h"
15 namespace cryptohome
{
17 class MockAsyncMethodCaller
: public AsyncMethodCaller
{
19 static const char kFakeAttestationEnrollRequest
[];
20 static const char kFakeAttestationCertRequest
[];
21 static const char kFakeAttestationCert
[];
22 static const char kFakeSanitizedUsername
[];
23 static const char kFakeChallengeResponse
[];
25 MockAsyncMethodCaller();
26 virtual ~MockAsyncMethodCaller();
28 void SetUp(bool success
, MountError return_code
);
30 MOCK_METHOD3(AsyncCheckKey
, void(const std::string
& user_email
,
31 const std::string
& passhash
,
33 MOCK_METHOD4(AsyncMigrateKey
, void(const std::string
& user_email
,
34 const std::string
& old_hash
,
35 const std::string
& new_hash
,
37 MOCK_METHOD4(AsyncMount
, void(const std::string
& user_email
,
38 const std::string
& passhash
,
41 MOCK_METHOD4(AsyncAddKey
, void(const std::string
& user_email
,
42 const std::string
& passhash
,
43 const std::string
& new_key
,
45 MOCK_METHOD1(AsyncMountGuest
, void(Callback callback
));
46 MOCK_METHOD3(AsyncMountPublic
, void(const std::string
& public_mount_id
,
49 MOCK_METHOD2(AsyncRemove
, void(const std::string
& user_email
,
51 MOCK_METHOD2(AsyncTpmAttestationCreateEnrollRequest
,
52 void(chromeos::attestation::PrivacyCAType pca_type
,
53 const DataCallback
& callback
));
54 MOCK_METHOD3(AsyncTpmAttestationEnroll
,
55 void(chromeos::attestation::PrivacyCAType pca_type
,
56 const std::string
& pca_response
,
57 const Callback
& callback
));
59 AsyncTpmAttestationCreateCertRequest
,
60 void(chromeos::attestation::PrivacyCAType pca_type
,
61 chromeos::attestation::AttestationCertificateProfile profile
,
62 const std::string
& user_id
,
63 const std::string
& request_origin
,
64 const DataCallback
& callback
));
65 MOCK_METHOD5(AsyncTpmAttestationFinishCertRequest
,
66 void(const std::string
& pca_response
,
67 chromeos::attestation::AttestationKeyType key_type
,
68 const std::string
& user_id
,
69 const std::string
& key_name
,
70 const DataCallback
& callback
));
71 MOCK_METHOD4(TpmAttestationRegisterKey
,
72 void(chromeos::attestation::AttestationKeyType key_type
,
73 const std::string
& user_id
,
74 const std::string
& key_name
,
75 const Callback
& callback
));
77 TpmAttestationSignEnterpriseChallenge
,
78 void(chromeos::attestation::AttestationKeyType key_type
,
79 const std::string
& user_id
,
80 const std::string
& key_name
,
81 const std::string
& domain
,
82 const std::string
& device_id
,
83 chromeos::attestation::AttestationChallengeOptions options
,
84 const std::string
& challenge
,
85 const DataCallback
& callback
));
86 MOCK_METHOD5(TpmAttestationSignSimpleChallenge
,
87 void(chromeos::attestation::AttestationKeyType key_type
,
88 const std::string
& user_id
,
89 const std::string
& key_name
,
90 const std::string
& challenge
,
91 const DataCallback
& callback
));
92 MOCK_METHOD2(AsyncGetSanitizedUsername
,
93 void(const std::string
& user
,
94 const DataCallback
& callback
));
98 MountError return_code_
;
100 void DoCallback(Callback callback
);
101 // Default fakes for attestation calls.
102 void FakeCreateEnrollRequest(const DataCallback
& callback
);
103 void FakeCreateCertRequest(const DataCallback
& callback
);
104 void FakeFinishCertRequest(const DataCallback
& callback
);
105 void FakeGetSanitizedUsername(const DataCallback
& callback
);
106 void FakeEnterpriseChallenge(const DataCallback
& callback
);
108 DISALLOW_COPY_AND_ASSIGN(MockAsyncMethodCaller
);
111 } // namespace cryptohome
113 #endif // CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_