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

Side by Side Diff: extensions/renderer/api/serial/serial_api_unittest.cc

Issue 509813002: Implement the client side of Serial I/O on data pipe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@serial-io
Patch Set: Created 6 years, 3 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 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 "device/serial/serial_device_enumerator.h" 5 #include "device/serial/serial_device_enumerator.h"
6 #include "device/serial/serial_service_impl.h" 6 #include "device/serial/serial_service_impl.h"
7 #include "device/serial/test_serial_io_handler.h" 7 #include "device/serial/test_serial_io_handler.h"
8 #include "extensions/renderer/api_test_base.h" 8 #include "extensions/renderer/api_test_base.h"
9 #include "grit/extensions_renderer_resources.h" 9 #include "grit/extensions_renderer_resources.h"
10 10
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 } 291 }
292 292
293 private: 293 private:
294 virtual ~FailToGetInfoTestIoHandler() {} 294 virtual ~FailToGetInfoTestIoHandler() {}
295 295
296 mutable int times_to_succeed_; 296 mutable int times_to_succeed_;
297 297
298 DISALLOW_COPY_AND_ASSIGN(FailToGetInfoTestIoHandler); 298 DISALLOW_COPY_AND_ASSIGN(FailToGetInfoTestIoHandler);
299 }; 299 };
300 300
301 class SendErrorTestIoHandler : public TestIoHandlerBase {
302 public:
303 explicit SendErrorTestIoHandler(device::serial::SendError error)
304 : error_(error) {}
305
306 virtual void WriteImpl() OVERRIDE { QueueWriteCompleted(0, error_); }
307
308 private:
309 virtual ~SendErrorTestIoHandler() {}
310
311 device::serial::SendError error_;
312
313 DISALLOW_COPY_AND_ASSIGN(SendErrorTestIoHandler);
314 };
315
316 class ReceiveErrorTestIoHandler : public TestIoHandlerBase {
317 public:
318 explicit ReceiveErrorTestIoHandler(device::serial::ReceiveError error)
319 : error_(error) {}
320
321 virtual void ReadImpl() OVERRIDE { QueueReadCompleted(0, error_); }
322
323 private:
324 virtual ~ReceiveErrorTestIoHandler() {}
325
326 device::serial::ReceiveError error_;
327
328 DISALLOW_COPY_AND_ASSIGN(ReceiveErrorTestIoHandler);
329 };
330
331 class SendDataWithErrorIoHandler : public TestIoHandlerBase {
332 public:
333 SendDataWithErrorIoHandler() : sent_error_(false) {}
334 virtual void WriteImpl() OVERRIDE {
335 if (sent_error_) {
336 WriteCompleted(pending_write_buffer_len(),
337 device::serial::SEND_ERROR_NONE);
338 return;
339 }
340 sent_error_ = true;
341 DCHECK_GE(pending_write_buffer_len(), 2u);
raymes 2014/08/29 06:07:15 Why can you make this assumption? A comment would
Sam McNally 2014/09/01 06:35:17 Done.
342 WriteCompleted(2, device::serial::SEND_ERROR_SYSTEM_ERROR);
343 }
344
345 private:
346 virtual ~SendDataWithErrorIoHandler() {}
347
348 bool sent_error_;
349
350 DISALLOW_COPY_AND_ASSIGN(SendDataWithErrorIoHandler);
351 };
352
353 class BlockSendsForeverSendIoHandler : public TestIoHandlerBase {
354 public:
355 BlockSendsForeverSendIoHandler() {}
356 virtual void WriteImpl() OVERRIDE {}
357
358 private:
359 virtual ~BlockSendsForeverSendIoHandler() {}
360
361 DISALLOW_COPY_AND_ASSIGN(BlockSendsForeverSendIoHandler);
362 };
363
301 } // namespace 364 } // namespace
302 365
303 class SerialApiTest : public ApiTestBase { 366 class SerialApiTest : public ApiTestBase {
304 public: 367 public:
305 SerialApiTest() {} 368 SerialApiTest() {}
306 369
307 virtual void SetUp() OVERRIDE { 370 virtual void SetUp() OVERRIDE {
308 ApiTestBase::SetUp(); 371 ApiTestBase::SetUp();
372 env()->RegisterModule("async_waiter", IDR_ASYNC_WAITER_JS);
373 env()->RegisterModule("data_receiver", IDR_DATA_RECEIVER_JS);
374 env()->RegisterModule("data_sender", IDR_DATA_SENDER_JS);
309 env()->RegisterModule("serial", IDR_SERIAL_CUSTOM_BINDINGS_JS); 375 env()->RegisterModule("serial", IDR_SERIAL_CUSTOM_BINDINGS_JS);
310 env()->RegisterModule("serial_service", IDR_SERIAL_SERVICE_JS); 376 env()->RegisterModule("serial_service", IDR_SERIAL_SERVICE_JS);
311 env()->RegisterModule("device/serial/data_stream.mojom", 377 env()->RegisterModule("device/serial/data_stream.mojom",
312 IDR_DATA_STREAM_MOJOM_JS); 378 IDR_DATA_STREAM_MOJOM_JS);
313 env()->RegisterModule("device/serial/serial.mojom", IDR_SERIAL_MOJOM_JS); 379 env()->RegisterModule("device/serial/serial.mojom", IDR_SERIAL_MOJOM_JS);
314 service_provider()->AddService<device::serial::SerialService>(base::Bind( 380 service_provider()->AddService<device::serial::SerialService>(base::Bind(
315 &SerialApiTest::CreateSerialService, base::Unretained(this))); 381 &SerialApiTest::CreateSerialService, base::Unretained(this)));
316 } 382 }
317 383
318 virtual void TearDown() OVERRIDE { 384 virtual void TearDown() OVERRIDE {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 TEST_F(SerialApiTest, Flush) { 477 TEST_F(SerialApiTest, Flush) {
412 io_handler_ = new FlushTestIoHandler; 478 io_handler_ = new FlushTestIoHandler;
413 RunTest("serial_unittest.js", "testFlush"); 479 RunTest("serial_unittest.js", "testFlush");
414 EXPECT_EQ(1u, io_handler_->num_calls()); 480 EXPECT_EQ(1u, io_handler_->num_calls());
415 } 481 }
416 482
417 TEST_F(SerialApiTest, SetPaused) { 483 TEST_F(SerialApiTest, SetPaused) {
418 RunTest("serial_unittest.js", "testSetPaused"); 484 RunTest("serial_unittest.js", "testSetPaused");
419 } 485 }
420 486
487 TEST_F(SerialApiTest, Echo) {
488 RunTest("serial_unittest.js", "testEcho");
489 }
490
491 TEST_F(SerialApiTest, PausedEcho) {
492 RunTest("serial_unittest.js", "testPausedEcho");
493 }
494
495 TEST_F(SerialApiTest, PausedReceiveError) {
496 io_handler_ =
497 new ReceiveErrorTestIoHandler(device::serial::RECEIVE_ERROR_DEVICE_LOST);
498 RunTest("serial_unittest.js", "testPausedReceiveError");
499 }
500
501 TEST_F(SerialApiTest, SendPartialSuccessWithError) {
502 io_handler_ = new SendDataWithErrorIoHandler();
503 RunTest("serial_unittest.js", "testSendPartialSuccessWithError");
504 }
505
506 TEST_F(SerialApiTest, SendTimeout) {
507 io_handler_ = new BlockSendsForeverSendIoHandler();
508 RunTest("serial_unittest.js", "testSendTimeout");
509 }
510
511 TEST_F(SerialApiTest, DisableSendTimeout) {
512 io_handler_ = new BlockSendsForeverSendIoHandler();
513 RunTest("serial_unittest.js", "testDisableSendTimeout");
514 }
515
516 TEST_F(SerialApiTest, LargeSend) {
517 RunTest("serial_unittest.js", "testLargeSend");
518 }
519
520 TEST_F(SerialApiTest, ReceiveTimeout) {
521 RunTest("serial_unittest.js", "testReceiveTimeout");
522 }
523
524 TEST_F(SerialApiTest, DisableReceiveTimeout) {
525 RunTest("serial_unittest.js", "testDisableReceiveTimeout");
526 }
527
528 TEST_F(SerialApiTest, ReceiveErrorDisconnected) {
529 io_handler_ =
530 new ReceiveErrorTestIoHandler(device::serial::RECEIVE_ERROR_DISCONNECTED);
531 RunTest("serial_unittest.js", "testReceiveErrorDisconnected");
532 }
533
534 TEST_F(SerialApiTest, ReceiveErrorTimeout) {
535 io_handler_ =
536 new ReceiveErrorTestIoHandler(device::serial::RECEIVE_ERROR_TIMEOUT);
537 RunTest("serial_unittest.js", "testReceiveErrorTimeout");
538 }
539
540 TEST_F(SerialApiTest, ReceiveErrorDeviceLost) {
541 io_handler_ =
542 new ReceiveErrorTestIoHandler(device::serial::RECEIVE_ERROR_DEVICE_LOST);
543 RunTest("serial_unittest.js", "testReceiveErrorDeviceLost");
544 }
545
546 TEST_F(SerialApiTest, ReceiveErrorSystemError) {
547 io_handler_ =
548 new ReceiveErrorTestIoHandler(device::serial::RECEIVE_ERROR_SYSTEM_ERROR);
549 RunTest("serial_unittest.js", "testReceiveErrorSystemError");
550 }
551
552 TEST_F(SerialApiTest, SendErrorDisconnected) {
553 io_handler_ =
554 new SendErrorTestIoHandler(device::serial::SEND_ERROR_DISCONNECTED);
555 RunTest("serial_unittest.js", "testSendErrorDisconnected");
556 }
557
558 TEST_F(SerialApiTest, SendErrorTimeout) {
559 io_handler_ = new SendErrorTestIoHandler(device::serial::SEND_ERROR_TIMEOUT);
560 RunTest("serial_unittest.js", "testSendErrorTimeout");
561 }
562
563 TEST_F(SerialApiTest, SendErrorSystemError) {
564 io_handler_ =
565 new SendErrorTestIoHandler(device::serial::SEND_ERROR_SYSTEM_ERROR);
566 RunTest("serial_unittest.js", "testSendErrorSystemError");
567 }
568
421 TEST_F(SerialApiTest, DisconnectUnknownConnectionId) { 569 TEST_F(SerialApiTest, DisconnectUnknownConnectionId) {
422 RunTest("serial_unittest.js", "testDisconnectUnknownConnectionId"); 570 RunTest("serial_unittest.js", "testDisconnectUnknownConnectionId");
423 } 571 }
424 572
425 TEST_F(SerialApiTest, GetInfoUnknownConnectionId) { 573 TEST_F(SerialApiTest, GetInfoUnknownConnectionId) {
426 RunTest("serial_unittest.js", "testGetInfoUnknownConnectionId"); 574 RunTest("serial_unittest.js", "testGetInfoUnknownConnectionId");
427 } 575 }
428 576
429 TEST_F(SerialApiTest, UpdateUnknownConnectionId) { 577 TEST_F(SerialApiTest, UpdateUnknownConnectionId) {
430 RunTest("serial_unittest.js", "testUpdateUnknownConnectionId"); 578 RunTest("serial_unittest.js", "testUpdateUnknownConnectionId");
431 } 579 }
432 580
433 TEST_F(SerialApiTest, SetControlSignalsUnknownConnectionId) { 581 TEST_F(SerialApiTest, SetControlSignalsUnknownConnectionId) {
434 RunTest("serial_unittest.js", "testSetControlSignalsUnknownConnectionId"); 582 RunTest("serial_unittest.js", "testSetControlSignalsUnknownConnectionId");
435 } 583 }
436 584
437 TEST_F(SerialApiTest, GetControlSignalsUnknownConnectionId) { 585 TEST_F(SerialApiTest, GetControlSignalsUnknownConnectionId) {
438 RunTest("serial_unittest.js", "testGetControlSignalsUnknownConnectionId"); 586 RunTest("serial_unittest.js", "testGetControlSignalsUnknownConnectionId");
439 } 587 }
440 588
441 TEST_F(SerialApiTest, FlushUnknownConnectionId) { 589 TEST_F(SerialApiTest, FlushUnknownConnectionId) {
442 RunTest("serial_unittest.js", "testFlushUnknownConnectionId"); 590 RunTest("serial_unittest.js", "testFlushUnknownConnectionId");
443 } 591 }
444 592
445 TEST_F(SerialApiTest, SetPausedUnknownConnectionId) { 593 TEST_F(SerialApiTest, SetPausedUnknownConnectionId) {
446 RunTest("serial_unittest.js", "testSetPausedUnknownConnectionId"); 594 RunTest("serial_unittest.js", "testSetPausedUnknownConnectionId");
447 } 595 }
448 596
597 TEST_F(SerialApiTest, SendUnknownConnectionId) {
598 RunTest("serial_unittest.js", "testSendUnknownConnectionId");
599 }
600
449 } // namespace extensions 601 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698