| Index: chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc | 
| diff --git a/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc b/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc | 
| index 79a7296d0bd295dabf41f18f4792cc41d1324be1..437b270e987dec4113c4ceaf7a7d810952d6b4e9 100644 | 
| --- a/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc | 
| +++ b/chrome/browser/chromeos/drive/file_system/search_operation_unittest.cc | 
| @@ -4,6 +4,8 @@ | 
|  | 
| #include "chrome/browser/chromeos/drive/file_system/search_operation.h" | 
|  | 
| +#include "base/callback_helpers.h" | 
| +#include "chrome/browser/chromeos/drive/change_list_loader.h" | 
| #include "chrome/browser/chromeos/drive/file_system/operation_test_base.h" | 
| #include "chrome/browser/drive/fake_drive_service.h" | 
| #include "google_apis/drive/gdata_wapi_parser.h" | 
| @@ -16,7 +18,8 @@ namespace file_system { | 
| typedef OperationTestBase SearchOperationTest; | 
|  | 
| TEST_F(SearchOperationTest, ContentSearch) { | 
| -  SearchOperation operation(blocking_task_runner(), scheduler(), metadata()); | 
| +  SearchOperation operation(blocking_task_runner(), scheduler(), metadata(), | 
| +                            loader_controller()); | 
|  | 
| std::set<std::string> expected_results; | 
| expected_results.insert( | 
| @@ -45,7 +48,8 @@ TEST_F(SearchOperationTest, ContentSearch) { | 
| } | 
|  | 
| TEST_F(SearchOperationTest, ContentSearchWithNewEntry) { | 
| -  SearchOperation operation(blocking_task_runner(), scheduler(), metadata()); | 
| +  SearchOperation operation(blocking_task_runner(), scheduler(), metadata(), | 
| +                            loader_controller()); | 
|  | 
| // Create a new directory in the drive service. | 
| google_apis::GDataErrorCode gdata_error = google_apis::GDATA_OTHER_ERROR; | 
| @@ -105,7 +109,8 @@ TEST_F(SearchOperationTest, ContentSearchWithNewEntry) { | 
| } | 
|  | 
| TEST_F(SearchOperationTest, ContentSearchEmptyResult) { | 
| -  SearchOperation operation(blocking_task_runner(), scheduler(), metadata()); | 
| +  SearchOperation operation(blocking_task_runner(), scheduler(), metadata(), | 
| +                            loader_controller()); | 
|  | 
| FileError error = FILE_ERROR_FAILED; | 
| GURL next_link; | 
| @@ -121,5 +126,32 @@ TEST_F(SearchOperationTest, ContentSearchEmptyResult) { | 
| EXPECT_EQ(0U, results->size()); | 
| } | 
|  | 
| +TEST_F(SearchOperationTest, Lock) { | 
| +  SearchOperation operation(blocking_task_runner(), scheduler(), metadata(), | 
| +                            loader_controller()); | 
| + | 
| +  // Lock. | 
| +  scoped_ptr<base::ScopedClosureRunner> lock = loader_controller()->GetLock(); | 
| + | 
| +  // Search does not return the result as long as lock is alive. | 
| +  FileError error = FILE_ERROR_FAILED; | 
| +  GURL next_link; | 
| +  scoped_ptr<std::vector<SearchResultInfo> > results; | 
| + | 
| +  operation.Search("\"Directory 1\"", GURL(), | 
| +                   google_apis::test_util::CreateCopyResultCallback( | 
| +                       &error, &next_link, &results)); | 
| +  test_util::RunBlockingPoolTask(); | 
| +  EXPECT_EQ(FILE_ERROR_FAILED, error); | 
| +  EXPECT_FALSE(results); | 
| + | 
| +  // Unlock, this should resume the pending search. | 
| +  lock.reset(); | 
| +  test_util::RunBlockingPoolTask(); | 
| +  EXPECT_EQ(FILE_ERROR_OK, error); | 
| +  ASSERT_TRUE(results); | 
| +  EXPECT_EQ(1u, results->size()); | 
| +} | 
| + | 
| }  // namespace file_system | 
| }  // namespace drive | 
|  |