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

Side by Side Diff: mojo/apps/js/test/js_to_cpp_unittest.cc

Issue 668663006: Standardize usage of virtual/override/final in mojo/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 | « mojo/apps/js/test/handle_unittest.cc ('k') | mojo/bindings/js/handle.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 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 "base/at_exit.h" 5 #include "base/at_exit.h"
6 #include "base/files/file_path.h" 6 #include "base/files/file_path.h"
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 // Base Provider implementation class. It's expected that tests subclass and 205 // Base Provider implementation class. It's expected that tests subclass and
206 // override the appropriate Provider functions. When test is done quit the 206 // override the appropriate Provider functions. When test is done quit the
207 // run_loop(). 207 // run_loop().
208 class CppSideConnection : public js_to_cpp::CppSide { 208 class CppSideConnection : public js_to_cpp::CppSide {
209 public: 209 public:
210 CppSideConnection() : 210 CppSideConnection() :
211 run_loop_(NULL), 211 run_loop_(NULL),
212 js_side_(NULL), 212 js_side_(NULL),
213 mishandled_messages_(0) { 213 mishandled_messages_(0) {
214 } 214 }
215 virtual ~CppSideConnection() {} 215 ~CppSideConnection() override {}
216 216
217 void set_run_loop(base::RunLoop* run_loop) { run_loop_ = run_loop; } 217 void set_run_loop(base::RunLoop* run_loop) { run_loop_ = run_loop; }
218 base::RunLoop* run_loop() { return run_loop_; } 218 base::RunLoop* run_loop() { return run_loop_; }
219 219
220 void set_js_side(js_to_cpp::JsSide* js_side) { js_side_ = js_side; } 220 void set_js_side(js_to_cpp::JsSide* js_side) { js_side_ = js_side; }
221 js_to_cpp::JsSide* js_side() { return js_side_; } 221 js_to_cpp::JsSide* js_side() { return js_side_; }
222 222
223 // js_to_cpp::CppSide: 223 // js_to_cpp::CppSide:
224 virtual void StartTest() override { 224 void StartTest() override { NOTREACHED(); }
225 NOTREACHED();
226 }
227 225
228 virtual void TestFinished() override { 226 void TestFinished() override { NOTREACHED(); }
229 NOTREACHED();
230 }
231 227
232 virtual void PingResponse() override { 228 void PingResponse() override { mishandled_messages_ += 1; }
229
230 void EchoResponse(js_to_cpp::EchoArgsListPtr list) override {
233 mishandled_messages_ += 1; 231 mishandled_messages_ += 1;
234 } 232 }
235 233
236 virtual void EchoResponse(js_to_cpp::EchoArgsListPtr list) override { 234 void BitFlipResponse(js_to_cpp::EchoArgsListPtr list) override {
237 mishandled_messages_ += 1; 235 mishandled_messages_ += 1;
238 } 236 }
239 237
240 virtual void BitFlipResponse(js_to_cpp::EchoArgsListPtr list) override { 238 void BackPointerResponse(js_to_cpp::EchoArgsListPtr list) override {
241 mishandled_messages_ += 1; 239 mishandled_messages_ += 1;
242 } 240 }
243 241
244 virtual void BackPointerResponse(
245 js_to_cpp::EchoArgsListPtr list) override {
246 mishandled_messages_ += 1;
247 }
248
249 protected: 242 protected:
250 base::RunLoop* run_loop_; 243 base::RunLoop* run_loop_;
251 js_to_cpp::JsSide* js_side_; 244 js_to_cpp::JsSide* js_side_;
252 int mishandled_messages_; 245 int mishandled_messages_;
253 246
254 private: 247 private:
255 DISALLOW_COPY_AND_ASSIGN(CppSideConnection); 248 DISALLOW_COPY_AND_ASSIGN(CppSideConnection);
256 }; 249 };
257 250
258 // Trivial test to verify a message sent from JS is received. 251 // Trivial test to verify a message sent from JS is received.
259 class PingCppSideConnection : public CppSideConnection { 252 class PingCppSideConnection : public CppSideConnection {
260 public: 253 public:
261 PingCppSideConnection() : got_message_(false) {} 254 PingCppSideConnection() : got_message_(false) {}
262 virtual ~PingCppSideConnection() {} 255 ~PingCppSideConnection() override {}
263 256
264 // js_to_cpp::CppSide: 257 // js_to_cpp::CppSide:
265 virtual void StartTest() override { 258 void StartTest() override { js_side_->Ping(); }
266 js_side_->Ping();
267 }
268 259
269 virtual void PingResponse() override { 260 void PingResponse() override {
270 got_message_ = true; 261 got_message_ = true;
271 run_loop()->Quit(); 262 run_loop()->Quit();
272 } 263 }
273 264
274 bool DidSucceed() { 265 bool DidSucceed() {
275 return got_message_ && !mishandled_messages_; 266 return got_message_ && !mishandled_messages_;
276 } 267 }
277 268
278 private: 269 private:
279 bool got_message_; 270 bool got_message_;
280 DISALLOW_COPY_AND_ASSIGN(PingCppSideConnection); 271 DISALLOW_COPY_AND_ASSIGN(PingCppSideConnection);
281 }; 272 };
282 273
283 // Test that parameters are passed with correct values. 274 // Test that parameters are passed with correct values.
284 class EchoCppSideConnection : public CppSideConnection { 275 class EchoCppSideConnection : public CppSideConnection {
285 public: 276 public:
286 EchoCppSideConnection() : 277 EchoCppSideConnection() :
287 message_count_(0), 278 message_count_(0),
288 termination_seen_(false) { 279 termination_seen_(false) {
289 } 280 }
290 virtual ~EchoCppSideConnection() {} 281 ~EchoCppSideConnection() override {}
291 282
292 // js_to_cpp::CppSide: 283 // js_to_cpp::CppSide:
293 virtual void StartTest() override { 284 void StartTest() override {
294 js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgs()); 285 js_side_->Echo(kExpectedMessageCount, BuildSampleEchoArgs());
295 } 286 }
296 287
297 virtual void EchoResponse(js_to_cpp::EchoArgsListPtr list) override { 288 void EchoResponse(js_to_cpp::EchoArgsListPtr list) override {
298 const js_to_cpp::EchoArgsPtr& special_arg = list->item; 289 const js_to_cpp::EchoArgsPtr& special_arg = list->item;
299 message_count_ += 1; 290 message_count_ += 1;
300 EXPECT_EQ(-1, special_arg->si64); 291 EXPECT_EQ(-1, special_arg->si64);
301 EXPECT_EQ(-1, special_arg->si32); 292 EXPECT_EQ(-1, special_arg->si32);
302 EXPECT_EQ(-1, special_arg->si16); 293 EXPECT_EQ(-1, special_arg->si16);
303 EXPECT_EQ(-1, special_arg->si8); 294 EXPECT_EQ(-1, special_arg->si8);
304 EXPECT_EQ(std::string("going"), special_arg->name.To<std::string>()); 295 EXPECT_EQ(std::string("going"), special_arg->name.To<std::string>());
305 CheckSampleEchoArgsList(list->next); 296 CheckSampleEchoArgsList(list->next);
306 } 297 }
307 298
308 virtual void TestFinished() override { 299 void TestFinished() override {
309 termination_seen_ = true; 300 termination_seen_ = true;
310 run_loop()->Quit(); 301 run_loop()->Quit();
311 } 302 }
312 303
313 bool DidSucceed() { 304 bool DidSucceed() {
314 return termination_seen_ && 305 return termination_seen_ &&
315 !mishandled_messages_ && 306 !mishandled_messages_ &&
316 message_count_ == kExpectedMessageCount; 307 message_count_ == kExpectedMessageCount;
317 } 308 }
318 309
319 private: 310 private:
320 static const int kExpectedMessageCount = 10; 311 static const int kExpectedMessageCount = 10;
321 int message_count_; 312 int message_count_;
322 bool termination_seen_; 313 bool termination_seen_;
323 DISALLOW_COPY_AND_ASSIGN(EchoCppSideConnection); 314 DISALLOW_COPY_AND_ASSIGN(EchoCppSideConnection);
324 }; 315 };
325 316
326 // Test that corrupted messages don't wreak havoc. 317 // Test that corrupted messages don't wreak havoc.
327 class BitFlipCppSideConnection : public CppSideConnection { 318 class BitFlipCppSideConnection : public CppSideConnection {
328 public: 319 public:
329 BitFlipCppSideConnection() : termination_seen_(false) {} 320 BitFlipCppSideConnection() : termination_seen_(false) {}
330 virtual ~BitFlipCppSideConnection() {} 321 ~BitFlipCppSideConnection() override {}
331 322
332 // js_to_cpp::CppSide: 323 // js_to_cpp::CppSide:
333 virtual void StartTest() override { 324 void StartTest() override { js_side_->BitFlip(BuildSampleEchoArgs()); }
334 js_side_->BitFlip(BuildSampleEchoArgs());
335 }
336 325
337 virtual void BitFlipResponse(js_to_cpp::EchoArgsListPtr list) override { 326 void BitFlipResponse(js_to_cpp::EchoArgsListPtr list) override {
338 CheckCorruptedEchoArgsList(list); 327 CheckCorruptedEchoArgsList(list);
339 } 328 }
340 329
341 virtual void TestFinished() override { 330 void TestFinished() override {
342 termination_seen_ = true; 331 termination_seen_ = true;
343 run_loop()->Quit(); 332 run_loop()->Quit();
344 } 333 }
345 334
346 bool DidSucceed() { 335 bool DidSucceed() {
347 return termination_seen_; 336 return termination_seen_;
348 } 337 }
349 338
350 private: 339 private:
351 bool termination_seen_; 340 bool termination_seen_;
352 DISALLOW_COPY_AND_ASSIGN(BitFlipCppSideConnection); 341 DISALLOW_COPY_AND_ASSIGN(BitFlipCppSideConnection);
353 }; 342 };
354 343
355 // Test that severely random messages don't wreak havoc. 344 // Test that severely random messages don't wreak havoc.
356 class BackPointerCppSideConnection : public CppSideConnection { 345 class BackPointerCppSideConnection : public CppSideConnection {
357 public: 346 public:
358 BackPointerCppSideConnection() : termination_seen_(false) {} 347 BackPointerCppSideConnection() : termination_seen_(false) {}
359 virtual ~BackPointerCppSideConnection() {} 348 ~BackPointerCppSideConnection() override {}
360 349
361 // js_to_cpp::CppSide: 350 // js_to_cpp::CppSide:
362 virtual void StartTest() override { 351 void StartTest() override { js_side_->BackPointer(BuildSampleEchoArgs()); }
363 js_side_->BackPointer(BuildSampleEchoArgs());
364 }
365 352
366 virtual void BackPointerResponse( 353 void BackPointerResponse(js_to_cpp::EchoArgsListPtr list) override {
367 js_to_cpp::EchoArgsListPtr list) override {
368 CheckCorruptedEchoArgsList(list); 354 CheckCorruptedEchoArgsList(list);
369 } 355 }
370 356
371 virtual void TestFinished() override { 357 void TestFinished() override {
372 termination_seen_ = true; 358 termination_seen_ = true;
373 run_loop()->Quit(); 359 run_loop()->Quit();
374 } 360 }
375 361
376 bool DidSucceed() { 362 bool DidSucceed() {
377 return termination_seen_; 363 return termination_seen_;
378 } 364 }
379 365
380 private: 366 private:
381 bool termination_seen_; 367 bool termination_seen_;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 if (IsRunningOnIsolatedBot()) 435 if (IsRunningOnIsolatedBot())
450 return; 436 return;
451 437
452 BackPointerCppSideConnection cpp_side_connection; 438 BackPointerCppSideConnection cpp_side_connection;
453 RunTest("mojo/apps/js/test/js_to_cpp_unittest", &cpp_side_connection); 439 RunTest("mojo/apps/js/test/js_to_cpp_unittest", &cpp_side_connection);
454 EXPECT_TRUE(cpp_side_connection.DidSucceed()); 440 EXPECT_TRUE(cpp_side_connection.DidSucceed());
455 } 441 }
456 442
457 } // namespace js 443 } // namespace js
458 } // namespace mojo 444 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/apps/js/test/handle_unittest.cc ('k') | mojo/bindings/js/handle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698