Chromium Code Reviews| 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 |