OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/devices_app/usb/device_impl.h" | 5 #include "device/devices_app/usb/device_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <map> | 9 #include <map> |
10 #include <queue> | 10 #include <queue> |
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 | 372 |
373 TEST_F(USBDeviceImplTest, Open) { | 373 TEST_F(USBDeviceImplTest, Open) { |
374 DevicePtr device = GetMockDeviceProxy(); | 374 DevicePtr device = GetMockDeviceProxy(); |
375 | 375 |
376 EXPECT_FALSE(is_device_open()); | 376 EXPECT_FALSE(is_device_open()); |
377 | 377 |
378 EXPECT_CALL(mock_device(), Open(_)); | 378 EXPECT_CALL(mock_device(), Open(_)); |
379 | 379 |
380 base::RunLoop loop; | 380 base::RunLoop loop; |
381 device->Open( | 381 device->Open( |
382 base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, loop.QuitClosure())); | 382 base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, loop.QuitClosure())); |
383 loop.Run(); | 383 loop.Run(); |
384 | 384 |
385 EXPECT_CALL(mock_handle(), Close()); | 385 EXPECT_CALL(mock_handle(), Close()); |
386 } | 386 } |
387 | 387 |
388 TEST_F(USBDeviceImplTest, Close) { | 388 TEST_F(USBDeviceImplTest, Close) { |
389 DevicePtr device = GetMockDeviceProxy(); | 389 DevicePtr device = GetMockDeviceProxy(); |
390 | 390 |
391 EXPECT_FALSE(is_device_open()); | 391 EXPECT_FALSE(is_device_open()); |
392 | 392 |
393 EXPECT_CALL(mock_device(), Open(_)); | 393 EXPECT_CALL(mock_device(), Open(_)); |
394 | 394 |
395 { | 395 { |
396 base::RunLoop loop; | 396 base::RunLoop loop; |
397 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 397 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
398 loop.QuitClosure())); | 398 loop.QuitClosure())); |
399 loop.Run(); | 399 loop.Run(); |
400 } | 400 } |
401 | 401 |
402 EXPECT_CALL(mock_handle(), Close()); | 402 EXPECT_CALL(mock_handle(), Close()); |
403 | 403 |
404 { | 404 { |
405 base::RunLoop loop; | 405 base::RunLoop loop; |
406 device->Close(loop.QuitClosure()); | 406 device->Close(loop.QuitClosure()); |
407 loop.Run(); | 407 loop.Run(); |
(...skipping 15 matching lines...) Expand all Loading... |
423 loop.Run(); | 423 loop.Run(); |
424 } | 424 } |
425 | 425 |
426 TEST_F(USBDeviceImplTest, SetInvalidConfiguration) { | 426 TEST_F(USBDeviceImplTest, SetInvalidConfiguration) { |
427 DevicePtr device = GetMockDeviceProxy(); | 427 DevicePtr device = GetMockDeviceProxy(); |
428 | 428 |
429 EXPECT_CALL(mock_device(), Open(_)); | 429 EXPECT_CALL(mock_device(), Open(_)); |
430 | 430 |
431 { | 431 { |
432 base::RunLoop loop; | 432 base::RunLoop loop; |
433 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 433 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
434 loop.QuitClosure())); | 434 loop.QuitClosure())); |
435 loop.Run(); | 435 loop.Run(); |
436 } | 436 } |
437 | 437 |
438 EXPECT_CALL(mock_handle(), SetConfiguration(42, _)); | 438 EXPECT_CALL(mock_handle(), SetConfiguration(42, _)); |
439 | 439 |
440 { | 440 { |
441 // SetConfiguration should fail because 42 is not a valid mock | 441 // SetConfiguration should fail because 42 is not a valid mock |
442 // configuration. | 442 // configuration. |
443 base::RunLoop loop; | 443 base::RunLoop loop; |
444 device->SetConfiguration( | 444 device->SetConfiguration( |
445 42, base::Bind(&ExpectResultAndThen, false, loop.QuitClosure())); | 445 42, base::Bind(&ExpectResultAndThen, false, loop.QuitClosure())); |
446 loop.Run(); | 446 loop.Run(); |
447 } | 447 } |
448 | 448 |
449 EXPECT_CALL(mock_handle(), Close()); | 449 EXPECT_CALL(mock_handle(), Close()); |
450 } | 450 } |
451 | 451 |
452 TEST_F(USBDeviceImplTest, SetValidConfiguration) { | 452 TEST_F(USBDeviceImplTest, SetValidConfiguration) { |
453 DevicePtr device = GetMockDeviceProxy(); | 453 DevicePtr device = GetMockDeviceProxy(); |
454 | 454 |
455 EXPECT_CALL(mock_device(), Open(_)); | 455 EXPECT_CALL(mock_device(), Open(_)); |
456 | 456 |
457 { | 457 { |
458 base::RunLoop loop; | 458 base::RunLoop loop; |
459 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 459 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
460 loop.QuitClosure())); | 460 loop.QuitClosure())); |
461 loop.Run(); | 461 loop.Run(); |
462 } | 462 } |
463 | 463 |
464 EXPECT_CALL(mock_handle(), SetConfiguration(42, _)); | 464 EXPECT_CALL(mock_handle(), SetConfiguration(42, _)); |
465 | 465 |
466 AddMockConfig(ConfigBuilder(42)); | 466 AddMockConfig(ConfigBuilder(42)); |
467 | 467 |
468 { | 468 { |
469 // SetConfiguration should succeed because 42 is a valid mock configuration. | 469 // SetConfiguration should succeed because 42 is a valid mock configuration. |
470 base::RunLoop loop; | 470 base::RunLoop loop; |
471 device->SetConfiguration( | 471 device->SetConfiguration( |
472 42, base::Bind(&ExpectResultAndThen, true, loop.QuitClosure())); | 472 42, base::Bind(&ExpectResultAndThen, true, loop.QuitClosure())); |
473 loop.Run(); | 473 loop.Run(); |
474 } | 474 } |
475 | 475 |
476 EXPECT_CALL(mock_handle(), Close()); | 476 EXPECT_CALL(mock_handle(), Close()); |
477 } | 477 } |
478 | 478 |
479 // Verify that the result of Reset() reflects the underlying UsbDeviceHandle's | 479 // Verify that the result of Reset() reflects the underlying UsbDeviceHandle's |
480 // ResetDevice() result. | 480 // ResetDevice() result. |
481 TEST_F(USBDeviceImplTest, Reset) { | 481 TEST_F(USBDeviceImplTest, Reset) { |
482 DevicePtr device = GetMockDeviceProxy(); | 482 DevicePtr device = GetMockDeviceProxy(); |
483 | 483 |
484 EXPECT_CALL(mock_device(), Open(_)); | 484 EXPECT_CALL(mock_device(), Open(_)); |
485 | 485 |
486 { | 486 { |
487 base::RunLoop loop; | 487 base::RunLoop loop; |
488 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 488 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
489 loop.QuitClosure())); | 489 loop.QuitClosure())); |
490 loop.Run(); | 490 loop.Run(); |
491 } | 491 } |
492 | 492 |
493 EXPECT_CALL(mock_handle(), ResetDevice(_)); | 493 EXPECT_CALL(mock_handle(), ResetDevice(_)); |
494 | 494 |
495 set_allow_reset(true); | 495 set_allow_reset(true); |
496 | 496 |
497 { | 497 { |
498 base::RunLoop loop; | 498 base::RunLoop loop; |
(...skipping 14 matching lines...) Expand all Loading... |
513 EXPECT_CALL(mock_handle(), Close()); | 513 EXPECT_CALL(mock_handle(), Close()); |
514 } | 514 } |
515 | 515 |
516 TEST_F(USBDeviceImplTest, ClaimAndReleaseInterface) { | 516 TEST_F(USBDeviceImplTest, ClaimAndReleaseInterface) { |
517 DevicePtr device = GetMockDeviceProxy(); | 517 DevicePtr device = GetMockDeviceProxy(); |
518 | 518 |
519 EXPECT_CALL(mock_device(), Open(_)); | 519 EXPECT_CALL(mock_device(), Open(_)); |
520 | 520 |
521 { | 521 { |
522 base::RunLoop loop; | 522 base::RunLoop loop; |
523 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 523 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
524 loop.QuitClosure())); | 524 loop.QuitClosure())); |
525 loop.Run(); | 525 loop.Run(); |
526 } | 526 } |
527 | 527 |
528 // Now add a mock interface #1. | 528 // Now add a mock interface #1. |
529 AddMockConfig(ConfigBuilder(1).AddInterface(1, 0, 1, 2, 3)); | 529 AddMockConfig(ConfigBuilder(1).AddInterface(1, 0, 1, 2, 3)); |
530 | 530 |
531 EXPECT_CALL(mock_handle(), SetConfiguration(1, _)); | 531 EXPECT_CALL(mock_handle(), SetConfiguration(1, _)); |
532 | 532 |
533 { | 533 { |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 EXPECT_CALL(mock_handle(), Close()); | 581 EXPECT_CALL(mock_handle(), Close()); |
582 } | 582 } |
583 | 583 |
584 TEST_F(USBDeviceImplTest, SetInterfaceAlternateSetting) { | 584 TEST_F(USBDeviceImplTest, SetInterfaceAlternateSetting) { |
585 DevicePtr device = GetMockDeviceProxy(); | 585 DevicePtr device = GetMockDeviceProxy(); |
586 | 586 |
587 EXPECT_CALL(mock_device(), Open(_)); | 587 EXPECT_CALL(mock_device(), Open(_)); |
588 | 588 |
589 { | 589 { |
590 base::RunLoop loop; | 590 base::RunLoop loop; |
591 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 591 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
592 loop.QuitClosure())); | 592 loop.QuitClosure())); |
593 loop.Run(); | 593 loop.Run(); |
594 } | 594 } |
595 | 595 |
596 AddMockConfig(ConfigBuilder(1) | 596 AddMockConfig(ConfigBuilder(1) |
597 .AddInterface(1, 0, 1, 2, 3) | 597 .AddInterface(1, 0, 1, 2, 3) |
598 .AddInterface(1, 42, 1, 2, 3) | 598 .AddInterface(1, 42, 1, 2, 3) |
599 .AddInterface(2, 0, 1, 2, 3)); | 599 .AddInterface(2, 0, 1, 2, 3)); |
600 | 600 |
601 EXPECT_CALL(mock_handle(), SetInterfaceAlternateSetting(1, 42, _)); | 601 EXPECT_CALL(mock_handle(), SetInterfaceAlternateSetting(1, 42, _)); |
(...skipping 17 matching lines...) Expand all Loading... |
619 EXPECT_CALL(mock_handle(), Close()); | 619 EXPECT_CALL(mock_handle(), Close()); |
620 } | 620 } |
621 | 621 |
622 TEST_F(USBDeviceImplTest, ControlTransfer) { | 622 TEST_F(USBDeviceImplTest, ControlTransfer) { |
623 DevicePtr device = GetMockDeviceProxy(); | 623 DevicePtr device = GetMockDeviceProxy(); |
624 | 624 |
625 EXPECT_CALL(mock_device(), Open(_)); | 625 EXPECT_CALL(mock_device(), Open(_)); |
626 | 626 |
627 { | 627 { |
628 base::RunLoop loop; | 628 base::RunLoop loop; |
629 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 629 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
630 loop.QuitClosure())); | 630 loop.QuitClosure())); |
631 loop.Run(); | 631 loop.Run(); |
632 } | 632 } |
633 | 633 |
634 AddMockConfig(ConfigBuilder(1).AddInterface(7, 0, 1, 2, 3)); | 634 AddMockConfig(ConfigBuilder(1).AddInterface(7, 0, 1, 2, 3)); |
635 | 635 |
636 EXPECT_CALL(mock_device(), GetActiveConfiguration()); | 636 EXPECT_CALL(mock_device(), GetActiveConfiguration()); |
637 EXPECT_CALL(mock_handle(), SetConfiguration(1, _)); | 637 EXPECT_CALL(mock_handle(), SetConfiguration(1, _)); |
638 | 638 |
639 { | 639 { |
640 base::RunLoop loop; | 640 base::RunLoop loop; |
641 device->SetConfiguration( | 641 device->SetConfiguration( |
642 1, base::Bind(&ExpectResultAndThen, true, loop.QuitClosure())); | 642 1, base::Bind(&ExpectResultAndThen, true, loop.QuitClosure())); |
643 loop.Run(); | 643 loop.Run(); |
644 } | 644 } |
645 | 645 |
646 std::vector<uint8_t> fake_data; | 646 std::vector<uint8_t> fake_data; |
647 fake_data.push_back(41); | 647 fake_data.push_back(41); |
648 fake_data.push_back(42); | 648 fake_data.push_back(42); |
649 fake_data.push_back(43); | 649 fake_data.push_back(43); |
650 | 650 |
651 AddMockInboundData(fake_data); | 651 AddMockInboundData(fake_data); |
652 | 652 |
653 EXPECT_CALL(mock_handle(), | 653 EXPECT_CALL(mock_handle(), |
654 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, | 654 ControlTransfer(USB_DIRECTION_INBOUND, UsbDeviceHandle::STANDARD, |
655 UsbDeviceHandle::DEVICE, 5, 6, 7, _, _, 0, _)); | 655 UsbDeviceHandle::DEVICE, 5, 6, 7, _, _, 0, _)); |
656 | 656 |
657 { | 657 { |
658 auto params = ControlTransferParams::New(); | 658 auto params = ControlTransferParams::New(); |
659 params->type = CONTROL_TRANSFER_TYPE_STANDARD; | 659 params->type = ControlTransferType::STANDARD; |
660 params->recipient = CONTROL_TRANSFER_RECIPIENT_DEVICE; | 660 params->recipient = ControlTransferRecipient::DEVICE; |
661 params->request = 5; | 661 params->request = 5; |
662 params->value = 6; | 662 params->value = 6; |
663 params->index = 7; | 663 params->index = 7; |
664 base::RunLoop loop; | 664 base::RunLoop loop; |
665 device->ControlTransferIn( | 665 device->ControlTransferIn( |
666 std::move(params), static_cast<uint32_t>(fake_data.size()), 0, | 666 std::move(params), static_cast<uint32_t>(fake_data.size()), 0, |
667 base::Bind(&ExpectTransferInAndThen, TRANSFER_STATUS_COMPLETED, | 667 base::Bind(&ExpectTransferInAndThen, TransferStatus::COMPLETED, |
668 fake_data, loop.QuitClosure())); | 668 fake_data, loop.QuitClosure())); |
669 loop.Run(); | 669 loop.Run(); |
670 } | 670 } |
671 | 671 |
672 AddMockOutboundData(fake_data); | 672 AddMockOutboundData(fake_data); |
673 | 673 |
674 EXPECT_CALL(mock_device(), GetActiveConfiguration()); | 674 EXPECT_CALL(mock_device(), GetActiveConfiguration()); |
675 EXPECT_CALL(mock_handle(), | 675 EXPECT_CALL(mock_handle(), |
676 ControlTransfer(USB_DIRECTION_OUTBOUND, UsbDeviceHandle::STANDARD, | 676 ControlTransfer(USB_DIRECTION_OUTBOUND, UsbDeviceHandle::STANDARD, |
677 UsbDeviceHandle::INTERFACE, 5, 6, 7, _, _, 0, _)); | 677 UsbDeviceHandle::INTERFACE, 5, 6, 7, _, _, 0, _)); |
678 | 678 |
679 { | 679 { |
680 auto params = ControlTransferParams::New(); | 680 auto params = ControlTransferParams::New(); |
681 params->type = CONTROL_TRANSFER_TYPE_STANDARD; | 681 params->type = ControlTransferType::STANDARD; |
682 params->recipient = CONTROL_TRANSFER_RECIPIENT_INTERFACE; | 682 params->recipient = ControlTransferRecipient::INTERFACE; |
683 params->request = 5; | 683 params->request = 5; |
684 params->value = 6; | 684 params->value = 6; |
685 params->index = 7; | 685 params->index = 7; |
686 base::RunLoop loop; | 686 base::RunLoop loop; |
687 device->ControlTransferOut( | 687 device->ControlTransferOut( |
688 std::move(params), mojo::Array<uint8_t>::From(fake_data), 0, | 688 std::move(params), mojo::Array<uint8_t>::From(fake_data), 0, |
689 base::Bind(&ExpectTransferStatusAndThen, TRANSFER_STATUS_COMPLETED, | 689 base::Bind(&ExpectTransferStatusAndThen, TransferStatus::COMPLETED, |
690 loop.QuitClosure())); | 690 loop.QuitClosure())); |
691 loop.Run(); | 691 loop.Run(); |
692 } | 692 } |
693 | 693 |
694 EXPECT_CALL(mock_handle(), Close()); | 694 EXPECT_CALL(mock_handle(), Close()); |
695 } | 695 } |
696 | 696 |
697 TEST_F(USBDeviceImplTest, GenericTransfer) { | 697 TEST_F(USBDeviceImplTest, GenericTransfer) { |
698 DevicePtr device = GetMockDeviceProxy(); | 698 DevicePtr device = GetMockDeviceProxy(); |
699 | 699 |
700 EXPECT_CALL(mock_device(), Open(_)); | 700 EXPECT_CALL(mock_device(), Open(_)); |
701 | 701 |
702 { | 702 { |
703 base::RunLoop loop; | 703 base::RunLoop loop; |
704 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 704 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
705 loop.QuitClosure())); | 705 loop.QuitClosure())); |
706 loop.Run(); | 706 loop.Run(); |
707 } | 707 } |
708 | 708 |
709 std::string message1 = "say hello please"; | 709 std::string message1 = "say hello please"; |
710 std::vector<uint8_t> fake_outbound_data(message1.size()); | 710 std::vector<uint8_t> fake_outbound_data(message1.size()); |
711 std::copy(message1.begin(), message1.end(), fake_outbound_data.begin()); | 711 std::copy(message1.begin(), message1.end(), fake_outbound_data.begin()); |
712 | 712 |
713 std::string message2 = "hello world!"; | 713 std::string message2 = "hello world!"; |
714 std::vector<uint8_t> fake_inbound_data(message2.size()); | 714 std::vector<uint8_t> fake_inbound_data(message2.size()); |
715 std::copy(message2.begin(), message2.end(), fake_inbound_data.begin()); | 715 std::copy(message2.begin(), message2.end(), fake_inbound_data.begin()); |
716 | 716 |
717 AddMockConfig(ConfigBuilder(1).AddInterface(7, 0, 1, 2, 3)); | 717 AddMockConfig(ConfigBuilder(1).AddInterface(7, 0, 1, 2, 3)); |
718 AddMockOutboundData(fake_outbound_data); | 718 AddMockOutboundData(fake_outbound_data); |
719 AddMockInboundData(fake_inbound_data); | 719 AddMockInboundData(fake_inbound_data); |
720 | 720 |
721 EXPECT_CALL(mock_handle(), GenericTransfer(USB_DIRECTION_OUTBOUND, 0x01, _, | 721 EXPECT_CALL(mock_handle(), GenericTransfer(USB_DIRECTION_OUTBOUND, 0x01, _, |
722 fake_outbound_data.size(), 0, _)); | 722 fake_outbound_data.size(), 0, _)); |
723 | 723 |
724 { | 724 { |
725 base::RunLoop loop; | 725 base::RunLoop loop; |
726 device->GenericTransferOut( | 726 device->GenericTransferOut( |
727 1, mojo::Array<uint8_t>::From(fake_outbound_data), 0, | 727 1, mojo::Array<uint8_t>::From(fake_outbound_data), 0, |
728 base::Bind(&ExpectTransferStatusAndThen, TRANSFER_STATUS_COMPLETED, | 728 base::Bind(&ExpectTransferStatusAndThen, TransferStatus::COMPLETED, |
729 loop.QuitClosure())); | 729 loop.QuitClosure())); |
730 loop.Run(); | 730 loop.Run(); |
731 } | 731 } |
732 | 732 |
733 EXPECT_CALL(mock_handle(), GenericTransfer(USB_DIRECTION_INBOUND, 0x81, _, | 733 EXPECT_CALL(mock_handle(), GenericTransfer(USB_DIRECTION_INBOUND, 0x81, _, |
734 fake_inbound_data.size(), 0, _)); | 734 fake_inbound_data.size(), 0, _)); |
735 | 735 |
736 { | 736 { |
737 base::RunLoop loop; | 737 base::RunLoop loop; |
738 device->GenericTransferIn( | 738 device->GenericTransferIn( |
739 1, static_cast<uint32_t>(fake_inbound_data.size()), 0, | 739 1, static_cast<uint32_t>(fake_inbound_data.size()), 0, |
740 base::Bind(&ExpectTransferInAndThen, TRANSFER_STATUS_COMPLETED, | 740 base::Bind(&ExpectTransferInAndThen, TransferStatus::COMPLETED, |
741 fake_inbound_data, loop.QuitClosure())); | 741 fake_inbound_data, loop.QuitClosure())); |
742 loop.Run(); | 742 loop.Run(); |
743 } | 743 } |
744 | 744 |
745 EXPECT_CALL(mock_handle(), Close()); | 745 EXPECT_CALL(mock_handle(), Close()); |
746 } | 746 } |
747 | 747 |
748 TEST_F(USBDeviceImplTest, IsochronousTransfer) { | 748 TEST_F(USBDeviceImplTest, IsochronousTransfer) { |
749 DevicePtr device = GetMockDeviceProxy(); | 749 DevicePtr device = GetMockDeviceProxy(); |
750 | 750 |
751 EXPECT_CALL(mock_device(), Open(_)); | 751 EXPECT_CALL(mock_device(), Open(_)); |
752 | 752 |
753 { | 753 { |
754 base::RunLoop loop; | 754 base::RunLoop loop; |
755 device->Open(base::Bind(&ExpectOpenAndThen, OPEN_DEVICE_ERROR_OK, | 755 device->Open(base::Bind(&ExpectOpenAndThen, OpenDeviceError::OK, |
756 loop.QuitClosure())); | 756 loop.QuitClosure())); |
757 loop.Run(); | 757 loop.Run(); |
758 } | 758 } |
759 | 759 |
760 std::string outbound_packet_data = "aaaaaaaabbbbbbbbccccccccdddddddd"; | 760 std::string outbound_packet_data = "aaaaaaaabbbbbbbbccccccccdddddddd"; |
761 std::vector<uint8_t> fake_outbound_packets(outbound_packet_data.size()); | 761 std::vector<uint8_t> fake_outbound_packets(outbound_packet_data.size()); |
762 std::copy(outbound_packet_data.begin(), outbound_packet_data.end(), | 762 std::copy(outbound_packet_data.begin(), outbound_packet_data.end(), |
763 fake_outbound_packets.begin()); | 763 fake_outbound_packets.begin()); |
764 | 764 |
765 std::string inbound_packet_data = "ddddddddccccccccbbbbbbbbaaaaaaaa"; | 765 std::string inbound_packet_data = "ddddddddccccccccbbbbbbbbaaaaaaaa"; |
(...skipping 14 matching lines...) Expand all Loading... |
780 mojo::Array<mojo::Array<uint8_t>> packets = | 780 mojo::Array<mojo::Array<uint8_t>> packets = |
781 mojo::Array<mojo::Array<uint8_t>>::New(4); | 781 mojo::Array<mojo::Array<uint8_t>>::New(4); |
782 for (size_t i = 0; i < 4; ++i) { | 782 for (size_t i = 0; i < 4; ++i) { |
783 std::vector<uint8_t> bytes(8); | 783 std::vector<uint8_t> bytes(8); |
784 std::copy(outbound_packet_data.begin() + i * 8, | 784 std::copy(outbound_packet_data.begin() + i * 8, |
785 outbound_packet_data.begin() + i * 8 + 8, bytes.begin()); | 785 outbound_packet_data.begin() + i * 8 + 8, bytes.begin()); |
786 packets[i].Swap(&bytes); | 786 packets[i].Swap(&bytes); |
787 } | 787 } |
788 device->IsochronousTransferOut( | 788 device->IsochronousTransferOut( |
789 1, std::move(packets), 0, | 789 1, std::move(packets), 0, |
790 base::Bind(&ExpectTransferStatusAndThen, TRANSFER_STATUS_COMPLETED, | 790 base::Bind(&ExpectTransferStatusAndThen, TransferStatus::COMPLETED, |
791 loop.QuitClosure())); | 791 loop.QuitClosure())); |
792 loop.Run(); | 792 loop.Run(); |
793 } | 793 } |
794 | 794 |
795 EXPECT_CALL(mock_handle(), | 795 EXPECT_CALL(mock_handle(), |
796 IsochronousTransfer(USB_DIRECTION_INBOUND, 0x81, _, | 796 IsochronousTransfer(USB_DIRECTION_INBOUND, 0x81, _, |
797 fake_inbound_packets.size(), 4, 8, 0, _)); | 797 fake_inbound_packets.size(), 4, 8, 0, _)); |
798 | 798 |
799 { | 799 { |
800 base::RunLoop loop; | 800 base::RunLoop loop; |
801 std::vector<std::vector<uint8_t>> packets(4); | 801 std::vector<std::vector<uint8_t>> packets(4); |
802 for (size_t i = 0; i < 4; ++i) { | 802 for (size_t i = 0; i < 4; ++i) { |
803 packets[i].resize(8); | 803 packets[i].resize(8); |
804 std::copy(inbound_packet_data.begin() + i * 8, | 804 std::copy(inbound_packet_data.begin() + i * 8, |
805 inbound_packet_data.begin() + i * 8 + 8, packets[i].begin()); | 805 inbound_packet_data.begin() + i * 8 + 8, packets[i].begin()); |
806 } | 806 } |
807 device->IsochronousTransferIn( | 807 device->IsochronousTransferIn( |
808 1, 4, 8, 0, base::Bind(&ExpectPacketsAndThen, TRANSFER_STATUS_COMPLETED, | 808 1, 4, 8, 0, base::Bind(&ExpectPacketsAndThen, TransferStatus::COMPLETED, |
809 packets, loop.QuitClosure())); | 809 packets, loop.QuitClosure())); |
810 loop.Run(); | 810 loop.Run(); |
811 } | 811 } |
812 | 812 |
813 EXPECT_CALL(mock_handle(), Close()); | 813 EXPECT_CALL(mock_handle(), Close()); |
814 } | 814 } |
815 | 815 |
816 } // namespace usb | 816 } // namespace usb |
817 } // namespace device | 817 } // namespace device |
OLD | NEW |