| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/file_manager/volume_manager.h" | 5 #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 // Available on DEVICE_ADDED, DEVICE_REMOVED, VOLUME_MOUNTED, | 43 // Available on DEVICE_ADDED, DEVICE_REMOVED, VOLUME_MOUNTED, |
| 44 // VOLUME_UNMOUNTED, FORMAT_STARTED and FORMAT_COMPLETED. | 44 // VOLUME_UNMOUNTED, FORMAT_STARTED and FORMAT_COMPLETED. |
| 45 std::string device_path; | 45 std::string device_path; |
| 46 | 46 |
| 47 // Available on DISK_ADDED. | 47 // Available on DISK_ADDED. |
| 48 bool mounting; | 48 bool mounting; |
| 49 | 49 |
| 50 // Available on VOLUME_MOUNTED and VOLUME_UNMOUNTED. | 50 // Available on VOLUME_MOUNTED and VOLUME_UNMOUNTED. |
| 51 chromeos::MountError mount_error; | 51 chromeos::MountError mount_error; |
| 52 | 52 |
| 53 // Available on VOLUME_MOUNTED. | |
| 54 bool is_remounting; | |
| 55 | |
| 56 // Available on FORMAT_STARTED and FORMAT_COMPLETED. | 53 // Available on FORMAT_STARTED and FORMAT_COMPLETED. |
| 57 bool success; | 54 bool success; |
| 58 }; | 55 }; |
| 59 | 56 |
| 60 LoggingObserver() {} | 57 LoggingObserver() {} |
| 61 virtual ~LoggingObserver() {} | 58 virtual ~LoggingObserver() {} |
| 62 | 59 |
| 63 const std::vector<Event>& events() const { return events_; } | 60 const std::vector<Event>& events() const { return events_; } |
| 64 | 61 |
| 65 // VolumeManagerObserver overrides. | 62 // VolumeManagerObserver overrides. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 88 } | 85 } |
| 89 | 86 |
| 90 virtual void OnDeviceRemoved(const std::string& device_path) OVERRIDE { | 87 virtual void OnDeviceRemoved(const std::string& device_path) OVERRIDE { |
| 91 Event event; | 88 Event event; |
| 92 event.type = Event::DEVICE_REMOVED; | 89 event.type = Event::DEVICE_REMOVED; |
| 93 event.device_path = device_path; | 90 event.device_path = device_path; |
| 94 events_.push_back(event); | 91 events_.push_back(event); |
| 95 } | 92 } |
| 96 | 93 |
| 97 virtual void OnVolumeMounted(chromeos::MountError error_code, | 94 virtual void OnVolumeMounted(chromeos::MountError error_code, |
| 98 const VolumeInfo& volume_info, | 95 const VolumeInfo& volume_info) OVERRIDE { |
| 99 bool is_remounting) OVERRIDE { | |
| 100 Event event; | 96 Event event; |
| 101 event.type = Event::VOLUME_MOUNTED; | 97 event.type = Event::VOLUME_MOUNTED; |
| 102 event.device_path = volume_info.source_path.AsUTF8Unsafe(); | 98 event.device_path = volume_info.source_path.AsUTF8Unsafe(); |
| 103 event.mount_error = error_code; | 99 event.mount_error = error_code; |
| 104 event.is_remounting = is_remounting; | |
| 105 events_.push_back(event); | 100 events_.push_back(event); |
| 106 } | 101 } |
| 107 | 102 |
| 108 virtual void OnVolumeUnmounted(chromeos::MountError error_code, | 103 virtual void OnVolumeUnmounted(chromeos::MountError error_code, |
| 109 const VolumeInfo& volume_info) OVERRIDE { | 104 const VolumeInfo& volume_info) OVERRIDE { |
| 110 Event event; | 105 Event event; |
| 111 event.type = Event::VOLUME_UNMOUNTED; | 106 event.type = Event::VOLUME_UNMOUNTED; |
| 112 event.device_path = volume_info.source_path.AsUTF8Unsafe(); | 107 event.device_path = volume_info.source_path.AsUTF8Unsafe(); |
| 113 event.mount_error = error_code; | 108 event.mount_error = error_code; |
| 114 events_.push_back(event); | 109 events_.push_back(event); |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 volume_manager()->AddObserver(&observer); | 193 volume_manager()->AddObserver(&observer); |
| 199 | 194 |
| 200 volume_manager()->OnFileSystemMounted(); | 195 volume_manager()->OnFileSystemMounted(); |
| 201 | 196 |
| 202 ASSERT_EQ(1U, observer.events().size()); | 197 ASSERT_EQ(1U, observer.events().size()); |
| 203 LoggingObserver::Event event = observer.events()[0]; | 198 LoggingObserver::Event event = observer.events()[0]; |
| 204 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 199 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 205 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile()).AsUTF8Unsafe(), | 200 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile()).AsUTF8Unsafe(), |
| 206 event.device_path); | 201 event.device_path); |
| 207 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 202 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 208 EXPECT_FALSE(event.is_remounting); | |
| 209 | 203 |
| 210 volume_manager()->OnFileSystemBeingUnmounted(); | 204 volume_manager()->OnFileSystemBeingUnmounted(); |
| 211 | 205 |
| 212 ASSERT_EQ(2U, observer.events().size()); | 206 ASSERT_EQ(2U, observer.events().size()); |
| 213 event = observer.events()[1]; | 207 event = observer.events()[1]; |
| 214 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); | 208 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); |
| 215 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile()).AsUTF8Unsafe(), | 209 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile()).AsUTF8Unsafe(), |
| 216 event.device_path); | 210 event.device_path); |
| 217 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 211 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 218 | 212 |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 490 | 484 |
| 491 volume_manager()->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING, | 485 volume_manager()->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING, |
| 492 chromeos::MOUNT_ERROR_NONE, | 486 chromeos::MOUNT_ERROR_NONE, |
| 493 kMountPoint); | 487 kMountPoint); |
| 494 | 488 |
| 495 ASSERT_EQ(1U, observer.events().size()); | 489 ASSERT_EQ(1U, observer.events().size()); |
| 496 LoggingObserver::Event event = observer.events()[0]; | 490 LoggingObserver::Event event = observer.events()[0]; |
| 497 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 491 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 498 EXPECT_EQ("device1", event.device_path); | 492 EXPECT_EQ("device1", event.device_path); |
| 499 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 493 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 500 EXPECT_FALSE(event.is_remounting); | |
| 501 | 494 |
| 502 volume_manager()->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, | 495 volume_manager()->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, |
| 503 chromeos::MOUNT_ERROR_NONE, | 496 chromeos::MOUNT_ERROR_NONE, |
| 504 kMountPoint); | 497 kMountPoint); |
| 505 | 498 |
| 506 ASSERT_EQ(2U, observer.events().size()); | 499 ASSERT_EQ(2U, observer.events().size()); |
| 507 event = observer.events()[1]; | 500 event = observer.events()[1]; |
| 508 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); | 501 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); |
| 509 EXPECT_EQ("device1", event.device_path); | 502 EXPECT_EQ("device1", event.device_path); |
| 510 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 503 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 553 chromeos::disks::DiskMountManager::MOUNTING, | 546 chromeos::disks::DiskMountManager::MOUNTING, |
| 554 chromeos::MOUNT_ERROR_NONE, | 547 chromeos::MOUNT_ERROR_NONE, |
| 555 kMountPoint); | 548 kMountPoint); |
| 556 } | 549 } |
| 557 | 550 |
| 558 ASSERT_EQ(1U, observer.events().size()); | 551 ASSERT_EQ(1U, observer.events().size()); |
| 559 const LoggingObserver::Event& event = observer.events()[0]; | 552 const LoggingObserver::Event& event = observer.events()[0]; |
| 560 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); | 553 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); |
| 561 EXPECT_EQ("device1", event.device_path); | 554 EXPECT_EQ("device1", event.device_path); |
| 562 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); | 555 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); |
| 563 EXPECT_TRUE(event.is_remounting); | |
| 564 | 556 |
| 565 volume_manager()->RemoveObserver(&observer); | 557 volume_manager()->RemoveObserver(&observer); |
| 566 } | 558 } |
| 567 | 559 |
| 568 TEST_F(VolumeManagerTest, OnMountEvent_UnmountingWithoutMounting) { | 560 TEST_F(VolumeManagerTest, OnMountEvent_UnmountingWithoutMounting) { |
| 569 LoggingObserver observer; | 561 LoggingObserver observer; |
| 570 volume_manager()->AddObserver(&observer); | 562 volume_manager()->AddObserver(&observer); |
| 571 | 563 |
| 572 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( | 564 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( |
| 573 "device1", | 565 "device1", |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 864 // Detach | 856 // Detach |
| 865 volume_manager()->OnRemovableStorageDetached(info); | 857 volume_manager()->OnRemovableStorageDetached(info); |
| 866 ASSERT_EQ(2u, observer.events().size()); | 858 ASSERT_EQ(2u, observer.events().size()); |
| 867 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, | 859 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, |
| 868 observer.events()[1].type); | 860 observer.events()[1].type); |
| 869 | 861 |
| 870 EXPECT_FALSE(volume_manager()->FindVolumeInfoById("mtp:model", &volume_info)); | 862 EXPECT_FALSE(volume_manager()->FindVolumeInfoById("mtp:model", &volume_info)); |
| 871 } | 863 } |
| 872 | 864 |
| 873 } // namespace file_manager | 865 } // namespace file_manager |
| OLD | NEW |