Merge "Have CTS pass for devices without Bluetooth" into marshmallow-cts-dev
diff --git a/tests/tests/bluetooth/src/android/bluetooth/cts/ScanFilterTest.java b/tests/tests/bluetooth/src/android/bluetooth/cts/ScanFilterTest.java
index 16e1413..1d78ebb 100644
--- a/tests/tests/bluetooth/src/android/bluetooth/cts/ScanFilterTest.java
+++ b/tests/tests/bluetooth/src/android/bluetooth/cts/ScanFilterTest.java
@@ -20,6 +20,7 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.le.ScanFilter;
 import android.bluetooth.le.ScanResult;
+import android.content.pm.PackageManager;
 import android.os.Parcel;
 import android.os.ParcelUuid;
 import android.test.AndroidTestCase;
@@ -55,14 +56,24 @@
         };
 
         BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
-        BluetoothDevice device = adapter.getRemoteDevice(DEVICE_MAC);
-        mScanResult = new ScanResult(device, TestUtils.parseScanRecord(scanRecord),
-                -10, 1397545200000000L);
-        mFilterBuilder = new ScanFilter.Builder();
+        if (adapter == null) {
+            // Bluetooth is not supported
+            assertFalse(mContext.getPackageManager().
+                        hasSystemFeature(PackageManager.FEATURE_BLUETOOTH));
+        } else {
+            assertTrue(mContext.getPackageManager().
+                       hasSystemFeature(PackageManager.FEATURE_BLUETOOTH));
+            BluetoothDevice device = adapter.getRemoteDevice(DEVICE_MAC);
+            mScanResult = new ScanResult(device, TestUtils.parseScanRecord(scanRecord),
+                    -10, 1397545200000000L);
+            mFilterBuilder = new ScanFilter.Builder();
+        }
     }
 
     @SmallTest
     public void testsetNameFilter() {
+        if (mFilterBuilder == null) return;
+
         ScanFilter filter = mFilterBuilder.setDeviceName(LOCAL_NAME).build();
         assertEquals(LOCAL_NAME, filter.getDeviceName());
         assertTrue("setName filter fails", filter.matches(mScanResult));
@@ -73,6 +84,8 @@
 
     @SmallTest
     public void testDeviceAddressFilter() {
+        if (mFilterBuilder == null) return;
+
         ScanFilter filter = mFilterBuilder.setDeviceAddress(DEVICE_MAC).build();
         assertEquals(DEVICE_MAC, filter.getDeviceAddress());
         assertTrue("device filter fails", filter.matches(mScanResult));
@@ -83,6 +96,8 @@
 
     @SmallTest
     public void testsetServiceUuidFilter() {
+        if (mFilterBuilder == null) return;
+
         ScanFilter filter = mFilterBuilder.setServiceUuid(
                 ParcelUuid.fromString(UUID1)).build();
         assertEquals(UUID1, filter.getServiceUuid().toString());
@@ -104,6 +119,8 @@
 
     @SmallTest
     public void testsetServiceDataFilter() {
+        if (mFilterBuilder == null) return;
+
         byte[] setServiceData = new byte[] {
                 0x50, 0x64 };
         ParcelUuid serviceDataUuid = ParcelUuid.fromString(UUID2);
@@ -135,6 +152,8 @@
 
     @SmallTest
     public void testManufacturerSpecificData() {
+        if (mFilterBuilder == null) return;
+
         byte[] manufacturerData = new byte[] {
                 0x02, 0x15 };
         int manufacturerId = 0xE0;
@@ -170,6 +189,8 @@
 
     @SmallTest
     public void testReadWriteParcel() {
+        if (mFilterBuilder == null) return;
+
         ScanFilter filter = mFilterBuilder.build();
         testReadWriteParcelForFilter(filter);
 
diff --git a/tests/tests/bluetooth/src/android/bluetooth/cts/ScanResultTest.java b/tests/tests/bluetooth/src/android/bluetooth/cts/ScanResultTest.java
index 91da8c3..f323712 100644
--- a/tests/tests/bluetooth/src/android/bluetooth/cts/ScanResultTest.java
+++ b/tests/tests/bluetooth/src/android/bluetooth/cts/ScanResultTest.java
@@ -19,6 +19,7 @@
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.le.ScanResult;
+import android.content.pm.PackageManager;
 import android.os.Parcel;
 import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
@@ -41,6 +42,9 @@
      */
     @SmallTest
     public void testScanResultParceling() {
+        if (! mContext.getPackageManager().
+                  hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) return;
+
         BluetoothDevice device =
                 BluetoothAdapter.getDefaultAdapter().getRemoteDevice(DEVICE_ADDRESS);
         ScanResult result = new ScanResult(device, TestUtils.parseScanRecord(SCAN_RECORD), RSSI,
@@ -59,6 +63,9 @@
 
     @SmallTest
     public void testDescribeContents() {
+        if (! mContext.getPackageManager().
+                  hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) return;
+
         BluetoothDevice device =
                 BluetoothAdapter.getDefaultAdapter().getRemoteDevice(DEVICE_ADDRESS);
         ScanResult result = new ScanResult(device, TestUtils.parseScanRecord(SCAN_RECORD), RSSI,