• 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_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));
58   MOCK_METHOD5(
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));
76   MOCK_METHOD8(
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));
95 
96  private:
97   bool success_;
98   MountError return_code_;
99 
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);
107 
108   DISALLOW_COPY_AND_ASSIGN(MockAsyncMethodCaller);
109 };
110 
111 }  // namespace cryptohome
112 
113 #endif  // CHROMEOS_CRYPTOHOME_MOCK_ASYNC_METHOD_CALLER_H_
114