• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4 
5 #ifndef CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
6 #define CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
7 
8 #include <string>
9 
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"
14 
15 namespace cryptohome {
16 
17 class MockAsyncMethodCaller : public AsyncMethodCaller {
18  public:
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[];
24 
25   MockAsyncMethodCaller();
26   virtual ~MockAsyncMethodCaller();
27 
28   void SetUp(bool success, MountError return_code);
29 
30   MOCK_METHOD3(AsyncCheckKey, void(const std::string& user_email,
31                                    const std::string& passhash,
32                                    Callback callback));
33   MOCK_METHOD4(AsyncMigrateKey, void(const std::string& user_email,
34                                      const std::string& old_hash,
35                                      const std::string& new_hash,
36                                      Callback callback));
37   MOCK_METHOD4(AsyncMount, void(const std::string& user_email,
38                                 const std::string& passhash,
39                                 int flags,
40                                 Callback callback));
41   MOCK_METHOD4(AsyncAddKey, void(const std::string& user_email,
42                                  const std::string& passhash,
43                                  const std::string& new_key,
44                                  Callback callback));
45   MOCK_METHOD1(AsyncMountGuest, void(Callback callback));
46   MOCK_METHOD3(AsyncMountPublic, void(const std::string& public_mount_id,
47                                       int flags,
48                                       Callback callback));
49   MOCK_METHOD2(AsyncRemove, void(const std::string& user_email,
50                                  Callback callback));
51   MOCK_METHOD1(AsyncTpmAttestationCreateEnrollRequest,
52                void(const DataCallback& callback));
53   MOCK_METHOD2(AsyncTpmAttestationEnroll,
54                void(const std::string& pca_response, const Callback& callback));
55   MOCK_METHOD4(
56       AsyncTpmAttestationCreateCertRequest,
57       void(chromeos::attestation::AttestationCertificateProfile profile,
58            const std::string& user_id,
59            const std::string& request_origin,
60            const DataCallback& callback));
61   MOCK_METHOD5(AsyncTpmAttestationFinishCertRequest,
62                void(const std::string& pca_response,
63                     chromeos::attestation::AttestationKeyType key_type,
64                     const std::string& user_id,
65                     const std::string& key_name,
66                     const DataCallback& callback));
67   MOCK_METHOD4(TpmAttestationRegisterKey,
68                void(chromeos::attestation::AttestationKeyType key_type,
69                     const std::string& user_id,
70                     const std::string& key_name,
71                     const Callback& callback));
72   MOCK_METHOD8(
73       TpmAttestationSignEnterpriseChallenge,
74       void(chromeos::attestation::AttestationKeyType key_type,
75            const std::string& user_id,
76            const std::string& key_name,
77            const std::string& domain,
78            const std::string& device_id,
79            chromeos::attestation::AttestationChallengeOptions options,
80            const std::string& challenge,
81            const DataCallback& callback));
82   MOCK_METHOD5(TpmAttestationSignSimpleChallenge,
83                void(chromeos::attestation::AttestationKeyType key_type,
84                     const std::string& user_id,
85                     const std::string& key_name,
86                     const std::string& challenge,
87                     const DataCallback& callback));
88   MOCK_METHOD2(AsyncGetSanitizedUsername,
89                void(const std::string& user,
90                     const DataCallback& callback));
91 
92  private:
93   bool success_;
94   MountError return_code_;
95 
96   void DoCallback(Callback callback);
97   // Default fakes for attestation calls.
98   void FakeCreateEnrollRequest(const DataCallback& callback);
99   void FakeCreateCertRequest(const DataCallback& callback);
100   void FakeFinishCertRequest(const DataCallback& callback);
101   void FakeGetSanitizedUsername(const DataCallback& callback);
102   void FakeEnterpriseChallenge(const DataCallback& callback);
103 
104   DISALLOW_COPY_AND_ASSIGN(MockAsyncMethodCaller);
105 };
106 
107 }  // namespace cryptohome
108 
109 #endif  // CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
110