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

Unified Diff: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_unittest.cc

Issue 792803007: Make Data Reduction Proxy a best effort proxy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated tests Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_unittest.cc
diff --git a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_unittest.cc b/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_unittest.cc
deleted file mode 100644
index 0b0876f071cc7068cf98e7a8d7c2ca9c7e827b77..0000000000000000000000000000000000000000
--- a/components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service_unittest.cc
+++ /dev/null
@@ -1,305 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/data_reduction_proxy/core/browser/data_reduction_proxy_config_service.h"
-
-#include <string>
-
-#include "base/bind.h"
-#include "base/memory/ref_counted.h"
-#include "base/message_loop/message_loop.h"
-#include "base/test/test_simple_task_runner.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::Mock;
-
-namespace {
-
-// Test system proxy rules.
-static const char kSystemProxyRules[] = "http=http://system.com:80,direct://";
-
-// Test data reduction proxy rules.
-static const char kDataReductionProxyRules[] =
- "http=https://foo.com:443,http://bar.com:80,direct://";
-
-// Test data reduction proxy rules when in restricted mode.
-static const char kDataReductionProxyRestrictedRules[] =
- "http=http://bar.com:80,direct://";
-
-} // namespace
-
-namespace data_reduction_proxy {
-
-class TestProxyConfigService : public net::ProxyConfigService {
- public:
- TestProxyConfigService()
- : availability_(net::ProxyConfigService::CONFIG_VALID) {
- config_.proxy_rules().ParseFromString(kSystemProxyRules);
- }
-
- void SetProxyConfig(const net::ProxyConfig config,
- ConfigAvailability availability) {
- config_ = config;
- availability_ = availability;
- FOR_EACH_OBSERVER(net::ProxyConfigService::Observer, observers_,
- OnProxyConfigChanged(config, availability));
- }
-
- void AddObserver(net::ProxyConfigService::Observer* observer) override {
- observers_.AddObserver(observer);
- }
-
- void RemoveObserver(net::ProxyConfigService::Observer* observer) override {
- observers_.RemoveObserver(observer);
- }
-
- ConfigAvailability GetLatestProxyConfig(net::ProxyConfig* config) override {
- *config = config_;
- return availability_;
- }
-
- private:
- net::ProxyConfig config_;
- ConfigAvailability availability_;
- ObserverList<net::ProxyConfigService::Observer, true> observers_;
-};
-
-
-// A mock observer for capturing callbacks.
-class MockObserver : public net::ProxyConfigService::Observer {
- public:
- MOCK_METHOD2(OnProxyConfigChanged,
- void(const net::ProxyConfig&,
- net::ProxyConfigService::ConfigAvailability));
-};
-
-
-class DataReductionProxyConfigServiceTest : public testing::Test {
- public:
- void SetUp() override {
- observer_.reset(new MockObserver());
- base_service_ = new TestProxyConfigService();
- scoped_ptr<net::ProxyConfigService> base_service(base_service_);
- config_service_.reset(
- new DataReductionProxyConfigService(base_service.Pass()));
- }
-
- void EnableDataReductionProxy(bool data_reduction_proxy_enabled) {
- config_service_->enabled_ = data_reduction_proxy_enabled;
- config_service_->config_.proxy_rules().ParseFromString(
- kDataReductionProxyRules);
- }
-
- scoped_ptr<net::ProxyConfigService::Observer> observer_;
-
- // Holds a weak pointer to the base service. Ownership is passed to
- // |config_service_|.
- TestProxyConfigService* base_service_;
-
- scoped_ptr<DataReductionProxyConfigService> config_service_;
-};
-
-// Compares proxy configurations, but allows different identifiers.
-MATCHER_P(ProxyConfigMatches, config, "") {
- net::ProxyConfig reference(config);
- reference.set_id(arg.id());
- return reference.Equals(arg);
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, GetLatestProxyConfigEnabled) {
- // Set up the |config_service_| as though Enable had been previously called
- // and check that |GetLatestProxyConfigEnabled| return rules for the data
- // reduction proxy.
- EnableDataReductionProxy(true);
- net::ProxyConfig::ProxyRules expected_rules;
- expected_rules.ParseFromString(kDataReductionProxyRules);
- net::ProxyConfig latest_config;
- EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
- config_service_->GetLatestProxyConfig(&latest_config));
- ASSERT_TRUE(latest_config.proxy_rules().Equals(expected_rules));
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, GetLatestProxyConfigDisabledValid) {
- // Set up the |config_service_| with the data reduction proxy disabled and
- // check that the underlying system config is returned.
- EnableDataReductionProxy(false);
- net::ProxyConfig::ProxyRules expected_rules;
- expected_rules.ParseFromString(kSystemProxyRules);
- net::ProxyConfig latest_config;
- EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
- config_service_->GetLatestProxyConfig(&latest_config));
- ASSERT_TRUE(latest_config.proxy_rules().Equals(expected_rules));
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, GetLatestProxyConfigDisabledUnset) {
- // Set up the |config_service_| with the data reduction proxy disabled and
- // check that direct is returned if the the underlying system config is unset.
- EnableDataReductionProxy(false);
- base_service_->SetProxyConfig(net::ProxyConfig(),
- net::ProxyConfigService::CONFIG_UNSET);
- net::ProxyConfig latest_config;
- EXPECT_EQ(net::ProxyConfigService::CONFIG_VALID,
- config_service_->GetLatestProxyConfig(&latest_config));
- ASSERT_TRUE(latest_config.Equals(net::ProxyConfig()));
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, UpdateProxyConfig) {
- MockObserver observer;
- base::MessageLoopForUI loop;
- config_service_->AddObserver(&observer);
- // Firing the observers in the delegate should trigger a notification.
- net::ProxyConfig config2;
- config2.set_auto_detect(true);
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(config2),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- base_service_->SetProxyConfig(config2, net::ProxyConfigService::CONFIG_VALID);
- loop.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- // Enable the data reduction proxy, which should trigger a notification.
- net::ProxyConfig system_config;
- system_config.proxy_rules().ParseFromString(kSystemProxyRules);
- base_service_->SetProxyConfig(system_config,
- net::ProxyConfigService::CONFIG_VALID);
- net::ProxyConfig data_reduction_proxy_config;
- data_reduction_proxy_config.proxy_rules().ParseFromString(
- kDataReductionProxyRules);
-
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(data_reduction_proxy_config),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- config_service_->UpdateProxyConfig(true, data_reduction_proxy_config);
- loop.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
-
- // Disable the data reduction proxy, which should trigger a notification.
- base_service_->SetProxyConfig(system_config,
- net::ProxyConfigService::CONFIG_VALID);
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(system_config),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- config_service_->UpdateProxyConfig(false, data_reduction_proxy_config);
- loop.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- config_service_->RemoveObserver(&observer);
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, TrackerEnable) {
- MockObserver observer;
- //base::MessageLoopForUI loop;
- config_service_->AddObserver(&observer);
- scoped_refptr<base::TestSimpleTaskRunner> task_runner_(
- new base::TestSimpleTaskRunner());
- DataReductionProxyConfigTracker tracker(
- base::Bind(&data_reduction_proxy::DataReductionProxyConfigService::
- UpdateProxyConfig,
- base::Unretained(config_service_.get())),
- task_runner_.get());
- net::ProxyConfig expected_config;
- expected_config.proxy_rules().ParseFromString(kDataReductionProxyRules);
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(expected_config),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- tracker.Enable(false,
- false,
- "https://foo.com:443",
- "http://bar.com:80",
- "");
- task_runner_->RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- config_service_->RemoveObserver(&observer);
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, TrackerEnableRestricted) {
- MockObserver observer;
- //base::MessageLoopForUI loop;
- config_service_->AddObserver(&observer);
- scoped_refptr<base::TestSimpleTaskRunner> task_runner_(
- new base::TestSimpleTaskRunner());
- DataReductionProxyConfigTracker tracker(
- base::Bind(&data_reduction_proxy::DataReductionProxyConfigService::
- UpdateProxyConfig,
- base::Unretained(config_service_.get())),
- task_runner_.get());
- net::ProxyConfig expected_config;
- expected_config.proxy_rules().ParseFromString(
- kDataReductionProxyRestrictedRules);
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(expected_config),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- tracker.Enable(true,
- false,
- "https://foo.com:443",
- "http://bar.com:80",
- "");
- task_runner_->RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- config_service_->RemoveObserver(&observer);
-}
-
-TEST_F(DataReductionProxyConfigServiceTest, TrackerDisable) {
- MockObserver observer;
- //base::MessageLoopForUI loop;
- config_service_->AddObserver(&observer);
- scoped_refptr<base::TestSimpleTaskRunner> task_runner_(
- new base::TestSimpleTaskRunner());
- DataReductionProxyConfigTracker tracker(
- base::Bind(&data_reduction_proxy::DataReductionProxyConfigService::
- UpdateProxyConfig,
- base::Unretained(config_service_.get())),
- task_runner_.get());
- net::ProxyConfig expected_config;
- expected_config.proxy_rules().ParseFromString(kSystemProxyRules);
- EXPECT_CALL(observer, OnProxyConfigChanged(
- ProxyConfigMatches(expected_config),
- net::ProxyConfigService::CONFIG_VALID)).Times(1);
- tracker.Disable();
- task_runner_->RunUntilIdle();
- //loop.RunUntilIdle();
- Mock::VerifyAndClearExpectations(&observer);
-
- config_service_->RemoveObserver(&observer);
-}
-
-
-TEST_F(DataReductionProxyConfigServiceTest, TrackerBypassList) {
- base::MessageLoopForUI loop;
- scoped_refptr<base::TestSimpleTaskRunner> task_runner_(
- new base::TestSimpleTaskRunner());
- DataReductionProxyConfigTracker tracker(
- base::Bind(&data_reduction_proxy::DataReductionProxyConfigService::
- UpdateProxyConfig,
- base::Unretained(config_service_.get())),
- task_runner_.get());
- tracker.AddHostPatternToBypass("http://www.google.com");
- tracker.AddHostPatternToBypass("fefe:13::abc/33");
- tracker.AddURLPatternToBypass("foo.org/images/*");
- tracker.AddURLPatternToBypass("http://foo.com/*");
- tracker.AddURLPatternToBypass("http://baz.com:22/bar/*");
- tracker.AddURLPatternToBypass("http://*bat.com/bar/*");
-
- std::string expected[] = {
- "http://www.google.com",
- "fefe:13::abc/33",
- "foo.org",
- "http://foo.com",
- "http://baz.com:22",
- "http://*bat.com"
- };
-
- ASSERT_EQ(tracker.bypass_rules_.size(), 6u);
- int i = 0;
- for (std::vector<std::string>::iterator it = tracker.bypass_rules_.begin();
- it != tracker.bypass_rules_.end(); ++it) {
- EXPECT_EQ(expected[i++], *it);
- }
-}
-
-} // namespace data_reduction_proxy

Powered by Google App Engine
This is Rietveld 408576698