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/sync_file_system/local/local_file_change_tracker.h" | 5 #include "chrome/browser/sync_file_system/local/local_file_change_tracker.h" |
6 | 6 |
7 #include <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <deque> | 9 #include <deque> |
10 #include <memory> | 10 #include <memory> |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 change_tracker()->OnCreateDirectory(URL(kPath2)); | 171 change_tracker()->OnCreateDirectory(URL(kPath2)); |
172 change_tracker()->OnRemoveFile(URL(kPath3)); | 172 change_tracker()->OnRemoveFile(URL(kPath3)); |
173 change_tracker()->OnModifyFile(URL(kPath4)); | 173 change_tracker()->OnModifyFile(URL(kPath4)); |
174 change_tracker()->OnCreateFile(URL(kPath5)); | 174 change_tracker()->OnCreateFile(URL(kPath5)); |
175 change_tracker()->OnRemoveFile(URL(kPath5)); // Recorded as 'delete'. | 175 change_tracker()->OnRemoveFile(URL(kPath5)); // Recorded as 'delete'. |
176 | 176 |
177 FileSystemURLSet urls; | 177 FileSystemURLSet urls; |
178 file_system_.GetChangedURLsInTracker(&urls); | 178 file_system_.GetChangedURLsInTracker(&urls); |
179 | 179 |
180 EXPECT_EQ(5U, urls.size()); | 180 EXPECT_EQ(5U, urls.size()); |
181 EXPECT_TRUE(ContainsKey(urls, URL(kPath1))); | 181 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath1))); |
182 EXPECT_TRUE(ContainsKey(urls, URL(kPath2))); | 182 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath2))); |
183 EXPECT_TRUE(ContainsKey(urls, URL(kPath3))); | 183 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath3))); |
184 EXPECT_TRUE(ContainsKey(urls, URL(kPath4))); | 184 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath4))); |
185 EXPECT_TRUE(ContainsKey(urls, URL(kPath5))); | 185 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath5))); |
186 | 186 |
187 // Changes for kPath0 must have been offset and removed. | 187 // Changes for kPath0 must have been offset and removed. |
188 EXPECT_FALSE(ContainsKey(urls, URL(kPath0))); | 188 EXPECT_FALSE(base::ContainsKey(urls, URL(kPath0))); |
189 | 189 |
190 // GetNextChangedURLs only returns up to max_urls (i.e. 3) urls. | 190 // GetNextChangedURLs only returns up to max_urls (i.e. 3) urls. |
191 std::deque<FileSystemURL> urls_to_process; | 191 std::deque<FileSystemURL> urls_to_process; |
192 change_tracker()->GetNextChangedURLs(&urls_to_process, 3); | 192 change_tracker()->GetNextChangedURLs(&urls_to_process, 3); |
193 ASSERT_EQ(3U, urls_to_process.size()); | 193 ASSERT_EQ(3U, urls_to_process.size()); |
194 | 194 |
195 // Let it return all. | 195 // Let it return all. |
196 urls_to_process.clear(); | 196 urls_to_process.clear(); |
197 change_tracker()->GetNextChangedURLs(&urls_to_process, 0); | 197 change_tracker()->GetNextChangedURLs(&urls_to_process, 0); |
198 ASSERT_EQ(5U, urls_to_process.size()); | 198 ASSERT_EQ(5U, urls_to_process.size()); |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
663 // | 663 // |
664 // NOTE: This will cause 2 local sync for deleting nonexistent files | 664 // NOTE: This will cause 2 local sync for deleting nonexistent files |
665 // on the remote side. | 665 // on the remote side. |
666 // | 666 // |
667 // TODO(kinuko): For micro optimization we could probably restore the ADD | 667 // TODO(kinuko): For micro optimization we could probably restore the ADD |
668 // change type (other than ADD_OR_UPDATE) and offset file ADD+DELETE | 668 // change type (other than ADD_OR_UPDATE) and offset file ADD+DELETE |
669 // changes too. | 669 // changes too. |
670 ASSERT_EQ(2U, urls.size()); | 670 ASSERT_EQ(2U, urls.size()); |
671 | 671 |
672 // The exact order of recursive removal cannot be determined. | 672 // The exact order of recursive removal cannot be determined. |
673 EXPECT_TRUE(ContainsKey(urls, URL(kPath1))); | 673 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath1))); |
674 EXPECT_TRUE(ContainsKey(urls, URL(kPath2))); | 674 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath2))); |
675 } | 675 } |
676 | 676 |
677 TEST_F(LocalFileChangeTrackerTest, ResetForFileSystem) { | 677 TEST_F(LocalFileChangeTrackerTest, ResetForFileSystem) { |
678 EXPECT_EQ(base::File::FILE_OK, file_system_.OpenFileSystem()); | 678 EXPECT_EQ(base::File::FILE_OK, file_system_.OpenFileSystem()); |
679 | 679 |
680 const char kPath0[] = "dir a"; | 680 const char kPath0[] = "dir a"; |
681 const char kPath1[] = "dir a/file"; | 681 const char kPath1[] = "dir a/file"; |
682 const char kPath2[] = "dir a/subdir"; | 682 const char kPath2[] = "dir a/subdir"; |
683 const char kPath3[] = "dir b"; | 683 const char kPath3[] = "dir b"; |
684 | 684 |
685 EXPECT_EQ(base::File::FILE_OK, | 685 EXPECT_EQ(base::File::FILE_OK, |
686 file_system_.CreateDirectory(URL(kPath0))); | 686 file_system_.CreateDirectory(URL(kPath0))); |
687 EXPECT_EQ(base::File::FILE_OK, | 687 EXPECT_EQ(base::File::FILE_OK, |
688 file_system_.CreateFile(URL(kPath1))); | 688 file_system_.CreateFile(URL(kPath1))); |
689 EXPECT_EQ(base::File::FILE_OK, | 689 EXPECT_EQ(base::File::FILE_OK, |
690 file_system_.CreateDirectory(URL(kPath2))); | 690 file_system_.CreateDirectory(URL(kPath2))); |
691 EXPECT_EQ(base::File::FILE_OK, | 691 EXPECT_EQ(base::File::FILE_OK, |
692 file_system_.CreateDirectory(URL(kPath3))); | 692 file_system_.CreateDirectory(URL(kPath3))); |
693 | 693 |
694 FileSystemURLSet urls; | 694 FileSystemURLSet urls; |
695 GetAllChangedURLs(&urls); | 695 GetAllChangedURLs(&urls); |
696 EXPECT_EQ(4u, urls.size()); | 696 EXPECT_EQ(4u, urls.size()); |
697 EXPECT_TRUE(ContainsKey(urls, URL(kPath0))); | 697 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath0))); |
698 EXPECT_TRUE(ContainsKey(urls, URL(kPath1))); | 698 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath1))); |
699 EXPECT_TRUE(ContainsKey(urls, URL(kPath2))); | 699 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath2))); |
700 EXPECT_TRUE(ContainsKey(urls, URL(kPath3))); | 700 EXPECT_TRUE(base::ContainsKey(urls, URL(kPath3))); |
701 | 701 |
702 // Reset all changes for the file system. | 702 // Reset all changes for the file system. |
703 change_tracker()->ResetForFileSystem( | 703 change_tracker()->ResetForFileSystem( |
704 file_system_.origin(), file_system_.type()); | 704 file_system_.origin(), file_system_.type()); |
705 | 705 |
706 GetAllChangedURLs(&urls); | 706 GetAllChangedURLs(&urls); |
707 EXPECT_TRUE(urls.empty()); | 707 EXPECT_TRUE(urls.empty()); |
708 | 708 |
709 // Make sure they're gone from the database too. | 709 // Make sure they're gone from the database too. |
710 DropChangesInTracker(); | 710 DropChangesInTracker(); |
711 RestoreChangesFromTrackerDB(); | 711 RestoreChangesFromTrackerDB(); |
712 | 712 |
713 GetAllChangedURLs(&urls); | 713 GetAllChangedURLs(&urls); |
714 EXPECT_TRUE(urls.empty()); | 714 EXPECT_TRUE(urls.empty()); |
715 } | 715 } |
716 | 716 |
717 } // namespace sync_file_system | 717 } // namespace sync_file_system |
OLD | NEW |