| 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
|
|
|