| Index: chrome/browser/net/pref_proxy_config_service_unittest.cc
|
| diff --git a/chrome/browser/net/pref_proxy_config_service_unittest.cc b/chrome/browser/net/pref_proxy_config_service_unittest.cc
|
| index 75b6f82e09824025835b9319c59d6dcac0007b38..c9e402f2f03f4c72d97c25b5d4c639b5d734871d 100644
|
| --- a/chrome/browser/net/pref_proxy_config_service_unittest.cc
|
| +++ b/chrome/browser/net/pref_proxy_config_service_unittest.cc
|
| @@ -67,12 +67,14 @@ class PrefProxyConfigServiceTestBase : public TESTBASE {
|
| : ui_thread_(BrowserThread::UI, &loop_),
|
| io_thread_(BrowserThread::IO, &loop_) {}
|
|
|
| - virtual void Init(PrefService* pref_service) {
|
| + virtual void Init(PrefService* pref_service, PrefService* fallback) {
|
| ASSERT_TRUE(pref_service);
|
| PrefProxyConfigService::RegisterPrefs(pref_service);
|
| + if (fallback)
|
| + PrefProxyConfigService::RegisterPrefs(fallback);
|
| fixed_config_.set_pac_url(GURL(kFixedPacUrl));
|
| delegate_service_ = new TestProxyConfigService(fixed_config_);
|
| - proxy_config_tracker_ = new PrefProxyConfigTracker(pref_service);
|
| + proxy_config_tracker_ = new PrefProxyConfigTracker(pref_service, fallback);
|
| proxy_config_service_.reset(
|
| new PrefProxyConfigService(proxy_config_tracker_.get(),
|
| delegate_service_));
|
| @@ -99,11 +101,10 @@ class PrefProxyConfigServiceTest
|
| : public PrefProxyConfigServiceTestBase<testing::Test> {
|
| protected:
|
| virtual void SetUp() {
|
| - pref_service_.reset(new TestingPrefService());
|
| - Init(pref_service_.get());
|
| + Init(&pref_service_, NULL);
|
| }
|
|
|
| - scoped_ptr<TestingPrefService> pref_service_;
|
| + TestingPrefService pref_service_;
|
| };
|
|
|
| TEST_F(PrefProxyConfigServiceTest, BaseConfiguration) {
|
| @@ -113,7 +114,7 @@ TEST_F(PrefProxyConfigServiceTest, BaseConfiguration) {
|
| }
|
|
|
| TEST_F(PrefProxyConfigServiceTest, DynamicPrefOverrides) {
|
| - pref_service_->SetManagedPref(
|
| + pref_service_.SetManagedPref(
|
| prefs::kProxy,
|
| ProxyConfigDictionary::CreateFixedServers("http://example.com:3128", ""));
|
| loop_.RunAllPending();
|
| @@ -127,7 +128,7 @@ TEST_F(PrefProxyConfigServiceTest, DynamicPrefOverrides) {
|
| net::ProxyServer::FromURI("http://example.com:3128",
|
| net::ProxyServer::SCHEME_HTTP));
|
|
|
| - pref_service_->SetManagedPref(prefs::kProxy,
|
| + pref_service_.SetManagedPref(prefs::kProxy,
|
| ProxyConfigDictionary::CreateAutoDetect());
|
| loop_.RunAllPending();
|
|
|
| @@ -161,7 +162,7 @@ TEST_F(PrefProxyConfigServiceTest, Observers) {
|
|
|
| EXPECT_CALL(observer,
|
| OnProxyConfigChanged(ProxyConfigMatches(pref_config))).Times(1);
|
| - pref_service_->SetManagedPref(
|
| + pref_service_.SetManagedPref(
|
| prefs::kProxy,
|
| ProxyConfigDictionary::CreatePacScript(kFixedPacUrl));
|
| loop_.RunAllPending();
|
| @@ -179,7 +180,7 @@ TEST_F(PrefProxyConfigServiceTest, Observers) {
|
| // Clear the override should switch back to the fixed configuration.
|
| EXPECT_CALL(observer,
|
| OnProxyConfigChanged(ProxyConfigMatches(config3))).Times(1);
|
| - pref_service_->RemoveManagedPref(prefs::kProxy);
|
| + pref_service_.RemoveManagedPref(prefs::kProxy);
|
| loop_.RunAllPending();
|
| Mock::VerifyAndClearExpectations(&observer);
|
|
|
| @@ -195,6 +196,77 @@ TEST_F(PrefProxyConfigServiceTest, Observers) {
|
| proxy_config_service_->RemoveObserver(&observer);
|
| }
|
|
|
| +class PrefProxyConfigServiceFallbackTest
|
| + : public PrefProxyConfigServiceTestBase<testing::Test> {
|
| + protected:
|
| + virtual void SetUp() {
|
| + Init(&pref_service_, &fallback_pref_service_);
|
| + }
|
| +
|
| + TestingPrefService pref_service_;
|
| + TestingPrefService fallback_pref_service_;
|
| +};
|
| +
|
| +TEST_F(PrefProxyConfigServiceFallbackTest, NoFallback) {
|
| + pref_service_.SetUserPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateFixedServers("http://example.com:3128", ""));
|
| + loop_.RunAllPending();
|
| +
|
| + net::ProxyConfig actual_config;
|
| + proxy_config_service_->GetLatestProxyConfig(&actual_config);
|
| + EXPECT_FALSE(actual_config.auto_detect());
|
| + EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
|
| + actual_config.proxy_rules().type);
|
| + EXPECT_EQ(actual_config.proxy_rules().single_proxy,
|
| + net::ProxyServer::FromURI("http://example.com:3128",
|
| + net::ProxyServer::SCHEME_HTTP));
|
| +}
|
| +
|
| +TEST_F(PrefProxyConfigServiceFallbackTest, Fallback) {
|
| + fallback_pref_service_.SetUserPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateFixedServers("http://example.com:3128", ""));
|
| + loop_.RunAllPending();
|
| +
|
| + net::ProxyConfig actual_config;
|
| + proxy_config_service_->GetLatestProxyConfig(&actual_config);
|
| + EXPECT_FALSE(actual_config.auto_detect());
|
| + EXPECT_EQ(net::ProxyConfig::ProxyRules::TYPE_SINGLE_PROXY,
|
| + actual_config.proxy_rules().type);
|
| + EXPECT_EQ(actual_config.proxy_rules().single_proxy,
|
| + net::ProxyServer::FromURI("http://example.com:3128",
|
| + net::ProxyServer::SCHEME_HTTP));
|
| +}
|
| +
|
| +TEST_F(PrefProxyConfigServiceFallbackTest, FallbackWithPolicy) {
|
| + pref_service_.SetManagedPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateAutoDetect());
|
| + fallback_pref_service_.SetUserPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateFixedServers("http://example.com:3128", ""));
|
| + loop_.RunAllPending();
|
| +
|
| + net::ProxyConfig actual_config;
|
| + proxy_config_service_->GetLatestProxyConfig(&actual_config);
|
| + EXPECT_TRUE(actual_config.auto_detect());
|
| +}
|
| +
|
| +TEST_F(PrefProxyConfigServiceFallbackTest, FallbackPolicy) {
|
| + fallback_pref_service_.SetManagedPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateFixedServers("http://example.com:3128", ""));
|
| + pref_service_.SetUserPref(
|
| + prefs::kProxy,
|
| + ProxyConfigDictionary::CreateAutoDetect());
|
| + loop_.RunAllPending();
|
| +
|
| + net::ProxyConfig actual_config;
|
| + proxy_config_service_->GetLatestProxyConfig(&actual_config);
|
| + EXPECT_TRUE(actual_config.auto_detect());
|
| +}
|
| +
|
| // Test parameter object for testing command line proxy configuration.
|
| struct CommandLineTestParams {
|
| // Explicit assignment operator, so testing::TestWithParam works with MSVC.
|
| @@ -247,7 +319,7 @@ class PrefProxyConfigServiceCommandLineTest
|
| }
|
| pref_service_.reset(
|
| PrefServiceMockBuilder().WithCommandLine(&command_line_).Create());
|
| - Init(pref_service_.get());
|
| + Init(pref_service_.get(), NULL);
|
| }
|
|
|
| private:
|
|
|