Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(155)

Side by Side Diff: webrtc/base/autodetectproxy_unittest.cc

Issue 2541453002: Delete unused classes AutoDetectProxy and SslSocketFactory. (Closed)
Patch Set: Rebased. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/base/autodetectproxy.cc ('k') | webrtc/base/proxy_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #include "webrtc/base/autodetectproxy.h"
12 #include "webrtc/base/gunit.h"
13 #include "webrtc/base/httpcommon.h"
14 #include "webrtc/base/httpcommon-inl.h"
15
16 namespace rtc {
17
18 static const char kUserAgent[] = "";
19 static const char kPath[] = "/";
20 static const char kHost[] = "relay.google.com";
21 static const uint16_t kPort = 443;
22 static const bool kSecure = true;
23 // At most, AutoDetectProxy should take ~6 seconds. Each connect step is
24 // allotted 2 seconds, with the initial resolution + connect given an
25 // extra 2 seconds. The slowest case is:
26 // 1) Resolution + HTTPS takes full 4 seconds and fails (but resolution
27 // succeeds).
28 // 2) SOCKS5 takes the full 2 seconds.
29 // Socket creation time seems unbounded, and has been observed to take >1 second
30 // on a linux machine under load. As such, we allow for 10 seconds for timeout,
31 // though could still end up with some flakiness.
32 static const int kTimeoutMs = 10000;
33
34 class AutoDetectProxyTest : public testing::Test, public sigslot::has_slots<> {
35 public:
36 AutoDetectProxyTest() : auto_detect_proxy_(NULL), done_(false) {}
37
38 protected:
39 bool Create(const std::string& user_agent,
40 const std::string& path,
41 const std::string& host,
42 uint16_t port,
43 bool secure,
44 bool startnow) {
45 auto_detect_proxy_ = new AutoDetectProxy(user_agent);
46 EXPECT_TRUE(auto_detect_proxy_ != NULL);
47 if (!auto_detect_proxy_) {
48 return false;
49 }
50 Url<char> host_url(path, host, port);
51 host_url.set_secure(secure);
52 auto_detect_proxy_->set_server_url(host_url.url());
53 auto_detect_proxy_->SignalWorkDone.connect(
54 this,
55 &AutoDetectProxyTest::OnWorkDone);
56 if (startnow) {
57 auto_detect_proxy_->Start();
58 }
59 return true;
60 }
61
62 bool Run(int timeout_ms) {
63 EXPECT_TRUE_WAIT(done_, timeout_ms);
64 return done_;
65 }
66
67 void SetProxy(const SocketAddress& proxy) {
68 auto_detect_proxy_->set_proxy(proxy);
69 }
70
71 void Start() {
72 auto_detect_proxy_->Start();
73 }
74
75 void TestCopesWithProxy(const SocketAddress& proxy) {
76 // Tests that at least autodetect doesn't crash for a given proxy address.
77 ASSERT_TRUE(Create(kUserAgent,
78 kPath,
79 kHost,
80 kPort,
81 kSecure,
82 false));
83 SetProxy(proxy);
84 Start();
85 ASSERT_TRUE(Run(kTimeoutMs));
86 }
87
88 private:
89 void OnWorkDone(rtc::SignalThread *thread) {
90 AutoDetectProxy *auto_detect_proxy =
91 static_cast<rtc::AutoDetectProxy *>(thread);
92 EXPECT_TRUE(auto_detect_proxy == auto_detect_proxy_);
93 auto_detect_proxy_ = NULL;
94 auto_detect_proxy->Release();
95 done_ = true;
96 }
97
98 AutoDetectProxy *auto_detect_proxy_;
99 bool done_;
100 };
101
102 TEST_F(AutoDetectProxyTest, TestDetectUnresolvedProxy) {
103 TestCopesWithProxy(rtc::SocketAddress("localhost", 9999));
104 }
105
106 TEST_F(AutoDetectProxyTest, TestDetectUnresolvableProxy) {
107 TestCopesWithProxy(rtc::SocketAddress("invalid", 9999));
108 }
109
110 TEST_F(AutoDetectProxyTest, TestDetectIPv6Proxy) {
111 TestCopesWithProxy(rtc::SocketAddress("::1", 9999));
112 }
113
114 TEST_F(AutoDetectProxyTest, TestDetectIPv4Proxy) {
115 TestCopesWithProxy(rtc::SocketAddress("127.0.0.1", 9999));
116 }
117
118 // Test that proxy detection completes successfully. (Does not actually verify
119 // the correct detection result since we don't know what proxy to expect on an
120 // arbitrary machine.)
121 TEST_F(AutoDetectProxyTest, TestProxyDetection) {
122 ASSERT_TRUE(Create(kUserAgent,
123 kPath,
124 kHost,
125 kPort,
126 kSecure,
127 true));
128 ASSERT_TRUE(Run(kTimeoutMs));
129 }
130
131 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/autodetectproxy.cc ('k') | webrtc/base/proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698