blob: b2e5e8a3a1d0f5e4c495d71cfce56dbb8df8099e [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROMEOS_CRYPTOHOME_MOCK_HOMEDIR_METHODS_H_
#define CHROMEOS_CRYPTOHOME_MOCK_HOMEDIR_METHODS_H_
#include <string>
#include "base/callback.h"
#include "base/macros.h"
#include "chromeos/cryptohome/homedir_methods.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace cryptohome {
class CHROMEOS_EXPORT MockHomedirMethods : public HomedirMethods {
public:
MockHomedirMethods();
virtual ~MockHomedirMethods();
void SetUp(bool success, MountError return_code);
MOCK_METHOD3(GetKeyDataEx,
void(const Identification& id,
const std::string& label,
const GetKeyDataCallback& callback));
MOCK_METHOD3(CheckKeyEx,
void(const Identification& id,
const Authorization& key,
const Callback& callback));
MOCK_METHOD4(MountEx,
void(const Identification& id,
const Authorization& key,
const MountParameters& request,
const MountCallback& callback));
MOCK_METHOD5(AddKeyEx,
void(const Identification& id,
const Authorization& auth,
const KeyDefinition& key,
bool clobber_if_exist,
const Callback& callback));
MOCK_METHOD4(RemoveKeyEx,
void(const Identification& id,
const Authorization& auth,
const std::string& label,
const Callback& callback));
MOCK_METHOD5(UpdateKeyEx,
void(const Identification& id,
const Authorization& auth,
const KeyDefinition& key,
const std::string& signature,
const Callback& callback));
MOCK_METHOD3(RenameCryptohome,
void(const Identification& id_from,
const Identification& id_to,
const Callback& callback));
private:
bool success_;
MountError return_code_;
void DoCallback(const Callback& callback);
void DoGetDataCallback(const GetKeyDataCallback& callback);
void DoMountCallback(const MountCallback& callback);
DISALLOW_COPY_AND_ASSIGN(MockHomedirMethods);
};
} // namespace cryptohome
#endif // CHROMEOS_CRYPTOHOME_MOCK_HOMEDIR_METHODS_H_