OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // RemovableDeviceNotificationsLinux unit tests. | 5 // RemovableDeviceNotificationsLinux unit tests. |
6 | 6 |
7 #include "chrome/browser/media_gallery/removable_device_notifications_linux.h" | 7 #include "chrome/browser/media_gallery/removable_device_notifications_linux.h" |
8 | 8 |
9 #include <mntent.h> | 9 #include <mntent.h> |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
303 | 303 |
304 DISALLOW_COPY_AND_ASSIGN(RemovableDeviceNotificationLinuxTest); | 304 DISALLOW_COPY_AND_ASSIGN(RemovableDeviceNotificationLinuxTest); |
305 }; | 305 }; |
306 | 306 |
307 // Simple test case where we attach and detach a media device. | 307 // Simple test case where we attach and detach a media device. |
308 TEST_F(RemovableDeviceNotificationLinuxTest, BasicAttachDetach) { | 308 TEST_F(RemovableDeviceNotificationLinuxTest, BasicAttachDetach) { |
309 testing::Sequence mock_sequence; | 309 testing::Sequence mock_sequence; |
310 FilePath test_path = CreateMountPointWithDCIMDir(kMountPointA); | 310 FilePath test_path = CreateMountPointWithDCIMDir(kMountPointA); |
311 ASSERT_FALSE(test_path.empty()); | 311 ASSERT_FALSE(test_path.empty()); |
312 MtabTestData test_data[] = { | 312 MtabTestData test_data[] = { |
313 MtabTestData(kDevice1, kInvalidPath, kValidFS), | |
314 MtabTestData(kDevice2, test_path.value(), kValidFS), | 313 MtabTestData(kDevice2, test_path.value(), kValidFS), |
314 MtabTestData(kDevice5, kInvalidPath, kValidFS), | |
315 }; | 315 }; |
316 // Only |kDevice2| should be attached, since |kDevice1| has a bad path. | 316 // Only |kDevice2| should be attached, since |kDevice1| has a bad path. |
kmadhusu
2012/08/29 01:12:02
nit: kDevice1 => kDevice5
vandebo (ex-Chrome)
2012/08/29 06:10:13
Done.
kmadhusu
2012/08/29 16:46:19
Only |kDevice2| should be attached, since |kDevice
vandebo (ex-Chrome)
2012/08/29 17:04:39
Oops, fixed.
| |
317 EXPECT_CALL(observer(), OnRemovableStorageAttached(GetDeviceId(kDevice2), | 317 EXPECT_CALL(observer(), OnRemovableStorageAttached(GetDeviceId(kDevice2), |
318 GetDeviceName(kDevice2), | 318 GetDeviceName(kDevice2), |
319 test_path.value())) | 319 test_path.value())) |
320 .InSequence(mock_sequence); | 320 .InSequence(mock_sequence); |
321 AppendToMtabAndRunLoop(test_data, arraysize(test_data)); | 321 AppendToMtabAndRunLoop(test_data, arraysize(test_data)); |
322 | 322 |
323 // |kDevice2| should be detached here. | 323 // |kDevice2| should be detached here. |
324 EXPECT_CALL(observer(), OnRemovableStorageDetached(GetDeviceId(kDevice2))) | 324 EXPECT_CALL(observer(), OnRemovableStorageDetached(GetDeviceId(kDevice2))) |
325 .InSequence(mock_sequence); | 325 .InSequence(mock_sequence); |
326 WriteEmptyMtabAndRunLoop(); | 326 WriteEmptyMtabAndRunLoop(); |
327 } | 327 } |
328 | 328 |
329 // Only mount points with DCIM directories are recognized. | 329 // Only removable devices are recognized. |
330 TEST_F(RemovableDeviceNotificationLinuxTest, DCIM) { | 330 TEST_F(RemovableDeviceNotificationLinuxTest, Removable) { |
331 testing::Sequence mock_sequence; | 331 testing::Sequence mock_sequence; |
332 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); | 332 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); |
333 ASSERT_FALSE(test_path_a.empty()); | 333 ASSERT_FALSE(test_path_a.empty()); |
334 MtabTestData test_data1[] = { | 334 MtabTestData test_data1[] = { |
335 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 335 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
336 }; | 336 }; |
337 // |kDevice1| should be attached as expected. | 337 // |kDevice1| should be attached as expected. |
338 EXPECT_CALL(observer(), OnRemovableStorageAttached(GetDeviceId(kDevice1), | 338 EXPECT_CALL(observer(), OnRemovableStorageAttached(GetDeviceId(kDevice1), |
339 GetDeviceName(kDevice1), | 339 GetDeviceName(kDevice1), |
340 test_path_a.value())) | 340 test_path_a.value())) |
341 .InSequence(mock_sequence); | 341 .InSequence(mock_sequence); |
342 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); | 342 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
343 | 343 |
344 // This should do nothing, since |kMountPointB| does not have a DCIM dir. | 344 // This should do nothing, since |kDevice5| is not removable. |
345 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); | 345 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); |
346 ASSERT_FALSE(test_path_b.empty()); | 346 ASSERT_FALSE(test_path_b.empty()); |
347 MtabTestData test_data2[] = { | 347 MtabTestData test_data2[] = { |
348 MtabTestData(kDevice2, test_path_b.value(), kValidFS), | 348 MtabTestData(kDevice5, test_path_b.value(), kValidFS), |
349 }; | 349 }; |
350 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); | 350 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); |
351 | 351 |
352 // |kDevice1| should be detached as expected. | 352 // |kDevice1| should be detached as expected. |
353 EXPECT_CALL(observer(), OnRemovableStorageDetached(GetDeviceId(kDevice1))) | 353 EXPECT_CALL(observer(), OnRemovableStorageDetached(GetDeviceId(kDevice1))) |
354 .InSequence(mock_sequence); | 354 .InSequence(mock_sequence); |
kmadhusu
2012/08/29 01:12:02
We will also receive an attach and detach for kDev
vandebo (ex-Chrome)
2012/08/29 06:10:13
No we won't, device5 is not removable.
kmadhusu
2012/08/29 16:46:19
For readability, we should have better names for t
vandebo (ex-Chrome)
2012/08/29 17:04:39
Done.
| |
355 WriteEmptyMtabAndRunLoop(); | 355 WriteEmptyMtabAndRunLoop(); |
356 | |
357 // |kDevice4| should be attached as expected. | |
358 EXPECT_CALL(observer(), OnRemovableStorageAttached(GetDeviceId(kDevice4), | |
359 GetDeviceName(kDevice4), | |
360 test_path_b.value())) | |
361 .InSequence(mock_sequence); | |
362 MtabTestData test_data3[] = { | |
363 MtabTestData(kDevice4, test_path_b.value(), kValidFS), | |
364 }; | |
365 AppendToMtabAndRunLoop(test_data3, arraysize(test_data3)); | |
366 | |
367 // |kDevice4| should be detached as expected. | |
368 EXPECT_CALL(observer(), OnRemovableStorageDetached(GetDeviceId(kDevice4))) | |
369 .InSequence(mock_sequence); | |
370 WriteEmptyMtabAndRunLoop(); | |
356 } | 371 } |
357 | 372 |
358 // More complicated test case with multiple devices on multiple mount points. | 373 // More complicated test case with multiple devices on multiple mount points. |
359 TEST_F(RemovableDeviceNotificationLinuxTest, SwapMountPoints) { | 374 TEST_F(RemovableDeviceNotificationLinuxTest, SwapMountPoints) { |
360 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); | 375 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); |
361 FilePath test_path_b = CreateMountPointWithDCIMDir(kMountPointB); | 376 FilePath test_path_b = CreateMountPointWithDCIMDir(kMountPointB); |
362 ASSERT_FALSE(test_path_a.empty()); | 377 ASSERT_FALSE(test_path_a.empty()); |
363 ASSERT_FALSE(test_path_b.empty()); | 378 ASSERT_FALSE(test_path_b.empty()); |
364 | 379 |
365 // Attach two devices. | 380 // Attach two devices. |
366 // kDevice1 -> kMountPointA | 381 // kDevice1 -> kMountPointA * |
367 // kDevice2 -> kMountPointB | 382 // kDevice2 -> kMountPointB * |
kmadhusu
2012/08/29 16:46:19
nit: It took a while for me to understand what "*"
vandebo (ex-Chrome)
2012/08/29 17:04:39
Done.
| |
368 MtabTestData test_data1[] = { | 383 MtabTestData test_data1[] = { |
369 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 384 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
370 MtabTestData(kDevice2, test_path_b.value(), kValidFS), | 385 MtabTestData(kDevice2, test_path_b.value(), kValidFS), |
371 }; | 386 }; |
372 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); | 387 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); |
373 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 388 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
374 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); | 389 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
375 | 390 |
376 // Detach two devices from old mount points and attach the devices at new | 391 // Detach two devices from old mount points and attach the devices at new |
377 // mount points. | 392 // mount points. |
378 // kDevice1 -> kMountPointB | 393 // kDevice1 -> kMountPointB * |
379 // kDevice2 -> kMountPointA | 394 // kDevice2 -> kMountPointA * |
380 MtabTestData test_data2[] = { | 395 MtabTestData test_data2[] = { |
381 MtabTestData(kDevice1, test_path_b.value(), kValidFS), | 396 MtabTestData(kDevice1, test_path_b.value(), kValidFS), |
382 MtabTestData(kDevice2, test_path_a.value(), kValidFS), | 397 MtabTestData(kDevice2, test_path_a.value(), kValidFS), |
383 }; | 398 }; |
384 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); | 399 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); |
385 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(2); | 400 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(2); |
386 OverwriteMtabAndRunLoop(test_data2, arraysize(test_data2)); | 401 OverwriteMtabAndRunLoop(test_data2, arraysize(test_data2)); |
387 | 402 |
388 // Detach all devices. | 403 // Detach all devices. |
389 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 404 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
476 // Attach |kDevice1| to |kMountPointB|. | 491 // Attach |kDevice1| to |kMountPointB|. |
477 // kDevice1 -> kMountPointA * | 492 // kDevice1 -> kMountPointA * |
478 // kDevice1 -> kMountPointB | 493 // kDevice1 -> kMountPointB |
479 MtabTestData test_data2[] = { | 494 MtabTestData test_data2[] = { |
480 MtabTestData(kDevice1, test_path_b.value(), kValidFS), | 495 MtabTestData(kDevice1, test_path_b.value(), kValidFS), |
481 }; | 496 }; |
482 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 497 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
483 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 498 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
484 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); | 499 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); |
485 | 500 |
486 // Attach |kDevice4| (a non-DCIM device) to |kMountPointA|. | 501 // Attach |kDevice5| (a non-removable device) to |kMountPointA|. |
487 // kDevice1 -> kMountPointA | 502 // kDevice1 -> kMountPointA |
488 // kDevice1 -> kMountPointB * | 503 // kDevice1 -> kMountPointB * |
489 // kDevice4 -> kMountPointA | 504 // kDevice5 -> kMountPointA |
490 MtabTestData test_data3[] = { | 505 MtabTestData test_data3[] = { |
491 MtabTestData(kDevice4, test_path_a.value(), kValidFS), | 506 MtabTestData(kDevice5, test_path_a.value(), kValidFS), |
492 }; | 507 }; |
493 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(1); | 508 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(1); |
494 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); | 509 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); |
495 RemoveDCIMDirFromMountPoint(kMountPointA); | 510 RemoveDCIMDirFromMountPoint(kMountPointA); |
496 AppendToMtabAndRunLoop(test_data3, arraysize(test_data3)); | 511 AppendToMtabAndRunLoop(test_data3, arraysize(test_data3)); |
497 | 512 |
498 // Detach |kDevice4|. | 513 // Detach |kDevice5|. |
499 // kDevice1 -> kMountPointA | 514 // kDevice1 -> kMountPointA |
500 // kDevice1 -> kMountPointB * | 515 // kDevice1 -> kMountPointB * |
501 MtabTestData test_data4[] = { | 516 MtabTestData test_data4[] = { |
502 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 517 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
503 MtabTestData(kDevice1, test_path_b.value(), kValidFS), | 518 MtabTestData(kDevice1, test_path_b.value(), kValidFS), |
504 }; | 519 }; |
505 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 520 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
506 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 521 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
522 CreateMountPointWithDCIMDir(kMountPointA); | |
507 OverwriteMtabAndRunLoop(test_data4, arraysize(test_data4)); | 523 OverwriteMtabAndRunLoop(test_data4, arraysize(test_data4)); |
508 | 524 |
509 // Detach |kDevice1| from |kMountPointA|. | 525 // Attach |kDevice4| (a non-DCIM device) to |kMountPointB|. |
510 // kDevice1 -> kMountPointB * | 526 // kDevice1 -> kMountPointA * |
527 // kDevice1 -> kMountPointB | |
528 // kDevice4 -> kMountPointB * | |
529 MtabTestData test_data5[] = { | |
530 MtabTestData(kDevice4, test_path_b.value(), kValidFS), | |
531 }; | |
532 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); | |
533 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); | |
534 file_util::Delete(test_path_b.Append("DCIM"), false); | |
535 AppendToMtabAndRunLoop(test_data5, arraysize(test_data5)); | |
536 | |
537 // Detach |kDevice4|. | |
538 // kDevice1 -> kMountPointA * | |
539 // kDevice1 -> kMountPointB | |
540 MtabTestData test_data6[] = { | |
541 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | |
542 MtabTestData(kDevice1, test_path_b.value(), kValidFS), | |
543 }; | |
544 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | |
545 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); | |
546 CreateMountPointWithDCIMDir(kMountPointB); | |
547 OverwriteMtabAndRunLoop(test_data6, arraysize(test_data6)); | |
548 | |
549 // Detach |kDevice1| from |kMountPointB|. | |
550 // kDevice1 -> kMountPointA * | |
511 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 551 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
512 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 552 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
513 OverwriteMtabAndRunLoop(test_data2, arraysize(test_data2)); | 553 OverwriteMtabAndRunLoop(test_data1, arraysize(test_data1)); |
514 | 554 |
515 // Detach all devices. | 555 // Detach all devices. |
516 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 556 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
517 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); | 557 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); |
518 WriteEmptyMtabAndRunLoop(); | 558 WriteEmptyMtabAndRunLoop(); |
519 } | 559 } |
520 | 560 |
521 TEST_F(RemovableDeviceNotificationLinuxTest, MountLookUp) { | 561 TEST_F(RemovableDeviceNotificationLinuxTest, MountLookUp) { |
522 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); | 562 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); |
523 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); | 563 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); |
524 FilePath test_path_c = CreateMountPointWithoutDCIMDir(kMountPointC); | 564 FilePath test_path_c = CreateMountPointWithoutDCIMDir(kMountPointC); |
525 ASSERT_FALSE(test_path_a.empty()); | 565 ASSERT_FALSE(test_path_a.empty()); |
526 ASSERT_FALSE(test_path_b.empty()); | 566 ASSERT_FALSE(test_path_b.empty()); |
527 ASSERT_FALSE(test_path_c.empty()); | 567 ASSERT_FALSE(test_path_c.empty()); |
528 | 568 |
529 // Attach to one first. | 569 // Attach to one first. |
530 // kDevice1 -> kMountPointA * | 570 // kDevice1 -> kMountPointA * |
531 // kDevice4 -> kMountPointB | 571 // kDevice4 -> kMountPointB * |
532 // kDevice5 -> kMountPointC | 572 // kDevice5 -> kMountPointC |
kmadhusu
2012/08/29 01:12:02
Why did you add a * in kMountPointB but not to kMo
vandebo (ex-Chrome)
2012/08/29 06:10:13
The mount points with *'s are the ones we've notif
| |
533 MtabTestData test_data1[] = { | 573 MtabTestData test_data1[] = { |
534 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 574 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
535 MtabTestData(kDevice4, test_path_b.value(), kValidFS), | 575 MtabTestData(kDevice4, test_path_b.value(), kValidFS), |
536 MtabTestData(kDevice5, test_path_c.value(), kValidFS), | 576 MtabTestData(kDevice5, test_path_c.value(), kValidFS), |
537 }; | 577 }; |
538 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(1); | 578 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); |
539 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 579 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
540 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); | 580 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
541 | 581 |
542 EXPECT_EQ(test_path_a, | 582 EXPECT_EQ(test_path_a, |
543 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice1))); | 583 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice1))); |
544 EXPECT_EQ(test_path_b, | 584 EXPECT_EQ(test_path_b, |
545 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice4))); | 585 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice4))); |
546 EXPECT_EQ(test_path_c, | 586 EXPECT_EQ(test_path_c, |
547 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice5))); | 587 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice5))); |
548 EXPECT_EQ(FilePath(), | 588 EXPECT_EQ(FilePath(), |
549 notifier()->GetDeviceMountPoint(GetDeviceId(kInvalidDevice))); | 589 notifier()->GetDeviceMountPoint(GetDeviceId(kInvalidDevice))); |
550 | 590 |
551 // Make |kDevice1| mounted in multiple places. | 591 // Make |kDevice1| mounted in multiple places. |
552 // kDevice1 -> kMountPointA * | 592 // kDevice1 -> kMountPointA * |
553 // kDevice1 -> kMountPointB | 593 // kDevice1 -> kMountPointB |
554 // kDevice1 -> kMountPointC | 594 // kDevice1 -> kMountPointC |
555 MtabTestData test_data2[] = { | 595 MtabTestData test_data2[] = { |
556 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 596 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
557 MtabTestData(kDevice1, test_path_b.value(), kValidFS), | 597 MtabTestData(kDevice1, test_path_b.value(), kValidFS), |
558 MtabTestData(kDevice1, test_path_c.value(), kValidFS), | 598 MtabTestData(kDevice1, test_path_c.value(), kValidFS), |
559 }; | 599 }; |
560 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 600 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
561 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 601 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); |
562 // Add DCIM dirs. | 602 // Add DCIM dirs. |
563 CreateMountPointWithDCIMDir(kMountPointB); | 603 CreateMountPointWithDCIMDir(kMountPointB); |
564 CreateMountPointWithDCIMDir(kMountPointC); | 604 CreateMountPointWithDCIMDir(kMountPointC); |
565 OverwriteMtabAndRunLoop(test_data2, arraysize(test_data2)); | 605 OverwriteMtabAndRunLoop(test_data2, arraysize(test_data2)); |
566 | 606 |
567 EXPECT_EQ(test_path_a, | 607 EXPECT_EQ(test_path_a, |
568 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice1))); | 608 notifier()->GetDeviceMountPoint(GetDeviceId(kDevice1))); |
569 | 609 |
570 // Unmount |kDevice1| from |kMountPointA|. | 610 // Unmount |kDevice1| from |kMountPointA|. |
571 // kDevice1 -> kMountPointB * | 611 // kDevice1 -> kMountPointB * |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
607 TEST_F(RemovableDeviceNotificationLinuxTest, DeviceLookUp) { | 647 TEST_F(RemovableDeviceNotificationLinuxTest, DeviceLookUp) { |
608 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); | 648 FilePath test_path_a = CreateMountPointWithDCIMDir(kMountPointA); |
609 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); | 649 FilePath test_path_b = CreateMountPointWithoutDCIMDir(kMountPointB); |
610 FilePath test_path_c = CreateMountPointWithoutDCIMDir(kMountPointC); | 650 FilePath test_path_c = CreateMountPointWithoutDCIMDir(kMountPointC); |
611 ASSERT_FALSE(test_path_a.empty()); | 651 ASSERT_FALSE(test_path_a.empty()); |
612 ASSERT_FALSE(test_path_b.empty()); | 652 ASSERT_FALSE(test_path_b.empty()); |
613 ASSERT_FALSE(test_path_c.empty()); | 653 ASSERT_FALSE(test_path_c.empty()); |
614 | 654 |
615 // Attach to one first. | 655 // Attach to one first. |
616 // kDevice1 -> kMountPointA * | 656 // kDevice1 -> kMountPointA * |
617 // kDevice4 -> kMountPointB | 657 // kDevice4 -> kMountPointB * |
618 // kDevice5 -> kMountPointC | 658 // kDevice5 -> kMountPointC |
kmadhusu
2012/08/29 01:12:02
nit: kMountPointC * ???
| |
619 MtabTestData test_data1[] = { | 659 MtabTestData test_data1[] = { |
620 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 660 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
621 MtabTestData(kDevice4, test_path_b.value(), kValidFS), | 661 MtabTestData(kDevice4, test_path_b.value(), kValidFS), |
622 MtabTestData(kDevice5, test_path_c.value(), kValidFS), | 662 MtabTestData(kDevice5, test_path_c.value(), kValidFS), |
623 }; | 663 }; |
624 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(1); | 664 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(2); |
625 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 665 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); |
626 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); | 666 AppendToMtabAndRunLoop(test_data1, arraysize(test_data1)); |
627 | 667 |
628 FilePath mount_point; | 668 FilePath mount_point; |
629 EXPECT_EQ(GetDeviceId(kDevice1), | 669 EXPECT_EQ(GetDeviceId(kDevice1), |
630 notifier()->GetDeviceIdForPath(test_path_a, &mount_point)); | 670 notifier()->GetDeviceIdForPath(test_path_a, &mount_point)); |
631 EXPECT_EQ(test_path_a.value(), mount_point.value()); | 671 EXPECT_EQ(test_path_a.value(), mount_point.value()); |
632 EXPECT_EQ(GetDeviceId(kDevice4), | 672 EXPECT_EQ(GetDeviceId(kDevice4), |
633 notifier()->GetDeviceIdForPath(test_path_b, &mount_point)); | 673 notifier()->GetDeviceIdForPath(test_path_b, &mount_point)); |
634 EXPECT_EQ(test_path_b.value(), mount_point.value()); | 674 EXPECT_EQ(test_path_b.value(), mount_point.value()); |
(...skipping 12 matching lines...) Expand all Loading... | |
647 // One device attached at multiple points. | 687 // One device attached at multiple points. |
648 // kDevice1 -> kMountPointA * | 688 // kDevice1 -> kMountPointA * |
649 // kDevice5 -> kMountPointB | 689 // kDevice5 -> kMountPointB |
650 // kDevice5 -> kMountPointC | 690 // kDevice5 -> kMountPointC |
651 MtabTestData test_data2[] = { | 691 MtabTestData test_data2[] = { |
652 MtabTestData(kDevice1, test_path_a.value(), kValidFS), | 692 MtabTestData(kDevice1, test_path_a.value(), kValidFS), |
653 MtabTestData(kDevice5, test_path_b.value(), kValidFS), | 693 MtabTestData(kDevice5, test_path_b.value(), kValidFS), |
654 MtabTestData(kDevice5, test_path_c.value(), kValidFS), | 694 MtabTestData(kDevice5, test_path_c.value(), kValidFS), |
655 }; | 695 }; |
656 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); | 696 EXPECT_CALL(observer(), OnRemovableStorageAttached(_, _, _)).Times(0); |
657 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(0); | 697 EXPECT_CALL(observer(), OnRemovableStorageDetached(_)).Times(1); |
658 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); | 698 AppendToMtabAndRunLoop(test_data2, arraysize(test_data2)); |
659 | 699 |
660 EXPECT_EQ(GetDeviceId(kDevice1), | 700 EXPECT_EQ(GetDeviceId(kDevice1), |
661 notifier()->GetDeviceIdForPath(test_path_a, NULL)); | 701 notifier()->GetDeviceIdForPath(test_path_a, NULL)); |
662 EXPECT_EQ(GetDeviceId(kDevice5), | 702 EXPECT_EQ(GetDeviceId(kDevice5), |
663 notifier()->GetDeviceIdForPath(test_path_b, NULL)); | 703 notifier()->GetDeviceIdForPath(test_path_b, NULL)); |
664 EXPECT_EQ(GetDeviceId(kDevice5), | 704 EXPECT_EQ(GetDeviceId(kDevice5), |
665 notifier()->GetDeviceIdForPath(test_path_c, NULL)); | 705 notifier()->GetDeviceIdForPath(test_path_c, NULL)); |
666 } | 706 } |
667 | 707 |
668 } // namespace | 708 } // namespace |
669 | 709 |
670 } // namespace chrome | 710 } // namespace chrome |
OLD | NEW |