| 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 #include <vector> | 6 #include <vector> |
| 7 | 7 |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/files/file.h" | 10 #include "base/files/file.h" |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 49 bool has_more() { return has_more_; } | 49 bool has_more() { return has_more_; } |
| 50 | 50 |
| 51 private: | 51 private: |
| 52 int request_id_; | 52 int request_id_; |
| 53 scoped_ptr<RequestValue> result_; | 53 scoped_ptr<RequestValue> result_; |
| 54 bool has_more_; | 54 bool has_more_; |
| 55 }; | 55 }; |
| 56 | 56 |
| 57 class ErrorEvent { | 57 class ErrorEvent { |
| 58 public: | 58 public: |
| 59 ErrorEvent(int request_id, | 59 ErrorEvent(int request_id, base::File::Error error) |
| 60 scoped_ptr<RequestValue> result, | 60 : request_id_(request_id), error_(error) {} |
| 61 base::File::Error error) | |
| 62 : request_id_(request_id), result_(result.Pass()), error_(error) {} | |
| 63 virtual ~ErrorEvent() {} | 61 virtual ~ErrorEvent() {} |
| 64 | 62 |
| 65 int request_id() { return request_id_; } | 63 int request_id() { return request_id_; } |
| 66 RequestValue* result() { return result_.get(); } | |
| 67 base::File::Error error() { return error_; } | 64 base::File::Error error() { return error_; } |
| 68 | 65 |
| 69 private: | 66 private: |
| 70 int request_id_; | 67 int request_id_; |
| 71 scoped_ptr<RequestValue> result_; | |
| 72 base::File::Error error_; | 68 base::File::Error error_; |
| 73 }; | 69 }; |
| 74 | 70 |
| 75 EventLogger() : weak_ptr_factory_(this) {} | 71 EventLogger() : weak_ptr_factory_(this) {} |
| 76 virtual ~EventLogger() {} | 72 virtual ~EventLogger() {} |
| 77 | 73 |
| 78 void OnExecute(int request_id) { | 74 void OnExecute(int request_id) { |
| 79 execute_events_.push_back(new ExecuteEvent(request_id)); | 75 execute_events_.push_back(new ExecuteEvent(request_id)); |
| 80 } | 76 } |
| 81 | 77 |
| 82 void OnSuccess(int request_id, | 78 void OnSuccess(int request_id, |
| 83 scoped_ptr<RequestValue> result, | 79 scoped_ptr<RequestValue> result, |
| 84 bool has_more) { | 80 bool has_more) { |
| 85 success_events_.push_back( | 81 success_events_.push_back( |
| 86 new SuccessEvent(request_id, result.Pass(), has_more)); | 82 new SuccessEvent(request_id, result.Pass(), has_more)); |
| 87 } | 83 } |
| 88 | 84 |
| 89 void OnError(int request_id, | 85 void OnError(int request_id, base::File::Error error) { |
| 90 scoped_ptr<RequestValue> result, | 86 error_events_.push_back(new ErrorEvent(request_id, error)); |
| 91 base::File::Error error) { | |
| 92 error_events_.push_back(new ErrorEvent(request_id, result.Pass(), error)); | |
| 93 } | 87 } |
| 94 | 88 |
| 95 ScopedVector<ExecuteEvent>& execute_events() { return execute_events_; } | 89 ScopedVector<ExecuteEvent>& execute_events() { return execute_events_; } |
| 96 ScopedVector<SuccessEvent>& success_events() { return success_events_; } | 90 ScopedVector<SuccessEvent>& success_events() { return success_events_; } |
| 97 ScopedVector<ErrorEvent>& error_events() { return error_events_; } | 91 ScopedVector<ErrorEvent>& error_events() { return error_events_; } |
| 98 | 92 |
| 99 base::WeakPtr<EventLogger> GetWeakPtr() { | 93 base::WeakPtr<EventLogger> GetWeakPtr() { |
| 100 return weak_ptr_factory_.GetWeakPtr(); | 94 return weak_ptr_factory_.GetWeakPtr(); |
| 101 } | 95 } |
| 102 | 96 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 128 | 122 |
| 129 // RequestManager::Handler overrides. | 123 // RequestManager::Handler overrides. |
| 130 virtual void OnSuccess(int request_id, | 124 virtual void OnSuccess(int request_id, |
| 131 scoped_ptr<RequestValue> result, | 125 scoped_ptr<RequestValue> result, |
| 132 bool has_more) OVERRIDE { | 126 bool has_more) OVERRIDE { |
| 133 if (logger_.get()) | 127 if (logger_.get()) |
| 134 logger_->OnSuccess(request_id, result.Pass(), has_more); | 128 logger_->OnSuccess(request_id, result.Pass(), has_more); |
| 135 } | 129 } |
| 136 | 130 |
| 137 // RequestManager::Handler overrides. | 131 // RequestManager::Handler overrides. |
| 138 virtual void OnError(int request_id, | 132 virtual void OnError(int request_id, base::File::Error error) OVERRIDE { |
| 139 scoped_ptr<RequestValue> result, | |
| 140 base::File::Error error) OVERRIDE { | |
| 141 if (logger_.get()) | 133 if (logger_.get()) |
| 142 logger_->OnError(request_id, result.Pass(), error); | 134 logger_->OnError(request_id, error); |
| 143 } | 135 } |
| 144 | 136 |
| 145 virtual ~FakeHandler() {} | 137 virtual ~FakeHandler() {} |
| 146 | 138 |
| 147 private: | 139 private: |
| 148 base::WeakPtr<EventLogger> logger_; | 140 base::WeakPtr<EventLogger> logger_; |
| 149 bool execute_reply_; | 141 bool execute_reply_; |
| 150 DISALLOW_COPY_AND_ASSIGN(FakeHandler); | 142 DISALLOW_COPY_AND_ASSIGN(FakeHandler); |
| 151 }; | 143 }; |
| 152 | 144 |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 { | 328 { |
| 337 scoped_ptr<RequestValue> response; | 329 scoped_ptr<RequestValue> response; |
| 338 bool retry = | 330 bool retry = |
| 339 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); | 331 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); |
| 340 EXPECT_FALSE(retry); | 332 EXPECT_FALSE(retry); |
| 341 EXPECT_EQ(1u, observer.fulfilled().size()); | 333 EXPECT_EQ(1u, observer.fulfilled().size()); |
| 342 } | 334 } |
| 343 | 335 |
| 344 // Rejecting should also fail. | 336 // Rejecting should also fail. |
| 345 { | 337 { |
| 346 bool retry = request_manager_->RejectRequest( | 338 bool retry = request_manager_->RejectRequest(request_id, |
| 347 request_id, | 339 base::File::FILE_ERROR_FAILED); |
| 348 scoped_ptr<RequestValue>(new RequestValue()), | |
| 349 base::File::FILE_ERROR_FAILED); | |
| 350 EXPECT_FALSE(retry); | 340 EXPECT_FALSE(retry); |
| 351 EXPECT_EQ(0u, observer.rejected().size()); | 341 EXPECT_EQ(0u, observer.rejected().size()); |
| 352 } | 342 } |
| 353 | 343 |
| 354 ASSERT_EQ(1u, observer.destroyed().size()); | 344 ASSERT_EQ(1u, observer.destroyed().size()); |
| 355 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 345 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 356 EXPECT_EQ(0u, observer.timeouted().size()); | 346 EXPECT_EQ(0u, observer.timeouted().size()); |
| 357 | 347 |
| 358 request_manager_->RemoveObserver(&observer); | 348 request_manager_->RemoveObserver(&observer); |
| 359 } | 349 } |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 EXPECT_EQ(0u, logger.error_events().size()); | 432 EXPECT_EQ(0u, logger.error_events().size()); |
| 443 | 433 |
| 444 ASSERT_EQ(1u, observer.created().size()); | 434 ASSERT_EQ(1u, observer.created().size()); |
| 445 EXPECT_EQ(request_id, observer.created()[0].request_id()); | 435 EXPECT_EQ(request_id, observer.created()[0].request_id()); |
| 446 EXPECT_EQ(TESTING, observer.created()[0].type()); | 436 EXPECT_EQ(TESTING, observer.created()[0].type()); |
| 447 | 437 |
| 448 ASSERT_EQ(1u, observer.executed().size()); | 438 ASSERT_EQ(1u, observer.executed().size()); |
| 449 EXPECT_EQ(request_id, observer.executed()[0].request_id()); | 439 EXPECT_EQ(request_id, observer.executed()[0].request_id()); |
| 450 | 440 |
| 451 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; | 441 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; |
| 452 bool result = request_manager_->RejectRequest( | 442 bool result = request_manager_->RejectRequest(request_id, error); |
| 453 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); | |
| 454 EXPECT_TRUE(result); | 443 EXPECT_TRUE(result); |
| 455 | 444 |
| 456 // Validate if the callback has correct arguments. | 445 // Validate if the callback has correct arguments. |
| 457 ASSERT_EQ(1u, logger.error_events().size()); | 446 ASSERT_EQ(1u, logger.error_events().size()); |
| 458 EXPECT_EQ(0u, logger.success_events().size()); | 447 EXPECT_EQ(0u, logger.success_events().size()); |
| 459 EventLogger::ErrorEvent* event = logger.error_events()[0]; | 448 EventLogger::ErrorEvent* event = logger.error_events()[0]; |
| 460 EXPECT_EQ(error, event->error()); | 449 EXPECT_EQ(error, event->error()); |
| 461 | 450 |
| 462 ASSERT_EQ(1u, observer.rejected().size()); | 451 ASSERT_EQ(1u, observer.rejected().size()); |
| 463 EXPECT_EQ(request_id, observer.rejected()[0].request_id()); | 452 EXPECT_EQ(request_id, observer.rejected()[0].request_id()); |
| 464 EXPECT_EQ(error, observer.rejected()[0].error()); | 453 EXPECT_EQ(error, observer.rejected()[0].error()); |
| 465 | 454 |
| 466 // Confirm, that the request is removed. Basically, fulfilling again for the | 455 // Confirm, that the request is removed. Basically, fulfilling again for the |
| 467 // same request, should fail. | 456 // same request, should fail. |
| 468 { | 457 { |
| 469 scoped_ptr<RequestValue> response; | 458 scoped_ptr<RequestValue> response; |
| 470 bool has_more = false; | 459 bool has_more = false; |
| 471 bool retry = | 460 bool retry = |
| 472 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); | 461 request_manager_->FulfillRequest(request_id, response.Pass(), has_more); |
| 473 EXPECT_FALSE(retry); | 462 EXPECT_FALSE(retry); |
| 474 EXPECT_EQ(0u, observer.fulfilled().size()); | 463 EXPECT_EQ(0u, observer.fulfilled().size()); |
| 475 } | 464 } |
| 476 | 465 |
| 477 // Rejecting should also fail. | 466 // Rejecting should also fail. |
| 478 { | 467 { |
| 479 bool retry = request_manager_->RejectRequest( | 468 bool retry = request_manager_->RejectRequest(request_id, error); |
| 480 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); | |
| 481 EXPECT_FALSE(retry); | 469 EXPECT_FALSE(retry); |
| 482 EXPECT_EQ(1u, observer.rejected().size()); | 470 EXPECT_EQ(1u, observer.rejected().size()); |
| 483 } | 471 } |
| 484 | 472 |
| 485 ASSERT_EQ(1u, observer.destroyed().size()); | 473 ASSERT_EQ(1u, observer.destroyed().size()); |
| 486 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 474 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 487 EXPECT_EQ(0u, observer.timeouted().size()); | 475 EXPECT_EQ(0u, observer.timeouted().size()); |
| 488 | 476 |
| 489 request_manager_->RemoveObserver(&observer); | 477 request_manager_->RemoveObserver(&observer); |
| 490 } | 478 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 552 EXPECT_EQ(0u, logger.error_events().size()); | 540 EXPECT_EQ(0u, logger.error_events().size()); |
| 553 | 541 |
| 554 ASSERT_EQ(1u, observer.created().size()); | 542 ASSERT_EQ(1u, observer.created().size()); |
| 555 EXPECT_EQ(request_id, observer.created()[0].request_id()); | 543 EXPECT_EQ(request_id, observer.created()[0].request_id()); |
| 556 EXPECT_EQ(TESTING, observer.created()[0].type()); | 544 EXPECT_EQ(TESTING, observer.created()[0].type()); |
| 557 | 545 |
| 558 ASSERT_EQ(1u, observer.executed().size()); | 546 ASSERT_EQ(1u, observer.executed().size()); |
| 559 EXPECT_EQ(request_id, observer.executed()[0].request_id()); | 547 EXPECT_EQ(request_id, observer.executed()[0].request_id()); |
| 560 | 548 |
| 561 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; | 549 base::File::Error error = base::File::FILE_ERROR_NO_MEMORY; |
| 562 bool result = request_manager_->RejectRequest( | 550 bool result = request_manager_->RejectRequest(request_id + 1, error); |
| 563 request_id + 1, scoped_ptr<RequestValue>(new RequestValue()), error); | |
| 564 EXPECT_FALSE(result); | 551 EXPECT_FALSE(result); |
| 565 | 552 |
| 566 // Callbacks should not be called. | 553 // Callbacks should not be called. |
| 567 EXPECT_EQ(0u, logger.error_events().size()); | 554 EXPECT_EQ(0u, logger.error_events().size()); |
| 568 EXPECT_EQ(0u, logger.success_events().size()); | 555 EXPECT_EQ(0u, logger.success_events().size()); |
| 569 | 556 |
| 570 EXPECT_EQ(0u, observer.rejected().size()); | 557 EXPECT_EQ(0u, observer.rejected().size()); |
| 571 | 558 |
| 572 // Confirm, that the request hasn't been removed, by rejecting it correctly. | 559 // Confirm, that the request hasn't been removed, by rejecting it correctly. |
| 573 { | 560 { |
| 574 bool retry = request_manager_->RejectRequest( | 561 bool retry = request_manager_->RejectRequest(request_id, error); |
| 575 request_id, scoped_ptr<RequestValue>(new RequestValue()), error); | |
| 576 EXPECT_TRUE(retry); | 562 EXPECT_TRUE(retry); |
| 577 EXPECT_EQ(1u, observer.rejected().size()); | 563 EXPECT_EQ(1u, observer.rejected().size()); |
| 578 } | 564 } |
| 579 | 565 |
| 580 request_manager_->RemoveObserver(&observer); | 566 request_manager_->RemoveObserver(&observer); |
| 581 } | 567 } |
| 582 | 568 |
| 583 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) { | 569 TEST_F(FileSystemProviderRequestManagerTest, UniqueIds) { |
| 584 EventLogger logger; | 570 EventLogger logger; |
| 585 | 571 |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 ASSERT_EQ(1u, observer.timeouted().size()); | 665 ASSERT_EQ(1u, observer.timeouted().size()); |
| 680 EXPECT_EQ(request_id, observer.timeouted()[0].request_id()); | 666 EXPECT_EQ(request_id, observer.timeouted()[0].request_id()); |
| 681 ASSERT_EQ(1u, observer.destroyed().size()); | 667 ASSERT_EQ(1u, observer.destroyed().size()); |
| 682 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); | 668 EXPECT_EQ(request_id, observer.destroyed()[0].request_id()); |
| 683 | 669 |
| 684 request_manager_->RemoveObserver(&observer); | 670 request_manager_->RemoveObserver(&observer); |
| 685 } | 671 } |
| 686 | 672 |
| 687 } // namespace file_system_provider | 673 } // namespace file_system_provider |
| 688 } // namespace chromeos | 674 } // namespace chromeos |
| OLD | NEW |