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

Side by Side Diff: device/bluetooth/bluetooth_adapter_mac_unittest.mm

Issue 13862020: Simplified BluetoothAdapterMac. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated comments Created 7 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #import <IOBluetooth/IOBluetoothUtilities.h>
6 #import <IOBluetooth/objc/IOBluetoothDevice.h>
7
8 #include "base/memory/ref_counted.h" 5 #include "base/memory/ref_counted.h"
9 #include "base/test/test_simple_task_runner.h" 6 #include "base/test/test_simple_task_runner.h"
10 #include "device/bluetooth/bluetooth_adapter.h" 7 #include "device/bluetooth/bluetooth_adapter.h"
11 #include "device/bluetooth/bluetooth_adapter_mac.h" 8 #include "device/bluetooth/bluetooth_adapter_mac.h"
12 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
13 10
14 @interface TestIOBluetoothDevice : IOBluetoothDevice {
15 @private
16 NSString* device_name_;
17 NSString* device_address_;
18 BOOL paired_;
19 }
20
21 + (TestIOBluetoothDevice*)deviceWithName:(NSString*)device_name
22 address:(NSString*)device_address
23 paired:(BOOL)paired;
24 - (id)initWithName:(NSString*)device_name
25 address:(NSString*)device_address
26 paired:(BOOL)paired;
27
28 @property (nonatomic, copy, getter=name) NSString* deviceName;
29 @property (nonatomic, copy, getter=addressString) NSString* deviceAddress;
30 @property (nonatomic, assign, getter=isPaired) BOOL paired;
31
32 @end
33
34 @implementation TestIOBluetoothDevice
35
36 @synthesize deviceName = device_name_;
37 @synthesize deviceAddress = device_address_;
38 @synthesize paired = paired_;
39
40 + (TestIOBluetoothDevice*)deviceWithName:(NSString*)device_name
41 address:(NSString*)device_address
42 paired:(BOOL)paired {
43 return [[[TestIOBluetoothDevice alloc] initWithName:device_name
44 address:device_address
45 paired:paired] autorelease];
46 }
47
48 - (id)initWithName:(NSString*)device_name
49 address:(NSString*)device_address
50 paired:(BOOL)paired {
51 if (self = [super init]) {
52 [self setDeviceName:device_name];
53 [self setDeviceAddress:device_address];
54 [self setPaired:paired];
55 }
56
57 return self;
58 }
59
60 - (void)dealloc {
61 [self setDeviceName:nil];
62 [self setDeviceAddress:nil];
63 [super dealloc];
64 }
65
66 @end
67
68 namespace {
69
70 class AdapterObserver : public device::BluetoothAdapter::Observer {
71 public:
72 AdapterObserver() {
73 Clear();
74 }
75
76 void Clear() {
77 num_device_added_ = 0;
78 num_device_changed_ = 0;
79 num_device_removed_ = 0;
80 }
81
82 virtual void DeviceAdded(
83 device::BluetoothAdapter* adapter,
84 device::BluetoothDevice* device) OVERRIDE {
85 num_device_added_++;
86 }
87
88 virtual void DeviceChanged(
89 device::BluetoothAdapter* adapter,
90 device::BluetoothDevice* device) OVERRIDE {
91 num_device_changed_++;
92 }
93
94 virtual void DeviceRemoved(
95 device::BluetoothAdapter* adapter,
96 device::BluetoothDevice* device) OVERRIDE {
97 num_device_removed_++;
98 }
99
100 int num_device_added() const {
101 return num_device_added_;
102 }
103
104 int num_device_changed() const {
105 return num_device_changed_;
106 }
107
108 int num_device_removed() const {
109 return num_device_removed_;
110 }
111
112 private:
113 int num_device_added_;
114 int num_device_changed_;
115 int num_device_removed_;
116 };
117
118 } // namespace
119
120 namespace device { 11 namespace device {
121 12
122 class BluetoothAdapterMacTest : public testing::Test { 13 class BluetoothAdapterMacTest : public testing::Test {
123 public: 14 public:
124 BluetoothAdapterMacTest() 15 BluetoothAdapterMacTest()
125 : ui_task_runner_(new base::TestSimpleTaskRunner()), 16 : ui_task_runner_(new base::TestSimpleTaskRunner()),
126 adapter_(new BluetoothAdapterMac()), 17 adapter_(new BluetoothAdapterMac()),
127 adapter_mac_(static_cast<BluetoothAdapterMac*>(adapter_.get())) { 18 adapter_mac_(static_cast<BluetoothAdapterMac*>(adapter_.get())) {
128 adapter_mac_->InitForTest(ui_task_runner_); 19 adapter_mac_->InitForTest(ui_task_runner_);
129 adapter_mac_->RemoveUnpairedDevices([NSArray array]);
130 adapter_observer_.Clear();
131 }
132
133 virtual void SetUp() OVERRIDE {
134 adapter_mac_->AddObserver(&adapter_observer_);
135 }
136
137 virtual void TearDown() OVERRIDE {
138 adapter_mac_->RemoveObserver(&adapter_observer_);
139 }
140
141 void AddDevices(NSArray* devices) {
142 adapter_mac_->AddDevices(devices);
143 }
144
145 void RemoveUnpairedDevices(NSArray* devices) {
146 adapter_mac_->RemoveUnpairedDevices(devices);
147 } 20 }
148 21
149 protected: 22 protected:
150 scoped_refptr<base::TestSimpleTaskRunner> ui_task_runner_; 23 scoped_refptr<base::TestSimpleTaskRunner> ui_task_runner_;
151 scoped_refptr<BluetoothAdapter> adapter_; 24 scoped_refptr<BluetoothAdapter> adapter_;
152 BluetoothAdapterMac* adapter_mac_; 25 BluetoothAdapterMac* adapter_mac_;
153 AdapterObserver adapter_observer_;
154 }; 26 };
155 27
156 TEST_F(BluetoothAdapterMacTest, Poll) { 28 TEST_F(BluetoothAdapterMacTest, Poll) {
157 EXPECT_FALSE(ui_task_runner_->GetPendingTasks().empty()); 29 EXPECT_FALSE(ui_task_runner_->GetPendingTasks().empty());
158 } 30 }
159 31
160 TEST_F(BluetoothAdapterMacTest, AddDevices) {
161 TestIOBluetoothDevice* android_device =
162 [TestIOBluetoothDevice deviceWithName:@"android"
163 address:@"11:22:33:44:55:66"
164 paired:false];
165 TestIOBluetoothDevice* laptop_device =
166 [TestIOBluetoothDevice deviceWithName:@"laptop"
167 address:@"77:88:99:aa:bb:cc"
168 paired:false];
169 TestIOBluetoothDevice* iphone_device =
170 [TestIOBluetoothDevice deviceWithName:@"iphone"
171 address:@"dd:ee:ff:11:22:33"
172 paired:false];
173 NSMutableArray* devices = [NSMutableArray arrayWithCapacity:3];
174 [devices addObject:android_device];
175 [devices addObject:laptop_device];
176 [devices addObject:iphone_device];
177 AddDevices(devices);
178 EXPECT_EQ(3, adapter_observer_.num_device_added());
179 adapter_observer_.Clear();
180
181 AddDevices(devices);
182 EXPECT_EQ(0, adapter_observer_.num_device_added());
183 EXPECT_EQ(0, adapter_observer_.num_device_changed());
184
185 [iphone_device setDeviceName:@"apple phone"];
186 AddDevices(devices);
187 EXPECT_EQ(0, adapter_observer_.num_device_added());
188 EXPECT_EQ(1, adapter_observer_.num_device_changed());
189 adapter_observer_.Clear();
190 }
191
192 TEST_F(BluetoothAdapterMacTest, RemoveUnpairedDevices) {
193 TestIOBluetoothDevice* android_device =
194 [TestIOBluetoothDevice deviceWithName:@"android"
195 address:@"11:22:33:44:55:66"
196 paired:true];
197 TestIOBluetoothDevice* laptop_device =
198 [TestIOBluetoothDevice deviceWithName:@"laptop"
199 address:@"77:88:99:aa:bb:cc"
200 paired:false];
201 NSMutableArray* devices = [NSMutableArray arrayWithCapacity:2];
202 [devices addObject:android_device];
203 [devices addObject:laptop_device];
204 AddDevices(devices);
205 adapter_observer_.Clear();
206
207 RemoveUnpairedDevices([NSArray arrayWithObject:android_device]);
208 EXPECT_EQ(0, adapter_observer_.num_device_removed());
209
210 RemoveUnpairedDevices([NSArray array]);
211 EXPECT_EQ(1, adapter_observer_.num_device_removed());
212
213 }
214
215 } // namespace device 32 } // namespace device
OLDNEW
« device/bluetooth/bluetooth_adapter_mac.mm ('K') | « device/bluetooth/bluetooth_adapter_mac.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698