Warning, /frameworks/bluez-qt/autotests/qml/tst_manager.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: "Manager" 0014 0015 function cleanup() 0016 { 0017 FakeBluez.stop(); 0018 } 0019 0020 function test_bluezNotRunning() 0021 { 0022 var manager = BluezQt.Manager; 0023 tryCompare(manager, "operational", false); 0024 0025 verify(!manager.operational, "operational"); 0026 verify(!manager.bluetoothOperational, "btOperational"); 0027 } 0028 0029 function test_bluezNotExportingInterfaces() 0030 { 0031 FakeBluez.start(); 0032 FakeBluez.runTest("bluez-not-exporting-interfaces"); 0033 0034 var manager = BluezQt.Manager; 0035 tryCompare(manager, "operational", false); 0036 0037 verify(!manager.operational, "operational"); 0038 verify(!manager.bluetoothOperational, "btOperational"); 0039 } 0040 0041 function test_bluezNoAdapters() 0042 { 0043 FakeBluez.start(); 0044 FakeBluez.runTest("bluez-no-adapters"); 0045 0046 var manager = BluezQt.Manager; 0047 tryCompare(manager, "operational", true); 0048 0049 verify(manager.operational, "operational"); 0050 verify(!manager.bluetoothOperational, "btOperational"); 0051 } 0052 0053 SignalSpy { 0054 id: usableAdapterChangedSpy 0055 signalName: "usableAdapterChanged" 0056 } 0057 0058 function test_usableAdapter() 0059 { 0060 FakeBluez.start(); 0061 FakeBluez.runTest("bluez-standard"); 0062 0063 var adapter1path = "/org/bluez/hci0"; 0064 var adapter1props = { 0065 Path: adapter1path, 0066 Address: "1C:E5:C3:BC:94:7E", 0067 Name: "TestAdapter", 0068 Powered: false, 0069 _toDBusObjectPath: [ "Path" ] 0070 } 0071 FakeBluez.runAction("devicemanager", "create-adapter", adapter1props); 0072 0073 var adapter2path = "/org/bluez/hci1"; 0074 var adapter2props = { 0075 Path: adapter2path, 0076 Address: "2E:3A:C3:BC:85:7C", 0077 Name: "TestAdapter2", 0078 Powered: false, 0079 _toDBusObjectPath: [ "Path" ] 0080 } 0081 FakeBluez.runAction("devicemanager", "create-adapter", adapter2props); 0082 0083 0084 var manager = BluezQt.Manager; 0085 0086 tryCompare(manager, "operational", true); 0087 verify(!manager.bluetoothOperational, "btOperational"); 0088 0089 usableAdapterChangedSpy.target = manager; 0090 0091 var properties = { 0092 Path: adapter1path, 0093 Name: "Powered", 0094 Value: true, 0095 _toDBusObjectPath: [ "Path" ] 0096 } 0097 FakeBluez.runAction("devicemanager", "change-adapter-property", properties); 0098 0099 tryCompare(usableAdapterChangedSpy, "count", 1); 0100 compare(manager.usableAdapter.ubi, adapter1path); 0101 0102 usableAdapterChangedSpy.clear(); 0103 0104 properties.Value = false; 0105 FakeBluez.runAction("devicemanager", "change-adapter-property", properties); 0106 0107 tryCompare(usableAdapterChangedSpy, "count", 1); 0108 compare(manager.usableAdapter, null); 0109 0110 usableAdapterChangedSpy.clear(); 0111 0112 properties.Path = adapter2path; 0113 properties.Value = true; 0114 FakeBluez.runAction("devicemanager", "change-adapter-property", properties); 0115 0116 tryCompare(usableAdapterChangedSpy, "count", 1); 0117 compare(manager.usableAdapter.ubi, adapter2path); 0118 } 0119 0120 SignalSpy { 0121 id: managerAdapterRemovedSpy 0122 signalName: "adapterRemoved" 0123 } 0124 0125 SignalSpy { 0126 id: managerDeviceRemovedSpy 0127 signalName: "deviceRemoved" 0128 } 0129 0130 function test_adapterWithDevicesRemoved() 0131 { 0132 FakeBluez.start(); 0133 FakeBluez.runTest("bluez-standard"); 0134 0135 var adapter1path = "/org/bluez/hci0"; 0136 var adapterProps = { 0137 Path: adapter1path, 0138 Address: "1C:E5:C3:BC:94:7E", 0139 Name: "TestAdapter", 0140 Powered: false, 0141 _toDBusObjectPath: [ "Path" ] 0142 } 0143 FakeBluez.runAction("devicemanager", "create-adapter", adapterProps); 0144 0145 var device1props = { 0146 Path: "/org/bluez/hci0/dev_40_79_6A_0C_39_75", 0147 Adapter: adapter1path, 0148 Address: "40:79:6A:0C:39:75", 0149 Name: "TestDevice", 0150 _toDBusObjectPath: [ "Path", "Adapter" ] 0151 } 0152 FakeBluez.runAction("devicemanager", "create-device", device1props); 0153 0154 var device2props = { 0155 Path: "/org/bluez/hci0/dev_50_79_6A_0C_39_75", 0156 Adapter: adapter1path, 0157 Address: "50:79:6A:0C:39:75", 0158 Name: "TestDevice2", 0159 _toDBusObjectPath: [ "Path", "Adapter" ] 0160 } 0161 FakeBluez.runAction("devicemanager", "create-device", device2props); 0162 0163 var manager = BluezQt.Manager; 0164 0165 tryCompare(manager, "operational", true); 0166 0167 var adapter = manager.adapterForAddress("1C:E5:C3:BC:94:7E"); 0168 var device1 = manager.deviceForAddress("40:79:6A:0C:39:75"); 0169 var device2 = manager.deviceForAddress("50:79:6A:0C:39:75"); 0170 0171 verify(adapter); 0172 verify(device1); 0173 verify(device2); 0174 0175 managerAdapterRemovedSpy.target = manager; 0176 managerDeviceRemovedSpy.target = manager; 0177 0178 var properties = { 0179 Path: adapter1path, 0180 _toDBusObjectPath: [ "Path" ] 0181 } 0182 FakeBluez.runAction("devicemanager", "remove-adapter", properties); 0183 0184 tryCompare(managerAdapterRemovedSpy, "count", 1); 0185 tryCompare(managerDeviceRemovedSpy, "count", 2); 0186 compare(manager.adapters.length, 0); 0187 compare(manager.devices.length, 0); 0188 } 0189 } 0190