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 |