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 #include "chrome/browser/chromeos/drive/file_change.h" | 5 #include "chrome/browser/chromeos/drive/file_change.h" |
6 | 6 |
7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
8 | 8 |
9 namespace drive { | 9 namespace drive { |
10 | 10 |
11 TEST(FileChangeTest, Getters) { | 11 TEST(ChangeListTest, FileChange_Change) { |
12 base::FilePath change_path(FILE_PATH_LITERAL("test")); | 12 FileChange::ChangeType change_type = FileChange::ADD_OR_UPDATE; |
13 FileChange::Type change_type = FileChange::ADDED; | 13 FileChange::FileType file_type = FileChange::FILE_TYPE_FILE; |
14 | 14 |
15 FileChange file_change(change_path, change_type); | 15 FileChange::Change change1(change_type, file_type); |
| 16 EXPECT_EQ(change_type, change1.change()); |
| 17 EXPECT_EQ(file_type, change1.file_type()); |
16 | 18 |
17 EXPECT_EQ(change_path, file_change.path()); | 19 FileChange::Change change2(change_type, file_type); |
18 EXPECT_EQ(change_type, file_change.type()); | 20 EXPECT_EQ(change_type, change1.change()); |
| 21 EXPECT_EQ(file_type, change1.file_type()); |
| 22 EXPECT_EQ(change1, change2); |
| 23 |
| 24 FileChange::Change change3(change_type, FileChange::FILE_TYPE_DIRECTORY); |
| 25 EXPECT_EQ(change_type, change3.change()); |
| 26 EXPECT_EQ(FileChange::FILE_TYPE_DIRECTORY, change3.file_type()); |
| 27 EXPECT_TRUE(!(change1 == change3)); |
19 } | 28 } |
20 | 29 |
21 TEST(FileChangeTest, FactoryMethod) { | 30 TEST(ChangeListTest, FileChangeChangeList) { |
22 base::FilePath change_path(FILE_PATH_LITERAL("a/b/c/d")); | 31 FileChange::ChangeList changes; |
23 FileChange::Type change_type = FileChange::CHANGED; | 32 EXPECT_TRUE(changes.empty()); |
| 33 EXPECT_EQ(0u, changes.size()); |
24 | 34 |
25 FileChangeSet changed_files = | 35 changes.Update(FileChange::Change(FileChange::ADD_OR_UPDATE, |
26 FileChange::CreateSingleSet(change_path, change_type); | 36 FileChange::FILE_TYPE_FILE)); |
27 | 37 EXPECT_EQ(1u, changes.size()); |
28 ASSERT_EQ(1u, changed_files.size()); | |
29 FileChangeSet::iterator it = changed_files.begin(); | |
30 | |
31 EXPECT_EQ(change_path, it->path()); | |
32 EXPECT_EQ(change_type, it->type()); | |
33 } | 38 } |
34 | 39 |
35 TEST(FileChangeTest, Equals) { | 40 TEST(ChangeListTest, FileChange) { |
36 // Change is equal if and only if both path and type are equal. | 41 base::FilePath change_path1(FILE_PATH_LITERAL("test")); |
37 // Paths differ, types are equal. | 42 base::FilePath change_path2(FILE_PATH_LITERAL("a/b/c/d")); |
38 FileChange file_change1(base::FilePath(FILE_PATH_LITERAL("a")), | 43 base::FilePath change_path3(FILE_PATH_LITERAL("a/b/c/e")); |
39 FileChange::ADDED); | 44 base::FilePath change_dir(FILE_PATH_LITERAL("a/b/c")); |
40 FileChange file_change2(base::FilePath(FILE_PATH_LITERAL("b")), | |
41 FileChange::ADDED); | |
42 EXPECT_EQ(file_change1, file_change1); | |
43 EXPECT_FALSE(file_change1 == file_change2); | |
44 | 45 |
45 // Paths are equal, types differ. | 46 FileChange changed_files; |
46 FileChange file_change3(base::FilePath(FILE_PATH_LITERAL("a")), | 47 changed_files.Update( |
47 FileChange::DELETED); | 48 change_path1, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); |
48 FileChange file_change4(base::FilePath(FILE_PATH_LITERAL("a")), | 49 changed_files.Update( |
49 FileChange::CHANGED); | 50 change_path2, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); |
50 EXPECT_FALSE(file_change3 == file_change4); | 51 changed_files.Update( |
| 52 change_path2, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); |
| 53 changed_files.Update( |
| 54 change_path3, FileChange::FILE_TYPE_FILE, FileChange::ADD_OR_UPDATE); |
51 | 55 |
52 // Paths and types are equal. | 56 ASSERT_EQ(3u, changed_files.size()); |
53 FileChange file_change5(base::FilePath(FILE_PATH_LITERAL("c")), | 57 ASSERT_EQ(2u, changed_files.CountDirectory(change_dir)); |
54 FileChange::ADDED); | |
55 FileChange file_change6(base::FilePath(FILE_PATH_LITERAL("c")), | |
56 FileChange::ADDED); | |
57 EXPECT_EQ(file_change5, file_change6); | |
58 } | |
59 | |
60 TEST(FileChangeTest, Compare) { | |
61 FileChange file_change1(base::FilePath(FILE_PATH_LITERAL("a")), | |
62 FileChange::DELETED); | |
63 FileChange file_change2(base::FilePath(FILE_PATH_LITERAL("a")), | |
64 FileChange::ADDED); | |
65 FileChange file_change3(base::FilePath(FILE_PATH_LITERAL("a")), | |
66 FileChange::CHANGED); | |
67 FileChange file_change4(base::FilePath(FILE_PATH_LITERAL("b")), | |
68 FileChange::ADDED); | |
69 FileChange file_change5(base::FilePath(FILE_PATH_LITERAL("c")), | |
70 FileChange::DELETED); | |
71 | |
72 // Comparison operator should not return true for equal values. | |
73 EXPECT_FALSE(file_change1 < file_change1); | |
74 EXPECT_FALSE(file_change2 < file_change2); | |
75 EXPECT_FALSE(file_change3 < file_change3); | |
76 EXPECT_FALSE(file_change4 < file_change4); | |
77 EXPECT_FALSE(file_change5 < file_change5); | |
78 | |
79 EXPECT_LT(file_change1, file_change2); | |
80 EXPECT_LT(file_change1, file_change3); | |
81 EXPECT_LT(file_change1, file_change4); | |
82 EXPECT_LT(file_change1, file_change5); | |
83 | |
84 EXPECT_FALSE(file_change2 < file_change1); | |
85 EXPECT_LT(file_change2, file_change3); | |
86 EXPECT_LT(file_change2, file_change4); | |
87 EXPECT_LT(file_change2, file_change5); | |
88 | |
89 EXPECT_FALSE(file_change3 < file_change1); | |
90 EXPECT_FALSE(file_change3 < file_change2); | |
91 EXPECT_LT(file_change3, file_change4); | |
92 EXPECT_LT(file_change3, file_change5); | |
93 | |
94 EXPECT_FALSE(file_change4 < file_change1); | |
95 EXPECT_FALSE(file_change4 < file_change2); | |
96 EXPECT_FALSE(file_change4 < file_change3); | |
97 EXPECT_LT(file_change4, file_change5); | |
98 } | 58 } |
99 | 59 |
100 } // namespace drive | 60 } // namespace drive |
OLD | NEW |