| Index: chrome/browser/chromeos/cros/mock_mount_library.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/cros/mock_mount_library.cc (revision 0)
|
| +++ chrome/browser/chromeos/cros/mock_mount_library.cc (revision 0)
|
| @@ -0,0 +1,79 @@
|
| +// Copyright (c) 2009 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 "chrome/browser/chromeos/cros/mock_mount_library.h"
|
| +
|
| +#include "base/message_loop.h"
|
| +#include "base/string_util.h"
|
| +#include "chrome/browser/chrome_thread.h"
|
| +#include "chrome/browser/chromeos/cros/cros_library.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +using testing::_;
|
| +using testing::Invoke;
|
| +
|
| +const char* kTestSystemPath = "/this/system/path";
|
| +const char* kTestDevicePath = "/this/device/path";
|
| +const char* kTestMountPath = "/media/foofoo";
|
| +
|
| +void MockMountLibrary::AddObserverInternal(MountLibrary::Observer* observer) {
|
| + observers_.AddObserver(observer);
|
| +}
|
| +
|
| +void MockMountLibrary::RemoveObserverInternal(MountLibrary::Observer* observer) {
|
| + observers_.RemoveObserver(observer);
|
| +}
|
| +
|
| +MockMountLibrary::MockMountLibrary() {
|
| + ON_CALL(*this, AddObserver(_))
|
| + .WillByDefault(Invoke(this, &MockMountLibrary::AddObserverInternal));
|
| + ON_CALL(*this, RemoveObserver(_))
|
| + .WillByDefault(Invoke(this, &MockMountLibrary::RemoveObserverInternal));
|
| + ON_CALL(*this, disks())
|
| + .WillByDefault(Invoke(this, &MockMountLibrary::disksInternal));
|
| +}
|
| +
|
| +MockMountLibrary::~MockMountLibrary() {
|
| +
|
| +}
|
| +
|
| +void MockMountLibrary::FireDeviceInsertEvents() {
|
| +
|
| + disks_.clear();
|
| +
|
| + disks_.push_back(Disk(kTestDevicePath, "", kTestSystemPath));
|
| +
|
| + // Device Added
|
| + chromeos::MountEventType evt;
|
| + evt = chromeos::DEVICE_ADDED;
|
| + UpdateMountStatus(evt, kTestSystemPath);
|
| +
|
| + // Disk Added
|
| + evt = chromeos::DISK_ADDED;
|
| + UpdateMountStatus(evt, kTestDevicePath);
|
| +
|
| + // Disk Changed
|
| + disks_.clear();
|
| + disks_.push_back(Disk(kTestDevicePath, kTestMountPath, kTestSystemPath));
|
| + evt = chromeos::DISK_CHANGED;
|
| + UpdateMountStatus(evt, kTestDevicePath);
|
| +}
|
| +
|
| +void MockMountLibrary::FireDeviceRemoveEvents() {
|
| + disks_.clear();
|
| + chromeos::MountEventType evt;
|
| + evt = chromeos::DISK_REMOVED;
|
| + UpdateMountStatus(evt, kTestDevicePath);
|
| +}
|
| +
|
| +void MockMountLibrary::UpdateMountStatus(MountEventType evt,
|
| + const std::string& path) {
|
| + // Make sure we run on UI thread.
|
| + DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI));
|
| +
|
| + FOR_EACH_OBSERVER(Observer, observers_, MountChanged(this, evt, path));
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|