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/net/pref_proxy_config_tracker_impl.h" | 5 #include "components/proxy_config/pref_proxy_config_tracker_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
11 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
12 #include "base/prefs/pref_registry_simple.h" | 12 #include "base/prefs/pref_registry_simple.h" |
13 #include "base/prefs/testing_pref_service.h" | 13 #include "base/prefs/testing_pref_service.h" |
14 #include "base/test/histogram_tester.h" | 14 #include "base/test/histogram_tester.h" |
| 15 #include "base/thread_task_runner_handle.h" |
15 #include "chrome/browser/prefs/pref_service_mock_factory.h" | 16 #include "chrome/browser/prefs/pref_service_mock_factory.h" |
16 #include "chrome/common/chrome_switches.h" | 17 #include "chrome/common/chrome_switches.h" |
17 #include "chrome/common/pref_names.h" | |
18 #include "components/proxy_config/proxy_config_dictionary.h" | 18 #include "components/proxy_config/proxy_config_dictionary.h" |
19 #include "content/public/test/test_browser_thread.h" | 19 #include "components/proxy_config/proxy_config_pref_names.h" |
20 #include "net/proxy/proxy_config_service_common_unittest.h" | 20 #include "net/proxy/proxy_config_service_common_unittest.h" |
21 #include "net/proxy/proxy_info.h" | 21 #include "net/proxy/proxy_info.h" |
22 #include "net/proxy/proxy_list.h" | 22 #include "net/proxy/proxy_list.h" |
23 #include "testing/gmock/include/gmock/gmock.h" | 23 #include "testing/gmock/include/gmock/gmock.h" |
24 #include "testing/gtest/include/gtest/gtest.h" | 24 #include "testing/gtest/include/gtest/gtest.h" |
25 | 25 |
26 using content::BrowserThread; | |
27 using testing::_; | 26 using testing::_; |
28 using testing::Mock; | 27 using testing::Mock; |
29 | 28 |
30 namespace { | 29 namespace { |
31 | 30 |
32 const char kFixedPacUrl[] = "http://chromium.org/fixed_pac_url"; | 31 const char kFixedPacUrl[] = "http://chromium.org/fixed_pac_url"; |
33 | 32 |
34 // Testing proxy config service that allows us to fire notifications at will. | 33 // Testing proxy config service that allows us to fire notifications at will. |
35 class TestProxyConfigService : public net::ProxyConfigService { | 34 class TestProxyConfigService : public net::ProxyConfigService { |
36 public: | 35 public: |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
71 class MockObserver : public net::ProxyConfigService::Observer { | 70 class MockObserver : public net::ProxyConfigService::Observer { |
72 public: | 71 public: |
73 MOCK_METHOD2(OnProxyConfigChanged, | 72 MOCK_METHOD2(OnProxyConfigChanged, |
74 void(const net::ProxyConfig&, | 73 void(const net::ProxyConfig&, |
75 net::ProxyConfigService::ConfigAvailability)); | 74 net::ProxyConfigService::ConfigAvailability)); |
76 }; | 75 }; |
77 | 76 |
78 template<typename TESTBASE> | 77 template<typename TESTBASE> |
79 class PrefProxyConfigTrackerImplTestBase : public TESTBASE { | 78 class PrefProxyConfigTrackerImplTestBase : public TESTBASE { |
80 protected: | 79 protected: |
81 PrefProxyConfigTrackerImplTestBase() | 80 PrefProxyConfigTrackerImplTestBase() {} |
82 : ui_thread_(BrowserThread::UI, &loop_), | |
83 io_thread_(BrowserThread::IO, &loop_) {} | |
84 | 81 |
85 virtual void Init(PrefService* pref_service, PrefRegistrySimple* registry) { | 82 virtual void Init(PrefService* pref_service, PrefRegistrySimple* registry) { |
86 ASSERT_TRUE(pref_service); | 83 ASSERT_TRUE(pref_service); |
87 PrefProxyConfigTrackerImpl::RegisterPrefs(registry); | 84 PrefProxyConfigTrackerImpl::RegisterPrefs(registry); |
88 fixed_config_.set_pac_url(GURL(kFixedPacUrl)); | 85 fixed_config_.set_pac_url(GURL(kFixedPacUrl)); |
89 delegate_service_ = | 86 delegate_service_ = |
90 new TestProxyConfigService(fixed_config_, | 87 new TestProxyConfigService(fixed_config_, |
91 net::ProxyConfigService::CONFIG_VALID); | 88 net::ProxyConfigService::CONFIG_VALID); |
92 proxy_config_tracker_.reset(new PrefProxyConfigTrackerImpl(pref_service)); | 89 proxy_config_tracker_.reset(new PrefProxyConfigTrackerImpl( |
| 90 pref_service, base::ThreadTaskRunnerHandle::Get())); |
93 proxy_config_service_ = | 91 proxy_config_service_ = |
94 proxy_config_tracker_->CreateTrackingProxyConfigService( | 92 proxy_config_tracker_->CreateTrackingProxyConfigService( |
95 scoped_ptr<net::ProxyConfigService>(delegate_service_)); | 93 scoped_ptr<net::ProxyConfigService>(delegate_service_)); |
96 // SetChromeProxyConfigService triggers update of initial prefs proxy | 94 // SetProxyConfigServiceImpl triggers update of initial prefs proxy |
97 // config by tracker to chrome proxy config service, so flush all pending | 95 // config by tracker to chrome proxy config service, so flush all pending |
98 // tasks so that tests start fresh. | 96 // tasks so that tests start fresh. |
99 loop_.RunUntilIdle(); | 97 loop_.RunUntilIdle(); |
100 } | 98 } |
101 | 99 |
102 virtual void TearDown() { | 100 virtual void TearDown() { |
103 proxy_config_tracker_->DetachFromPrefService(); | 101 proxy_config_tracker_->DetachFromPrefService(); |
104 loop_.RunUntilIdle(); | 102 loop_.RunUntilIdle(); |
105 proxy_config_tracker_.reset(); | 103 proxy_config_tracker_.reset(); |
106 proxy_config_service_.reset(); | 104 proxy_config_service_.reset(); |
107 } | 105 } |
108 | 106 |
109 base::MessageLoop loop_; | 107 base::MessageLoop loop_; |
110 TestProxyConfigService* delegate_service_; // weak | 108 TestProxyConfigService* delegate_service_; // weak |
111 scoped_ptr<net::ProxyConfigService> proxy_config_service_; | 109 scoped_ptr<net::ProxyConfigService> proxy_config_service_; |
112 net::ProxyConfig fixed_config_; | 110 net::ProxyConfig fixed_config_; |
113 | 111 |
114 private: | 112 private: |
115 scoped_ptr<PrefProxyConfigTrackerImpl> proxy_config_tracker_; | 113 scoped_ptr<PrefProxyConfigTrackerImpl> proxy_config_tracker_; |
116 content::TestBrowserThread ui_thread_; | |
117 content::TestBrowserThread io_thread_; | |
118 }; | 114 }; |
119 | 115 |
120 class PrefProxyConfigTrackerImplTest | 116 class PrefProxyConfigTrackerImplTest |
121 : public PrefProxyConfigTrackerImplTestBase<testing::Test> { | 117 : public PrefProxyConfigTrackerImplTestBase<testing::Test> { |
122 protected: | 118 protected: |
123 void SetUp() override { | 119 void SetUp() override { |
124 pref_service_.reset(new TestingPrefServiceSimple()); | 120 pref_service_.reset(new TestingPrefServiceSimple()); |
125 Init(pref_service_.get(), pref_service_->registry()); | 121 Init(pref_service_.get(), pref_service_->registry()); |
126 } | 122 } |
127 | 123 |
128 scoped_ptr<TestingPrefServiceSimple> pref_service_; | 124 scoped_ptr<TestingPrefServiceSimple> pref_service_; |
129 }; | 125 }; |
130 | 126 |
131 TEST_F(PrefProxyConfigTrackerImplTest, BaseConfiguration) { | 127 TEST_F(PrefProxyConfigTrackerImplTest, BaseConfiguration) { |
132 net::ProxyConfig actual_config; | 128 net::ProxyConfig actual_config; |
133 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, | 129 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, |
134 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 130 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
135 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); | 131 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); |
136 } | 132 } |
137 | 133 |
138 TEST_F(PrefProxyConfigTrackerImplTest, DynamicPrefOverrides) { | 134 TEST_F(PrefProxyConfigTrackerImplTest, DynamicPrefOverrides) { |
139 pref_service_->SetManagedPref(prefs::kProxy, | 135 pref_service_->SetManagedPref(ProxyPrefs::prefs::kProxy, |
140 ProxyConfigDictionary::CreateFixedServers( | 136 ProxyConfigDictionary::CreateFixedServers( |
141 "http://example.com:3128", std::string())); | 137 "http://example.com:3128", std::string())); |
142 loop_.RunUntilIdle(); | 138 loop_.RunUntilIdle(); |
143 | 139 |
144 net::ProxyConfig actual_config; | 140 net::ProxyConfig actual_config; |
145 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, | 141 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, |
146 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 142 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
147 EXPECT_FALSE(actual_config.auto_detect()); | 143 EXPECT_FALSE(actual_config.auto_detect()); |
148 EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY, | 144 EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY, |
149 actual_config.proxy_rules().type); | 145 actual_config.proxy_rules().type); |
150 EXPECT_EQ(actual_config.proxy_rules().single_proxies.Get(), | 146 EXPECT_EQ(actual_config.proxy_rules().single_proxies.Get(), |
151 net::ProxyServer::FromURI("http://example.com:3128", | 147 net::ProxyServer::FromURI("http://example.com:3128", |
152 net::ProxyServer::SCHEME_HTTP)); | 148 net::ProxyServer::SCHEME_HTTP)); |
153 | 149 |
154 pref_service_->SetManagedPref(prefs::kProxy, | 150 pref_service_->SetManagedPref(ProxyPrefs::prefs::kProxy, |
155 ProxyConfigDictionary::CreateAutoDetect()); | 151 ProxyConfigDictionary::CreateAutoDetect()); |
156 loop_.RunUntilIdle(); | 152 loop_.RunUntilIdle(); |
157 | 153 |
158 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, | 154 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, |
159 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 155 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
160 EXPECT_TRUE(actual_config.auto_detect()); | 156 EXPECT_TRUE(actual_config.auto_detect()); |
161 } | 157 } |
162 | 158 |
163 // Compares proxy configurations, but allows different identifiers. | 159 // Compares proxy configurations, but allows different identifiers. |
164 MATCHER_P(ProxyConfigMatches, config, "") { | 160 MATCHER_P(ProxyConfigMatches, config, "") { |
(...skipping 17 matching lines...) Expand all Loading... |
182 loop_.RunUntilIdle(); | 178 loop_.RunUntilIdle(); |
183 Mock::VerifyAndClearExpectations(&observer); | 179 Mock::VerifyAndClearExpectations(&observer); |
184 | 180 |
185 // Override configuration, this should trigger a notification. | 181 // Override configuration, this should trigger a notification. |
186 net::ProxyConfig pref_config; | 182 net::ProxyConfig pref_config; |
187 pref_config.set_pac_url(GURL(kFixedPacUrl)); | 183 pref_config.set_pac_url(GURL(kFixedPacUrl)); |
188 | 184 |
189 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(pref_config), | 185 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(pref_config), |
190 CONFIG_VALID)).Times(1); | 186 CONFIG_VALID)).Times(1); |
191 pref_service_->SetManagedPref( | 187 pref_service_->SetManagedPref( |
192 prefs::kProxy, | 188 ProxyPrefs::prefs::kProxy, |
193 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); | 189 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); |
194 loop_.RunUntilIdle(); | 190 loop_.RunUntilIdle(); |
195 Mock::VerifyAndClearExpectations(&observer); | 191 Mock::VerifyAndClearExpectations(&observer); |
196 | 192 |
197 // Since there are pref overrides, delegate changes should be ignored. | 193 // Since there are pref overrides, delegate changes should be ignored. |
198 net::ProxyConfig config3; | 194 net::ProxyConfig config3; |
199 config3.proxy_rules().ParseFromString("http=config3:80"); | 195 config3.proxy_rules().ParseFromString("http=config3:80"); |
200 EXPECT_CALL(observer, OnProxyConfigChanged(_, _)).Times(0); | 196 EXPECT_CALL(observer, OnProxyConfigChanged(_, _)).Times(0); |
201 fixed_config_.set_auto_detect(true); | 197 fixed_config_.set_auto_detect(true); |
202 delegate_service_->SetProxyConfig(config3, CONFIG_VALID); | 198 delegate_service_->SetProxyConfig(config3, CONFIG_VALID); |
203 loop_.RunUntilIdle(); | 199 loop_.RunUntilIdle(); |
204 Mock::VerifyAndClearExpectations(&observer); | 200 Mock::VerifyAndClearExpectations(&observer); |
205 | 201 |
206 // Clear the override should switch back to the fixed configuration. | 202 // Clear the override should switch back to the fixed configuration. |
207 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config3), | 203 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config3), |
208 CONFIG_VALID)).Times(1); | 204 CONFIG_VALID)).Times(1); |
209 pref_service_->RemoveManagedPref(prefs::kProxy); | 205 pref_service_->RemoveManagedPref(ProxyPrefs::prefs::kProxy); |
210 loop_.RunUntilIdle(); | 206 loop_.RunUntilIdle(); |
211 Mock::VerifyAndClearExpectations(&observer); | 207 Mock::VerifyAndClearExpectations(&observer); |
212 | 208 |
213 // Delegate service notifications should show up again. | 209 // Delegate service notifications should show up again. |
214 net::ProxyConfig config4; | 210 net::ProxyConfig config4; |
215 config4.proxy_rules().ParseFromString("socks:config4"); | 211 config4.proxy_rules().ParseFromString("socks:config4"); |
216 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config4), | 212 EXPECT_CALL(observer, OnProxyConfigChanged(ProxyConfigMatches(config4), |
217 CONFIG_VALID)).Times(1); | 213 CONFIG_VALID)).Times(1); |
218 delegate_service_->SetProxyConfig(config4, CONFIG_VALID); | 214 delegate_service_->SetProxyConfig(config4, CONFIG_VALID); |
219 loop_.RunUntilIdle(); | 215 loop_.RunUntilIdle(); |
(...skipping 13 matching lines...) Expand all Loading... |
233 | 229 |
234 // Prepare test data. | 230 // Prepare test data. |
235 net::ProxyConfig recommended_config = net::ProxyConfig::CreateAutoDetect(); | 231 net::ProxyConfig recommended_config = net::ProxyConfig::CreateAutoDetect(); |
236 net::ProxyConfig user_config = | 232 net::ProxyConfig user_config = |
237 net::ProxyConfig::CreateFromCustomPacURL(GURL(kFixedPacUrl)); | 233 net::ProxyConfig::CreateFromCustomPacURL(GURL(kFixedPacUrl)); |
238 | 234 |
239 // Set a recommended pref. | 235 // Set a recommended pref. |
240 EXPECT_CALL(observer, | 236 EXPECT_CALL(observer, |
241 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), | 237 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), |
242 CONFIG_VALID)).Times(1); | 238 CONFIG_VALID)).Times(1); |
243 pref_service_->SetRecommendedPref( | 239 pref_service_->SetRecommendedPref(ProxyPrefs::prefs::kProxy, |
244 prefs::kProxy, | 240 ProxyConfigDictionary::CreateAutoDetect()); |
245 ProxyConfigDictionary::CreateAutoDetect()); | |
246 loop_.RunUntilIdle(); | 241 loop_.RunUntilIdle(); |
247 Mock::VerifyAndClearExpectations(&observer); | 242 Mock::VerifyAndClearExpectations(&observer); |
248 EXPECT_EQ(CONFIG_VALID, | 243 EXPECT_EQ(CONFIG_VALID, |
249 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 244 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
250 EXPECT_TRUE(actual_config.Equals(recommended_config)); | 245 EXPECT_TRUE(actual_config.Equals(recommended_config)); |
251 | 246 |
252 // Override in user prefs. | 247 // Override in user prefs. |
253 EXPECT_CALL(observer, | 248 EXPECT_CALL(observer, |
254 OnProxyConfigChanged(ProxyConfigMatches(user_config), | 249 OnProxyConfigChanged(ProxyConfigMatches(user_config), |
255 CONFIG_VALID)).Times(1); | 250 CONFIG_VALID)).Times(1); |
256 pref_service_->SetManagedPref( | 251 pref_service_->SetManagedPref( |
257 prefs::kProxy, | 252 ProxyPrefs::prefs::kProxy, |
258 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); | 253 ProxyConfigDictionary::CreatePacScript(kFixedPacUrl, false)); |
259 loop_.RunUntilIdle(); | 254 loop_.RunUntilIdle(); |
260 Mock::VerifyAndClearExpectations(&observer); | 255 Mock::VerifyAndClearExpectations(&observer); |
261 EXPECT_EQ(CONFIG_VALID, | 256 EXPECT_EQ(CONFIG_VALID, |
262 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 257 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
263 EXPECT_TRUE(actual_config.Equals(user_config)); | 258 EXPECT_TRUE(actual_config.Equals(user_config)); |
264 | 259 |
265 // Go back to recommended pref. | 260 // Go back to recommended pref. |
266 EXPECT_CALL(observer, | 261 EXPECT_CALL(observer, |
267 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), | 262 OnProxyConfigChanged(ProxyConfigMatches(recommended_config), |
268 CONFIG_VALID)).Times(1); | 263 CONFIG_VALID)).Times(1); |
269 pref_service_->RemoveManagedPref(prefs::kProxy); | 264 pref_service_->RemoveManagedPref(ProxyPrefs::prefs::kProxy); |
270 loop_.RunUntilIdle(); | 265 loop_.RunUntilIdle(); |
271 Mock::VerifyAndClearExpectations(&observer); | 266 Mock::VerifyAndClearExpectations(&observer); |
272 EXPECT_EQ(CONFIG_VALID, | 267 EXPECT_EQ(CONFIG_VALID, |
273 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 268 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
274 EXPECT_TRUE(actual_config.Equals(recommended_config)); | 269 EXPECT_TRUE(actual_config.Equals(recommended_config)); |
275 | 270 |
276 proxy_config_service_->RemoveObserver(&observer); | 271 proxy_config_service_->RemoveObserver(&observer); |
277 } | 272 } |
278 | 273 |
279 TEST_F(PrefProxyConfigTrackerImplTest, ExplicitSystemSettings) { | 274 TEST_F(PrefProxyConfigTrackerImplTest, ExplicitSystemSettings) { |
280 pref_service_->SetRecommendedPref( | 275 pref_service_->SetRecommendedPref(ProxyPrefs::prefs::kProxy, |
281 prefs::kProxy, | 276 ProxyConfigDictionary::CreateAutoDetect()); |
282 ProxyConfigDictionary::CreateAutoDetect()); | 277 pref_service_->SetUserPref(ProxyPrefs::prefs::kProxy, |
283 pref_service_->SetUserPref( | 278 ProxyConfigDictionary::CreateSystem()); |
284 prefs::kProxy, | |
285 ProxyConfigDictionary::CreateSystem()); | |
286 loop_.RunUntilIdle(); | 279 loop_.RunUntilIdle(); |
287 | 280 |
288 // Test if we actually use the system setting, which is |kFixedPacUrl|. | 281 // Test if we actually use the system setting, which is |kFixedPacUrl|. |
289 net::ProxyConfig actual_config; | 282 net::ProxyConfig actual_config; |
290 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, | 283 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, |
291 proxy_config_service_->GetLatestProxyConfig(&actual_config)); | 284 proxy_config_service_->GetLatestProxyConfig(&actual_config)); |
292 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); | 285 EXPECT_EQ(GURL(kFixedPacUrl), actual_config.pac_url()); |
293 } | 286 } |
294 | 287 |
295 void CheckResolvedProxyMatches(net::ProxyConfig* config, | 288 void CheckResolvedProxyMatches(net::ProxyConfig* config, |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 {"direct://", | 349 {"direct://", |
357 "direct://", | 350 "direct://", |
358 "direct://", | 351 "direct://", |
359 "direct://", | 352 "direct://", |
360 0}, | 353 0}, |
361 }; | 354 }; |
362 | 355 |
363 // Test setting the proxy from a user pref. | 356 // Test setting the proxy from a user pref. |
364 for (const auto& test : test_cases) { | 357 for (const auto& test : test_cases) { |
365 base::HistogramTester histogram_tester; | 358 base::HistogramTester histogram_tester; |
366 pref_service_->SetUserPref(prefs::kProxy, | 359 pref_service_->SetUserPref(ProxyPrefs::prefs::kProxy, |
367 ProxyConfigDictionary::CreateFixedServers( | 360 ProxyConfigDictionary::CreateFixedServers( |
368 test.initial_proxy_rules, std::string())); | 361 test.initial_proxy_rules, std::string())); |
369 loop_.RunUntilIdle(); | 362 loop_.RunUntilIdle(); |
370 | 363 |
371 net::ProxyConfig config; | 364 net::ProxyConfig config; |
372 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, | 365 EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID, |
373 proxy_config_service_->GetLatestProxyConfig(&config)); | 366 proxy_config_service_->GetLatestProxyConfig(&config)); |
374 histogram_tester.ExpectUniqueSample( | 367 histogram_tester.ExpectUniqueSample( |
375 "Net.PrefProxyConfig.GooglezipProxyRemovalCount", | 368 "Net.PrefProxyConfig.GooglezipProxyRemovalCount", |
376 test.expected_num_removed_proxies, 1); | 369 test.expected_num_removed_proxies, 1); |
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
570 net::ProxyRulesExpectation::Empty(), | 563 net::ProxyRulesExpectation::Empty(), |
571 }, | 564 }, |
572 }; | 565 }; |
573 | 566 |
574 INSTANTIATE_TEST_CASE_P( | 567 INSTANTIATE_TEST_CASE_P( |
575 PrefProxyConfigTrackerImplCommandLineTestInstance, | 568 PrefProxyConfigTrackerImplCommandLineTestInstance, |
576 PrefProxyConfigTrackerImplCommandLineTest, | 569 PrefProxyConfigTrackerImplCommandLineTest, |
577 testing::ValuesIn(kCommandLineTestParams)); | 570 testing::ValuesIn(kCommandLineTestParams)); |
578 | 571 |
579 } // namespace | 572 } // namespace |
OLD | NEW |