OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "base/memory/ref_counted.h" | 5 #include "base/memory/ref_counted.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
8 #include "chrome/browser/extensions/api/dial/dial_device_data.h" | 8 #include "chrome/browser/extensions/api/dial/dial_device_data.h" |
9 #include "chrome/browser/extensions/api/dial/dial_service.h" | 9 #include "chrome/browser/extensions/api/dial/dial_service.h" |
10 #include "net/base/capturing_net_log.h" | 10 #include "net/base/capturing_net_log.h" |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
60 base::MessageLoop loop(base::MessageLoop::TYPE_IO); | 60 base::MessageLoop loop(base::MessageLoop::TYPE_IO); |
61 // Setting the finish delay to zero disables the timer that invokes | 61 // Setting the finish delay to zero disables the timer that invokes |
62 // FinishDiscovery(). | 62 // FinishDiscovery(). |
63 dial_service_.finish_delay_ = TimeDelta::FromSeconds(0); | 63 dial_service_.finish_delay_ = TimeDelta::FromSeconds(0); |
64 dial_service_.request_interval_ = TimeDelta::FromSeconds(0); | 64 dial_service_.request_interval_ = TimeDelta::FromSeconds(0); |
65 dial_service_.max_requests_ = 4; | 65 dial_service_.max_requests_ = 4; |
66 dial_service_.discovery_active_ = true; | 66 dial_service_.discovery_active_ = true; |
67 EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(4); | 67 EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(4); |
68 EXPECT_CALL(mock_observer_, OnDiscoveryFinished(A<DialService*>())).Times(1); | 68 EXPECT_CALL(mock_observer_, OnDiscoveryFinished(A<DialService*>())).Times(1); |
69 dial_service_.BindAndAddSocket(mock_ip_); | 69 dial_service_.BindAndAddSocket(mock_ip_); |
70 EXPECT_EQ(1u, dial_service_.dial_sockets_.size()); | |
mark a. foltz
2013/12/19 17:27:41
I don't think it's necessary to designate constant
| |
70 dial_service_.SendOneRequest(); | 71 dial_service_.SendOneRequest(); |
71 loop.RunUntilIdle(); | 72 loop.RunUntilIdle(); |
72 dial_service_.FinishDiscovery(); | 73 dial_service_.FinishDiscovery(); |
73 } | 74 } |
74 | 75 |
76 TEST_F(DialServiceTest, TestMultipleNetworkInterfaces) { | |
77 base::MessageLoop loop(base::MessageLoop::TYPE_IO); | |
78 // Setting the finish delay to zero disables the timer that invokes | |
79 // FinishDiscovery(). | |
80 dial_service_.finish_delay_ = TimeDelta::FromSeconds(0); | |
81 dial_service_.request_interval_ = TimeDelta::FromSeconds(0); | |
82 dial_service_.max_requests_ = 4; | |
83 dial_service_.discovery_active_ = true; | |
84 net::NetworkInterfaceList interface_list; | |
85 interface_list.push_back(net::NetworkInterface("network1", 0, mock_ip_, 0)); | |
86 interface_list.push_back(net::NetworkInterface("network2", 1, mock_ip_, 0)); | |
87 interface_list.push_back(net::NetworkInterface("network3", 2, mock_ip_, 0)); | |
88 | |
89 // "network4" is equivalent to "network2" because both the address family | |
90 // and interface index are the same. | |
91 interface_list.push_back(net::NetworkInterface("network4", 1, mock_ip_, 0)); | |
92 | |
93 // 3 sockets * 4 requests per socket = 12 requests | |
94 EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(12); | |
95 EXPECT_CALL(mock_observer_, OnDiscoveryFinished(A<DialService*>())).Times(1); | |
96 | |
97 dial_service_.SendNetworkList(interface_list); | |
98 EXPECT_EQ(3u, dial_service_.dial_sockets_.size()); | |
mark a. foltz
2013/12/19 17:27:41
Ditto.
| |
99 | |
100 loop.RunUntilIdle(); | |
101 dial_service_.FinishDiscovery(); | |
102 } | |
103 | |
75 TEST_F(DialServiceTest, TestOnDiscoveryRequest) { | 104 TEST_F(DialServiceTest, TestOnDiscoveryRequest) { |
76 dial_service_.discovery_active_ = true; | 105 dial_service_.discovery_active_ = true; |
77 dial_service_.num_requests_sent_ = 1; | 106 dial_service_.num_requests_sent_ = 1; |
78 dial_service_.max_requests_ = 1; | 107 dial_service_.max_requests_ = 1; |
79 size_t num_bytes = dial_service_.send_buffer_->size(); | 108 size_t num_bytes = dial_service_.send_buffer_->size(); |
80 EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(1); | 109 EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(1); |
81 dial_socket_->OnSocketWrite(num_bytes, num_bytes); | 110 dial_socket_->OnSocketWrite(num_bytes, num_bytes); |
82 } | 111 } |
83 | 112 |
84 TEST_F(DialServiceTest, TestOnDeviceDiscovered) { | 113 TEST_F(DialServiceTest, TestOnDeviceDiscovered) { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
159 | 188 |
160 // Empty USN | 189 // Empty USN |
161 EXPECT_FALSE(DialServiceImpl::DialSocket::ParseResponse( | 190 EXPECT_FALSE(DialServiceImpl::DialSocket::ParseResponse( |
162 "HTTP/1.1 OK\r\n" | 191 "HTTP/1.1 OK\r\n" |
163 "LOCATION: http://127.0.0.1/dd.xml\r\n" | 192 "LOCATION: http://127.0.0.1/dd.xml\r\n" |
164 "USN:\r\n\r\n", | 193 "USN:\r\n\r\n", |
165 now, ¬_parsed)); | 194 now, ¬_parsed)); |
166 } | 195 } |
167 | 196 |
168 } // namespace extensions | 197 } // namespace extensions |
OLD | NEW |