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

Side by Side Diff: remoting/client/display/gl_renderer_unittest.cc

Issue 2614443003: Moving the GL implementation details into a sub folder for client display. (Closed)
Patch Set: Adding deps restriction on r/c/display; Moving sys_opengl.h Created 3 years, 11 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "remoting/client/gl_renderer.h" 5 #include "remoting/client/display/gl_renderer.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "base/threading/thread_task_runner_handle.h" 12 #include "base/threading/thread_task_runner_handle.h"
13 #include "remoting/client/gl_renderer_delegate.h" 13 #include "remoting/client/display/gl_renderer_delegate.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h" 15 #include "third_party/webrtc/modules/desktop_capture/desktop_frame.h"
16 16
17 namespace remoting { 17 namespace remoting {
18 18
19 class FakeGlRendererDelegate : public GlRendererDelegate { 19 class FakeGlRendererDelegate : public GlRendererDelegate {
20 public: 20 public:
21 FakeGlRendererDelegate() : weak_factory_(this) {} 21 FakeGlRendererDelegate() : weak_factory_(this) {}
22 22
23 bool CanRenderFrame() override { 23 bool CanRenderFrame() override {
(...skipping 11 matching lines...) Expand all
35 void OnSizeChanged(int width, int height) override { 35 void OnSizeChanged(int width, int height) override {
36 canvas_width_ = width; 36 canvas_width_ = width;
37 canvas_height_ = height; 37 canvas_height_ = height;
38 on_size_changed_call_count_++; 38 on_size_changed_call_count_++;
39 } 39 }
40 40
41 void SetOnFrameRenderedCallback(const base::Closure& callback) { 41 void SetOnFrameRenderedCallback(const base::Closure& callback) {
42 on_frame_rendered_callback_ = callback; 42 on_frame_rendered_callback_ = callback;
43 } 43 }
44 44
45 int canvas_width() { 45 int canvas_width() { return canvas_width_; }
46 return canvas_width_;
47 }
48 46
49 int canvas_height() { 47 int canvas_height() { return canvas_height_; }
50 return canvas_height_;
51 }
52 48
53 base::WeakPtr<FakeGlRendererDelegate> GetWeakPtr() { 49 base::WeakPtr<FakeGlRendererDelegate> GetWeakPtr() {
54 return weak_factory_.GetWeakPtr(); 50 return weak_factory_.GetWeakPtr();
55 } 51 }
56 52
57 int can_render_frame_call_count() { 53 int can_render_frame_call_count() { return can_render_frame_call_count_; }
58 return can_render_frame_call_count_;
59 }
60 54
61 int on_frame_rendered_call_count() { 55 int on_frame_rendered_call_count() { return on_frame_rendered_call_count_; }
62 return on_frame_rendered_call_count_;
63 }
64 56
65 int on_size_changed_call_count() { 57 int on_size_changed_call_count() { return on_size_changed_call_count_; }
66 return on_size_changed_call_count_;
67 }
68 58
69 bool can_render_frame_ = false; 59 bool can_render_frame_ = false;
70 60
71 private: 61 private:
72 int can_render_frame_call_count_ = 0; 62 int can_render_frame_call_count_ = 0;
73 int on_frame_rendered_call_count_ = 0; 63 int on_frame_rendered_call_count_ = 0;
74 int on_size_changed_call_count_ = 0; 64 int on_size_changed_call_count_ = 0;
75 65
76 int canvas_width_ = 0; 66 int canvas_width_ = 0;
77 int canvas_height_ = 0; 67 int canvas_height_ = 0;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 renderer_->RequestRender(); 103 renderer_->RequestRender();
114 } 104 }
115 105
116 void GlRendererTest::SetDesktopFrameWithSize(const webrtc::DesktopSize& size) { 106 void GlRendererTest::SetDesktopFrameWithSize(const webrtc::DesktopSize& size) {
117 renderer_->OnFrameReceived( 107 renderer_->OnFrameReceived(
118 base::MakeUnique<webrtc::BasicDesktopFrame>(size), 108 base::MakeUnique<webrtc::BasicDesktopFrame>(size),
119 base::Bind(&GlRendererTest::OnDesktopFrameProcessed, 109 base::Bind(&GlRendererTest::OnDesktopFrameProcessed,
120 base::Unretained(this))); 110 base::Unretained(this)));
121 } 111 }
122 112
123 void GlRendererTest::PostSetDesktopFrameTasks( 113 void GlRendererTest::PostSetDesktopFrameTasks(const webrtc::DesktopSize& size,
124 const webrtc::DesktopSize& size, int count) { 114 int count) {
125 for (int i = 0; i < count; i++) { 115 for (int i = 0; i < count; i++) {
126 message_loop_.task_runner()->PostTask( 116 message_loop_.task_runner()->PostTask(
127 FROM_HERE, base::Bind(&GlRendererTest::SetDesktopFrameWithSize, 117 FROM_HERE, base::Bind(&GlRendererTest::SetDesktopFrameWithSize,
128 base::Unretained(this), size)); 118 base::Unretained(this), size));
129 } 119 }
130 } 120 }
131 121
132 void GlRendererTest::OnDesktopFrameProcessed() { 122 void GlRendererTest::OnDesktopFrameProcessed() {
133 on_desktop_frame_processed_call_count_++; 123 on_desktop_frame_processed_call_count_++;
134 } 124 }
135 125
136 void GlRendererTest::RunTasksInCurrentQueue() { 126 void GlRendererTest::RunTasksInCurrentQueue() {
137 base::RunLoop run_loop; 127 base::RunLoop run_loop;
138 message_loop_.task_runner()->PostTask(FROM_HERE, run_loop.QuitClosure()); 128 message_loop_.task_runner()->PostTask(FROM_HERE, run_loop.QuitClosure());
139 run_loop.Run(); 129 run_loop.Run();
140 } 130 }
141 131
142 void GlRendererTest::RunUntilRendered() { 132 void GlRendererTest::RunUntilRendered() {
143 base::RunLoop run_loop; 133 base::RunLoop run_loop;
144 delegate_.SetOnFrameRenderedCallback(run_loop.QuitClosure()); 134 delegate_.SetOnFrameRenderedCallback(run_loop.QuitClosure());
145 run_loop.Run(); 135 run_loop.Run();
146 } 136 }
147 137
148
149 TEST_F(GlRendererTest, TestDelegateCanRenderFrame) { 138 TEST_F(GlRendererTest, TestDelegateCanRenderFrame) {
150 delegate_.can_render_frame_ = true; 139 delegate_.can_render_frame_ = true;
151 RequestRender(); 140 RequestRender();
152 RunTasksInCurrentQueue(); 141 RunTasksInCurrentQueue();
153 EXPECT_EQ(1, delegate_.can_render_frame_call_count()); 142 EXPECT_EQ(1, delegate_.can_render_frame_call_count());
154 EXPECT_EQ(1, delegate_.on_frame_rendered_call_count()); 143 EXPECT_EQ(1, delegate_.on_frame_rendered_call_count());
155 144
156 delegate_.can_render_frame_ = false; 145 delegate_.can_render_frame_ = false;
157 RequestRender(); 146 RequestRender();
158 RunTasksInCurrentQueue(); 147 RunTasksInCurrentQueue();
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 199
211 PostSetDesktopFrameTasks(webrtc::DesktopSize(16, 16), 20); 200 PostSetDesktopFrameTasks(webrtc::DesktopSize(16, 16), 20);
212 RunUntilRendered(); 201 RunUntilRendered();
213 EXPECT_EQ(2, delegate_.on_frame_rendered_call_count()); 202 EXPECT_EQ(2, delegate_.on_frame_rendered_call_count());
214 EXPECT_EQ(21, on_desktop_frame_processed_call_count()); 203 EXPECT_EQ(21, on_desktop_frame_processed_call_count());
215 } 204 }
216 205
217 // TODO(yuweih): Add tests to validate the rendered output. 206 // TODO(yuweih): Add tests to validate the rendered output.
218 207
219 } // namespace remoting 208 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/client/display/gl_renderer_delegate.h ('k') | remoting/client/display/gl_texture_ids.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698