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

Side by Side Diff: remoting/host/screen_recorder_unittest.cc

Issue 6266023: Revert "Fix crashes in ChromotingHost" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « remoting/host/screen_recorder.cc ('k') | remoting/host/simple_host_process.cc » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/task.h" 6 #include "base/task.h"
7 #include "remoting/base/mock_objects.h" 7 #include "remoting/base/mock_objects.h"
8 #include "remoting/host/mock_objects.h" 8 #include "remoting/host/mock_objects.h"
9 #include "remoting/host/screen_recorder.h" 9 #include "remoting/host/screen_recorder.h"
10 #include "remoting/proto/video.pb.h" 10 #include "remoting/proto/video.pb.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 static const VideoPacketFormat::Encoding kEncoding = 69 static const VideoPacketFormat::Encoding kEncoding =
70 VideoPacketFormat::ENCODING_VERBATIM; 70 VideoPacketFormat::ENCODING_VERBATIM;
71 71
72 class ScreenRecorderTest : public testing::Test { 72 class ScreenRecorderTest : public testing::Test {
73 public: 73 public:
74 ScreenRecorderTest() { 74 ScreenRecorderTest() {
75 } 75 }
76 76
77 virtual void SetUp() { 77 virtual void SetUp() {
78 // Capturer and Encoder are owned by ScreenRecorder. 78 // Capturer and Encoder are owned by ScreenRecorder.
79 capturer_ = new MockCapturer();
79 encoder_ = new MockEncoder(); 80 encoder_ = new MockEncoder();
80 connection_ = new MockConnectionToClient(); 81 connection_ = new MockConnectionToClient();
81 record_ = new ScreenRecorder( 82 record_ = new ScreenRecorder(
82 &message_loop_, &message_loop_, &message_loop_, 83 &message_loop_, &message_loop_, &message_loop_,
83 &capturer_, encoder_); 84 capturer_, encoder_);
84 } 85 }
85 86
86 protected: 87 protected:
87 scoped_refptr<ScreenRecorder> record_; 88 scoped_refptr<ScreenRecorder> record_;
88 scoped_refptr<MockConnectionToClient> connection_; 89 scoped_refptr<MockConnectionToClient> connection_;
89 90
90 // The following mock objects are owned by ScreenRecorder. 91 // The following mock objects are owned by ScreenRecorder.
91 MockCapturer capturer_; 92 MockCapturer* capturer_;
92 MockEncoder* encoder_; 93 MockEncoder* encoder_;
93 MessageLoop message_loop_; 94 MessageLoop message_loop_;
94 private: 95 private:
95 DISALLOW_COPY_AND_ASSIGN(ScreenRecorderTest); 96 DISALLOW_COPY_AND_ASSIGN(ScreenRecorderTest);
96 }; 97 };
97 98
98 // This test mocks capturer, encoder and network layer to operate one recording 99 // This test mocks capturer, encoder and network layer to operate one recording
99 // cycle. 100 // cycle.
100 TEST_F(ScreenRecorderTest, OneRecordCycle) { 101 TEST_F(ScreenRecorderTest, OneRecordCycle) {
101 InvalidRects update_rects; 102 InvalidRects update_rects;
102 update_rects.insert(gfx::Rect(0, 0, 10, 10)); 103 update_rects.insert(gfx::Rect(0, 0, 10, 10));
103 DataPlanes planes; 104 DataPlanes planes;
104 for (int i = 0; i < DataPlanes::kPlaneCount; ++i) { 105 for (int i = 0; i < DataPlanes::kPlaneCount; ++i) {
105 planes.data[i] = reinterpret_cast<uint8*>(i); 106 planes.data[i] = reinterpret_cast<uint8*>(i);
106 planes.strides[i] = kWidth * 4; 107 planes.strides[i] = kWidth * 4;
107 } 108 }
108 scoped_refptr<CaptureData> data(new CaptureData(planes, kWidth, 109 scoped_refptr<CaptureData> data(new CaptureData(planes, kWidth,
109 kHeight, kFormat)); 110 kHeight, kFormat));
110 EXPECT_CALL(capturer_, width()).WillRepeatedly(Return(kWidth)); 111 EXPECT_CALL(*capturer_, width()).WillRepeatedly(Return(kWidth));
111 EXPECT_CALL(capturer_, height()).WillRepeatedly(Return(kHeight)); 112 EXPECT_CALL(*capturer_, height()).WillRepeatedly(Return(kHeight));
112 113
113 // First the capturer is called. 114 // First the capturer is called.
114 EXPECT_CALL(capturer_, CaptureInvalidRects(NotNull())) 115 EXPECT_CALL(*capturer_, CaptureInvalidRects(NotNull()))
115 .WillOnce(RunCallback(update_rects, data)); 116 .WillOnce(RunCallback(update_rects, data));
116 117
117 // Expect the encoder be called. 118 // Expect the encoder be called.
118 EXPECT_CALL(*encoder_, Encode(data, false, NotNull())) 119 EXPECT_CALL(*encoder_, Encode(data, false, NotNull()))
119 .WillOnce(FinishEncode()); 120 .WillOnce(FinishEncode());
120 121
121 MockVideoStub video_stub; 122 MockVideoStub video_stub;
122 EXPECT_CALL(*connection_, video_stub()) 123 EXPECT_CALL(*connection_, video_stub())
123 .WillRepeatedly(Return(&video_stub)); 124 .WillRepeatedly(Return(&video_stub));
124 125
(...skipping 25 matching lines...) Expand all
150 TEST_F(ScreenRecorderTest, StartAndStop) { 151 TEST_F(ScreenRecorderTest, StartAndStop) {
151 InvalidRects update_rects; 152 InvalidRects update_rects;
152 update_rects.insert(gfx::Rect(0, 0, 10, 10)); 153 update_rects.insert(gfx::Rect(0, 0, 10, 10));
153 DataPlanes planes; 154 DataPlanes planes;
154 for (int i = 0; i < DataPlanes::kPlaneCount; ++i) { 155 for (int i = 0; i < DataPlanes::kPlaneCount; ++i) {
155 planes.data[i] = reinterpret_cast<uint8*>(i); 156 planes.data[i] = reinterpret_cast<uint8*>(i);
156 planes.strides[i] = kWidth * 4; 157 planes.strides[i] = kWidth * 4;
157 } 158 }
158 scoped_refptr<CaptureData> data(new CaptureData(planes, kWidth, 159 scoped_refptr<CaptureData> data(new CaptureData(planes, kWidth,
159 kHeight, kFormat)); 160 kHeight, kFormat));
160 EXPECT_CALL(capturer_, width()).WillRepeatedly(Return(kWidth)); 161 EXPECT_CALL(*capturer_, width()).WillRepeatedly(Return(kWidth));
161 EXPECT_CALL(capturer_, height()).WillRepeatedly(Return(kHeight)); 162 EXPECT_CALL(*capturer_, height()).WillRepeatedly(Return(kHeight));
162 163
163 // First the capturer is called. 164 // First the capturer is called.
164 EXPECT_CALL(capturer_, CaptureInvalidRects(NotNull())) 165 EXPECT_CALL(*capturer_, CaptureInvalidRects(NotNull()))
165 .WillRepeatedly(RunCallback(update_rects, data)); 166 .WillRepeatedly(RunCallback(update_rects, data));
166 167
167 // Expect the encoder be called. 168 // Expect the encoder be called.
168 EXPECT_CALL(*encoder_, Encode(data, false, NotNull())) 169 EXPECT_CALL(*encoder_, Encode(data, false, NotNull()))
169 .WillRepeatedly(FinishEncode()); 170 .WillRepeatedly(FinishEncode());
170 171
171 MockVideoStub video_stub; 172 MockVideoStub video_stub;
172 EXPECT_CALL(*connection_, video_stub()) 173 EXPECT_CALL(*connection_, video_stub())
173 .WillRepeatedly(Return(&video_stub)); 174 .WillRepeatedly(Return(&video_stub));
174 175
(...skipping 16 matching lines...) Expand all
191 192
192 // Start the recording. 193 // Start the recording.
193 record_->Start(); 194 record_->Start();
194 message_loop_.Run(); 195 message_loop_.Run();
195 } 196 }
196 197
197 // TODO(hclam): Add test for double buffering. 198 // TODO(hclam): Add test for double buffering.
198 // TODO(hclam): Add test for multiple captures. 199 // TODO(hclam): Add test for multiple captures.
199 200
200 } // namespace remoting 201 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/host/screen_recorder.cc ('k') | remoting/host/simple_host_process.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698