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

Side by Side Diff: chrome/browser/media/desktop_media_picker_model_unittest.cc

Issue 23447012: Add interface for DesktopMediaPickerModel (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed DISALLOW_ASSIGN. Created 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/media/desktop_media_picker_model.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/desktop_media_picker_model.h" 5 #include "chrome/browser/media/desktop_media_picker_model.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "base/synchronization/lock.h" 9 #include "base/synchronization/lock.h"
10 #include "content/public/test/test_browser_thread.h" 10 #include "content/public/test/test_browser_thread.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 class DesktopMediaPickerModelTest : public testing::Test { 122 class DesktopMediaPickerModelTest : public testing::Test {
123 public: 123 public:
124 DesktopMediaPickerModelTest() 124 DesktopMediaPickerModelTest()
125 : window_capturer_(NULL), 125 : window_capturer_(NULL),
126 ui_thread_(content::BrowserThread::UI, 126 ui_thread_(content::BrowserThread::UI,
127 &message_loop_) { 127 &message_loop_) {
128 } 128 }
129 129
130 void CreateWithDefaultCapturers() { 130 void CreateWithDefaultCapturers() {
131 window_capturer_ = new FakeWindowCapturer(); 131 window_capturer_ = new FakeWindowCapturer();
132 model_.reset(new DesktopMediaPickerModel( 132 model_.reset(new DesktopMediaPickerModelImpl(
133 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer()), 133 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer()),
134 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); 134 scoped_ptr<webrtc::WindowCapturer>(window_capturer_)));
135 135
136 // Set update period to reduce the time it takes to run tests. 136 // Set update period to reduce the time it takes to run tests.
137 model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(0)); 137 model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(0));
138 } 138 }
139 139
140 protected: 140 protected:
141 // Must be listed before |model_|, so it's destroyed last. 141 // Must be listed before |model_|, so it's destroyed last.
142 MockObserver observer_; 142 MockObserver observer_;
143 143
144 // Owned by |model_|; 144 // Owned by |model_|;
145 FakeWindowCapturer* window_capturer_; 145 FakeWindowCapturer* window_capturer_;
146 146
147 scoped_ptr<DesktopMediaPickerModel> model_; 147 scoped_ptr<DesktopMediaPickerModelImpl> model_;
148 148
149 base::MessageLoop message_loop_; 149 base::MessageLoop message_loop_;
150 content::TestBrowserThread ui_thread_; 150 content::TestBrowserThread ui_thread_;
151 151
152 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerModelTest); 152 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerModelTest);
153 }; 153 };
154 154
155 ACTION_P2(CheckListSize, model, expected_list_size) { 155 ACTION_P2(CheckListSize, model, expected_list_size) {
156 EXPECT_EQ(expected_list_size, model->source_count()); 156 EXPECT_EQ(expected_list_size, model->source_count());
157 } 157 }
(...skipping 28 matching lines...) Expand all
186 186
187 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN); 187 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN);
188 EXPECT_EQ(model_->source(0).id.id, 0); 188 EXPECT_EQ(model_->source(0).id.id, 0);
189 EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW); 189 EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW);
190 EXPECT_EQ(model_->source(1).id.id, 0); 190 EXPECT_EQ(model_->source(1).id.id, 0);
191 EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title)); 191 EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title));
192 } 192 }
193 193
194 TEST_F(DesktopMediaPickerModelTest, WindowsOnly) { 194 TEST_F(DesktopMediaPickerModelTest, WindowsOnly) {
195 window_capturer_ = new FakeWindowCapturer(); 195 window_capturer_ = new FakeWindowCapturer();
196 model_.reset(new DesktopMediaPickerModel( 196 model_.reset(new DesktopMediaPickerModelImpl(
197 scoped_ptr<webrtc::ScreenCapturer>(), 197 scoped_ptr<webrtc::ScreenCapturer>(),
198 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); 198 scoped_ptr<webrtc::WindowCapturer>(window_capturer_)));
199 199
200 webrtc::WindowCapturer::WindowList list; 200 webrtc::WindowCapturer::WindowList list;
201 webrtc::WindowCapturer::Window window; 201 webrtc::WindowCapturer::Window window;
202 window.id = 0; 202 window.id = 0;
203 window.title = "Test window"; 203 window.title = "Test window";
204 list.push_back(window); 204 list.push_back(window);
205 window_capturer_->SetWindowList(list); 205 window_capturer_->SetWindowList(list);
206 206
207 { 207 {
208 testing::InSequence dummy; 208 testing::InSequence dummy;
209 EXPECT_CALL(observer_, OnSourceAdded(0)) 209 EXPECT_CALL(observer_, OnSourceAdded(0))
210 .WillOnce(CheckListSize(model_.get(), 1)); 210 .WillOnce(CheckListSize(model_.get(), 1));
211 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) 211 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0))
212 .WillOnce(QuitMessageLoop(&message_loop_)); 212 .WillOnce(QuitMessageLoop(&message_loop_));
213 } 213 }
214 model_->StartUpdating(&observer_); 214 model_->StartUpdating(&observer_);
215 215
216 message_loop_.Run(); 216 message_loop_.Run();
217 217
218 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_WINDOW); 218 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_WINDOW);
219 } 219 }
220 220
221 TEST_F(DesktopMediaPickerModelTest, ScreenOnly) { 221 TEST_F(DesktopMediaPickerModelTest, ScreenOnly) {
222 model_.reset(new DesktopMediaPickerModel( 222 model_.reset(new DesktopMediaPickerModelImpl(
223 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer), 223 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer),
224 scoped_ptr<webrtc::WindowCapturer>())); 224 scoped_ptr<webrtc::WindowCapturer>()));
225 225
226 { 226 {
227 testing::InSequence dummy; 227 testing::InSequence dummy;
228 EXPECT_CALL(observer_, OnSourceAdded(0)) 228 EXPECT_CALL(observer_, OnSourceAdded(0))
229 .WillOnce(CheckListSize(model_.get(), 1)); 229 .WillOnce(CheckListSize(model_.get(), 1));
230 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) 230 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0))
231 .WillOnce(QuitMessageLoop(&message_loop_)); 231 .WillOnce(QuitMessageLoop(&message_loop_));
232 } 232 }
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) 394 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
395 .WillOnce(QuitMessageLoop(&message_loop_)); 395 .WillOnce(QuitMessageLoop(&message_loop_));
396 396
397 // Update frame for the window and verify that we get notification about it. 397 // Update frame for the window and verify that we get notification about it.
398 window_capturer_->SetNextFrameValue(0, 1); 398 window_capturer_->SetNextFrameValue(0, 1);
399 399
400 message_loop_.Run(); 400 message_loop_.Run();
401 } 401 }
402 402
403 } // namespace 403 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/media/desktop_media_picker_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698