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

Unified Diff: net/dns/dns_config_service_unittest.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « net/dns/dns_config_service_posix_unittest.cc ('k') | net/dns/dns_config_service_win.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/dns_config_service_unittest.cc
diff --git a/net/dns/dns_config_service_unittest.cc b/net/dns/dns_config_service_unittest.cc
deleted file mode 100644
index e3abafd20aa11ffad63e9b40fc0aadfed47535da..0000000000000000000000000000000000000000
--- a/net/dns/dns_config_service_unittest.cc
+++ /dev/null
@@ -1,352 +0,0 @@
-// Copyright (c) 2012 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 "net/dns/dns_config_service.h"
-
-#include "base/basictypes.h"
-#include "base/bind.h"
-#include "base/cancelable_callback.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/message_loop/message_loop.h"
-#include "base/strings/string_split.h"
-#include "base/test/test_timeouts.h"
-#include "net/base/net_util.h"
-#include "net/dns/dns_protocol.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace net {
-
-namespace {
-
-const NameServerClassifier::NameServersType kNone =
- NameServerClassifier::NAME_SERVERS_TYPE_NONE;
-const NameServerClassifier::NameServersType kGoogle =
- NameServerClassifier::NAME_SERVERS_TYPE_GOOGLE_PUBLIC_DNS;
-const NameServerClassifier::NameServersType kPrivate =
- NameServerClassifier::NAME_SERVERS_TYPE_PRIVATE;
-const NameServerClassifier::NameServersType kPublic =
- NameServerClassifier::NAME_SERVERS_TYPE_PUBLIC;
-const NameServerClassifier::NameServersType kMixed =
- NameServerClassifier::NAME_SERVERS_TYPE_MIXED;
-
-class NameServerClassifierTest : public testing::Test {
- protected:
- NameServerClassifier::NameServersType Classify(
- const std::string& servers_string) {
- std::vector<std::string> server_strings;
- base::SplitString(servers_string, ' ', &server_strings);
-
- std::vector<IPEndPoint> servers;
- for (std::vector<std::string>::const_iterator it = server_strings.begin();
- it != server_strings.end();
- ++it) {
- if (it->empty())
- continue;
-
- IPAddressNumber address;
- bool parsed = ParseIPLiteralToNumber(*it, &address);
- EXPECT_TRUE(parsed);
- servers.push_back(IPEndPoint(address, dns_protocol::kDefaultPort));
- }
-
- return classifier_.GetNameServersType(servers);
- }
-
- private:
- NameServerClassifier classifier_;
-};
-
-TEST_F(NameServerClassifierTest, None) {
- EXPECT_EQ(kNone, Classify(""));
-}
-
-TEST_F(NameServerClassifierTest, Google) {
- EXPECT_EQ(kGoogle, Classify("8.8.8.8"));
- EXPECT_EQ(kGoogle, Classify("8.8.8.8 8.8.4.4"));
- EXPECT_EQ(kGoogle, Classify("2001:4860:4860::8888"));
- EXPECT_EQ(kGoogle, Classify("2001:4860:4860::8888 2001:4860:4860::8844"));
- EXPECT_EQ(kGoogle, Classify("2001:4860:4860::8888 8.8.8.8"));
-
- // Make sure nobody took any shortcuts on the IP matching:
- EXPECT_EQ(kPublic, Classify("8.8.8.4"));
- EXPECT_EQ(kPublic, Classify("8.8.4.8"));
- EXPECT_EQ(kPublic, Classify("2001:4860:4860::8884"));
- EXPECT_EQ(kPublic, Classify("2001:4860:4860::8848"));
- EXPECT_EQ(kPublic, Classify("2001:4860:4860::1:8888"));
- EXPECT_EQ(kPublic, Classify("2001:4860:4860:1::8888"));
-}
-
-TEST_F(NameServerClassifierTest, PrivateLocalhost) {
- EXPECT_EQ(kPrivate, Classify("127.0.0.1"));
- EXPECT_EQ(kPrivate, Classify("::1"));
-}
-
-TEST_F(NameServerClassifierTest, PrivateRfc1918) {
- EXPECT_EQ(kPrivate, Classify("10.0.0.0 10.255.255.255"));
- EXPECT_EQ(kPrivate, Classify("172.16.0.0 172.31.255.255"));
- EXPECT_EQ(kPrivate, Classify("192.168.0.0 192.168.255.255"));
- EXPECT_EQ(kPrivate, Classify("10.1.1.1 172.16.1.1 192.168.1.1"));
-}
-
-TEST_F(NameServerClassifierTest, PrivateIPv4LinkLocal) {
- EXPECT_EQ(kPrivate, Classify("169.254.0.0 169.254.255.255"));
-}
-
-TEST_F(NameServerClassifierTest, PrivateIPv6LinkLocal) {
- EXPECT_EQ(kPrivate,
- Classify("fe80:: fe80:ffff:ffff:ffff:ffff:ffff:ffff:ffff"));
-}
-
-TEST_F(NameServerClassifierTest, Public) {
- EXPECT_EQ(kPublic, Classify("4.2.2.1"));
- EXPECT_EQ(kPublic, Classify("4.2.2.1 4.2.2.2"));
-}
-
-TEST_F(NameServerClassifierTest, Mixed) {
- EXPECT_EQ(kMixed, Classify("8.8.8.8 192.168.1.1"));
- EXPECT_EQ(kMixed, Classify("8.8.8.8 4.2.2.1"));
- EXPECT_EQ(kMixed, Classify("192.168.1.1 4.2.2.1"));
- EXPECT_EQ(kMixed, Classify("8.8.8.8 192.168.1.1 4.2.2.1"));
-}
-
-class DnsConfigServiceTest : public testing::Test {
- public:
- void OnConfigChanged(const DnsConfig& config) {
- last_config_ = config;
- if (quit_on_config_)
- base::MessageLoop::current()->Quit();
- }
-
- protected:
- class TestDnsConfigService : public DnsConfigService {
- public:
- void ReadNow() override {}
- bool StartWatching() override { return true; }
-
- // Expose the protected methods to this test suite.
- void InvalidateConfig() {
- DnsConfigService::InvalidateConfig();
- }
-
- void InvalidateHosts() {
- DnsConfigService::InvalidateHosts();
- }
-
- void OnConfigRead(const DnsConfig& config) {
- DnsConfigService::OnConfigRead(config);
- }
-
- void OnHostsRead(const DnsHosts& hosts) {
- DnsConfigService::OnHostsRead(hosts);
- }
-
- void set_watch_failed(bool value) {
- DnsConfigService::set_watch_failed(value);
- }
- };
-
- void WaitForConfig(base::TimeDelta timeout) {
- base::CancelableClosure closure(base::MessageLoop::QuitClosure());
- base::MessageLoop::current()->PostDelayedTask(
- FROM_HERE, closure.callback(), timeout);
- quit_on_config_ = true;
- base::MessageLoop::current()->Run();
- quit_on_config_ = false;
- closure.Cancel();
- }
-
- // Generate a config using the given seed..
- DnsConfig MakeConfig(unsigned seed) {
- DnsConfig config;
- IPAddressNumber ip;
- CHECK(ParseIPLiteralToNumber("1.2.3.4", &ip));
- config.nameservers.push_back(IPEndPoint(ip, seed & 0xFFFF));
- EXPECT_TRUE(config.IsValid());
- return config;
- }
-
- // Generate hosts using the given seed.
- DnsHosts MakeHosts(unsigned seed) {
- DnsHosts hosts;
- std::string hosts_content = "127.0.0.1 localhost";
- hosts_content.append(seed, '1');
- ParseHosts(hosts_content, &hosts);
- EXPECT_FALSE(hosts.empty());
- return hosts;
- }
-
- void SetUp() override {
- quit_on_config_ = false;
-
- service_.reset(new TestDnsConfigService());
- service_->WatchConfig(base::Bind(&DnsConfigServiceTest::OnConfigChanged,
- base::Unretained(this)));
- EXPECT_FALSE(last_config_.IsValid());
- }
-
- DnsConfig last_config_;
- bool quit_on_config_;
-
- // Service under test.
- scoped_ptr<TestDnsConfigService> service_;
-};
-
-} // namespace
-
-TEST_F(DnsConfigServiceTest, FirstConfig) {
- DnsConfig config = MakeConfig(1);
-
- service_->OnConfigRead(config);
- // No hosts yet, so no config.
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- service_->OnHostsRead(config.hosts);
- EXPECT_TRUE(last_config_.Equals(config));
-}
-
-TEST_F(DnsConfigServiceTest, Timeout) {
- DnsConfig config = MakeConfig(1);
- config.hosts = MakeHosts(1);
- ASSERT_TRUE(config.IsValid());
-
- service_->OnConfigRead(config);
- service_->OnHostsRead(config.hosts);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config));
-
- service_->InvalidateConfig();
- WaitForConfig(TestTimeouts::action_timeout());
- EXPECT_FALSE(last_config_.Equals(config));
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- service_->OnConfigRead(config);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config));
-
- service_->InvalidateHosts();
- WaitForConfig(TestTimeouts::action_timeout());
- EXPECT_FALSE(last_config_.Equals(config));
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- DnsConfig bad_config = last_config_ = MakeConfig(0xBAD);
- service_->InvalidateConfig();
- // We don't expect an update. This should time out.
- WaitForConfig(base::TimeDelta::FromMilliseconds(100) +
- TestTimeouts::tiny_timeout());
- EXPECT_TRUE(last_config_.Equals(bad_config)) << "Unexpected change";
-
- last_config_ = DnsConfig();
- service_->OnConfigRead(config);
- service_->OnHostsRead(config.hosts);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config));
-}
-
-TEST_F(DnsConfigServiceTest, SameConfig) {
- DnsConfig config = MakeConfig(1);
- config.hosts = MakeHosts(1);
-
- service_->OnConfigRead(config);
- service_->OnHostsRead(config.hosts);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config));
-
- last_config_ = DnsConfig();
- service_->OnConfigRead(config);
- EXPECT_TRUE(last_config_.Equals(DnsConfig())) << "Unexpected change";
-
- service_->OnHostsRead(config.hosts);
- EXPECT_TRUE(last_config_.Equals(DnsConfig())) << "Unexpected change";
-}
-
-TEST_F(DnsConfigServiceTest, DifferentConfig) {
- DnsConfig config1 = MakeConfig(1);
- DnsConfig config2 = MakeConfig(2);
- DnsConfig config3 = MakeConfig(1);
- config1.hosts = MakeHosts(1);
- config2.hosts = MakeHosts(1);
- config3.hosts = MakeHosts(2);
- ASSERT_TRUE(config1.EqualsIgnoreHosts(config3));
- ASSERT_FALSE(config1.Equals(config2));
- ASSERT_FALSE(config1.Equals(config3));
- ASSERT_FALSE(config2.Equals(config3));
-
- service_->OnConfigRead(config1);
- service_->OnHostsRead(config1.hosts);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config1));
-
- // It doesn't matter for this tests, but increases coverage.
- service_->InvalidateConfig();
- service_->InvalidateHosts();
-
- service_->OnConfigRead(config2);
- EXPECT_TRUE(last_config_.Equals(config1)) << "Unexpected change";
- service_->OnHostsRead(config2.hosts); // Not an actual change.
- EXPECT_FALSE(last_config_.Equals(config1));
- EXPECT_TRUE(last_config_.Equals(config2));
-
- service_->OnConfigRead(config3);
- EXPECT_TRUE(last_config_.EqualsIgnoreHosts(config3));
- service_->OnHostsRead(config3.hosts);
- EXPECT_FALSE(last_config_.Equals(config2));
- EXPECT_TRUE(last_config_.Equals(config3));
-}
-
-TEST_F(DnsConfigServiceTest, WatchFailure) {
- DnsConfig config1 = MakeConfig(1);
- DnsConfig config2 = MakeConfig(2);
- config1.hosts = MakeHosts(1);
- config2.hosts = MakeHosts(2);
-
- service_->OnConfigRead(config1);
- service_->OnHostsRead(config1.hosts);
- EXPECT_FALSE(last_config_.Equals(DnsConfig()));
- EXPECT_TRUE(last_config_.Equals(config1));
-
- // Simulate watch failure.
- service_->set_watch_failed(true);
- service_->InvalidateConfig();
- WaitForConfig(TestTimeouts::action_timeout());
- EXPECT_FALSE(last_config_.Equals(config1));
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- DnsConfig bad_config = last_config_ = MakeConfig(0xBAD);
- // Actual change in config, so expect an update, but it should be empty.
- service_->OnConfigRead(config1);
- EXPECT_FALSE(last_config_.Equals(bad_config));
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- last_config_ = bad_config;
- // Actual change in config, so expect an update, but it should be empty.
- service_->InvalidateConfig();
- service_->OnConfigRead(config2);
- EXPECT_FALSE(last_config_.Equals(bad_config));
- EXPECT_TRUE(last_config_.Equals(DnsConfig()));
-
- last_config_ = bad_config;
- // No change, so no update.
- service_->InvalidateConfig();
- service_->OnConfigRead(config2);
- EXPECT_TRUE(last_config_.Equals(bad_config));
-}
-
-#if (defined(OS_POSIX) && !defined(OS_ANDROID)) || defined(OS_WIN)
-// TODO(szym): This is really an integration test and can time out if HOSTS is
-// huge. http://crbug.com/107810
-TEST_F(DnsConfigServiceTest, DISABLED_GetSystemConfig) {
- service_.reset();
- scoped_ptr<DnsConfigService> service(DnsConfigService::CreateSystemService());
-
- service->ReadConfig(base::Bind(&DnsConfigServiceTest::OnConfigChanged,
- base::Unretained(this)));
- base::TimeDelta kTimeout = TestTimeouts::action_max_timeout();
- WaitForConfig(kTimeout);
- ASSERT_TRUE(last_config_.IsValid()) << "Did not receive DnsConfig in " <<
- kTimeout.InSecondsF() << "s";
-}
-#endif // OS_POSIX || OS_WIN
-
-} // namespace net
-
« no previous file with comments | « net/dns/dns_config_service_posix_unittest.cc ('k') | net/dns/dns_config_service_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698