| OLD | NEW |
| 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/native_desktop_media_list.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 "chrome/browser/media/desktop_media_list_observer.h" |
| 10 #include "content/public/test/test_browser_thread.h" | 11 #include "content/public/test/test_browser_thread.h" |
| 11 #include "testing/gmock/include/gmock/gmock.h" | 12 #include "testing/gmock/include/gmock/gmock.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 13 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" | 14 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" |
| 14 #include "third_party/webrtc/modules/desktop_capture/screen_capturer.h" | 15 #include "third_party/webrtc/modules/desktop_capture/screen_capturer.h" |
| 15 #include "third_party/webrtc/modules/desktop_capture/window_capturer.h" | 16 #include "third_party/webrtc/modules/desktop_capture/window_capturer.h" |
| 16 | 17 |
| 17 using testing::_; | 18 using testing::_; |
| 18 using testing::DoAll; | 19 using testing::DoAll; |
| 19 | 20 |
| 20 namespace { | 21 namespace { |
| 21 | 22 |
| 22 class MockObserver : public DesktopMediaPickerModel::Observer { | 23 class MockObserver : public DesktopMediaListObserver { |
| 23 public: | 24 public: |
| 24 MOCK_METHOD1(OnSourceAdded, void(int index)); | 25 MOCK_METHOD1(OnSourceAdded, void(int index)); |
| 25 MOCK_METHOD1(OnSourceRemoved, void(int index)); | 26 MOCK_METHOD1(OnSourceRemoved, void(int index)); |
| 26 MOCK_METHOD1(OnSourceNameChanged, void(int index)); | 27 MOCK_METHOD1(OnSourceNameChanged, void(int index)); |
| 27 MOCK_METHOD1(OnSourceThumbnailChanged, void(int index)); | 28 MOCK_METHOD1(OnSourceThumbnailChanged, void(int index)); |
| 28 }; | 29 }; |
| 29 | 30 |
| 30 class FakeScreenCapturer : public webrtc::ScreenCapturer { | 31 class FakeScreenCapturer : public webrtc::ScreenCapturer { |
| 31 public: | 32 public: |
| 32 FakeScreenCapturer() {} | 33 FakeScreenCapturer() {} |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 | 113 |
| 113 WindowId selected_window_id_; | 114 WindowId selected_window_id_; |
| 114 | 115 |
| 115 // Frames to be captured per window. | 116 // Frames to be captured per window. |
| 116 std::map<WindowId, int8_t> frame_values_; | 117 std::map<WindowId, int8_t> frame_values_; |
| 117 base::Lock frame_values_lock_; | 118 base::Lock frame_values_lock_; |
| 118 | 119 |
| 119 DISALLOW_COPY_AND_ASSIGN(FakeWindowCapturer); | 120 DISALLOW_COPY_AND_ASSIGN(FakeWindowCapturer); |
| 120 }; | 121 }; |
| 121 | 122 |
| 122 class DesktopMediaPickerModelTest : public testing::Test { | 123 class DesktopMediaListTest : public testing::Test { |
| 123 public: | 124 public: |
| 124 DesktopMediaPickerModelTest() | 125 DesktopMediaListTest() |
| 125 : window_capturer_(NULL), | 126 : window_capturer_(NULL), |
| 126 ui_thread_(content::BrowserThread::UI, | 127 ui_thread_(content::BrowserThread::UI, |
| 127 &message_loop_) { | 128 &message_loop_) { |
| 128 } | 129 } |
| 129 | 130 |
| 130 void CreateWithDefaultCapturers() { | 131 void CreateWithDefaultCapturers() { |
| 131 window_capturer_ = new FakeWindowCapturer(); | 132 window_capturer_ = new FakeWindowCapturer(); |
| 132 model_.reset(new DesktopMediaPickerModelImpl( | 133 model_.reset(new NativeDesktopMediaList( |
| 133 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer()), | 134 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer()), |
| 134 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); | 135 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); |
| 135 | 136 |
| 136 // Set update period to reduce the time it takes to run tests. | 137 // Set update period to reduce the time it takes to run tests. |
| 137 model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(0)); | 138 model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(0)); |
| 138 } | 139 } |
| 139 | 140 |
| 140 protected: | 141 protected: |
| 141 // Must be listed before |model_|, so it's destroyed last. | 142 // Must be listed before |model_|, so it's destroyed last. |
| 142 MockObserver observer_; | 143 MockObserver observer_; |
| 143 | 144 |
| 144 // Owned by |model_|; | 145 // Owned by |model_|; |
| 145 FakeWindowCapturer* window_capturer_; | 146 FakeWindowCapturer* window_capturer_; |
| 146 | 147 |
| 147 scoped_ptr<DesktopMediaPickerModelImpl> model_; | 148 scoped_ptr<NativeDesktopMediaList> model_; |
| 148 | 149 |
| 149 base::MessageLoop message_loop_; | 150 base::MessageLoop message_loop_; |
| 150 content::TestBrowserThread ui_thread_; | 151 content::TestBrowserThread ui_thread_; |
| 151 | 152 |
| 152 DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerModelTest); | 153 DISALLOW_COPY_AND_ASSIGN(DesktopMediaListTest); |
| 153 }; | 154 }; |
| 154 | 155 |
| 155 ACTION_P2(CheckListSize, model, expected_list_size) { | 156 ACTION_P2(CheckListSize, model, expected_list_size) { |
| 156 EXPECT_EQ(expected_list_size, model->source_count()); | 157 EXPECT_EQ(expected_list_size, model->GetSourceCount()); |
| 157 } | 158 } |
| 158 | 159 |
| 159 ACTION_P(QuitMessageLoop, message_loop) { | 160 ACTION_P(QuitMessageLoop, message_loop) { |
| 160 message_loop->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); | 161 message_loop->PostTask(FROM_HERE, base::MessageLoop::QuitClosure()); |
| 161 } | 162 } |
| 162 | 163 |
| 163 TEST_F(DesktopMediaPickerModelTest, InitialSourceList) { | 164 TEST_F(DesktopMediaListTest, InitialSourceList) { |
| 164 CreateWithDefaultCapturers(); | 165 CreateWithDefaultCapturers(); |
| 165 | 166 |
| 166 webrtc::WindowCapturer::WindowList list; | 167 webrtc::WindowCapturer::WindowList list; |
| 167 webrtc::WindowCapturer::Window window; | 168 webrtc::WindowCapturer::Window window; |
| 168 window.id = 0; | 169 window.id = 0; |
| 169 window.title = "Test window"; | 170 window.title = "Test window"; |
| 170 list.push_back(window); | 171 list.push_back(window); |
| 171 window_capturer_->SetWindowList(list); | 172 window_capturer_->SetWindowList(list); |
| 172 | 173 |
| 173 { | 174 { |
| 174 testing::InSequence dummy; | 175 testing::InSequence dummy; |
| 175 EXPECT_CALL(observer_, OnSourceAdded(0)) | 176 EXPECT_CALL(observer_, OnSourceAdded(0)) |
| 176 .WillOnce(CheckListSize(model_.get(), 1)); | 177 .WillOnce(CheckListSize(model_.get(), 1)); |
| 177 EXPECT_CALL(observer_, OnSourceAdded(1)) | 178 EXPECT_CALL(observer_, OnSourceAdded(1)) |
| 178 .WillOnce(CheckListSize(model_.get(), 2)); | 179 .WillOnce(CheckListSize(model_.get(), 2)); |
| 179 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)); | 180 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)); |
| 180 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) | 181 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) |
| 181 .WillOnce(QuitMessageLoop(&message_loop_)); | 182 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 182 } | 183 } |
| 183 model_->StartUpdating(&observer_); | 184 model_->StartUpdating(&observer_); |
| 184 | 185 |
| 185 message_loop_.Run(); | 186 message_loop_.Run(); |
| 186 | 187 |
| 187 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN); | 188 EXPECT_EQ(model_->GetSource(0).id.type, content::DesktopMediaID::TYPE_SCREEN); |
| 188 EXPECT_EQ(model_->source(0).id.id, 0); | 189 EXPECT_EQ(model_->GetSource(0).id.id, 0); |
| 189 EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW); | 190 EXPECT_EQ(model_->GetSource(1).id.type, content::DesktopMediaID::TYPE_WINDOW); |
| 190 EXPECT_EQ(model_->source(1).id.id, 0); | 191 EXPECT_EQ(model_->GetSource(1).id.id, 0); |
| 191 EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title)); | 192 EXPECT_EQ(model_->GetSource(1).name, UTF8ToUTF16(window.title)); |
| 192 } | 193 } |
| 193 | 194 |
| 194 // Verifies that the window specified with SetViewDialogWindowId() is filtered | 195 // Verifies that the window specified with SetViewDialogWindowId() is filtered |
| 195 // from the results. | 196 // from the results. |
| 196 TEST_F(DesktopMediaPickerModelTest, Filtering) { | 197 TEST_F(DesktopMediaListTest, Filtering) { |
| 197 CreateWithDefaultCapturers(); | 198 CreateWithDefaultCapturers(); |
| 198 | 199 |
| 199 webrtc::WindowCapturer::WindowList list; | 200 webrtc::WindowCapturer::WindowList list; |
| 200 webrtc::WindowCapturer::Window window; | 201 webrtc::WindowCapturer::Window window; |
| 201 | 202 |
| 202 window.id = 0; | 203 window.id = 0; |
| 203 window.title = "Test window"; | 204 window.title = "Test window"; |
| 204 list.push_back(window); | 205 list.push_back(window); |
| 205 | 206 |
| 206 window.id = 1; | 207 window.id = 1; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 217 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)); | 218 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)); |
| 218 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) | 219 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) |
| 219 .WillOnce(QuitMessageLoop(&message_loop_)); | 220 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 220 } | 221 } |
| 221 | 222 |
| 222 model_->SetViewDialogWindowId(0); | 223 model_->SetViewDialogWindowId(0); |
| 223 | 224 |
| 224 model_->StartUpdating(&observer_); | 225 model_->StartUpdating(&observer_); |
| 225 message_loop_.Run(); | 226 message_loop_.Run(); |
| 226 | 227 |
| 227 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN); | 228 EXPECT_EQ(model_->GetSource(0).id.type, content::DesktopMediaID::TYPE_SCREEN); |
| 228 EXPECT_EQ(model_->source(0).id.id, 0); | 229 EXPECT_EQ(model_->GetSource(0).id.id, 0); |
| 229 EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW); | 230 EXPECT_EQ(model_->GetSource(1).id.type, content::DesktopMediaID::TYPE_WINDOW); |
| 230 EXPECT_EQ(model_->source(1).id.id, 1); | 231 EXPECT_EQ(model_->GetSource(1).id.id, 1); |
| 231 EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title)); | 232 EXPECT_EQ(model_->GetSource(1).name, UTF8ToUTF16(window.title)); |
| 232 } | 233 } |
| 233 | 234 |
| 234 TEST_F(DesktopMediaPickerModelTest, WindowsOnly) { | 235 TEST_F(DesktopMediaListTest, WindowsOnly) { |
| 235 window_capturer_ = new FakeWindowCapturer(); | 236 window_capturer_ = new FakeWindowCapturer(); |
| 236 model_.reset(new DesktopMediaPickerModelImpl( | 237 model_.reset(new NativeDesktopMediaList( |
| 237 scoped_ptr<webrtc::ScreenCapturer>(), | 238 scoped_ptr<webrtc::ScreenCapturer>(), |
| 238 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); | 239 scoped_ptr<webrtc::WindowCapturer>(window_capturer_))); |
| 239 | 240 |
| 240 webrtc::WindowCapturer::WindowList list; | 241 webrtc::WindowCapturer::WindowList list; |
| 241 webrtc::WindowCapturer::Window window; | 242 webrtc::WindowCapturer::Window window; |
| 242 window.id = 0; | 243 window.id = 0; |
| 243 window.title = "Test window"; | 244 window.title = "Test window"; |
| 244 list.push_back(window); | 245 list.push_back(window); |
| 245 window_capturer_->SetWindowList(list); | 246 window_capturer_->SetWindowList(list); |
| 246 | 247 |
| 247 { | 248 { |
| 248 testing::InSequence dummy; | 249 testing::InSequence dummy; |
| 249 EXPECT_CALL(observer_, OnSourceAdded(0)) | 250 EXPECT_CALL(observer_, OnSourceAdded(0)) |
| 250 .WillOnce(CheckListSize(model_.get(), 1)); | 251 .WillOnce(CheckListSize(model_.get(), 1)); |
| 251 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) | 252 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) |
| 252 .WillOnce(QuitMessageLoop(&message_loop_)); | 253 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 253 } | 254 } |
| 254 model_->StartUpdating(&observer_); | 255 model_->StartUpdating(&observer_); |
| 255 | 256 |
| 256 message_loop_.Run(); | 257 message_loop_.Run(); |
| 257 | 258 |
| 258 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_WINDOW); | 259 EXPECT_EQ(model_->GetSource(0).id.type, content::DesktopMediaID::TYPE_WINDOW); |
| 259 } | 260 } |
| 260 | 261 |
| 261 TEST_F(DesktopMediaPickerModelTest, ScreenOnly) { | 262 TEST_F(DesktopMediaListTest, ScreenOnly) { |
| 262 model_.reset(new DesktopMediaPickerModelImpl( | 263 model_.reset(new NativeDesktopMediaList( |
| 263 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer), | 264 scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer), |
| 264 scoped_ptr<webrtc::WindowCapturer>())); | 265 scoped_ptr<webrtc::WindowCapturer>())); |
| 265 | 266 |
| 266 { | 267 { |
| 267 testing::InSequence dummy; | 268 testing::InSequence dummy; |
| 268 EXPECT_CALL(observer_, OnSourceAdded(0)) | 269 EXPECT_CALL(observer_, OnSourceAdded(0)) |
| 269 .WillOnce(CheckListSize(model_.get(), 1)); | 270 .WillOnce(CheckListSize(model_.get(), 1)); |
| 270 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) | 271 EXPECT_CALL(observer_, OnSourceThumbnailChanged(0)) |
| 271 .WillOnce(QuitMessageLoop(&message_loop_)); | 272 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 272 } | 273 } |
| 273 model_->StartUpdating(&observer_); | 274 model_->StartUpdating(&observer_); |
| 274 | 275 |
| 275 message_loop_.Run(); | 276 message_loop_.Run(); |
| 276 | 277 |
| 277 EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN); | 278 EXPECT_EQ(model_->GetSource(0).id.type, content::DesktopMediaID::TYPE_SCREEN); |
| 278 } | 279 } |
| 279 | 280 |
| 280 TEST_F(DesktopMediaPickerModelTest, AddWindow) { | 281 TEST_F(DesktopMediaListTest, AddWindow) { |
| 281 CreateWithDefaultCapturers(); | 282 CreateWithDefaultCapturers(); |
| 282 | 283 |
| 283 webrtc::WindowCapturer::WindowList list; | 284 webrtc::WindowCapturer::WindowList list; |
| 284 webrtc::WindowCapturer::Window window; | 285 webrtc::WindowCapturer::Window window; |
| 285 window.id = 1; | 286 window.id = 1; |
| 286 window.title = "Test window 1"; | 287 window.title = "Test window 1"; |
| 287 list.push_back(window); | 288 list.push_back(window); |
| 288 window_capturer_->SetWindowList(list); | 289 window_capturer_->SetWindowList(list); |
| 289 | 290 |
| 290 { | 291 { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 307 .WillOnce(DoAll(CheckListSize(model_.get(), 3), | 308 .WillOnce(DoAll(CheckListSize(model_.get(), 3), |
| 308 QuitMessageLoop(&message_loop_))); | 309 QuitMessageLoop(&message_loop_))); |
| 309 | 310 |
| 310 window.id = 0; | 311 window.id = 0; |
| 311 window.title = "Test window 0"; | 312 window.title = "Test window 0"; |
| 312 list.push_back(window); | 313 list.push_back(window); |
| 313 window_capturer_->SetWindowList(list); | 314 window_capturer_->SetWindowList(list); |
| 314 | 315 |
| 315 message_loop_.Run(); | 316 message_loop_.Run(); |
| 316 | 317 |
| 317 EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW); | 318 EXPECT_EQ(model_->GetSource(1).id.type, content::DesktopMediaID::TYPE_WINDOW); |
| 318 EXPECT_EQ(model_->source(1).id.id, 0); | 319 EXPECT_EQ(model_->GetSource(1).id.id, 0); |
| 319 } | 320 } |
| 320 | 321 |
| 321 TEST_F(DesktopMediaPickerModelTest, RemoveWindow) { | 322 TEST_F(DesktopMediaListTest, RemoveWindow) { |
| 322 CreateWithDefaultCapturers(); | 323 CreateWithDefaultCapturers(); |
| 323 | 324 |
| 324 webrtc::WindowCapturer::WindowList list; | 325 webrtc::WindowCapturer::WindowList list; |
| 325 webrtc::WindowCapturer::Window window; | 326 webrtc::WindowCapturer::Window window; |
| 326 window.id = 0; | 327 window.id = 0; |
| 327 window.title = "Test window 0"; | 328 window.title = "Test window 0"; |
| 328 list.push_back(window); | 329 list.push_back(window); |
| 329 window.id = 1; | 330 window.id = 1; |
| 330 window.title = "Test window 1"; | 331 window.title = "Test window 1"; |
| 331 list.push_back(window); | 332 list.push_back(window); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 353 EXPECT_CALL(observer_, OnSourceRemoved(1)) | 354 EXPECT_CALL(observer_, OnSourceRemoved(1)) |
| 354 .WillOnce(DoAll(CheckListSize(model_.get(), 2), | 355 .WillOnce(DoAll(CheckListSize(model_.get(), 2), |
| 355 QuitMessageLoop(&message_loop_))); | 356 QuitMessageLoop(&message_loop_))); |
| 356 | 357 |
| 357 list.erase(list.begin()); | 358 list.erase(list.begin()); |
| 358 window_capturer_->SetWindowList(list); | 359 window_capturer_->SetWindowList(list); |
| 359 | 360 |
| 360 message_loop_.Run(); | 361 message_loop_.Run(); |
| 361 } | 362 } |
| 362 | 363 |
| 363 TEST_F(DesktopMediaPickerModelTest, UpdateTitle) { | 364 TEST_F(DesktopMediaListTest, UpdateTitle) { |
| 364 CreateWithDefaultCapturers(); | 365 CreateWithDefaultCapturers(); |
| 365 | 366 |
| 366 webrtc::WindowCapturer::WindowList list; | 367 webrtc::WindowCapturer::WindowList list; |
| 367 webrtc::WindowCapturer::Window window; | 368 webrtc::WindowCapturer::Window window; |
| 368 window.id = 0; | 369 window.id = 0; |
| 369 window.title = "Test window"; | 370 window.title = "Test window"; |
| 370 list.push_back(window); | 371 list.push_back(window); |
| 371 window_capturer_->SetWindowList(list); | 372 window_capturer_->SetWindowList(list); |
| 372 | 373 |
| 373 { | 374 { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 389 EXPECT_CALL(observer_, OnSourceNameChanged(1)) | 390 EXPECT_CALL(observer_, OnSourceNameChanged(1)) |
| 390 .WillOnce(QuitMessageLoop(&message_loop_)); | 391 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 391 | 392 |
| 392 const std::string kTestTitle = "New Title"; | 393 const std::string kTestTitle = "New Title"; |
| 393 | 394 |
| 394 list[0].title = kTestTitle; | 395 list[0].title = kTestTitle; |
| 395 window_capturer_->SetWindowList(list); | 396 window_capturer_->SetWindowList(list); |
| 396 | 397 |
| 397 message_loop_.Run(); | 398 message_loop_.Run(); |
| 398 | 399 |
| 399 EXPECT_EQ(model_->source(1).name, base::UTF8ToUTF16(kTestTitle)); | 400 EXPECT_EQ(model_->GetSource(1).name, base::UTF8ToUTF16(kTestTitle)); |
| 400 } | 401 } |
| 401 | 402 |
| 402 TEST_F(DesktopMediaPickerModelTest, UpdateThumbnail) { | 403 TEST_F(DesktopMediaListTest, UpdateThumbnail) { |
| 403 CreateWithDefaultCapturers(); | 404 CreateWithDefaultCapturers(); |
| 404 | 405 |
| 405 webrtc::WindowCapturer::WindowList list; | 406 webrtc::WindowCapturer::WindowList list; |
| 406 webrtc::WindowCapturer::Window window; | 407 webrtc::WindowCapturer::Window window; |
| 407 window.id = 0; | 408 window.id = 0; |
| 408 window.title = "Test window 1"; | 409 window.title = "Test window 1"; |
| 409 list.push_back(window); | 410 list.push_back(window); |
| 410 window.id = 1; | 411 window.id = 1; |
| 411 window.title = "Test window 2"; | 412 window.title = "Test window 2"; |
| 412 list.push_back(window); | 413 list.push_back(window); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 434 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) | 435 EXPECT_CALL(observer_, OnSourceThumbnailChanged(1)) |
| 435 .WillOnce(QuitMessageLoop(&message_loop_)); | 436 .WillOnce(QuitMessageLoop(&message_loop_)); |
| 436 | 437 |
| 437 // Update frame for the window and verify that we get notification about it. | 438 // Update frame for the window and verify that we get notification about it. |
| 438 window_capturer_->SetNextFrameValue(0, 1); | 439 window_capturer_->SetNextFrameValue(0, 1); |
| 439 | 440 |
| 440 message_loop_.Run(); | 441 message_loop_.Run(); |
| 441 } | 442 } |
| 442 | 443 |
| 443 } // namespace | 444 } // namespace |
| OLD | NEW |