OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 "chrome/browser/media/router/discovery/dial/dial_media_sink_service_imp
l.h" | 5 #include "chrome/browser/media/router/discovery/dial/dial_media_sink_service_imp
l.h" |
6 #include "base/test/mock_callback.h" | 6 #include "base/test/mock_callback.h" |
7 #include "base/timer/mock_timer.h" | 7 #include "base/timer/mock_timer.h" |
8 #include "chrome/browser/media/router/discovery/dial/dial_device_data.h" | 8 #include "chrome/browser/media/router/discovery/dial/dial_device_data.h" |
9 #include "chrome/browser/media/router/discovery/dial/dial_registry.h" | 9 #include "chrome/browser/media/router/discovery/dial/dial_registry.h" |
10 #include "chrome/browser/media/router/test_helper.h" | 10 #include "chrome/browser/media/router/test_helper.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 | 44 |
45 class DialMediaSinkServiceImplTest : public ::testing::Test { | 45 class DialMediaSinkServiceImplTest : public ::testing::Test { |
46 public: | 46 public: |
47 DialMediaSinkServiceImplTest() | 47 DialMediaSinkServiceImplTest() |
48 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), | 48 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP), |
49 media_sink_service_( | 49 media_sink_service_( |
50 new DialMediaSinkServiceImpl(mock_sink_discovered_cb_.Get(), | 50 new DialMediaSinkServiceImpl(mock_sink_discovered_cb_.Get(), |
51 profile_.GetRequestContext())) {} | 51 profile_.GetRequestContext())) {} |
52 | 52 |
53 void SetUp() override { | 53 void SetUp() override { |
54 EXPECT_CALL(test_dial_registry_, | |
55 RegisterObserver(media_sink_service_.get())); | |
56 EXPECT_CALL(test_dial_registry_, OnListenerAdded()); | |
57 | |
58 media_sink_service_->SetDialRegistryForTest(&test_dial_registry_); | 54 media_sink_service_->SetDialRegistryForTest(&test_dial_registry_); |
59 | 55 |
60 auto mock_description_service = | 56 auto mock_description_service = |
61 base::MakeUnique<MockDeviceDescriptionService>(mock_success_cb_.Get(), | 57 base::MakeUnique<MockDeviceDescriptionService>(mock_success_cb_.Get(), |
62 mock_error_cb_.Get()); | 58 mock_error_cb_.Get()); |
63 mock_description_service_ = mock_description_service.get(); | 59 mock_description_service_ = mock_description_service.get(); |
64 media_sink_service_->SetDescriptionServiceForTest( | 60 media_sink_service_->SetDescriptionServiceForTest( |
65 std::move(mock_description_service)); | 61 std::move(mock_description_service)); |
66 mock_timer_ = | 62 mock_timer_ = |
67 new base::MockTimer(true /*retain_user_task*/, false /*is_repeating*/); | 63 new base::MockTimer(true /*retain_user_task*/, false /*is_repeating*/); |
68 media_sink_service_->SetTimerForTest(base::WrapUnique(mock_timer_)); | 64 media_sink_service_->SetTimerForTest(base::WrapUnique(mock_timer_)); |
69 } | 65 } |
70 | 66 |
71 void TearDown() override { | 67 void TearDown() override { |
72 EXPECT_CALL(test_dial_registry_, | |
73 UnregisterObserver(media_sink_service_.get())); | |
74 EXPECT_CALL(test_dial_registry_, OnListenerRemoved()); | |
75 } | 68 } |
76 | 69 |
77 protected: | 70 protected: |
78 const content::TestBrowserThreadBundle thread_bundle_; | 71 const content::TestBrowserThreadBundle thread_bundle_; |
79 TestingProfile profile_; | 72 TestingProfile profile_; |
80 | 73 |
81 base::MockCallback<MediaSinkService::OnSinksDiscoveredCallback> | 74 base::MockCallback<MediaSinkService::OnSinksDiscoveredCallback> |
82 mock_sink_discovered_cb_; | 75 mock_sink_discovered_cb_; |
83 base::MockCallback< | 76 base::MockCallback< |
84 MockDeviceDescriptionService::DeviceDescriptionParseSuccessCallback> | 77 MockDeviceDescriptionService::DeviceDescriptionParseSuccessCallback> |
85 mock_success_cb_; | 78 mock_success_cb_; |
86 base::MockCallback< | 79 base::MockCallback< |
87 MockDeviceDescriptionService::DeviceDescriptionParseErrorCallback> | 80 MockDeviceDescriptionService::DeviceDescriptionParseErrorCallback> |
88 mock_error_cb_; | 81 mock_error_cb_; |
89 | 82 |
90 TestDialRegistry test_dial_registry_; | 83 TestDialRegistry test_dial_registry_; |
91 MockDeviceDescriptionService* mock_description_service_; | 84 MockDeviceDescriptionService* mock_description_service_; |
92 base::MockTimer* mock_timer_; | 85 base::MockTimer* mock_timer_; |
93 | 86 |
94 std::unique_ptr<DialMediaSinkServiceImpl> media_sink_service_; | 87 std::unique_ptr<DialMediaSinkServiceImpl> media_sink_service_; |
95 | 88 |
96 DISALLOW_COPY_AND_ASSIGN(DialMediaSinkServiceImplTest); | 89 DISALLOW_COPY_AND_ASSIGN(DialMediaSinkServiceImplTest); |
97 }; | 90 }; |
98 | 91 |
99 TEST_F(DialMediaSinkServiceImplTest, TestStart) { | |
100 media_sink_service_->Start(); | |
101 | |
102 DialRegistry::DeviceList deviceList; | |
103 DialDeviceData first_device("first", GURL("http://127.0.0.1/dd.xml"), | |
104 base::Time::Now()); | |
105 DialDeviceData second_device("second", GURL("http://127.0.0.2/dd.xml"), | |
106 base::Time::Now()); | |
107 DialDeviceData third_device("third", GURL("http://127.0.0.3/dd.xml"), | |
108 base::Time::Now()); | |
109 deviceList.push_back(first_device); | |
110 deviceList.push_back(second_device); | |
111 deviceList.push_back(third_device); | |
112 | |
113 EXPECT_CALL(*mock_description_service_, GetDeviceDescriptions(deviceList, _)); | |
114 | |
115 media_sink_service_->OnDialDeviceEvent(deviceList); | |
116 EXPECT_TRUE(media_sink_service_->finish_timer_->IsRunning()); | |
117 } | |
118 | |
119 TEST_F(DialMediaSinkServiceImplTest, TestOnDeviceDescriptionAvailable) { | 92 TEST_F(DialMediaSinkServiceImplTest, TestOnDeviceDescriptionAvailable) { |
120 DialDeviceData device_data("first", GURL("http://127.0.0.1/dd.xml"), | 93 DialDeviceData device_data("first", GURL("http://127.0.0.1/dd.xml"), |
121 base::Time::Now()); | 94 base::Time::Now()); |
122 ParsedDialDeviceDescription device_description; | 95 ParsedDialDeviceDescription device_description; |
123 device_description.model_name = "model name"; | 96 device_description.model_name = "model name"; |
124 device_description.friendly_name = "friendly name"; | 97 device_description.friendly_name = "friendly name"; |
125 device_description.app_url = GURL("http://192.168.1.1/apps"); | 98 device_description.app_url = GURL("http://192.168.1.1/apps"); |
126 device_description.unique_id = "unique id"; | 99 device_description.unique_id = "unique id"; |
127 | 100 |
128 media_sink_service_->OnDeviceDescriptionAvailable(device_data, | 101 media_sink_service_->OnDeviceDescriptionAvailable(device_data, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
160 EXPECT_CALL(mock_sink_discovered_cb_, Run(_)); | 133 EXPECT_CALL(mock_sink_discovered_cb_, Run(_)); |
161 mock_timer_->Fire(); | 134 mock_timer_->Fire(); |
162 | 135 |
163 EXPECT_FALSE(mock_timer_->IsRunning()); | 136 EXPECT_FALSE(mock_timer_->IsRunning()); |
164 device_description.app_url = GURL("http://192.168.1.11/apps"); | 137 device_description.app_url = GURL("http://192.168.1.11/apps"); |
165 media_sink_service_->OnDeviceDescriptionAvailable(device_data, | 138 media_sink_service_->OnDeviceDescriptionAvailable(device_data, |
166 device_description); | 139 device_description); |
167 EXPECT_TRUE(mock_timer_->IsRunning()); | 140 EXPECT_TRUE(mock_timer_->IsRunning()); |
168 } | 141 } |
169 | 142 |
| 143 TEST_F(DialMediaSinkServiceImplTest, TestRestartAfterStop) { |
| 144 EXPECT_CALL(test_dial_registry_, RegisterObserver(media_sink_service_.get())) |
| 145 .Times(2); |
| 146 EXPECT_CALL(test_dial_registry_, OnListenerAdded()).Times(2); |
| 147 media_sink_service_->Start(); |
| 148 EXPECT_TRUE(mock_timer_->IsRunning()); |
| 149 |
| 150 EXPECT_CALL(test_dial_registry_, |
| 151 UnregisterObserver(media_sink_service_.get())); |
| 152 EXPECT_CALL(test_dial_registry_, OnListenerRemoved()); |
| 153 media_sink_service_->Stop(); |
| 154 |
| 155 mock_timer_ = |
| 156 new base::MockTimer(true /*retain_user_task*/, false /*is_repeating*/); |
| 157 media_sink_service_->SetTimerForTest(base::WrapUnique(mock_timer_)); |
| 158 media_sink_service_->Start(); |
| 159 EXPECT_TRUE(mock_timer_->IsRunning()); |
| 160 |
| 161 EXPECT_CALL(test_dial_registry_, |
| 162 UnregisterObserver(media_sink_service_.get())); |
| 163 EXPECT_CALL(test_dial_registry_, OnListenerRemoved()); |
| 164 } |
| 165 |
170 } // namespace media_router | 166 } // namespace media_router |
OLD | NEW |