| 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 "chrome/browser/policy/testing_policy_url_fetcher_factory.h" | 5 #include "chrome/browser/policy/testing_policy_url_fetcher_factory.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/policy/logging_work_scheduler.h" | 8 #include "chrome/browser/policy/logging_work_scheduler.h" |
| 9 #include "googleurl/src/gurl.h" | 9 #include "googleurl/src/gurl.h" |
| 10 #include "googleurl/src/url_parse.h" | 10 #include "googleurl/src/url_parse.h" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 } // namespace | 32 } // namespace |
| 33 | 33 |
| 34 namespace policy { | 34 namespace policy { |
| 35 | 35 |
| 36 // An URLFetcher that calls back to its factory to figure out what to respond. | 36 // An URLFetcher that calls back to its factory to figure out what to respond. |
| 37 class TestingPolicyURLFetcher : public TestURLFetcher { | 37 class TestingPolicyURLFetcher : public TestURLFetcher { |
| 38 public: | 38 public: |
| 39 TestingPolicyURLFetcher( | 39 TestingPolicyURLFetcher( |
| 40 const base::WeakPtr<TestingPolicyURLFetcherFactory>& parent, | 40 const base::WeakPtr<TestingPolicyURLFetcherFactory>& parent, |
| 41 const GURL& url, | 41 const GURL& url, |
| 42 content::URLFetcher::RequestType request_type, | |
| 43 content::URLFetcherDelegate* delegate); | 42 content::URLFetcherDelegate* delegate); |
| 44 | 43 |
| 45 virtual void Start() OVERRIDE; | 44 virtual void Start() OVERRIDE; |
| 46 void Respond(); | 45 void Respond(); |
| 47 | 46 |
| 48 virtual int GetResponseCode() const OVERRIDE { | 47 virtual int GetResponseCode() const OVERRIDE { |
| 49 return response_.response_code; | 48 return response_.response_code; |
| 50 } | 49 } |
| 51 | 50 |
| 52 virtual bool GetResponseAsString( | 51 virtual bool GetResponseAsString( |
| 53 std::string* out_response_string) const OVERRIDE { | 52 std::string* out_response_string) const OVERRIDE { |
| 54 *out_response_string = response_.response_data; | 53 *out_response_string = response_.response_data; |
| 55 return true; | 54 return true; |
| 56 } | 55 } |
| 57 | 56 |
| 58 private: | 57 private: |
| 59 TestURLResponse response_; | 58 TestURLResponse response_; |
| 60 base::WeakPtr<TestingPolicyURLFetcherFactory> parent_; | 59 base::WeakPtr<TestingPolicyURLFetcherFactory> parent_; |
| 61 | 60 |
| 62 DISALLOW_COPY_AND_ASSIGN(TestingPolicyURLFetcher); | 61 DISALLOW_COPY_AND_ASSIGN(TestingPolicyURLFetcher); |
| 63 }; | 62 }; |
| 64 | 63 |
| 65 TestingPolicyURLFetcher::TestingPolicyURLFetcher( | 64 TestingPolicyURLFetcher::TestingPolicyURLFetcher( |
| 66 const base::WeakPtr<TestingPolicyURLFetcherFactory>& parent, | 65 const base::WeakPtr<TestingPolicyURLFetcherFactory>& parent, |
| 67 const GURL& url, | 66 const GURL& url, |
| 68 content::URLFetcher::RequestType request_type, | |
| 69 content::URLFetcherDelegate* delegate) | 67 content::URLFetcherDelegate* delegate) |
| 70 : TestURLFetcher(0, url, request_type, delegate), | 68 : TestURLFetcher(0, url, delegate), |
| 71 parent_(parent) { | 69 parent_(parent) { |
| 72 set_url(url); | 70 set_url(url); |
| 73 set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0)); | 71 set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS, 0)); |
| 74 } | 72 } |
| 75 | 73 |
| 76 void TestingPolicyURLFetcher::Start() { | 74 void TestingPolicyURLFetcher::Start() { |
| 77 if (!parent_.get()) return; | 75 if (!parent_.get()) return; |
| 78 | 76 |
| 79 std::string auth_header; | 77 std::string auth_header; |
| 80 net::HttpRequestHeaders headers; | 78 net::HttpRequestHeaders headers; |
| 81 std::string request = GetRequestType(GetUrl()); | 79 std::string request = GetRequestType(GetURL()); |
| 82 GetExtraRequestHeaders(&headers); | 80 GetExtraRequestHeaders(&headers); |
| 83 headers.GetHeader("Authorization", &auth_header); | 81 headers.GetHeader("Authorization", &auth_header); |
| 84 // The following method is mocked by the currently running test. | 82 // The following method is mocked by the currently running test. |
| 85 parent_->GetResponse(auth_header, request, &response_); | 83 parent_->GetResponse(auth_header, request, &response_); |
| 86 | 84 |
| 87 // We need to channel this through the central event logger, so that ordering | 85 // We need to channel this through the central event logger, so that ordering |
| 88 // with other logged tasks that have a delay is preserved. | 86 // with other logged tasks that have a delay is preserved. |
| 89 parent_->scheduler()->PostDelayedWork( | 87 parent_->scheduler()->PostDelayedWork( |
| 90 base::Bind(&TestingPolicyURLFetcher::Respond, base::Unretained(this)), | 88 base::Bind(&TestingPolicyURLFetcher::Respond, base::Unretained(this)), |
| 91 0); | 89 0); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 117 logger_->RegisterEvent(); | 115 logger_->RegisterEvent(); |
| 118 Intercept(auth_header, request, response); | 116 Intercept(auth_header, request, response); |
| 119 } | 117 } |
| 120 | 118 |
| 121 content::URLFetcher* TestingPolicyURLFetcherFactory::CreateURLFetcher( | 119 content::URLFetcher* TestingPolicyURLFetcherFactory::CreateURLFetcher( |
| 122 int id, | 120 int id, |
| 123 const GURL& url, | 121 const GURL& url, |
| 124 content::URLFetcher::RequestType request_type, | 122 content::URLFetcher::RequestType request_type, |
| 125 content::URLFetcherDelegate* delegate) { | 123 content::URLFetcherDelegate* delegate) { |
| 126 return new TestingPolicyURLFetcher( | 124 return new TestingPolicyURLFetcher( |
| 127 weak_ptr_factory_.GetWeakPtr(), url, request_type, delegate); | 125 weak_ptr_factory_.GetWeakPtr(), url, delegate); |
| 128 } | 126 } |
| 129 | 127 |
| 130 } // namespace policy | 128 } // namespace policy |
| OLD | NEW |