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

Side by Side Diff: chrome/browser/chromeos/gdata/drive_resource_metadata_unittest.cc

Issue 10873005: Rename GDataDirectoryService to DriveResourceMetadata (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase. Created 8 years, 4 months 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 | Annotate | Revision Log
OLDNEW
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/gdata/gdata_directory_service.h" 5 #include "chrome/browser/chromeos/gdata/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>
11 11
12 #include "base/sequenced_task_runner.h" 12 #include "base/sequenced_task_runner.h"
13 #include "base/string_number_conversions.h" 13 #include "base/string_number_conversions.h"
14 #include "base/threading/sequenced_worker_pool.h" 14 #include "base/threading/sequenced_worker_pool.h"
15 #include "base/message_loop.h" 15 #include "base/message_loop.h"
16 #include "chrome/browser/chromeos/gdata/drive.pb.h" 16 #include "chrome/browser/chromeos/gdata/drive.pb.h"
17 #include "chrome/browser/chromeos/gdata/drive_files.h" 17 #include "chrome/browser/chromeos/gdata/drive_files.h"
18 #include "chrome/browser/chromeos/gdata/gdata_cache.h" 18 #include "chrome/browser/chromeos/gdata/gdata_cache.h"
19 #include "chrome/browser/chromeos/gdata/gdata_test_util.h" 19 #include "chrome/browser/chromeos/gdata/gdata_test_util.h"
20 #include "chrome/test/base/testing_profile.h" 20 #include "chrome/test/base/testing_profile.h"
21 #include "content/public/test/test_browser_thread.h" 21 #include "content/public/test/test_browser_thread.h"
22 #include "testing/gtest/include/gtest/gtest.h" 22 #include "testing/gtest/include/gtest/gtest.h"
23 23
24 namespace gdata { 24 namespace gdata {
25 namespace { 25 namespace {
26 26
27 // See drive.proto for the difference between the two URLs. 27 // See drive.proto for the difference between the two URLs.
28 const char kResumableEditMediaUrl[] = "http://resumable-edit-media/"; 28 const char kResumableEditMediaUrl[] = "http://resumable-edit-media/";
29 const char kResumableCreateMediaUrl[] = "http://resumable-create-media/"; 29 const char kResumableCreateMediaUrl[] = "http://resumable-create-media/";
30 30
31 // Add a directory to |parent| and return that directory. The name and 31 // Add a directory to |parent| and return that directory. The name and
32 // resource_id are determined by the incrementing counter |sequence_id|. 32 // resource_id are determined by the incrementing counter |sequence_id|.
33 DriveDirectory* AddDirectory(DriveDirectory* parent, 33 DriveDirectory* AddDirectory(DriveDirectory* parent,
34 GDataDirectoryService* directory_service, 34 DriveResourceMetadata* resource_metadata,
35 int sequence_id) { 35 int sequence_id) {
36 DriveDirectory* dir = directory_service->CreateDriveDirectory(); 36 DriveDirectory* dir = resource_metadata->CreateDriveDirectory();
37 const std::string dir_name = "dir" + base::IntToString(sequence_id); 37 const std::string dir_name = "dir" + base::IntToString(sequence_id);
38 const std::string resource_id = std::string("dir_resource_id:") + 38 const std::string resource_id = std::string("dir_resource_id:") +
39 dir_name; 39 dir_name;
40 dir->set_title(dir_name); 40 dir->set_title(dir_name);
41 dir->set_resource_id(resource_id); 41 dir->set_resource_id(resource_id);
42 GDataFileError error = GDATA_FILE_ERROR_FAILED; 42 GDataFileError error = GDATA_FILE_ERROR_FAILED;
43 FilePath moved_file_path; 43 FilePath moved_file_path;
44 directory_service->MoveEntryToDirectory( 44 resource_metadata->MoveEntryToDirectory(
45 parent->GetFilePath(), 45 parent->GetFilePath(),
46 dir, 46 dir,
47 base::Bind(&test_util::CopyResultsFromFileMoveCallback, 47 base::Bind(&test_util::CopyResultsFromFileMoveCallback,
48 &error, 48 &error,
49 &moved_file_path)); 49 &moved_file_path));
50 test_util::RunBlockingPoolTask(); 50 test_util::RunBlockingPoolTask();
51 EXPECT_EQ(GDATA_FILE_OK, error); 51 EXPECT_EQ(GDATA_FILE_OK, error);
52 EXPECT_EQ(parent->GetFilePath().AppendASCII(dir_name), moved_file_path); 52 EXPECT_EQ(parent->GetFilePath().AppendASCII(dir_name), moved_file_path);
53 return dir; 53 return dir;
54 } 54 }
55 55
56 // Add a file to |parent| and return that file. The name and 56 // Add a file to |parent| and return that file. The name and
57 // resource_id are determined by the incrementing counter |sequence_id|. 57 // resource_id are determined by the incrementing counter |sequence_id|.
58 DriveFile* AddFile(DriveDirectory* parent, 58 DriveFile* AddFile(DriveDirectory* parent,
59 GDataDirectoryService* directory_service, 59 DriveResourceMetadata* resource_metadata,
60 int sequence_id) { 60 int sequence_id) {
61 DriveFile* file = directory_service->CreateDriveFile(); 61 DriveFile* file = resource_metadata->CreateDriveFile();
62 const std::string title = "file" + base::IntToString(sequence_id); 62 const std::string title = "file" + base::IntToString(sequence_id);
63 const std::string resource_id = std::string("file_resource_id:") + 63 const std::string resource_id = std::string("file_resource_id:") +
64 title; 64 title;
65 file->set_title(title); 65 file->set_title(title);
66 file->set_resource_id(resource_id); 66 file->set_resource_id(resource_id);
67 file->set_file_md5(std::string("file_md5:") + title); 67 file->set_file_md5(std::string("file_md5:") + title);
68 GDataFileError error = GDATA_FILE_ERROR_FAILED; 68 GDataFileError error = GDATA_FILE_ERROR_FAILED;
69 FilePath moved_file_path; 69 FilePath moved_file_path;
70 directory_service->MoveEntryToDirectory( 70 resource_metadata->MoveEntryToDirectory(
71 parent->GetFilePath(), 71 parent->GetFilePath(),
72 file, 72 file,
73 base::Bind(&test_util::CopyResultsFromFileMoveCallback, 73 base::Bind(&test_util::CopyResultsFromFileMoveCallback,
74 &error, 74 &error,
75 &moved_file_path)); 75 &moved_file_path));
76 test_util::RunBlockingPoolTask(); 76 test_util::RunBlockingPoolTask();
77 EXPECT_EQ(GDATA_FILE_OK, error); 77 EXPECT_EQ(GDATA_FILE_OK, error);
78 EXPECT_EQ(parent->GetFilePath().AppendASCII(title), moved_file_path); 78 EXPECT_EQ(parent->GetFilePath().AppendASCII(title), moved_file_path);
79 return file; 79 return file;
80 } 80 }
81 81
82 // Creates the following files/directories 82 // Creates the following files/directories
83 // drive/dir1/ 83 // drive/dir1/
84 // drive/dir2/ 84 // drive/dir2/
85 // drive/dir1/dir3/ 85 // drive/dir1/dir3/
86 // drive/dir1/file4 86 // drive/dir1/file4
87 // drive/dir1/file5 87 // drive/dir1/file5
88 // drive/dir2/file6 88 // drive/dir2/file6
89 // drive/dir2/file7 89 // drive/dir2/file7
90 // drive/dir2/file8 90 // drive/dir2/file8
91 // drive/dir1/dir3/file9 91 // drive/dir1/dir3/file9
92 // drive/dir1/dir3/file10 92 // drive/dir1/dir3/file10
93 void InitDirectoryService(GDataDirectoryService* directory_service) { 93 void InitDirectoryService(DriveResourceMetadata* resource_metadata) {
94 int sequence_id = 1; 94 int sequence_id = 1;
95 DriveDirectory* dir1 = AddDirectory(directory_service->root(), 95 DriveDirectory* dir1 = AddDirectory(resource_metadata->root(),
96 directory_service, sequence_id++); 96 resource_metadata, sequence_id++);
97 DriveDirectory* dir2 = AddDirectory(directory_service->root(), 97 DriveDirectory* dir2 = AddDirectory(resource_metadata->root(),
98 directory_service, sequence_id++); 98 resource_metadata, sequence_id++);
99 DriveDirectory* dir3 = AddDirectory(dir1, directory_service, sequence_id++); 99 DriveDirectory* dir3 = AddDirectory(dir1, resource_metadata, sequence_id++);
100 100
101 AddFile(dir1, directory_service, sequence_id++); 101 AddFile(dir1, resource_metadata, sequence_id++);
102 AddFile(dir1, directory_service, sequence_id++); 102 AddFile(dir1, resource_metadata, sequence_id++);
103 103
104 AddFile(dir2, directory_service, sequence_id++); 104 AddFile(dir2, resource_metadata, sequence_id++);
105 AddFile(dir2, directory_service, sequence_id++); 105 AddFile(dir2, resource_metadata, sequence_id++);
106 AddFile(dir2, directory_service, sequence_id++); 106 AddFile(dir2, resource_metadata, sequence_id++);
107 107
108 AddFile(dir3, directory_service, sequence_id++); 108 AddFile(dir3, resource_metadata, sequence_id++);
109 AddFile(dir3, directory_service, sequence_id++); 109 AddFile(dir3, resource_metadata, sequence_id++);
110 } 110 }
111 111
112 // Find directory by path. 112 // Find directory by path.
113 DriveDirectory* FindDirectory(GDataDirectoryService* directory_service, 113 DriveDirectory* FindDirectory(DriveResourceMetadata* resource_metadata,
114 const char* path) { 114 const char* path) {
115 return directory_service->FindEntryByPathSync( 115 return resource_metadata->FindEntryByPathSync(
116 FilePath(path))->AsDriveDirectory(); 116 FilePath(path))->AsDriveDirectory();
117 } 117 }
118 118
119 // Find file by path. 119 // Find file by path.
120 DriveFile* FindFile(GDataDirectoryService* directory_service, 120 DriveFile* FindFile(DriveResourceMetadata* resource_metadata,
121 const char* path) { 121 const char* path) {
122 return directory_service->FindEntryByPathSync(FilePath(path))->AsDriveFile(); 122 return resource_metadata->FindEntryByPathSync(FilePath(path))->AsDriveFile();
123 } 123 }
124 124
125 // Verify that the recreated directory service matches what we created in 125 // Verify that the recreated directory service matches what we created in
126 // InitDirectoryService. 126 // InitDirectoryService.
127 void VerifyDirectoryService(GDataDirectoryService* directory_service) { 127 void VerifyDirectoryService(DriveResourceMetadata* resource_metadata) {
128 ASSERT_TRUE(directory_service->root()); 128 ASSERT_TRUE(resource_metadata->root());
129 129
130 DriveDirectory* dir1 = FindDirectory(directory_service, "drive/dir1"); 130 DriveDirectory* dir1 = FindDirectory(resource_metadata, "drive/dir1");
131 ASSERT_TRUE(dir1); 131 ASSERT_TRUE(dir1);
132 DriveDirectory* dir2 = FindDirectory(directory_service, "drive/dir2"); 132 DriveDirectory* dir2 = FindDirectory(resource_metadata, "drive/dir2");
133 ASSERT_TRUE(dir2); 133 ASSERT_TRUE(dir2);
134 DriveDirectory* dir3 = FindDirectory(directory_service, "drive/dir1/dir3"); 134 DriveDirectory* dir3 = FindDirectory(resource_metadata, "drive/dir1/dir3");
135 ASSERT_TRUE(dir3); 135 ASSERT_TRUE(dir3);
136 136
137 DriveFile* file4 = FindFile(directory_service, "drive/dir1/file4"); 137 DriveFile* file4 = FindFile(resource_metadata, "drive/dir1/file4");
138 ASSERT_TRUE(file4); 138 ASSERT_TRUE(file4);
139 EXPECT_EQ(file4->parent(), dir1); 139 EXPECT_EQ(file4->parent(), dir1);
140 140
141 DriveFile* file5 = FindFile(directory_service, "drive/dir1/file5"); 141 DriveFile* file5 = FindFile(resource_metadata, "drive/dir1/file5");
142 ASSERT_TRUE(file5); 142 ASSERT_TRUE(file5);
143 EXPECT_EQ(file5->parent(), dir1); 143 EXPECT_EQ(file5->parent(), dir1);
144 144
145 DriveFile* file6 = FindFile(directory_service, "drive/dir2/file6"); 145 DriveFile* file6 = FindFile(resource_metadata, "drive/dir2/file6");
146 ASSERT_TRUE(file6); 146 ASSERT_TRUE(file6);
147 EXPECT_EQ(file6->parent(), dir2); 147 EXPECT_EQ(file6->parent(), dir2);
148 148
149 DriveFile* file7 = FindFile(directory_service, "drive/dir2/file7"); 149 DriveFile* file7 = FindFile(resource_metadata, "drive/dir2/file7");
150 ASSERT_TRUE(file7); 150 ASSERT_TRUE(file7);
151 EXPECT_EQ(file7->parent(), dir2); 151 EXPECT_EQ(file7->parent(), dir2);
152 152
153 DriveFile* file8 = FindFile(directory_service, "drive/dir2/file8"); 153 DriveFile* file8 = FindFile(resource_metadata, "drive/dir2/file8");
154 ASSERT_TRUE(file8); 154 ASSERT_TRUE(file8);
155 EXPECT_EQ(file8->parent(), dir2); 155 EXPECT_EQ(file8->parent(), dir2);
156 156
157 DriveFile* file9 = FindFile(directory_service, "drive/dir1/dir3/file9"); 157 DriveFile* file9 = FindFile(resource_metadata, "drive/dir1/dir3/file9");
158 ASSERT_TRUE(file9); 158 ASSERT_TRUE(file9);
159 EXPECT_EQ(file9->parent(), dir3); 159 EXPECT_EQ(file9->parent(), dir3);
160 160
161 DriveFile* file10 = FindFile(directory_service, "drive/dir1/dir3/file10"); 161 DriveFile* file10 = FindFile(resource_metadata, "drive/dir1/dir3/file10");
162 ASSERT_TRUE(file10); 162 ASSERT_TRUE(file10);
163 EXPECT_EQ(file10->parent(), dir3); 163 EXPECT_EQ(file10->parent(), dir3);
164 164
165 EXPECT_EQ(dir1, directory_service->GetEntryByResourceId( 165 EXPECT_EQ(dir1, resource_metadata->GetEntryByResourceId(
166 "dir_resource_id:dir1")); 166 "dir_resource_id:dir1"));
167 EXPECT_EQ(dir2, directory_service->GetEntryByResourceId( 167 EXPECT_EQ(dir2, resource_metadata->GetEntryByResourceId(
168 "dir_resource_id:dir2")); 168 "dir_resource_id:dir2"));
169 EXPECT_EQ(dir3, directory_service->GetEntryByResourceId( 169 EXPECT_EQ(dir3, resource_metadata->GetEntryByResourceId(
170 "dir_resource_id:dir3")); 170 "dir_resource_id:dir3"));
171 EXPECT_EQ(file4, directory_service->GetEntryByResourceId( 171 EXPECT_EQ(file4, resource_metadata->GetEntryByResourceId(
172 "file_resource_id:file4")); 172 "file_resource_id:file4"));
173 EXPECT_EQ(file5, directory_service->GetEntryByResourceId( 173 EXPECT_EQ(file5, resource_metadata->GetEntryByResourceId(
174 "file_resource_id:file5")); 174 "file_resource_id:file5"));
175 EXPECT_EQ(file6, directory_service->GetEntryByResourceId( 175 EXPECT_EQ(file6, resource_metadata->GetEntryByResourceId(
176 "file_resource_id:file6")); 176 "file_resource_id:file6"));
177 EXPECT_EQ(file7, directory_service->GetEntryByResourceId( 177 EXPECT_EQ(file7, resource_metadata->GetEntryByResourceId(
178 "file_resource_id:file7")); 178 "file_resource_id:file7"));
179 EXPECT_EQ(file8, directory_service->GetEntryByResourceId( 179 EXPECT_EQ(file8, resource_metadata->GetEntryByResourceId(
180 "file_resource_id:file8")); 180 "file_resource_id:file8"));
181 EXPECT_EQ(file9, directory_service->GetEntryByResourceId( 181 EXPECT_EQ(file9, resource_metadata->GetEntryByResourceId(
182 "file_resource_id:file9")); 182 "file_resource_id:file9"));
183 EXPECT_EQ(file10, directory_service->GetEntryByResourceId( 183 EXPECT_EQ(file10, resource_metadata->GetEntryByResourceId(
184 "file_resource_id:file10")); 184 "file_resource_id:file10"));
185 } 185 }
186 186
187 // Callback for GDataDirectoryService::InitFromDB. 187 // Callback for DriveResourceMetadata::InitFromDB.
188 void InitFromDBCallback(GDataFileError expected_error, 188 void InitFromDBCallback(GDataFileError expected_error,
189 GDataFileError actual_error) { 189 GDataFileError actual_error) {
190 EXPECT_EQ(expected_error, actual_error); 190 EXPECT_EQ(expected_error, actual_error);
191 } 191 }
192 192
193 // Callback for GDataDirectoryService::ReadDirectoryByPath. 193 // Callback for DriveResourceMetadata::ReadDirectoryByPath.
194 void ReadDirectoryByPathCallback( 194 void ReadDirectoryByPathCallback(
195 scoped_ptr<DriveEntryProtoVector>* result, 195 scoped_ptr<DriveEntryProtoVector>* result,
196 GDataFileError error, 196 GDataFileError error,
197 scoped_ptr<DriveEntryProtoVector> entries) { 197 scoped_ptr<DriveEntryProtoVector> entries) {
198 EXPECT_EQ(GDATA_FILE_OK, error); 198 EXPECT_EQ(GDATA_FILE_OK, error);
199 *result = entries.Pass(); 199 *result = entries.Pass();
200 } 200 }
201 201
202 } // namespace 202 } // namespace
203 203
204 TEST(GDataDirectoryServiceTest, VersionCheck) { 204 TEST(DriveResourceMetadataTest, VersionCheck) {
205 // Set up the root directory. 205 // Set up the root directory.
206 DriveRootDirectoryProto proto; 206 DriveRootDirectoryProto proto;
207 DriveEntryProto* mutable_entry = 207 DriveEntryProto* mutable_entry =
208 proto.mutable_gdata_directory()->mutable_gdata_entry(); 208 proto.mutable_gdata_directory()->mutable_gdata_entry();
209 mutable_entry->mutable_file_info()->set_is_directory(true); 209 mutable_entry->mutable_file_info()->set_is_directory(true);
210 mutable_entry->set_resource_id(kGDataRootDirectoryResourceId); 210 mutable_entry->set_resource_id(kDriveRootDirectoryResourceId);
211 mutable_entry->set_upload_url(kResumableCreateMediaUrl); 211 mutable_entry->set_upload_url(kResumableCreateMediaUrl);
212 mutable_entry->set_title("drive"); 212 mutable_entry->set_title("drive");
213 213
214 GDataDirectoryService directory_service; 214 DriveResourceMetadata resource_metadata;
215 215
216 std::string serialized_proto; 216 std::string serialized_proto;
217 ASSERT_TRUE(proto.SerializeToString(&serialized_proto)); 217 ASSERT_TRUE(proto.SerializeToString(&serialized_proto));
218 // This should fail as the version is emtpy. 218 // This should fail as the version is emtpy.
219 ASSERT_FALSE(directory_service.ParseFromString(serialized_proto)); 219 ASSERT_FALSE(resource_metadata.ParseFromString(serialized_proto));
220 220
221 // Set an older version, and serialize. 221 // Set an older version, and serialize.
222 proto.set_version(kProtoVersion - 1); 222 proto.set_version(kProtoVersion - 1);
223 ASSERT_TRUE(proto.SerializeToString(&serialized_proto)); 223 ASSERT_TRUE(proto.SerializeToString(&serialized_proto));
224 // This should fail as the version is older. 224 // This should fail as the version is older.
225 ASSERT_FALSE(directory_service.ParseFromString(serialized_proto)); 225 ASSERT_FALSE(resource_metadata.ParseFromString(serialized_proto));
226 226
227 // Set the current version, and serialize. 227 // Set the current version, and serialize.
228 proto.set_version(kProtoVersion); 228 proto.set_version(kProtoVersion);
229 ASSERT_TRUE(proto.SerializeToString(&serialized_proto)); 229 ASSERT_TRUE(proto.SerializeToString(&serialized_proto));
230 // This should succeed as the version matches the current number. 230 // This should succeed as the version matches the current number.
231 ASSERT_TRUE(directory_service.ParseFromString(serialized_proto)); 231 ASSERT_TRUE(resource_metadata.ParseFromString(serialized_proto));
232 232
233 // Set a newer version, and serialize. 233 // Set a newer version, and serialize.
234 proto.set_version(kProtoVersion + 1); 234 proto.set_version(kProtoVersion + 1);
235 ASSERT_TRUE(proto.SerializeToString(&serialized_proto)); 235 ASSERT_TRUE(proto.SerializeToString(&serialized_proto));
236 // This should fail as the version is newer. 236 // This should fail as the version is newer.
237 ASSERT_FALSE(directory_service.ParseFromString(serialized_proto)); 237 ASSERT_FALSE(resource_metadata.ParseFromString(serialized_proto));
238 } 238 }
239 239
240 TEST(GDataDirectoryServiceTest, RefreshFile) { 240 TEST(DriveResourceMetadataTest, RefreshFile) {
241 MessageLoopForUI message_loop; 241 MessageLoopForUI message_loop;
242 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 242 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
243 &message_loop); 243 &message_loop);
244 244
245 GDataDirectoryService directory_service; 245 DriveResourceMetadata resource_metadata;
246 // Add a directory to the file system. 246 // Add a directory to the file system.
247 DriveDirectory* directory_entry = directory_service.CreateDriveDirectory(); 247 DriveDirectory* directory_entry = resource_metadata.CreateDriveDirectory();
248 directory_entry->set_resource_id("folder:directory_resource_id"); 248 directory_entry->set_resource_id("folder:directory_resource_id");
249 directory_entry->set_title("directory"); 249 directory_entry->set_title("directory");
250 directory_entry->SetBaseNameFromTitle(); 250 directory_entry->SetBaseNameFromTitle();
251 GDataFileError error = GDATA_FILE_ERROR_FAILED; 251 GDataFileError error = GDATA_FILE_ERROR_FAILED;
252 FilePath moved_file_path; 252 FilePath moved_file_path;
253 FilePath root_path(kGDataRootDirectory); 253 FilePath root_path(kDriveRootDirectory);
254 directory_service.MoveEntryToDirectory( 254 resource_metadata.MoveEntryToDirectory(
255 root_path, 255 root_path,
256 directory_entry, 256 directory_entry,
257 base::Bind(&test_util::CopyResultsFromFileMoveCallback, 257 base::Bind(&test_util::CopyResultsFromFileMoveCallback,
258 &error, 258 &error,
259 &moved_file_path)); 259 &moved_file_path));
260 test_util::RunBlockingPoolTask(); 260 test_util::RunBlockingPoolTask();
261 ASSERT_EQ(GDATA_FILE_OK, error); 261 ASSERT_EQ(GDATA_FILE_OK, error);
262 EXPECT_EQ(root_path.AppendASCII(directory_entry->base_name()), 262 EXPECT_EQ(root_path.AppendASCII(directory_entry->base_name()),
263 moved_file_path); 263 moved_file_path);
264 264
265 // Add a new file to the directory. 265 // Add a new file to the directory.
266 DriveFile* initial_file_entry = directory_service.CreateDriveFile(); 266 DriveFile* initial_file_entry = resource_metadata.CreateDriveFile();
267 initial_file_entry->set_resource_id("file:file_resource_id"); 267 initial_file_entry->set_resource_id("file:file_resource_id");
268 initial_file_entry->set_title("file"); 268 initial_file_entry->set_title("file");
269 initial_file_entry->SetBaseNameFromTitle(); 269 initial_file_entry->SetBaseNameFromTitle();
270 error = GDATA_FILE_ERROR_FAILED; 270 error = GDATA_FILE_ERROR_FAILED;
271 moved_file_path.clear(); 271 moved_file_path.clear();
272 directory_service.MoveEntryToDirectory( 272 resource_metadata.MoveEntryToDirectory(
273 directory_entry->GetFilePath(), 273 directory_entry->GetFilePath(),
274 initial_file_entry, 274 initial_file_entry,
275 base::Bind(&test_util::CopyResultsFromFileMoveCallback, 275 base::Bind(&test_util::CopyResultsFromFileMoveCallback,
276 &error, 276 &error,
277 &moved_file_path)); 277 &moved_file_path));
278 test_util::RunBlockingPoolTask(); 278 test_util::RunBlockingPoolTask();
279 ASSERT_EQ(GDATA_FILE_OK, error); 279 ASSERT_EQ(GDATA_FILE_OK, error);
280 EXPECT_EQ(directory_entry->GetFilePath().AppendASCII( 280 EXPECT_EQ(directory_entry->GetFilePath().AppendASCII(
281 initial_file_entry->base_name()), moved_file_path); 281 initial_file_entry->base_name()), moved_file_path);
282 282
283 ASSERT_EQ(directory_entry, initial_file_entry->parent()); 283 ASSERT_EQ(directory_entry, initial_file_entry->parent());
284 284
285 // Initial file system state set, let's try refreshing entries. 285 // Initial file system state set, let's try refreshing entries.
286 286
287 // New value for the entry with resource id "file:file_resource_id". 287 // New value for the entry with resource id "file:file_resource_id".
288 DriveFile* new_file_entry = directory_service.CreateDriveFile(); 288 DriveFile* new_file_entry = resource_metadata.CreateDriveFile();
289 new_file_entry->set_resource_id("file:file_resource_id"); 289 new_file_entry->set_resource_id("file:file_resource_id");
290 directory_service.RefreshFile(scoped_ptr<DriveFile>(new_file_entry).Pass()); 290 resource_metadata.RefreshFile(scoped_ptr<DriveFile>(new_file_entry).Pass());
291 // Root should have |new_file_entry|, not |initial_file_entry|. 291 // Root should have |new_file_entry|, not |initial_file_entry|.
292 // If this is not true, |new_file_entry| has probably been destroyed, hence 292 // If this is not true, |new_file_entry| has probably been destroyed, hence
293 // ASSERT (we're trying to access |new_file_entry| later on). 293 // ASSERT (we're trying to access |new_file_entry| later on).
294 ASSERT_EQ(new_file_entry, 294 ASSERT_EQ(new_file_entry,
295 directory_service.GetEntryByResourceId("file:file_resource_id")); 295 resource_metadata.GetEntryByResourceId("file:file_resource_id"));
296 // We have just verified new_file_entry exists inside root, so accessing 296 // We have just verified new_file_entry exists inside root, so accessing
297 // |new_file_entry->parent()| should be safe. 297 // |new_file_entry->parent()| should be safe.
298 EXPECT_EQ(directory_entry, new_file_entry->parent()); 298 EXPECT_EQ(directory_entry, new_file_entry->parent());
299 299
300 // Let's try refreshing file that didn't prviously exist. 300 // Let's try refreshing file that didn't prviously exist.
301 DriveFile* non_existent_entry = directory_service.CreateDriveFile(); 301 DriveFile* non_existent_entry = resource_metadata.CreateDriveFile();
302 non_existent_entry->set_resource_id("file:does_not_exist"); 302 non_existent_entry->set_resource_id("file:does_not_exist");
303 directory_service.RefreshFile( 303 resource_metadata.RefreshFile(
304 scoped_ptr<DriveFile>(non_existent_entry).Pass()); 304 scoped_ptr<DriveFile>(non_existent_entry).Pass());
305 // File with non existent resource id should not be added. 305 // File with non existent resource id should not be added.
306 EXPECT_FALSE(directory_service.GetEntryByResourceId("file:does_not_exist")); 306 EXPECT_FALSE(resource_metadata.GetEntryByResourceId("file:does_not_exist"));
307 } 307 }
308 308
309 TEST(GDataDirectoryServiceTest, GetEntryByResourceId_RootDirectory) { 309 TEST(DriveResourceMetadataTest, GetEntryByResourceId_RootDirectory) {
310 GDataDirectoryService directory_service; 310 DriveResourceMetadata resource_metadata;
311 // Look up the root directory by its resource ID. 311 // Look up the root directory by its resource ID.
312 DriveEntry* entry = directory_service.GetEntryByResourceId( 312 DriveEntry* entry = resource_metadata.GetEntryByResourceId(
313 kGDataRootDirectoryResourceId); 313 kDriveRootDirectoryResourceId);
314 ASSERT_TRUE(entry); 314 ASSERT_TRUE(entry);
315 EXPECT_EQ(kGDataRootDirectoryResourceId, entry->resource_id()); 315 EXPECT_EQ(kDriveRootDirectoryResourceId, entry->resource_id());
316 } 316 }
317 317
318 TEST(GDataDirectoryServiceTest, GetEntryInfoByResourceId) { 318 TEST(DriveResourceMetadataTest, GetEntryInfoByResourceId) {
319 MessageLoopForUI message_loop; 319 MessageLoopForUI message_loop;
320 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 320 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
321 &message_loop); 321 &message_loop);
322 GDataDirectoryService directory_service; 322 DriveResourceMetadata resource_metadata;
323 InitDirectoryService(&directory_service); 323 InitDirectoryService(&resource_metadata);
324 324
325 // Confirm that an existing file is found. 325 // Confirm that an existing file is found.
326 GDataFileError error = GDATA_FILE_ERROR_FAILED; 326 GDataFileError error = GDATA_FILE_ERROR_FAILED;
327 FilePath drive_file_path; 327 FilePath drive_file_path;
328 scoped_ptr<DriveEntryProto> entry_proto; 328 scoped_ptr<DriveEntryProto> entry_proto;
329 directory_service.GetEntryInfoByResourceId( 329 resource_metadata.GetEntryInfoByResourceId(
330 "file_resource_id:file4", 330 "file_resource_id:file4",
331 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, 331 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback,
332 &error, &drive_file_path, &entry_proto)); 332 &error, &drive_file_path, &entry_proto));
333 test_util::RunBlockingPoolTask(); 333 test_util::RunBlockingPoolTask();
334 EXPECT_EQ(GDATA_FILE_OK, error); 334 EXPECT_EQ(GDATA_FILE_OK, error);
335 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path); 335 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), drive_file_path);
336 ASSERT_TRUE(entry_proto.get()); 336 ASSERT_TRUE(entry_proto.get());
337 EXPECT_EQ("file4", entry_proto->base_name()); 337 EXPECT_EQ("file4", entry_proto->base_name());
338 338
339 // Confirm that a non existing file is not found. 339 // Confirm that a non existing file is not found.
340 error = GDATA_FILE_ERROR_FAILED; 340 error = GDATA_FILE_ERROR_FAILED;
341 entry_proto.reset(); 341 entry_proto.reset();
342 directory_service.GetEntryInfoByResourceId( 342 resource_metadata.GetEntryInfoByResourceId(
343 "file:non_existing", 343 "file:non_existing",
344 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback, 344 base::Bind(&test_util::CopyResultsFromGetEntryInfoWithFilePathCallback,
345 &error, &drive_file_path, &entry_proto)); 345 &error, &drive_file_path, &entry_proto));
346 test_util::RunBlockingPoolTask(); 346 test_util::RunBlockingPoolTask();
347 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); 347 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error);
348 EXPECT_FALSE(entry_proto.get()); 348 EXPECT_FALSE(entry_proto.get());
349 } 349 }
350 350
351 TEST(GDataDirectoryServiceTest, GetEntryInfoByPath) { 351 TEST(DriveResourceMetadataTest, GetEntryInfoByPath) {
352 MessageLoopForUI message_loop; 352 MessageLoopForUI message_loop;
353 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 353 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
354 &message_loop); 354 &message_loop);
355 GDataDirectoryService directory_service; 355 DriveResourceMetadata resource_metadata;
356 InitDirectoryService(&directory_service); 356 InitDirectoryService(&resource_metadata);
357 357
358 // Confirm that an existing file is found. 358 // Confirm that an existing file is found.
359 GDataFileError error = GDATA_FILE_ERROR_FAILED; 359 GDataFileError error = GDATA_FILE_ERROR_FAILED;
360 scoped_ptr<DriveEntryProto> entry_proto; 360 scoped_ptr<DriveEntryProto> entry_proto;
361 directory_service.GetEntryInfoByPath( 361 resource_metadata.GetEntryInfoByPath(
362 FilePath::FromUTF8Unsafe("drive/dir1/file4"), 362 FilePath::FromUTF8Unsafe("drive/dir1/file4"),
363 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, 363 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback,
364 &error, &entry_proto)); 364 &error, &entry_proto));
365 test_util::RunBlockingPoolTask(); 365 test_util::RunBlockingPoolTask();
366 EXPECT_EQ(GDATA_FILE_OK, error); 366 EXPECT_EQ(GDATA_FILE_OK, error);
367 ASSERT_TRUE(entry_proto.get()); 367 ASSERT_TRUE(entry_proto.get());
368 EXPECT_EQ("file4", entry_proto->base_name()); 368 EXPECT_EQ("file4", entry_proto->base_name());
369 369
370 // Confirm that a non existing file is not found. 370 // Confirm that a non existing file is not found.
371 error = GDATA_FILE_ERROR_FAILED; 371 error = GDATA_FILE_ERROR_FAILED;
372 entry_proto.reset(); 372 entry_proto.reset();
373 directory_service.GetEntryInfoByPath( 373 resource_metadata.GetEntryInfoByPath(
374 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"), 374 FilePath::FromUTF8Unsafe("drive/dir1/non_existing"),
375 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback, 375 base::Bind(&test_util::CopyResultsFromGetEntryInfoCallback,
376 &error, &entry_proto)); 376 &error, &entry_proto));
377 test_util::RunBlockingPoolTask(); 377 test_util::RunBlockingPoolTask();
378 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); 378 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error);
379 EXPECT_FALSE(entry_proto.get()); 379 EXPECT_FALSE(entry_proto.get());
380 } 380 }
381 381
382 TEST(GDataDirectoryServiceTest, ReadDirectoryByPath) { 382 TEST(DriveResourceMetadataTest, ReadDirectoryByPath) {
383 MessageLoopForUI message_loop; 383 MessageLoopForUI message_loop;
384 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 384 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
385 &message_loop); 385 &message_loop);
386 GDataDirectoryService directory_service; 386 DriveResourceMetadata resource_metadata;
387 InitDirectoryService(&directory_service); 387 InitDirectoryService(&resource_metadata);
388 388
389 // Confirm that an existing directory is found. 389 // Confirm that an existing directory is found.
390 GDataFileError error = GDATA_FILE_ERROR_FAILED; 390 GDataFileError error = GDATA_FILE_ERROR_FAILED;
391 scoped_ptr<DriveEntryProtoVector> entries; 391 scoped_ptr<DriveEntryProtoVector> entries;
392 directory_service.ReadDirectoryByPath( 392 resource_metadata.ReadDirectoryByPath(
393 FilePath::FromUTF8Unsafe("drive/dir1"), 393 FilePath::FromUTF8Unsafe("drive/dir1"),
394 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, 394 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback,
395 &error, &entries)); 395 &error, &entries));
396 test_util::RunBlockingPoolTask(); 396 test_util::RunBlockingPoolTask();
397 EXPECT_EQ(GDATA_FILE_OK, error); 397 EXPECT_EQ(GDATA_FILE_OK, error);
398 ASSERT_TRUE(entries.get()); 398 ASSERT_TRUE(entries.get());
399 ASSERT_EQ(3U, entries->size()); 399 ASSERT_EQ(3U, entries->size());
400 400
401 // The order is not guaranteed so we should sort the base names. 401 // The order is not guaranteed so we should sort the base names.
402 std::vector<std::string> base_names; 402 std::vector<std::string> base_names;
403 for (size_t i = 0; i < 3; ++i) 403 for (size_t i = 0; i < 3; ++i)
404 base_names.push_back(entries->at(i).base_name()); 404 base_names.push_back(entries->at(i).base_name());
405 std::sort(base_names.begin(), base_names.end()); 405 std::sort(base_names.begin(), base_names.end());
406 406
407 EXPECT_EQ("dir3", base_names[0]); 407 EXPECT_EQ("dir3", base_names[0]);
408 EXPECT_EQ("file4", base_names[1]); 408 EXPECT_EQ("file4", base_names[1]);
409 EXPECT_EQ("file5", base_names[2]); 409 EXPECT_EQ("file5", base_names[2]);
410 410
411 // Confirm that a non existing directory is not found. 411 // Confirm that a non existing directory is not found.
412 error = GDATA_FILE_ERROR_FAILED; 412 error = GDATA_FILE_ERROR_FAILED;
413 entries.reset(); 413 entries.reset();
414 directory_service.ReadDirectoryByPath( 414 resource_metadata.ReadDirectoryByPath(
415 FilePath::FromUTF8Unsafe("drive/non_existing"), 415 FilePath::FromUTF8Unsafe("drive/non_existing"),
416 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, 416 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback,
417 &error, &entries)); 417 &error, &entries));
418 test_util::RunBlockingPoolTask(); 418 test_util::RunBlockingPoolTask();
419 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error); 419 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, error);
420 EXPECT_FALSE(entries.get()); 420 EXPECT_FALSE(entries.get());
421 421
422 // Confirm that reading a file results in GDATA_FILE_ERROR_NOT_A_DIRECTORY. 422 // Confirm that reading a file results in GDATA_FILE_ERROR_NOT_A_DIRECTORY.
423 error = GDATA_FILE_ERROR_FAILED; 423 error = GDATA_FILE_ERROR_FAILED;
424 entries.reset(); 424 entries.reset();
425 directory_service.ReadDirectoryByPath( 425 resource_metadata.ReadDirectoryByPath(
426 FilePath::FromUTF8Unsafe("drive/dir1/file4"), 426 FilePath::FromUTF8Unsafe("drive/dir1/file4"),
427 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback, 427 base::Bind(&test_util::CopyResultsFromReadDirectoryCallback,
428 &error, &entries)); 428 &error, &entries));
429 test_util::RunBlockingPoolTask(); 429 test_util::RunBlockingPoolTask();
430 EXPECT_EQ(GDATA_FILE_ERROR_NOT_A_DIRECTORY, error); 430 EXPECT_EQ(GDATA_FILE_ERROR_NOT_A_DIRECTORY, error);
431 EXPECT_FALSE(entries.get()); 431 EXPECT_FALSE(entries.get());
432 } 432 }
433 433
434 TEST(GDataDirectoryServiceTest, GetEntryInfoPairByPaths) { 434 TEST(DriveResourceMetadataTest, GetEntryInfoPairByPaths) {
435 MessageLoopForUI message_loop; 435 MessageLoopForUI message_loop;
436 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 436 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
437 &message_loop); 437 &message_loop);
438 GDataDirectoryService directory_service; 438 DriveResourceMetadata resource_metadata;
439 InitDirectoryService(&directory_service); 439 InitDirectoryService(&resource_metadata);
440 440
441 // Confirm that existing two files are found. 441 // Confirm that existing two files are found.
442 scoped_ptr<EntryInfoPairResult> pair_result; 442 scoped_ptr<EntryInfoPairResult> pair_result;
443 directory_service.GetEntryInfoPairByPaths( 443 resource_metadata.GetEntryInfoPairByPaths(
444 FilePath::FromUTF8Unsafe("drive/dir1/file4"), 444 FilePath::FromUTF8Unsafe("drive/dir1/file4"),
445 FilePath::FromUTF8Unsafe("drive/dir1/file5"), 445 FilePath::FromUTF8Unsafe("drive/dir1/file5"),
446 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, 446 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback,
447 &pair_result)); 447 &pair_result));
448 test_util::RunBlockingPoolTask(); 448 test_util::RunBlockingPoolTask();
449 // The first entry should be found. 449 // The first entry should be found.
450 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error); 450 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error);
451 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), 451 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"),
452 pair_result->first.path); 452 pair_result->first.path);
453 ASSERT_TRUE(pair_result->first.proto.get()); 453 ASSERT_TRUE(pair_result->first.proto.get());
454 EXPECT_EQ("file4", pair_result->first.proto->base_name()); 454 EXPECT_EQ("file4", pair_result->first.proto->base_name());
455 // The second entry should be found. 455 // The second entry should be found.
456 EXPECT_EQ(GDATA_FILE_OK, pair_result->second.error); 456 EXPECT_EQ(GDATA_FILE_OK, pair_result->second.error);
457 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"), 457 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file5"),
458 pair_result->second.path); 458 pair_result->second.path);
459 ASSERT_TRUE(pair_result->second.proto.get()); 459 ASSERT_TRUE(pair_result->second.proto.get());
460 EXPECT_EQ("file5", pair_result->second.proto->base_name()); 460 EXPECT_EQ("file5", pair_result->second.proto->base_name());
461 461
462 // Confirm that the first non existent file is not found. 462 // Confirm that the first non existent file is not found.
463 pair_result.reset(); 463 pair_result.reset();
464 directory_service.GetEntryInfoPairByPaths( 464 resource_metadata.GetEntryInfoPairByPaths(
465 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), 465 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"),
466 FilePath::FromUTF8Unsafe("drive/dir1/file5"), 466 FilePath::FromUTF8Unsafe("drive/dir1/file5"),
467 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, 467 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback,
468 &pair_result)); 468 &pair_result));
469 test_util::RunBlockingPoolTask(); 469 test_util::RunBlockingPoolTask();
470 // The first entry should not be found. 470 // The first entry should not be found.
471 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->first.error); 471 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->first.error);
472 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), 472 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"),
473 pair_result->first.path); 473 pair_result->first.path);
474 ASSERT_FALSE(pair_result->first.proto.get()); 474 ASSERT_FALSE(pair_result->first.proto.get());
475 // The second entry should not be found, because the first one failed. 475 // The second entry should not be found, because the first one failed.
476 EXPECT_EQ(GDATA_FILE_ERROR_FAILED, pair_result->second.error); 476 EXPECT_EQ(GDATA_FILE_ERROR_FAILED, pair_result->second.error);
477 EXPECT_EQ(FilePath(), pair_result->second.path); 477 EXPECT_EQ(FilePath(), pair_result->second.path);
478 ASSERT_FALSE(pair_result->second.proto.get()); 478 ASSERT_FALSE(pair_result->second.proto.get());
479 479
480 // Confirm that the second non existent file is not found. 480 // Confirm that the second non existent file is not found.
481 pair_result.reset(); 481 pair_result.reset();
482 directory_service.GetEntryInfoPairByPaths( 482 resource_metadata.GetEntryInfoPairByPaths(
483 FilePath::FromUTF8Unsafe("drive/dir1/file4"), 483 FilePath::FromUTF8Unsafe("drive/dir1/file4"),
484 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), 484 FilePath::FromUTF8Unsafe("drive/dir1/non_existent"),
485 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback, 485 base::Bind(&test_util::CopyResultsFromGetEntryInfoPairCallback,
486 &pair_result)); 486 &pair_result));
487 test_util::RunBlockingPoolTask(); 487 test_util::RunBlockingPoolTask();
488 // The first entry should be found. 488 // The first entry should be found.
489 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error); 489 EXPECT_EQ(GDATA_FILE_OK, pair_result->first.error);
490 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"), 490 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/file4"),
491 pair_result->first.path); 491 pair_result->first.path);
492 ASSERT_TRUE(pair_result->first.proto.get()); 492 ASSERT_TRUE(pair_result->first.proto.get());
493 EXPECT_EQ("file4", pair_result->first.proto->base_name()); 493 EXPECT_EQ("file4", pair_result->first.proto->base_name());
494 // The second entry should not be found. 494 // The second entry should not be found.
495 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->second.error); 495 EXPECT_EQ(GDATA_FILE_ERROR_NOT_FOUND, pair_result->second.error);
496 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"), 496 EXPECT_EQ(FilePath::FromUTF8Unsafe("drive/dir1/non_existent"),
497 pair_result->second.path); 497 pair_result->second.path);
498 ASSERT_FALSE(pair_result->second.proto.get()); 498 ASSERT_FALSE(pair_result->second.proto.get());
499 } 499 }
500 500
501 TEST(GDataDirectoryServiceTest, DBTest) { 501 TEST(DriveResourceMetadataTest, DBTest) {
502 MessageLoopForUI message_loop; 502 MessageLoopForUI message_loop;
503 content::TestBrowserThread ui_thread(content::BrowserThread::UI, 503 content::TestBrowserThread ui_thread(content::BrowserThread::UI,
504 &message_loop); 504 &message_loop);
505 505
506 scoped_ptr<TestingProfile> profile(new TestingProfile); 506 scoped_ptr<TestingProfile> profile(new TestingProfile);
507 scoped_refptr<base::SequencedWorkerPool> pool = 507 scoped_refptr<base::SequencedWorkerPool> pool =
508 content::BrowserThread::GetBlockingPool(); 508 content::BrowserThread::GetBlockingPool();
509 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner = 509 scoped_refptr<base::SequencedTaskRunner> blocking_task_runner =
510 pool->GetSequencedTaskRunner(pool->GetSequenceToken()); 510 pool->GetSequencedTaskRunner(pool->GetSequenceToken());
511 511
512 GDataDirectoryService directory_service; 512 DriveResourceMetadata resource_metadata;
513 FilePath db_path(GDataCache::GetCacheRootPath(profile.get()). 513 FilePath db_path(GDataCache::GetCacheRootPath(profile.get()).
514 AppendASCII("meta").AppendASCII("resource_metadata.db")); 514 AppendASCII("meta").AppendASCII("resource_metadata.db"));
515 // InitFromDB should fail with GDATA_FILE_ERROR_NOT_FOUND since the db 515 // InitFromDB should fail with GDATA_FILE_ERROR_NOT_FOUND since the db
516 // doesn't exist. 516 // doesn't exist.
517 directory_service.InitFromDB(db_path, blocking_task_runner, 517 resource_metadata.InitFromDB(db_path, blocking_task_runner,
518 base::Bind(&InitFromDBCallback, GDATA_FILE_ERROR_NOT_FOUND)); 518 base::Bind(&InitFromDBCallback, GDATA_FILE_ERROR_NOT_FOUND));
519 test_util::RunBlockingPoolTask(); 519 test_util::RunBlockingPoolTask();
520 InitDirectoryService(&directory_service); 520 InitDirectoryService(&resource_metadata);
521 521
522 // Write the filesystem to db. 522 // Write the filesystem to db.
523 directory_service.SaveToDB(); 523 resource_metadata.SaveToDB();
524 test_util::RunBlockingPoolTask(); 524 test_util::RunBlockingPoolTask();
525 525
526 GDataDirectoryService directory_service2; 526 DriveResourceMetadata resource_metadata2;
527 // InitFromDB should succeed with GDATA_FILE_OK as the db now exists. 527 // InitFromDB should succeed with GDATA_FILE_OK as the db now exists.
528 directory_service2.InitFromDB(db_path, blocking_task_runner, 528 resource_metadata2.InitFromDB(db_path, blocking_task_runner,
529 base::Bind(&InitFromDBCallback, GDATA_FILE_OK)); 529 base::Bind(&InitFromDBCallback, GDATA_FILE_OK));
530 test_util::RunBlockingPoolTask(); 530 test_util::RunBlockingPoolTask();
531 531
532 VerifyDirectoryService(&directory_service2); 532 VerifyDirectoryService(&resource_metadata2);
533 } 533 }
534 534
535 } // namespace gdata 535 } // namespace gdata
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/gdata/drive_resource_metadata.cc ('k') | chrome/browser/chromeos/gdata/gdata_directory_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698