Warning, /frameworks/bluez-qt/autotests/qml/tst_adapter.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: "Adapter"
0014     property QtObject manager : BluezQt.Manager;
0015     property var adapter1props;
0016     property var adapter2props;
0017 
0018     function initTestCase()
0019     {
0020         FakeBluez.start();
0021         FakeBluez.runTest("bluez-standard");
0022 
0023         // Create adapters
0024         var adapter1path = "/org/bluez/hci0";
0025         adapter1props = {
0026             Path: adapter1path,
0027             Address: "1C:E5:C3:BC:94:7E",
0028             Name: "TestAdapter",
0029             Alias: "TestAlias",
0030             Class: 101,
0031             Powered: false,
0032             Discoverable: false,
0033             Pairable: false,
0034             PairableTimeout: 0,
0035             DiscoverableTimeout: 0,
0036             Discovering: false,
0037             UUIDs: [ "00001200-0000-1000-8000-00805f9b34fb" ],
0038             Modalias: "usb:v2D6Bp1236d0215",
0039             _toDBusObjectPath: [ "Path" ]
0040         }
0041         FakeBluez.runAction("devicemanager", "create-adapter", adapter1props);
0042 
0043         var adapter2path = "/org/bluez/hci1";
0044         adapter2props = {
0045             Path: adapter2path,
0046             Address: "2E:3A:C3:BC:85:7C",
0047             Name: "TestAdapter2",
0048             Alias: "TestAlias2",
0049             Class: 201,
0050             Powered: true,
0051             Discoverable: true,
0052             Pairable: true,
0053             PairableTimeout: 150,
0054             DiscoverableTimeout: 120,
0055             Discovering: false,
0056             UUIDs: [ "0000110c-0000-1000-8000-00805f9b34fb" ],
0057             Modalias: "usb:v1D3Bp1134d0214",
0058             _toDBusObjectPath: [ "Path" ]
0059         }
0060         FakeBluez.runAction("devicemanager", "create-adapter", adapter2props);
0061 
0062         // Create devices
0063         var device1props = {
0064             Path: "/org/bluez/hci0/dev_40_79_6A_0C_39_75",
0065             Adapter: adapter1path,
0066             Address: "40:79:6A:0C:39:75",
0067             Name: "TestDevice",
0068             _toDBusObjectPath: [ "Path", "Adapter" ]
0069         }
0070         FakeBluez.runAction("devicemanager", "create-device", device1props);
0071 
0072         var device2props = {
0073             Path: "/org/bluez/hci1/dev_50_79_6A_0C_39_75",
0074             Adapter: adapter2path,
0075             Address: "50:79:6A:0C:39:75",
0076             Name: "TestDevice2",
0077             _toDBusObjectPath: [ "Path", "Adapter" ]
0078         }
0079         FakeBluez.runAction("devicemanager", "create-device", device2props);
0080 
0081         tryCompare(manager, "operational", true);
0082         compare(manager.adapters.length, 2, "adapters-length");
0083         compare(manager.devices.length, 2, "devices-length");
0084     }
0085 
0086     function cleanupTestCase()
0087     {
0088         FakeBluez.stop();
0089     }
0090 
0091     function compareProperties(adapter, props)
0092     {
0093         compare(adapter.ubi, props.Path, "ubi");
0094         compare(adapter.address, props.Address, "address");
0095         compare(adapter.name, props.Alias, "name");
0096         compare(adapter.systemName, props.Name, "systemName");
0097         compare(adapter.adapterClass, props.Class, "adapterClass");
0098         compare(adapter.powered, props.Powered, "powered");
0099         compare(adapter.discoverable, props.Discoverable, "discoverable");
0100         compare(adapter.pairable, props.Pairable, "pairable");
0101         compare(adapter.pairableTimeout, props.PairableTimeout, "pairableTimeout");
0102         compare(adapter.discoverableTimeout, props.DiscoverableTimeout, "discoverableTimeout");
0103         compare(adapter.discovering, props.Discovering, "discovering");
0104         compare(adapter.modalias, props.Modalias, "modalias");
0105 
0106         for (var i = 0; i < adapter.uuids.length; ++i) {
0107             compare(adapter.uuids[i], props.UUIDs[i].toUpperCase(), "uuids" + i);
0108         }
0109     }
0110 
0111     function test_getProperties()
0112     {
0113         var adapter1 = manager.adapterForUbi(adapter1props.Path);
0114         var adapter2 = manager.adapterForUbi(adapter2props.Path);
0115         compareProperties(adapter1, adapter1props);
0116         compareProperties(adapter2, adapter2props);
0117     }
0118 
0119     SignalSpy {
0120         id: nameChangedSpy
0121         signalName: "nameChanged"
0122     }
0123 
0124     function test_setName()
0125     {
0126         for (var i = 0; i < manager.adapters.length; ++i) {
0127             var adapter = manager.adapters[i];
0128             var value = adapter.name + "tst_name";
0129 
0130             nameChangedSpy.clear();
0131             nameChangedSpy.target = adapter;
0132 
0133             adapter.name = value;
0134 
0135             tryCompare(nameChangedSpy, "count", 1);
0136             compare(adapter.name, value);
0137         }
0138     }
0139 
0140     SignalSpy {
0141         id: poweredChangedSpy
0142         signalName: "poweredChanged"
0143     }
0144 
0145     function test_setPowered()
0146     {
0147         for (var i = 0; i < manager.adapters.length; ++i) {
0148             var adapter = manager.adapters[i];
0149             var value = !adapter.powered;
0150 
0151             poweredChangedSpy.clear();
0152             poweredChangedSpy.target = adapter;
0153 
0154             adapter.powered = value;
0155 
0156             tryCompare(poweredChangedSpy, "count", 1);
0157             compare(adapter.powered, value);
0158         }
0159     }
0160 
0161     SignalSpy {
0162         id: discoveringChangedSpy
0163         signalName: "discoveringChanged"
0164     }
0165 
0166     function test_discovery()
0167     {
0168         for (var i = 0; i < manager.adapters.length; ++i) {
0169             var adapter = manager.adapters[i];
0170 
0171             discoveringChangedSpy.clear();
0172             discoveringChangedSpy.target = adapter;
0173 
0174             adapter.startDiscovery();
0175 
0176             tryCompare(discoveringChangedSpy, "count", 1);
0177             compare(adapter.discovering, true);
0178 
0179             discoveringChangedSpy.clear();
0180 
0181             adapter.stopDiscovery();
0182 
0183             tryCompare(discoveringChangedSpy, "count", 1);
0184             compare(adapter.discovering, false);
0185         }
0186     }
0187 
0188     SignalSpy {
0189         id: managerDeviceRemovedSpy
0190         signalName: "deviceRemoved"
0191     }
0192 
0193     SignalSpy {
0194         id: adapterDeviceRemovedSpy
0195         signalName: "deviceRemoved"
0196     }
0197 
0198     SignalSpy {
0199         id: deviceDeviceRemovedSpy
0200         signalName: "deviceRemoved"
0201     }
0202 
0203     // za prefix to force test order - second last
0204     function test_za_RemoveDevice()
0205     {
0206         for (var i = 0; i < manager.adapters.length; ++i) {
0207             var adapter = manager.adapters[i];
0208             while (adapter.devices.length > 0) {
0209                 var device = adapter.devices[0];
0210 
0211                 managerDeviceRemovedSpy.clear();
0212                 managerDeviceRemovedSpy.target = manager;
0213                 adapterDeviceRemovedSpy.clear();
0214                 adapterDeviceRemovedSpy.target = adapter;
0215                 deviceDeviceRemovedSpy.clear();
0216                 deviceDeviceRemovedSpy.target = device;
0217 
0218                 adapter.removeDevice(device);
0219 
0220                 tryCompare(managerDeviceRemovedSpy, "count", 1);
0221                 tryCompare(adapterDeviceRemovedSpy, "count", 1);
0222                 tryCompare(deviceDeviceRemovedSpy, "count", 1);
0223             }
0224         }
0225     }
0226 
0227     SignalSpy {
0228         id: managerAdapterRemovedSpy
0229         signalName: "adapterRemoved"
0230     }
0231 
0232     SignalSpy {
0233         id: adapterAdapterRemovedSpy
0234         signalName: "adapterRemoved"
0235     }
0236 
0237     // zb prefix to force test order - last
0238     function test_zb_AdapterRemoved()
0239     {
0240         while (manager.adapters.length > 0) {
0241             var adapter = manager.adapters[0];
0242 
0243             managerAdapterRemovedSpy.clear();
0244             managerAdapterRemovedSpy.target = manager;
0245             adapterAdapterRemovedSpy.clear();
0246             adapterAdapterRemovedSpy.target = adapter;
0247 
0248             var props = {
0249                 Path: adapter.ubi,
0250                 _toDBusObjectPath: [ "Path" ]
0251             }
0252             FakeBluez.runAction("devicemanager", "remove-adapter", props);
0253 
0254             tryCompare(managerAdapterRemovedSpy, "count", 1);
0255             tryCompare(adapterAdapterRemovedSpy, "count", 1);
0256         }
0257     }
0258 }
0259