| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/search_metadata.h" | 5 #include "chrome/browser/chromeos/drive/search_metadata.h" |
| 6 | 6 |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/i18n/string_search.h" | 8 #include "base/i18n/string_search.h" |
| 9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 resource_metadata_; | 211 resource_metadata_; |
| 212 scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_; | 212 scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_; |
| 213 }; | 213 }; |
| 214 | 214 |
| 215 TEST_F(SearchMetadataTest, SearchMetadata_ZeroMatches) { | 215 TEST_F(SearchMetadataTest, SearchMetadata_ZeroMatches) { |
| 216 FileError error = FILE_ERROR_FAILED; | 216 FileError error = FILE_ERROR_FAILED; |
| 217 scoped_ptr<MetadataSearchResultVector> result; | 217 scoped_ptr<MetadataSearchResultVector> result; |
| 218 | 218 |
| 219 SearchMetadata(base::MessageLoopProxy::current(), | 219 SearchMetadata(base::MessageLoopProxy::current(), |
| 220 resource_metadata_.get(), | 220 resource_metadata_.get(), |
| 221 cache_.get(), | |
| 222 "NonExistent", | 221 "NonExistent", |
| 223 SEARCH_METADATA_ALL, | 222 SEARCH_METADATA_ALL, |
| 224 kDefaultAtMostNumMatches, | 223 kDefaultAtMostNumMatches, |
| 225 google_apis::test_util::CreateCopyResultCallback( | 224 google_apis::test_util::CreateCopyResultCallback( |
| 226 &error, &result)); | 225 &error, &result)); |
| 227 base::RunLoop().RunUntilIdle(); | 226 base::RunLoop().RunUntilIdle(); |
| 228 EXPECT_EQ(FILE_ERROR_OK, error); | 227 EXPECT_EQ(FILE_ERROR_OK, error); |
| 229 ASSERT_TRUE(result); | 228 ASSERT_TRUE(result); |
| 230 ASSERT_EQ(0U, result->size()); | 229 ASSERT_EQ(0U, result->size()); |
| 231 } | 230 } |
| 232 | 231 |
| 233 TEST_F(SearchMetadataTest, SearchMetadata_RegularFile) { | 232 TEST_F(SearchMetadataTest, SearchMetadata_RegularFile) { |
| 234 FileError error = FILE_ERROR_FAILED; | 233 FileError error = FILE_ERROR_FAILED; |
| 235 scoped_ptr<MetadataSearchResultVector> result; | 234 scoped_ptr<MetadataSearchResultVector> result; |
| 236 | 235 |
| 237 SearchMetadata(base::MessageLoopProxy::current(), | 236 SearchMetadata(base::MessageLoopProxy::current(), |
| 238 resource_metadata_.get(), | 237 resource_metadata_.get(), |
| 239 cache_.get(), | |
| 240 "SubDirectory File 1.txt", | 238 "SubDirectory File 1.txt", |
| 241 SEARCH_METADATA_ALL, | 239 SEARCH_METADATA_ALL, |
| 242 kDefaultAtMostNumMatches, | 240 kDefaultAtMostNumMatches, |
| 243 google_apis::test_util::CreateCopyResultCallback( | 241 google_apis::test_util::CreateCopyResultCallback( |
| 244 &error, &result)); | 242 &error, &result)); |
| 245 base::RunLoop().RunUntilIdle(); | 243 base::RunLoop().RunUntilIdle(); |
| 246 EXPECT_EQ(FILE_ERROR_OK, error); | 244 EXPECT_EQ(FILE_ERROR_OK, error); |
| 247 ASSERT_TRUE(result); | 245 ASSERT_TRUE(result); |
| 248 ASSERT_EQ(1U, result->size()); | 246 ASSERT_EQ(1U, result->size()); |
| 249 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", | 247 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", |
| 250 result->at(0).path.AsUTF8Unsafe()); | 248 result->at(0).path.AsUTF8Unsafe()); |
| 251 } | 249 } |
| 252 | 250 |
| 253 // This test checks if |FindAndHighlightWrapper| does case-insensitive search. | 251 // This test checks if |FindAndHighlightWrapper| does case-insensitive search. |
| 254 // Tricker test cases for |FindAndHighlightWrapper| can be found below. | 252 // Tricker test cases for |FindAndHighlightWrapper| can be found below. |
| 255 TEST_F(SearchMetadataTest, SearchMetadata_CaseInsensitiveSearch) { | 253 TEST_F(SearchMetadataTest, SearchMetadata_CaseInsensitiveSearch) { |
| 256 FileError error = FILE_ERROR_FAILED; | 254 FileError error = FILE_ERROR_FAILED; |
| 257 scoped_ptr<MetadataSearchResultVector> result; | 255 scoped_ptr<MetadataSearchResultVector> result; |
| 258 | 256 |
| 259 // The query is all in lower case. | 257 // The query is all in lower case. |
| 260 SearchMetadata(base::MessageLoopProxy::current(), | 258 SearchMetadata(base::MessageLoopProxy::current(), |
| 261 resource_metadata_.get(), | 259 resource_metadata_.get(), |
| 262 cache_.get(), | |
| 263 "subdirectory file 1.txt", | 260 "subdirectory file 1.txt", |
| 264 SEARCH_METADATA_ALL, | 261 SEARCH_METADATA_ALL, |
| 265 kDefaultAtMostNumMatches, | 262 kDefaultAtMostNumMatches, |
| 266 google_apis::test_util::CreateCopyResultCallback( | 263 google_apis::test_util::CreateCopyResultCallback( |
| 267 &error, &result)); | 264 &error, &result)); |
| 268 base::RunLoop().RunUntilIdle(); | 265 base::RunLoop().RunUntilIdle(); |
| 269 EXPECT_EQ(FILE_ERROR_OK, error); | 266 EXPECT_EQ(FILE_ERROR_OK, error); |
| 270 ASSERT_TRUE(result); | 267 ASSERT_TRUE(result); |
| 271 ASSERT_EQ(1U, result->size()); | 268 ASSERT_EQ(1U, result->size()); |
| 272 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", | 269 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", |
| 273 result->at(0).path.AsUTF8Unsafe()); | 270 result->at(0).path.AsUTF8Unsafe()); |
| 274 } | 271 } |
| 275 | 272 |
| 276 TEST_F(SearchMetadataTest, SearchMetadata_RegularFiles) { | 273 TEST_F(SearchMetadataTest, SearchMetadata_RegularFiles) { |
| 277 FileError error = FILE_ERROR_FAILED; | 274 FileError error = FILE_ERROR_FAILED; |
| 278 scoped_ptr<MetadataSearchResultVector> result; | 275 scoped_ptr<MetadataSearchResultVector> result; |
| 279 | 276 |
| 280 SearchMetadata(base::MessageLoopProxy::current(), | 277 SearchMetadata(base::MessageLoopProxy::current(), |
| 281 resource_metadata_.get(), | 278 resource_metadata_.get(), |
| 282 cache_.get(), | |
| 283 "SubDir", | 279 "SubDir", |
| 284 SEARCH_METADATA_ALL, | 280 SEARCH_METADATA_ALL, |
| 285 kDefaultAtMostNumMatches, | 281 kDefaultAtMostNumMatches, |
| 286 google_apis::test_util::CreateCopyResultCallback( | 282 google_apis::test_util::CreateCopyResultCallback( |
| 287 &error, &result)); | 283 &error, &result)); |
| 288 base::RunLoop().RunUntilIdle(); | 284 base::RunLoop().RunUntilIdle(); |
| 289 EXPECT_EQ(FILE_ERROR_OK, error); | 285 EXPECT_EQ(FILE_ERROR_OK, error); |
| 290 ASSERT_TRUE(result); | 286 ASSERT_TRUE(result); |
| 291 ASSERT_EQ(2U, result->size()); | 287 ASSERT_EQ(2U, result->size()); |
| 292 | 288 |
| 293 // The results should be sorted by the last accessed time in descending order. | 289 // The results should be sorted by the last accessed time in descending order. |
| 294 EXPECT_EQ(6, result->at(0).entry.file_info().last_accessed()); | 290 EXPECT_EQ(6, result->at(0).entry.file_info().last_accessed()); |
| 295 EXPECT_EQ(2, result->at(1).entry.file_info().last_accessed()); | 291 EXPECT_EQ(2, result->at(1).entry.file_info().last_accessed()); |
| 296 | 292 |
| 297 // All base names should contain "File". | 293 // All base names should contain "File". |
| 298 EXPECT_EQ("drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt", | 294 EXPECT_EQ("drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt", |
| 299 result->at(0).path.AsUTF8Unsafe()); | 295 result->at(0).path.AsUTF8Unsafe()); |
| 300 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", | 296 EXPECT_EQ("drive/root/Directory 1/SubDirectory File 1.txt", |
| 301 result->at(1).path.AsUTF8Unsafe()); | 297 result->at(1).path.AsUTF8Unsafe()); |
| 302 } | 298 } |
| 303 | 299 |
| 304 TEST_F(SearchMetadataTest, SearchMetadata_AtMostOneFile) { | 300 TEST_F(SearchMetadataTest, SearchMetadata_AtMostOneFile) { |
| 305 FileError error = FILE_ERROR_FAILED; | 301 FileError error = FILE_ERROR_FAILED; |
| 306 scoped_ptr<MetadataSearchResultVector> result; | 302 scoped_ptr<MetadataSearchResultVector> result; |
| 307 | 303 |
| 308 // There are two files matching "SubDir" but only one file should be | 304 // There are two files matching "SubDir" but only one file should be |
| 309 // returned. | 305 // returned. |
| 310 SearchMetadata(base::MessageLoopProxy::current(), | 306 SearchMetadata(base::MessageLoopProxy::current(), |
| 311 resource_metadata_.get(), | 307 resource_metadata_.get(), |
| 312 cache_.get(), | |
| 313 "SubDir", | 308 "SubDir", |
| 314 SEARCH_METADATA_ALL, | 309 SEARCH_METADATA_ALL, |
| 315 1, // at_most_num_matches | 310 1, // at_most_num_matches |
| 316 google_apis::test_util::CreateCopyResultCallback( | 311 google_apis::test_util::CreateCopyResultCallback( |
| 317 &error, &result)); | 312 &error, &result)); |
| 318 base::RunLoop().RunUntilIdle(); | 313 base::RunLoop().RunUntilIdle(); |
| 319 EXPECT_EQ(FILE_ERROR_OK, error); | 314 EXPECT_EQ(FILE_ERROR_OK, error); |
| 320 ASSERT_TRUE(result); | 315 ASSERT_TRUE(result); |
| 321 ASSERT_EQ(1U, result->size()); | 316 ASSERT_EQ(1U, result->size()); |
| 322 EXPECT_EQ("drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt", | 317 EXPECT_EQ("drive/root/Slash \xE2\x88\x95 in directory/Slash SubDir File.txt", |
| 323 result->at(0).path.AsUTF8Unsafe()); | 318 result->at(0).path.AsUTF8Unsafe()); |
| 324 } | 319 } |
| 325 | 320 |
| 326 TEST_F(SearchMetadataTest, SearchMetadata_Directory) { | 321 TEST_F(SearchMetadataTest, SearchMetadata_Directory) { |
| 327 FileError error = FILE_ERROR_FAILED; | 322 FileError error = FILE_ERROR_FAILED; |
| 328 scoped_ptr<MetadataSearchResultVector> result; | 323 scoped_ptr<MetadataSearchResultVector> result; |
| 329 | 324 |
| 330 SearchMetadata(base::MessageLoopProxy::current(), | 325 SearchMetadata(base::MessageLoopProxy::current(), |
| 331 resource_metadata_.get(), | 326 resource_metadata_.get(), |
| 332 cache_.get(), | |
| 333 "Directory 1", | 327 "Directory 1", |
| 334 SEARCH_METADATA_ALL, | 328 SEARCH_METADATA_ALL, |
| 335 kDefaultAtMostNumMatches, | 329 kDefaultAtMostNumMatches, |
| 336 google_apis::test_util::CreateCopyResultCallback( | 330 google_apis::test_util::CreateCopyResultCallback( |
| 337 &error, &result)); | 331 &error, &result)); |
| 338 base::RunLoop().RunUntilIdle(); | 332 base::RunLoop().RunUntilIdle(); |
| 339 EXPECT_EQ(FILE_ERROR_OK, error); | 333 EXPECT_EQ(FILE_ERROR_OK, error); |
| 340 ASSERT_TRUE(result); | 334 ASSERT_TRUE(result); |
| 341 ASSERT_EQ(1U, result->size()); | 335 ASSERT_EQ(1U, result->size()); |
| 342 EXPECT_EQ("drive/root/Directory 1", result->at(0).path.AsUTF8Unsafe()); | 336 EXPECT_EQ("drive/root/Directory 1", result->at(0).path.AsUTF8Unsafe()); |
| 343 } | 337 } |
| 344 | 338 |
| 345 TEST_F(SearchMetadataTest, SearchMetadata_HostedDocument) { | 339 TEST_F(SearchMetadataTest, SearchMetadata_HostedDocument) { |
| 346 FileError error = FILE_ERROR_FAILED; | 340 FileError error = FILE_ERROR_FAILED; |
| 347 scoped_ptr<MetadataSearchResultVector> result; | 341 scoped_ptr<MetadataSearchResultVector> result; |
| 348 | 342 |
| 349 SearchMetadata(base::MessageLoopProxy::current(), | 343 SearchMetadata(base::MessageLoopProxy::current(), |
| 350 resource_metadata_.get(), | 344 resource_metadata_.get(), |
| 351 cache_.get(), | |
| 352 "Document", | 345 "Document", |
| 353 SEARCH_METADATA_ALL, | 346 SEARCH_METADATA_ALL, |
| 354 kDefaultAtMostNumMatches, | 347 kDefaultAtMostNumMatches, |
| 355 google_apis::test_util::CreateCopyResultCallback( | 348 google_apis::test_util::CreateCopyResultCallback( |
| 356 &error, &result)); | 349 &error, &result)); |
| 357 base::RunLoop().RunUntilIdle(); | 350 base::RunLoop().RunUntilIdle(); |
| 358 EXPECT_EQ(FILE_ERROR_OK, error); | 351 EXPECT_EQ(FILE_ERROR_OK, error); |
| 359 ASSERT_TRUE(result); | 352 ASSERT_TRUE(result); |
| 360 ASSERT_EQ(1U, result->size()); | 353 ASSERT_EQ(1U, result->size()); |
| 361 | 354 |
| 362 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", | 355 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", |
| 363 result->at(0).path.AsUTF8Unsafe()); | 356 result->at(0).path.AsUTF8Unsafe()); |
| 364 } | 357 } |
| 365 | 358 |
| 366 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeHostedDocument) { | 359 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeHostedDocument) { |
| 367 FileError error = FILE_ERROR_FAILED; | 360 FileError error = FILE_ERROR_FAILED; |
| 368 scoped_ptr<MetadataSearchResultVector> result; | 361 scoped_ptr<MetadataSearchResultVector> result; |
| 369 | 362 |
| 370 SearchMetadata(base::MessageLoopProxy::current(), | 363 SearchMetadata(base::MessageLoopProxy::current(), |
| 371 resource_metadata_.get(), | 364 resource_metadata_.get(), |
| 372 cache_.get(), | |
| 373 "Document", | 365 "Document", |
| 374 SEARCH_METADATA_EXCLUDE_HOSTED_DOCUMENTS, | 366 SEARCH_METADATA_EXCLUDE_HOSTED_DOCUMENTS, |
| 375 kDefaultAtMostNumMatches, | 367 kDefaultAtMostNumMatches, |
| 376 google_apis::test_util::CreateCopyResultCallback( | 368 google_apis::test_util::CreateCopyResultCallback( |
| 377 &error, &result)); | 369 &error, &result)); |
| 378 base::RunLoop().RunUntilIdle(); | 370 base::RunLoop().RunUntilIdle(); |
| 379 EXPECT_EQ(FILE_ERROR_OK, error); | 371 EXPECT_EQ(FILE_ERROR_OK, error); |
| 380 ASSERT_TRUE(result); | 372 ASSERT_TRUE(result); |
| 381 ASSERT_EQ(0U, result->size()); | 373 ASSERT_EQ(0U, result->size()); |
| 382 } | 374 } |
| 383 | 375 |
| 384 TEST_F(SearchMetadataTest, SearchMetadata_SharedWithMe) { | 376 TEST_F(SearchMetadataTest, SearchMetadata_SharedWithMe) { |
| 385 FileError error = FILE_ERROR_FAILED; | 377 FileError error = FILE_ERROR_FAILED; |
| 386 scoped_ptr<MetadataSearchResultVector> result; | 378 scoped_ptr<MetadataSearchResultVector> result; |
| 387 | 379 |
| 388 SearchMetadata(base::MessageLoopProxy::current(), | 380 SearchMetadata(base::MessageLoopProxy::current(), |
| 389 resource_metadata_.get(), | 381 resource_metadata_.get(), |
| 390 cache_.get(), | |
| 391 "", | 382 "", |
| 392 SEARCH_METADATA_SHARED_WITH_ME, | 383 SEARCH_METADATA_SHARED_WITH_ME, |
| 393 kDefaultAtMostNumMatches, | 384 kDefaultAtMostNumMatches, |
| 394 google_apis::test_util::CreateCopyResultCallback( | 385 google_apis::test_util::CreateCopyResultCallback( |
| 395 &error, &result)); | 386 &error, &result)); |
| 396 base::RunLoop().RunUntilIdle(); | 387 base::RunLoop().RunUntilIdle(); |
| 397 EXPECT_EQ(FILE_ERROR_OK, error); | 388 EXPECT_EQ(FILE_ERROR_OK, error); |
| 398 ASSERT_TRUE(result); | 389 ASSERT_TRUE(result); |
| 399 ASSERT_EQ(1U, result->size()); | 390 ASSERT_EQ(1U, result->size()); |
| 400 EXPECT_EQ("drive/root/Directory 1/Shared To The Account Owner.txt", | 391 EXPECT_EQ("drive/root/Directory 1/Shared To The Account Owner.txt", |
| 401 result->at(0).path.AsUTF8Unsafe()); | 392 result->at(0).path.AsUTF8Unsafe()); |
| 402 } | 393 } |
| 403 | 394 |
| 404 TEST_F(SearchMetadataTest, SearchMetadata_FileAndDirectory) { | 395 TEST_F(SearchMetadataTest, SearchMetadata_FileAndDirectory) { |
| 405 FileError error = FILE_ERROR_FAILED; | 396 FileError error = FILE_ERROR_FAILED; |
| 406 scoped_ptr<MetadataSearchResultVector> result; | 397 scoped_ptr<MetadataSearchResultVector> result; |
| 407 | 398 |
| 408 SearchMetadata(base::MessageLoopProxy::current(), | 399 SearchMetadata(base::MessageLoopProxy::current(), |
| 409 resource_metadata_.get(), | 400 resource_metadata_.get(), |
| 410 cache_.get(), | |
| 411 "excludeDir-test", | 401 "excludeDir-test", |
| 412 SEARCH_METADATA_ALL, | 402 SEARCH_METADATA_ALL, |
| 413 kDefaultAtMostNumMatches, | 403 kDefaultAtMostNumMatches, |
| 414 google_apis::test_util::CreateCopyResultCallback( | 404 google_apis::test_util::CreateCopyResultCallback( |
| 415 &error, &result)); | 405 &error, &result)); |
| 416 | 406 |
| 417 base::RunLoop().RunUntilIdle(); | 407 base::RunLoop().RunUntilIdle(); |
| 418 EXPECT_EQ(FILE_ERROR_OK, error); | 408 EXPECT_EQ(FILE_ERROR_OK, error); |
| 419 ASSERT_TRUE(result); | 409 ASSERT_TRUE(result); |
| 420 ASSERT_EQ(2U, result->size()); | 410 ASSERT_EQ(2U, result->size()); |
| 421 | 411 |
| 422 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", | 412 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", |
| 423 result->at(0).path.AsUTF8Unsafe()); | 413 result->at(0).path.AsUTF8Unsafe()); |
| 424 EXPECT_EQ("drive/root/Directory 2 excludeDir-test", | 414 EXPECT_EQ("drive/root/Directory 2 excludeDir-test", |
| 425 result->at(1).path.AsUTF8Unsafe()); | 415 result->at(1).path.AsUTF8Unsafe()); |
| 426 } | 416 } |
| 427 | 417 |
| 428 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeDirectory) { | 418 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeDirectory) { |
| 429 FileError error = FILE_ERROR_FAILED; | 419 FileError error = FILE_ERROR_FAILED; |
| 430 scoped_ptr<MetadataSearchResultVector> result; | 420 scoped_ptr<MetadataSearchResultVector> result; |
| 431 | 421 |
| 432 SearchMetadata(base::MessageLoopProxy::current(), | 422 SearchMetadata(base::MessageLoopProxy::current(), |
| 433 resource_metadata_.get(), | 423 resource_metadata_.get(), |
| 434 cache_.get(), | |
| 435 "excludeDir-test", | 424 "excludeDir-test", |
| 436 SEARCH_METADATA_EXCLUDE_DIRECTORIES, | 425 SEARCH_METADATA_EXCLUDE_DIRECTORIES, |
| 437 kDefaultAtMostNumMatches, | 426 kDefaultAtMostNumMatches, |
| 438 google_apis::test_util::CreateCopyResultCallback( | 427 google_apis::test_util::CreateCopyResultCallback( |
| 439 &error, &result)); | 428 &error, &result)); |
| 440 | 429 |
| 441 base::RunLoop().RunUntilIdle(); | 430 base::RunLoop().RunUntilIdle(); |
| 442 EXPECT_EQ(FILE_ERROR_OK, error); | 431 EXPECT_EQ(FILE_ERROR_OK, error); |
| 443 ASSERT_TRUE(result); | 432 ASSERT_TRUE(result); |
| 444 ASSERT_EQ(1U, result->size()); | 433 ASSERT_EQ(1U, result->size()); |
| 445 | 434 |
| 446 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", | 435 EXPECT_EQ("drive/root/Document 1 excludeDir-test.gdoc", |
| 447 result->at(0).path.AsUTF8Unsafe()); | 436 result->at(0).path.AsUTF8Unsafe()); |
| 448 } | 437 } |
| 449 | 438 |
| 450 // "drive", "drive/root", "drive/other" should be excluded. | 439 // "drive", "drive/root", "drive/other" should be excluded. |
| 451 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeSpecialDirectories) { | 440 TEST_F(SearchMetadataTest, SearchMetadata_ExcludeSpecialDirectories) { |
| 452 const char* kQueries[] = { "drive", "root", "other" }; | 441 const char* kQueries[] = { "drive", "root", "other" }; |
| 453 for (size_t i = 0; i < arraysize(kQueries); ++i) { | 442 for (size_t i = 0; i < arraysize(kQueries); ++i) { |
| 454 FileError error = FILE_ERROR_FAILED; | 443 FileError error = FILE_ERROR_FAILED; |
| 455 scoped_ptr<MetadataSearchResultVector> result; | 444 scoped_ptr<MetadataSearchResultVector> result; |
| 456 | 445 |
| 457 const std::string query = kQueries[i]; | 446 const std::string query = kQueries[i]; |
| 458 SearchMetadata(base::MessageLoopProxy::current(), | 447 SearchMetadata(base::MessageLoopProxy::current(), |
| 459 resource_metadata_.get(), | 448 resource_metadata_.get(), |
| 460 cache_.get(), | |
| 461 query, | 449 query, |
| 462 SEARCH_METADATA_ALL, | 450 SEARCH_METADATA_ALL, |
| 463 kDefaultAtMostNumMatches, | 451 kDefaultAtMostNumMatches, |
| 464 google_apis::test_util::CreateCopyResultCallback( | 452 google_apis::test_util::CreateCopyResultCallback( |
| 465 &error, &result)); | 453 &error, &result)); |
| 466 | 454 |
| 467 base::RunLoop().RunUntilIdle(); | 455 base::RunLoop().RunUntilIdle(); |
| 468 EXPECT_EQ(FILE_ERROR_OK, error); | 456 EXPECT_EQ(FILE_ERROR_OK, error); |
| 469 ASSERT_TRUE(result); | 457 ASSERT_TRUE(result); |
| 470 ASSERT_TRUE(result->empty()) << ": " << query << " should not match"; | 458 ASSERT_TRUE(result->empty()) << ": " << query << " should not match"; |
| 471 } | 459 } |
| 472 } | 460 } |
| 473 | 461 |
| 474 TEST_F(SearchMetadataTest, SearchMetadata_Offline) { | 462 TEST_F(SearchMetadataTest, SearchMetadata_Offline) { |
| 475 const std::vector<test_util::TestCacheResource> cache_resources = | 463 const std::vector<test_util::TestCacheResource> cache_resources = |
| 476 test_util::GetDefaultTestCacheResources(); | 464 test_util::GetDefaultTestCacheResources(); |
| 477 ASSERT_TRUE(test_util::PrepareTestCacheResources(cache_.get(), | 465 ASSERT_TRUE(test_util::PrepareTestCacheResources(cache_.get(), |
| 478 cache_resources)); | 466 cache_resources)); |
| 479 { | 467 { |
| 480 MetadataInfoGenerator generator("cache", kCacheEntriesLastAccessedTimeBase); | 468 MetadataInfoGenerator generator("cache", kCacheEntriesLastAccessedTimeBase); |
| 481 AddEntriesToMetadataFromCache(cache_resources, &generator); | 469 AddEntriesToMetadataFromCache(cache_resources, &generator); |
| 482 } | 470 } |
| 483 FileError error = FILE_ERROR_FAILED; | 471 FileError error = FILE_ERROR_FAILED; |
| 484 scoped_ptr<MetadataSearchResultVector> result; | 472 scoped_ptr<MetadataSearchResultVector> result; |
| 485 | 473 |
| 486 SearchMetadata(base::MessageLoopProxy::current(), | 474 SearchMetadata(base::MessageLoopProxy::current(), |
| 487 resource_metadata_.get(), | 475 resource_metadata_.get(), |
| 488 cache_.get(), | |
| 489 "", | 476 "", |
| 490 SEARCH_METADATA_OFFLINE, | 477 SEARCH_METADATA_OFFLINE, |
| 491 kDefaultAtMostNumMatches, | 478 kDefaultAtMostNumMatches, |
| 492 google_apis::test_util::CreateCopyResultCallback( | 479 google_apis::test_util::CreateCopyResultCallback( |
| 493 &error, &result)); | 480 &error, &result)); |
| 494 base::RunLoop().RunUntilIdle(); | 481 base::RunLoop().RunUntilIdle(); |
| 495 EXPECT_EQ(FILE_ERROR_OK, error); | 482 EXPECT_EQ(FILE_ERROR_OK, error); |
| 496 ASSERT_EQ(6U, result->size()); | 483 ASSERT_EQ(6U, result->size()); |
| 497 | 484 |
| 498 // Newer entries are listed earlier. So, the results come in the reverse | 485 // Newer entries are listed earlier. So, the results come in the reverse |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 603 } | 590 } |
| 604 | 591 |
| 605 TEST(SearchMetadataSimpleTest, FindAndHighlight_MoreMetaChars) { | 592 TEST(SearchMetadataSimpleTest, FindAndHighlight_MoreMetaChars) { |
| 606 std::string highlighted_text; | 593 std::string highlighted_text; |
| 607 EXPECT_TRUE(FindAndHighlightWrapper("a&b&c&d", "b&c", &highlighted_text)); | 594 EXPECT_TRUE(FindAndHighlightWrapper("a&b&c&d", "b&c", &highlighted_text)); |
| 608 EXPECT_EQ("a&<b>b&c</b>&d", highlighted_text); | 595 EXPECT_EQ("a&<b>b&c</b>&d", highlighted_text); |
| 609 } | 596 } |
| 610 | 597 |
| 611 } // namespace internal | 598 } // namespace internal |
| 612 } // namespace drive | 599 } // namespace drive |
| OLD | NEW |