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

Side by Side Diff: content/renderer/p2p/ipc_network_manager_unittest.cc

Issue 536133003: MergeNetworkList can't group address under the same interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix one more comment Created 6 years, 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
Sergey Ulanov 2014/09/10 23:37:16 2014, remove (c)
guoweis_webrtc 2014/09/11 00:15:32 Done.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/memory/scoped_ptr.h"
6 #include "content/renderer/p2p/ipc_network_manager.h"
7 #include "content/renderer/p2p/network_list_manager.h"
8 #include "net/base/net_util.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace content {
12
13 namespace {
14
15 class MockP2PSocketDispatcher : public NetworkListManager {
16 public:
17 virtual void AddNetworkListObserver(
18 NetworkListObserver*) OVERRIDE {}
Sergey Ulanov 2014/09/10 23:37:15 keep argument name?
guoweis_webrtc 2014/09/11 00:15:31 Done.
19
20 virtual void RemoveNetworkListObserver(
21 NetworkListObserver*) OVERRIDE {}
22
23 virtual ~MockP2PSocketDispatcher() {}
24 };
25
26 } // namespace
27
28 // 2 IPv6 addresses with only last digit different.
29 static const std::string kIPv6PublicAddrString1 =
Sergey Ulanov 2014/09/10 23:37:16 static std::string objects are not allowed (see ht
guoweis_webrtc 2014/09/11 00:15:32 Done.
30 "2401:fa00:4:1000:be30:5bff:fee5:c3";
31 static const std::string kIPv6PublicAddrString2 =
32 "2401:fa00:4:1000:be30:5bff:fee5:c4";
33
34 class IpcNetworkManagerTest : public testing::Test {
35 public:
36 IpcNetworkManagerTest() {
37 socket_dispatcher_.reset(new MockP2PSocketDispatcher());
Sergey Ulanov 2014/09/10 23:37:16 Use initializers, e.g.: IpcNetworkManagerTest()
guoweis_webrtc 2014/09/11 00:15:32 Done.
38 network_manager_.reset(new IpcNetworkManager(socket_dispatcher_.get()));
39 }
40
41 protected:
42 scoped_ptr<IpcNetworkManager> network_manager_;
43 scoped_ptr<MockP2PSocketDispatcher> socket_dispatcher_;
44
Sergey Ulanov 2014/09/10 23:37:16 remove this empty line
guoweis_webrtc 2014/09/11 00:15:31 Done.
45 };
46
47 // Test overall logic of IpcNetworkManager on OnNetworkListChanged
48 // that it should group addresses with the same network key under
49 // single Network class. This also tests the logic inside
50 // IpcNetworkManager in addition to MergeNetworkList.
51 // TODO(guoweis): disable this test case for now until fix for webrtc
52 // issue 19249005 integrated into chromium
53 TEST_F(IpcNetworkManagerTest, DISABLED_TestMergeNetworkList) {
54 net::NetworkInterfaceList list;
55 net::IPAddressNumber ip_number;
56 std::vector<rtc::Network*> networks;
57 rtc::IPAddress ip_address;
58
59 // Add 2 networks with the same prefix and prefix length.
60 EXPECT_TRUE(net::ParseIPLiteralToNumber(kIPv6PublicAddrString1, &ip_number));
61 list.push_back(
62 net::NetworkInterface("em1", "em1", 0,
63 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
64 ip_number, 64));
65
66 EXPECT_TRUE(net::ParseIPLiteralToNumber(kIPv6PublicAddrString2, &ip_number));
67 list.push_back(
68 net::NetworkInterface("em1", "em1", 0,
69 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
70 ip_number, 64));
71
72 network_manager_->OnNetworkListChanged(list);
73 network_manager_->GetNetworks(&networks);
74 EXPECT_EQ(1uL, networks.size());
75 EXPECT_EQ(2uL, networks[0]->GetIPs().size());
76
77 // Add another network with different prefix length, should result in
78 // a different network.
79 networks.clear();
80 list.push_back(
81 net::NetworkInterface("em1", "em1", 0,
82 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
83 ip_number, 48));
84
85 network_manager_->OnNetworkListChanged(list);
86
87 network_manager_->GetNetworks(&networks);
88
89 // Verify we have 2 networks now.
90 EXPECT_EQ(2uL, networks.size());
91 // Verify the network with prefix length of 64 has 2 IP addresses.
92 EXPECT_EQ(64, networks[1]->prefix_length());
93 EXPECT_EQ(2uL, networks[1]->GetIPs().size());
94 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString1, &ip_address));
95 EXPECT_EQ(networks[1]->GetIPs()[0], ip_address);
96 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString2, &ip_address));
97 EXPECT_EQ(networks[1]->GetIPs()[1], ip_address);
98 // Verify the network with prefix length of 48 has 2 IP addresses.
99 EXPECT_EQ(48, networks[0]->prefix_length());
100 EXPECT_EQ(1uL, networks[0]->GetIPs().size());
101 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString2, &ip_address));
102 EXPECT_EQ(networks[0]->GetIPs()[0], ip_address);
103 }
104
105 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698