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

Side by Side Diff: device/bluetooth/bluetooth_audio_sink_chromeos_unittest.cc

Issue 1034893002: device/bluetooth: Add read_mtu as an argument of BluetoothAudioSinkDataAvailable. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 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 <vector> 5 #include <vector>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 ++state_changed_count_; 51 ++state_changed_count_;
52 } 52 }
53 53
54 void BluetoothAudioSinkVolumeChanged(BluetoothAudioSink* audio_sink, 54 void BluetoothAudioSinkVolumeChanged(BluetoothAudioSink* audio_sink,
55 uint16_t volume) override { 55 uint16_t volume) override {
56 ++volume_changed_count_; 56 ++volume_changed_count_;
57 } 57 }
58 58
59 void BluetoothAudioSinkDataAvailable(BluetoothAudioSink* audio_sink, 59 void BluetoothAudioSinkDataAvailable(BluetoothAudioSink* audio_sink,
60 char* data, 60 char* data,
61 size_t size) override { 61 size_t size,
62 uint16_t read_mtu) override {
62 total_read_ += size; 63 total_read_ += size;
63 data_.clear(); 64 data_.clear();
64 data_.insert(data_.begin(), data, data + size); 65 data_.insert(data_.begin(), data, data + size);
66 read_mtu_ = read_mtu;
65 } 67 }
66 68
67 int state_changed_count_; 69 int state_changed_count_;
68 int volume_changed_count_; 70 int volume_changed_count_;
69 int data_available_count_; 71 int data_available_count_;
70 size_t total_read_; 72 size_t total_read_;
71 std::vector<char> data_; 73 std::vector<char> data_;
74 uint16_t read_mtu_;
72 BluetoothAudioSink::State state_; 75 BluetoothAudioSink::State state_;
73 76
74 private: 77 private:
75 scoped_refptr<BluetoothAudioSink> audio_sink_; 78 scoped_refptr<BluetoothAudioSink> audio_sink_;
76 }; 79 };
77 80
78 class BluetoothAudioSinkChromeOSTest : public testing::Test { 81 class BluetoothAudioSinkChromeOSTest : public testing::Test {
79 public: 82 public:
80 void SetUp() override { 83 void SetUp() override {
81 DBusThreadManager::Initialize(); 84 DBusThreadManager::Initialize();
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 834
832 message_loop_.RunUntilIdle(); 835 message_loop_.RunUntilIdle();
833 836
834 // Acquire is called when the state of |audio_sink_| becomes STATE_PENDING, 837 // Acquire is called when the state of |audio_sink_| becomes STATE_PENDING,
835 // and Acquire will trigger state change. Therefore, the state will be 838 // and Acquire will trigger state change. Therefore, the state will be
836 // STATE_ACTIVE right after STATE_PENDING. 839 // STATE_ACTIVE right after STATE_PENDING.
837 // State: STATE_IDLE -> STATE_PENDING -> STATE_ACTIVE 840 // State: STATE_IDLE -> STATE_PENDING -> STATE_ACTIVE
838 EXPECT_EQ(observer_->state_changed_count_, 3); 841 EXPECT_EQ(observer_->state_changed_count_, 3);
839 EXPECT_EQ(observer_->total_read_, data_one.size()); 842 EXPECT_EQ(observer_->total_read_, data_one.size());
840 EXPECT_EQ(observer_->data_, data_one); 843 EXPECT_EQ(observer_->data_, data_one);
844 EXPECT_EQ(observer_->read_mtu_, FakeBluetoothMediaTransportClient::kReadMtu);
841 } 845 }
842 846
843 // Tests the case where the remote device pauses and resume audio streaming. 847 // Tests the case where the remote device pauses and resume audio streaming.
844 TEST_F(BluetoothAudioSinkChromeOSTest, PauseAndResume) { 848 TEST_F(BluetoothAudioSinkChromeOSTest, PauseAndResume) {
845 GetAudioSink(); 849 GetAudioSink();
846 850
847 media_endpoint_->SelectConfiguration( 851 media_endpoint_->SelectConfiguration(
848 std::vector<uint8_t>({0x21, 0x15, 0x33, 0x2C}), 852 std::vector<uint8_t>({0x21, 0x15, 0x33, 0x2C}),
849 base::Bind(&BluetoothAudioSinkChromeOSTest::SelectConfigurationCallback, 853 base::Bind(&BluetoothAudioSinkChromeOSTest::SelectConfigurationCallback,
850 base::Unretained(this))); 854 base::Unretained(this)));
(...skipping 15 matching lines...) Expand all
866 EXPECT_EQ(observer_->volume_changed_count_, 1); 870 EXPECT_EQ(observer_->volume_changed_count_, 1);
867 871
868 fake_transport_->SetState(media_endpoint_->object_path(), "pending"); 872 fake_transport_->SetState(media_endpoint_->object_path(), "pending");
869 873
870 std::vector<char> data_one(16, 0x12); 874 std::vector<char> data_one(16, 0x12);
871 fake_transport_->WriteData(media_endpoint_->object_path(), data_one); 875 fake_transport_->WriteData(media_endpoint_->object_path(), data_one);
872 876
873 message_loop_.RunUntilIdle(); 877 message_loop_.RunUntilIdle();
874 878
875 EXPECT_EQ(observer_->data_, data_one); 879 EXPECT_EQ(observer_->data_, data_one);
880 EXPECT_EQ(observer_->read_mtu_, FakeBluetoothMediaTransportClient::kReadMtu);
876 EXPECT_EQ(observer_->state_changed_count_, 3); 881 EXPECT_EQ(observer_->state_changed_count_, 3);
877 EXPECT_EQ(observer_->total_read_, data_one.size()); 882 EXPECT_EQ(observer_->total_read_, data_one.size());
878 883
879 // Simulates the situation where the remote device pauses and resume audio 884 // Simulates the situation where the remote device pauses and resume audio
880 // streaming. 885 // streaming.
881 fake_transport_->SetState(media_endpoint_->object_path(), "idle"); 886 fake_transport_->SetState(media_endpoint_->object_path(), "idle");
882 887
883 EXPECT_EQ(audio_sink_->GetState(), BluetoothAudioSink::STATE_IDLE); 888 EXPECT_EQ(audio_sink_->GetState(), BluetoothAudioSink::STATE_IDLE);
884 EXPECT_EQ(observer_->state_changed_count_, 4); 889 EXPECT_EQ(observer_->state_changed_count_, 4);
885 890
886 fake_transport_->SetState(media_endpoint_->object_path(), "pending"); 891 fake_transport_->SetState(media_endpoint_->object_path(), "pending");
887 892
888 std::vector<char> data_two(8, 0x10); 893 std::vector<char> data_two(8, 0x10);
889 fake_transport_->WriteData(media_endpoint_->object_path(), data_two); 894 fake_transport_->WriteData(media_endpoint_->object_path(), data_two);
890 895
891 message_loop_.RunUntilIdle(); 896 message_loop_.RunUntilIdle();
892 897
893 EXPECT_EQ(observer_->data_, data_two); 898 EXPECT_EQ(observer_->data_, data_two);
899 EXPECT_EQ(observer_->read_mtu_, FakeBluetoothMediaTransportClient::kReadMtu);
894 EXPECT_EQ(observer_->state_changed_count_, 6); 900 EXPECT_EQ(observer_->state_changed_count_, 6);
895 EXPECT_EQ(observer_->total_read_, data_two.size()); 901 EXPECT_EQ(observer_->total_read_, data_two.size());
896 } 902 }
897 903
898 TEST_F(BluetoothAudioSinkChromeOSTest, ContinuouslyStreaming) { 904 TEST_F(BluetoothAudioSinkChromeOSTest, ContinuouslyStreaming) {
899 GetAudioSink(); 905 GetAudioSink();
900 906
901 media_endpoint_->SelectConfiguration( 907 media_endpoint_->SelectConfiguration(
902 std::vector<uint8_t>({0x21, 0x15, 0x33, 0x2C}), 908 std::vector<uint8_t>({0x21, 0x15, 0x33, 0x2C}),
903 base::Bind(&BluetoothAudioSinkChromeOSTest::SelectConfigurationCallback, 909 base::Bind(&BluetoothAudioSinkChromeOSTest::SelectConfigurationCallback,
(...skipping 16 matching lines...) Expand all
920 EXPECT_EQ(observer_->volume_changed_count_, 1); 926 EXPECT_EQ(observer_->volume_changed_count_, 1);
921 927
922 fake_transport_->SetState(media_endpoint_->object_path(), "pending"); 928 fake_transport_->SetState(media_endpoint_->object_path(), "pending");
923 929
924 std::vector<char> data_one(16, 0x12); 930 std::vector<char> data_one(16, 0x12);
925 fake_transport_->WriteData(media_endpoint_->object_path(), data_one); 931 fake_transport_->WriteData(media_endpoint_->object_path(), data_one);
926 932
927 message_loop_.RunUntilIdle(); 933 message_loop_.RunUntilIdle();
928 934
929 EXPECT_EQ(observer_->data_, data_one); 935 EXPECT_EQ(observer_->data_, data_one);
936 EXPECT_EQ(observer_->read_mtu_, FakeBluetoothMediaTransportClient::kReadMtu);
930 EXPECT_EQ(observer_->state_changed_count_, 3); 937 EXPECT_EQ(observer_->state_changed_count_, 3);
931 EXPECT_EQ(observer_->total_read_, data_one.size()); 938 EXPECT_EQ(observer_->total_read_, data_one.size());
932 939
933 std::vector<char> data_two(8, 0x10); 940 std::vector<char> data_two(8, 0x10);
934 fake_transport_->WriteData(media_endpoint_->object_path(), data_two); 941 fake_transport_->WriteData(media_endpoint_->object_path(), data_two);
935 942
936 message_loop_.RunUntilIdle(); 943 message_loop_.RunUntilIdle();
937 944
938 EXPECT_EQ(observer_->data_, data_two); 945 EXPECT_EQ(observer_->data_, data_two);
946 EXPECT_EQ(observer_->read_mtu_, FakeBluetoothMediaTransportClient::kReadMtu);
939 EXPECT_EQ(observer_->state_changed_count_, 3); 947 EXPECT_EQ(observer_->state_changed_count_, 3);
940 EXPECT_EQ(observer_->total_read_, data_one.size() + data_two.size()); 948 EXPECT_EQ(observer_->total_read_, data_one.size() + data_two.size());
941 } 949 }
942 950
943 } // namespace chromeos 951 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698