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..32a02ae1d2da71a1968da58606fa7fcdf3b451db 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) { |
+ 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 |