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

Side by Side Diff: content/renderer/screen_orientation/screen_orientation_dispatcher_unittest.cc

Issue 406883002: Don't use WebLockOrientationCallback::OnSuccess() with arguments. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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/screen_orientation/screen_orientation_dispatcher.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 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 "screen_orientation_dispatcher.h" 5 #include "screen_orientation_dispatcher.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 14 matching lines...) Expand all
25 // any time. 25 // any time.
26 class MockLockOrientationCallback : 26 class MockLockOrientationCallback :
27 public blink::WebLockOrientationCallback { 27 public blink::WebLockOrientationCallback {
28 public: 28 public:
29 struct LockOrientationResultHolder { 29 struct LockOrientationResultHolder {
30 LockOrientationResultHolder() 30 LockOrientationResultHolder()
31 : succeeded_(false), failed_(false) {} 31 : succeeded_(false), failed_(false) {}
32 32
33 bool succeeded_; 33 bool succeeded_;
34 bool failed_; 34 bool failed_;
35 unsigned angle_;
36 blink::WebScreenOrientationType orientation_;
37 blink::WebLockOrientationError error_; 35 blink::WebLockOrientationError error_;
38 }; 36 };
39 37
40 explicit MockLockOrientationCallback(LockOrientationResultHolder* results) 38 explicit MockLockOrientationCallback(LockOrientationResultHolder* results)
41 : results_(results) {} 39 : results_(results) {}
42 40
43 virtual void onSuccess(unsigned angle, 41 virtual void onSuccess() {
44 blink::WebScreenOrientationType orientation) {
45 results_->succeeded_ = true; 42 results_->succeeded_ = true;
46 results_->angle_ = angle;
47 results_->orientation_ = orientation;
48 } 43 }
49 44
50 virtual void onError(blink::WebLockOrientationError error) { 45 virtual void onError(blink::WebLockOrientationError error) {
51 results_->failed_ = true; 46 results_->failed_ = true;
52 results_->error_ = error; 47 results_->error_ = error;
53 } 48 }
54 49
55 private: 50 private:
56 virtual ~MockLockOrientationCallback() {} 51 virtual ~MockLockOrientationCallback() {}
57 52
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 158
164 EXPECT_FALSE(callback_results.succeeded_); 159 EXPECT_FALSE(callback_results.succeeded_);
165 EXPECT_TRUE(callback_results.failed_); 160 EXPECT_TRUE(callback_results.failed_);
166 EXPECT_EQ(*it, callback_results.error_); 161 EXPECT_EQ(*it, callback_results.error_);
167 162
168 sink().ClearMessages(); 163 sink().ClearMessages();
169 } 164 }
170 } 165 }
171 166
172 // Test that when a LockSuccess message is received, the request is set as 167 // Test that when a LockSuccess message is received, the request is set as
173 // succeeded with the correct values. 168 // succeeded.
174 TEST_F(ScreenOrientationDispatcherTest, LockRequest_Success) { 169 TEST_F(ScreenOrientationDispatcherTest, LockRequest_Success) {
175 struct ScreenOrientationInformation { 170 MockLockOrientationCallback::LockOrientationResultHolder callback_results;
176 unsigned angle; 171 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary,
177 blink::WebScreenOrientationType type; 172 new MockLockOrientationCallback(&callback_results));
178 } orientations[] = {
179 { 0, blink::WebScreenOrientationPortraitPrimary },
180 { 0, blink::WebScreenOrientationLandscapePrimary },
181 { 90, blink::WebScreenOrientationPortraitSecondary },
182 { 90, blink::WebScreenOrientationLandscapePrimary }
183 };
184 173
185 int orientationsCount = 4; 174 int request_id = GetFirstLockRequestIdFromSink();
175 OnMessageReceived(ScreenOrientationMsg_LockSuccess(routing_id(),
176 request_id));
186 177
187 for (int i = 0; i < orientationsCount; ++i) { 178 EXPECT_TRUE(callback_results.succeeded_);
188 MockLockOrientationCallback::LockOrientationResultHolder callback_results; 179 EXPECT_FALSE(callback_results.failed_);
189 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary,
190 new MockLockOrientationCallback(&callback_results));
191 180
192 int request_id = GetFirstLockRequestIdFromSink(); 181 sink().ClearMessages();
193 OnMessageReceived(ScreenOrientationMsg_LockSuccess(routing_id(),
194 request_id,
195 orientations[i].angle,
196 orientations[i].type));
197
198 EXPECT_TRUE(callback_results.succeeded_);
199 EXPECT_FALSE(callback_results.failed_);
200 EXPECT_EQ(orientations[i].angle, callback_results.angle_);
201 EXPECT_EQ(orientations[i].type, callback_results.orientation_);
202
203 sink().ClearMessages();
204 }
205 } 182 }
206 183
207 // Test an edge case: a LockSuccess is received but it matches no pending 184 // Test an edge case: a LockSuccess is received but it matches no pending
208 // callback. 185 // callback.
209 TEST_F(ScreenOrientationDispatcherTest, SuccessForUnknownRequest) { 186 TEST_F(ScreenOrientationDispatcherTest, SuccessForUnknownRequest) {
210 MockLockOrientationCallback::LockOrientationResultHolder callback_results; 187 MockLockOrientationCallback::LockOrientationResultHolder callback_results;
211 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary, 188 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary,
212 new MockLockOrientationCallback(&callback_results)); 189 new MockLockOrientationCallback(&callback_results));
213 190
214 int request_id = GetFirstLockRequestIdFromSink(); 191 int request_id = GetFirstLockRequestIdFromSink();
215 OnMessageReceived(ScreenOrientationMsg_LockSuccess( 192 OnMessageReceived(ScreenOrientationMsg_LockSuccess(routing_id(),
216 routing_id(), 193 request_id + 1));
217 request_id + 1,
218 90,
219 blink::WebScreenOrientationLandscapePrimary));
220 194
221 EXPECT_FALSE(callback_results.succeeded_); 195 EXPECT_FALSE(callback_results.succeeded_);
222 EXPECT_FALSE(callback_results.failed_); 196 EXPECT_FALSE(callback_results.failed_);
223 } 197 }
224 198
225 // Test an edge case: a LockError is received but it matches no pending 199 // Test an edge case: a LockError is received but it matches no pending
226 // callback. 200 // callback.
227 TEST_F(ScreenOrientationDispatcherTest, ErrorForUnknownRequest) { 201 TEST_F(ScreenOrientationDispatcherTest, ErrorForUnknownRequest) {
228 MockLockOrientationCallback::LockOrientationResultHolder callback_results; 202 MockLockOrientationCallback::LockOrientationResultHolder callback_results;
229 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary, 203 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary,
(...skipping 19 matching lines...) Expand all
249 223
250 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary, 224 LockOrientation(blink::WebScreenOrientationLockPortraitPrimary,
251 new MockLockOrientationCallback(&callback_results1)); 225 new MockLockOrientationCallback(&callback_results1));
252 int request_id1 = GetFirstLockRequestIdFromSink(); 226 int request_id1 = GetFirstLockRequestIdFromSink();
253 227
254 LockOrientation(blink::WebScreenOrientationLockLandscapePrimary, 228 LockOrientation(blink::WebScreenOrientationLockLandscapePrimary,
255 new MockLockOrientationCallback(&callback_results2)); 229 new MockLockOrientationCallback(&callback_results2));
256 230
257 // callback_results1 must be rejected, tested in CancelPending_DoubleLock. 231 // callback_results1 must be rejected, tested in CancelPending_DoubleLock.
258 232
259 OnMessageReceived(ScreenOrientationMsg_LockSuccess( 233 OnMessageReceived(ScreenOrientationMsg_LockSuccess(routing_id(),
260 routing_id(), 234 request_id1));
261 request_id1,
262 0,
263 blink::WebScreenOrientationPortraitPrimary));
264 235
265 // First request is still rejected. 236 // First request is still rejected.
266 EXPECT_FALSE(callback_results1.succeeded_); 237 EXPECT_FALSE(callback_results1.succeeded_);
267 EXPECT_TRUE(callback_results1.failed_); 238 EXPECT_TRUE(callback_results1.failed_);
268 EXPECT_EQ(blink::WebLockOrientationErrorCanceled, callback_results1.error_); 239 EXPECT_EQ(blink::WebLockOrientationErrorCanceled, callback_results1.error_);
269 240
270 // Second request is still pending. 241 // Second request is still pending.
271 EXPECT_FALSE(callback_results2.succeeded_); 242 EXPECT_FALSE(callback_results2.succeeded_);
272 EXPECT_FALSE(callback_results2.failed_); 243 EXPECT_FALSE(callback_results2.failed_);
273 } 244 }
274 245
275 } // namespace content 246 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/screen_orientation/screen_orientation_dispatcher.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698