Chromium Code Reviews| Index: media/base/android/media_codec_loop_unittest.cc |
| diff --git a/media/base/android/media_codec_loop_unittest.cc b/media/base/android/media_codec_loop_unittest.cc |
| index fa9044e72031c4a54149ea2c9d13794bbe09cd2c..7676f3ebd946ab3a34b05257f524f9d9468b95fe 100644 |
| --- a/media/base/android/media_codec_loop_unittest.cc |
| +++ b/media/base/android/media_codec_loop_unittest.cc |
| @@ -4,10 +4,11 @@ |
| #include "base/macros.h" |
| #include "base/message_loop/message_loop.h" |
| +#include "base/test/test_mock_time_task_runner.h" |
| +#include "base/threading/thread_task_runner_handle.h" |
| #include "media/base/android/media_codec_bridge.h" |
| #include "media/base/android/media_codec_loop.h" |
| #include "media/base/android/mock_media_codec_bridge.h" |
| -#include "media/base/fake_single_thread_task_runner.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| @@ -46,8 +47,8 @@ class MockMediaCodecLoopClient : public StrictMock<MediaCodecLoop::Client> { |
| class MediaCodecLoopTest : public testing::Test { |
| public: |
| MediaCodecLoopTest() |
| - : client_(new StrictMock<MockMediaCodecLoopClient>()), |
| - task_runner_(new FakeSingleThreadTaskRunner(&clock_)) {} |
| + : task_runner_handle_(mock_task_runner_), |
| + client_(new StrictMock<MockMediaCodecLoopClient>()) {} |
| ~MediaCodecLoopTest() override {} |
| @@ -84,7 +85,7 @@ class MediaCodecLoopTest : public testing::Test { |
| // TODO(liberato): assume that MCL doesn't retry for 30 seconds. Note |
| // that this doesn't actually wall-clock wait. |
| - task_runner_->Sleep(base::TimeDelta::FromSeconds(30)); |
| + mock_task_runner_->FastForwardBy(base::TimeDelta::FromSeconds(30)); |
| } |
| void ConstructCodecLoop(int sdk_int = kLollipop) { |
| @@ -92,8 +93,8 @@ class MediaCodecLoopTest : public testing::Test { |
| // Since we're providing a codec, we do not expect an error. |
| EXPECT_CALL(*client_, OnCodecLoopError()).Times(0); |
| codec_loop_.reset(new MediaCodecLoop(sdk_int, client_.get(), |
| - std::move(codec), task_runner_)); |
| - codec_loop_->SetTestTickClock(&clock_); |
| + std::move(codec), mock_task_runner_)); |
| + codec_loop_->SetTestTickClock(clock_.get()); |
| Mock::VerifyAndClearExpectations(client_.get()); |
| } |
| @@ -182,12 +183,18 @@ class MediaCodecLoopTest : public testing::Test { |
| } |
| public: |
| + // Mocks the current thread's task runner which will also be used as the |
| + // MediaCodecLoop's task runner. |
| + scoped_refptr<base::TestMockTimeTaskRunner> mock_task_runner_ = |
| + new base::TestMockTimeTaskRunner; |
|
DaleCurtis
2017/01/25 22:33:25
()
gab
2017/02/13 19:57:00
Why? It's valid C++ without the brackets.
DaleCurtis
2017/02/13 21:03:23
Consistency with surrounding code? I thought we ha
|
| + base::ThreadTaskRunnerHandle task_runner_handle_; |
| + |
| + // A reference to |mock_task_runner_|'s TickClock handed to |codec_loop_|. |
| + std::unique_ptr<base::TickClock> clock_ = |
| + mock_task_runner_->GetMockTickClock(); |
| + |
| std::unique_ptr<MediaCodecLoop> codec_loop_; |
| std::unique_ptr<MockMediaCodecLoopClient> client_; |
| - // TODO: how is the lifecycle of |clock_| handled? |task_runner_| can outlive |
| - // us, since it's a refptr. |
| - base::SimpleTestTickClock clock_; |
| - scoped_refptr<FakeSingleThreadTaskRunner> task_runner_; |
| DISALLOW_COPY_AND_ASSIGN(MediaCodecLoopTest); |
| }; |