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

Unified Diff: chrome/browser/media/desktop_media_picker_model_unittest.cc

Issue 89683003: Rename DesktopMediaPickerModel[Impl]->[Native]DesktopMediaList (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/media/desktop_media_picker_model.cc ('k') | chrome/browser/media/desktop_streams_registry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/media/desktop_media_picker_model_unittest.cc
diff --git a/chrome/browser/media/desktop_media_picker_model_unittest.cc b/chrome/browser/media/desktop_media_picker_model_unittest.cc
deleted file mode 100644
index 05f40e538d183bf54838f6811b0e32bff2edddf3..0000000000000000000000000000000000000000
--- a/chrome/browser/media/desktop_media_picker_model_unittest.cc
+++ /dev/null
@@ -1,443 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/media/desktop_media_picker_model.h"
-
-#include "base/message_loop/message_loop.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/synchronization/lock.h"
-#include "content/public/test/test_browser_thread.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
-#include "third_party/webrtc/modules/desktop_capture/screen_capturer.h"
-#include "third_party/webrtc/modules/desktop_capture/window_capturer.h"
-
-using testing::_;
-using testing::DoAll;
-
-namespace {
-
-class MockObserver : public DesktopMediaPickerModel::Observer {
- public:
- MOCK_METHOD1(OnSourceAdded, void(int index));
- MOCK_METHOD1(OnSourceRemoved, void(int index));
- MOCK_METHOD1(OnSourceNameChanged, void(int index));
- MOCK_METHOD1(OnSourceThumbnailChanged, void(int index));
-};
-
-class FakeScreenCapturer : public webrtc::ScreenCapturer {
- public:
- FakeScreenCapturer() {}
- virtual ~FakeScreenCapturer() {}
-
- // webrtc::ScreenCapturer implementation.
- virtual void Start(Callback* callback) OVERRIDE {
- callback_ = callback;
- }
-
- virtual void Capture(const webrtc::DesktopRegion& region) OVERRIDE {
- DCHECK(callback_);
- webrtc::DesktopFrame* frame =
- new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10));
- memset(frame->data(), 0, frame->stride() * frame->size().height());
- callback_->OnCaptureCompleted(frame);
- }
-
- virtual void SetMouseShapeObserver(
- MouseShapeObserver* mouse_shape_observer) OVERRIDE {
- NOTIMPLEMENTED();
- }
-
- protected:
- Callback* callback_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeScreenCapturer);
-};
-
-class FakeWindowCapturer : public webrtc::WindowCapturer {
- public:
- FakeWindowCapturer()
- : callback_(NULL) {
- }
- virtual ~FakeWindowCapturer() {}
-
- void SetWindowList(const WindowList& list) {
- base::AutoLock lock(window_list_lock_);
- window_list_ = list;
- }
-
- // Sets |value| thats going to be used to memset() content of the frames
- // generated for |window_id|. By default generated frames are set to zeros.
- void SetNextFrameValue(WindowId window_id, int8_t value) {
- base::AutoLock lock(frame_values_lock_);
- frame_values_[window_id] = value;
- }
-
- // webrtc::WindowCapturer implementation.
- virtual void Start(Callback* callback) OVERRIDE {
- callback_ = callback;
- }
-
- virtual void Capture(const webrtc::DesktopRegion& region) OVERRIDE {
- DCHECK(callback_);
-
- base::AutoLock lock(frame_values_lock_);
-
- std::map<WindowId, int8_t>::iterator it =
- frame_values_.find(selected_window_id_);
- int8_t value = (it != frame_values_.end()) ? it->second : 0;
- webrtc::DesktopFrame* frame =
- new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10));
- memset(frame->data(), value, frame->stride() * frame->size().height());
- callback_->OnCaptureCompleted(frame);
- }
-
- virtual bool GetWindowList(WindowList* windows) OVERRIDE {
- base::AutoLock lock(window_list_lock_);
- *windows = window_list_;
- return true;
- }
-
- virtual bool SelectWindow(WindowId id) OVERRIDE {
- selected_window_id_ = id;
- return true;
- }
-
- private:
- Callback* callback_;
- WindowList window_list_;
- base::Lock window_list_lock_;
-
- WindowId selected_window_id_;
-
- // Frames to be captured per window.
- std::map<WindowId, int8_t> frame_values_;
- base::Lock frame_values_lock_;
-
- DISALLOW_COPY_AND_ASSIGN(FakeWindowCapturer);
-};
-
-class DesktopMediaPickerModelTest : public testing::Test {
- public:
- DesktopMediaPickerModelTest()
- : window_capturer_(NULL),
- ui_thread_(content::BrowserThread::UI,
- &message_loop_) {
- }
-
- void CreateWithDefaultCapturers() {
- window_capturer_ = new FakeWindowCapturer();
- model_.reset(new DesktopMediaPickerModelImpl(
- scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer()),
- scoped_ptr<webrtc::WindowCapturer>(window_capturer_)));
-
- // Set update period to reduce the time it takes to run tests.
- model_->SetUpdatePeriod(base::TimeDelta::FromMilliseconds(0));
- }
-
- protected:
- // Must be listed before |model_|, so it's destroyed last.
- MockObserver observer_;
-
- // Owned by |model_|;
- FakeWindowCapturer* window_capturer_;
-
- scoped_ptr<DesktopMediaPickerModelImpl> model_;
-
- base::MessageLoop message_loop_;
- content::TestBrowserThread ui_thread_;
-
- DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerModelTest);
-};
-
-ACTION_P2(CheckListSize, model, expected_list_size) {
- EXPECT_EQ(expected_list_size, model->source_count());
-}
-
-ACTION_P(QuitMessageLoop, message_loop) {
- message_loop->PostTask(FROM_HERE, base::MessageLoop::QuitClosure());
-}
-
-TEST_F(DesktopMediaPickerModelTest, InitialSourceList) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 0;
- window.title = "Test window";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN);
- EXPECT_EQ(model_->source(0).id.id, 0);
- EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW);
- EXPECT_EQ(model_->source(1).id.id, 0);
- EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title));
-}
-
-// Verifies that the window specified with SetViewDialogWindowId() is filtered
-// from the results.
-TEST_F(DesktopMediaPickerModelTest, Filtering) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
-
- window.id = 0;
- window.title = "Test window";
- list.push_back(window);
-
- window.id = 1;
- list.push_back(window);
-
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
-
- model_->SetViewDialogWindowId(0);
-
- model_->StartUpdating(&observer_);
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN);
- EXPECT_EQ(model_->source(0).id.id, 0);
- EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW);
- EXPECT_EQ(model_->source(1).id.id, 1);
- EXPECT_EQ(model_->source(1).name, UTF8ToUTF16(window.title));
-}
-
-TEST_F(DesktopMediaPickerModelTest, WindowsOnly) {
- window_capturer_ = new FakeWindowCapturer();
- model_.reset(new DesktopMediaPickerModelImpl(
- scoped_ptr<webrtc::ScreenCapturer>(),
- scoped_ptr<webrtc::WindowCapturer>(window_capturer_)));
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 0;
- window.title = "Test window";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_WINDOW);
-}
-
-TEST_F(DesktopMediaPickerModelTest, ScreenOnly) {
- model_.reset(new DesktopMediaPickerModelImpl(
- scoped_ptr<webrtc::ScreenCapturer>(new FakeScreenCapturer),
- scoped_ptr<webrtc::WindowCapturer>()));
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(0).id.type, content::DesktopMediaID::TYPE_SCREEN);
-}
-
-TEST_F(DesktopMediaPickerModelTest, AddWindow) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 1;
- window.title = "Test window 1";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- testing::Mock::VerifyAndClearExpectations(&observer_);
-
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(DoAll(CheckListSize(model_.get(), 3),
- QuitMessageLoop(&message_loop_)));
-
- window.id = 0;
- window.title = "Test window 0";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(1).id.type, content::DesktopMediaID::TYPE_WINDOW);
- EXPECT_EQ(model_->source(1).id.id, 0);
-}
-
-TEST_F(DesktopMediaPickerModelTest, RemoveWindow) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 0;
- window.title = "Test window 0";
- list.push_back(window);
- window.id = 1;
- window.title = "Test window 1";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceAdded(2))
- .WillOnce(CheckListSize(model_.get(), 3));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(2))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- testing::Mock::VerifyAndClearExpectations(&observer_);
-
- EXPECT_CALL(observer_, OnSourceRemoved(1))
- .WillOnce(DoAll(CheckListSize(model_.get(), 2),
- QuitMessageLoop(&message_loop_)));
-
- list.erase(list.begin());
- window_capturer_->SetWindowList(list);
-
- message_loop_.Run();
-}
-
-TEST_F(DesktopMediaPickerModelTest, UpdateTitle) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 0;
- window.title = "Test window";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- testing::Mock::VerifyAndClearExpectations(&observer_);
-
- EXPECT_CALL(observer_, OnSourceNameChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
-
- const std::string kTestTitle = "New Title";
-
- list[0].title = kTestTitle;
- window_capturer_->SetWindowList(list);
-
- message_loop_.Run();
-
- EXPECT_EQ(model_->source(1).name, base::UTF8ToUTF16(kTestTitle));
-}
-
-TEST_F(DesktopMediaPickerModelTest, UpdateThumbnail) {
- CreateWithDefaultCapturers();
-
- webrtc::WindowCapturer::WindowList list;
- webrtc::WindowCapturer::Window window;
- window.id = 0;
- window.title = "Test window 1";
- list.push_back(window);
- window.id = 1;
- window.title = "Test window 2";
- list.push_back(window);
- window_capturer_->SetWindowList(list);
-
- {
- testing::InSequence dummy;
- EXPECT_CALL(observer_, OnSourceAdded(0))
- .WillOnce(CheckListSize(model_.get(), 1));
- EXPECT_CALL(observer_, OnSourceAdded(1))
- .WillOnce(CheckListSize(model_.get(), 2));
- EXPECT_CALL(observer_, OnSourceAdded(2))
- .WillOnce(CheckListSize(model_.get(), 3));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(0));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1));
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(2))
- .WillOnce(QuitMessageLoop(&message_loop_));
- }
- model_->StartUpdating(&observer_);
-
- message_loop_.Run();
-
- testing::Mock::VerifyAndClearExpectations(&observer_);
-
- EXPECT_CALL(observer_, OnSourceThumbnailChanged(1))
- .WillOnce(QuitMessageLoop(&message_loop_));
-
- // Update frame for the window and verify that we get notification about it.
- window_capturer_->SetNextFrameValue(0, 1);
-
- message_loop_.Run();
-}
-
-} // namespace
« no previous file with comments | « chrome/browser/media/desktop_media_picker_model.cc ('k') | chrome/browser/media/desktop_streams_registry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698