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 |