1
1
# -*- coding: utf-8 -*-
3
# Author: Alejandro J. Cura <alecu@canonical.com>
5
# Copyright 2011 Canonical Ltd.
3
# Copyright 2011-2012 Canonical Ltd.
7
5
# This program is free software: you can redistribute it and/or modify it
8
6
# under the terms of the GNU General Public License version 3, as published
63
61
def test_no_devices_at_startup(self):
64
62
"""The UI is reset at startup."""
65
63
self.assertEqual(self.ui.ui.list_devices.count(), 0)
66
self.assertEqual(self.ui.ui.local_device_box.count(), 0)
68
65
def test_process_info(self):
69
66
"""The widget is updated with the info."""
72
69
local, remote = SAMPLE_DEVICES_INFO[0], SAMPLE_DEVICES_INFO[1:]
74
self.assertEqual(self.ui.ui.local_device_box.count(), 1)
75
local_device = self.ui.ui.local_device_box.itemAt(0).widget()
76
self.assertEqual(local_device.ui.device_name_label.text(),
71
local_device = self.ui.ui.local_device
72
self.assertEqual(unicode(local_device.text()), local['name'])
78
73
self.assertEqual(local_device.id, local['device_id'])
80
75
self.assertEqual(self.ui.ui.list_devices.count(),
82
77
for i, remote_device in enumerate(remote):
83
78
item = self.ui.ui.list_devices.item(i)
84
79
device = self.ui.ui.list_devices.itemWidget(item)
85
self.assertEqual(device.text(), remote_device['name'])
87
def test_remove_device_and_check_layout_state(self):
88
"""Test if the widget is properly removed."""
89
self.ui.process_info(SAMPLE_DEVICES_INFO)
92
self.assertEqual(self.ui.ui.local_device_box.count(), 1)
93
local_device = self.ui.ui.local_device_box.itemAt(0).widget()
96
def delete_later(reference=None):
97
"""Fake delete later."""
99
self.patch(local_device, "deleteLater", delete_later)
100
self.ui.clear_device_info(self.ui.ui.local_device_box)
101
self.ui.process_info(SAMPLE_DEVICES_INFO)
102
self.assertEqual(self.ui.ui.local_device_box.count(), 1)
103
local_device2 = self.ui.ui.local_device_box.itemAt(0).widget()
104
self.assertNotEqual(local_device, local_device2)
105
self.assertTrue(self.executed)
106
self.assertFalse(local_device.isVisible())
80
self.assertEqual(unicode(device.text()), remote_device['name'])
82
def test_local_device(self):
83
"""Test if the local_device widget is properly packed."""
84
self.ui.process_info(SAMPLE_DEVICES_INFO)
86
local_device = self.ui.ui.local_device_layout.itemAt(0).widget()
87
self.assertIs(local_device, self.ui.ui.local_device)
108
89
def test_process_info_twice(self):
109
90
"""The widget is updated with the info."""
115
96
self.assert_uri_hook_called(self.ui.ui.manage_devices_button,
116
97
gui.EDIT_DEVICES_LINK)
118
def test_remove_device_widget_after_removal(self):
119
"""When a device widget was deleted, remove it from the UI."""
99
def test_local_device_removed_clears_the_widget(self):
100
"""When the local device was deleted, clear it."""
120
101
self.ui.process_info(SAMPLE_DEVICES_INFO)
122
local_device = self.ui.ui.local_device_box.itemAt(0).widget()
123
local_device.removed.emit()
103
self.ui.ui.local_device.removed.emit()
125
self.assertTrue(self.ui.ui.local_device_box.itemAt(0) is None)
105
self.assertEqual(unicode(self.ui.ui.local_device.text()), '')
106
self.assertEqual(self.ui.ui.local_device.id, None)
127
108
def test_local_device_removed_signal(self):
128
109
"""When the local device is removed, emit localDeviceRemoved signal."""
129
110
self.ui.localDeviceRemoved.connect(self._set_called)
130
111
self.ui.process_info(SAMPLE_DEVICES_INFO)
132
local_device = self.ui.ui.local_device_box.itemAt(0).widget()
133
local_device.removed.emit()
113
self.ui.ui.local_device.removed.emit()
135
115
self.assertEqual(self._called, ((), {}))