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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/provided_file_system_unittest.cc

Issue 703123003: [fsp] Pass more detailed errors to the providing extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a bug. Created 6 years, 1 month 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_system_provider/provided_file_system.h" 5 #include "chrome/browser/chromeos/file_system_provider/provided_file_system.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/files/file.h" 10 #include "base/files/file.h"
(...skipping 739 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 EXPECT_EQ(1u, watchers->size()); 750 EXPECT_EQ(1u, watchers->size());
751 provided_file_system_->GetWatchers(); 751 provided_file_system_->GetWatchers();
752 EXPECT_EQ("", watchers->begin()->second.last_tag); 752 EXPECT_EQ("", watchers->begin()->second.last_tag);
753 } 753 }
754 754
755 { 755 {
756 // Notify about a change. 756 // Notify about a change.
757 const storage::WatcherManager::ChangeType change_type = 757 const storage::WatcherManager::ChangeType change_type =
758 storage::WatcherManager::CHANGED; 758 storage::WatcherManager::CHANGED;
759 const std::string tag = "hello-world"; 759 const std::string tag = "hello-world";
760 EXPECT_TRUE(provided_file_system_->Notify( 760
761 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 761 Log log;
762 false /* recursive */, 762 provided_file_system_->Notify(
763 change_type, 763 base::FilePath::FromUTF8Unsafe(kDirectoryPath), false /* recursive */,
764 make_scoped_ptr(new ProvidedFileSystemObserver::Changes), 764 change_type, make_scoped_ptr(new ProvidedFileSystemObserver::Changes),
765 tag)); 765 tag, base::Bind(&LogStatus, base::Unretained(&log)));
766 766
767 // Confirm that the notification callback was called. 767 // Confirm that the notification callback was called.
768 ASSERT_EQ(1u, notification_log.size()); 768 ASSERT_EQ(1u, notification_log.size());
769 EXPECT_EQ(change_type, notification_log[0]); 769 EXPECT_EQ(change_type, notification_log[0]);
770 770
771 // Verify the observer event. 771 // Verify the observer event.
772 ASSERT_EQ(1u, observer.change_events().size()); 772 ASSERT_EQ(1u, observer.change_events().size());
773 const Observer::ChangeEvent* const change_event = 773 const Observer::ChangeEvent* const change_event =
774 observer.change_events()[0]; 774 observer.change_events()[0];
775 EXPECT_EQ(change_type, change_event->change_type()); 775 EXPECT_EQ(change_type, change_event->change_type());
776 EXPECT_EQ(0u, change_event->changes().size()); 776 EXPECT_EQ(0u, change_event->changes().size());
777 777
778 // The tag should not be updated in advance, before all observers handle 778 // The tag should not be updated in advance, before all observers handle
779 // the notification. 779 // the notification.
780 Watchers* const watchers = provided_file_system_->GetWatchers(); 780 Watchers* const watchers = provided_file_system_->GetWatchers();
781 EXPECT_EQ(1u, watchers->size()); 781 EXPECT_EQ(1u, watchers->size());
782 provided_file_system_->GetWatchers(); 782 provided_file_system_->GetWatchers();
783 EXPECT_EQ("", watchers->begin()->second.last_tag); 783 EXPECT_EQ("", watchers->begin()->second.last_tag);
784 784
785 // Wait until all observers finish handling the notification. 785 // Wait until all observers finish handling the notification.
786 base::RunLoop().RunUntilIdle(); 786 base::RunLoop().RunUntilIdle();
787 787
788 ASSERT_EQ(1u, log.size());
789 EXPECT_EQ(base::File::FILE_OK, log[0]);
790
788 // Confirm, that the watcher still exists, and that the tag is updated. 791 // Confirm, that the watcher still exists, and that the tag is updated.
789 ASSERT_EQ(1u, watchers->size()); 792 ASSERT_EQ(1u, watchers->size());
790 EXPECT_EQ(tag, watchers->begin()->second.last_tag); 793 EXPECT_EQ(tag, watchers->begin()->second.last_tag);
791 EXPECT_EQ(1, observer.list_changed_counter()); 794 EXPECT_EQ(1, observer.list_changed_counter());
792 EXPECT_EQ(1, observer.tag_updated_counter()); 795 EXPECT_EQ(1, observer.tag_updated_counter());
793 } 796 }
794 797
795 { 798 {
796 // Notify about deleting of the watched entry. 799 // Notify about deleting of the watched entry.
797 const storage::WatcherManager::ChangeType change_type = 800 const storage::WatcherManager::ChangeType change_type =
798 storage::WatcherManager::DELETED; 801 storage::WatcherManager::DELETED;
799 const ProvidedFileSystemObserver::Changes changes; 802 const ProvidedFileSystemObserver::Changes changes;
800 const std::string tag = "chocolate-disco"; 803 const std::string tag = "chocolate-disco";
801 EXPECT_TRUE(provided_file_system_->Notify( 804
802 base::FilePath::FromUTF8Unsafe(kDirectoryPath), 805 Log log;
803 false /* recursive */, 806 provided_file_system_->Notify(
804 change_type, 807 base::FilePath::FromUTF8Unsafe(kDirectoryPath), false /* recursive */,
805 make_scoped_ptr(new ProvidedFileSystemObserver::Changes), 808 change_type, make_scoped_ptr(new ProvidedFileSystemObserver::Changes),
806 tag)); 809 tag, base::Bind(&LogStatus, base::Unretained(&log)));
807 base::RunLoop().RunUntilIdle(); 810 base::RunLoop().RunUntilIdle();
811 ASSERT_EQ(1u, log.size());
812 EXPECT_EQ(base::File::FILE_OK, log[0]);
808 813
809 // Confirm that the notification callback was called. 814 // Confirm that the notification callback was called.
810 ASSERT_EQ(2u, notification_log.size()); 815 ASSERT_EQ(2u, notification_log.size());
811 EXPECT_EQ(change_type, notification_log[1]); 816 EXPECT_EQ(change_type, notification_log[1]);
812 817
813 // Verify the observer event. 818 // Verify the observer event.
814 ASSERT_EQ(2u, observer.change_events().size()); 819 ASSERT_EQ(2u, observer.change_events().size());
815 const Observer::ChangeEvent* const change_event = 820 const Observer::ChangeEvent* const change_event =
816 observer.change_events()[1]; 821 observer.change_events()[1];
817 EXPECT_EQ(change_type, change_event->change_type()); 822 EXPECT_EQ(change_type, change_event->change_type());
818 EXPECT_EQ(0u, change_event->changes().size()); 823 EXPECT_EQ(0u, change_event->changes().size());
819 } 824 }
820 825
821 // Confirm, that the watcher is removed. 826 // Confirm, that the watcher is removed.
822 { 827 {
823 Watchers* const watchers = provided_file_system_->GetWatchers(); 828 Watchers* const watchers = provided_file_system_->GetWatchers();
824 EXPECT_EQ(0u, watchers->size()); 829 EXPECT_EQ(0u, watchers->size());
825 EXPECT_EQ(2, observer.list_changed_counter()); 830 EXPECT_EQ(2, observer.list_changed_counter());
826 EXPECT_EQ(2, observer.tag_updated_counter()); 831 EXPECT_EQ(2, observer.tag_updated_counter());
827 } 832 }
828 833
829 provided_file_system_->RemoveObserver(&observer); 834 provided_file_system_->RemoveObserver(&observer);
830 } 835 }
831 836
832 } // namespace file_system_provider 837 } // namespace file_system_provider
833 } // namespace chromeos 838 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698