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

Side by Side Diff: content/browser/loader/test_resource_handler_wrapper.cc

Issue 2526983002: Refactor ResourceHandler API. (Closed)
Patch Set: Fix Created 4 years 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
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/browser/loader/test_resource_handler_wrapper.h"
6
7 #include <memory>
8
9 #include "base/memory/ptr_util.h"
10 #include "content/browser/loader/resource_controller.h"
11 #include "content/browser/loader/resource_handler.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace content {
15
16 class TestResourceHandlerWrapper::TestResourceController
17 : public ResourceController {
18 public:
19 explicit TestResourceController(
20 base::WeakPtr<TestResourceHandlerWrapper> resource_handler_wrapper)
21 : resource_handler_wrapper_(resource_handler_wrapper) {}
22 ~TestResourceController() override {}
23
24 void Resume() override {
25 ASSERT_TRUE(resource_handler_wrapper_);
26 resource_handler_wrapper_->OnResume();
27 }
28
29 void Cancel() override { CancelWithError(net::ERR_ABORTED); }
30
31 void CancelAndIgnore() override {
32 ADD_FAILURE() << "Unexpected CancelAndIgnore call.";
33 Cancel();
34 }
35
36 void CancelWithError(int error_code) override {
37 ASSERT_TRUE(resource_handler_wrapper_);
38 resource_handler_wrapper_->OnCancelWithError(error_code);
39 }
40
41 base::WeakPtr<TestResourceHandlerWrapper> resource_handler_wrapper_;
42 };
43
44 TestResourceHandlerWrapper::TestResourceHandlerWrapper(
45 ResourceHandler* resource_handler)
46 : resource_handler_(resource_handler), weak_factory_(this) {}
47
48 TestResourceHandlerWrapper::~TestResourceHandlerWrapper() {}
49
50 TestResourceHandlerWrapper::Result
51 TestResourceHandlerWrapper::OnRequestRedirected(
52 const net::RedirectInfo& redirect_info,
53 ResourceResponse* response) {
54 EXPECT_FALSE(weak_factory_.HasWeakPtrs());
55 EXPECT_NE(Result::CALLBACK_PENDING, last_result_);
56 last_result_ = Result::CALLBACK_PENDING;
57 resource_handler_->OnRequestRedirected(
58 redirect_info, response,
59 base::MakeUnique<TestResourceController>(weak_factory_.GetWeakPtr()));
60 return last_result_;
61 }
62
63 TestResourceHandlerWrapper::Result
64 TestResourceHandlerWrapper::OnResponseStarted(ResourceResponse* response) {
65 EXPECT_FALSE(weak_factory_.HasWeakPtrs());
66 EXPECT_NE(Result::CALLBACK_PENDING, last_result_);
67 last_result_ = Result::CALLBACK_PENDING;
68 resource_handler_->OnResponseStarted(
69 response,
70 base::MakeUnique<TestResourceController>(weak_factory_.GetWeakPtr()));
71 return last_result_;
72 }
73
74 TestResourceHandlerWrapper::Result TestResourceHandlerWrapper::OnWillStart(
75 const GURL& url) {
76 EXPECT_FALSE(weak_factory_.HasWeakPtrs());
77 EXPECT_NE(Result::CALLBACK_PENDING, last_result_);
78 last_result_ = Result::CALLBACK_PENDING;
79 resource_handler_->OnWillStart(url, base::MakeUnique<TestResourceController>(
80 weak_factory_.GetWeakPtr()));
81 return last_result_;
82 }
83
84 TestResourceHandlerWrapper::Result TestResourceHandlerWrapper::OnReadCompleted(
85 int bytes_read) {
86 EXPECT_FALSE(weak_factory_.HasWeakPtrs());
87 EXPECT_NE(Result::CALLBACK_PENDING, last_result_);
88 last_result_ = Result::CALLBACK_PENDING;
89 resource_handler_->OnReadCompleted(
90 bytes_read,
91 base::MakeUnique<TestResourceController>(weak_factory_.GetWeakPtr()));
92 return last_result_;
93 }
94
95 TestResourceHandlerWrapper::Result
96 TestResourceHandlerWrapper::OnResponseCompleted(
97 const net::URLRequestStatus& status) {
98 EXPECT_FALSE(weak_factory_.HasWeakPtrs());
99 EXPECT_NE(Result::CALLBACK_PENDING, last_result_);
100 last_result_ = Result::CALLBACK_PENDING;
101 resource_handler_->OnResponseCompleted(
102 status,
103 base::MakeUnique<TestResourceController>(weak_factory_.GetWeakPtr()));
104 EXPECT_NE(Result::CANCEL, last_result_);
105 return last_result_;
106 }
107
108 TestResourceHandlerWrapper::Result
109 TestResourceHandlerWrapper::OnResponseCompletedForOutOfBandCancel(
110 const net::URLRequestStatus& status) {
111 weak_factory_.InvalidateWeakPtrs();
112 last_result_ = Result::CALLBACK_PENDING;
113 resource_handler_->OnResponseCompleted(
114 status,
115 base::MakeUnique<TestResourceController>(weak_factory_.GetWeakPtr()));
116 EXPECT_NE(Result::CANCEL, last_result_);
117 return last_result_;
118 }
119
120 void TestResourceHandlerWrapper::OnResume() {
121 EXPECT_EQ(Result::CALLBACK_PENDING, last_result_);
122 last_result_ = Result::RESUME;
123 }
124
125 void TestResourceHandlerWrapper::OnCancelWithError(int net_error) {
126 EXPECT_LT(net_error, 0);
127 EXPECT_EQ(net::OK, net_error_);
128 EXPECT_EQ(Result::CALLBACK_PENDING, last_result_);
129 last_result_ = Result::CANCEL;
130 net_error_ = net_error;
131 cancel_run_loop_.Quit();
132 }
133
134 void TestResourceHandlerWrapper::RunUntilCanceled() {
135 cancel_run_loop_.Run();
136 }
137
138 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698