summaryrefslogtreecommitdiffstats
path: root/net/base
diff options
context:
space:
mode:
authorszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-09 18:27:01 +0000
committerszym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-01-09 18:27:01 +0000
commita33347c423e8d765771a66db5341f2faedf35b63 (patch)
tree8905a51b356dd52cf70a1de99a351bf29bba152d /net/base
parent218f923ec6f6ddb6685695899815da2bdfe04895 (diff)
downloadchromium_src-a33347c423e8d765771a66db5341f2faedf35b63.zip
chromium_src-a33347c423e8d765771a66db5341f2faedf35b63.tar.gz
chromium_src-a33347c423e8d765771a66db5341f2faedf35b63.tar.bz2
Adds HostResolverImplTest.FailedAsynchronousLookup
Improves code coverage. TEST=./net_unittests --gtest_filter=HostResolverImplTest.FailedAsynchronousLookup Review URL: http://codereview.chromium.org/9122013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@116879 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base')
-rw-r--r--net/base/host_resolver_impl_unittest.cc41
1 files changed, 40 insertions, 1 deletions
diff --git a/net/base/host_resolver_impl_unittest.cc b/net/base/host_resolver_impl_unittest.cc
index 23c3325..af9adc8 100644
--- a/net/base/host_resolver_impl_unittest.cc
+++ b/net/base/host_resolver_impl_unittest.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// 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.
@@ -402,6 +402,45 @@ TEST_F(HostResolverImplTest, AsynchronousLookup) {
EXPECT_TRUE(htonl(0xc0a8012a) == sa_in->sin_addr.s_addr);
}
+TEST_F(HostResolverImplTest, FailedAsynchronousLookup) {
+ AddressList addrlist;
+ const int kPortnum = 80;
+
+ scoped_refptr<RuleBasedHostResolverProc> resolver_proc(
+ new RuleBasedHostResolverProc(NULL));
+ resolver_proc->AddSimulatedFailure("just.testing");
+
+ scoped_ptr<HostResolver> host_resolver(
+ CreateHostResolverImpl(resolver_proc));
+
+ HostResolver::RequestInfo info(HostPortPair("just.testing", kPortnum));
+ CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
+ int err = host_resolver->Resolve(info, &addrlist, callback_, NULL,
+ log.bound());
+ EXPECT_EQ(ERR_IO_PENDING, err);
+
+ CapturingNetLog::EntryList entries;
+ log.GetEntries(&entries);
+
+ EXPECT_EQ(1u, entries.size());
+ EXPECT_TRUE(LogContainsBeginEvent(
+ entries, 0, NetLog::TYPE_HOST_RESOLVER_IMPL));
+
+ MessageLoop::current()->Run();
+
+ ASSERT_TRUE(callback_called_);
+ ASSERT_EQ(ERR_NAME_NOT_RESOLVED, callback_result_);
+
+ log.GetEntries(&entries);
+
+ EXPECT_EQ(2u, entries.size());
+ EXPECT_TRUE(LogContainsEndEvent(
+ entries, 1, NetLog::TYPE_HOST_RESOLVER_IMPL));
+
+ // Also test that the error is not cached!
+ err = host_resolver->ResolveFromCache(info, &addrlist, log.bound());
+ EXPECT_EQ(ERR_DNS_CACHE_MISS, err);
+}
// Using WaitingHostResolverProc you can simulate very long lookups.
class WaitingHostResolverProc : public HostResolverProc {