Home | History | Annotate | Download | only in api
      1 #/usr/bin/env python3.4
      2 #
      3 # Copyright (C) 2016 The Android Open Source Project
      4 #
      5 # Licensed under the Apache License, Version 2.0 (the "License"); you may not
      6 # use this file except in compliance with the License. You may obtain a copy of
      7 # the License at
      8 #
      9 # http://www.apache.org/licenses/LICENSE-2.0
     10 #
     11 # Unless required by applicable law or agreed to in writing, software
     12 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     13 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     14 # License for the specific language governing permissions and limitations under
     15 # the License.
     16 """
     17 Test script to exercise Gatt Apis.
     18 """
     19 
     20 from acts.controllers import sl4a_client
     21 from acts.test_decorators import test_tracker_info
     22 from acts.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest
     23 from acts.test_utils.bt.bt_test_utils import setup_multiple_devices_for_bt_test
     24 
     25 
     26 class GattApiTest(BluetoothBaseTest):
     27     def __init__(self, controllers):
     28         BluetoothBaseTest.__init__(self, controllers)
     29         self.ad = self.android_devices[0]
     30 
     31     def setup_class(self):
     32         return setup_multiple_devices_for_bt_test(self.android_devices)
     33 
     34     def setup_test(self):
     35         for a in self.android_devices:
     36             a.ed.clear_all_events()
     37         return True
     38 
     39     def teardown_test(self):
     40         return True
     41 
     42     @BluetoothBaseTest.bt_test_wrap
     43     @test_tracker_info(uuid='fffe5c46-eb97-477b-ac3e-3f70700bb84e')
     44     def test_open_gatt_server(self):
     45         """Test a gatt server.
     46 
     47         Test opening a gatt server.
     48 
     49         Steps:
     50         1. Create a gatt server callback.
     51         2. Open the gatt server.
     52 
     53         Expected Result:
     54         Api to open gatt server should not fail.
     55 
     56         Returns:
     57           Pass if True
     58           Fail if False
     59 
     60         TAGS: LE, GATT
     61         Priority: 1
     62         """
     63         gatt_server_cb = self.ad.droid.gattServerCreateGattServerCallback()
     64         self.ad.droid.gattServerOpenGattServer(gatt_server_cb)
     65         return True
     66 
     67     @BluetoothBaseTest.bt_test_wrap
     68     @test_tracker_info(uuid='12828c2c-b6ae-4670-a829-9867e75fb711')
     69     def test_open_gatt_server_on_same_callback(self):
     70         """Test repetitive opening of a gatt server.
     71 
     72         Test opening a gatt server on the same callback twice in a row.
     73 
     74         Steps:
     75         1. Create a gatt server callback.
     76         2. Open the gatt server.
     77         3. Open the gatt server on the same callback as step 2.
     78 
     79         Expected Result:
     80         Api to open gatt server should not fail.
     81 
     82         Returns:
     83           Pass if True
     84           Fail if False
     85 
     86         TAGS: LE, GATT
     87         Priority: 2
     88         """
     89         gatt_server_cb = self.ad.droid.gattServerCreateGattServerCallback()
     90         self.ad.droid.gattServerOpenGattServer(gatt_server_cb)
     91         self.ad.droid.gattServerOpenGattServer(gatt_server_cb)
     92         return True
     93 
     94     @BluetoothBaseTest.bt_test_wrap
     95     @test_tracker_info(uuid='63fc684d-6c1d-455e-afdb-1887123b4d2f')
     96     def test_open_gatt_server_on_invalid_callback(self):
     97         """Test gatt server an an invalid callback.
     98 
     99         Test opening a gatt server with an invalid callback.
    100 
    101         Steps:
    102         1. Open a gatt server with the gall callback set to -1.
    103 
    104         Expected Result:
    105         Api should fail to open a gatt server.
    106 
    107         Returns:
    108           Pass if True
    109           Fail if False
    110 
    111         TAGS: LE, GATT
    112         Priority: 2
    113         """
    114         invalid_callback_index = -1
    115         try:
    116             self.ad.droid.gattServerOpenGattServer(invalid_callback_index)
    117         except sl4a_client.Sl4aApiError as e:
    118             self.log.info("Failed successfully with exception: {}.".format(e))
    119             return True
    120         return False
    121