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 "base/message_loop_proxy.h" | 5 #include "base/message_loop_proxy.h" |
6 #include "base/threading/thread.h" | 6 #include "base/threading/thread.h" |
7 #include "chrome/browser/sync/glue/http_bridge.h" | 7 #include "chrome/browser/sync/glue/http_bridge.h" |
8 #include "chrome/test/base/test_url_request_context_getter.h" | 8 #include "chrome/test/base/test_url_request_context_getter.h" |
9 #include "content/browser/browser_thread.h" | 9 #include "content/browser/browser_thread.h" |
10 #include "content/test/test_url_fetcher_factory.h" | 10 #include "content/test/test_url_fetcher_factory.h" |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 private: | 81 private: |
82 // A make-believe "default" request context, as would be returned by | 82 // A make-believe "default" request context, as would be returned by |
83 // Profile::GetDefaultRequestContext(). Created lazily by BuildBridge. | 83 // Profile::GetDefaultRequestContext(). Created lazily by BuildBridge. |
84 TestURLRequestContextGetter* fake_default_request_context_getter_; | 84 TestURLRequestContextGetter* fake_default_request_context_getter_; |
85 | 85 |
86 // Separate thread for IO used by the HttpBridge. | 86 // Separate thread for IO used by the HttpBridge. |
87 BrowserThread io_thread_; | 87 BrowserThread io_thread_; |
88 MessageLoop loop_; | 88 MessageLoop loop_; |
89 }; | 89 }; |
90 | 90 |
91 class DummyURLFetcher : public TestURLFetcher { | |
92 public: | |
93 DummyURLFetcher() : TestURLFetcher(0, GURL(), POST, NULL) {} | |
94 | |
95 net::HttpResponseHeaders* GetResponseHeaders() const { | |
96 return NULL; | |
97 } | |
98 }; | |
99 | |
100 // An HttpBridge that doesn't actually make network requests and just calls | 91 // An HttpBridge that doesn't actually make network requests and just calls |
101 // back with dummy response info. | 92 // back with dummy response info. |
102 class ShuntedHttpBridge : public HttpBridge { | 93 class ShuntedHttpBridge : public HttpBridge { |
103 public: | 94 public: |
104 // If |never_finishes| is true, the simulated request never actually | 95 // If |never_finishes| is true, the simulated request never actually |
105 // returns. | 96 // returns. |
106 ShuntedHttpBridge(net::URLRequestContextGetter* baseline_context_getter, | 97 ShuntedHttpBridge(net::URLRequestContextGetter* baseline_context_getter, |
107 HttpBridgeTest* test, bool never_finishes) | 98 HttpBridgeTest* test, bool never_finishes) |
108 : HttpBridge(new HttpBridge::RequestContextGetter( | 99 : HttpBridge(new HttpBridge::RequestContextGetter( |
109 baseline_context_getter)), | 100 baseline_context_getter)), |
(...skipping 11 matching lines...) Expand all Loading... |
121 } | 112 } |
122 private: | 113 private: |
123 ~ShuntedHttpBridge() {} | 114 ~ShuntedHttpBridge() {} |
124 | 115 |
125 void CallOnURLFetchComplete() { | 116 void CallOnURLFetchComplete() { |
126 ASSERT_TRUE(MessageLoop::current() == test_->io_thread_loop()); | 117 ASSERT_TRUE(MessageLoop::current() == test_->io_thread_loop()); |
127 // We return no cookies and a dummy content response. | 118 // We return no cookies and a dummy content response. |
128 net::ResponseCookies cookies; | 119 net::ResponseCookies cookies; |
129 | 120 |
130 std::string response_content = "success!"; | 121 std::string response_content = "success!"; |
131 DummyURLFetcher fetcher; | 122 TestURLFetcher fetcher(0, GURL(), NULL); |
132 fetcher.set_url(GURL("www.google.com")); | 123 fetcher.set_url(GURL("www.google.com")); |
133 fetcher.set_response_code(200); | 124 fetcher.set_response_code(200); |
134 fetcher.set_cookies(cookies); | 125 fetcher.set_cookies(cookies); |
135 fetcher.SetResponseString(response_content); | 126 fetcher.SetResponseString(response_content); |
136 OnURLFetchComplete(&fetcher); | 127 OnURLFetchComplete(&fetcher); |
137 } | 128 } |
138 HttpBridgeTest* test_; | 129 HttpBridgeTest* test_; |
139 bool never_finishes_; | 130 bool never_finishes_; |
140 }; | 131 }; |
141 | 132 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
303 http_bridge->SetPostPayload("text/plain", 2, " "); | 294 http_bridge->SetPostPayload("text/plain", 2, " "); |
304 | 295 |
305 int os_error = 0; | 296 int os_error = 0; |
306 int response_code = 0; | 297 int response_code = 0; |
307 | 298 |
308 bool success = http_bridge->MakeSynchronousPost(&os_error, &response_code); | 299 bool success = http_bridge->MakeSynchronousPost(&os_error, &response_code); |
309 ASSERT_TRUE(success); | 300 ASSERT_TRUE(success); |
310 http_bridge->Abort(); | 301 http_bridge->Abort(); |
311 // Ensures no double-free of URLFetcher, etc. | 302 // Ensures no double-free of URLFetcher, etc. |
312 } | 303 } |
OLD | NEW |