Home | History | Annotate | Download | only in cryptohome
      1 // Copyright 2014 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_HOMEDIR_METHODS_H_
      6 #define CHROMEOS_CRYPTOHOME_MOCK_HOMEDIR_METHODS_H_
      7 
      8 #include <string>
      9 
     10 #include "base/basictypes.h"
     11 #include "base/callback.h"
     12 #include "chromeos/cryptohome/homedir_methods.h"
     13 #include "testing/gmock/include/gmock/gmock.h"
     14 
     15 namespace cryptohome {
     16 
     17 class CHROMEOS_EXPORT MockHomedirMethods : public HomedirMethods {
     18  public:
     19   MockHomedirMethods();
     20   virtual ~MockHomedirMethods();
     21 
     22   void SetUp(bool success, MountError return_code);
     23 
     24   MOCK_METHOD3(GetKeyDataEx,
     25                void(const Identification& id,
     26                     const std::string& label,
     27                     const GetKeyDataCallback& callback));
     28   MOCK_METHOD3(CheckKeyEx,
     29                void(const Identification& id,
     30                     const Authorization& key,
     31                     const Callback& callback));
     32   MOCK_METHOD4(MountEx,
     33                void(const Identification& id,
     34                     const Authorization& key,
     35                     const MountParameters& request,
     36                     const MountCallback& callback));
     37   MOCK_METHOD5(AddKeyEx,
     38                void(const Identification& id,
     39                     const Authorization& auth,
     40                     const KeyDefinition& key,
     41                     bool clobber_if_exist,
     42                     const Callback& callback));
     43   MOCK_METHOD4(RemoveKeyEx,
     44                void(const Identification& id,
     45                     const Authorization& auth,
     46                     const std::string& label,
     47                     const Callback& callback));
     48   MOCK_METHOD5(UpdateKeyEx,
     49                void(const Identification& id,
     50                     const Authorization& auth,
     51                     const KeyDefinition& key,
     52                     const std::string& signature,
     53                     const Callback& callback));
     54 
     55  private:
     56   bool success_;
     57   MountError return_code_;
     58 
     59   void DoCallback(const Callback& callback);
     60   void DoGetDataCallback(const GetKeyDataCallback& callback);
     61   void DoMountCallback(const MountCallback& callback);
     62 
     63   DISALLOW_COPY_AND_ASSIGN(MockHomedirMethods);
     64 };
     65 
     66 }  // namespace cryptohome
     67 
     68 #endif  // CHROMEOS_CRYPTOHOME_MOCK_HOMEDIR_METHODS_H_
     69