Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/test/test_url_fetcher_factory.h" | 5 #include "content/test/test_url_fetcher_factory.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 // This class is used by the FakeURLFetcherFactory below. | 118 // This class is used by the FakeURLFetcherFactory below. |
| 119 class FakeURLFetcher : public URLFetcher { | 119 class FakeURLFetcher : public URLFetcher { |
| 120 public: | 120 public: |
| 121 // Normal URL fetcher constructor but also takes in a pre-baked response. | 121 // Normal URL fetcher constructor but also takes in a pre-baked response. |
| 122 FakeURLFetcher(const GURL& url, RequestType request_type, Delegate* d, | 122 FakeURLFetcher(const GURL& url, RequestType request_type, Delegate* d, |
| 123 const std::string& response_data, bool success) | 123 const std::string& response_data, bool success) |
| 124 : URLFetcher(url, request_type, d), | 124 : URLFetcher(url, request_type, d), |
| 125 url_(url), | 125 url_(url), |
| 126 response_data_(response_data), | 126 response_data_(response_data), |
| 127 success_(success), | 127 success_(success), |
| 128 status_(success ? net::URLRequestStatus::SUCCESS : | |
| 129 net::URLRequestStatus::FAILED, 0), | |
| 128 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { | 130 ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { |
| 129 } | 131 } |
| 130 | 132 |
| 131 // Start the request. This will call the given delegate asynchronously | 133 // Start the request. This will call the given delegate asynchronously |
| 132 // with the pre-baked response as parameter. | 134 // with the pre-baked response as parameter. |
| 133 virtual void Start() { | 135 virtual void Start() { |
| 134 MessageLoop::current()->PostTask( | 136 MessageLoop::current()->PostTask( |
| 135 FROM_HERE, | 137 FROM_HERE, |
| 136 method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate)); | 138 method_factory_.NewRunnableMethod(&FakeURLFetcher::RunDelegate)); |
| 137 } | 139 } |
| 138 | 140 |
| 141 // These methods are overriden so we can use the version of | |
|
Mihai Parparita -not on Chrome
2011/08/31 23:26:23
Add OVERRIDE to the methods that you're overriding
jstritar
2011/09/01 16:10:13
Done.
| |
| 142 // OnURLFetchComplete that only has a single URLFetcher argument. | |
| 143 virtual const net::ResponseCookies& cookies() const { return cookies_; } | |
| 144 | |
| 145 virtual const std::string& GetResponseStringRef() const { | |
| 146 return response_data_; | |
| 147 } | |
| 148 | |
| 149 virtual bool GetResponseAsString(std::string* out_response_string) const { | |
| 150 *out_response_string = response_data_; | |
| 151 return true; | |
| 152 } | |
| 153 | |
| 154 virtual int response_code() const { return success_ ? 200 : 500; } | |
| 155 | |
| 156 virtual const net::URLRequestStatus& status() const { return status_; } | |
| 157 | |
| 139 private: | 158 private: |
| 140 virtual ~FakeURLFetcher() { | 159 virtual ~FakeURLFetcher() { |
| 141 } | 160 } |
| 142 | 161 |
| 143 // This is the method which actually calls the delegate that is passed in the | 162 // This is the method which actually calls the delegate that is passed in the |
| 144 // constructor. | 163 // constructor. |
| 145 void RunDelegate() { | 164 void RunDelegate() { |
| 146 net::URLRequestStatus status; | 165 delegate()->OnURLFetchComplete(this); |
| 147 status.set_status(success_ ? net::URLRequestStatus::SUCCESS : | |
| 148 net::URLRequestStatus::FAILED); | |
| 149 delegate()->OnURLFetchComplete(this, url_, status, success_ ? 200 : 500, | |
| 150 net::ResponseCookies(), response_data_); | |
| 151 } | 166 } |
| 152 | 167 |
| 153 // Pre-baked response data and flag which indicates whether the request should | 168 // Pre-baked response data and flag which indicates whether the request should |
| 154 // be successful or not. | 169 // be successful or not. |
| 155 GURL url_; | 170 GURL url_; |
| 156 std::string response_data_; | 171 std::string response_data_; |
| 157 bool success_; | 172 bool success_; |
| 173 net::URLRequestStatus status_; | |
| 174 net::ResponseCookies cookies_; | |
| 158 | 175 |
| 159 // Method factory used to run the delegate. | 176 // Method factory used to run the delegate. |
| 160 ScopedRunnableMethodFactory<FakeURLFetcher> method_factory_; | 177 ScopedRunnableMethodFactory<FakeURLFetcher> method_factory_; |
| 161 | 178 |
| 162 DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher); | 179 DISALLOW_COPY_AND_ASSIGN(FakeURLFetcher); |
| 163 }; | 180 }; |
| 164 | 181 |
| 165 FakeURLFetcherFactory::FakeURLFetcherFactory() | 182 FakeURLFetcherFactory::FakeURLFetcherFactory() |
| 166 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 183 : ScopedURLFetcherFactory(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| 167 } | 184 } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 208 | 225 |
| 209 URLFetcherFactory::~URLFetcherFactory() {} | 226 URLFetcherFactory::~URLFetcherFactory() {} |
| 210 | 227 |
| 211 URLFetcher* URLFetcherFactory::CreateURLFetcher( | 228 URLFetcher* URLFetcherFactory::CreateURLFetcher( |
| 212 int id, | 229 int id, |
| 213 const GURL& url, | 230 const GURL& url, |
| 214 URLFetcher::RequestType request_type, | 231 URLFetcher::RequestType request_type, |
| 215 URLFetcher::Delegate* d) { | 232 URLFetcher::Delegate* d) { |
| 216 return new URLFetcher(url, request_type, d); | 233 return new URLFetcher(url, request_type, d); |
| 217 } | 234 } |
| OLD | NEW |