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 #include "chromeos/cryptohome/mock_homedir_methods.h"
      6 
      7 #include <vector>
      8 
      9 #include "chromeos/cryptohome/cryptohome_parameters.h"
     10 #include "chromeos/cryptohome/mock_async_method_caller.h"
     11 
     12 using ::testing::Invoke;
     13 using ::testing::WithArgs;
     14 using ::testing::_;
     15 
     16 namespace cryptohome {
     17 
     18 MockHomedirMethods::MockHomedirMethods()
     19     : success_(false), return_code_(cryptohome::MOUNT_ERROR_NONE) {}
     20 
     21 MockHomedirMethods::~MockHomedirMethods() {}
     22 
     23 void MockHomedirMethods::SetUp(bool success, MountError return_code) {
     24   success_ = success;
     25   return_code_ = return_code;
     26   ON_CALL(*this, GetKeyDataEx(_, _, _)).WillByDefault(
     27       WithArgs<2>(Invoke(this, &MockHomedirMethods::DoGetDataCallback)));
     28   ON_CALL(*this, CheckKeyEx(_, _, _)).WillByDefault(
     29       WithArgs<2>(Invoke(this, &MockHomedirMethods::DoCallback)));
     30   ON_CALL(*this, MountEx(_, _, _, _)).WillByDefault(
     31       WithArgs<3>(Invoke(this, &MockHomedirMethods::DoMountCallback)));
     32   ON_CALL(*this, AddKeyEx(_, _, _, _, _)).WillByDefault(
     33       WithArgs<4>(Invoke(this, &MockHomedirMethods::DoCallback)));
     34   ON_CALL(*this, UpdateKeyEx(_, _, _, _, _)).WillByDefault(
     35       WithArgs<4>(Invoke(this, &MockHomedirMethods::DoCallback)));
     36   ON_CALL(*this, RemoveKeyEx(_, _, _, _)).WillByDefault(
     37       WithArgs<3>(Invoke(this, &MockHomedirMethods::DoCallback)));
     38 }
     39 
     40 void MockHomedirMethods::DoCallback(const Callback& callback) {
     41   callback.Run(success_, return_code_);
     42 }
     43 
     44 void MockHomedirMethods::DoGetDataCallback(const GetKeyDataCallback& callback) {
     45   callback.Run(success_, return_code_, std::vector<KeyDefinition>());
     46 }
     47 
     48 void MockHomedirMethods::DoMountCallback(const MountCallback& callback) {
     49   callback.Run(
     50       success_, return_code_, MockAsyncMethodCaller::kFakeSanitizedUsername);
     51 }
     52 
     53 }  // namespace cryptohome
     54