Index: chrome/browser/chromeos/mock_disk_mount_manager.cc |
diff --git a/chrome/browser/chromeos/mock_disk_mount_manager.cc b/chrome/browser/chromeos/mock_disk_mount_manager.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..98b8aec2e8d11c4883a59f970761c2dab867cdd5 |
--- /dev/null |
+++ b/chrome/browser/chromeos/mock_disk_mount_manager.cc |
@@ -0,0 +1,171 @@ |
+// Copyright (c) 2011 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/mock_disk_mount_manager.h" |
+ |
+#include "base/message_loop.h" |
+#include "base/string_util.h" |
+#include "content/public/browser/browser_thread.h" |
+ |
+using content::BrowserThread; |
+using testing::_; |
+using testing::AnyNumber; |
+using testing::Invoke; |
+using testing::ReturnRef; |
+ |
+namespace chromeos { |
+ |
+namespace { |
+ |
+const char* kTestSystemPath = "/this/system/path"; |
+const char* kTestSystemPathPrefix = "/this/system"; |
+const char* kTestDevicePath = "/this/device/path"; |
+const char* kTestMountPath = "/media/foofoo"; |
+const char* kTestFilePath = "/this/file/path"; |
+const char* kTestDeviceLabel = "A label"; |
+const char* kTestDriveLabel = "Another label"; |
+const char* kTestParentPath = "/this/is/my/parent"; |
+ |
+} // namespace |
+ |
+void MockDiskMountManager::AddObserverInternal( |
+ DiskMountManager::Observer* observer) { |
+ observers_.AddObserver(observer); |
+} |
+ |
+void MockDiskMountManager::RemoveObserverInternal( |
+ DiskMountManager::Observer* observer) { |
+ observers_.RemoveObserver(observer); |
+} |
+ |
+MockDiskMountManager::MockDiskMountManager() { |
+ ON_CALL(*this, AddObserver(_)) |
+ .WillByDefault(Invoke(this, &MockDiskMountManager::AddObserverInternal)); |
+ ON_CALL(*this, RemoveObserver(_)) |
+ .WillByDefault(Invoke(this, |
+ &MockDiskMountManager::RemoveObserverInternal)); |
+ ON_CALL(*this, disks()) |
+ .WillByDefault(Invoke(this, &MockDiskMountManager::disksInternal)); |
+} |
+ |
+MockDiskMountManager::~MockDiskMountManager() { |
+} |
+ |
+void MockDiskMountManager::FireDeviceInsertEvents() { |
+ scoped_ptr<DiskMountManager::Disk> disk1(new DiskMountManager::Disk( |
+ std::string(kTestDevicePath), |
+ std::string(), |
+ std::string(kTestSystemPath), |
+ std::string(kTestFilePath), |
+ std::string(), |
+ std::string(kTestDriveLabel), |
+ std::string(kTestParentPath), |
+ std::string(kTestSystemPathPrefix), |
+ FLASH, |
+ 4294967295U, |
+ false, |
+ false, |
+ true, |
+ false, |
+ false)); |
satorux1
2011/11/11 00:43:55
The booleans are unreadable. Would be nice to add
hashimoto
2011/11/11 08:00:53
Done.
|
+ |
+ disks_.clear(); |
+ disks_.insert(std::pair<std::string, DiskMountManager::Disk*>( |
+ std::string(kTestDevicePath), disk1.get())); |
+ |
+ // Device Added |
+ chromeos::DiskMountManagerEventType evt; |
+ evt = chromeos::MOUNT_DEVICE_ADDED; |
+ UpdateDeviceChanged(evt, kTestSystemPath); |
+ |
+ // Disk Added |
+ evt = chromeos::MOUNT_DISK_ADDED; |
+ UpdateDiskChanged(evt, disk1.get()); |
+ |
+ // Disk Changed |
+ scoped_ptr<DiskMountManager::Disk> disk2(new DiskMountManager::Disk( |
+ std::string(kTestDevicePath), |
+ std::string(kTestMountPath), |
+ std::string(kTestSystemPath), |
+ std::string(kTestFilePath), |
+ std::string(kTestDeviceLabel), |
+ std::string(kTestDriveLabel), |
+ std::string(kTestParentPath), |
+ std::string(kTestSystemPathPrefix), |
+ FLASH, |
+ 1073741824, |
+ false, |
+ false, |
+ true, |
+ false, |
+ false)); |
satorux1
2011/11/11 00:43:55
ditto.
hashimoto
2011/11/11 08:00:53
Done.
|
+ disks_.clear(); |
+ disks_.insert(std::pair<std::string, DiskMountManager::Disk*>( |
+ std::string(kTestDevicePath), disk2.get())); |
+ evt = chromeos::MOUNT_DISK_CHANGED; |
+ UpdateDiskChanged(evt, disk2.get()); |
+} |
+ |
+void MockDiskMountManager::FireDeviceRemoveEvents() { |
+ scoped_ptr<DiskMountManager::Disk> disk(new DiskMountManager::Disk( |
+ std::string(kTestDevicePath), |
+ std::string(kTestMountPath), |
+ std::string(kTestSystemPath), |
+ std::string(kTestFilePath), |
+ std::string(kTestDeviceLabel), |
+ std::string(kTestDriveLabel), |
+ std::string(kTestParentPath), |
+ std::string(kTestSystemPathPrefix), |
+ FLASH, |
+ 1073741824, |
+ false, |
+ false, |
+ true, |
+ false, |
+ false)); |
+ disks_.clear(); |
+ disks_.insert(std::pair<std::string, DiskMountManager::Disk*>( |
+ std::string(kTestDevicePath), disk.get())); |
+ UpdateDiskChanged(chromeos::MOUNT_DISK_REMOVED, disk.get()); |
+} |
+ |
+void MockDiskMountManager::SetupDefaultReplies() { |
+ EXPECT_CALL(*this, AddObserver(_)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, RemoveObserver(_)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, disks()) |
+ .WillRepeatedly(ReturnRef(disks_)); |
+ EXPECT_CALL(*this, RequestMountInfoRefresh()) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, MountPath(_, _)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, UnmountPath(_)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, FormatUnmountedDevice(_)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, FormatMountedDevice(_)) |
+ .Times(AnyNumber()); |
+ EXPECT_CALL(*this, UnmountDeviceRecursive(_, _, _)) |
+ .Times(AnyNumber()); |
+} |
+ |
+void MockDiskMountManager::UpdateDiskChanged(DiskMountManagerEventType evt, |
+ const DiskMountManager::Disk* disk) |
+{ |
+ // Make sure we run on UI thread. |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ FOR_EACH_OBSERVER(Observer, observers_, DiskChanged(evt, disk)); |
+} |
+ |
+void MockDiskMountManager::UpdateDeviceChanged(DiskMountManagerEventType evt, |
+ const std::string& path) { |
+ // Make sure we run on UI thread. |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ FOR_EACH_OBSERVER(Observer, observers_, DeviceChanged(evt, path)); |
+} |
+ |
+} // namespace chromeos |