OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |