| 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/chromeos/drive/change_list_processor.h" | 5 #include "chrome/browser/chromeos/drive/change_list_processor.h" |
| 6 | 6 |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/chromeos/drive/drive.pb.h" | 10 #include "chrome/browser/chromeos/drive/drive.pb.h" |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 EXPECT_EQ(kExpected[i].id, entry->resource_id()); | 189 EXPECT_EQ(kExpected[i].id, entry->resource_id()); |
| 190 | 190 |
| 191 ResourceEntry parent_entry; | 191 ResourceEntry parent_entry; |
| 192 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetResourceEntryById( | 192 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetResourceEntryById( |
| 193 entry->parent_local_id(), &parent_entry)); | 193 entry->parent_local_id(), &parent_entry)); |
| 194 EXPECT_EQ(kExpected[i].parent_id, parent_entry.resource_id()); | 194 EXPECT_EQ(kExpected[i].parent_id, parent_entry.resource_id()); |
| 195 EXPECT_EQ(kExpected[i].type, | 195 EXPECT_EQ(kExpected[i].type, |
| 196 entry->file_info().is_directory() ? DIRECTORY : FILE); | 196 entry->file_info().is_directory() ? DIRECTORY : FILE); |
| 197 } | 197 } |
| 198 | 198 |
| 199 EXPECT_EQ(kBaseResourceListChangestamp, metadata_->GetLargestChangestamp()); | 199 int64 changestamp = 0; |
| 200 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 201 EXPECT_EQ(kBaseResourceListChangestamp, changestamp); |
| 200 } | 202 } |
| 201 | 203 |
| 202 TEST_F(ChangeListProcessorTest, DeltaFileAddedInNewDirectory) { | 204 TEST_F(ChangeListProcessorTest, DeltaFileAddedInNewDirectory) { |
| 203 ScopedVector<ChangeList> change_lists; | 205 ScopedVector<ChangeList> change_lists; |
| 204 change_lists.push_back(new ChangeList); | 206 change_lists.push_back(new ChangeList); |
| 205 | 207 |
| 206 ResourceEntry new_folder; | 208 ResourceEntry new_folder; |
| 207 new_folder.set_resource_id("folder:new_folder_resource_id"); | 209 new_folder.set_resource_id("folder:new_folder_resource_id"); |
| 208 new_folder.set_title("New Directory"); | 210 new_folder.set_title("New Directory"); |
| 209 new_folder.mutable_file_info()->set_is_directory(true); | 211 new_folder.mutable_file_info()->set_is_directory(true); |
| 210 change_lists[0]->mutable_entries()->push_back(new_folder); | 212 change_lists[0]->mutable_entries()->push_back(new_folder); |
| 211 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); | 213 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
| 212 | 214 |
| 213 ResourceEntry new_file; | 215 ResourceEntry new_file; |
| 214 new_file.set_resource_id("document:file_added_in_new_dir_id"); | 216 new_file.set_resource_id("document:file_added_in_new_dir_id"); |
| 215 new_file.set_title("File in new dir.txt"); | 217 new_file.set_title("File in new dir.txt"); |
| 216 change_lists[0]->mutable_entries()->push_back(new_file); | 218 change_lists[0]->mutable_entries()->push_back(new_file); |
| 217 change_lists[0]->mutable_parent_resource_ids()->push_back( | 219 change_lists[0]->mutable_parent_resource_ids()->push_back( |
| 218 new_folder.resource_id()); | 220 new_folder.resource_id()); |
| 219 | 221 |
| 220 change_lists[0]->set_largest_changestamp(16730); | 222 change_lists[0]->set_largest_changestamp(16730); |
| 221 | 223 |
| 222 // Apply the changelist and check the effect. | 224 // Apply the changelist and check the effect. |
| 223 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 225 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 224 std::set<base::FilePath> changed_dirs; | 226 std::set<base::FilePath> changed_dirs; |
| 225 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 227 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 226 | 228 |
| 227 EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); | 229 int64 changestamp = 0; |
| 230 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 231 EXPECT_EQ(16730, changestamp); |
| 228 EXPECT_TRUE(GetResourceEntry("drive/root/New Directory")); | 232 EXPECT_TRUE(GetResourceEntry("drive/root/New Directory")); |
| 229 EXPECT_TRUE(GetResourceEntry( | 233 EXPECT_TRUE(GetResourceEntry( |
| 230 "drive/root/New Directory/File in new dir.txt")); | 234 "drive/root/New Directory/File in new dir.txt")); |
| 231 | 235 |
| 232 EXPECT_EQ(2U, changed_dirs.size()); | 236 EXPECT_EQ(2U, changed_dirs.size()); |
| 233 EXPECT_TRUE(changed_dirs.count( | 237 EXPECT_TRUE(changed_dirs.count( |
| 234 base::FilePath::FromUTF8Unsafe("drive/root"))); | 238 base::FilePath::FromUTF8Unsafe("drive/root"))); |
| 235 EXPECT_TRUE(changed_dirs.count( | 239 EXPECT_TRUE(changed_dirs.count( |
| 236 base::FilePath::FromUTF8Unsafe("drive/root/New Directory"))); | 240 base::FilePath::FromUTF8Unsafe("drive/root/New Directory"))); |
| 237 } | 241 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 248 change_lists[0]->mutable_parent_resource_ids()->push_back( | 252 change_lists[0]->mutable_parent_resource_ids()->push_back( |
| 249 "folder:sub_dir_folder_2_self_link"); | 253 "folder:sub_dir_folder_2_self_link"); |
| 250 | 254 |
| 251 change_lists[0]->set_largest_changestamp(16809); | 255 change_lists[0]->set_largest_changestamp(16809); |
| 252 | 256 |
| 253 // Apply the changelist and check the effect. | 257 // Apply the changelist and check the effect. |
| 254 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 258 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 255 std::set<base::FilePath> changed_dirs; | 259 std::set<base::FilePath> changed_dirs; |
| 256 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 260 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 257 | 261 |
| 258 EXPECT_EQ(16809, metadata_->GetLargestChangestamp()); | 262 int64 changestamp = 0; |
| 263 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 264 EXPECT_EQ(16809, changestamp); |
| 259 EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1")); | 265 EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1")); |
| 260 EXPECT_TRUE(GetResourceEntry( | 266 EXPECT_TRUE(GetResourceEntry( |
| 261 "drive/root/Directory 2 excludeDir-test/Directory 1")); | 267 "drive/root/Directory 2 excludeDir-test/Directory 1")); |
| 262 | 268 |
| 263 EXPECT_EQ(4U, changed_dirs.size()); | 269 EXPECT_EQ(4U, changed_dirs.size()); |
| 264 EXPECT_TRUE(changed_dirs.count( | 270 EXPECT_TRUE(changed_dirs.count( |
| 265 base::FilePath::FromUTF8Unsafe("drive/root"))); | 271 base::FilePath::FromUTF8Unsafe("drive/root"))); |
| 266 EXPECT_TRUE(changed_dirs.count( | 272 EXPECT_TRUE(changed_dirs.count( |
| 267 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); | 273 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
| 268 EXPECT_TRUE(changed_dirs.count( | 274 EXPECT_TRUE(changed_dirs.count( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 283 change_lists[0]->mutable_entries()->push_back(entry); | 289 change_lists[0]->mutable_entries()->push_back(entry); |
| 284 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); | 290 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
| 285 | 291 |
| 286 change_lists[0]->set_largest_changestamp(16815); | 292 change_lists[0]->set_largest_changestamp(16815); |
| 287 | 293 |
| 288 // Apply the changelist and check the effect. | 294 // Apply the changelist and check the effect. |
| 289 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 295 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 290 std::set<base::FilePath> changed_dirs; | 296 std::set<base::FilePath> changed_dirs; |
| 291 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 297 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 292 | 298 |
| 293 EXPECT_EQ(16815, metadata_->GetLargestChangestamp()); | 299 int64 changestamp = 0; |
| 300 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 301 EXPECT_EQ(16815, changestamp); |
| 294 EXPECT_FALSE(GetResourceEntry( | 302 EXPECT_FALSE(GetResourceEntry( |
| 295 "drive/root/Directory 1/SubDirectory File 1.txt")); | 303 "drive/root/Directory 1/SubDirectory File 1.txt")); |
| 296 EXPECT_TRUE(GetResourceEntry("drive/root/SubDirectory File 1.txt")); | 304 EXPECT_TRUE(GetResourceEntry("drive/root/SubDirectory File 1.txt")); |
| 297 | 305 |
| 298 EXPECT_EQ(2U, changed_dirs.size()); | 306 EXPECT_EQ(2U, changed_dirs.size()); |
| 299 EXPECT_TRUE(changed_dirs.count( | 307 EXPECT_TRUE(changed_dirs.count( |
| 300 base::FilePath::FromUTF8Unsafe("drive/root"))); | 308 base::FilePath::FromUTF8Unsafe("drive/root"))); |
| 301 EXPECT_TRUE(changed_dirs.count( | 309 EXPECT_TRUE(changed_dirs.count( |
| 302 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); | 310 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
| 303 } | 311 } |
| 304 | 312 |
| 305 TEST_F(ChangeListProcessorTest, DeltaFileRenamedInDirectory) { | 313 TEST_F(ChangeListProcessorTest, DeltaFileRenamedInDirectory) { |
| 306 ScopedVector<ChangeList> change_lists; | 314 ScopedVector<ChangeList> change_lists; |
| 307 change_lists.push_back(new ChangeList); | 315 change_lists.push_back(new ChangeList); |
| 308 | 316 |
| 309 ResourceEntry entry; | 317 ResourceEntry entry; |
| 310 entry.set_resource_id("file:subdirectory_file_1_id"); | 318 entry.set_resource_id("file:subdirectory_file_1_id"); |
| 311 entry.set_title("New SubDirectory File 1.txt"); | 319 entry.set_title("New SubDirectory File 1.txt"); |
| 312 change_lists[0]->mutable_entries()->push_back(entry); | 320 change_lists[0]->mutable_entries()->push_back(entry); |
| 313 change_lists[0]->mutable_parent_resource_ids()->push_back( | 321 change_lists[0]->mutable_parent_resource_ids()->push_back( |
| 314 "folder:1_folder_resource_id"); | 322 "folder:1_folder_resource_id"); |
| 315 | 323 |
| 316 change_lists[0]->set_largest_changestamp(16767); | 324 change_lists[0]->set_largest_changestamp(16767); |
| 317 | 325 |
| 318 // Apply the changelist and check the effect. | 326 // Apply the changelist and check the effect. |
| 319 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 327 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 320 std::set<base::FilePath> changed_dirs; | 328 std::set<base::FilePath> changed_dirs; |
| 321 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 329 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 322 | 330 |
| 323 EXPECT_EQ(16767, metadata_->GetLargestChangestamp()); | 331 int64 changestamp = 0; |
| 332 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 333 EXPECT_EQ(16767, changestamp); |
| 324 EXPECT_FALSE(GetResourceEntry( | 334 EXPECT_FALSE(GetResourceEntry( |
| 325 "drive/root/Directory 1/SubDirectory File 1.txt")); | 335 "drive/root/Directory 1/SubDirectory File 1.txt")); |
| 326 EXPECT_TRUE(GetResourceEntry( | 336 EXPECT_TRUE(GetResourceEntry( |
| 327 "drive/root/Directory 1/New SubDirectory File 1.txt")); | 337 "drive/root/Directory 1/New SubDirectory File 1.txt")); |
| 328 | 338 |
| 329 EXPECT_EQ(1U, changed_dirs.size()); | 339 EXPECT_EQ(1U, changed_dirs.size()); |
| 330 EXPECT_TRUE(changed_dirs.count( | 340 EXPECT_TRUE(changed_dirs.count( |
| 331 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); | 341 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
| 332 } | 342 } |
| 333 | 343 |
| 334 TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileInRoot) { | 344 TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileInRoot) { |
| 335 // Create ChangeList to add a file. | 345 // Create ChangeList to add a file. |
| 336 ScopedVector<ChangeList> change_lists; | 346 ScopedVector<ChangeList> change_lists; |
| 337 change_lists.push_back(new ChangeList); | 347 change_lists.push_back(new ChangeList); |
| 338 | 348 |
| 339 ResourceEntry entry; | 349 ResourceEntry entry; |
| 340 entry.set_resource_id("document:added_in_root_id"); | 350 entry.set_resource_id("document:added_in_root_id"); |
| 341 entry.set_title("Added file.txt"); | 351 entry.set_title("Added file.txt"); |
| 342 change_lists[0]->mutable_entries()->push_back(entry); | 352 change_lists[0]->mutable_entries()->push_back(entry); |
| 343 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); | 353 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
| 344 | 354 |
| 345 change_lists[0]->set_largest_changestamp(16683); | 355 change_lists[0]->set_largest_changestamp(16683); |
| 346 | 356 |
| 347 // Apply. | 357 // Apply. |
| 348 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 358 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 349 std::set<base::FilePath> changed_dirs; | 359 std::set<base::FilePath> changed_dirs; |
| 350 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 360 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 351 EXPECT_EQ(16683, metadata_->GetLargestChangestamp()); | 361 int64 changestamp = 0; |
| 362 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 363 EXPECT_EQ(16683, changestamp); |
| 352 EXPECT_TRUE(GetResourceEntry("drive/root/Added file.txt")); | 364 EXPECT_TRUE(GetResourceEntry("drive/root/Added file.txt")); |
| 353 EXPECT_EQ(1U, changed_dirs.size()); | 365 EXPECT_EQ(1U, changed_dirs.size()); |
| 354 EXPECT_TRUE(changed_dirs.count( | 366 EXPECT_TRUE(changed_dirs.count( |
| 355 base::FilePath::FromUTF8Unsafe("drive/root"))); | 367 base::FilePath::FromUTF8Unsafe("drive/root"))); |
| 356 | 368 |
| 357 // Create ChangeList to delete the file. | 369 // Create ChangeList to delete the file. |
| 358 change_lists.push_back(new ChangeList); | 370 change_lists.push_back(new ChangeList); |
| 359 | 371 |
| 360 entry.set_deleted(true); | 372 entry.set_deleted(true); |
| 361 change_lists[0]->mutable_entries()->push_back(entry); | 373 change_lists[0]->mutable_entries()->push_back(entry); |
| 362 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); | 374 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
| 363 | 375 |
| 364 change_lists[0]->set_largest_changestamp(16687); | 376 change_lists[0]->set_largest_changestamp(16687); |
| 365 | 377 |
| 366 // Apply. | 378 // Apply. |
| 367 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 379 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 368 EXPECT_EQ(16687, metadata_->GetLargestChangestamp()); | 380 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 381 EXPECT_EQ(16687, changestamp); |
| 369 EXPECT_FALSE(GetResourceEntry("drive/root/Added file.txt")); | 382 EXPECT_FALSE(GetResourceEntry("drive/root/Added file.txt")); |
| 370 EXPECT_EQ(1U, changed_dirs.size()); | 383 EXPECT_EQ(1U, changed_dirs.size()); |
| 371 EXPECT_TRUE(changed_dirs.count( | 384 EXPECT_TRUE(changed_dirs.count( |
| 372 base::FilePath::FromUTF8Unsafe("drive/root"))); | 385 base::FilePath::FromUTF8Unsafe("drive/root"))); |
| 373 } | 386 } |
| 374 | 387 |
| 375 | 388 |
| 376 TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileFromExistingDirectory) { | 389 TEST_F(ChangeListProcessorTest, DeltaAddAndDeleteFileFromExistingDirectory) { |
| 377 // Create ChangeList to add a file. | 390 // Create ChangeList to add a file. |
| 378 ScopedVector<ChangeList> change_lists; | 391 ScopedVector<ChangeList> change_lists; |
| 379 change_lists.push_back(new ChangeList); | 392 change_lists.push_back(new ChangeList); |
| 380 | 393 |
| 381 ResourceEntry entry; | 394 ResourceEntry entry; |
| 382 entry.set_resource_id("document:added_in_root_id"); | 395 entry.set_resource_id("document:added_in_root_id"); |
| 383 entry.set_title("Added file.txt"); | 396 entry.set_title("Added file.txt"); |
| 384 change_lists[0]->mutable_entries()->push_back(entry); | 397 change_lists[0]->mutable_entries()->push_back(entry); |
| 385 change_lists[0]->mutable_parent_resource_ids()->push_back( | 398 change_lists[0]->mutable_parent_resource_ids()->push_back( |
| 386 "folder:1_folder_resource_id"); | 399 "folder:1_folder_resource_id"); |
| 387 | 400 |
| 388 change_lists[0]->set_largest_changestamp(16730); | 401 change_lists[0]->set_largest_changestamp(16730); |
| 389 | 402 |
| 390 // Apply. | 403 // Apply. |
| 391 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 404 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 392 std::set<base::FilePath> changed_dirs; | 405 std::set<base::FilePath> changed_dirs; |
| 393 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 406 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 394 EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); | 407 int64 changestamp = 0; |
| 408 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 409 EXPECT_EQ(16730, changestamp); |
| 395 EXPECT_TRUE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); | 410 EXPECT_TRUE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); |
| 396 | 411 |
| 397 EXPECT_EQ(1U, changed_dirs.size()); | 412 EXPECT_EQ(1U, changed_dirs.size()); |
| 398 EXPECT_TRUE(changed_dirs.count( | 413 EXPECT_TRUE(changed_dirs.count( |
| 399 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); | 414 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
| 400 | 415 |
| 401 // Create ChangeList to delete the file. | 416 // Create ChangeList to delete the file. |
| 402 change_lists.push_back(new ChangeList); | 417 change_lists.push_back(new ChangeList); |
| 403 | 418 |
| 404 entry.set_deleted(true); | 419 entry.set_deleted(true); |
| 405 change_lists[0]->mutable_entries()->push_back(entry); | 420 change_lists[0]->mutable_entries()->push_back(entry); |
| 406 change_lists[0]->mutable_parent_resource_ids()->push_back( | 421 change_lists[0]->mutable_parent_resource_ids()->push_back( |
| 407 "folder:1_folder_resource_id"); | 422 "folder:1_folder_resource_id"); |
| 408 | 423 |
| 409 change_lists[0]->set_largest_changestamp(16770); | 424 change_lists[0]->set_largest_changestamp(16770); |
| 410 | 425 |
| 411 // Apply. | 426 // Apply. |
| 412 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 427 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 413 EXPECT_EQ(16770, metadata_->GetLargestChangestamp()); | 428 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 429 EXPECT_EQ(16770, changestamp); |
| 414 EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); | 430 EXPECT_FALSE(GetResourceEntry("drive/root/Directory 1/Added file.txt")); |
| 415 | 431 |
| 416 EXPECT_EQ(1U, changed_dirs.size()); | 432 EXPECT_EQ(1U, changed_dirs.size()); |
| 417 EXPECT_TRUE(changed_dirs.count( | 433 EXPECT_TRUE(changed_dirs.count( |
| 418 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); | 434 base::FilePath::FromUTF8Unsafe("drive/root/Directory 1"))); |
| 419 } | 435 } |
| 420 | 436 |
| 421 TEST_F(ChangeListProcessorTest, DeltaAddFileToNewButDeletedDirectory) { | 437 TEST_F(ChangeListProcessorTest, DeltaAddFileToNewButDeletedDirectory) { |
| 422 // Create a change which contains the following updates: | 438 // Create a change which contains the following updates: |
| 423 // 1) A new PDF file is added to a new directory | 439 // 1) A new PDF file is added to a new directory |
| (...skipping 18 matching lines...) Expand all Loading... |
| 442 change_lists[0]->mutable_entries()->push_back(directory); | 458 change_lists[0]->mutable_entries()->push_back(directory); |
| 443 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); | 459 change_lists[0]->mutable_parent_resource_ids()->push_back(kRootId); |
| 444 | 460 |
| 445 change_lists[0]->set_largest_changestamp(16730); | 461 change_lists[0]->set_largest_changestamp(16730); |
| 446 | 462 |
| 447 // Apply the changelist and check the effect. | 463 // Apply the changelist and check the effect. |
| 448 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 464 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 449 std::set<base::FilePath> changed_dirs; | 465 std::set<base::FilePath> changed_dirs; |
| 450 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 466 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 451 | 467 |
| 452 EXPECT_EQ(16730, metadata_->GetLargestChangestamp()); | 468 int64 changestamp = 0; |
| 469 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetLargestChangestamp(&changestamp)); |
| 470 EXPECT_EQ(16730, changestamp); |
| 453 EXPECT_FALSE(GetResourceEntry("drive/root/New Directory/new_pdf_file.pdf")); | 471 EXPECT_FALSE(GetResourceEntry("drive/root/New Directory/new_pdf_file.pdf")); |
| 454 | 472 |
| 455 EXPECT_TRUE(changed_dirs.empty()); | 473 EXPECT_TRUE(changed_dirs.empty()); |
| 456 } | 474 } |
| 457 | 475 |
| 458 TEST_F(ChangeListProcessorTest, RefreshDirectory) { | 476 TEST_F(ChangeListProcessorTest, RefreshDirectory) { |
| 459 // Prepare metadata. | 477 // Prepare metadata. |
| 460 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); | 478 EXPECT_EQ(FILE_ERROR_OK, ApplyFullResourceList(CreateBaseChangeList())); |
| 461 | 479 |
| 462 // Create change list. | 480 // Create change list. |
| (...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 596 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); | 614 EXPECT_EQ(FILE_ERROR_OK, ApplyChangeList(change_lists.Pass(), &changed_dirs)); |
| 597 | 615 |
| 598 // The change is rejected due to the old modification date. | 616 // The change is rejected due to the old modification date. |
| 599 ResourceEntry entry; | 617 ResourceEntry entry; |
| 600 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetResourceEntryById(local_id, &entry)); | 618 EXPECT_EQ(FILE_ERROR_OK, metadata_->GetResourceEntryById(local_id, &entry)); |
| 601 EXPECT_EQ(new_file_local.title(), entry.title()); | 619 EXPECT_EQ(new_file_local.title(), entry.title()); |
| 602 } | 620 } |
| 603 | 621 |
| 604 } // namespace internal | 622 } // namespace internal |
| 605 } // namespace drive | 623 } // namespace drive |
| OLD | NEW |