| 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/file_tasks.h" | 5 #include "chrome/browser/chromeos/file_manager/file_tasks.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 | 445 |
| 446 // The basic logic is similar to a test case for FindDriveAppTasks above. | 446 // The basic logic is similar to a test case for FindDriveAppTasks above. |
| 447 TEST_F(FileManagerFileTasksComplexTest, FindFileHandlerTasks) { | 447 TEST_F(FileManagerFileTasksComplexTest, FindFileHandlerTasks) { |
| 448 // Random IDs generated by | 448 // Random IDs generated by |
| 449 // % ruby -le 'print (0...32).to_a.map{(?a + rand(16)).chr}.join' | 449 // % ruby -le 'print (0...32).to_a.map{(?a + rand(16)).chr}.join' |
| 450 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; | 450 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; |
| 451 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; | 451 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; |
| 452 | 452 |
| 453 // Foo.app can handle "text/plain" and "text/html". | 453 // Foo.app can handle "text/plain" and "text/html". |
| 454 extensions::ExtensionBuilder foo_app; | 454 extensions::ExtensionBuilder foo_app; |
| 455 foo_app.SetManifest(std::move( | 455 foo_app.SetManifest( |
| 456 extensions::DictionaryBuilder() | 456 extensions::DictionaryBuilder() |
| 457 .Set("name", "Foo") | 457 .Set("name", "Foo") |
| 458 .Set("version", "1.0.0") | 458 .Set("version", "1.0.0") |
| 459 .Set("manifest_version", 2) | 459 .Set("manifest_version", 2) |
| 460 .Set("app", | 460 .Set("app", extensions::DictionaryBuilder() |
| 461 std::move(extensions::DictionaryBuilder().Set( | 461 .Set("background", |
| 462 "background", | 462 extensions::DictionaryBuilder() |
| 463 std::move(extensions::DictionaryBuilder().Set( | 463 .Set("scripts", extensions::ListBuilder() |
| 464 "scripts", std::move(extensions::ListBuilder().Append( | 464 .Append("background.js") |
| 465 "background.js"))))))) | 465 .Build()) |
| 466 .Set( | 466 .Build()) |
| 467 "file_handlers", | 467 .Build()) |
| 468 std::move(extensions::DictionaryBuilder().Set( | 468 .Set("file_handlers", |
| 469 "text", | 469 extensions::DictionaryBuilder() |
| 470 std::move(extensions::DictionaryBuilder() | 470 .Set("text", extensions::DictionaryBuilder() |
| 471 .Set("title", "Text") | 471 .Set("title", "Text") |
| 472 .Set("types", | 472 .Set("types", extensions::ListBuilder() |
| 473 std::move(extensions::ListBuilder() | 473 .Append("text/plain") |
| 474 .Append("text/plain") | 474 .Append("text/html") |
| 475 .Append("text/html"))))))))); | 475 .Build()) |
| 476 .Build()) |
| 477 .Build()) |
| 478 .Build()); |
| 476 foo_app.SetID(kFooId); | 479 foo_app.SetID(kFooId); |
| 477 extension_service_->AddExtension(foo_app.Build().get()); | 480 extension_service_->AddExtension(foo_app.Build().get()); |
| 478 | 481 |
| 479 // Bar.app can only handle "text/plain". | 482 // Bar.app can only handle "text/plain". |
| 480 extensions::ExtensionBuilder bar_app; | 483 extensions::ExtensionBuilder bar_app; |
| 481 bar_app.SetManifest(std::move( | 484 bar_app.SetManifest( |
| 482 extensions::DictionaryBuilder() | 485 extensions::DictionaryBuilder() |
| 483 .Set("name", "Bar") | 486 .Set("name", "Bar") |
| 484 .Set("version", "1.0.0") | 487 .Set("version", "1.0.0") |
| 485 .Set("manifest_version", 2) | 488 .Set("manifest_version", 2) |
| 486 .Set("app", | 489 .Set("app", extensions::DictionaryBuilder() |
| 487 std::move(extensions::DictionaryBuilder().Set( | 490 .Set("background", |
| 488 "background", | 491 extensions::DictionaryBuilder() |
| 489 std::move(extensions::DictionaryBuilder().Set( | 492 .Set("scripts", extensions::ListBuilder() |
| 490 "scripts", std::move(extensions::ListBuilder().Append( | 493 .Append("background.js") |
| 491 "background.js"))))))) | 494 .Build()) |
| 492 .Set( | 495 .Build()) |
| 493 "file_handlers", | 496 .Build()) |
| 494 std::move(extensions::DictionaryBuilder().Set( | 497 .Set("file_handlers", |
| 495 "text", | 498 extensions::DictionaryBuilder() |
| 496 std::move(extensions::DictionaryBuilder() | 499 .Set("text", extensions::DictionaryBuilder() |
| 497 .Set("title", "Text") | 500 .Set("title", "Text") |
| 498 .Set("types", | 501 .Set("types", extensions::ListBuilder() |
| 499 std::move(extensions::ListBuilder().Append( | 502 .Append("text/plain") |
| 500 "text/plain"))))))))); | 503 .Build()) |
| 504 .Build()) |
| 505 .Build()) |
| 506 .Build()); |
| 501 bar_app.SetID(kBarId); | 507 bar_app.SetID(kBarId); |
| 502 extension_service_->AddExtension(bar_app.Build().get()); | 508 extension_service_->AddExtension(bar_app.Build().get()); |
| 503 | 509 |
| 504 // Find apps for a "text/plain" file. Foo.app and Bar.app should be found. | 510 // Find apps for a "text/plain" file. Foo.app and Bar.app should be found. |
| 505 std::vector<extensions::EntryInfo> entries; | 511 std::vector<extensions::EntryInfo> entries; |
| 506 entries.push_back( | 512 entries.push_back( |
| 507 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) | 513 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) |
| 508 .AppendASCII("foo.txt"), | 514 .AppendASCII("foo.txt"), |
| 509 "text/plain", false)); | 515 "text/plain", false)); |
| 510 | 516 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 548 | 554 |
| 549 // The basic logic is similar to a test case for FindDriveAppTasks above. | 555 // The basic logic is similar to a test case for FindDriveAppTasks above. |
| 550 TEST_F(FileManagerFileTasksComplexTest, FindFileBrowserHandlerTasks) { | 556 TEST_F(FileManagerFileTasksComplexTest, FindFileBrowserHandlerTasks) { |
| 551 // Copied from FindFileHandlerTasks test above. | 557 // Copied from FindFileHandlerTasks test above. |
| 552 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; | 558 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; |
| 553 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; | 559 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; |
| 554 | 560 |
| 555 // Foo.app can handle ".txt" and ".html". | 561 // Foo.app can handle ".txt" and ".html". |
| 556 // This one is an extension, and has "file_browser_handlers" | 562 // This one is an extension, and has "file_browser_handlers" |
| 557 extensions::ExtensionBuilder foo_app; | 563 extensions::ExtensionBuilder foo_app; |
| 558 foo_app.SetManifest(std::move( | 564 foo_app.SetManifest( |
| 559 extensions::DictionaryBuilder() | 565 extensions::DictionaryBuilder() |
| 560 .Set("name", "Foo") | 566 .Set("name", "Foo") |
| 561 .Set("version", "1.0.0") | 567 .Set("version", "1.0.0") |
| 562 .Set("manifest_version", 2) | 568 .Set("manifest_version", 2) |
| 563 .Set("permissions", std::move(extensions::ListBuilder().Append( | 569 .Set("permissions", |
| 564 "fileBrowserHandler"))) | 570 extensions::ListBuilder().Append("fileBrowserHandler").Build()) |
| 565 .Set("file_browser_handlers", | 571 .Set("file_browser_handlers", |
| 566 std::move(extensions::ListBuilder().Append(std::move( | 572 extensions::ListBuilder() |
| 567 extensions::DictionaryBuilder() | 573 .Append( |
| 568 .Set("id", "open") | 574 extensions::DictionaryBuilder() |
| 569 .Set("default_title", "open") | 575 .Set("id", "open") |
| 570 .Set("file_filters", | 576 .Set("default_title", "open") |
| 571 std::move(extensions::ListBuilder() | 577 .Set("file_filters", extensions::ListBuilder() |
| 572 .Append("filesystem:*.txt") | 578 .Append("filesystem:*.txt") |
| 573 .Append("filesystem:*.html"))))))))); | 579 .Append("filesystem:*.html") |
| 580 .Build()) |
| 581 .Build()) |
| 582 .Build()) |
| 583 .Build()); |
| 574 foo_app.SetID(kFooId); | 584 foo_app.SetID(kFooId); |
| 575 extension_service_->AddExtension(foo_app.Build().get()); | 585 extension_service_->AddExtension(foo_app.Build().get()); |
| 576 | 586 |
| 577 // Bar.app can only handle ".txt". | 587 // Bar.app can only handle ".txt". |
| 578 extensions::ExtensionBuilder bar_app; | 588 extensions::ExtensionBuilder bar_app; |
| 579 bar_app.SetManifest(std::move( | 589 bar_app.SetManifest( |
| 580 extensions::DictionaryBuilder() | 590 extensions::DictionaryBuilder() |
| 581 .Set("name", "Bar") | 591 .Set("name", "Bar") |
| 582 .Set("version", "1.0.0") | 592 .Set("version", "1.0.0") |
| 583 .Set("manifest_version", 2) | 593 .Set("manifest_version", 2) |
| 584 .Set("permissions", std::move(extensions::ListBuilder().Append( | 594 .Set("permissions", |
| 585 "fileBrowserHandler"))) | 595 extensions::ListBuilder().Append("fileBrowserHandler").Build()) |
| 586 .Set("file_browser_handlers", | 596 .Set("file_browser_handlers", |
| 587 std::move(extensions::ListBuilder().Append(std::move( | 597 extensions::ListBuilder() |
| 588 extensions::DictionaryBuilder() | 598 .Append( |
| 589 .Set("id", "open") | 599 extensions::DictionaryBuilder() |
| 590 .Set("default_title", "open") | 600 .Set("id", "open") |
| 591 .Set("file_filters", | 601 .Set("default_title", "open") |
| 592 std::move(extensions::ListBuilder().Append( | 602 .Set("file_filters", extensions::ListBuilder() |
| 593 "filesystem:*.txt"))))))))); | 603 .Append("filesystem:*.txt") |
| 604 .Build()) |
| 605 .Build()) |
| 606 .Build()) |
| 607 .Build()); |
| 594 bar_app.SetID(kBarId); | 608 bar_app.SetID(kBarId); |
| 595 extension_service_->AddExtension(bar_app.Build().get()); | 609 extension_service_->AddExtension(bar_app.Build().get()); |
| 596 | 610 |
| 597 // Find apps for a ".txt" file. Foo.app and Bar.app should be found. | 611 // Find apps for a ".txt" file. Foo.app and Bar.app should be found. |
| 598 std::vector<GURL> file_urls; | 612 std::vector<GURL> file_urls; |
| 599 file_urls.push_back(GURL("filesystem:chrome-extension://id/dir/foo.txt")); | 613 file_urls.push_back(GURL("filesystem:chrome-extension://id/dir/foo.txt")); |
| 600 | 614 |
| 601 std::vector<FullTaskDescriptor> tasks; | 615 std::vector<FullTaskDescriptor> tasks; |
| 602 FindFileBrowserHandlerTasks(&test_profile_, file_urls, &tasks); | 616 FindFileBrowserHandlerTasks(&test_profile_, file_urls, &tasks); |
| 603 ASSERT_EQ(2U, tasks.size()); | 617 ASSERT_EQ(2U, tasks.size()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 632 // app) are returned. | 646 // app) are returned. |
| 633 TEST_F(FileManagerFileTasksComplexTest, FindAllTypesOfTasks) { | 647 TEST_F(FileManagerFileTasksComplexTest, FindAllTypesOfTasks) { |
| 634 // kFooId and kBarId copied from FindFileHandlerTasks test above. | 648 // kFooId and kBarId copied from FindFileHandlerTasks test above. |
| 635 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; | 649 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; |
| 636 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; | 650 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; |
| 637 const char kBazId[] = "plifkpkakemokpflgbnnigcoldgcbdmc"; | 651 const char kBazId[] = "plifkpkakemokpflgbnnigcoldgcbdmc"; |
| 638 | 652 |
| 639 // Foo.app can handle "text/plain". | 653 // Foo.app can handle "text/plain". |
| 640 // This is a packaged app (file handler). | 654 // This is a packaged app (file handler). |
| 641 extensions::ExtensionBuilder foo_app; | 655 extensions::ExtensionBuilder foo_app; |
| 642 foo_app.SetManifest(std::move( | 656 foo_app.SetManifest( |
| 643 extensions::DictionaryBuilder() | 657 extensions::DictionaryBuilder() |
| 644 .Set("name", "Foo") | 658 .Set("name", "Foo") |
| 645 .Set("version", "1.0.0") | 659 .Set("version", "1.0.0") |
| 646 .Set("manifest_version", 2) | 660 .Set("manifest_version", 2) |
| 647 .Set("app", | 661 .Set("app", extensions::DictionaryBuilder() |
| 648 std::move(extensions::DictionaryBuilder().Set( | 662 .Set("background", |
| 649 "background", | 663 extensions::DictionaryBuilder() |
| 650 std::move(extensions::DictionaryBuilder().Set( | 664 .Set("scripts", extensions::ListBuilder() |
| 651 "scripts", std::move(extensions::ListBuilder().Append( | 665 .Append("background.js") |
| 652 "background.js"))))))) | 666 .Build()) |
| 653 .Set( | 667 .Build()) |
| 654 "file_handlers", | 668 .Build()) |
| 655 std::move(extensions::DictionaryBuilder().Set( | 669 .Set("file_handlers", |
| 656 "text", | 670 extensions::DictionaryBuilder() |
| 657 std::move(extensions::DictionaryBuilder() | 671 .Set("text", extensions::DictionaryBuilder() |
| 658 .Set("title", "Text") | 672 .Set("title", "Text") |
| 659 .Set("types", | 673 .Set("types", extensions::ListBuilder() |
| 660 std::move(extensions::ListBuilder().Append( | 674 .Append("text/plain") |
| 661 "text/plain"))))))))); | 675 .Build()) |
| 676 .Build()) |
| 677 .Build()) |
| 678 .Build()); |
| 662 foo_app.SetID(kFooId); | 679 foo_app.SetID(kFooId); |
| 663 extension_service_->AddExtension(foo_app.Build().get()); | 680 extension_service_->AddExtension(foo_app.Build().get()); |
| 664 | 681 |
| 665 // Bar.app can only handle ".txt". | 682 // Bar.app can only handle ".txt". |
| 666 // This is an extension (file browser handler). | 683 // This is an extension (file browser handler). |
| 667 extensions::ExtensionBuilder bar_app; | 684 extensions::ExtensionBuilder bar_app; |
| 668 bar_app.SetManifest(std::move( | 685 bar_app.SetManifest( |
| 669 extensions::DictionaryBuilder() | 686 extensions::DictionaryBuilder() |
| 670 .Set("name", "Bar") | 687 .Set("name", "Bar") |
| 671 .Set("version", "1.0.0") | 688 .Set("version", "1.0.0") |
| 672 .Set("manifest_version", 2) | 689 .Set("manifest_version", 2) |
| 673 .Set("permissions", std::move(extensions::ListBuilder().Append( | 690 .Set("permissions", |
| 674 "fileBrowserHandler"))) | 691 extensions::ListBuilder().Append("fileBrowserHandler").Build()) |
| 675 .Set("file_browser_handlers", | 692 .Set("file_browser_handlers", |
| 676 std::move(extensions::ListBuilder().Append(std::move( | 693 extensions::ListBuilder() |
| 677 extensions::DictionaryBuilder() | 694 .Append( |
| 678 .Set("id", "open") | 695 extensions::DictionaryBuilder() |
| 679 .Set("default_title", "open") | 696 .Set("id", "open") |
| 680 .Set("file_filters", | 697 .Set("default_title", "open") |
| 681 std::move(extensions::ListBuilder().Append( | 698 .Set("file_filters", extensions::ListBuilder() |
| 682 "filesystem:*.txt"))))))))); | 699 .Append("filesystem:*.txt") |
| 700 .Build()) |
| 701 .Build()) |
| 702 .Build()) |
| 703 .Build()); |
| 683 bar_app.SetID(kBarId); | 704 bar_app.SetID(kBarId); |
| 684 extension_service_->AddExtension(bar_app.Build().get()); | 705 extension_service_->AddExtension(bar_app.Build().get()); |
| 685 | 706 |
| 686 // Baz.app can handle "text/plain". | 707 // Baz.app can handle "text/plain". |
| 687 // This is a Drive app. | 708 // This is a Drive app. |
| 688 scoped_ptr<google_apis::AppResource> baz_app(new google_apis::AppResource); | 709 scoped_ptr<google_apis::AppResource> baz_app(new google_apis::AppResource); |
| 689 baz_app->set_product_id("baz_app_id"); | 710 baz_app->set_product_id("baz_app_id"); |
| 690 baz_app->set_application_id(kBazId); | 711 baz_app->set_application_id(kBazId); |
| 691 baz_app->set_name("Baz"); | 712 baz_app->set_name("Baz"); |
| 692 baz_app->set_object_type("baz_object_type"); | 713 baz_app->set_object_type("baz_object_type"); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 746 ScopedVector<google_apis::AppResource> app_resources; | 767 ScopedVector<google_apis::AppResource> app_resources; |
| 747 app_resources.push_back(foo_app.release()); | 768 app_resources.push_back(foo_app.release()); |
| 748 google_apis::AppList app_list; | 769 google_apis::AppList app_list; |
| 749 app_list.set_items(std::move(app_resources)); | 770 app_list.set_items(std::move(app_resources)); |
| 750 drive::DriveAppRegistry drive_app_registry(NULL); | 771 drive::DriveAppRegistry drive_app_registry(NULL); |
| 751 drive_app_registry.UpdateFromAppList(app_list); | 772 drive_app_registry.UpdateFromAppList(app_list); |
| 752 | 773 |
| 753 // Bar.app can handle ".gdoc" files. | 774 // Bar.app can handle ".gdoc" files. |
| 754 // This is an extension (file browser handler). | 775 // This is an extension (file browser handler). |
| 755 extensions::ExtensionBuilder bar_app; | 776 extensions::ExtensionBuilder bar_app; |
| 756 bar_app.SetManifest(std::move( | 777 bar_app.SetManifest( |
| 757 extensions::DictionaryBuilder() | 778 extensions::DictionaryBuilder() |
| 758 .Set("name", "Bar") | 779 .Set("name", "Bar") |
| 759 .Set("version", "1.0.0") | 780 .Set("version", "1.0.0") |
| 760 .Set("manifest_version", 2) | 781 .Set("manifest_version", 2) |
| 761 .Set("permissions", std::move(extensions::ListBuilder().Append( | 782 .Set("permissions", |
| 762 "fileBrowserHandler"))) | 783 extensions::ListBuilder().Append("fileBrowserHandler").Build()) |
| 763 .Set("file_browser_handlers", | 784 .Set("file_browser_handlers", |
| 764 std::move(extensions::ListBuilder().Append(std::move( | 785 extensions::ListBuilder() |
| 765 extensions::DictionaryBuilder() | 786 .Append( |
| 766 .Set("id", "open") | 787 extensions::DictionaryBuilder() |
| 767 .Set("default_title", "open") | 788 .Set("id", "open") |
| 768 .Set("file_filters", | 789 .Set("default_title", "open") |
| 769 std::move(extensions::ListBuilder().Append( | 790 .Set("file_filters", extensions::ListBuilder() |
| 770 "filesystem:*.gdoc"))))))))); | 791 .Append("filesystem:*.gdoc") |
| 792 .Build()) |
| 793 .Build()) |
| 794 .Build()) |
| 795 .Build()); |
| 771 bar_app.SetID(kBarId); | 796 bar_app.SetID(kBarId); |
| 772 extension_service_->AddExtension(bar_app.Build().get()); | 797 extension_service_->AddExtension(bar_app.Build().get()); |
| 773 | 798 |
| 774 // Files.app can handle ".gdoc" files. | 799 // Files.app can handle ".gdoc" files. |
| 775 // The ID "kFileManagerAppId" used here is precisely the one that identifies | 800 // The ID "kFileManagerAppId" used here is precisely the one that identifies |
| 776 // the Chrome OS Files.app application. | 801 // the Chrome OS Files.app application. |
| 777 extensions::ExtensionBuilder files_app; | 802 extensions::ExtensionBuilder files_app; |
| 778 files_app.SetManifest(std::move( | 803 files_app.SetManifest( |
| 779 extensions::DictionaryBuilder() | 804 extensions::DictionaryBuilder() |
| 780 .Set("name", "Files") | 805 .Set("name", "Files") |
| 781 .Set("version", "1.0.0") | 806 .Set("version", "1.0.0") |
| 782 .Set("manifest_version", 2) | 807 .Set("manifest_version", 2) |
| 783 .Set("permissions", std::move(extensions::ListBuilder().Append( | 808 .Set("permissions", |
| 784 "fileBrowserHandler"))) | 809 extensions::ListBuilder().Append("fileBrowserHandler").Build()) |
| 785 .Set("file_browser_handlers", | 810 .Set("file_browser_handlers", |
| 786 std::move(extensions::ListBuilder().Append(std::move( | 811 extensions::ListBuilder() |
| 787 extensions::DictionaryBuilder() | 812 .Append( |
| 788 .Set("id", "open") | 813 extensions::DictionaryBuilder() |
| 789 .Set("default_title", "open") | 814 .Set("id", "open") |
| 790 .Set("file_filters", | 815 .Set("default_title", "open") |
| 791 std::move(extensions::ListBuilder().Append( | 816 .Set("file_filters", extensions::ListBuilder() |
| 792 "filesystem:*.gdoc"))))))))); | 817 .Append("filesystem:*.gdoc") |
| 818 .Build()) |
| 819 .Build()) |
| 820 .Build()) |
| 821 .Build()); |
| 793 files_app.SetID(kFileManagerAppId); | 822 files_app.SetID(kFileManagerAppId); |
| 794 extension_service_->AddExtension(files_app.Build().get()); | 823 extension_service_->AddExtension(files_app.Build().get()); |
| 795 | 824 |
| 796 // Find apps for a ".gdoc file". Only the built-in handler of Files.apps | 825 // Find apps for a ".gdoc file". Only the built-in handler of Files.apps |
| 797 // should be found. | 826 // should be found. |
| 798 std::vector<extensions::EntryInfo> entries; | 827 std::vector<extensions::EntryInfo> entries; |
| 799 std::vector<GURL> file_urls; | 828 std::vector<GURL> file_urls; |
| 800 entries.push_back( | 829 entries.push_back( |
| 801 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) | 830 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) |
| 802 .AppendASCII("foo.gdoc"), | 831 .AppendASCII("foo.gdoc"), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 813 TEST_F(FileManagerFileTasksComplexTest, FindFileHandlerTask_Generic) { | 842 TEST_F(FileManagerFileTasksComplexTest, FindFileHandlerTask_Generic) { |
| 814 // Since we want to keep the order of the result as foo,bar,baz,qux, | 843 // Since we want to keep the order of the result as foo,bar,baz,qux, |
| 815 // keep the ids in alphabetical order. | 844 // keep the ids in alphabetical order. |
| 816 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; | 845 const char kFooId[] = "hhgbjpmdppecanaaogonaigmmifgpaph"; |
| 817 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; | 846 const char kBarId[] = "odlhccgofgkadkkhcmhgnhgahonahoca"; |
| 818 const char kBazId[] = "plifkpkakemokpflgbnnigcoldgcbdmc"; | 847 const char kBazId[] = "plifkpkakemokpflgbnnigcoldgcbdmc"; |
| 819 const char kQuxId[] = "pmifkpkakgkadkkhcmhgnigmmifgpaph"; | 848 const char kQuxId[] = "pmifkpkakgkadkkhcmhgnigmmifgpaph"; |
| 820 | 849 |
| 821 // Foo app provides file handler for text/plain and all file types. | 850 // Foo app provides file handler for text/plain and all file types. |
| 822 extensions::ExtensionBuilder foo_app; | 851 extensions::ExtensionBuilder foo_app; |
| 823 foo_app.SetManifest(std::move( | 852 foo_app.SetManifest( |
| 824 extensions::DictionaryBuilder() | 853 extensions::DictionaryBuilder() |
| 825 .Set("name", "Foo") | 854 .Set("name", "Foo") |
| 826 .Set("version", "1.0.0") | 855 .Set("version", "1.0.0") |
| 827 .Set("manifest_version", 2) | 856 .Set("manifest_version", 2) |
| 828 .Set("app", | 857 .Set("app", extensions::DictionaryBuilder() |
| 829 std::move(extensions::DictionaryBuilder().Set( | 858 .Set("background", |
| 830 "background", | 859 extensions::DictionaryBuilder() |
| 831 std::move(extensions::DictionaryBuilder().Set( | 860 .Set("scripts", extensions::ListBuilder() |
| 832 "scripts", std::move(extensions::ListBuilder().Append( | 861 .Append("background.js") |
| 833 "background.js"))))))) | 862 .Build()) |
| 834 .Set("file_handlers", | 863 .Build()) |
| 835 std::move( | 864 .Build()) |
| 836 extensions::DictionaryBuilder() | 865 .Set( |
| 837 .Set("any", | 866 "file_handlers", |
| 838 std::move(extensions::DictionaryBuilder().Set( | 867 extensions::DictionaryBuilder() |
| 839 "types", std::move(extensions::ListBuilder() | 868 .Set("any", |
| 840 .Append("*/*"))))) | 869 extensions::DictionaryBuilder() |
| 841 .Set("text", | 870 .Set("types", |
| 842 std::move(extensions::DictionaryBuilder().Set( | 871 extensions::ListBuilder().Append("*/*").Build()) |
| 843 "types", | 872 .Build()) |
| 844 std::move(extensions::ListBuilder().Append( | 873 .Set("text", extensions::DictionaryBuilder() |
| 845 "text/plain"))))))))); | 874 .Set("types", extensions::ListBuilder() |
| 875 .Append("text/plain") |
| 876 .Build()) |
| 877 .Build()) |
| 878 .Build()) |
| 879 .Build()); |
| 846 foo_app.SetID(kFooId); | 880 foo_app.SetID(kFooId); |
| 847 extension_service_->AddExtension(foo_app.Build().get()); | 881 extension_service_->AddExtension(foo_app.Build().get()); |
| 848 | 882 |
| 849 // Bar app provides file handler for .txt and not provide generic file | 883 // Bar app provides file handler for .txt and not provide generic file |
| 850 // handler, but handles directories. | 884 // handler, but handles directories. |
| 851 extensions::ExtensionBuilder bar_app; | 885 extensions::ExtensionBuilder bar_app; |
| 852 bar_app.SetManifest(std::move( | 886 bar_app.SetManifest( |
| 853 extensions::DictionaryBuilder() | 887 extensions::DictionaryBuilder() |
| 854 .Set("name", "Bar") | 888 .Set("name", "Bar") |
| 855 .Set("version", "1.0.0") | 889 .Set("version", "1.0.0") |
| 856 .Set("manifest_version", 2) | 890 .Set("manifest_version", 2) |
| 857 .Set("app", | 891 .Set("app", extensions::DictionaryBuilder() |
| 858 std::move(extensions::DictionaryBuilder().Set( | 892 .Set("background", |
| 859 "background", | 893 extensions::DictionaryBuilder() |
| 860 std::move(extensions::DictionaryBuilder().Set( | 894 .Set("scripts", extensions::ListBuilder() |
| 861 "scripts", std::move(extensions::ListBuilder().Append( | 895 .Append("background.js") |
| 862 "background.js"))))))) | 896 .Build()) |
| 897 .Build()) |
| 898 .Build()) |
| 863 .Set( | 899 .Set( |
| 864 "file_handlers", | 900 "file_handlers", |
| 865 std::move(extensions::DictionaryBuilder().Set( | 901 extensions::DictionaryBuilder() |
| 866 "text", | 902 .Set("text", |
| 867 std::move(extensions::DictionaryBuilder() | 903 extensions::DictionaryBuilder() |
| 868 .SetBoolean("include_directories", true) | 904 .SetBoolean("include_directories", true) |
| 869 .Set("extensions", | 905 .Set("extensions", |
| 870 std::move(extensions::ListBuilder().Append( | 906 extensions::ListBuilder().Append("txt").Build()) |
| 871 "txt"))))))))); | 907 .Build()) |
| 908 .Build()) |
| 909 .Build()); |
| 872 bar_app.SetID(kBarId); | 910 bar_app.SetID(kBarId); |
| 873 extension_service_->AddExtension(bar_app.Build().get()); | 911 extension_service_->AddExtension(bar_app.Build().get()); |
| 874 | 912 |
| 875 // Baz app provides file handler for all extensions and images. | 913 // Baz app provides file handler for all extensions and images. |
| 876 extensions::ExtensionBuilder baz_app; | 914 extensions::ExtensionBuilder baz_app; |
| 877 baz_app.SetManifest(std::move( | 915 baz_app.SetManifest( |
| 878 extensions::DictionaryBuilder() | 916 extensions::DictionaryBuilder() |
| 879 .Set("name", "Baz") | 917 .Set("name", "Baz") |
| 880 .Set("version", "1.0.0") | 918 .Set("version", "1.0.0") |
| 881 .Set("manifest_version", 2) | 919 .Set("manifest_version", 2) |
| 882 .Set("app", | 920 .Set("app", extensions::DictionaryBuilder() |
| 883 std::move(extensions::DictionaryBuilder().Set( | 921 .Set("background", |
| 884 "background", | 922 extensions::DictionaryBuilder() |
| 885 std::move(extensions::DictionaryBuilder().Set( | 923 .Set("scripts", extensions::ListBuilder() |
| 886 "scripts", std::move(extensions::ListBuilder().Append( | 924 .Append("background.js") |
| 887 "background.js"))))))) | 925 .Build()) |
| 888 .Set( | 926 .Build()) |
| 889 "file_handlers", | 927 .Build()) |
| 890 std::move( | 928 .Set("file_handlers", |
| 891 extensions::DictionaryBuilder() | 929 extensions::DictionaryBuilder() |
| 892 .Set("any", | 930 .Set("any", extensions::DictionaryBuilder() |
| 893 std::move(extensions::DictionaryBuilder().Set( | 931 .Set("extensions", extensions::ListBuilder() |
| 894 "extensions", std::move(extensions::ListBuilder() | 932 .Append("*") |
| 895 .Append("*") | 933 .Append("bar") |
| 896 .Append("bar"))))) | 934 .Build()) |
| 897 .Set("image", | 935 .Build()) |
| 898 std::move(extensions::DictionaryBuilder().Set( | 936 .Set("image", extensions::DictionaryBuilder() |
| 899 "types", | 937 .Set("types", extensions::ListBuilder() |
| 900 std::move(extensions::ListBuilder().Append( | 938 .Append("image/*") |
| 901 "image/*"))))))))); | 939 .Build()) |
| 940 .Build()) |
| 941 .Build()) |
| 942 .Build()); |
| 902 baz_app.SetID(kBazId); | 943 baz_app.SetID(kBazId); |
| 903 extension_service_->AddExtension(baz_app.Build().get()); | 944 extension_service_->AddExtension(baz_app.Build().get()); |
| 904 | 945 |
| 905 // Qux app provides file handler for all types. | 946 // Qux app provides file handler for all types. |
| 906 extensions::ExtensionBuilder qux_app; | 947 extensions::ExtensionBuilder qux_app; |
| 907 qux_app.SetManifest(std::move( | 948 qux_app.SetManifest( |
| 908 extensions::DictionaryBuilder() | 949 extensions::DictionaryBuilder() |
| 909 .Set("name", "Qux") | 950 .Set("name", "Qux") |
| 910 .Set("version", "1.0.0") | 951 .Set("version", "1.0.0") |
| 911 .Set("manifest_version", 2) | 952 .Set("manifest_version", 2) |
| 912 .Set("app", | 953 .Set("app", extensions::DictionaryBuilder() |
| 913 std::move(extensions::DictionaryBuilder().Set( | 954 .Set("background", |
| 914 "background", | 955 extensions::DictionaryBuilder() |
| 915 std::move(extensions::DictionaryBuilder().Set( | 956 .Set("scripts", extensions::ListBuilder() |
| 916 "scripts", std::move(extensions::ListBuilder().Append( | 957 .Append("background.js") |
| 917 "background.js"))))))) | 958 .Build()) |
| 959 .Build()) |
| 960 .Build()) |
| 918 .Set("file_handlers", | 961 .Set("file_handlers", |
| 919 std::move(extensions::DictionaryBuilder().Set( | 962 extensions::DictionaryBuilder() |
| 920 "any", | 963 .Set("any", |
| 921 std::move(extensions::DictionaryBuilder().Set( | 964 extensions::DictionaryBuilder() |
| 922 "types", | 965 .Set("types", |
| 923 std::move(extensions::ListBuilder().Append("*"))))))))); | 966 extensions::ListBuilder().Append("*").Build()) |
| 967 .Build()) |
| 968 .Build()) |
| 969 .Build()); |
| 924 qux_app.SetID(kQuxId); | 970 qux_app.SetID(kQuxId); |
| 925 extension_service_->AddExtension(qux_app.Build().get()); | 971 extension_service_->AddExtension(qux_app.Build().get()); |
| 926 | 972 |
| 927 // Test case with .txt file | 973 // Test case with .txt file |
| 928 std::vector<extensions::EntryInfo> txt_entries; | 974 std::vector<extensions::EntryInfo> txt_entries; |
| 929 txt_entries.push_back( | 975 txt_entries.push_back( |
| 930 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) | 976 extensions::EntryInfo(drive::util::GetDriveMountPointPath(&test_profile_) |
| 931 .AppendASCII("foo.txt"), | 977 .AppendASCII("foo.txt"), |
| 932 "text/plain", false)); | 978 "text/plain", false)); |
| 933 std::vector<FullTaskDescriptor> txt_result; | 979 std::vector<FullTaskDescriptor> txt_result; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 974 std::vector<FullTaskDescriptor> dir_result; | 1020 std::vector<FullTaskDescriptor> dir_result; |
| 975 FindFileHandlerTasks(&test_profile_, dir_entries, &dir_result); | 1021 FindFileHandlerTasks(&test_profile_, dir_entries, &dir_result); |
| 976 ASSERT_EQ(1U, dir_result.size()); | 1022 ASSERT_EQ(1U, dir_result.size()); |
| 977 // Confirm that only Bar.app is found and that it is a generic file handler. | 1023 // Confirm that only Bar.app is found and that it is a generic file handler. |
| 978 EXPECT_EQ(kBarId, dir_result[0].task_descriptor().app_id); | 1024 EXPECT_EQ(kBarId, dir_result[0].task_descriptor().app_id); |
| 979 EXPECT_TRUE(dir_result[0].is_generic_file_handler()); | 1025 EXPECT_TRUE(dir_result[0].is_generic_file_handler()); |
| 980 } | 1026 } |
| 981 | 1027 |
| 982 } // namespace file_tasks | 1028 } // namespace file_tasks |
| 983 } // namespace file_manager. | 1029 } // namespace file_manager. |
| OLD | NEW |