[Bluetooth] Merge manual BLE tests into groups 42/165842/1
authorPawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>
Tue, 19 Dec 2017 08:27:09 +0000 (09:27 +0100)
committerPawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>
Thu, 4 Jan 2018 08:45:02 +0000 (09:45 +0100)
Change-Id: Ie3452d8c62e0f57a6a58a48e2c451ba85da301d2
Signed-off-by: Pawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>
Signed-off-by: Michal Bistyga <m.bistyga@samsung.com>
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCombined.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAttributes.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_connection.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addremoveConnectStateChangeListener_combined.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_combined.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_combined.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_combined.html [new file with mode: 0644]
common/tct-bluetooth-tizen-tests/tests.xml

diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCombined.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCombined.html
new file mode 100644 (file)
index 0000000..bc99c7e
--- /dev/null
@@ -0,0 +1,1114 @@
+<!DOCTYPE html>
+<!--
+
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Authors:
+        Michal Bistyga <m.bistyga@samsung.com>
+    Xiaoyan Qian <xy.qian@samsung.com>
+    Qunfang Lin <qunfang.lin@samsung.com>
+    Lei Tang <lei312.tang@samsung.com>
+-->
+<html>
+<head>
+<title>BluetoothGATTCombined</title>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothGATTCombined
+//==== LABEL Check BluetoothDevice attributes and functions
+//==== EXECUTION_TYPE manual
+//==== PRIORITY P3
+//==== ONLOAD_DELAY 180
+//==== STEP several tests executed from base test
+//==== EXPECT all subtests should be successful
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:addValueChangeListener M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:descriptors A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:BluetoothGATTCharacteristic U
+//==== TEST_CRITERIA OBX
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:hasExtendedProperties A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isBroadcast A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isIndication A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isNotify A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isReadable A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isSignedWrite A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isWritable A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:isWriteNoResponse A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MMINA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:readValue M
+//==== TEST_CRITERIA MOA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:removeValueChangeListener M
+//==== TEST_CRITERIA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:removeValueChangeListener M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MMINA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTCharacteristic:writeValue M
+//==== TEST_CRITERIA MOA MR MAST
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:BluetoothGATTDescriptor U
+//==== TEST_CRITERIA OBX
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MR MMINA
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:readValue M
+//==== TEST_CRITERIA MOA MR
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MR MMINA
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:ReadValueSuccessCallback:onread M
+//==== TEST_CRITERIA CBOA CBT
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothGATTDescriptor:writeValue M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTService:characteristics A
+//==== TEST_CRITERIA  AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTService:uuid A
+//==== TEST_CRITERIA  AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothGATTService:services A
+//==== TEST_CRITERIA  AE AT ARO
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== PRE The bluetooth of the remote/test device MUST be turned on and discoverable from other devices.
+
+setup({timeout: 180000});
+var t = async_test(document.title, {timeout: 180000}), storedDevice, onConnected, onError, proccessDevice, adapter;
+
+t.step(function () {
+    onConnected = t.step_func(function () {
+
+        function sleep(ms) {
+            var start = new Date().getTime();
+            for (var i = 0; i < 1e7; i++) {
+                if ((new Date().getTime() - start) > ms){
+                    break;
+                }
+            }
+        }
+        //BluetoothGATTCharacteristic_writeValue_with_errorCallback
+        var inner3 = async_test("BluetoothGATTCharacteristic_writeValue_with_errorCallback", {timeout: 60000});
+        inner3.step(function () {
+            var value, data = new Array(1, 2, 3, 4, 5, 6), charFlag = false, retVal, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var ReadValueSuccessCallback = inner3.step_func(function (value) {
+                assert_array_equals(value, data, "readValue returns wrong value");
+            });
+
+            var WriteValueSuccessCallback = inner3.step_func(function (value) {
+                assert_equals(retVal, undefined, "writeValue should return undefined");
+                characteristic.readValue(ReadValueSuccessCallback);
+                inner3.done();
+            });
+
+            var WriteValueErrorCallback = inner3.step_func(function (value) {
+                assert_unreached("writeValue() error callback was invoked: " + error.name + " msg: " + error.message);
+            });
+            var ReadValueSuccessCallback = inner3.step_func(function (value) {
+                assert_array_equals(value, data, "readValue returns wrong value");
+            });
+
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true && charFlag == false) {
+                        charFlag = true;
+                        characteristic = service.characteristics[i];
+                        retVal = characteristic.writeValue(data, WriteValueSuccessCallback, WriteValueErrorCallback);
+                    }
+                }
+            }
+        });
+        sleep(2000)
+
+        //BluetoothGATTCharacteristic_readValue
+        var inner = async_test("BluetoothGATTCharacteristic_readValue", {timeout: 60000});
+        inner.step(function () {
+            var retVal, errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            ReadValueSuccessCallback = inner.step_func(function (value) {
+                assert_equals(retVal, undefined, "readValue should return undefined");
+                inner.done();
+                });
+
+            var descFlag = false;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                var characteristic = service.characteristics[i];
+                if (descFlag == false && characteristic != undefined && characteristic.isReadable == true) {
+                    retVal = characteristic.readValue(ReadValueSuccessCallback);
+                    descFlag = true;
+                }
+            };
+        });
+        sleep(2000)
+
+        //BluetoothGATTCharacteristic_readValue_with_errorCallback
+        var inner2 = async_test("BluetoothGATTCharacteristic_readValue_with_errorCallback", {timeout: 60000});
+        inner2.step(function () {
+
+            var retVal, errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            errorCallback = inner2.step_func(function (error) {
+                assert_unreached("readValue() error callback was invoked: " + error.name + " msg: " + error.message);
+            });
+
+            ReadValueSuccessCallback = inner2.step_func(function (value) {
+                assert_equals(retVal, undefined, "readValue should return undefined");
+                inner2.done();
+            });
+
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                var charFlag=false;
+                for(i = 0; i < service.characteristics.length; i++) {
+                    characteristic = service.characteristics[i];
+                    if(charFlag == false && characteristic != undefined && characteristic.isReadable == true) {
+                        charFlag = true;
+                        retVal = characteristic.readValue(ReadValueSuccessCallback, errorCallback);
+                    }
+                }
+            }
+        });
+        sleep(2000)
+
+        //BluetoothGATTDescriptor_readValue
+        var inner4 = async_test("BluetoothGATTDescriptor_readValue", {timeout: 60000});
+        inner4.step(function () {
+            var retVal, errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            ReadValueSuccessCallback = inner4.step_func(function (value) {
+                assert_equals(retVal, undefined, "readValue should return undefined");
+                inner4.done();
+            });
+
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        retVal = descriptor.readValue(ReadValueSuccessCallback);
+                    }
+                }
+            }
+        });
+        sleep(2000)
+
+        //BluetoothGATTDescriptor_readValue_with_errorCallback
+        var inner5 = async_test("BluetoothGATTDescriptor_readValue_with_errorCallback", {timeout: 60000});
+        inner5.step(function () {
+            var retVal, errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            ReadValueSuccessCallback = inner5.step_func(function (value) {
+                assert_equals(retVal, undefined, "readValue should return undefined");
+                inner5.done();
+                });
+            ReadValueErrorCallback = inner5.step_func(function (error) {
+                assert_unreached("readValue() error callback was invoked: " + error.name + " msg: " + error.message);
+            });
+
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            var descFlag = false;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descFlag == false && descriptor != undefined) {
+                        descFlag = true;
+                        retVal = descriptor.readValue(ReadValueSuccessCallback, ReadValueErrorCallback);
+                    }
+                }
+            }
+        });
+        sleep(2000)
+
+        //ReadValueSuccessCallback_onread
+        var inner6 = async_test("ReadValueSuccessCallback_onread", {timeout: 60000});
+        inner6.step(function () {
+            var retVal, errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            ReadValueSuccessCallback = inner6.step_func(function (value) {
+                assert_type(value, "array", "foundDevice isn't an array");
+                inner6.done();
+            });
+            ReadValueErrorCallback = inner6.step_func(function (error) {
+                assert_unreached("readValue() error callback was invoked: " + error.name + " msg: " + error.message);
+            });
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            var descFlag =false;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (descFlag==false && characteristic != undefined) {
+                    characteristic.readValue(ReadValueSuccessCallback, ReadValueErrorCallback);
+                    descFlag = true;
+                }
+            }
+        });
+        sleep(2000)
+
+        // BluetoothGATTCharacteristic_addValueChangeListener_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_method_exists(characteristic, "addValueChangeListener");
+            };
+        }, "BluetoothGATTCharacteristic_addValueChangeListener_exist");
+
+        // BluetoothGATTCharacteristic_descriptors_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                assert_true("descriptors" in characteristic, "Name descriptors doesn't exist in provided object.");
+                assert_type(characteristic.descriptors, "array", "Type of descriptors is different.");
+                origin = characteristic.descriptors[0];
+                characteristic.descriptors[0] = "invalidValue";
+                assert_equals(characteristic.descriptors[0], origin, "descriptor is readonly, but its writable.");
+            };
+        }, "BluetoothGATTCharacteristic_descriptors_attribute");
+
+        //BluetoothGATTCharacteristic_hasExtendedProperties_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "hasExtendedProperties", characteristic.hasExtendedProperties, "boolean", !(characteristic.hasExtendedProperties));
+            };
+        }, "BluetoothGATTCharacteristic_hasExtendedProperties_attribute");
+
+        //BluetoothGATTCharacteristic_isBroadcast_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isBroadcast", characteristic.isBroadcast, "boolean", !(characteristic.isBroadcast));
+            };
+        }, "BluetoothGATTCharacteristic_isBroadcast_attribute");
+
+        //BluetoothGATTCharacteristic_isIndication_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isIndication", characteristic.isIndication, "boolean", !(characteristic.isIndication));
+            };
+        }, "BluetoothGATTCharacteristic_isIndication_attribute");
+
+        //BluetoothGATTCharacteristic_isNotify_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isNotify", characteristic.isNotify, "boolean", !(characteristic.isNotify));
+            };
+        }, "BluetoothGATTCharacteristic_isNotify_attribute");
+
+        //BluetoothGATTCharacteristic_isReadable_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isReadable", characteristic.isReadable, "boolean", !(characteristic.isReadable));
+            };
+        }, "BluetoothGATTCharacteristic_isReadable_attribute");
+
+        //BluetoothGATTCharacteristic_isSignedWrite_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isSignedWrite", characteristic.isSignedWrite, "boolean", !(characteristic.isSignedWrite));
+            };
+        }, "BluetoothGATTCharacteristic_isSignedWrite_attribute");
+
+        //BluetoothGATTCharacteristic_isWritable_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isWritable", characteristic.isWritable, "boolean", !(characteristic.isWritable));
+            };
+        }, "BluetoothGATTCharacteristic_isWritable_attribute");
+
+        //BluetoothGATTCharacteristic_isWriteNoResponse_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_readonly(characteristic, "isWriteNoResponse", characteristic.isWriteNoResponse, "boolean", !(characteristic.isWriteNoResponse));
+            };
+        }, "BluetoothGATTCharacteristic_isWriteNoResponse_attribute");
+
+        //BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch
+        test(function () {
+            var errorCallback, ReadValueSuccessCallback, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            ReadValueSuccessCallback = function (value) {
+                assert_unreached("Method readValue shouldn't end successfully. Given incorrect errorCallback.");
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(j = 0; j < service.characteristics.length; j++) {
+                    if(service.characteristics[j].isReadable == true) {
+                        characteristic = service.characteristics[j];
+                        conversionTable = getTypeConversionExceptions("functionObject", true);
+                        for (i = 0; i < conversionTable.length; i++) {
+                            errorCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                characteristic.readValue(ReadValueSuccessCallback, errorCallback);
+                                }, "Given incorrect errorCallback.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch");
+
+        //BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var ReadValueSuccessCallback = function (value) {
+                assert_unreached("Method readValue shouldn't end successfully.");
+            };
+
+            var invaliderrorCallback = {
+                onerror: function (error) {
+                    assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isReadable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.readValue(ReadValueSuccessCallback, invaliderrorCallback);
+                        }, "TypeMismatchError" + " should be thrown - given invalid error callback.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb");
+
+        //BluetoothGATTCharacteristic_readValue_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isReadable == true) {
+                        characteristic = service.characteristics[i];
+                        check_method_exists(characteristic, "readValue");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_exist");
+
+        //BluetoothGATTCharacteristic_readValue_noarg
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isReadable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.readValue();
+                        }, "TypeMismatchError" + " should be thrown - given no parameter.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_noarg");
+
+        //BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                for(j = 0; j < service.characteristics.length; j++) {
+                    if(service.characteristics[j].isReadable == true) {
+                        characteristic = service.characteristics[j];
+                        conversionTable = getTypeConversionExceptions("functionObject", false);
+                        for (i = 0; i < conversionTable.length; i++) {
+                            successCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    characteristic.readValue(successCallback);
+                                }, "Given incorrect successCallback.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch");
+
+        //BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            invalidSuccessCallback = {
+                onread: function (values) {
+                    assert_unreached("Invalid successCallback invoked.");
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isReadable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.readValue(invalidSuccessCallback);
+                        }, "TypeMismatchError" + " should be thrown - given invalid success callback.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb");
+
+        //BluetoothGATTCharacteristic_removeValueChangeListener
+        test(function () {
+            var retVal, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var ReadValueSuccessCallback = function (value) {
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for (i = 0; i < service.characteristics.length; i++) {
+                    if (service.characteristics[i].isNotify == true) {
+                        characteristic = service.characteristics[i];
+                        watchID = characteristic.addValueChangeListener(ReadValueSuccessCallback);
+                        retVal = characteristic.removeValueChangeListener(watchID);
+                        assert_equals(retVal, undefined, "removeValueChangeListener returns wrong value");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_removeValueChangeListener");
+
+        //BluetoothGATTCharacteristic_removeValueChangeListener_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_method_exists(characteristic, "removeValueChangeListener");
+            };
+        }, "BluetoothGATTCharacteristic_removeValueChangeListener_exist");
+
+        //BluetoothGATTCharacteristic_writeValue
+        test(function () {
+            var retVal, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var data = data = new Array(1, 2, 3, 4, 5, 6);
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true) {
+                        characteristic = service.characteristics[i];
+                        retVal = characteristic.writeValue(data);
+                        assert_equals(retVal, undefined, "writeValue should return undefined");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue");
+
+        //BluetoothGATTCharacteristic_writeValue_data_TypeMismatch
+        test(function () {
+            var WriteValueSuccessCallback, incorrectData, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            WriteValueSuccessCallback = function () {
+                assert_unreached("Method writeValue shouldn't end successfully. Given incorrect data.");
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(j = 0; j < service.characteristics.length; j++) {
+                    if(service.characteristics[j].isWritable == true) {
+                        characteristic = service.characteristics[j];
+                        conversionTable = getTypeConversionExceptions("array", false);
+                        for (i = 0; i < conversionTable.length; i++) {
+                            incorrectData = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    characteristic.writeValue(incorrectData, WriteValueSuccessCallback);
+                            }, "Given incorrect characteristic data.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_data_TypeMismatch");
+
+        //BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var WriteValueSuccessCallback = function () {
+                assert_unreached("Method writeValue shouldn't end successfully. Given incorrect errorCallback.");
+            };
+
+            var data = new Array(1, 2, 3, 4, 5, 6)
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(j = 0; j < service.characteristics.length; j++) {
+                    if(service.characteristics[j].isWritable == true) {
+                        characteristic = service.characteristics[j];
+                        conversionTable = getTypeConversionExceptions("functionObject", true);
+                        for (i = 0; i < conversionTable.length; i++) {
+                            var errorCallback = conversionTable[i][0];
+                            var exceptionName = conversionTable[i][1];
+
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    characteristic.writeValue(data, WriteValueSuccessCallback, errorCallback);
+                                }, "Given incorrect errorCallback.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch");
+
+        //BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb
+        test(function () {
+            var WriteValueSuccessCallback, invaliderrorCallback, data = new Array(1, 2, 3, 4, 5, 6), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            WriteValueSuccessCallback = function () {
+                assert_unreached("Method writeValue shouldn't end successfully.");
+            };
+
+            invaliderrorCallback = {
+                onerror: function (error) {
+                    assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.writeValue(data, WriteValueSuccessCallback, invaliderrorCallback);
+                        }, "TypeMismatchError" + " should be thrown - given invalid error callback.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb");
+
+        //BluetoothGATTCharacteristic_writeValue_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true) {
+                        characteristic = service.characteristics[i];
+                        check_method_exists(characteristic, "writeValue");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_exist");
+
+        //BluetoothGATTCharacteristic_writeValue_noarg
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.writeValue();
+                        }, "TypeMismatchError" + " should be thrown - given no parameter.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_noarg");
+
+        //BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch
+        test(function () {
+            var data = new Array(1, 2, 3, 4, 5, 6), successCallback, exceptionName, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(j = 0; j < service.characteristics.length; j++) {
+                    if(service.characteristics[j].isWritable == true) {
+                        characteristic = service.characteristics[j];
+                        conversionTable = getTypeConversionExceptions("functionObject", true);
+                        for (i = 0; i < conversionTable.length; i++) {
+                            successCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    characteristic.writeValue(data, successCallback);
+                                }, "Given incorrect successCallback.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch");
+
+        //BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var invalidSuccessCallback = {
+                onsuccess: function() {
+                    assert_unreached("Invalid successCallback invoked.");
+                }
+            }
+            var data = new Array(1, 2, 3, 4, 5, 6);
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            if (service.characteristics.length > 0) {
+                for(i = 0; i < service.characteristics.length; i++) {
+                    if(service.characteristics[i].isWritable == true) {
+                        characteristic = service.characteristics[i];
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            characteristic.writeValue(data, invalidSuccessCallback);
+                        }, "TypeMismatchError" + " should be thrown - given invalid success callback.");
+                    }
+                }
+            };
+        }, "BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb");
+
+
+
+        //BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch
+        test(function () {
+            var conversionTable = getTypeConversionExceptions("functionObject", true), characteristic, descriptor, i, j, conversionTable, exceptionName;
+
+            var ReadValueSuccessCallback = function (value) {
+                assert_unreached("readValue() success callback should not be invoked.");
+            };
+
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (j = 0; j < service.characteristics.length; j++) {
+                var characteristic = service.characteristics[j];
+                if (characteristic != undefined) {
+                    var descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        for (i = 0; i < conversionTable.length; i++) {
+                            ReadValueErrorCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    descriptor.readValue(ReadValueSuccessCallback, ReadValueErrorCallback);
+                                }, "Given incorrect error callback.");
+                        }
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch");
+
+        //BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var ReadValueSuccessCallback = function (value) {
+                assert_unreached("readValue() success callback should not be invoked.");
+            };
+
+            var incorrectCallback = {
+                onerror: function (error) {
+                    assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.readValue(ReadValueSuccessCallback, incorrectCallback);
+                        }, "Given incorrect errorCallback.");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb");
+
+        //BluetoothGATTDescriptor_readValue_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        check_method_exists(descriptor, "readValue");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_readValue_exist");
+
+        //BluetoothGATTDescriptor_readValue_misarg
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.readValue();
+                        }, "Invoked with missing non-optional arguments.");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_readValue_misarg");
+
+        //BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            conversionTable = getTypeConversionExceptions("functionObject", true);
+            for (j = 0; j < service.characteristics.length; j++) {
+                characteristic = service.characteristics[j];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        for (i = 0; i < conversionTable.length; i++) {
+                            var ReadValueSuccessCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    descriptor.readValue(ReadValueSuccessCallback);
+                                }, "Given incorrect success callback.");
+                        }
+                    }
+                }
+            };
+        }, "BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch");
+
+        //BluetoothGATTDescriptor_readValue_successCallback_invalid_cb
+        test(function () {
+            var characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var incorrectCallback = {
+                onread: function (value) {
+                    assert_unreached("Invalid successcallback invoked");
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.readValue(incorrectCallback);
+                        }, "Given incorrect successCallback.");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_readValue_successCallback_invalid_cb");
+
+        //BluetoothGATTDescriptor_writeValue
+        test(function () {
+            var data = new Array(1, 2, 3, 4, 5, 6), retVal, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        retVal = descriptor.writeValue(data);
+                        assert_equals(retVal, undefined, "writeValue should return undefined");
+                    }
+                }
+            };
+        }, "BluetoothGATTDescriptor_writeValue");
+
+        //BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch
+        test(function () {
+            var data = new Array(1, 2, 3, 4, 5, 6), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var conversionTable = getTypeConversionExceptions("functionObject", true);
+            var WriteValueSuccessCallback = function (value) {
+                assert_unreached("writeValue() success callback should not be invoked.");
+            };
+            var WriteValueErrorCallback;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (j = 0; j < service.characteristics.length; j++) {
+                characteristic = service.characteristics[j];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        for (i = 0; i < conversionTable.length; i++) {
+                            WriteValueErrorCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    descriptor.writeValue(data, WriteValueSuccessCallback, WriteValueErrorCallback);
+                                }, "Given incorrect error callback.");
+                        }
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch");
+
+        //BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb
+        test(function () {
+            var data = new Array(1, 2, 3, 4, 5, 6), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var WriteValueSuccessCallback = function () {
+                assert_unreached("writeValue() success callback should not be invoked.");
+            };
+
+            var incorrectCallback = {
+                onerror: function (error) {
+                    assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                }
+            };
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.writeValue(data, WriteValueSuccessCallback, incorrectCallback);
+                        }, "Given incorrect errorCallback.");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb");
+
+        //BluetoothGATTDescriptor_writeValue_exist
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        check_method_exists(descriptor, "writeValue");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_exist");
+        //BluetoothGATTDescriptor_writeValue_misarg
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.writeValue();
+                        }, "Invoked with missing non-optional arguments.");
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_misarg");
+
+        //BluetoothGATTDescriptor_writeValue_value_TypeMismatch
+        test(function () {
+            var data, characteristic, descriptor, i, j, exceptionName;
+            var conversionTable = getTypeConversionExceptions("array", true);
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+                for (j = 0; j < service.characteristics.length; j++) {
+                characteristic = service.characteristics[j];
+                    if (characteristic != undefined) {
+                        descriptor = characteristic.descriptors[0];
+                        if (descriptor != undefined) {
+                            for (i = 0; i < conversionTable.length; i++) {
+                                data = conversionTable[i][0];
+                                exceptionName = conversionTable[i][1];
+                                assert_throws({name: exceptionName},
+                                    function () {
+                                        descriptor.writeValue(data);
+                                    }, "Given incorrect value.");
+                            }
+                        }
+                    }
+                }
+        }, "BluetoothGATTDescriptor_writeValue_value_TypeMismatch");
+
+
+        //BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch
+        test(function () {
+            var data = new Array(1, 2, 3, 4, 5, 6), i, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            conversionTable = getTypeConversionExceptions("functionObject", true);
+            for (j = 0; j < service.characteristics.length; j++) {
+                var characteristic = service.characteristics[j];
+                if (characteristic != undefined) {
+                    var descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        for (i = 0; i < conversionTable.length; i++) {
+                            var WriteValueSuccessCallback = conversionTable[i][0];
+                            exceptionName = conversionTable[i][1];
+                            assert_throws({name: exceptionName},
+                                function () {
+                                    descriptor.writeValue(data, WriteValueSuccessCallback);
+                                }, "Given incorrect success callback.");
+                        }
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch");
+
+
+        //BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb
+        test(function () {
+            incorrectCallback = {
+                onsuccess: function () {
+                    assert_unreached("Invalid successcallback invoked");
+                }
+            };
+            var data = new Array(1, 2, 3, 4, 5, 6), i, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            for (i = 0; i < service.characteristics.length; i++) {
+                var characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    var descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        assert_throws(TYPE_MISMATCH_EXCEPTION, function () {
+                            descriptor.writeValue(data, incorrectCallback);
+                        }, "Given incorrect successCallback.");
+                        break;
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb");
+
+
+        //BluetoothGATTService_characteristics_attribute
+        test(function () {
+            var tmp, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            assert_own_property(service, "characteristics", "BluetoothGATTService does not own characteristics property.");
+            assert_type(service.characteristics, "array", "characteristics should be an array");
+            service.characteristics = tmp;
+            assert_not_equals(service.characteristics, tmp, "characteristics should not be modified");
+        }, "BluetoothGATTService_characteristics_attribute");
+
+        //BluetoothGATTService_uuid_attribute
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            check_readonly(service, "uuid", service.uuid, "string", service.uuid+"Tizen");
+        }, "BluetoothGATTService_uuid_attribute");
+
+        //BluetoothGATTService_services_attribute
+        test(function () {
+            var tmp, characteristic, descriptor, i, j, conversionTable, exceptionName;
+            var service = storedDevice.getService(storedDevice.uuids[0]);
+            assert_own_property(service, "services", "BluetoothGATTService does not own services property.");
+            assert_type(service.services, "array", "services should be an array");
+            service.services = tmp;
+            assert_not_equals(service.services, tmp, "services should not be modified");
+        }, "BluetoothGATTService_services_attribute");
+
+
+        // All "*extend" tests should be at the end of package. There are only
+        // tests which can affect tests (though they do not - but if new tests
+        // will be added, they should go before these)
+
+        setTimeout(function(){
+        //BluetoothGATTDescriptor_extend
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            for (i = 0; i < service.characteristics.length; i++) {
+                characteristic = service.characteristics[i];
+                if (characteristic != undefined) {
+                    descriptor = characteristic.descriptors[0];
+                    if (descriptor != undefined) {
+                        check_extensibility(descriptor);
+                    }
+                }
+            }
+        }, "BluetoothGATTDescriptor_extend");
+
+        //BluetoothGATTCharacteristic_extend
+        test(function () {
+            var service = storedDevice.getService(storedDevice.uuids[0]), characteristic, descriptor, i, j, conversionTable, exceptionName;
+            if (service.characteristics.length > 0) {
+                characteristic = service.characteristics[0];
+                check_extensibility(characteristic);
+            };
+        }, "BluetoothGATTCharacteristic_extend");
+
+                storedDevice.disconnect();
+                t.done();}
+            , 5000);
+    });
+    onError = t.step_func(function (e) {
+        var errorMessage = "Failed to connect to device: " + e.message + "; try again";
+        assert_unreached(errorMessage);
+    })
+
+    proccessDevice = t.step_func(function (device)
+    {
+        adapter.stopScan();
+        device.connect(onConnected, onError);
+    })
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    adapter.startScan(function onsuccess(device) {
+        if (device.address == REMOTE_BLE_DEVICE_ADDRESS)
+        {
+            console.log("Found device: " + device.name);
+            storedDevice=device;
+            proccessDevice(storedDevice);
+        }
+    });
+});
+
+
+
+
+
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAttributes.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAttributes.html
new file mode 100644 (file)
index 0000000..d1e52a9
--- /dev/null
@@ -0,0 +1,208 @@
+<!DOCTYPE html>
+<!--
+
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Authors:
+        Michal Bistyga <m.bistyga@samsung.com>
+    Lei Tang <lei312.tang@samsung.com>
+    Xiaoyan Qian <xy.qian@samsung.com>
+    Qunfang Lin <qunfang.lin@samsung.com>
+-->
+<html>
+<head>
+<title>BluetoothLEAttributes</title>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEAttributes
+//==== LABEL Check BluetoothDevice attributes and functions
+//==== EXECUTION_TYPE manual
+//==== PRIORITY P3
+//==== ONLOAD_DELAY 180
+//==== STEP several tests executed from base test
+//==== EXPECT all subtests should be successful
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:address A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:appearance A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:manufacturerData A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:name A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:rssi A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:serviceData A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:solicitationuuids A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:txpowerlevel A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:uuids A
+//==== TEST_CRITERIA AE AT ARO
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEManufacturerData:data A
+//==== TEST_CRITERIA AE AT ASG
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEManufacturerData:id A
+//==== TEST_CRITERIA AE AT ASG
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEServiceData:data A
+//==== TEST_CRITERIA AE AT ASG
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEServiceData:uuid A
+//==== TEST_CRITERIA AE AT ASG AN
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEManufacturerData:BluetoothLEManufacturerData U
+//==== TEST_CRITERIA OBX
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEServiceData:BluetoothLEServiceData U
+//==== TEST_CRITERIA OBX
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== PRE The bluetooth of the remote/test device MUST be turned on and discoverable from other devices. The remote device MUST register the service by pushing [Register service] button on tct-bt-helper.
+
+setup({timeout: 180000});
+var t = async_test(document.title, {timeout: 180000}), device, proccessDevice, adapter = null, tmp, tmpUuids = [123];
+
+t.step(function () {
+    proccessDevice = t.step_func(function (device)
+    {
+        //BluetoothLEDevice_address_attribute
+        test(function () {
+            check_readonly(device, "address", device.address, "string", REMOTE_BLE_DEVICE_ADDRESS + "Tizen");
+        }, "BluetoothLEDevice_address_attribute");
+
+        //BluetoothLEDevice_appearance_attribute
+        test(function () {
+            check_readonly(device, "appearance", device.appearance, "unsigned long", 1234);
+        }, "BluetoothLEDevice_appearance_attribute");
+
+        //BluetoothLEDevice_manufacturerData_attribute
+        test(function () {
+            if (device.manufacturerData != null)
+            {
+                tmp = device.manufacturerData;
+                device.manufacturerData = new tizen.BluetoothLEManufacturerData("mock_id", "mock_data");
+                assert_equals(device.manufacturerData.id, tmp.id, "ManufacturerData can be modified.");
+                assert_equals(device.manufacturerData.data, tmp.data, "ManufacturerData can be modified.");
+            }
+        }, "BluetoothLEDevice_manufacturerData_attribute");
+
+        //BluetoothLEDevice_name_attribute
+        test(function () {
+            check_readonly(device, "name", device.name, "string", REMOTE_DEVICE_NAME + "Tizen");
+        }, "BluetoothLEDevice_name_attribute");
+
+        //BluetoothLEDevice_rssi_attribute
+        test(function () {
+            check_readonly(device, "rssi", device.rssi, "long", -1024);
+        }, "BluetoothLEDevice_rssi_attribute");
+
+        //BluetoothLEDevice_serviceData_attribute
+        test(function () {
+            check_readonly(device, "serviceData", device.serviceData, "array", 123);
+        }, "BluetoothLEDevice_serviceData_attribute");
+
+        //BluetoothLEDevice_solicitationuuids_attribute
+        test(function () {
+            assert_own_property(device, "solicitationuuids", "BluetoothLEDevice does not own solicitationuuids property.");
+            if (device.solicitationuuids != null) {
+                assert_type(device.solicitationuuids, "array", "solicitationuuids should be an array");
+                device.solicitationuuids = tmpSoUuids;
+                assert_not_equals(device.solicitationuuids, tmpSoUuids, "solicitationuuids should not be modified");
+            }
+        }, "BluetoothLEDevice_solicitationuuids_attribute");
+
+        //BluetoothLEDevice_txPowerLevel_attribute
+        test(function () {
+            check_readonly(device, "txpowerlevel", device.txpowerlevel, "long", 1234);
+        }, "BluetoothLEDevice_txPowerLevel_attribute");
+
+        //BluetoothLEDevice_uuids_attribute
+        test(function () {
+            assert_own_property(device, "uuids", "BluetoothLEDevice does not own uuids property.");
+            if (device.uuids != null) {
+                assert_type(device.uuids, "array", "uuids should be an array");
+                device.uuids = tmpUuids;
+                assert_not_equals(device.uuids, tmpUuids, "uuids should not be modified");
+            }
+        }, "BluetoothLEDevice_uuids_attribute");
+
+        //BluetoothLEManufacturerData_data_attribute
+        test(function () {
+            if (device.manufacturerData != null) {
+                check_attribute(device.manufacturerData, "data", device.manufacturerData.data, "string", device.manufacturerData.data + "new");
+            }
+        }, "BluetoothLEManufacturerData_data_attribute");
+
+        //BluetoothLEManufacturerData_id_attribute
+        test(function () {
+            if (device.manufacturerData != null) {
+                check_attribute(device.manufacturerData, "id", device.manufacturerData.id, "string", device.manufacturerData.id + "new");
+            }
+        }, "BluetoothLEManufacturerData_id_attribute");
+
+        //BluetoothLEServiceData_data_attribute
+        test(function () {
+            if (device.serviceData != null) {
+                check_attribute(device.serviceData, "data", device.serviceData.data, "string", device.serviceData.data + "new");
+            }
+        }, "BluetoothLEServiceData_data_attribute");
+
+        //BluetoothLEServiceData_uuid_attribute
+        test(function () {
+            if (device.serviceData != null) {
+                check_attribute(device.serviceData, "uuid", device.serviceData.uuid, "string", device.serviceData.uuid + "new");
+                check_not_nullable(device.serviceData, "uuid");
+            }
+        }, "BluetoothLEServiceData_uuid_attribute");
+
+        //BluetoothLEManufacturerData_extend
+        test(function () {
+            if (device.manufacturerData != null) {
+                check_extensibility(device.manufacturerData);
+            };
+        }, "BluetoothLEManufacturerData_extend");
+
+        //BluetoothLEServiceData_extend
+        test(function () {
+            if (device.serviceData != null) {
+                check_extensibility(device.serviceData);
+            };
+        }, "BluetoothLEServiceData_extend");
+        t.done();
+
+    })
+    bleScanRrrorCallback = t.step_func(function (error) {
+        assert_unreached("startScan() error callback was invoked: " + error.name + " msg: " + error.message);
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    adapter.startScan(function onsuccess(bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS)
+        {
+            adapter.stopScan();
+            console.log("Found device: " + bledevice.name);
+            device=bledevice;
+            proccessDevice(device);
+        }
+    }, bleScanRrrorCallback);
+});
+
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_connection.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_connection.html
new file mode 100644 (file)
index 0000000..bac2100
--- /dev/null
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<!--
+
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Authors:
+        Michal Bistyga <m.bistyga@samsung.com>
+    Xiaoyan Qian <xy.qian@samsung.com>
+
+-->
+<html>
+<head>
+<title>BluetoothLEConnectChangeCallback_connection</title>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEConnectChangeCallback_connection
+//==== LABEL Check BluetoothDevice attributes and functions
+//==== EXECUTION_TYPE manual
+//==== PRIORITY P3
+//==== ONLOAD_DELAY 180
+//==== STEP several tests executed from base test
+//==== EXPECT all subtests should be successful
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothLEConnectChangeCallback:onconnected M
+//==== TEST_CRITERIA CBOA CBT
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothLEConnectChangeCallback:ondisconnected M
+//==== TEST_CRITERIA CBOA CBT
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== PRE The bluetooth of the remote/test device MUST be turned on and discoverable from other devices. The remote device MUST register the service by pushing [Register service] button on tct-bt-helper.
+
+setup({timeout: 180000});
+var t = async_test(document.title, {timeout: 180000}), adapter, bleScanSuccessCallback, bleScanErrorCallback,
+    onConnectionStateChange, watchID, flag = false, onconnected, onerror, device = null;
+
+t.step(function () {
+    onConnectionStateChange = {
+        onconnected: t.step_func(function (remotedevice) {
+            //BluetoothLEConnectChangeCallback_onconnected
+            test(function () {
+                assert_type(remotedevice, "object", "device isn't an object");
+                assert_type(remotedevice.address, "string", "address type check");
+                assert_not_equals(remotedevice.address, null, "address should not be null");
+            }, "BluetoothLEConnectChangeCallback_onconnected");
+
+        }),
+
+        ondisconnected: t.step_func(function (device) {
+            //BluetoothLEConnectChangeCallback_ondisconnected
+            test(function () {
+                assert_type(device, "object", "device isn't an object");
+                assert_type(device.address, "string", "address type check");
+                assert_not_equals(device.address, null, "address should not be null");
+            }, "BluetoothLEConnectChangeCallback_ondisconnected");
+            setTimeout(function(){ //We can't call disconnect until all async tasks are finished.
+                device.removeConnectStateChangeListener(watchID);
+                t.done();}
+            , 15000);
+        })
+    }
+
+    onconnected = t.step_func(function (e) {
+        device.disconnect();
+    });
+
+    onerror = t.step_func(function (e) {
+        assert_unreached("connect errorCallback exception:" + e.message);
+    });
+
+     bleScanSuccessCallback = t.step_func(function (bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS && device == null) {
+            device = bledevice;
+            adapter.stopScan();
+            watchID = device.addConnectStateChangeListener(onConnectionStateChange);
+            if (flag == false) {
+                device.connect(onconnected, onerror);
+                flag = true;
+            }
+        }
+    });
+
+    bleScanErrorCallback = t.step_func(function (error) {
+        assert_unreached("startScan() error callback was invoked: " + error.name + " msg: " + error.message);
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    adapter.startScan(bleScanSuccessCallback, bleScanErrorCallback);
+});
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addremoveConnectStateChangeListener_combined.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addremoveConnectStateChangeListener_combined.html
new file mode 100644 (file)
index 0000000..4006936
--- /dev/null
@@ -0,0 +1,158 @@
+<!DOCTYPE html>
+<!--
+
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+
+
+Authors:
+        Michal Bistyga <m.bistyga@samsung.com>
+    Lei Tang <lei312.tang@samsung.com>
+
+-->
+<html>
+<head>
+<title>BluetoothLEDevice_addremoveConnectStateChangeListener_combined</title>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEDevice_add/removeConnectStateChangeListener_combined
+//==== LABEL Check BluetoothDevice attributes and functions
+//==== EXECUTION_TYPE manual
+//==== PRIORITY P3
+//==== ONLOAD_DELAY 180
+//==== STEP several tests executed from base test
+//==== EXPECT all subtests should be successful
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:addConnectStateChangeListener M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:addConnectStateChangeListener M
+//==== TEST_CRITERIA MTL
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:addConnectStateChangeListener M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:addConnectStateChangeListener M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:addConnectStateChangeListener M
+//==== TEST_CRITERIA MAST MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:removeConnectStateChangeListener M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:removeConnectStateChangeListener M
+//==== TEST_CRITERIA MAST MR
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== PRE The bluetooth of the remote/test device MUST be turned on and discoverable from other devices. The remote device MUST register the service by pushing [Register service] button on tct-bt-helper.
+
+setup({timeout: 180000});
+var t = async_test(document.title, {timeout: 180000}), adapter = null, bleScanSuccessCallback, bleScanErrorCallback, conversionTabl, retValue,
+    onConnectionStateChange, flag = false, onconnected, onerror, device = null, listenerId, incorrectListeners, incorrectListener, exceptionName, i;
+
+t.step(function () {
+    //BluetoothLEDevice_addConnectStateChangeListener
+    onConnectionStateChange = {
+        onconnected: t.step_func(function (remotedevice) {
+            //BluetoothLEDevice_addConnectStateChangeListener
+            test(function () {
+                assert_type(listenerID, "long", "addConnectStateChangeListener return type has wrong.");
+            }, "BluetoothLEDevice_addConnectStateChangeListener");
+        }),
+
+        ondisconnected: t.step_func(function (device) {
+            //BluetoothLEDevice_removeConnectStateChangeListener_exist
+            test(function () {
+                check_method_exists(device, "removeConnectStateChangeListener");
+            }, "BluetoothLEDevice_removeConnectStateChangeListener_exist");
+            //BluetoothLEDevice_removeConnectStateChangeListener
+            test(function () {
+            retValue = device.removeConnectStateChangeListener(listenerID);
+            assert_equals(retValue, undefined, "removeConnectStateChangeListener returns wrong value");
+            }, "BluetoothLEDevice_removeConnectStateChangeListener");
+            t.done();
+        })
+    }
+
+    onconnected = t.step_func(function (e) {
+        device.disconnect();
+    });
+
+    onerror = t.step_func(function (e) {
+        assert_unreached("connect errorCallback exception:" + e.message);
+    });
+
+     bleScanSuccessCallback = t.step_func(function (bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS && device == null) {
+            device = bledevice;
+            adapter.stopScan();
+            //BluetoothLEDevice_addConnectStateChangeListener_exist
+            test(function () {
+                check_method_exists(device, "addConnectStateChangeListener");
+            }, "BluetoothLEDevice_addConnectStateChangeListener_exist");
+
+            //BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb
+            test(function () {
+                incorrectListeners = getListenerConversionExceptions(["onconnected", "ondisconnected"]);
+                for(i = 0; i < incorrectListeners.length; i++) {
+                    incorrectListener  = incorrectListeners[i][0];
+                    exceptionName = incorrectListeners[i][1];
+                    assert_throws({name: exceptionName},
+                        function () {
+                            device.addConnectStateChangeListener(incorrectListener);
+                        }, "Given incorrect listener.");
+                }
+            }, "BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb");
+
+            //BluetoothLEDevice_addConnectStateChangeListener_missarg
+            test(function () {
+                assert_throws (TYPE_MISMATCH_EXCEPTION,
+                    function () {
+                        device.addConnectStateChangeListener();
+                    }, "Method with non optional argument.");
+            }, "BluetoothLEDevice_addConnectStateChangeListener_missarg");
+
+            //BluetoothLEDevice_addConnectStateChangeListener_TypeMismatch
+            test(function () {
+                conversionTable = getTypeConversionExceptions("object", false);
+                for(i = 0; i < conversionTable.length; i++) {
+                    listener = conversionTable[i][0];
+                    exceptionName = conversionTable[i][1];
+                    assert_throws({name: exceptionName},
+                        function () {
+                            device.addConnectStateChangeListener(listener);
+                        }, "Given incorrect listener.");
+                };
+            }, "BluetoothLEDevice_addConnectStateChangeListener_TypeMismatch");
+
+            listenerID = device.addConnectStateChangeListener(onConnectionStateChange);
+            if (flag == false) {
+                device.connect(onconnected, onerror);
+                flag = true;
+            }
+        }
+    });
+
+    bleScanErrorCallback = t.step_func(function (error) {
+        assert_unreached("startScan() error callback was invoked: " + error.name + " msg: " + error.message);
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    adapter.startScan(bleScanSuccessCallback, bleScanErrorCallback);
+});
+
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_combined.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_combined.html
new file mode 100644 (file)
index 0000000..9a4d3f6
--- /dev/null
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Authors:
+        Lei Tang <lei312.tang@samsung.com>
+        Pawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>
+
+-->
+<html>
+<head>
+<title>BluetoothLEDevice_connect_combined</title>
+<meta charset="utf-8"/>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEDevice_connect_and_disconnect
+//==== LABEL Check if connect method work properly with BluetoothLEDevice
+//==== EXECUTION_TYPE manual
+//==== PRE The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
+//==== PRIORITY P3
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothAdapter:startScan M
+//==== TEST_CRITERIA MMINA MAST MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEAdapter:startScan M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:TBD:Bluetooth:BluetoothLEScanCallback:onsuccess M
+//==== TEST_CRITERIA CBOA CBT
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEAdapter:stopScan M
+//==== TEST_CRITERIA MNA MNAST MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MMINA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:BluetoothLEDevice U
+//==== TEST_CRITERIA OBX
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== TEST_CRITERIA MMINA MR
+
+setup({timeout: 180000});
+
+var adapter = null, t = async_test(document.title, {timeout: 180000}), SuccessCB, device = null, flag = false,
+    onconnected, onerror, retValue;
+
+t.step(function () {
+    onConnected = t.step_func(function () {
+        device.disconnect();
+    });
+
+    onError = t.step_func(function (e) {
+        assert_unreached("connect errorCallback exception:" + e.message);
+    });
+
+    SuccessCB = t.step_func(function (bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS && device == null) {
+
+            //BluetoothLEAdapter_startScan MMINA MAST MR
+            device = bledevice;
+            test(function() {
+                assert_equals(retValue, undefined, "startScan returns wrong value");
+            }, "startScan");
+
+            //BluetoothLEAdapter_startScan_InvalidStateError MC
+            test(function() {
+                var successCB1 = function () {
+                    assert_unreached("Invalid Success callback invoked");
+                };
+
+                var errorCB1 = function (e) {
+                    assert_unreached("Invalid Error callback invoked");
+                };
+
+                assert_throws({name: 'InvalidStateError'}, function () {
+                    adapter.startScan(successCB1, errorCB1);
+                }, "InvalidStateError should be thrown when bluetooth is turned off");
+            }, "startScan_InvalidStateError");
+
+            // BluetoothLEScanCallback_onsuccess CBOA CBT
+            test(function() {
+                    assert_type(bledevice, "object", "foundDevice isn't an object");
+                    assert_type(bledevice.address, "string", "address type check");
+                    assert_type(bledevice.name, "string", "name type check");
+                    assert_not_equals(bledevice.address, null, "address should not be null");
+            }, "BluetoothLEScanCallback_onsuccess");
+
+            //BluetoothLEAdapter_stopScan MNA MNAST MR
+            test(function() {
+                retValue = adapter.stopScan();
+                assert_equals(retValue, undefined, "stopScan returns wrong value");
+            }, "BluetoothLEAdapter_stopScan");
+
+            //BluetoothLEDevice_connect ME
+            test(function() {
+                check_method_exists(device, "connect");
+            }, "connect_exist");
+
+            //connect_errorCallback_invalid_cb MTCB
+            test(function() {
+                var onconnected = function (e) {
+                    assert_unreached("Method connect shouldn't end successfully. (This could affect other TCTs");
+                };
+                var onerror = {
+                    onerror: function (error) {
+                        assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                    }
+                };
+
+                assert_throws(TYPE_MISMATCH_EXCEPTION,
+                    function () {
+                        device.connect(onconnected, onerror);
+                    }, "Given incorrect errorCallback.");
+            }, "connect_errorCallback_invalid_cb");
+
+            //connect_errorCallback_TypeMismatch MC
+            test(function() {
+                var onconnected = function (e) {
+                    assert_unreached("Method connect shouldn't end successfully. (This could affect other TCTs");
+                };
+                var conversionTable = getTypeConversionExceptions("functionObject", true);
+
+                for(i = 0; i < conversionTable.length; i++) {
+                    var errorCallback = conversionTable[i][0];
+                    var exceptionName = conversionTable[i][1];
+
+                    assert_throws(TYPE_MISMATCH_EXCEPTION,
+                        function () {
+                            device.connect(onconnected, errorCallback);
+                        }, "Given incorrect errorCallback.");
+                }
+            }, "connect_errorCallback_TypeMismatch");
+
+            //connect_successCallback_invalid_cb MTCB
+            test(function() {
+                var onconnected = {
+                    onsuccess: function () {
+                        assert_unreached("Method connect shouldn't end successfully. This could affect other TCTs");
+                    }
+                };
+                var onerror = function (error) {
+                    assert_unreached("Invalid errorCallback invoked:" + error.name + ": " + error.message);
+                };
+
+                assert_throws(TYPE_MISMATCH_EXCEPTION,
+                    function () {
+                        device.connect(onconnected, onerror);
+                }, "Given incorrect successCallback.");
+            }, "connect_successCallback_invalid_cb");
+
+            //connect_successCallback_TypeMismatch MC
+            test(function() {
+                var onerror = t.step_func(function (e) {
+                    assert_unreached("errorCallback exception:" + e.message);
+                });
+                var conversionTable = getTypeConversionExceptions("functionObject", true);
+
+                for(i = 0; i < conversionTable.length; i++) {
+                    var onconnected = conversionTable[i][0];
+                    var exceptionName = conversionTable[i][1];
+                    assert_throws(TYPE_MISMATCH_EXCEPTION,
+                        function () {
+                            device.connect(onconnected, onerror);
+                        }, "Given incorrect successCallback.");
+                }
+            }, "connect_successCallback_TypeMismatch");
+
+            //BluetoothLEDevice_extend OBX
+            test(function() {
+                check_extensibility(device);
+            }, "BluetoothLEDevice_extend");
+
+            //connect MMINA MR
+            test(function() {
+                if (flag == false) {
+                    retValue = device.connect(onConnected, onError);
+                    assert_equals(retValue, undefined, "connect returns wrong value");
+                    flag = true;
+                    t.done();
+                }
+            }, "connect");
+        }
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    retValue = adapter.startScan(SuccessCB);
+});
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_combined.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_combined.html
new file mode 100644 (file)
index 0000000..847581c
--- /dev/null
@@ -0,0 +1,182 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Authors:
+        Lei Tang <lei312.tang@samsung.com>
+        Pawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>
+
+-->
+<html>
+<head>
+<title>BluetoothLEDevice_disconnect_combined</title>
+<meta charset="utf-8"/>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEDevice_connect_and_disconnect
+//==== LABEL Check if connect method work properly with BluetoothLEDevice
+//==== EXECUTION_TYPE manual
+//==== PRE The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
+//==== PRIORITY P3
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:connect M
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MTCB
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:disconnect M
+//==== TEST_CRITERIA MMINA MAST MR
+setup({timeout: 180000});
+
+var adapter = null, t = async_test(document.title, {timeout: 180000}), SuccessCB, device = null, flag = false,
+    onConnected, onError;
+
+t.step(function () {
+    onConnected = t.step_func(function () {
+        // BluetoothLEDevice_disconnect_exist ME
+        test(function() {
+            check_method_exists(device, "disconnect");
+        }, "disconnect_exist");
+
+        //BluetoothLEDevice_disconnect_successCallback_invalid_cb MTCB
+        test(function() {
+            var ondisconnectsuccess = {
+                    onsuccess: function () {
+                        assert_unreached("Method disconnect shouldn't end successfully.");
+                    }
+            };
+
+           ondisconnecterror = function (e) {
+               assert_unreached("errorCB exception:" + e.message);
+           };
+
+            assert_throws(TYPE_MISMATCH_EXCEPTION,
+                function () {
+                    device.disconnect(ondisconnectsuccess, ondisconnecterror);
+                }, "Given incorrect successCallback.");
+        }, "disconnectsuccessCallback_invalid_cb");
+
+        // BluetoothLEDevice_disconnect_errorCallback_invalid_cb MTCB
+        test(function() {
+            var ondisconnecterror = {
+                onerror: function (error) {
+                    assert_unreached("Invalid errorCallback invoked: " + error.name + ": " + error.message);
+                }
+            };
+            var ondisconnectsuccess = function (e) {
+                assert_unreached("Method disconnect shouldn't end successfully. This could affect other TCTs");
+            };
+
+            assert_throws(TYPE_MISMATCH_EXCEPTION,
+                function () {
+                    device.disconnect(ondisconnectsuccess, ondisconnecterror);
+                }, "Given incorrect errorCallback.");
+        }, "disconnect_errorCallback_invalid_cb");
+
+        // BluetoothLEDevice_disconnect_errorCallback_TypeMismatch MC
+        test(function() {
+            var ondisconnectsuccess = function() {
+                assert_unreached("Method disconnect shouldn't end successfully. This could affect other TCTs");
+            }
+            var conversionTable = getTypeConversionExceptions("functionObject", true);
+
+            for (i = 0; i < conversionTable.length; i++) {
+                var ondisconnecterror = conversionTable[i][0];
+                var exceptionName = conversionTable[i][1];
+                    assert_throws(TYPE_MISMATCH_EXCEPTION,
+                        function () {
+                            device.disconnect(ondisconnectsuccess, ondisconnecterror);
+                        }, "Given incorrect errorCallback.");
+                }
+        }, "disconnect_errorCallback_TypeMismatch" );
+
+        //BluetoothLEDevice_disconnect_successCallback_TypeMismatch MC
+        test(function() {
+            var ondisconnecterror = function (e) {
+                assert_unreached("errorCallback exception:" + e.message);
+            }
+            var conversionTable = getTypeConversionExceptions("functionObject", true);
+
+            for(i = 0; i < conversionTable.length; i++) {
+                var ondisconnectsuccess = conversionTable[i][0];
+                var exceptionName = conversionTable[i][1];
+                assert_throws(TYPE_MISMATCH_EXCEPTION,
+                    function () {
+                        device.disconnect(ondisconnectsuccess, ondisconnecterror);
+                    }, "Given incorrect successCallback.");
+            }
+        }, "disconnect_successCallback_TypeMismatch");
+
+        //BluetoothLEDevice_disconnect MMINA MAST MR
+        test(function() {
+            retValue = device.disconnect();
+            assert_equals(retValue, undefined, "connect returns wrong value");
+        }, "disconnect");
+
+        t.done();
+    });
+
+    onError = t.step_func(function (e) {
+        assert_unreached("connect errorCallback exception:" + e.message);
+    });
+
+    SuccessCB = t.step_func(function (bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS && device == null) {
+            device = bledevice;
+            adapter.stopScan();
+
+            //BluetoothLEDevice_disconnect_InvalidStateError MC
+            test(function() {
+                var ondisconnectsuccess = function () {
+                    assert_unreached("Invalid Success callback invoked. This could affect other TCTs");
+                };
+                var ondisconnecterror = function (e) {
+                    assert_unreached("Invalid Error callback invoked");
+                };
+
+                assert_throws({name: 'InvalidStateError'}, function () {
+                    device.disconnect(ondisconnectsuccess, ondisconnecterror);
+                }, "InvalidStateError should be thrown with device is not connected");
+            }, "disconnect_InvalidStateError");
+
+            if (flag == false) {
+                device.connect(onConnected, onError);
+                flag = true;
+            }
+        }
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    retValue = adapter.startScan(SuccessCB);
+});
+
+</script>
+</body>
+</html>
diff --git a/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_combined.html b/common/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_combined.html
new file mode 100644 (file)
index 0000000..297db52
--- /dev/null
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<!--
+Copyright (c) 2017 Samsung Electronics Co., Ltd.
+
+Licensed under the Apache License, Version 2.0 (the License);
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Authors:
+        Lei Tang <lei312.tang@samsung.com>
+        Pawel Kaczmarczyk <p.kaczmarczy@partner.samsung.com>>
+
+-->
+<html>
+<head>
+<title>BluetoothLEDevice_getService_combined</title>
+<meta charset="utf-8"/>
+<script src="support/unitcommon.js"></script>
+<script src="support/bluetooth_common.js"></script>
+</head>
+<body>
+<div id="log"></div>
+<script>
+//==== TEST: BluetoothLEDevice_getService_combined
+//==== LABEL Check if getService method work properly with BluetoothLEDevice
+//==== EXECUTION_TYPE manual
+//==== PRE The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
+//==== PRIORITY P3
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getService M
+//==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/bluetooth.html
+//==== TEST_CRITERIA MAST MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getService M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getService M
+//==== TEST_CRITERIA MMA
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getServiceAllUuids M
+//==== TEST_CRITERIA MNA MR
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getServiceAllUuids M
+//==== TEST_CRITERIA ME
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getService M
+//==== TEST_CRITERIA MC
+//==== SPEC Tizen Web API:Communication:Bluetooth:BluetoothLEDevice:getServiceAllUuids M
+//==== TEST_CRITERIA MNAEX
+
+setup({timeout: 180000});
+
+var adapter = null, t = async_test(document.title, {timeout: 180000}), SuccessCB, onconnected, service,
+    device = null, flag = false;
+
+t.step(function () {
+     onconnected = t.step_func(function () {
+          //BluetoothLEDevice_getService MAST MR
+          test(function() {
+               service = device.getService(device.uuids[0]);
+               assert_type(service, "object", "method returned object type");
+          }, "getService");
+
+          //getService_exist ME
+          test(function() {
+               check_method_exists(device, "getService");
+          }, "getService_exists");
+
+          //getService_misarg MMA
+          test(function () {
+               assert_throws({name: 'NotFoundError'}, function () {
+                    device.getService();
+               }, "Not given any argument.");
+          }, "getService_misarg");
+
+          //getServiceAllUuids MNA MR
+          test(function() {
+               service = device.getServiceAllUuids();
+               assert_type(service, "array", "method returned array type");
+          }, "getServiceAllUuids");
+
+          //getServiceAllUuids_exist ME
+          test(function() {
+               check_method_exists(device, "getServiceAllUuids");
+          }, "getServiceAllUuids_exist");
+
+          //getService_NotFoundError MC
+          test(function() {
+               id = device.uuids[0];
+               ids = id + "Tizen";
+               assert_throws(NOT_FOUND_EXCEPTION, function () {
+                    device.getService(ids);
+               }, "Not given any argument.");
+          }, "getService_NotFoundError");
+
+          //getServiceAllUuids_extra_argument MNAEX
+          test(function() {
+               checkExtraArgument(device, "getServiceAllUuids");
+          }, "getServiceAllUuids_extra_argument");
+
+          t.done();
+     });
+
+     onerror = t.step_func(function (e) {
+          assert_unreached("connect errorCallback exception:" + e.message);
+     });
+
+     SuccessCB = t.step_func(function (bledevice) {
+        if (bledevice.address == REMOTE_BLE_DEVICE_ADDRESS && device == null) {
+            adapter.stopScan();
+            device = bledevice;
+            if (flag == false) {
+                device.connect(onconnected, onerror);
+                flag = true;
+            }
+        }
+    });
+
+    adapter = tizen.bluetooth.getLEAdapter();
+    adapter.stopScan();
+    adapter.startScan(SuccessCB);
+});
+
+</script>
+</body>
+</html>
index 00133192144c6fa3559786ee004f1bcc8c3c31d4..fdd2e12014ba6a73fe43801eff4d788125554068 100755 (executable)
         <capability name="http://tizen.org/feature/profile"><value>MOBILE_FULL</value></capability>
         <capability name="http://tizen.org/feature/network.bluetooth"/>
       </capabilities>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::addValueChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_addValueChangeListener_exist">
+      <testcase purpose="Check if BluetoothGATT works" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCombined" priority = "P3" onload_delay="180">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_addValueChangeListener_exist.html</test_script_entry>
+            <steps>
+                         <step order="1">
+                <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCombined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::descriptors attribute exists, has type array and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_descriptors_attribute">
+      <testcase purpose="Check if BluetoothLEConnectChangeCallbacks are called and if their arguments have proper types" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_connection">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_descriptors_attribute.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>both subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_connection.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_extend">
+      <testcase purpose="Check if BluetoothLEDevice_add/removeConnectStateChangeListener function is called and if its arguments have proper types" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_add/removeConnectStateChangeListener_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_extend.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addremoveConnectStateChangeListener_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::hasExtendedProperties attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_hasExtendedProperties_attribute">
+      <testcase purpose="Check if BluetoothLEDevice/Manufacturer/ServiceData attribues exist and have proper traits" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAttributes">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_hasExtendedProperties_attribute.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAttributes.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isBroadcast attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isBroadcast_attribute">
+      <testcase purpose="Check if connect method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isBroadcast_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isIndication attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isIndication_attribute">
+      <testcase purpose="Check if connect method work properly of BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_with_errorcallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isIndication_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_with_errorcallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isNotify attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isNotify_attribute">
+      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(without optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isNotify_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isReadable attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isReadable_attribute">
+      <testcase purpose="Check with optional arguments startScan(valid_successCallback, errorCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_with_errorCallback">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isReadable_attribute.html</test_script_entry>
+          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
+The bluetooth of the remote/test device MUST be turned on and discoverable from other devices.</pre_condition>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isSignedWrite attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isSignedWrite_attribute">
+      <testcase purpose="Check if BluetoothLEAdvertiseCallback onstate is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdvertiseCallback_onstate">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isSignedWrite_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_onstate.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isWritable attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isWritable_attribute">
+      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_with_errorCallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isWritable_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isWriteNoResponse attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isWriteNoResponse_attribute">
+      <testcase purpose="Check if getService method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isWriteNoResponse_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_combined.html</test_script_entry>
         </description>
       </testcase>
       <testcase purpose="Check if is possible to call BluetoothGATTCharacteristic in new expresion" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothGATTCharacteristic_notexist">
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method works properly without optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue.html</test_script_entry>
-        </description>
-      </testcase>      
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method throws exception when invalid error callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called without argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_noarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_noarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method throws exception when invalid success callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method works properly with optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::removeValueChangeListener method works properly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_removeValueChangeListener">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_removeValueChangeListener.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::removeValueChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_removeValueChangeListener_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_removeValueChangeListener_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method works properly without optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue.html</test_script_entry>
-        </description>
-      </testcase>      
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid data argument throws an exception " component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_data_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_data_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid errorCallback argument throws an exception " component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method throws exception when invalid error callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called without argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_noarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_noarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method throws exception when invalid success callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method works properly with optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor can have new properties added" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_extend.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if interface BluetoothGATTDescriptor exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothGATTDescriptor_notexist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor readValue method without optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when errorCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when errorCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue exists" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue method called with missing non-optional argument throws an exception" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when successCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when successrCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor readValue method with all optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="heck if BluetoothGATTDescriptor readValue method without optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when errorCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when errorCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue exists" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue method called with missing non-optional argument throws an exception" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when successCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when successrCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when value is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_value_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_value_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
       <!--<testcase purpose="Check if BluetoothGATTDescriptor writeValue method with all optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_with_errorCallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>-->
-      <testcase purpose="Check characteristics attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_characteristics_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_characteristics_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check services attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_services_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_services_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check uuid attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_uuid_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_uuid_attribute.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Test whether the object can have new properties added for BluetoothLEAdapter" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_extend">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_extend.html</test_script_entry>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startAdvertise_with_connectable.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check with non-optional arguments startScan(valid_successCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check startScan() method could throw InvaludStateError exception" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_InvalidStateError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_InvalidStateError.html</test_script_entry>
-        </description>
-      </testcase>      
       <testcase purpose="Check whether startScan() method called with invalid errorCallback argument throws an exception" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_startScan_errorCallback_TypeMismatch">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_errorCallback_TypeMismatch.html</test_script_entry>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_successCallback_invalid_cb.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check with optional arguments startScan(valid_successCallback, errorCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
-The bluetooth of the remote/test device MUST be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check with stopAdvertise method of BluetoothLEAdapter work properly" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_stopAdvertise">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopAdvertise.html</test_script_entry>
@@ -2272,12 +2044,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopAdvertise_extra_argument.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="check stopScan method is working well in BluetoothLEAdapter" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_stopScan">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopScan.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if stopScan method exist" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_stopScan_exist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopScan_exist.html</test_script_entry>
@@ -2293,12 +2059,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEAdvertiseCallback onstate is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdvertiseCallback_onstate">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_onstate.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if BluetoothLEAdvertiseData have appearance attribute with proper type and is writeable" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdvertiseData_appearance_attribute">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseData_appearance_attribute.html</test_script_entry>
@@ -2356,368 +2116,74 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEConnectChangeCallback onconnected is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_onconnected">
+      <testcase purpose="Check if is possible to call BluetoothLEDevice in new expresion" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEDevice_notexist">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_onconnected.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEConnectChangeCallback ondisconnected is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_ondisconnected">
+      <testcase purpose="Check if interface BluetoothLEScanCallback exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEScanCallback_notexist">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_ondisconnected.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEScanCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if addConnectStateChangeListener method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener">
+      <testcase purpose="Proper invocation of getLEAdapter method  without arguments" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if addConnectStateChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_exist">
+      <testcase purpose="Check if getLEAdapter method exists" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter_exist">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_exist.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter_exist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check addConnectStateChangeListener() with invalid callback" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb">
+      <testcase purpose="Check if method getLEAdapter of BluetoothManager accepts extra argument" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter_extra_argument">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter_extra_argument.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check addConnectStateChangeListener with missing non-optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_missarg">
+      <testcase purpose="Check if interface ReadValueSuccessCallback exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="ReadValueSuccessCallback_notexist">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_missarg.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/ReadValueSuccessCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check whether addConnectStateChangeListener() method called with invalid listener argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_TypeMismatch">
+    </set>
+    <set name="Bluetooth01_wearable" type="js">
+      <capabilities>
+        <capability name="http://tizen.org/feature/profile"><value>WEARABLE</value></capability>
+        <capability name="http://tizen.org/feature/network.bluetooth"/>
+      </capabilities>
+      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="auto" id="BluetoothAdapterChangeCallback_notexist" priority="P3" purpose="Check if is possible to call BluetoothAdapterChangeCallback in new expresion">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_TypeMismatch.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check address attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_address_attribute">
+      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="auto" id="BluetoothAdapterChangeCallback_onnamechanged" onload_delay="180" priority="P1" purpose="Check onnamechanged listener is invoked after setName()">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_address_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onnamechanged.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check appearance attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_appearance_attribute">
+      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothAdapterChangeCallback_onstatechanged" onload_delay="180" priority="P1" purpose="Check onstatechanged listener is invoked after turn bluetooth off">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_appearance_attribute.html</test_script_entry>
+          <pre_condition>The bluetooth/visible of the test device MUST be turned on.</pre_condition>
+          <steps>
+            <step order="1">
+              <step_desc>Turn off Bluetooth after run.</step_desc>
+              <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onstatechanged.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if connect method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect">
+      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothAdapterChangeCallback_onvisibilitychanged" onload_delay="180" priority="P1" purpose="Check onvisibilitychanged listener is invoked after change bluetooth visible state">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether connect() method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check connect() argument errorCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of connect exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether connect() method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check connect() argument successCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if connect method work properly of BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_with_errorcallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_with_errorcallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(without optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method could throw InvalidStateError exception when device is not connected" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_InvalidStateError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_InvalidStateError.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether disconnect() method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check disconnect() argument errorCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of disconnect exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether disconnect() method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check disconnect() argument successCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Test whether the object can have new properties added for BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if getService method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check getService method of BluetoothLEDevice interface could be throw NotFoundError" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_NotFoundError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_NotFoundError.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if getServiceAllUuids method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of getServiceAllUuids exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if method getServiceAllUuids of BluetoothLEDevice accepts extra argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids_extra_argument">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids_extra_argument.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of getService exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check getService method of BluetoothLEDevice interface with missing all argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check manufacturerData attribute in BluetoothLEDevice is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_manufacturerData_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_manufacturerData_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check name attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_name_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_name_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if is possible to call BluetoothLEDevice in new expresion" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEDevice_notexist">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_notexist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if removeConnectStateChangeListener method work properly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_removeConnectStateChangeListener">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_removeConnectStateChangeListener.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if removeConnectStateChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_removeConnectStateChangeListener_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_removeConnectStateChangeListener_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check serviceData attribute in BluetoothLEDevice is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_serviceData_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_serviceData_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check solicitationuuids attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_solicitationuuids_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_solicitationuuids_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check txPowerLevel attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_txPowerLevel_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_txPowerLevel_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check uuids attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_uuids_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_uuids_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_rssi_attribute" priority="P1" purpose="Check rssi attribute in BluetoothLEDevice">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_rssi_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData::data attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_data_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_data_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData::id attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_id_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_id_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if interface BluetoothLEScanCallback exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEScanCallback_notexist">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEScanCallback_notexist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEScanCallback onsuccess is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEScanCallback_onsuccess">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEScanCallback_onsuccess.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData::data attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_data_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_data_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData::uuid attribute exists, has type string, can be modified and is nullable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_uuid_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_uuid_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Proper invocation of getLEAdapter method  without arguments" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if getLEAdapter method exists" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter_exist">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if method getLEAdapter of BluetoothManager accepts extra argument" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter_extra_argument">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter_extra_argument.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if interface ReadValueSuccessCallback exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="ReadValueSuccessCallback_notexist">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/ReadValueSuccessCallback_notexist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if ReadValueSuccessCallback onread is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="ReadValueSuccessCallback_onread">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/ReadValueSuccessCallback_onread.html</test_script_entry>
-        </description>
-      </testcase>
-    </set>
-    <set name="Bluetooth01_wearable" type="js">
-      <capabilities>
-        <capability name="http://tizen.org/feature/profile"><value>WEARABLE</value></capability>
-        <capability name="http://tizen.org/feature/network.bluetooth"/>
-      </capabilities>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="auto" id="BluetoothAdapterChangeCallback_notexist" priority="P3" purpose="Check if is possible to call BluetoothAdapterChangeCallback in new expresion">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_notexist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="auto" id="BluetoothAdapterChangeCallback_onnamechanged" onload_delay="180" priority="P1" purpose="Check onnamechanged listener is invoked after setName()">
-        <description>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onnamechanged.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothAdapterChangeCallback_onstatechanged" onload_delay="180" priority="P1" purpose="Check onstatechanged listener is invoked after turn bluetooth off">
-        <description>
-          <pre_condition>The bluetooth/visible of the test device MUST be turned on.</pre_condition>
-          <steps>
-            <step order="1">
-              <step_desc>Turn off Bluetooth after run.</step_desc>
-              <expected>all subtests should be successful</expected>
-            </step>
-          </steps>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onstatechanged.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothAdapterChangeCallback_onvisibilitychanged" onload_delay="180" priority="P1" purpose="Check onvisibilitychanged listener is invoked after change bluetooth visible state">
-        <description>
-          <pre_condition>The bluetooth/visible of the test device MUST be turned on.</pre_condition>
-          <steps>
-            <step order="1">
-              <step_desc>Change bluetooth visible to "Off".</step_desc>
-              <expected>all subtests should be successful</expected>
-            </step>
-          </steps>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onvisibilitychanged.html</test_script_entry>
+          <pre_condition>The bluetooth/visible of the test device MUST be turned on.</pre_condition>
+          <steps>
+            <step order="1">
+              <step_desc>Change bluetooth visible to "Off".</step_desc>
+              <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothAdapterChangeCallback_onvisibilitychanged.html</test_script_entry>
         </description>
       </testcase>
       <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="auto" id="BluetoothAdapter_address_attribute" priority="P1" purpose="Check if address attribute exists in device">
@@ -4496,70 +3962,95 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
         <capability name="http://tizen.org/feature/profile"><value>WEARABLE</value></capability>
         <capability name="http://tizen.org/feature/network.bluetooth"/>
       </capabilities>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::addValueChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_addValueChangeListener_exist">
+      <testcase purpose="Check if BluetoothGATT works" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCombined" priority = "P3" onload_delay="180">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_addValueChangeListener_exist.html</test_script_entry>
+            <steps>
+                         <step order="1">
+                <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCombined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::descriptors attribute exists, has type array and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_descriptors_attribute">
+      <testcase purpose="Check if BluetoothLEConnectChangeCallbacks are called and if their arguments have proper types" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_connection">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_descriptors_attribute.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>both subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_connection.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_extend">
+      <testcase purpose="Check if BluetoothLEDevice_add/removeConnectStateChangeListener function is called and if its arguments have proper types" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_add/removeConnectStateChangeListener_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_extend.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addremoveConnectStateChangeListener_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::hasExtendedProperties attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_hasExtendedProperties_attribute">
+      <testcase purpose="Check if BluetoothLEDevice/Manufacturer/ServiceData attribues exist and have proper traits" onload_delay="180" priority = "P3" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAttributes">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_hasExtendedProperties_attribute.html</test_script_entry>
+          <steps>
+            <step order="1">
+              <step_desc>several tests executed from base test</step_desc>
+                <expected>all subtests should be successful</expected>
+            </step>
+          </steps>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAttributes.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isBroadcast attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isBroadcast_attribute">
+      <testcase purpose="Check if connect method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isBroadcast_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isIndication attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isIndication_attribute">
+      <testcase purpose="Check if connect method work properly of BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_with_errorcallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isIndication_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_with_errorcallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isNotify attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isNotify_attribute">
+      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(without optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isNotify_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_combined.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isReadable attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isReadable_attribute">
+      <testcase purpose="Check with optional arguments startScan(valid_successCallback, errorCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_with_errorCallback">
         <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isReadable_attribute.html</test_script_entry>
+          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
+The bluetooth of the remote/test device MUST be turned on and discoverable from other devices.</pre_condition>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isSignedWrite attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isSignedWrite_attribute">
+      <testcase purpose="Check if BluetoothLEAdvertiseCallback onstate is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdvertiseCallback_onstate">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isSignedWrite_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_onstate.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isWritable attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isWritable_attribute">
+      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_with_errorCallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isWritable_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::isWriteNoResponse attribute exists, has type boolean and is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_isWriteNoResponse_attribute">
+      <testcase purpose="Check if getService method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_combined">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_isWriteNoResponse_attribute.html</test_script_entry>
+          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_combined.html</test_script_entry>
         </description>
       </testcase>
       <testcase purpose="Check if is possible to call BluetoothGATTCharacteristic in new expresion" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothGATTCharacteristic_notexist">
@@ -4567,251 +4058,17 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method works properly without optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue.html</test_script_entry>
-        </description>
-      </testcase>      
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method throws exception when invalid error callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called without argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_noarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_noarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method throws exception when invalid success callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::readValue method works properly with optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_readValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_readValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::removeValueChangeListener method works properly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_removeValueChangeListener">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_removeValueChangeListener.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::removeValueChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_removeValueChangeListener_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_removeValueChangeListener_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method works properly without optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue.html</test_script_entry>
-        </description>
-      </testcase>      
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid data argument throws an exception " component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_data_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_data_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid errorCallback argument throws an exception " component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method throws exception when invalid error callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called without argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_noarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_noarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method throws exception when invalid success callback is given" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTCharacteristic::writeValue method works properly with optional argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTCharacteristic_writeValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTCharacteristic_writeValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor can have new properties added" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_extend.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if interface BluetoothGATTDescriptor exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothGATTDescriptor_notexist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor readValue method without optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when errorCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when errorCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue exists" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue method called with missing non-optional argument throws an exception" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when successCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when successrCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothGATTDescriptor readValue method with all optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_readValue_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_readValue_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="heck if BluetoothGATTDescriptor readValue method without optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when errorCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when errorCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue exists" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue method called with missing non-optional argument throws an exception" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when successCallback is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if writeValue throws exception when successrCallback is invalid" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if readValue throws exception when value is incorrect" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_value_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_value_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
       <!--<testcase purpose="Check if BluetoothGATTDescriptor writeValue method with all optional arguments works properly" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTDescriptor_writeValue_with_errorCallback">
         <description>
           <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTDescriptor_writeValue_with_errorCallback.html</test_script_entry>
         </description>
       </testcase>-->
-      <testcase purpose="Check characteristics attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_characteristics_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_characteristics_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check services attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_services_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_services_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check uuid attribute in BluetoothGATTService is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothGATTService_uuid_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothGATTService_uuid_attribute.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Test whether the object can have new properties added for BluetoothLEAdapter" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_extend">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_extend.html</test_script_entry>
@@ -4887,18 +4144,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startAdvertise_with_connectable.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check with non-optional arguments startScan(valid_successCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check startScan() method could throw InvaludStateError exception" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_InvalidStateError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_InvalidStateError.html</test_script_entry>
-        </description>
-      </testcase>      
       <testcase purpose="Check whether startScan() method called with invalid errorCallback argument throws an exception" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_startScan_errorCallback_TypeMismatch">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_errorCallback_TypeMismatch.html</test_script_entry>
@@ -4929,13 +4174,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_successCallback_invalid_cb.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check with optional arguments startScan(valid_successCallback, errorCallback)" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_startScan_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.
-The bluetooth of the remote/test device MUST be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_startScan_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check with stopAdvertise method of BluetoothLEAdapter work properly" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_stopAdvertise">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopAdvertise.html</test_script_entry>
@@ -4951,12 +4189,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopAdvertise_extra_argument.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="check stopScan method is working well in BluetoothLEAdapter" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdapter_stopScan">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopScan.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if stopScan method exist" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdapter_stopScan_exist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdapter_stopScan_exist.html</test_script_entry>
@@ -4972,12 +4204,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEAdvertiseCallback onstate is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEAdvertiseCallback_onstate">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseCallback_onstate.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if BluetoothLEAdvertiseData have appearance attribute with proper type and is writeable" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEAdvertiseData_appearance_attribute">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEAdvertiseData_appearance_attribute.html</test_script_entry>
@@ -5035,292 +4261,16 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEConnectChangeCallback onconnected is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_onconnected">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_onconnected.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEConnectChangeCallback ondisconnected is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEConnectChangeCallback_ondisconnected">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEConnectChangeCallback_ondisconnected.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if addConnectStateChangeListener method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if addConnectStateChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check addConnectStateChangeListener() with invalid callback" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_addConnectStateChangeListener_listener_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check address attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_address_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_address_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check appearance attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_appearance_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_appearance_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if connect method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether connect() method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check connect() argument errorCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of connect exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether connect() method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check connect() argument successCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if connect method work properly of BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_connect_with_errorcallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_connect_with_errorcallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(without optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method could throw InvalidStateError exception when device is not connected" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_InvalidStateError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_InvalidStateError.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether disconnect() method called with invalid errorCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_errorCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_errorCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check disconnect() argument errorCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_errorCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_errorCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of disconnect exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check whether disconnect() method called with invalid successCallback argument throws an exception" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_successCallback_TypeMismatch">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_successCallback_TypeMismatch.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check disconnect() argument successCallback validation - use simple function" onload_delay="180" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_successCallback_invalid_cb">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_successCallback_invalid_cb.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if disconnect method work properly with BluetoothLEDevice(with optional argument)" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_disconnect_with_errorCallback">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_disconnect_with_errorCallback.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Test whether the object can have new properties added for BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if getService method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check getService method of BluetoothLEDevice interface could be throw NotFoundError" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_NotFoundError">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_NotFoundError.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if getServiceAllUuids method work properly with BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of getServiceAllUuids exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if method getServiceAllUuids of BluetoothLEDevice accepts extra argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getServiceAllUuids_extra_argument">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getServiceAllUuids_extra_argument.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Method of getService exists in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check getService method of BluetoothLEDevice interface with missing all argument" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_getService_misarg">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_getService_misarg.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check manufacturerData attribute in BluetoothLEDevice is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_manufacturerData_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_manufacturerData_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check name attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_name_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_name_attribute.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if is possible to call BluetoothLEDevice in new expresion" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEDevice_notexist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if removeConnectStateChangeListener method work properly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_removeConnectStateChangeListener">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_removeConnectStateChangeListener.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if removeConnectStateChangeListener method exists" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_removeConnectStateChangeListener_exist">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_removeConnectStateChangeListener_exist.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check serviceData attribute in BluetoothLEDevice is readonly" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_serviceData_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_serviceData_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check solicitationuuids attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_solicitationuuids_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_solicitationuuids_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check txPowerLevel attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_txPowerLevel_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_txPowerLevel_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check uuids attribute in BluetoothLEDevice" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_uuids_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_uuids_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase component="Tizen Device APIs/Communication/Bluetooth" execution_type="manual" id="BluetoothLEDevice_rssi_attribute" priority="P1" purpose="Check rssi attribute in BluetoothLEDevice">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEDevice_rssi_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData::data attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_data_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_data_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEManufacturerData::id attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEManufacturerData_id_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEManufacturerData_id_attribute.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Check if interface BluetoothLEScanCallback exists,it should not" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothLEScanCallback_notexist">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEScanCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if BluetoothLEScanCallback onsuccess is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEScanCallback_onsuccess">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEScanCallback_onsuccess.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData::data attribute exists, has type string and can be modified" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_data_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_data_attribute.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData is extendable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_extend">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_extend.html</test_script_entry>
-        </description>
-      </testcase>
-      <testcase purpose="Check if BluetoothLEServiceData::uuid attribute exists, has type string, can be modified and is nullable" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="BluetoothLEServiceData_uuid_attribute">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothLEServiceData_uuid_attribute.html</test_script_entry>
-        </description>
-      </testcase>
       <testcase purpose="Proper invocation of getLEAdapter method  without arguments" component="TizenAPI/Communication/Bluetooth" execution_type="auto" id="BluetoothManager_getLEAdapter">
         <description>
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/BluetoothManager_getLEAdapter.html</test_script_entry>
@@ -5341,12 +4291,6 @@ The bluetooth of the remote/test device MUST be turned on and discoverable from
           <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/ReadValueSuccessCallback_notexist.html</test_script_entry>
         </description>
       </testcase>
-      <testcase purpose="Check if ReadValueSuccessCallback onread is called and if its arguments have proper type" onload_delay="60" component="TizenAPI/Communication/Bluetooth" execution_type="manual" id="ReadValueSuccessCallback_onread">
-        <description>
-          <pre_condition>The bluetooth of the remote/test device MUST support BLE and be turned on and discoverable from other devices.</pre_condition>
-          <test_script_entry>/opt/tct-bluetooth-tizen-tests/bluetooth/ReadValueSuccessCallback_onread.html</test_script_entry>
-        </description>
-      </testcase>
-    </set>
+     </set>
   </suite>
 </test_definition>