16
16
from ubuntu_system_settings.tests import (
17
17
CellularBaseTestCase, HotspotBaseTestCase, CONNMAN_IFACE, RDO_IFACE,
18
NETREG_IFACE, NM_IFACE, NM_AC_CON_IFACE, NM_PATH)
20
SETTINGS_CON_IFACE = 'org.freedesktop.NetworkManager.Settings.Connection'
21
DEV_IFACE = 'org.freedesktop.NetworkManager.Device'
21
24
class CellularTestCase(CellularBaseTestCase):
299
302
password = 'abcdefgh'
300
303
config = {'password': password}
301
304
hotspot_page = self.cellular_page.setup_hotspot(config)
305
active_connection = NM_PATH + 'ActiveConnection/0'
307
# Assert that the switch is on.
303
308
self.assertTrue(hotspot_page.get_hotspot_status())
305
310
# Assert that Block on Urfkill is called twice.
306
target_block_calls = 2
308
312
lambda: len(self.urfkill_mock.GetMethodCalls('Block')),
309
Eventually(Equals(target_block_calls)))
313
Eventually(Equals(2))
311
# Assert that we get one active connection
316
# Assert that we get one active connection.
313
lambda: len(self.obj_nm.GetAll(
314
'org.freedesktop.NetworkManager')['ActiveConnections']),
315
Eventually(Equals(1)))
318
lambda: len(self.obj_nm.GetAll(NM_IFACE)['ActiveConnections']),
319
Eventually(Equals(1))
317
322
# Assert that the active connection has a certain path.
318
active_connection = ('/org/freedesktop/NetworkManager/'
319
'ActiveConnection/0')
321
lambda: self.obj_nm.GetAll('org.freedesktop.NetworkManager')[
322
'ActiveConnections'][0],
323
Eventually(Equals(active_connection)))
324
lambda: self.obj_nm.GetAll(NM_IFACE)['ActiveConnections'][0],
325
Eventually(Equals(active_connection))
325
328
# Assert the device's active connection
327
lambda: self.device_mock.Get(
328
'org.freedesktop.NetworkManager.Device', 'ActiveConnection'),
329
Eventually(Equals(active_connection)))
330
lambda: self.device_mock.Get(DEV_IFACE, 'ActiveConnection'),
331
Eventually(Equals(active_connection))
331
334
active_connection_mock = dbus.Interface(self.dbus_con.get_object(
332
'org.freedesktop.NetworkManager', active_connection),
335
NM_IFACE, active_connection),
333
336
'org.freedesktop.DBus.Properties')
335
connection_path = active_connection_mock.Get(
336
'org.freedesktop.NetworkManager.Connection.Active', 'Connection')
338
connection_path = active_connection_mock.Get(NM_AC_CON_IFACE,
338
341
connection_mock = dbus.Interface(self.dbus_con.get_object(
339
'org.freedesktop.NetworkManager', connection_path),
340
'org.freedesktop.NetworkManager.Settings.Connection')
342
NM_IFACE, connection_path), SETTINGS_CON_IFACE)
342
344
settings = connection_mock.GetSettings()
344
346
# Assert that autoconnect is true, that ssid and password is what we
345
347
# expect them to be.
346
348
self.assertTrue(settings['connection']['autoconnect'])
347
self.assertEqual(bytearray(
348
settings['802-11-wireless']['ssid']).decode('utf-8'), ssid)
350
s_ssid = bytearray(settings['802-11-wireless']['ssid']).decode('utf-8')
351
self.assertEqual(s_ssid, ssid)
349
352
self.assertEqual(settings['802-11-wireless-security']['psk'], password)
351
# Now we change the settings
354
# Now we change the settings.
353
356
password = 'zomgzomg'
354
357
config = {'ssid': ssid, 'password': password}
359
362
# Assert that the ssid changed
361
364
lambda: bytearray(
362
connection_mock.GetSettings()[
363
'802-11-wireless']['ssid']).decode('utf-8'),
364
Eventually(Equals(ssid)))
365
connection_mock.GetSettings()['802-11-wireless']
366
['ssid']).decode('utf-8'),
367
Eventually(Equals(ssid))
366
370
self.cellular_page.disable_hotspot()
367
371
self.assertFalse(hotspot_page.get_hotspot_status())
369
# Assert that the active connection is removed
373
# Assert that the active connection is removed.
371
lambda: len(self.obj_nm.GetAll(
372
'org.freedesktop.NetworkManager')['ActiveConnections']),
373
Eventually(Equals(0)))
375
lambda: len(self.obj_nm.GetAll(NM_IFACE)['ActiveConnections']),
376
Eventually(Equals(0))