am a0d4d80f: DO NOT MERGE Cleaned up BT test utils
* commit 'a0d4d80fd2feaa04cb5f5242acd159cd783b25d4': DO NOT MERGE Cleaned up BT test utils
This commit is contained in:
@@ -35,49 +35,29 @@ import java.util.List;
|
|||||||
public class BluetoothTestUtils extends Assert {
|
public class BluetoothTestUtils extends Assert {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout for {@link BluetoothAdapter#disable()} in ms.
|
* Timeout for enable/disable in ms.
|
||||||
*/
|
*/
|
||||||
private static final int DISABLE_TIMEOUT = 20000;
|
private static final int ENABLE_DISABLE_TIMEOUT = 20000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout for {@link BluetoothAdapter#enable()} in ms.
|
* Timeout for discoverable/undiscoverable in ms.
|
||||||
*/
|
*/
|
||||||
private static final int ENABLE_TIMEOUT = 20000;
|
private static final int DISCOVERABLE_UNDISCOVERABLE_TIMEOUT = 5000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout for {@link BluetoothAdapter#setScanMode(int)} in ms.
|
* Timeout for starting/stopping a scan in ms.
|
||||||
*/
|
*/
|
||||||
private static final int SET_SCAN_MODE_TIMEOUT = 5000;
|
private static final int START_STOP_SCAN_TIMEOUT = 5000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout for {@link BluetoothAdapter#startDiscovery()} in ms.
|
* Timeout for pair/unpair in ms.
|
||||||
*/
|
*/
|
||||||
private static final int START_DISCOVERY_TIMEOUT = 5000;
|
private static final int PAIR_UNPAIR_TIMEOUT = 20000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout for {@link BluetoothAdapter#cancelDiscovery()} in ms.
|
* Timeout for connecting/disconnecting a profile in ms.
|
||||||
*/
|
*/
|
||||||
private static final int CANCEL_DISCOVERY_TIMEOUT = 5000;
|
private static final int CONNECT_DISCONNECT_PROFILE_TIMEOUT = 20000;
|
||||||
|
|
||||||
/**
|
|
||||||
* Timeout for {@link BluetoothDevice#createBond()} in ms.
|
|
||||||
*/
|
|
||||||
private static final int PAIR_TIMEOUT = 20000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Timeout for {@link BluetoothDevice#removeBond()} in ms.
|
|
||||||
*/
|
|
||||||
private static final int UNPAIR_TIMEOUT = 20000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Timeout for {@link BluetoothProfile#connect(BluetoothDevice)} in ms.
|
|
||||||
*/
|
|
||||||
private static final int CONNECT_PROFILE_TIMEOUT = 20000;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Timeout for {@link BluetoothProfile#disconnect(BluetoothDevice)} in ms.
|
|
||||||
*/
|
|
||||||
private static final int DISCONNECT_PROFILE_TIMEOUT = 20000;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Timeout to connect a profile proxy in ms.
|
* Timeout to connect a profile proxy in ms.
|
||||||
@@ -265,7 +245,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
|
||||||
if (mConnectionAction != null && mConnectionAction.equals(intent.getAction())) {
|
if (mConnectionAction != null && mConnectionAction.equals(intent.getAction())) {
|
||||||
if (!mDevice.equals(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE))) {
|
if (!mDevice.equals(intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE))) {
|
||||||
return;
|
return;
|
||||||
@@ -397,11 +376,11 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < ENABLE_TIMEOUT) {
|
while (System.currentTimeMillis() - s < ENABLE_DISABLE_TIMEOUT) {
|
||||||
state = adapter.getState();
|
state = adapter.getState();
|
||||||
if (state == BluetoothAdapter.STATE_ON) {
|
if (state == BluetoothAdapter.STATE_ON
|
||||||
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
assertTrue(adapter.isEnabled());
|
assertTrue(adapter.isEnabled());
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("enable() completed in %d ms", (finish - start)));
|
writeOutput(String.format("enable() completed in %d ms", (finish - start)));
|
||||||
@@ -411,9 +390,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
assertEquals(BluetoothAdapter.STATE_TURNING_ON, state);
|
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -454,24 +430,20 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < DISABLE_TIMEOUT) {
|
while (System.currentTimeMillis() - s < ENABLE_DISABLE_TIMEOUT) {
|
||||||
state = adapter.getState();
|
state = adapter.getState();
|
||||||
if (state == BluetoothAdapter.STATE_OFF) {
|
if (state == BluetoothAdapter.STATE_OFF
|
||||||
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
assertFalse(adapter.isEnabled());
|
assertFalse(adapter.isEnabled());
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("disable() completed in %d ms",
|
writeOutput(String.format("disable() completed in %d ms", (finish - start)));
|
||||||
(finish - start)));
|
|
||||||
} else {
|
} else {
|
||||||
writeOutput("disable() completed");
|
writeOutput("disable() completed");
|
||||||
}
|
}
|
||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
assertEquals(BluetoothAdapter.STATE_TURNING_OFF, state);
|
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,18 +471,15 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
assertTrue(adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE));
|
assertTrue(adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE));
|
||||||
|
|
||||||
while (System.currentTimeMillis() - start < SET_SCAN_MODE_TIMEOUT) {
|
while (System.currentTimeMillis() - start < DISCOVERABLE_UNDISCOVERABLE_TIMEOUT) {
|
||||||
scanMode = adapter.getScanMode();
|
scanMode = adapter.getScanMode();
|
||||||
if (scanMode == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
|
if (scanMode == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
writeOutput(String.format("discoverable() completed in %d ms",
|
writeOutput(String.format("discoverable() completed in %d ms",
|
||||||
(receiver.getCompletedTime() - start)));
|
(receiver.getCompletedTime() - start)));
|
||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
assertEquals(BluetoothAdapter.SCAN_MODE_CONNECTABLE, scanMode);
|
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -539,18 +508,15 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
assertTrue(adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE));
|
assertTrue(adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE));
|
||||||
|
|
||||||
while (System.currentTimeMillis() - start < SET_SCAN_MODE_TIMEOUT) {
|
while (System.currentTimeMillis() - start < DISCOVERABLE_UNDISCOVERABLE_TIMEOUT) {
|
||||||
scanMode = adapter.getScanMode();
|
scanMode = adapter.getScanMode();
|
||||||
if (scanMode == BluetoothAdapter.SCAN_MODE_CONNECTABLE) {
|
if (scanMode == BluetoothAdapter.SCAN_MODE_CONNECTABLE
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
writeOutput(String.format("undiscoverable() completed in %d ms",
|
writeOutput(String.format("undiscoverable() completed in %d ms",
|
||||||
(receiver.getCompletedTime() - start)));
|
(receiver.getCompletedTime() - start)));
|
||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
assertEquals(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, scanMode);
|
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -577,7 +543,7 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
assertTrue(adapter.startDiscovery());
|
assertTrue(adapter.startDiscovery());
|
||||||
|
|
||||||
while (System.currentTimeMillis() - start < START_DISCOVERY_TIMEOUT) {
|
while (System.currentTimeMillis() - start < START_STOP_SCAN_TIMEOUT) {
|
||||||
if (adapter.isDiscovering() && ((receiver.getFiredFlags() & mask) == mask)) {
|
if (adapter.isDiscovering() && ((receiver.getFiredFlags() & mask) == mask)) {
|
||||||
writeOutput(String.format("startScan() completed in %d ms",
|
writeOutput(String.format("startScan() completed in %d ms",
|
||||||
(receiver.getCompletedTime() - start)));
|
(receiver.getCompletedTime() - start)));
|
||||||
@@ -610,7 +576,7 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
// TODO: put assertTrue() around cancelDiscovery() once it starts returning true.
|
// TODO: put assertTrue() around cancelDiscovery() once it starts returning true.
|
||||||
adapter.cancelDiscovery();
|
adapter.cancelDiscovery();
|
||||||
|
|
||||||
while (System.currentTimeMillis() - start < CANCEL_DISCOVERY_TIMEOUT) {
|
while (System.currentTimeMillis() - start < START_STOP_SCAN_TIMEOUT) {
|
||||||
if (!adapter.isDiscovering() && ((receiver.getFiredFlags() & mask) == mask)) {
|
if (!adapter.isDiscovering() && ((receiver.getFiredFlags() & mask) == mask)) {
|
||||||
writeOutput(String.format("stopScan() completed in %d ms",
|
writeOutput(String.format("stopScan() completed in %d ms",
|
||||||
(receiver.getCompletedTime() - start)));
|
(receiver.getCompletedTime() - start)));
|
||||||
@@ -670,11 +636,10 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < PAIR_TIMEOUT) {
|
while (System.currentTimeMillis() - s < PAIR_UNPAIR_TIMEOUT) {
|
||||||
state = device.getBondState();
|
state = device.getBondState();
|
||||||
if (state == BluetoothDevice.BOND_BONDED) {
|
if (state == BluetoothDevice.BOND_BONDED && (receiver.getFiredFlags() & mask) == mask) {
|
||||||
assertTrue(adapter.getBondedDevices().contains(device));
|
assertTrue(adapter.getBondedDevices().contains(device));
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("%s completed in %d ms: device=%s", methodName,
|
writeOutput(String.format("%s completed in %d ms: device=%s", methodName,
|
||||||
@@ -685,7 +650,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -727,10 +691,10 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < UNPAIR_TIMEOUT) {
|
while (System.currentTimeMillis() - s < PAIR_UNPAIR_TIMEOUT) {
|
||||||
if (device.getBondState() == BluetoothDevice.BOND_NONE) {
|
if (device.getBondState() == BluetoothDevice.BOND_NONE
|
||||||
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
assertFalse(adapter.getBondedDevices().contains(device));
|
assertFalse(adapter.getBondedDevices().contains(device));
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("unpair() completed in %d ms: device=%s",
|
writeOutput(String.format("unpair() completed in %d ms: device=%s",
|
||||||
@@ -742,7 +706,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
int firedFlags = receiver.getFiredFlags();
|
int firedFlags = receiver.getFiredFlags();
|
||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
@@ -794,10 +757,10 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < CONNECT_PROFILE_TIMEOUT) {
|
while (System.currentTimeMillis() - s < CONNECT_DISCONNECT_PROFILE_TIMEOUT) {
|
||||||
state = proxy.getConnectionState(device);
|
state = proxy.getConnectionState(device);
|
||||||
if (state == BluetoothProfile.STATE_CONNECTED) {
|
if (state == BluetoothProfile.STATE_CONNECTED
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("connectProfile() completed in %d ms: "
|
writeOutput(String.format("connectProfile() completed in %d ms: "
|
||||||
@@ -809,7 +772,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -863,10 +825,10 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
|
|
||||||
long s = System.currentTimeMillis();
|
long s = System.currentTimeMillis();
|
||||||
while (System.currentTimeMillis() - s < DISCONNECT_PROFILE_TIMEOUT) {
|
while (System.currentTimeMillis() - s < CONNECT_DISCONNECT_PROFILE_TIMEOUT) {
|
||||||
state = proxy.getConnectionState(device);
|
state = proxy.getConnectionState(device);
|
||||||
if (state == BluetoothProfile.STATE_DISCONNECTED) {
|
if (state == BluetoothProfile.STATE_DISCONNECTED
|
||||||
if ((receiver.getFiredFlags() & mask) == mask) {
|
&& (receiver.getFiredFlags() & mask) == mask) {
|
||||||
long finish = receiver.getCompletedTime();
|
long finish = receiver.getCompletedTime();
|
||||||
if (start != -1 && finish != -1) {
|
if (start != -1 && finish != -1) {
|
||||||
writeOutput(String.format("disconnectProfile() completed in %d ms: "
|
writeOutput(String.format("disconnectProfile() completed in %d ms: "
|
||||||
@@ -878,7 +840,6 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
removeReceiver(receiver);
|
removeReceiver(receiver);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
sleep(POLL_TIME);
|
sleep(POLL_TIME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -902,38 +863,44 @@ public class BluetoothTestUtils extends Assert {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private BluetoothReceiver getBluetoothReceiver(int expectedFlags) {
|
private void addReceiver(BroadcastReceiver receiver, String[] actions) {
|
||||||
BluetoothReceiver receiver = new BluetoothReceiver(expectedFlags);
|
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
|
for (String action: actions) {
|
||||||
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
|
filter.addAction(action);
|
||||||
filter.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
|
}
|
||||||
filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
|
|
||||||
mContext.registerReceiver(receiver, filter);
|
mContext.registerReceiver(receiver, filter);
|
||||||
mReceivers.add(receiver);
|
mReceivers.add(receiver);
|
||||||
|
}
|
||||||
|
|
||||||
|
private BluetoothReceiver getBluetoothReceiver(int expectedFlags) {
|
||||||
|
String[] actions = {
|
||||||
|
BluetoothAdapter.ACTION_DISCOVERY_FINISHED,
|
||||||
|
BluetoothAdapter.ACTION_DISCOVERY_STARTED,
|
||||||
|
BluetoothAdapter.ACTION_SCAN_MODE_CHANGED,
|
||||||
|
BluetoothAdapter.ACTION_STATE_CHANGED};
|
||||||
|
BluetoothReceiver receiver = new BluetoothReceiver(expectedFlags);
|
||||||
|
addReceiver(receiver, actions);
|
||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
private PairReceiver getPairReceiver(BluetoothDevice device, int passkey, byte[] pin,
|
private PairReceiver getPairReceiver(BluetoothDevice device, int passkey, byte[] pin,
|
||||||
int expectedFlags) {
|
int expectedFlags) {
|
||||||
|
String[] actions = {
|
||||||
|
BluetoothDevice.ACTION_PAIRING_REQUEST,
|
||||||
|
BluetoothDevice.ACTION_BOND_STATE_CHANGED};
|
||||||
PairReceiver receiver = new PairReceiver(device, passkey, pin, expectedFlags);
|
PairReceiver receiver = new PairReceiver(device, passkey, pin, expectedFlags);
|
||||||
IntentFilter filter = new IntentFilter();
|
addReceiver(receiver, actions);
|
||||||
filter.addAction(BluetoothDevice.ACTION_PAIRING_REQUEST);
|
|
||||||
filter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
|
|
||||||
mContext.registerReceiver(receiver, filter);
|
|
||||||
mReceivers.add(receiver);
|
|
||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConnectProfileReceiver getConnectProfileReceiver(BluetoothDevice device, int profile,
|
private ConnectProfileReceiver getConnectProfileReceiver(BluetoothDevice device, int profile,
|
||||||
int expectedFlags) {
|
int expectedFlags) {
|
||||||
|
String[] actions = {
|
||||||
|
BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED,
|
||||||
|
BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED};
|
||||||
ConnectProfileReceiver receiver = new ConnectProfileReceiver(device, profile,
|
ConnectProfileReceiver receiver = new ConnectProfileReceiver(device, profile,
|
||||||
expectedFlags);
|
expectedFlags);
|
||||||
IntentFilter filter = new IntentFilter();
|
addReceiver(receiver, actions);
|
||||||
filter.addAction(BluetoothA2dp.ACTION_CONNECTION_STATE_CHANGED);
|
|
||||||
filter.addAction(BluetoothHeadset.ACTION_CONNECTION_STATE_CHANGED);
|
|
||||||
mContext.registerReceiver(receiver, filter);
|
|
||||||
mReceivers.add(receiver);
|
|
||||||
return receiver;
|
return receiver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user