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

Side by Side Diff: content/renderer/media/render_media_log_unittest.cc

Issue 2815303006: Convert MediaLog from being ref counted to owned by WebMediaPlayer. (Closed)
Patch Set: Rebase. Created 3 years, 8 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
« no previous file with comments | « content/renderer/media/render_media_log.cc ('k') | content/renderer/media/webmediaplayer_ms.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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 <tuple> 5 #include <tuple>
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/test/simple_test_tick_clock.h" 9 #include "base/test/simple_test_tick_clock.h"
10 #include "base/test/test_mock_time_task_runner.h" 10 #include "base/test/test_mock_time_task_runner.h"
11 #include "content/common/view_messages.h" 11 #include "content/common/view_messages.h"
12 #include "content/public/test/mock_render_thread.h" 12 #include "content/public/test/mock_render_thread.h"
13 #include "content/renderer/media/render_media_log.h" 13 #include "content/renderer/media/render_media_log.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace content { 16 namespace content {
17 17
18 class RenderMediaLogTest : public testing::Test { 18 class RenderMediaLogTest : public testing::Test {
19 public: 19 public:
20 RenderMediaLogTest() 20 RenderMediaLogTest()
21 : log_(new RenderMediaLog(GURL("http://foo.com"))), 21 : log_(GURL("http://foo.com")),
22 tick_clock_(new base::SimpleTestTickClock()), 22 tick_clock_(new base::SimpleTestTickClock()),
23 task_runner_(new base::TestMockTimeTaskRunner()) { 23 task_runner_(new base::TestMockTimeTaskRunner()) {
24 log_->SetTickClockForTesting(std::unique_ptr<base::TickClock>(tick_clock_)); 24 log_.SetTickClockForTesting(std::unique_ptr<base::TickClock>(tick_clock_));
25 log_->SetTaskRunnerForTesting(task_runner_); 25 log_.SetTaskRunnerForTesting(task_runner_);
26 } 26 }
27 27
28 ~RenderMediaLogTest() override { 28 ~RenderMediaLogTest() override {
29 task_runner_->ClearPendingTasks(); 29 task_runner_->ClearPendingTasks();
30 } 30 }
31 31
32 void AddEvent(media::MediaLogEvent::Type type) { 32 void AddEvent(media::MediaLogEvent::Type type) {
33 log_->AddEvent(log_->CreateEvent(type)); 33 log_.AddEvent(log_.CreateEvent(type));
34 // AddEvent() could post. Run the task runner to make sure it's executed. 34 // AddEvent() could post. Run the task runner to make sure it's executed.
35 task_runner_->RunUntilIdle(); 35 task_runner_->RunUntilIdle();
36 } 36 }
37 37
38 void Advance(base::TimeDelta delta) { 38 void Advance(base::TimeDelta delta) {
39 tick_clock_->Advance(delta); 39 tick_clock_->Advance(delta);
40 task_runner_->FastForwardBy(delta); 40 task_runner_->FastForwardBy(delta);
41 } 41 }
42 42
43 int message_count() { return render_thread_.sink().message_count(); } 43 int message_count() { return render_thread_.sink().message_count(); }
44 44
45 std::vector<media::MediaLogEvent> GetMediaLogEvents() { 45 std::vector<media::MediaLogEvent> GetMediaLogEvents() {
46 const IPC::Message* msg = render_thread_.sink().GetFirstMessageMatching( 46 const IPC::Message* msg = render_thread_.sink().GetFirstMessageMatching(
47 ViewHostMsg_MediaLogEvents::ID); 47 ViewHostMsg_MediaLogEvents::ID);
48 if (!msg) { 48 if (!msg) {
49 ADD_FAILURE() << "Did not find ViewHostMsg_MediaLogEvents IPC message"; 49 ADD_FAILURE() << "Did not find ViewHostMsg_MediaLogEvents IPC message";
50 return std::vector<media::MediaLogEvent>(); 50 return std::vector<media::MediaLogEvent>();
51 } 51 }
52 52
53 std::tuple<std::vector<media::MediaLogEvent>> events; 53 std::tuple<std::vector<media::MediaLogEvent>> events;
54 ViewHostMsg_MediaLogEvents::Read(msg, &events); 54 ViewHostMsg_MediaLogEvents::Read(msg, &events);
55 return std::get<0>(events); 55 return std::get<0>(events);
56 } 56 }
57 57
58 private: 58 private:
59 base::MessageLoop message_loop_; 59 base::MessageLoop message_loop_;
60 MockRenderThread render_thread_; 60 MockRenderThread render_thread_;
61 scoped_refptr<RenderMediaLog> log_; 61 RenderMediaLog log_;
62 base::SimpleTestTickClock* tick_clock_; // Owned by |log_|. 62 base::SimpleTestTickClock* tick_clock_; // Owned by |log_|.
63 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_; 63 scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
64 64
65 DISALLOW_COPY_AND_ASSIGN(RenderMediaLogTest); 65 DISALLOW_COPY_AND_ASSIGN(RenderMediaLogTest);
66 }; 66 };
67 67
68 TEST_F(RenderMediaLogTest, ThrottleSendingEvents) { 68 TEST_F(RenderMediaLogTest, ThrottleSendingEvents) {
69 AddEvent(media::MediaLogEvent::LOAD); 69 AddEvent(media::MediaLogEvent::LOAD);
70 EXPECT_EQ(0, message_count()); 70 EXPECT_EQ(0, message_count());
71 71
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 // Verify contents. There should only be a single buffered extents changed 141 // Verify contents. There should only be a single buffered extents changed
142 // event. 142 // event.
143 std::vector<media::MediaLogEvent> events = GetMediaLogEvents(); 143 std::vector<media::MediaLogEvent> events = GetMediaLogEvents();
144 ASSERT_EQ(3u, events.size()); 144 ASSERT_EQ(3u, events.size());
145 EXPECT_EQ(media::MediaLogEvent::LOAD, events[0].type); 145 EXPECT_EQ(media::MediaLogEvent::LOAD, events[0].type);
146 EXPECT_EQ(media::MediaLogEvent::SEEK, events[1].type); 146 EXPECT_EQ(media::MediaLogEvent::SEEK, events[1].type);
147 EXPECT_EQ(media::MediaLogEvent::DURATION_SET, events[2].type); 147 EXPECT_EQ(media::MediaLogEvent::DURATION_SET, events[2].type);
148 } 148 }
149 149
150 } // namespace content 150 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/render_media_log.cc ('k') | content/renderer/media/webmediaplayer_ms.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698