Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: chrome/browser/chromeos/file_manager/volume_manager_unittest.cc

Issue 160483004: Keep track of the list of currently mounted volumes in C++-side VolumeManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fix Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 disk_mount_manager_.get())); 152 disk_mount_manager_.get()));
153 } 153 }
154 154
155 content::TestBrowserThreadBundle thread_bundle_; 155 content::TestBrowserThreadBundle thread_bundle_;
156 scoped_ptr<chromeos::FakePowerManagerClient> power_manager_client_; 156 scoped_ptr<chromeos::FakePowerManagerClient> power_manager_client_;
157 scoped_ptr<FakeDiskMountManager> disk_mount_manager_; 157 scoped_ptr<FakeDiskMountManager> disk_mount_manager_;
158 scoped_ptr<TestingProfile> profile_; 158 scoped_ptr<TestingProfile> profile_;
159 scoped_ptr<VolumeManager> volume_manager_; 159 scoped_ptr<VolumeManager> volume_manager_;
160 }; 160 };
161 161
162 TEST_F(VolumeManagerTest, OnFileSystemMounted) { 162 TEST_F(VolumeManagerTest, OnDriveFileSystemMountAndUnmount) {
163 LoggingObserver observer; 163 LoggingObserver observer;
164 volume_manager_->AddObserver(&observer); 164 volume_manager_->AddObserver(&observer);
165 165
166 volume_manager_->OnFileSystemMounted(); 166 volume_manager_->OnFileSystemMounted();
167 167
168 ASSERT_EQ(1U, observer.events().size()); 168 ASSERT_EQ(1U, observer.events().size());
169 const LoggingObserver::Event& event = observer.events()[0]; 169 LoggingObserver::Event event = observer.events()[0];
170 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); 170 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type);
171 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), 171 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(),
172 event.device_path); 172 event.device_path);
173 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); 173 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
174 EXPECT_FALSE(event.is_remounting); 174 EXPECT_FALSE(event.is_remounting);
175 175
176 volume_manager_->RemoveObserver(&observer);
177 }
178
179 TEST_F(VolumeManagerTest, OnFileSystemBeingUnmounted) {
180 LoggingObserver observer;
181 volume_manager_->AddObserver(&observer);
182
183 volume_manager_->OnFileSystemBeingUnmounted(); 176 volume_manager_->OnFileSystemBeingUnmounted();
184 177
185 ASSERT_EQ(1U, observer.events().size()); 178 ASSERT_EQ(2U, observer.events().size());
186 const LoggingObserver::Event& event = observer.events()[0]; 179 event = observer.events()[1];
187 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type); 180 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type);
188 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(), 181 EXPECT_EQ(drive::util::GetDriveMountPointPath(profile_.get()).AsUTF8Unsafe(),
189 event.device_path); 182 event.device_path);
190 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); 183 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
191 184
192 volume_manager_->RemoveObserver(&observer); 185 volume_manager_->RemoveObserver(&observer);
193 } 186 }
194 187
188 TEST_F(VolumeManagerTest, OnDriveFileSystemUnmountWithoutMount) {
189 LoggingObserver observer;
190 volume_manager_->AddObserver(&observer);
191 volume_manager_->OnFileSystemBeingUnmounted();
192
193 // Unmount event for non-mounted volume is not reported.
194 ASSERT_EQ(0U, observer.events().size());
195 volume_manager_->RemoveObserver(&observer);
196 }
197
195 TEST_F(VolumeManagerTest, OnDiskEvent_Hidden) { 198 TEST_F(VolumeManagerTest, OnDiskEvent_Hidden) {
196 LoggingObserver observer; 199 LoggingObserver observer;
197 volume_manager_->AddObserver(&observer); 200 volume_manager_->AddObserver(&observer);
198 201
199 const bool kIsHidden = true; 202 const bool kIsHidden = true;
200 const chromeos::disks::DiskMountManager::Disk kDisk( 203 const chromeos::disks::DiskMountManager::Disk kDisk(
201 "device1", "", "", "", "", "", "", "", "", "", "", "", 204 "device1", "", "", "", "", "", "", "", "", "", "", "",
202 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, kIsHidden); 205 chromeos::DEVICE_TYPE_UNKNOWN, 0, false, false, false, false, kIsHidden);
203 206
204 volume_manager_->OnDiskEvent( 207 volume_manager_->OnDiskEvent(
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 431
429 volume_manager_->OnDeviceEvent( 432 volume_manager_->OnDeviceEvent(
430 chromeos::disks::DiskMountManager::DEVICE_SCANNED, "device1"); 433 chromeos::disks::DiskMountManager::DEVICE_SCANNED, "device1");
431 434
432 // SCANNED event is just ignored. 435 // SCANNED event is just ignored.
433 EXPECT_EQ(0U, observer.events().size()); 436 EXPECT_EQ(0U, observer.events().size());
434 437
435 volume_manager_->RemoveObserver(&observer); 438 volume_manager_->RemoveObserver(&observer);
436 } 439 }
437 440
438 TEST_F(VolumeManagerTest, OnMountEvent_Mounting) { 441 TEST_F(VolumeManagerTest, OnMountEvent_MountingAndUnmounting) {
439 LoggingObserver observer; 442 LoggingObserver observer;
440 volume_manager_->AddObserver(&observer); 443 volume_manager_->AddObserver(&observer);
441 444
442 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( 445 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint(
443 "device1", 446 "device1",
444 "mount1", 447 "mount1",
445 chromeos::MOUNT_TYPE_DEVICE, 448 chromeos::MOUNT_TYPE_DEVICE,
446 chromeos::disks::MOUNT_CONDITION_NONE); 449 chromeos::disks::MOUNT_CONDITION_NONE);
447 450
448 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING, 451 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::MOUNTING,
449 chromeos::MOUNT_ERROR_NONE, 452 chromeos::MOUNT_ERROR_NONE,
450 kMountPoint); 453 kMountPoint);
451 454
452 ASSERT_EQ(1U, observer.events().size()); 455 ASSERT_EQ(1U, observer.events().size());
453 const LoggingObserver::Event& event = observer.events()[0]; 456 LoggingObserver::Event event = observer.events()[0];
454 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); 457 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type);
455 EXPECT_EQ("device1", event.device_path); 458 EXPECT_EQ("device1", event.device_path);
456 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); 459 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
457 EXPECT_FALSE(event.is_remounting); 460 EXPECT_FALSE(event.is_remounting);
458 461
462 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING,
463 chromeos::MOUNT_ERROR_NONE,
464 kMountPoint);
465
466 ASSERT_EQ(2U, observer.events().size());
467 event = observer.events()[1];
468 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type);
469 EXPECT_EQ("device1", event.device_path);
470 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
471
459 volume_manager_->RemoveObserver(&observer); 472 volume_manager_->RemoveObserver(&observer);
460 } 473 }
461 474
462 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) { 475 TEST_F(VolumeManagerTest, OnMountEvent_Remounting) {
463 scoped_ptr<chromeos::disks::DiskMountManager::Disk> disk( 476 scoped_ptr<chromeos::disks::DiskMountManager::Disk> disk(
464 new chromeos::disks::DiskMountManager::Disk( 477 new chromeos::disks::DiskMountManager::Disk(
465 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "", 478 "device1", "", "", "", "", "", "", "", "", "", "uuid1", "",
466 chromeos::DEVICE_TYPE_UNKNOWN, 0, 479 chromeos::DEVICE_TYPE_UNKNOWN, 0,
467 false, false, false, false, false)); 480 false, false, false, false, false));
468 disk_mount_manager_->AddDiskForTest(disk.release()); 481 disk_mount_manager_->AddDiskForTest(disk.release());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 ASSERT_EQ(1U, observer.events().size()); 516 ASSERT_EQ(1U, observer.events().size());
504 const LoggingObserver::Event& event = observer.events()[0]; 517 const LoggingObserver::Event& event = observer.events()[0];
505 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type); 518 EXPECT_EQ(LoggingObserver::Event::VOLUME_MOUNTED, event.type);
506 EXPECT_EQ("device1", event.device_path); 519 EXPECT_EQ("device1", event.device_path);
507 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error); 520 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
508 EXPECT_TRUE(event.is_remounting); 521 EXPECT_TRUE(event.is_remounting);
509 522
510 volume_manager_->RemoveObserver(&observer); 523 volume_manager_->RemoveObserver(&observer);
511 } 524 }
512 525
513 TEST_F(VolumeManagerTest, OnMountEvent_Unmounting) { 526 TEST_F(VolumeManagerTest, OnMountEvent_UnmountingWithoutMounting) {
514 LoggingObserver observer; 527 LoggingObserver observer;
515 volume_manager_->AddObserver(&observer); 528 volume_manager_->AddObserver(&observer);
516 529
517 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint( 530 const chromeos::disks::DiskMountManager::MountPointInfo kMountPoint(
518 "device1", 531 "device1",
519 "mount1", 532 "mount1",
520 chromeos::MOUNT_TYPE_DEVICE, 533 chromeos::MOUNT_TYPE_DEVICE,
521 chromeos::disks::MOUNT_CONDITION_NONE); 534 chromeos::disks::MOUNT_CONDITION_NONE);
522 535
523 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING, 536 volume_manager_->OnMountEvent(chromeos::disks::DiskMountManager::UNMOUNTING,
524 chromeos::MOUNT_ERROR_NONE, 537 chromeos::MOUNT_ERROR_NONE,
525 kMountPoint); 538 kMountPoint);
526 539
527 ASSERT_EQ(1U, observer.events().size()); 540 // Unmount event for a disk not mounted in this manager is not reported.
528 const LoggingObserver::Event& event = observer.events()[0]; 541 ASSERT_EQ(0U, observer.events().size());
529 EXPECT_EQ(LoggingObserver::Event::VOLUME_UNMOUNTED, event.type);
530 EXPECT_EQ("device1", event.device_path);
531 EXPECT_EQ(chromeos::MOUNT_ERROR_NONE, event.mount_error);
532 542
533 volume_manager_->RemoveObserver(&observer); 543 volume_manager_->RemoveObserver(&observer);
534 } 544 }
535 545
536 TEST_F(VolumeManagerTest, OnFormatEvent_Started) { 546 TEST_F(VolumeManagerTest, OnFormatEvent_Started) {
537 LoggingObserver observer; 547 LoggingObserver observer;
538 volume_manager_->AddObserver(&observer); 548 volume_manager_->AddObserver(&observer);
539 549
540 volume_manager_->OnFormatEvent( 550 volume_manager_->OnFormatEvent(
541 chromeos::disks::DiskMountManager::FORMAT_STARTED, 551 chromeos::disks::DiskMountManager::FORMAT_STARTED,
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
665 VolumeInfo volume_info; 675 VolumeInfo volume_info;
666 ASSERT_FALSE(volume_manager_->FindVolumeInfoById( 676 ASSERT_FALSE(volume_manager_->FindVolumeInfoById(
667 "nonexistent", &volume_info)); 677 "nonexistent", &volume_info));
668 ASSERT_TRUE(volume_manager_->FindVolumeInfoById( 678 ASSERT_TRUE(volume_manager_->FindVolumeInfoById(
669 "downloads:Downloads", &volume_info)); 679 "downloads:Downloads", &volume_info));
670 EXPECT_EQ("downloads:Downloads", volume_info.volume_id); 680 EXPECT_EQ("downloads:Downloads", volume_info.volume_id);
671 EXPECT_EQ(VOLUME_TYPE_DOWNLOADS_DIRECTORY, volume_info.type); 681 EXPECT_EQ(VOLUME_TYPE_DOWNLOADS_DIRECTORY, volume_info.type);
672 } 682 }
673 683
674 } // namespace file_manager 684 } // namespace file_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698