Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: trunk/src/chrome/browser/chromeos/file_system_provider/request_manager_unittest.cc

Issue 342003004: Revert 277929 "[fsp] Cleanup handling errors for operation reque..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698