| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <string> | 5 #include <string> | 
| 6 | 6 | 
| 7 #include "base/bind.h" | 7 #include "base/bind.h" | 
|  | 8 #include "base/callback.h" | 
| 8 #include "base/files/file.h" | 9 #include "base/files/file.h" | 
| 9 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" | 
| 10 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" | 
| 11 #include "base/memory/scoped_vector.h" | 12 #include "base/memory/scoped_vector.h" | 
| 12 #include "base/memory/weak_ptr.h" | 13 #include "base/memory/weak_ptr.h" | 
|  | 14 #include "base/run_loop.h" | 
| 13 #include "base/values.h" | 15 #include "base/values.h" | 
| 14 #include "chrome/browser/chromeos/file_system_provider/request_manager.h" | 16 #include "chrome/browser/chromeos/file_system_provider/request_manager.h" | 
|  | 17 #include "content/public/test/test_browser_thread_bundle.h" | 
| 15 #include "testing/gtest/include/gtest/gtest.h" | 18 #include "testing/gtest/include/gtest/gtest.h" | 
| 16 | 19 | 
| 17 namespace chromeos { | 20 namespace chromeos { | 
| 18 namespace file_system_provider { | 21 namespace file_system_provider { | 
| 19 namespace { | 22 namespace { | 
| 20 | 23 | 
| 21 // Logs calls of the success and error callbacks on requests. | 24 // Logs calls of the success and error callbacks on requests. | 
| 22 class EventLogger { | 25 class EventLogger { | 
| 23  public: | 26  public: | 
| 24   class SuccessEvent { | 27   class SuccessEvent { | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 74 | 77 | 
| 75 class FileSystemProviderRequestManagerTest : public testing::Test { | 78 class FileSystemProviderRequestManagerTest : public testing::Test { | 
| 76  protected: | 79  protected: | 
| 77   FileSystemProviderRequestManagerTest() {} | 80   FileSystemProviderRequestManagerTest() {} | 
| 78   virtual ~FileSystemProviderRequestManagerTest() {} | 81   virtual ~FileSystemProviderRequestManagerTest() {} | 
| 79 | 82 | 
| 80   virtual void SetUp() OVERRIDE { | 83   virtual void SetUp() OVERRIDE { | 
| 81     request_manager_.reset(new RequestManager()); | 84     request_manager_.reset(new RequestManager()); | 
| 82   } | 85   } | 
| 83 | 86 | 
|  | 87   content::TestBrowserThreadBundle thread_bundle_; | 
| 84   scoped_ptr<RequestManager> request_manager_; | 88   scoped_ptr<RequestManager> request_manager_; | 
| 85 }; | 89 }; | 
| 86 | 90 | 
| 87 TEST_F(FileSystemProviderRequestManagerTest, CreateAndFulFill) { | 91 TEST_F(FileSystemProviderRequestManagerTest, CreateAndFulFill) { | 
| 88   EventLogger logger; | 92   EventLogger logger; | 
| 89 | 93 | 
| 90   int request_id = request_manager_->CreateRequest( | 94   int request_id = request_manager_->CreateRequest( | 
| 91       base::Bind(&EventLogger::OnSuccess, logger.GetWeakPtr()), | 95       base::Bind(&EventLogger::OnSuccess, logger.GetWeakPtr()), | 
| 92       base::Bind(&EventLogger::OnError, logger.GetWeakPtr())); | 96       base::Bind(&EventLogger::OnError, logger.GetWeakPtr())); | 
| 93 | 97 | 
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 296   } | 300   } | 
| 297 | 301 | 
| 298   // All active requests should be aborted in the destructor of RequestManager. | 302   // All active requests should be aborted in the destructor of RequestManager. | 
| 299   EventLogger::ErrorEvent* event = logger.error_events()[0]; | 303   EventLogger::ErrorEvent* event = logger.error_events()[0]; | 
| 300   ASSERT_EQ(1u, logger.error_events().size()); | 304   ASSERT_EQ(1u, logger.error_events().size()); | 
| 301   EXPECT_EQ(base::File::FILE_ERROR_ABORT, event->error()); | 305   EXPECT_EQ(base::File::FILE_ERROR_ABORT, event->error()); | 
| 302 | 306 | 
| 303   EXPECT_EQ(0u, logger.success_events().size()); | 307   EXPECT_EQ(0u, logger.success_events().size()); | 
| 304 } | 308 } | 
| 305 | 309 | 
|  | 310 TEST_F(FileSystemProviderRequestManagerTest, AbortOnTimeout) { | 
|  | 311   EventLogger logger; | 
|  | 312   base::RunLoop run_loop; | 
|  | 313 | 
|  | 314   request_manager_->SetTimeoutForTests(base::TimeDelta::FromSeconds(0)); | 
|  | 315   int request_id = request_manager_->CreateRequest( | 
|  | 316       base::Bind(&EventLogger::OnSuccess, logger.GetWeakPtr()), | 
|  | 317       base::Bind(&EventLogger::OnError, logger.GetWeakPtr())); | 
|  | 318   EXPECT_LT(0, request_id); | 
|  | 319 | 
|  | 320   // Wait until the request is timeouted. | 
|  | 321   run_loop.RunUntilIdle(); | 
|  | 322 | 
|  | 323   ASSERT_EQ(1u, logger.error_events().size()); | 
|  | 324   EventLogger::ErrorEvent* event = logger.error_events()[0]; | 
|  | 325   EXPECT_EQ(base::File::FILE_ERROR_ABORT, event->error()); | 
|  | 326 } | 
|  | 327 | 
| 306 }  // namespace file_system_provider | 328 }  // namespace file_system_provider | 
| 307 }  // namespace chromeos | 329 }  // namespace chromeos | 
| OLD | NEW | 
|---|