| Index: chrome/browser/component_updater/test/url_request_post_interceptor.cc
|
| diff --git a/chrome/browser/component_updater/test/url_request_post_interceptor.cc b/chrome/browser/component_updater/test/url_request_post_interceptor.cc
|
| index 3a511f1798a8532876e8bc0973db0fc3332d79d9..2f0f99263b6a6fbc536d93c9fddd60700da87226 100644
|
| --- a/chrome/browser/component_updater/test/url_request_post_interceptor.cc
|
| +++ b/chrome/browser/component_updater/test/url_request_post_interceptor.cc
|
| @@ -18,6 +18,7 @@ using content::BrowserThread;
|
|
|
| namespace component_updater {
|
|
|
| +// Returns a canned response.
|
| class URLRequestMockJob : public net::URLRequestSimpleJob {
|
| public:
|
| URLRequestMockJob(net::URLRequest* request,
|
| @@ -27,6 +28,10 @@ class URLRequestMockJob : public net::URLRequestSimpleJob {
|
| response_(response) {}
|
|
|
| protected:
|
| + virtual int GetResponseCode() const OVERRIDE {
|
| + return 200;
|
| + }
|
| +
|
| virtual int GetData(std::string* mime_type,
|
| std::string* charset,
|
| std::string* data,
|
| @@ -45,9 +50,14 @@ class URLRequestMockJob : public net::URLRequestSimpleJob {
|
| };
|
|
|
| URLRequestPostInterceptor::URLRequestPostInterceptor(const GURL& url)
|
| - : url_(url), hit_count_(0), miss_count_(0) {}
|
| + : url_(url), hit_count_(0) {}
|
|
|
| URLRequestPostInterceptor::~URLRequestPostInterceptor() {
|
| + CHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| + ClearExpectations();
|
| +}
|
| +
|
| +void URLRequestPostInterceptor::ClearExpectations() {
|
| while (!expectations_.empty()) {
|
| Expectation expectation(expectations_.front());
|
| delete expectation.first;
|
| @@ -67,10 +77,9 @@ bool URLRequestPostInterceptor::ExpectRequest(
|
|
|
| bool URLRequestPostInterceptor::ExpectRequest(
|
| class RequestMatcher* request_matcher,
|
| - const std::string& filepath) {
|
| + const base::FilePath& filepath) {
|
| std::string response;
|
| - const base::FilePath path(base::FilePath().AppendASCII(filepath));
|
| - if (filepath.empty() || !base::ReadFileToString(path, &response))
|
| + if (filepath.empty() || !base::ReadFileToString(filepath, &response))
|
| return false;
|
| expectations_.push(std::make_pair(request_matcher, response));
|
| return true;
|
| @@ -81,9 +90,9 @@ int URLRequestPostInterceptor::GetHitCount() const {
|
| return hit_count_;
|
| }
|
|
|
| -int URLRequestPostInterceptor::GetMissCount() const {
|
| +int URLRequestPostInterceptor::GetCount() const {
|
| base::AutoLock auto_lock(interceptor_lock_);
|
| - return requests_.size() - hit_count_;
|
| + return static_cast<int>(requests_.size());
|
| }
|
|
|
| std::vector<std::string>
|
| @@ -106,6 +115,13 @@ std::string URLRequestPostInterceptor::GetRequestsAsString() const {
|
| return s;
|
| }
|
|
|
| +void URLRequestPostInterceptor::Reset() {
|
| + base::AutoLock auto_lock(interceptor_lock_);
|
| + hit_count_ = 0;
|
| + requests_.clear();
|
| + ClearExpectations();
|
| +}
|
| +
|
|
|
| class URLRequestPostInterceptor::Delegate
|
| : public net::URLRequestJobFactory::ProtocolHandler {
|
| @@ -180,13 +196,12 @@ class URLRequestPostInterceptor::Delegate
|
| const URLRequestPostInterceptor::Expectation& expectation(
|
| interceptor->expectations_.front());
|
| if (expectation.first->Match(request_body)) {
|
| + const std::string response(expectation.second);
|
| delete expectation.first;
|
| interceptor->expectations_.pop();
|
| ++interceptor->hit_count_;
|
|
|
| - return new URLRequestMockJob(request,
|
| - network_delegate,
|
| - expectation.second);
|
| + return new URLRequestMockJob(request, network_delegate, response);
|
| }
|
| }
|
|
|
| @@ -222,11 +237,11 @@ URLRequestPostInterceptorFactory::~URLRequestPostInterceptorFactory() {
|
| }
|
|
|
| URLRequestPostInterceptor* URLRequestPostInterceptorFactory::CreateInterceptor(
|
| - const std::string& file_path) {
|
| + const base::FilePath& filepath) {
|
| const GURL base_url(base::StringPrintf("%s://%s",
|
| scheme_.c_str(),
|
| hostname_.c_str()));
|
| - GURL absolute_url(base_url.Resolve(file_path));
|
| + GURL absolute_url(base_url.Resolve(filepath.MaybeAsASCII()));
|
| URLRequestPostInterceptor* interceptor(
|
| new URLRequestPostInterceptor(absolute_url));
|
| bool res = BrowserThread::PostTask(
|
|
|