Chromium Code Reviews| Index: chrome/browser/system_monitor/removable_device_notifications_linux_unittest.cc |
| diff --git a/chrome/browser/system_monitor/removable_device_notifications_linux_unittest.cc b/chrome/browser/system_monitor/removable_device_notifications_linux_unittest.cc |
| index 538f18021bee805ab03f529221b748d203d96b51..2fc51a3b31be67220a6cd0195f1ad2fae4578d76 100644 |
| --- a/chrome/browser/system_monitor/removable_device_notifications_linux_unittest.cc |
| +++ b/chrome/browser/system_monitor/removable_device_notifications_linux_unittest.cc |
| @@ -19,6 +19,7 @@ |
| #include "base/system_monitor/system_monitor.h" |
| #include "base/test/mock_devices_changed_observer.h" |
| #include "base/utf_string_conversions.h" |
| +#include "chrome/browser/system_monitor/media_device_notifications_utils.h" |
| #include "chrome/browser/system_monitor/media_storage_util.h" |
| #include "chrome/browser/system_monitor/removable_device_constants.h" |
| #include "content/public/test/test_browser_thread.h" |
| @@ -52,23 +53,28 @@ struct TestDeviceData { |
| const char* unique_id; |
| const char* device_name; |
| MediaStorageUtil::Type type; |
| + uint64 partition_size_in_bytes; |
| }; |
| const TestDeviceData kTestDeviceData[] = { |
| { kDeviceDCIM1, "UUID:FFF0-000F", "TEST_USB_MODEL_1", |
| - MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM}, |
| + MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM, 88997788 }, |
| { kDeviceDCIM2, "VendorModelSerial:ComName:Model2010:8989", |
| - "TEST_USB_MODEL_2", MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM}, |
| + "TEST_USB_MODEL_2", MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM, |
| + 8773 }, |
| { kDeviceDCIM3, "VendorModelSerial:::WEM319X792", "TEST_USB_MODEL_3", |
| - MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM}, |
| + MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM, 22377892837 }, |
| { kDeviceNoDCIM, "UUID:ABCD-1234", "TEST_USB_MODEL_4", |
| - MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM}, |
| - { kDeviceFixed, "UUID:743A91FD2349", "TEST_USB_MODEL_5", |
| - MediaStorageUtil::FIXED_MASS_STORAGE}, |
| + MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM, 512 }, |
| + { kDeviceFixed, "UUID:743A-2349", "743A-2349", |
| + MediaStorageUtil::FIXED_MASS_STORAGE, 172892 }, |
| }; |
| -void GetDeviceInfo(const FilePath& device_path, std::string* id, |
| - string16* name, bool* removable) { |
| +void GetDeviceInfo(const FilePath& device_path, |
| + std::string* id, |
| + string16* name, |
| + bool* removable, |
| + uint64* partition_size_in_bytes) { |
| for (size_t i = 0; i < arraysize(kTestDeviceData); i++) { |
| if (device_path.value() == kTestDeviceData[i].device_path) { |
| if (id) |
| @@ -81,14 +87,24 @@ void GetDeviceInfo(const FilePath& device_path, std::string* id, |
| (type == MediaStorageUtil::REMOVABLE_MASS_STORAGE_WITH_DCIM) || |
| (type == MediaStorageUtil::REMOVABLE_MASS_STORAGE_NO_DCIM); |
| } |
| + if (partition_size_in_bytes) |
| + *partition_size_in_bytes = kTestDeviceData[i].partition_size_in_bytes; |
| return; |
| } |
| } |
| NOTREACHED(); |
| } |
| +uint64 GetDevicePartitionSize(const std::string& device) { |
| + for (size_t i= 0; i < arraysize(kTestDeviceData); ++i) { |
|
Lei Zhang
2012/11/13 01:16:12
nit: "i ="
kmadhusu
2012/11/13 17:47:44
Done.
|
| + if (device == kTestDeviceData[i].device_path) |
| + return kTestDeviceData[i].partition_size_in_bytes; |
| + } |
| + return 0; |
| +} |
| + |
| std::string GetDeviceId(const std::string& device) { |
| - for (size_t i = 0; i < arraysize(kTestDeviceData); i++) { |
| + for (size_t i = 0; i < arraysize(kTestDeviceData); ++i) { |
| if (device == kTestDeviceData[i].device_path) { |
| return MediaStorageUtil::MakeDeviceId(kTestDeviceData[i].type, |
| kTestDeviceData[i].unique_id); |
| @@ -100,6 +116,18 @@ std::string GetDeviceId(const std::string& device) { |
| } |
| return std::string(); |
| } |
| + |
| +string16 GetDeviceNameWithSizeDetails(const std::string& device) { |
| + for (size_t i = 0; i < arraysize(kTestDeviceData); ++i) { |
| + if (device == kTestDeviceData[i].device_path) { |
| + return GetDisplayNameForDevice( |
| + kTestDeviceData[i].partition_size_in_bytes, |
| + ASCIIToUTF16(kTestDeviceData[i].device_name)); |
| + } |
| + } |
| + return string16(); |
| +} |
| + |
| string16 GetDeviceName(const std::string& device) { |
| for (size_t i = 0; i < arraysize(kTestDeviceData); i++) { |
| if (device == kTestDeviceData[i].device_path) |
| @@ -316,9 +344,10 @@ TEST_F(RemovableDeviceNotificationLinuxTest, BasicAttachDetach) { |
| // Only |kDeviceDCIM2| should be attached, since |kDeviceFixed| has a bad |
| // path. |
| EXPECT_CALL(observer(), |
| - OnRemovableStorageAttached(GetDeviceId(kDeviceDCIM2), |
| - GetDeviceName(kDeviceDCIM2), |
| - test_path.value())) |
| + OnRemovableStorageAttached( |
| + GetDeviceId(kDeviceDCIM2), |
| + GetDeviceNameWithSizeDetails(kDeviceDCIM2), |
| + test_path.value())) |
| .InSequence(mock_sequence); |
| AppendToMtabAndRunLoop(test_data, arraysize(test_data)); |
| @@ -338,9 +367,10 @@ TEST_F(RemovableDeviceNotificationLinuxTest, Removable) { |
| }; |
| // |kDeviceDCIM1| should be attached as expected. |
| EXPECT_CALL(observer(), |
| - OnRemovableStorageAttached(GetDeviceId(kDeviceDCIM1), |
| - GetDeviceName(kDeviceDCIM1), |
| - test_path_a.value())) |
| + OnRemovableStorageAttached( |
| + GetDeviceId(kDeviceDCIM1), |
| + GetDeviceNameWithSizeDetails(kDeviceDCIM1), |
| + test_path_a.value())) |
| .InSequence(mock_sequence); |
| AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
| @@ -359,9 +389,10 @@ TEST_F(RemovableDeviceNotificationLinuxTest, Removable) { |
| // |kDeviceNoDCIM| should be attached as expected. |
| EXPECT_CALL(observer(), |
| - OnRemovableStorageAttached(GetDeviceId(kDeviceNoDCIM), |
| - GetDeviceName(kDeviceNoDCIM), |
| - test_path_b.value())) |
| + OnRemovableStorageAttached( |
| + GetDeviceId(kDeviceNoDCIM), |
| + GetDeviceNameWithSizeDetails(kDeviceNoDCIM), |
| + test_path_b.value())) |
| .InSequence(mock_sequence); |
| MtabTestData test_data3[] = { |
| MtabTestData(kDeviceNoDCIM, test_path_b.value(), kValidFS), |
| @@ -634,6 +665,29 @@ TEST_F(RemovableDeviceNotificationLinuxTest, DeviceLookUp) { |
| EXPECT_EQ(GetDeviceId(kDeviceFixed), device_info.device_id); |
| } |
| +TEST_F(RemovableDeviceNotificationLinuxTest, DevicePartitionSize) { |
| + FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); |
| + FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); |
| + ASSERT_FALSE(test_path_a.empty()); |
| + ASSERT_FALSE(test_path_b.empty()); |
| + |
| + MtabTestData test_data1[] = { |
| + MtabTestData(kDeviceDCIM1, test_path_a.value(), kValidFS), |
| + MtabTestData(kDeviceNoDCIM, test_path_b.value(), kValidFS), |
| + MtabTestData(kDeviceFixed, kInvalidPath, kInvalidFS), |
| + }; |
| + EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); |
| + EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
| + AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
| + |
| + EXPECT_EQ(GetDevicePartitionSize(kDeviceDCIM1), |
| + notifier()->GetStorageSize(test_path_a.value())); |
| + EXPECT_EQ(GetDevicePartitionSize(kDeviceNoDCIM), |
| + notifier()->GetStorageSize(test_path_b.value())); |
| + EXPECT_EQ(GetDevicePartitionSize(kInvalidPath), |
| + notifier()->GetStorageSize(kInvalidPath)); |
| +} |
| + |
| } // namespace |
| } // namespace chrome |