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/drive_resource_metadata.h" | 5 #include "chrome/browser/chromeos/drive/drive_resource_metadata.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 18 matching lines...) Expand all Loading... |
29 // See drive.proto for the difference between the two URLs. | 29 // See drive.proto for the difference between the two URLs. |
30 const char kResumableEditMediaUrl[] = "http://resumable-edit-media/"; | 30 const char kResumableEditMediaUrl[] = "http://resumable-edit-media/"; |
31 const char kResumableCreateMediaUrl[] = "http://resumable-create-media/"; | 31 const char kResumableCreateMediaUrl[] = "http://resumable-create-media/"; |
32 | 32 |
33 const char kTestRootResourceId[] = "test_root"; | 33 const char kTestRootResourceId[] = "test_root"; |
34 | 34 |
35 // The changestamp of the resource metadata used in | 35 // The changestamp of the resource metadata used in |
36 // DriveResourceMetadataTest. | 36 // DriveResourceMetadataTest. |
37 const int64 kTestChangestamp = 100; | 37 const int64 kTestChangestamp = 100; |
38 | 38 |
39 // Copies result from GetChildDirectoriesCallback. | |
40 void CopyResultFromGetChildDirectoriesCallback( | |
41 std::set<base::FilePath>* out_child_directories, | |
42 const std::set<base::FilePath>& in_child_directories) { | |
43 *out_child_directories = in_child_directories; | |
44 } | |
45 | |
46 // Copies result from GetChangestampCallback. | |
47 void CopyResultFromGetChangestampCallback( | |
48 int64* out_changestamp, int64 in_changestamp) { | |
49 *out_changestamp = in_changestamp; | |
50 } | |
51 | |
52 // Returns the sorted base names from |entries|. | 39 // Returns the sorted base names from |entries|. |
53 std::vector<std::string> GetSortedBaseNames( | 40 std::vector<std::string> GetSortedBaseNames( |
54 const DriveEntryProtoVector& entries) { | 41 const DriveEntryProtoVector& entries) { |
55 std::vector<std::string> base_names; | 42 std::vector<std::string> base_names; |
56 for (size_t i = 0; i < entries.size(); ++i) | 43 for (size_t i = 0; i < entries.size(); ++i) |
57 base_names.push_back(entries[i].base_name()); | 44 base_names.push_back(entries[i].base_name()); |
58 std::sort(base_names.begin(), base_names.end()); | 45 std::sort(base_names.begin(), base_names.end()); |
59 | 46 |
60 return base_names; | 47 return base_names; |
61 } | 48 } |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 | 314 |
328 int64 in_changestamp = 123456; | 315 int64 in_changestamp = 123456; |
329 resource_metadata->SetLargestChangestamp( | 316 resource_metadata->SetLargestChangestamp( |
330 in_changestamp, | 317 in_changestamp, |
331 google_apis::test_util::CreateCopyResultCallback(&error)); | 318 google_apis::test_util::CreateCopyResultCallback(&error)); |
332 google_apis::test_util::RunBlockingPoolTask(); | 319 google_apis::test_util::RunBlockingPoolTask(); |
333 EXPECT_EQ(DRIVE_FILE_OK, error); | 320 EXPECT_EQ(DRIVE_FILE_OK, error); |
334 | 321 |
335 int64 out_changestamp = 0; | 322 int64 out_changestamp = 0; |
336 resource_metadata->GetLargestChangestamp( | 323 resource_metadata->GetLargestChangestamp( |
337 base::Bind(&CopyResultFromGetChangestampCallback, | 324 google_apis::test_util::CreateCopyResultCallback(&out_changestamp)); |
338 &out_changestamp)); | |
339 google_apis::test_util::RunBlockingPoolTask(); | 325 google_apis::test_util::RunBlockingPoolTask(); |
340 DCHECK_EQ(in_changestamp, out_changestamp); | 326 DCHECK_EQ(in_changestamp, out_changestamp); |
341 } | 327 } |
342 | 328 |
343 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId_RootDirectory) { | 329 TEST_F(DriveResourceMetadataTest, GetEntryInfoByResourceId_RootDirectory) { |
344 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> | 330 scoped_ptr<DriveResourceMetadata, test_util::DestroyHelperForTests> |
345 resource_metadata(new DriveResourceMetadata(kTestRootResourceId, | 331 resource_metadata(new DriveResourceMetadata(kTestRootResourceId, |
346 temp_dir_.path(), | 332 temp_dir_.path(), |
347 blocking_task_runner_)); | 333 blocking_task_runner_)); |
348 DriveFileError error = DRIVE_FILE_ERROR_FAILED; | 334 DriveFileError error = DRIVE_FILE_ERROR_FAILED; |
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1140 google_apis::test_util::CreateCopyResultCallback( | 1126 google_apis::test_util::CreateCopyResultCallback( |
1141 &error, &drive_file_path)); | 1127 &error, &drive_file_path)); |
1142 google_apis::test_util::RunBlockingPoolTask(); | 1128 google_apis::test_util::RunBlockingPoolTask(); |
1143 EXPECT_EQ(DRIVE_FILE_ERROR_EXISTS, error); | 1129 EXPECT_EQ(DRIVE_FILE_ERROR_EXISTS, error); |
1144 } | 1130 } |
1145 | 1131 |
1146 TEST_F(DriveResourceMetadataTest, GetChildDirectories) { | 1132 TEST_F(DriveResourceMetadataTest, GetChildDirectories) { |
1147 std::set<base::FilePath> child_directories; | 1133 std::set<base::FilePath> child_directories; |
1148 | 1134 |
1149 // file9: not a directory, so no children. | 1135 // file9: not a directory, so no children. |
1150 resource_metadata_->GetChildDirectories("resource_id:file9", | 1136 resource_metadata_->GetChildDirectories( |
1151 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 1137 "resource_id:file9", |
1152 &child_directories)); | 1138 google_apis::test_util::CreateCopyResultCallback(&child_directories)); |
1153 google_apis::test_util::RunBlockingPoolTask(); | 1139 google_apis::test_util::RunBlockingPoolTask(); |
1154 EXPECT_TRUE(child_directories.empty()); | 1140 EXPECT_TRUE(child_directories.empty()); |
1155 | 1141 |
1156 // dir2: no child directories. | 1142 // dir2: no child directories. |
1157 resource_metadata_->GetChildDirectories("resource_id:dir2", | 1143 resource_metadata_->GetChildDirectories( |
1158 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 1144 "resource_id:dir2", |
1159 &child_directories)); | 1145 google_apis::test_util::CreateCopyResultCallback(&child_directories)); |
1160 google_apis::test_util::RunBlockingPoolTask(); | 1146 google_apis::test_util::RunBlockingPoolTask(); |
1161 EXPECT_TRUE(child_directories.empty()); | 1147 EXPECT_TRUE(child_directories.empty()); |
1162 | 1148 |
1163 // dir1: dir3 is the only child | 1149 // dir1: dir3 is the only child |
1164 resource_metadata_->GetChildDirectories("resource_id:dir1", | 1150 resource_metadata_->GetChildDirectories( |
1165 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 1151 "resource_id:dir1", |
1166 &child_directories)); | 1152 google_apis::test_util::CreateCopyResultCallback(&child_directories)); |
1167 google_apis::test_util::RunBlockingPoolTask(); | 1153 google_apis::test_util::RunBlockingPoolTask(); |
1168 EXPECT_EQ(1u, child_directories.size()); | 1154 EXPECT_EQ(1u, child_directories.size()); |
1169 EXPECT_EQ(1u, child_directories.count( | 1155 EXPECT_EQ(1u, child_directories.count( |
1170 base::FilePath::FromUTF8Unsafe("drive/dir1/dir3"))); | 1156 base::FilePath::FromUTF8Unsafe("drive/dir1/dir3"))); |
1171 | 1157 |
1172 // Add a few more directories to make sure deeper nesting works. | 1158 // Add a few more directories to make sure deeper nesting works. |
1173 // dir2/dir100 | 1159 // dir2/dir100 |
1174 // dir2/dir101 | 1160 // dir2/dir101 |
1175 // dir2/dir101/dir102 | 1161 // dir2/dir101/dir102 |
1176 // dir2/dir101/dir103 | 1162 // dir2/dir101/dir103 |
(...skipping 12 matching lines...) Expand all Loading... |
1189 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); | 1175 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); |
1190 ASSERT_TRUE(AddDriveEntryProto( | 1176 ASSERT_TRUE(AddDriveEntryProto( |
1191 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); | 1177 resource_metadata_.get(), sequence_id++, true, "resource_id:dir101")); |
1192 ASSERT_TRUE(AddDriveEntryProto( | 1178 ASSERT_TRUE(AddDriveEntryProto( |
1193 resource_metadata_.get(), sequence_id++, true, "resource_id:dir102")); | 1179 resource_metadata_.get(), sequence_id++, true, "resource_id:dir102")); |
1194 ASSERT_TRUE(AddDriveEntryProto( | 1180 ASSERT_TRUE(AddDriveEntryProto( |
1195 resource_metadata_.get(), sequence_id++, true, "resource_id:dir105")); | 1181 resource_metadata_.get(), sequence_id++, true, "resource_id:dir105")); |
1196 ASSERT_TRUE(AddDriveEntryProto( | 1182 ASSERT_TRUE(AddDriveEntryProto( |
1197 resource_metadata_.get(), sequence_id++, true, "resource_id:dir106")); | 1183 resource_metadata_.get(), sequence_id++, true, "resource_id:dir106")); |
1198 | 1184 |
1199 resource_metadata_->GetChildDirectories("resource_id:dir2", | 1185 resource_metadata_->GetChildDirectories( |
1200 base::Bind(&CopyResultFromGetChildDirectoriesCallback, | 1186 "resource_id:dir2", |
1201 &child_directories)); | 1187 google_apis::test_util::CreateCopyResultCallback(&child_directories)); |
1202 google_apis::test_util::RunBlockingPoolTask(); | 1188 google_apis::test_util::RunBlockingPoolTask(); |
1203 EXPECT_EQ(8u, child_directories.size()); | 1189 EXPECT_EQ(8u, child_directories.size()); |
1204 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( | 1190 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( |
1205 "drive/dir2/dir101"))); | 1191 "drive/dir2/dir101"))); |
1206 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( | 1192 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( |
1207 "drive/dir2/dir101/dir104"))); | 1193 "drive/dir2/dir101/dir104"))); |
1208 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( | 1194 EXPECT_EQ(1u, child_directories.count(base::FilePath::FromUTF8Unsafe( |
1209 "drive/dir2/dir101/dir102/dir105/dir106/dir107"))); | 1195 "drive/dir2/dir101/dir102/dir105/dir106/dir107"))); |
1210 } | 1196 } |
1211 | 1197 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1331 // Try to get some data. | 1317 // Try to get some data. |
1332 scoped_ptr<DriveEntryProto> entry = GetEntryInfoByPathSync( | 1318 scoped_ptr<DriveEntryProto> entry = GetEntryInfoByPathSync( |
1333 base::FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9")); | 1319 base::FilePath::FromUTF8Unsafe("drive/dir1/dir3/file9")); |
1334 ASSERT_TRUE(entry.get()); | 1320 ASSERT_TRUE(entry.get()); |
1335 EXPECT_EQ("file9", entry->base_name()); | 1321 EXPECT_EQ("file9", entry->base_name()); |
1336 ASSERT_TRUE(!entry->file_info().is_directory()); | 1322 ASSERT_TRUE(!entry->file_info().is_directory()); |
1337 EXPECT_EQ("md5:file9", entry->file_specific_info().file_md5()); | 1323 EXPECT_EQ("md5:file9", entry->file_specific_info().file_md5()); |
1338 } | 1324 } |
1339 | 1325 |
1340 } // namespace drive | 1326 } // namespace drive |
OLD | NEW |