| Index: chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
|
| diff --git a/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc b/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
|
| index 037db01c389f358033402f2b18a9c3699f044d27..42467a5abf170a82bb9058492bf4c6caff12cdcf 100644
|
| --- a/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
|
| +++ b/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc
|
| @@ -16,8 +16,9 @@
|
| #include "base/single_thread_task_runner.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/synchronization/lock.h"
|
| +#include "base/threading/thread_task_runner_handle.h"
|
| #include "chrome/browser/media/webrtc/desktop_media_list_observer.h"
|
| -#include "content/public/test/test_browser_thread.h"
|
| +#include "content/public/test/test_browser_thread_bundle.h"
|
| #include "testing/gmock/include/gmock/gmock.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
|
| @@ -161,15 +162,13 @@ ACTION_P2(CheckListSize, model, expected_list_size) {
|
| EXPECT_EQ(expected_list_size, model->GetSourceCount());
|
| }
|
|
|
| -ACTION_P(QuitMessageLoop, message_loop) {
|
| - message_loop->task_runner()->PostTask(
|
| - FROM_HERE, base::MessageLoop::QuitWhenIdleClosure());
|
| +ACTION_P2(QuitRunLoop, task_runner, run_loop) {
|
| + task_runner->PostTask(FROM_HERE, run_loop->QuitWhenIdleClosure());
|
| }
|
|
|
| class NativeDesktopMediaListTest : public views::ViewsTestBase {
|
| public:
|
| - NativeDesktopMediaListTest()
|
| - : ui_thread_(content::BrowserThread::UI, message_loop()) {}
|
| + NativeDesktopMediaListTest() = default;
|
|
|
| void TearDown() override {
|
| for (size_t i = 0; i < desktop_widgets_.size(); i++)
|
| @@ -306,6 +305,8 @@ class NativeDesktopMediaListTest : public views::ViewsTestBase {
|
| aura_window_first_index--;
|
| }
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| {
|
| testing::InSequence dummy;
|
| size_t source_count = screen ? window_count + 1 : window_count;
|
| @@ -318,10 +319,11 @@ class NativeDesktopMediaListTest : public views::ViewsTestBase {
|
| }
|
| EXPECT_CALL(observer_,
|
| OnSourceThumbnailChanged(model_.get(), source_count - 1))
|
| - .WillOnce(QuitMessageLoop(message_loop()));
|
| + .WillOnce(
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop));
|
| }
|
| model_->StartUpdating(&observer_);
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
|
|
| if (screen) {
|
| EXPECT_EQ(model_->GetSource(0).id.type, DesktopMediaID::TYPE_SCREEN);
|
| @@ -347,6 +349,8 @@ class NativeDesktopMediaListTest : public views::ViewsTestBase {
|
| }
|
|
|
| protected:
|
| + content::TestBrowserThreadBundle test_browser_thread_bundle_;
|
| +
|
| // Must be listed before |model_|, so it's destroyed last.
|
| MockObserver observer_;
|
|
|
| @@ -358,8 +362,6 @@ class NativeDesktopMediaListTest : public views::ViewsTestBase {
|
| std::map<DesktopMediaID::Id, DesktopMediaID::Id> native_aura_id_map_;
|
| std::unique_ptr<NativeDesktopMediaList> model_;
|
|
|
| - content::TestBrowserThread ui_thread_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(NativeDesktopMediaListTest);
|
| };
|
|
|
| @@ -380,15 +382,18 @@ TEST_F(NativeDesktopMediaListTest, Filtering) {
|
| TEST_F(NativeDesktopMediaListTest, AddNativeWindow) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| const int index = kDefaultWindowCount + 1;
|
| EXPECT_CALL(observer_, OnSourceAdded(model_.get(), index))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), index + 1),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), index + 1),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| AddNativeWindow(index);
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
|
|
| EXPECT_EQ(model_->GetSource(index).id.type, DesktopMediaID::TYPE_WINDOW);
|
| EXPECT_EQ(model_->GetSource(index).id.id, index);
|
| @@ -398,15 +403,18 @@ TEST_F(NativeDesktopMediaListTest, AddNativeWindow) {
|
| TEST_F(NativeDesktopMediaListTest, AddAuraWindow) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| const int index = kDefaultWindowCount + 1;
|
| EXPECT_CALL(observer_, OnSourceAdded(model_.get(), index))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), index + 1),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), index + 1),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| AddAuraWindow();
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
|
|
| int native_id = window_list_.back().id;
|
| EXPECT_EQ(model_->GetSource(index).id.type, DesktopMediaID::TYPE_WINDOW);
|
| @@ -419,61 +427,72 @@ TEST_F(NativeDesktopMediaListTest, AddAuraWindow) {
|
| TEST_F(NativeDesktopMediaListTest, RemoveNativeWindow) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| EXPECT_CALL(observer_, OnSourceRemoved(model_.get(), 1))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), kDefaultWindowCount),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), kDefaultWindowCount),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| window_list_.erase(window_list_.begin());
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
| }
|
|
|
| #if defined(ENABLE_AURA_WINDOW_TESTS)
|
| TEST_F(NativeDesktopMediaListTest, RemoveAuraWindow) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| int aura_window_start_index = kDefaultWindowCount - kDefaultAuraCount + 1;
|
| EXPECT_CALL(observer_, OnSourceRemoved(model_.get(), aura_window_start_index))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), kDefaultWindowCount),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), kDefaultWindowCount),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| RemoveAuraWindow(0);
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
| }
|
| #endif // defined(ENABLE_AURA_WINDOW_TESTS)
|
|
|
| TEST_F(NativeDesktopMediaListTest, RemoveAllWindows) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| testing::InSequence seq;
|
| for (int i = 0; i < kDefaultWindowCount - 1; i++) {
|
| EXPECT_CALL(observer_, OnSourceRemoved(model_.get(), 1))
|
| .WillOnce(CheckListSize(model_.get(), kDefaultWindowCount - i));
|
| }
|
| EXPECT_CALL(observer_, OnSourceRemoved(model_.get(), 1))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), 1),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), 1),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| window_list_.clear();
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
| }
|
|
|
| TEST_F(NativeDesktopMediaListTest, UpdateTitle) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| EXPECT_CALL(observer_, OnSourceNameChanged(model_.get(), 1))
|
| - .WillOnce(QuitMessageLoop(message_loop()));
|
| + .WillOnce(QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop));
|
|
|
| const std::string kTestTitle = "New Title";
|
| window_list_[0].title = kTestTitle;
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
|
|
| EXPECT_EQ(model_->GetSource(1).name, base::UTF8ToUTF16(kTestTitle));
|
| }
|
| @@ -488,24 +507,29 @@ TEST_F(NativeDesktopMediaListTest, UpdateThumbnail) {
|
| .Times(testing::AnyNumber());
|
| }
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| EXPECT_CALL(observer_, OnSourceThumbnailChanged(model_.get(), 1))
|
| - .WillOnce(QuitMessageLoop(message_loop()));
|
| + .WillOnce(QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop));
|
|
|
| // Update frame for the window and verify that we get notification about it.
|
| window_capturer_->SetNextFrameValue(1, 10);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
| }
|
|
|
| TEST_F(NativeDesktopMediaListTest, MoveWindow) {
|
| AddWindowsAndVerify(true, kDefaultWindowCount, kDefaultAuraCount, false);
|
|
|
| + base::RunLoop run_loop;
|
| +
|
| EXPECT_CALL(observer_, OnSourceMoved(model_.get(), 2, 1))
|
| - .WillOnce(DoAll(CheckListSize(model_.get(), kDefaultWindowCount + 1),
|
| - QuitMessageLoop(message_loop())));
|
| + .WillOnce(
|
| + DoAll(CheckListSize(model_.get(), kDefaultWindowCount + 1),
|
| + QuitRunLoop(base::ThreadTaskRunnerHandle::Get(), &run_loop)));
|
|
|
| std::swap(window_list_[0], window_list_[1]);
|
| window_capturer_->SetWindowList(window_list_);
|
|
|
| - base::RunLoop().Run();
|
| + run_loop.Run();
|
| }
|
|
|