forked from chromium/chromium
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fake_cros_disks_client.h
135 lines (114 loc) · 4.97 KB
/
fake_cros_disks_client.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// 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.
#ifndef CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_
#define CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_
#include <set>
#include <string>
#include "base/callback.h"
#include "base/files/file_path.h"
#include "chromeos/dbus/cros_disks_client.h"
namespace chromeos {
// A fake implementation of CrosDiskeClient. This class provides a fake behavior
// and the user of this class can raise a fake mouse events.
class CHROMEOS_EXPORT FakeCrosDisksClient : public CrosDisksClient {
public:
FakeCrosDisksClient();
~FakeCrosDisksClient() override;
// CrosDisksClient overrides
void Init(dbus::Bus* bus) override;
// Performs fake mounting for archive files. Instead of actually extracting
// contents of archive files, this function creates a directory that
// contains a dummy file.
void 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) override;
// Deletes the directory created in Mount().
void Unmount(const std::string& device_path,
UnmountOptions options,
const base::Closure& callback,
const base::Closure& error_callback) override;
void EnumerateAutoMountableDevices(
const EnumerateAutoMountableDevicesCallback& callback,
const base::Closure& error_callback) override;
void EnumerateMountEntries(const EnumerateMountEntriesCallback& callback,
const base::Closure& error_callback) override;
void Format(const std::string& device_path,
const std::string& filesystem,
const base::Closure& callback,
const base::Closure& error_callback) override;
void GetDeviceProperties(const std::string& device_path,
const GetDevicePropertiesCallback& callback,
const base::Closure& error_callback) override;
void SetMountEventHandler(
const MountEventHandler& mount_event_handler) override;
void SetMountCompletedHandler(
const MountCompletedHandler& mount_completed_handler) override;
void SetFormatCompletedHandler(
const FormatCompletedHandler& format_completed_handler) override;
// Used in tests to simulate signals sent by cros disks layer.
// Invokes handlers set in |SetMountEventHandler|, |SetMountCompletedHandler|,
// and |SetFormatCompletedHandler|.
bool SendMountEvent(MountEventType event, const std::string& path);
bool SendMountCompletedEvent(MountError error_code,
const std::string& source_path,
MountType mount_type,
const std::string& mount_path);
bool SendFormatCompletedEvent(FormatError error_code,
const std::string& device_path);
// Returns how many times Unmount() was called.
int unmount_call_count() const {
return unmount_call_count_;
}
// Returns the |device_path| parameter from the last invocation of Unmount().
const std::string& last_unmount_device_path() const {
return last_unmount_device_path_;
}
// Returns the |options| parameter from the last invocation of Unmount().
UnmountOptions last_unmount_options() const {
return last_unmount_options_;
}
// Makes the subsequent Unmount() calls fail. Unmount() succeeds by default.
void MakeUnmountFail() {
unmount_success_ = false;
}
// Sets a listener callbackif the following Unmount() call is success or not.
// Unmount() calls the corresponding callback given as a parameter.
void set_unmount_listener(base::Closure listener) {
unmount_listener_ = listener;
}
// Returns how many times Format() was called.
int format_call_count() const {
return format_call_count_;
}
// Returns the |device_path| parameter from the last invocation of Format().
const std::string& last_format_device_path() const {
return last_format_device_path_;
}
// Returns the |filesystem| parameter from the last invocation of Format().
const std::string& last_format_filesystem() const {
return last_format_filesystem_;
}
// Makes the subsequent Format() calls fail. Format() succeeds by default.
void MakeFormatFail() {
format_success_ = false;
}
private:
MountEventHandler mount_event_handler_;
MountCompletedHandler mount_completed_handler_;
FormatCompletedHandler format_completed_handler_;
int unmount_call_count_;
std::string last_unmount_device_path_;
UnmountOptions last_unmount_options_;
bool unmount_success_;
base::Closure unmount_listener_;
int format_call_count_;
std::string last_format_device_path_;
std::string last_format_filesystem_;
bool format_success_;
std::set<base::FilePath> mounted_paths_;
};
} // namespace chromeos
#endif // CHROMEOS_DBUS_FAKE_CROS_DISKS_CLIENT_H_