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 "net/proxy/proxy_service.h" | 5 #include "net/proxy/proxy_service.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 void NotifyFetchCompletion(int result, const std::string& ascii_text) { | 91 void NotifyFetchCompletion(int result, const std::string& ascii_text) { |
92 DCHECK(has_pending_request()); | 92 DCHECK(has_pending_request()); |
93 *pending_request_text_ = ASCIIToUTF16(ascii_text); | 93 *pending_request_text_ = ASCIIToUTF16(ascii_text); |
94 CompletionCallback* callback = pending_request_callback_; | 94 CompletionCallback* callback = pending_request_callback_; |
95 pending_request_callback_ = NULL; | 95 pending_request_callback_ = NULL; |
96 callback->Run(result); | 96 callback->Run(result); |
97 } | 97 } |
98 | 98 |
99 virtual void Cancel() {} | 99 virtual void Cancel() {} |
100 | 100 |
101 virtual net::URLRequestContext* GetRequestContext() { return NULL; } | 101 virtual URLRequestContext* GetRequestContext() { return NULL; } |
102 | 102 |
103 const GURL& pending_request_url() const { | 103 const GURL& pending_request_url() const { |
104 return pending_request_url_; | 104 return pending_request_url_; |
105 } | 105 } |
106 | 106 |
107 bool has_pending_request() const { | 107 bool has_pending_request() const { |
108 return pending_request_callback_ != NULL; | 108 return pending_request_callback_ != NULL; |
109 } | 109 } |
110 | 110 |
111 private: | 111 private: |
(...skipping 13 matching lines...) Expand all Loading... |
125 ProxyInfo info; | 125 ProxyInfo info; |
126 TestCompletionCallback callback; | 126 TestCompletionCallback callback; |
127 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); | 127 CapturingBoundNetLog log(CapturingNetLog::kUnbounded); |
128 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); | 128 int rv = service->ResolveProxy(url, &info, &callback, NULL, log.bound()); |
129 EXPECT_EQ(OK, rv); | 129 EXPECT_EQ(OK, rv); |
130 EXPECT_TRUE(resolver->pending_requests().empty()); | 130 EXPECT_TRUE(resolver->pending_requests().empty()); |
131 | 131 |
132 EXPECT_TRUE(info.is_direct()); | 132 EXPECT_TRUE(info.is_direct()); |
133 | 133 |
134 // Check the NetLog was filled correctly. | 134 // Check the NetLog was filled correctly. |
135 net::CapturingNetLog::EntryList entries; | 135 CapturingNetLog::EntryList entries; |
136 log.GetEntries(&entries); | 136 log.GetEntries(&entries); |
137 | 137 |
138 EXPECT_EQ(3u, entries.size()); | 138 EXPECT_EQ(3u, entries.size()); |
139 EXPECT_TRUE(LogContainsBeginEvent( | 139 EXPECT_TRUE(LogContainsBeginEvent( |
140 entries, 0, NetLog::TYPE_PROXY_SERVICE)); | 140 entries, 0, NetLog::TYPE_PROXY_SERVICE)); |
141 EXPECT_TRUE(LogContainsEvent( | 141 EXPECT_TRUE(LogContainsEvent( |
142 entries, 1, NetLog::TYPE_PROXY_SERVICE_RESOLVED_PROXY_LIST, | 142 entries, 1, NetLog::TYPE_PROXY_SERVICE_RESOLVED_PROXY_LIST, |
143 NetLog::PHASE_NONE)); | 143 NetLog::PHASE_NONE)); |
144 EXPECT_TRUE(LogContainsEndEvent( | 144 EXPECT_TRUE(LogContainsEndEvent( |
145 entries, 2, NetLog::TYPE_PROXY_SERVICE)); | 145 entries, 2, NetLog::TYPE_PROXY_SERVICE)); |
(...skipping 26 matching lines...) Expand all Loading... |
172 | 172 |
173 // Set the result in proxy resolver. | 173 // Set the result in proxy resolver. |
174 resolver->pending_requests()[0]->results()->UseNamedProxy("foopy"); | 174 resolver->pending_requests()[0]->results()->UseNamedProxy("foopy"); |
175 resolver->pending_requests()[0]->CompleteNow(OK); | 175 resolver->pending_requests()[0]->CompleteNow(OK); |
176 | 176 |
177 EXPECT_EQ(OK, callback.WaitForResult()); | 177 EXPECT_EQ(OK, callback.WaitForResult()); |
178 EXPECT_FALSE(info.is_direct()); | 178 EXPECT_FALSE(info.is_direct()); |
179 EXPECT_EQ("foopy:80", info.proxy_server().ToURI()); | 179 EXPECT_EQ("foopy:80", info.proxy_server().ToURI()); |
180 | 180 |
181 // Check the NetLog was filled correctly. | 181 // Check the NetLog was filled correctly. |
182 net::CapturingNetLog::EntryList entries; | 182 CapturingNetLog::EntryList entries; |
183 log.GetEntries(&entries); | 183 log.GetEntries(&entries); |
184 | 184 |
185 EXPECT_EQ(5u, entries.size()); | 185 EXPECT_EQ(5u, entries.size()); |
186 EXPECT_TRUE(LogContainsBeginEvent( | 186 EXPECT_TRUE(LogContainsBeginEvent( |
187 entries, 0, NetLog::TYPE_PROXY_SERVICE)); | 187 entries, 0, NetLog::TYPE_PROXY_SERVICE)); |
188 EXPECT_TRUE(LogContainsBeginEvent( | 188 EXPECT_TRUE(LogContainsBeginEvent( |
189 entries, 1, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); | 189 entries, 1, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); |
190 EXPECT_TRUE(LogContainsEndEvent( | 190 EXPECT_TRUE(LogContainsEndEvent( |
191 entries, 2, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); | 191 entries, 2, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); |
192 EXPECT_TRUE(LogContainsEndEvent( | 192 EXPECT_TRUE(LogContainsEndEvent( |
(...skipping 957 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1150 resolver->pending_requests()[0]->CompleteNow(OK); | 1150 resolver->pending_requests()[0]->CompleteNow(OK); |
1151 | 1151 |
1152 EXPECT_EQ(OK, callback3.WaitForResult()); | 1152 EXPECT_EQ(OK, callback3.WaitForResult()); |
1153 EXPECT_EQ("request3:80", info3.proxy_server().ToURI()); | 1153 EXPECT_EQ("request3:80", info3.proxy_server().ToURI()); |
1154 | 1154 |
1155 EXPECT_TRUE(resolver->cancelled_requests().empty()); | 1155 EXPECT_TRUE(resolver->cancelled_requests().empty()); |
1156 | 1156 |
1157 EXPECT_FALSE(callback1.have_result()); // Cancelled. | 1157 EXPECT_FALSE(callback1.have_result()); // Cancelled. |
1158 EXPECT_FALSE(callback2.have_result()); // Cancelled. | 1158 EXPECT_FALSE(callback2.have_result()); // Cancelled. |
1159 | 1159 |
1160 net::CapturingNetLog::EntryList entries1; | 1160 CapturingNetLog::EntryList entries1; |
1161 log1.GetEntries(&entries1); | 1161 log1.GetEntries(&entries1); |
1162 | 1162 |
1163 // Check the NetLog for request 1 (which was cancelled) got filled properly. | 1163 // Check the NetLog for request 1 (which was cancelled) got filled properly. |
1164 EXPECT_EQ(4u, entries1.size()); | 1164 EXPECT_EQ(4u, entries1.size()); |
1165 EXPECT_TRUE(LogContainsBeginEvent( | 1165 EXPECT_TRUE(LogContainsBeginEvent( |
1166 entries1, 0, NetLog::TYPE_PROXY_SERVICE)); | 1166 entries1, 0, NetLog::TYPE_PROXY_SERVICE)); |
1167 EXPECT_TRUE(LogContainsBeginEvent( | 1167 EXPECT_TRUE(LogContainsBeginEvent( |
1168 entries1, 1, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); | 1168 entries1, 1, NetLog::TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC)); |
1169 // Note that TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC is never completed before | 1169 // Note that TYPE_PROXY_SERVICE_WAITING_FOR_INIT_PAC is never completed before |
1170 // the cancellation occured. | 1170 // the cancellation occured. |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1683 resolver->pending_requests()[0]->CompleteNow(OK); | 1683 resolver->pending_requests()[0]->CompleteNow(OK); |
1684 | 1684 |
1685 // Wait for completion callback, and verify that the request ran as expected. | 1685 // Wait for completion callback, and verify that the request ran as expected. |
1686 EXPECT_EQ(OK, callback2.WaitForResult()); | 1686 EXPECT_EQ(OK, callback2.WaitForResult()); |
1687 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); | 1687 EXPECT_EQ("request2:80", info2.proxy_server().ToURI()); |
1688 | 1688 |
1689 // Check that the expected events were outputted to the log stream. | 1689 // Check that the expected events were outputted to the log stream. |
1690 // In particular, PROXY_CONFIG_CHANGED should have only been emitted once | 1690 // In particular, PROXY_CONFIG_CHANGED should have only been emitted once |
1691 // (for the initial setup), and NOT a second time when the IP address | 1691 // (for the initial setup), and NOT a second time when the IP address |
1692 // changed. | 1692 // changed. |
1693 net::CapturingNetLog::EntryList entries; | 1693 CapturingNetLog::EntryList entries; |
1694 log.GetEntries(&entries); | 1694 log.GetEntries(&entries); |
1695 | 1695 |
1696 EXPECT_TRUE(LogContainsEntryWithType(entries, 0, | 1696 EXPECT_TRUE(LogContainsEntryWithType(entries, 0, |
1697 NetLog::TYPE_PROXY_CONFIG_CHANGED)); | 1697 NetLog::TYPE_PROXY_CONFIG_CHANGED)); |
1698 ASSERT_EQ(13u, entries.size()); | 1698 ASSERT_EQ(13u, entries.size()); |
1699 for (size_t i = 1; i < entries.size(); ++i) | 1699 for (size_t i = 1; i < entries.size(); ++i) |
1700 EXPECT_NE(NetLog::TYPE_PROXY_CONFIG_CHANGED, entries[i].type); | 1700 EXPECT_NE(NetLog::TYPE_PROXY_CONFIG_CHANGED, entries[i].type); |
1701 } | 1701 } |
1702 | 1702 |
1703 } // namespace net | 1703 } // namespace net |
OLD | NEW |