Index: chrome/browser/extensions/api/dial/dial_service_unittest.cc |
diff --git a/chrome/browser/extensions/api/dial/dial_service_unittest.cc b/chrome/browser/extensions/api/dial/dial_service_unittest.cc |
index edc44ba256c246562e1b17dee42dcebce78e7d04..da1cc7b53e03db24a08923deefc191757b7d6d20 100644 |
--- a/chrome/browser/extensions/api/dial/dial_service_unittest.cc |
+++ b/chrome/browser/extensions/api/dial/dial_service_unittest.cc |
@@ -3,13 +3,16 @@ |
// found in the LICENSE file. |
#include "base/memory/ref_counted.h" |
+#include "base/message_loop.h" |
#include "chrome/browser/extensions/api/dial/dial_device_data.h" |
#include "chrome/browser/extensions/api/dial/dial_service.h" |
#include "net/base/capturing_net_log.h" |
+#include "net/base/ip_endpoint.h" |
#include "testing/gmock/include/gmock/gmock.h" |
#include "testing/gtest/include/gtest/gtest.h" |
using base::Time; |
+using base::TimeDelta; |
using ::testing::A; |
using ::testing::AtLeast; |
using ::testing::Return; |
@@ -39,18 +42,36 @@ class MockObserver : public DialService::Observer { |
class DialServiceTest : public testing::Test { |
public: |
DialServiceTest() : dial_service_(&capturing_net_log_) { |
+ CHECK(net::ParseIPLiteralToNumber("0.0.0.0", &mock_ip_)); |
dial_service_.AddObserver(&mock_observer_); |
} |
protected: |
net::CapturingNetLog capturing_net_log_; |
+ net::IPAddressNumber mock_ip_; |
DialServiceImpl dial_service_; |
MockObserver mock_observer_; |
}; |
+TEST_F(DialServiceTest, TestSendMultipleRequests) { |
+ MessageLoop loop(MessageLoop::TYPE_IO); |
+ // Setting the finish delay to zero disables the timer that invokes |
+ // FinishDiscovery(). |
+ dial_service_.finish_delay_ = TimeDelta::FromSeconds(0); |
+ dial_service_.request_interval_ = TimeDelta::FromSeconds(0); |
+ dial_service_.max_requests_ = 4; |
+ dial_service_.discovery_active_ = true; |
+ EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(4); |
+ EXPECT_CALL(mock_observer_, OnDiscoveryFinished(A<DialService*>())).Times(1); |
+ dial_service_.BindSocketAndSendRequest(mock_ip_); |
+ loop.RunUntilIdle(); |
+ dial_service_.FinishDiscovery(); |
+} |
+ |
TEST_F(DialServiceTest, TestOnDiscoveryRequest) { |
dial_service_.discovery_active_ = true; |
+ dial_service_.num_requests_sent_ = 1; |
+ dial_service_.max_requests_ = 1; |
size_t num_bytes = dial_service_.send_buffer_->size(); |
- |
EXPECT_CALL(mock_observer_, OnDiscoveryRequest(A<DialService*>())).Times(1); |
dial_service_.OnSocketWrite(num_bytes); |
} |
@@ -60,6 +81,7 @@ TEST_F(DialServiceTest, TestOnDeviceDiscovered) { |
int response_size = arraysize(kValidResponse) - 1; |
dial_service_.recv_buffer_ = new net::IOBufferWithSize(response_size); |
strncpy(dial_service_.recv_buffer_->data(), kValidResponse, response_size); |
+ dial_service_.recv_address_ = net::IPEndPoint(mock_ip_, 12345); |
DialDeviceData expected_device; |
expected_device.set_device_id("some_id"); |