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

Side by Side Diff: content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc

Issue 2846933002: Use ScopedTaskEnvironment instead of MessageLoopForUI in content tests. (Closed)
Patch Set: self-review 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/renderer/media_capture_from_element/html_video_element_capture r_source.h"
5 #include "base/bind.h" 6 #include "base/bind.h"
6 #include "base/memory/weak_ptr.h" 7 #include "base/memory/weak_ptr.h"
7 #include "base/run_loop.h" 8 #include "base/run_loop.h"
9 #include "base/test/scoped_task_environment.h"
8 #include "base/threading/thread_task_runner_handle.h" 10 #include "base/threading/thread_task_runner_handle.h"
9 #include "content/renderer/media_capture_from_element/html_video_element_capture r_source.h"
10 #include "media/base/limits.h" 11 #include "media/base/limits.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/WebKit/public/platform/WebMediaPlayer.h" 14 #include "third_party/WebKit/public/platform/WebMediaPlayer.h"
14 #include "third_party/WebKit/public/platform/WebString.h" 15 #include "third_party/WebKit/public/platform/WebString.h"
15 16
16 using ::testing::_; 17 using ::testing::_;
17 using ::testing::InSequence; 18 using ::testing::InSequence;
18 using ::testing::Mock; 19 using ::testing::Mock;
19 using ::testing::SaveArg; 20 using ::testing::SaveArg;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // We could fill in |canvas| with a meaningful pattern in ARGB and verify 77 // We could fill in |canvas| with a meaningful pattern in ARGB and verify
77 // that is correctly captured (as I420) by HTMLVideoElementCapturerSource 78 // that is correctly captured (as I420) by HTMLVideoElementCapturerSource
78 // but I don't think that'll be easy/useful/robust, so just let go here. 79 // but I don't think that'll be easy/useful/robust, so just let go here.
79 return; 80 return;
80 } 81 }
81 }; 82 };
82 83
83 class HTMLVideoElementCapturerSourceTest : public testing::Test { 84 class HTMLVideoElementCapturerSourceTest : public testing::Test {
84 public: 85 public:
85 HTMLVideoElementCapturerSourceTest() 86 HTMLVideoElementCapturerSourceTest()
86 : web_media_player_(new MockWebMediaPlayer()), 87 : scoped_task_environment_(
88 base::test::ScopedTaskEnvironment::MainThreadType::UI),
89 web_media_player_(new MockWebMediaPlayer()),
87 html_video_capturer_(new HtmlVideoElementCapturerSource( 90 html_video_capturer_(new HtmlVideoElementCapturerSource(
88 web_media_player_->AsWeakPtr(), 91 web_media_player_->AsWeakPtr(),
89 base::ThreadTaskRunnerHandle::Get())) {} 92 base::ThreadTaskRunnerHandle::Get())) {}
90 93
91 // Necessary callbacks and MOCK_METHODS for them. 94 // Necessary callbacks and MOCK_METHODS for them.
92 MOCK_METHOD2(DoOnDeliverFrame, 95 MOCK_METHOD2(DoOnDeliverFrame,
93 void(const scoped_refptr<media::VideoFrame>&, base::TimeTicks)); 96 void(const scoped_refptr<media::VideoFrame>&, base::TimeTicks));
94 void OnDeliverFrame(const scoped_refptr<media::VideoFrame>& video_frame, 97 void OnDeliverFrame(const scoped_refptr<media::VideoFrame>& video_frame,
95 base::TimeTicks estimated_capture_time) { 98 base::TimeTicks estimated_capture_time) {
96 DoOnDeliverFrame(video_frame, estimated_capture_time); 99 DoOnDeliverFrame(video_frame, estimated_capture_time);
97 } 100 }
98 101
99 MOCK_METHOD1(DoOnVideoCaptureDeviceFormats, 102 MOCK_METHOD1(DoOnVideoCaptureDeviceFormats,
100 void(const media::VideoCaptureFormats&)); 103 void(const media::VideoCaptureFormats&));
101 void OnVideoCaptureDeviceFormats(const media::VideoCaptureFormats& formats) { 104 void OnVideoCaptureDeviceFormats(const media::VideoCaptureFormats& formats) {
102 DoOnVideoCaptureDeviceFormats(formats); 105 DoOnVideoCaptureDeviceFormats(formats);
103 } 106 }
104 107
105 MOCK_METHOD1(DoOnRunning, void(bool)); 108 MOCK_METHOD1(DoOnRunning, void(bool));
106 void OnRunning(bool state) { DoOnRunning(state); } 109 void OnRunning(bool state) { DoOnRunning(state); }
107 110
108 protected: 111 protected:
109 // We need some kind of message loop to allow |html_video_capturer_| to 112 // We need some kind of message loop to allow |html_video_capturer_| to
110 // schedule capture events. 113 // schedule capture events.
111 const base::MessageLoopForUI message_loop_; 114 const base::test::ScopedTaskEnvironment scoped_task_environment_;
112 115
113 std::unique_ptr<MockWebMediaPlayer> web_media_player_; 116 std::unique_ptr<MockWebMediaPlayer> web_media_player_;
114 std::unique_ptr<HtmlVideoElementCapturerSource> html_video_capturer_; 117 std::unique_ptr<HtmlVideoElementCapturerSource> html_video_capturer_;
115 }; 118 };
116 119
117 // Constructs and destructs all objects, in particular |html_video_capturer_| 120 // Constructs and destructs all objects, in particular |html_video_capturer_|
118 // and its inner object(s). This is a non trivial sequence. 121 // and its inner object(s). This is a non trivial sequence.
119 TEST_F(HTMLVideoElementCapturerSourceTest, ConstructAndDestruct) {} 122 TEST_F(HTMLVideoElementCapturerSourceTest, ConstructAndDestruct) {}
120 123
121 // Checks that the usual sequence of GetCurrentSupportedFormats() -> 124 // Checks that the usual sequence of GetCurrentSupportedFormats() ->
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 base::Bind(&HTMLVideoElementCapturerSourceTest::OnRunning, 162 base::Bind(&HTMLVideoElementCapturerSourceTest::OnRunning,
160 base::Unretained(this))); 163 base::Unretained(this)));
161 164
162 run_loop.Run(); 165 run_loop.Run();
163 166
164 html_video_capturer_->StopCapture(); 167 html_video_capturer_->StopCapture();
165 Mock::VerifyAndClearExpectations(this); 168 Mock::VerifyAndClearExpectations(this);
166 } 169 }
167 170
168 } // namespace content 171 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698