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

Side by Side Diff: chrome/browser/media/router/discovery/dial/dial_media_sink_service_impl_unittest.cc

Issue 2837363002: [Media Router] Use DialMediaSinkService in MediaRouterMojoImpl (Closed)
Patch Set: resolve code review comments from Derek Created 3 years, 7 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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698