Warning, /frameworks/bluez-qt/autotests/qml/tst_device.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2015 David Rosca <nowrep@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 import QtTest 1.0 0008 import QtQuick 2.2 0009 import org.kde.bluezqt.fakebluez 1.0 0010 import org.kde.bluezqt 1.0 as BluezQt 0011 0012 TestCase { 0013 name: "Device" 0014 property QtObject manager : BluezQt.Manager; 0015 property var device1props; 0016 property var device2props; 0017 0018 function initTestCase() 0019 { 0020 FakeBluez.start(); 0021 FakeBluez.runTest("bluez-standard"); 0022 0023 // Create adapters 0024 var adapter1path = "/org/bluez/hci0"; 0025 var adapter1props = { 0026 Path: adapter1path, 0027 Address: "1C:E5:C3:BC:94:7E", 0028 Name: "TestAdapter", 0029 _toDBusObjectPath: [ "Path" ] 0030 } 0031 FakeBluez.runAction("devicemanager", "create-adapter", adapter1props); 0032 0033 var adapter2path = "/org/bluez/hci1"; 0034 var adapter2props = { 0035 Path: adapter2path, 0036 Address: "2E:3A:C3:BC:85:7C", 0037 Name: "TestAdapter2", 0038 _toDBusObjectPath: [ "Path" ] 0039 } 0040 FakeBluez.runAction("devicemanager", "create-adapter", adapter2props); 0041 0042 // Create devices 0043 device1props = { 0044 Path: "/org/bluez/hci0/dev_40_79_6A_0C_39_75", 0045 Adapter: adapter1path, 0046 Address: "40:79:6A:0C:39:75", 0047 Name: "TestDevice", 0048 Alias: "TestAlias", 0049 Icon: "phone", 0050 Class: 101, 0051 Appearance: 25, 0052 UUIDs: [ "00001200-0000-1000-8000-00805f9b34fb" ], 0053 Paired: false, 0054 Connected: false, 0055 Trusted: false, 0056 Blocked: false, 0057 LegacyPairing: false, 0058 RSSI: 20, 0059 Modalias: "bluetooth:v001Dp1200d1236", 0060 _toDBusObjectPath: [ "Path", "Adapter" ] 0061 } 0062 FakeBluez.runAction("devicemanager", "create-device", device1props); 0063 0064 device2props = { 0065 Path: "/org/bluez/hci1/dev_50_79_6A_0C_39_75", 0066 Adapter: adapter2path, 0067 Address: "50:79:6A:0C:39:75", 0068 Name: "TestDevice2", 0069 Alias: "TestAlias2", 0070 Icon: "joypad", 0071 Class: 201, 0072 Appearance: 32, 0073 UUIDs: [ "00001124-0000-1000-8000-00805f9b34fb" ], 0074 Paired: true, 0075 Connected: false, 0076 Trusted: true, 0077 Blocked: false, 0078 LegacyPairing: true, 0079 RSSI: -15, 0080 Modalias: "bluetooth:v001Dp1200d1136", 0081 _toDBusObjectPath: [ "Path", "Adapter" ] 0082 } 0083 FakeBluez.runAction("devicemanager", "create-device", device2props); 0084 0085 tryCompare(manager, "operational", true); 0086 compare(manager.adapters.length, 2, "adapters-length"); 0087 compare(manager.devices.length, 2, "devices-length"); 0088 } 0089 0090 function cleanupTestCase() 0091 { 0092 FakeBluez.stop(); 0093 } 0094 0095 function compareProperties(device, props) 0096 { 0097 compare(device.ubi, props.Path, "ubi"); 0098 compare(device.address, props.Address, "address"); 0099 compare(device.name, props.Alias, "name"); 0100 compare(device.remoteName, props.Name, "remoteName"); 0101 compare(device.icon, props.Icon, "icon"); 0102 compare(device.deviceClass, props.Class, "deviceClass"); 0103 compare(device.appearance, props.Appearance, "appearance"); 0104 compare(device.paired, props.Paired, "paired"); 0105 compare(device.connected, props.Connected, "connected"); 0106 compare(device.trusted, props.Trusted, "trusted"); 0107 compare(device.blocked, props.Blocked, "blocked"); 0108 compare(device.legacyPairing, props.LegacyPairing, "legacyPairing"); 0109 compare(device.rssi, props.RSSI, "rssi"); 0110 compare(device.modalias, props.Modalias, "modalias"); 0111 compare(device.adapter.ubi, props.Adapter, "adapter"); 0112 0113 for (var i = 0; i < device.uuids.length; ++i) { 0114 compare(device.uuids[i], props.UUIDs[i].toUpperCase(), "uuids" + i); 0115 } 0116 } 0117 0118 function test_getProperties() 0119 { 0120 var device1 = manager.deviceForUbi(device1props.Path); 0121 var device2 = manager.deviceForUbi(device2props.Path); 0122 compareProperties(device1, device1props); 0123 compareProperties(device2, device2props); 0124 } 0125 0126 SignalSpy { 0127 id: nameChangedSpy 0128 signalName: "nameChanged" 0129 } 0130 0131 function test_setName() 0132 { 0133 for (var i = 0; i < manager.devices.length; ++i) { 0134 var device = manager.devices[i]; 0135 var value = device.name + "tst_name"; 0136 0137 nameChangedSpy.clear(); 0138 nameChangedSpy.target = device; 0139 0140 device.name = value; 0141 0142 tryCompare(nameChangedSpy, "count", 1); 0143 compare(device.name, value); 0144 } 0145 } 0146 0147 SignalSpy { 0148 id: trustedChangedSpy 0149 signalName: "trustedChanged" 0150 } 0151 0152 function test_setTrusted() 0153 { 0154 for (var i = 0; i < manager.devices.length; ++i) { 0155 var device = manager.devices[i]; 0156 var value = !device.trusted; 0157 0158 trustedChangedSpy.clear(); 0159 trustedChangedSpy.target = device; 0160 0161 device.trusted = value; 0162 0163 tryCompare(trustedChangedSpy, "count", 1); 0164 compare(device.trusted, value); 0165 } 0166 } 0167 0168 SignalSpy { 0169 id: managerDeviceRemovedSpy 0170 signalName: "deviceRemoved" 0171 } 0172 0173 SignalSpy { 0174 id: adapterDeviceRemovedSpy 0175 signalName: "deviceRemoved" 0176 } 0177 0178 SignalSpy { 0179 id: deviceDeviceRemovedSpy 0180 signalName: "deviceRemoved" 0181 } 0182 0183 // za prefix to force test order - last 0184 function test_za_DeviceRemoved() 0185 { 0186 while (manager.devices.length > 0) { 0187 var device = manager.devices[0]; 0188 0189 managerDeviceRemovedSpy.clear(); 0190 managerDeviceRemovedSpy.target = manager; 0191 adapterDeviceRemovedSpy.clear(); 0192 adapterDeviceRemovedSpy.target = device.adapter; 0193 deviceDeviceRemovedSpy.clear(); 0194 deviceDeviceRemovedSpy.target = device; 0195 0196 var props = { 0197 Path: device.ubi, 0198 _toDBusObjectPath: [ "Path" ] 0199 } 0200 FakeBluez.runAction("devicemanager", "remove-device", props); 0201 0202 tryCompare(managerDeviceRemovedSpy, "count", 1); 0203 tryCompare(adapterDeviceRemovedSpy, "count", 1); 0204 tryCompare(deviceDeviceRemovedSpy, "count", 1); 0205 } 0206 } 0207 } 0208