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

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: address comments by SergeyU 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.
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 "content/renderer/p2p/ipc_network_manager.h"
6 #include "net/base/net_util.h"
7 #include "testing/gtest/include/gtest/gtest.h"
8
9 namespace content {
10
11 namespace {
12
13 class MockP2PSocketDispatcher : public NetworkListObserverManager {
14 public:
15 virtual void AddNetworkListObserver(
16 NetworkListObserver* network_list_observer) OVERRIDE {}
17
18 virtual void RemoveNetworkListObserver(
19 NetworkListObserver* network_list_observer) OVERRIDE {}
20
21 virtual ~MockP2PSocketDispatcher() {}
22 };
23
24 } // namespace
25
26 // 2 IPv6 addresses with only last digit different.
27 static const std::string kIPv6PublicAddrString1 =
28 "2401:fa00:4:1000:be30:5bff:fee5:c3";
29 static const std::string kIPv6PublicAddrString2 =
30 "2401:fa00:4:1000:be30:5bff:fee5:c4";
31
32 class IpcNetworkManagerTest : public testing::Test {
33 public:
34 IpcNetworkManagerTest() {
35 socket_dispatcher_ = new MockP2PSocketDispatcher();
36 mgr_ = new IpcNetworkManager(socket_dispatcher_);
37 }
38
39 virtual ~IpcNetworkManagerTest() {
40 delete mgr_;
Sergey Ulanov 2014/09/10 22:28:25 please use scoped_ptr<> to store owned objects. Th
guoweis_webrtc 2014/09/10 23:22:25 Done.
41 delete socket_dispatcher_;
42 }
43
44 protected:
45 IpcNetworkManager* mgr_;
Sergey Ulanov 2014/09/10 22:28:25 this is not a good name. http://google-styleguide.
guoweis_webrtc 2014/09/10 23:22:25 Done.
46 MockP2PSocketDispatcher* socket_dispatcher_;
47
48 };
49
50 // Test overall logic of IpcNetworkManager on OnNetworkListChanged
51 // that it should group addresses with the same network key under
52 // single Network class. This also tests the logic inside
53 // IpcNetworkManager in addition to MergeNetworkList.
54 // TODO(guoweis): disable this test case for now until fix for webrtc
55 // issue 19249005 integrated into chromium
56 TEST_F(IpcNetworkManagerTest, DISABLED_TestMergeNetworkList) {
57 net::NetworkInterfaceList list;
58 net::IPAddressNumber ip_number;
59 std::vector<rtc::Network*> networks;
60 rtc::IPAddress ip_address;
61
62 // Add 2 networks with the same prefix and prefix length.
63 EXPECT_TRUE(net::ParseIPLiteralToNumber(kIPv6PublicAddrString1, &ip_number));
64 list.push_back(
65 net::NetworkInterface("em1", "em1", 0,
66 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
67 ip_number, 64));
68
69 EXPECT_TRUE(net::ParseIPLiteralToNumber(kIPv6PublicAddrString2, &ip_number));
70 list.push_back(
71 net::NetworkInterface("em1", "em1", 0,
72 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
73 ip_number, 64));
74
75 mgr_->OnNetworkListChanged(list);
76 mgr_->GetNetworks(&networks);
77 EXPECT_EQ(1uL, networks.size());
78 EXPECT_EQ(2uL, networks[0]->GetIPs().size());
79
80 // Add another network with different prefix length, should result in
81 // a different network.
82 networks.clear();
83 list.push_back(
84 net::NetworkInterface("em1", "em1", 0,
85 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
86 ip_number, 48));
87
88 mgr_->OnNetworkListChanged(list);
89
90 mgr_->GetNetworks(&networks);
91
92 // Verify we have 2 networks now.
93 EXPECT_EQ(2uL, networks.size());
94 // Verify the network with prefix length of 64 has 2 IP addresses.
95 EXPECT_EQ(64, networks[1]->prefix_length());
96 EXPECT_EQ(2uL, networks[1]->GetIPs().size());
97 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString1, &ip_address));
98 EXPECT_EQ(networks[1]->GetIPs()[0], ip_address);
99 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString2, &ip_address));
100 EXPECT_EQ(networks[1]->GetIPs()[1], ip_address);
101 // Verify the network with prefix length of 48 has 2 IP addresses.
102 EXPECT_EQ(48, networks[0]->prefix_length());
103 EXPECT_EQ(1uL, networks[0]->GetIPs().size());
104 EXPECT_TRUE(rtc::IPFromString(kIPv6PublicAddrString2, &ip_address));
105 EXPECT_EQ(networks[0]->GetIPs()[0], ip_address);
106 }
107
108 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698