diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-20 18:50:38 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-20 18:50:38 +0000 |
commit | ac9eec64de86f3d3a290a1a8b9321260cff7ed23 (patch) | |
tree | aac041c6ddaec400b6e2b6d3d982935aa7f69a9c /net/base/address_list_unittest.cc | |
parent | 8c1ae5ec4d47638315096f54819793484383c91f (diff) | |
download | chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.zip chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.tar.gz chromium_src-ac9eec64de86f3d3a290a1a8b9321260cff7ed23.tar.bz2 |
Really connect to the same server in FTP network transaction.
Also create necessary infrastructure to know the address
a client socket is connected to.
TEST=Covered by net_unittests.
BUG=35670
Review URL: http://codereview.chromium.org/598071
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39559 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/address_list_unittest.cc')
-rw-r--r-- | net/base/address_list_unittest.cc | 64 |
1 files changed, 57 insertions, 7 deletions
diff --git a/net/base/address_list_unittest.cc b/net/base/address_list_unittest.cc index d440c15..dbd0f24 100644 --- a/net/base/address_list_unittest.cc +++ b/net/base/address_list_unittest.cc @@ -7,6 +7,7 @@ #include "base/string_util.h" #include "net/base/host_resolver_proc.h" #include "net/base/net_util.h" +#include "net/base/sys_addrinfo.h" #if defined(OS_WIN) #include "net/base/winsock_init.h" #endif @@ -15,20 +16,28 @@ namespace { // Use getaddrinfo() to allocate an addrinfo structure. -void CreateAddressList(net::AddressList* addrlist, int port) { +void CreateAddressList(const std::string& hostname, + net::AddressList* addrlist, int port) { #if defined(OS_WIN) net::EnsureWinsockInit(); #endif - int rv = SystemHostResolverProc("192.168.1.1", + int rv = SystemHostResolverProc(hostname, net::ADDRESS_FAMILY_UNSPECIFIED, addrlist); EXPECT_EQ(0, rv); addrlist->SetPort(port); } +void CreateLongAddressList(net::AddressList* addrlist, int port) { + CreateAddressList("192.168.1.1", addrlist, port); + net::AddressList second_list; + CreateAddressList("192.168.1.2", &second_list, port); + addrlist->Append(second_list.head()); +} + TEST(AddressListTest, GetPort) { net::AddressList addrlist; - CreateAddressList(&addrlist, 81); + CreateAddressList("192.168.1.1", &addrlist, 81); EXPECT_EQ(81, addrlist.GetPort()); addrlist.SetPort(83); @@ -37,7 +46,7 @@ TEST(AddressListTest, GetPort) { TEST(AddressListTest, Assignment) { net::AddressList addrlist1; - CreateAddressList(&addrlist1, 85); + CreateAddressList("192.168.1.1", &addrlist1, 85); EXPECT_EQ(85, addrlist1.GetPort()); // Should reference the same data as addrlist1 -- so when we change addrlist1 @@ -50,13 +59,15 @@ TEST(AddressListTest, Assignment) { EXPECT_EQ(80, addrlist2.GetPort()); } -TEST(AddressListTest, Copy) { +TEST(AddressListTest, CopyRecursive) { net::AddressList addrlist1; - CreateAddressList(&addrlist1, 85); + CreateLongAddressList(&addrlist1, 85); EXPECT_EQ(85, addrlist1.GetPort()); net::AddressList addrlist2; - addrlist2.Copy(addrlist1.head()); + addrlist2.Copy(addrlist1.head(), true); + + ASSERT_TRUE(addrlist2.head()->ai_next != NULL); // addrlist1 is the same as addrlist2 at this point. EXPECT_EQ(85, addrlist1.GetPort()); @@ -70,4 +81,43 @@ TEST(AddressListTest, Copy) { EXPECT_EQ(90, addrlist2.GetPort()); } +TEST(AddressListTest, CopyNonRecursive) { + net::AddressList addrlist1; + CreateLongAddressList(&addrlist1, 85); + EXPECT_EQ(85, addrlist1.GetPort()); + + net::AddressList addrlist2; + addrlist2.Copy(addrlist1.head(), false); + + ASSERT_TRUE(addrlist2.head()->ai_next == NULL); + + // addrlist1 is the same as addrlist2 at this point. + EXPECT_EQ(85, addrlist1.GetPort()); + EXPECT_EQ(85, addrlist2.GetPort()); + + // Changes to addrlist1 are not reflected in addrlist2. + addrlist1.SetPort(70); + addrlist2.SetPort(90); + + EXPECT_EQ(70, addrlist1.GetPort()); + EXPECT_EQ(90, addrlist2.GetPort()); +} + +TEST(AddressListTest, Append) { + net::AddressList addrlist1; + CreateAddressList("192.168.1.1", &addrlist1, 11); + EXPECT_EQ(11, addrlist1.GetPort()); + net::AddressList addrlist2; + CreateAddressList("192.168.1.2", &addrlist2, 12); + EXPECT_EQ(12, addrlist2.GetPort()); + + ASSERT_TRUE(addrlist1.head()->ai_next == NULL); + addrlist1.Append(addrlist2.head()); + ASSERT_TRUE(addrlist1.head()->ai_next != NULL); + + net::AddressList addrlist3; + addrlist3.Copy(addrlist1.head()->ai_next, false); + EXPECT_EQ(12, addrlist3.GetPort()); +} + } // namespace |