// Copyright (c) 2013 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.
#include "chromeos/dbus/fake_cros_disks_client.h"
#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
namespace chromeos {
FakeCrosDisksClient::FakeCrosDisksClient()
: unmount_call_count_(0),
unmount_success_(true),
format_call_count_(0),
format_success_(true) {
}
FakeCrosDisksClient::~FakeCrosDisksClient() {
}
void FakeCrosDisksClient::Init(dbus::Bus* bus) {
}
void FakeCrosDisksClient::Mount(const std::string& source_path,
const std::string& source_format,
const std::string& mount_label,
const base::Closure& callback,
const base::Closure& error_callback) {
}
void FakeCrosDisksClient::Unmount(const std::string& device_path,
UnmountOptions options,
const base::Closure& callback,
const base::Closure& error_callback) {
DCHECK(!callback.is_null());
DCHECK(!error_callback.is_null());
unmount_call_count_++;
last_unmount_device_path_ = device_path;
last_unmount_options_ = options;
base::MessageLoopProxy::current()->PostTask(
FROM_HERE, unmount_success_ ? callback : error_callback);
if (!unmount_listener_.is_null())
unmount_listener_.Run();
}
void FakeCrosDisksClient::EnumerateAutoMountableDevices(
const EnumerateAutoMountableDevicesCallback& callback,
const base::Closure& error_callback) {
}
void FakeCrosDisksClient::EnumerateMountEntries(
const EnumerateMountEntriesCallback& callback,
const base::Closure& error_callback) {
}
void FakeCrosDisksClient::Format(const std::string& device_path,
const std::string& filesystem,
const base::Closure& callback,
const base::Closure& error_callback) {
DCHECK(!callback.is_null());
DCHECK(!error_callback.is_null());
format_call_count_++;
last_format_device_path_ = device_path;
last_format_filesystem_ = filesystem;
if (format_success_) {
base::MessageLoopProxy::current()->PostTask(FROM_HERE, callback);
} else {
base::MessageLoopProxy::current()->PostTask(FROM_HERE, error_callback);
}
}
void FakeCrosDisksClient::GetDeviceProperties(
const std::string& device_path,
const GetDevicePropertiesCallback& callback,
const base::Closure& error_callback) {
}
void FakeCrosDisksClient::SetMountEventHandler(
const MountEventHandler& mount_event_handler) {
mount_event_handler_ = mount_event_handler;
}
void FakeCrosDisksClient::SetMountCompletedHandler(
const MountCompletedHandler& mount_completed_handler) {
mount_completed_handler_ = mount_completed_handler;
}
void FakeCrosDisksClient::SetFormatCompletedHandler(
const FormatCompletedHandler& format_completed_handler) {
format_completed_handler_ = format_completed_handler;
}
bool FakeCrosDisksClient::SendMountEvent(MountEventType event,
const std::string& path) {
if (mount_event_handler_.is_null())
return false;
mount_event_handler_.Run(event, path);
return true;
}
bool FakeCrosDisksClient::SendMountCompletedEvent(
MountError error_code,
const std::string& source_path,
MountType mount_type,
const std::string& mount_path) {
if (mount_completed_handler_.is_null())
return false;
mount_completed_handler_.Run(
MountEntry(error_code, source_path, mount_type, mount_path));
return true;
}
bool FakeCrosDisksClient::SendFormatCompletedEvent(
FormatError error_code,
const std::string& device_path) {
if (format_completed_handler_.is_null())
return false;
format_completed_handler_.Run(error_code, device_path);
return true;
}
} // namespace chromeos