~ken-vandine/ubuntu-system-settings/no_s_i_d

« back to all changes in this revision

Viewing changes to tests/autopilot/ubuntu_system_settings/tests/test_wifi.py

merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
import dbus
11
11
 
12
12
from autopilot.matchers import Eventually
13
 
from dbusmock.templates.networkmanager import (
14
 
    DEVICE_IFACE, NM80211ApSecurityFlags
15
 
)
16
13
from testtools.matchers import Equals
17
14
from time import sleep
18
15
from ubuntu_system_settings.tests import (WifiBaseTestCase,
19
16
                                          WifiWithSSIDBaseTestCase)
20
17
from ubuntu_system_settings.utils.i18n import ugettext as _
21
 
from unittest import skip
22
18
 
23
19
 
24
20
class WifiEnabledTestCase(WifiBaseTestCase):
30
26
            self.wifi_page.title,
31
27
            Equals(_('Wi-Fi')))
32
28
 
33
 
    def test_connect_to_hidden_network(self):
34
 
        dialog = self.wifi_page.connect_to_hidden_network(
35
 
            'test_ap',
36
 
            password='abcdefgh',)
37
 
 
38
 
        # allow backend to set up listeners
39
 
        sleep(0.3)
40
 
 
41
 
        if dialog:
42
 
            dialog.wait_until_destroyed()
43
 
 
44
 
    def test_connect_to_eduroam(self):
45
 
        self.create_access_point(
46
 
            'eduroam', 'eduroam',
47
 
            security=NM80211ApSecurityFlags.NM_802_11_AP_SEC_KEY_MGMT_802_1X
48
 
        )
49
 
 
50
 
        dialog = self.wifi_page.connect_to_hidden_network(
51
 
            'eduroam',
52
 
            username='student',
53
 
            password='a',
54
 
            security='wpa-ep',
55
 
            auth='peap',
56
 
            protocol='mschapv2',
57
 
        )
58
 
 
59
 
        # allow backend to set up listeners
60
 
        sleep(0.3)
61
 
 
62
 
        if dialog:
63
 
            dialog.wait_until_destroyed()
64
 
 
65
 
        dev = dbus.Interface(self.dbus_con.get_object(
66
 
            'org.freedesktop.NetworkManager', self.device_path),
67
 
            'org.freedesktop.DBus.Properties')
68
 
 
69
 
        conn_obj = dev.Get(
70
 
            'org.freedesktop.NetworkManager.Device', 'AvailableConnections'
71
 
        )[0]
72
 
        conn = dbus.Interface(self.dbus_con.get_object(
73
 
            'org.freedesktop.NetworkManager', conn_obj),
74
 
            'org.freedesktop.NetworkManager.Settings.Connection')
75
 
 
76
 
        conn_settings = conn.GetSettings()
77
 
        wconn = conn_settings['connection']
78
 
        w802_11_sec = conn_settings['802-11-wireless-security']
79
 
        w802_1x = conn_settings['802-1x']
80
 
 
81
 
        self.assertEquals(wconn['type'], '802-11-wireless')
82
 
        self.assertEquals(w802_11_sec['key-mgmt'], 'wpa-eap')
83
 
        self.assertIn('peap', w802_1x['eap'])
84
 
        self.assertEquals(w802_1x['identity'], 'student')
85
 
        self.assertEquals(w802_1x['password'], 'a')
86
 
        self.assertEquals(w802_1x['phase2-auth'], 'mschapv2')
87
 
 
88
 
    def test_connect_to_nonexistant_hidden_network(self):
89
 
        dialog = self.wifi_page.connect_to_hidden_network(
90
 
            'n/a',
91
 
            password='abcdefgh',
92
 
        )
93
 
 
94
 
        # allow backend to set up listeners
95
 
        sleep(0.3)
96
 
 
97
 
        """Mock a StateChanged signal on the Device, using a likely
98
 
        scenario of a not found SSID:
99
 
            newState = 120 # NM_DEVICE_STATE_FAILED
100
 
            oldState = 0 # does not matter
101
 
            reason = 53 # NM_DEVICE_STATE_REASON_SSID_NOT_FOUND
102
 
 
103
 
            We manually emit this signal, because the networkmanager mock
104
 
            currently does not support this. See [1].
105
 
 
106
 
            [1] https://github.com/martinpitt/python-dbusmock/issues/8
107
 
        """
108
 
 
109
 
        self.device_mock.EmitSignal(
110
 
            DEVICE_IFACE, 'StateChanged', 'uuu', [120, 0, 53])
111
 
 
112
 
        self.assertThat(
113
 
            dialog.text, Eventually(Equals(
114
 
                _('The Wi-Fi network could not be found'))))
115
 
 
116
 
    @skip('skipped due to %s' % (
117
 
        'https://github.com/martinpitt/python-dbusmock/issues/7'))
118
 
    def test_connect_to_hidden_network_using_secrets(self):
119
 
        dialog = self.wifi_page.connect_to_hidden_network(
120
 
            'test_ap', security='wpa', password='abcdefgh',
121
 
        )
122
 
 
123
 
        # allow backend to set up listeners
124
 
        sleep(0.3)
125
 
 
126
 
        if dialog:
127
 
            dialog.wait_until_destroyed()
128
 
 
129
 
    @skip('skipped due to %s' % (
130
 
        'https://github.com/martinpitt/python-dbusmock/issues/7'))
131
 
    def test_connect_to_hidden_network_using_incorrect_secrets(self):
132
 
        dialog = self.wifi_page.connect_to_hidden_network(
133
 
            'test_ap',
134
 
            security='wpa',
135
 
            password='abcdefgh',
136
 
        )
137
 
 
138
 
        # allow backend to set up listeners
139
 
        sleep(0.3)
140
 
 
141
 
        self.assertThat(
142
 
            dialog.text, Eventually(Equals(
143
 
                _('Your authentication details were incorrect'))))
144
 
 
145
 
    @skip('networkmanager mock does not yet support deletion of cons')
146
 
    def test_connect_to_hidden_network_then_cancel(self):
147
 
        dialog = self.wifi_page.connect_to_hidden_network('foo',)
148
 
 
149
 
        # allow backend to set up listeners
150
 
        sleep(0.3)
151
 
 
152
 
        dialog.cancel()
153
 
 
154
 
        self.assertThat(
155
 
            lambda: len(self.active_connection_mock.GetMethodCalls('Delete')),
156
 
            Eventually(Equals(1)))
157
 
 
158
29
    def test_remove_previous_network(self):
159
30
        access_points = ['Series of Tubes', 'dev/null', 'Mi-Fi',
160
31
                         'MonkeySphere']