Merge lp:~pete-woods/indicator-network/enterprise-wifi-invokes-system-settings into lp:indicator-network/15.10

Proposed by Pete Woods on 2015-07-06
Status: Merged
Approved by: Pete Woods on 2015-07-07
Approved revision: 503
Merged at revision: 498
Proposed branch: lp:~pete-woods/indicator-network/enterprise-wifi-invokes-system-settings
Merge into: lp:indicator-network/15.10
Prerequisite: lp:~pete-woods/indicator-network/dual-sim-status
Diff against target: 943 lines (+292/-135)
12 files modified
src/indicator/menuitems/access-point-item.cpp (+1/-0)
src/indicator/menuitems/wifi-link-item.cpp (+0/-1)
src/indicator/nmofono/wifi/access-point-impl.cpp (+14/-1)
src/indicator/nmofono/wifi/access-point-impl.h (+3/-1)
src/indicator/nmofono/wifi/access-point.h (+2/-0)
src/indicator/nmofono/wifi/grouped-access-point.cpp (+21/-0)
src/indicator/nmofono/wifi/grouped-access-point.h (+2/-1)
src/indicator/nmofono/wifi/wifi-link-impl.cpp (+33/-14)
tests/integration/indicator-network-test-base.cpp (+41/-4)
tests/integration/indicator-network-test-base.h (+4/-3)
tests/integration/test-indicator.cpp (+167/-110)
tests/unit/indicator/menuitems/test-access-point-item.cpp (+4/-0)
To merge this branch: bzr merge lp:~pete-woods/indicator-network/enterprise-wifi-invokes-system-settings
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing on 2015-07-07
Indicator Applet Developers 2015-07-06 Pending
Review via email: mp+263899@code.launchpad.net

Commit Message

Enteprise access points invoke the system settings app with details encoded in a URI

Description of the Change

Enteprise access points invoke the system settings app with details encoded in a URI

To post a comment you must log in.
Jonas G. Drange (jonas-drange) wrote :

Pete, I went past the University today and tried silo 53. I tapped 'eduroam' in the indicator and it invoked System Settings as advertised. However, System Settings failed to create a connection due to the network being out of range.

Re-tapping 'eduroam', which was now green indicating it was connected, failed to invoke System Settings.

I suspected at the time that this was the fault of System Settings; it probably creates a NM connection object but never deletes it if it fails in this manner.

But then I removed the connection and did the following:
1. Tapped 'eduroam' in the indicator.
2. Pressed Cancel in the System Settings dialog.

This also made 'eduroam' appear green in the indicator, but I know for a fact that System Settings has not created a connection in this case.

Do you make sense of this?

Thanks.

Jonas

501. By Pete Woods on 2015-07-07

Add tests for enterprise WiFi trigger

502. By Pete Woods on 2015-07-07

Pass raw SSID through to URL dispatcher

Pete Woods (pete-woods) wrote :

Thanks for reporting that. Will have to have a look at the connection code-path. It must assume the connection has succeeded, or something like that...

503. By Pete Woods on 2015-07-07

Stop faking the wifi connection state update

504. By Pete Woods on 2015-07-08

Fix URI spec to match what jgdx wanted, not what he said :)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/indicator/menuitems/access-point-item.cpp'
2--- src/indicator/menuitems/access-point-item.cpp 2015-04-14 11:20:17 +0000
3+++ src/indicator/menuitems/access-point-item.cpp 2015-07-08 08:49:46 +0000
4@@ -60,6 +60,7 @@
5 m_item->setAttribute("x-canonical-type", TypedVariant<std::string>("unity.widgets.systemsettings.tablet.accesspoint"));
6 m_item->setAttribute("x-canonical-wifi-ap-is-adhoc", TypedVariant<bool>(m_accessPoint->adhoc()));
7 m_item->setAttribute("x-canonical-wifi-ap-is-secure", TypedVariant<bool>(m_accessPoint->secured()));
8+ m_item->setAttribute("x-canonical-wifi-ap-is-enterprise", TypedVariant<bool>(m_accessPoint->enterprise()));
9 m_item->setAttribute("x-canonical-wifi-ap-strength-action", TypedVariant<std::string>("indicator." + strengthActionId));
10
11 m_actionStrength = std::make_shared<Action>(strengthActionId,
12
13=== modified file 'src/indicator/menuitems/wifi-link-item.cpp'
14--- src/indicator/menuitems/wifi-link-item.cpp 2015-04-16 13:18:24 +0000
15+++ src/indicator/menuitems/wifi-link-item.cpp 2015-07-08 08:49:46 +0000
16@@ -164,7 +164,6 @@
17 bool isActive = (ap == m_activeAccessPoint);
18 auto item = std::make_shared<AccessPointItem>(ap, isActive);
19 connect(item.get(), &AccessPointItem::activated, [this, ap](){
20- updateActiveAccessPoint(ap);
21 m_link->connect_to(ap);
22 });
23 m_accessPoints[ap] = item;
24
25=== modified file 'src/indicator/nmofono/wifi/access-point-impl.cpp'
26--- src/indicator/nmofono/wifi/access-point-impl.cpp 2015-05-05 16:15:26 +0000
27+++ src/indicator/nmofono/wifi/access-point-impl.cpp 2015-07-08 08:49:46 +0000
28@@ -60,6 +60,8 @@
29
30 m_ssid = ssid;
31
32+ m_bssid = m_ap->hwAddress();
33+
34 m_strength = m_ap->strength();
35
36 connect(m_ap.get(), &OrgFreedesktopNetworkManagerAccessPointInterface::PropertiesChanged, this, &AccessPointImpl::ap_properties_changed);
37@@ -104,11 +106,21 @@
38 return m_ssid;
39 }
40
41+QString AccessPointImpl::bssid() const
42+{
43+ return m_bssid;
44+}
45+
46 QByteArray AccessPointImpl::raw_ssid() const
47 {
48 return m_raw_ssid;
49 }
50
51+bool AccessPointImpl::enterprise() const
52+{
53+ return (m_secflags & NM_802_11_AP_SEC_KEY_MGMT_802_1X) > 0;
54+}
55+
56 bool AccessPointImpl::secured() const
57 {
58 return m_secured;
59@@ -132,7 +144,8 @@
60 bool AccessPointImpl::operator==(const AccessPointImpl &other) const {
61 if(this == &other)
62 return true;
63- return m_ssid == other.m_ssid &&
64+ return m_raw_ssid == other.m_raw_ssid &&
65+ m_bssid == other.m_bssid &&
66 m_secflags == other.m_secflags &&
67 m_mode == other.m_mode;
68 }
69
70=== modified file 'src/indicator/nmofono/wifi/access-point-impl.h'
71--- src/indicator/nmofono/wifi/access-point-impl.h 2015-05-05 16:15:26 +0000
72+++ src/indicator/nmofono/wifi/access-point-impl.h 2015-07-08 08:49:46 +0000
73@@ -83,13 +83,14 @@
74 std::chrono::system_clock::time_point lastConnected() const;
75
76 QString ssid() const override;
77+ QString bssid() const override;
78 QByteArray raw_ssid() const override;
79
80 std::uint32_t secflags() const;
81 std::uint32_t mode() const;
82
83 bool secured() const override;
84-
85+ bool enterprise() const override;
86 bool adhoc() const override;
87
88 QDBusObjectPath object_path() const override;
89@@ -108,6 +109,7 @@
90 std::chrono::system_clock::time_point m_lastConnected;
91 std::shared_ptr<OrgFreedesktopNetworkManagerAccessPointInterface> m_ap;
92 QString m_ssid;
93+ QString m_bssid;
94 QByteArray m_raw_ssid;
95 bool m_secured;
96 bool m_adhoc;
97
98=== modified file 'src/indicator/nmofono/wifi/access-point.h'
99--- src/indicator/nmofono/wifi/access-point.h 2015-04-14 11:20:17 +0000
100+++ src/indicator/nmofono/wifi/access-point.h 2015-07-08 08:49:46 +0000
101@@ -50,9 +50,11 @@
102 virtual double strength() const = 0;
103
104 virtual QString ssid() const = 0;
105+ virtual QString bssid() const = 0;
106 virtual QByteArray raw_ssid() const = 0;
107 virtual QDBusObjectPath object_path() const = 0;
108 virtual bool secured() const = 0;
109+ virtual bool enterprise() const = 0;
110 virtual bool adhoc() const = 0;
111
112 Q_SIGNALS:
113
114=== modified file 'src/indicator/nmofono/wifi/grouped-access-point.cpp'
115--- src/indicator/nmofono/wifi/grouped-access-point.cpp 2015-05-05 16:15:26 +0000
116+++ src/indicator/nmofono/wifi/grouped-access-point.cpp 2015-07-08 08:49:46 +0000
117@@ -168,6 +168,17 @@
118 return p->aplist.at(0)->ssid();
119 }
120
121+QString GroupedAccessPoint::bssid() const
122+{
123+ if (p->aplist.empty())
124+ {
125+ return QString();
126+ }
127+
128+ return p->aplist.at(0)->bssid();
129+}
130+
131+
132 QByteArray GroupedAccessPoint::raw_ssid() const
133 {
134 if (p->aplist.empty())
135@@ -188,6 +199,16 @@
136 return p->aplist.at(0)->secured();
137 }
138
139+bool GroupedAccessPoint::enterprise() const
140+{
141+ if (p->aplist.empty())
142+ {
143+ return false;
144+ }
145+
146+ return p->aplist.at(0)->enterprise();
147+}
148+
149 bool GroupedAccessPoint::adhoc() const
150 {
151 if (p->aplist.empty())
152
153=== modified file 'src/indicator/nmofono/wifi/grouped-access-point.h'
154--- src/indicator/nmofono/wifi/grouped-access-point.h 2015-04-24 08:47:08 +0000
155+++ src/indicator/nmofono/wifi/grouped-access-point.h 2015-07-08 08:49:46 +0000
156@@ -50,10 +50,11 @@
157 std::chrono::system_clock::time_point lastConnected() const;
158
159 QString ssid() const override;
160+ QString bssid() const override;
161 QByteArray raw_ssid() const override;
162
163 bool secured() const override;
164-
165+ bool enterprise() const override;
166 bool adhoc() const override;
167
168 QDBusObjectPath object_path() const override;
169
170=== modified file 'src/indicator/nmofono/wifi/wifi-link-impl.cpp'
171--- src/indicator/nmofono/wifi/wifi-link-impl.cpp 2015-05-05 16:15:26 +0000
172+++ src/indicator/nmofono/wifi/wifi-link-impl.cpp 2015-07-08 08:49:46 +0000
173@@ -20,6 +20,7 @@
174 #include <nmofono/wifi/wifi-link-impl.h>
175 #include <nmofono/wifi/access-point-impl.h>
176 #include <nmofono/wifi/grouped-access-point.h>
177+#include <url-dispatcher-cpp/url-dispatcher.h>
178 #include <cassert>
179
180 #include <NetworkManagerActiveConnectionInterface.h>
181@@ -28,6 +29,7 @@
182
183 #include <NetworkManager.h>
184 #include <iostream>
185+#include <QUrlQuery>
186
187 using namespace std;
188
189@@ -453,20 +455,37 @@
190 QDBusObjectPath(d->m_dev->path()),
191 accessPoint->object_path());
192 } else {
193- QVariantDictMap conf;
194-
195- /// @todo getting the ssid multiple times over dbus is stupid.
196-
197- QVariantMap wireless_conf;
198- wireless_conf["ssid"] = ssid;
199-
200- conf["802-11-wireless"] = wireless_conf;
201- auto ret = d->m_nm->AddAndActivateConnection(
202- conf, QDBusObjectPath(d->m_dev->path()), accessPoint->object_path());
203- ret.waitForFinished();
204- ac = ret.argumentAt<1>();
205- }
206- d->updateActiveConnection(ac);
207+ if (accessPoint->enterprise()) {
208+ // activate system settings URI
209+ QUrlQuery q;
210+ q.addQueryItem("ssid", accessPoint->raw_ssid());
211+ q.addQueryItem("bssid", accessPoint->bssid());
212+ QString url = "settings:///system/wifi?" + q.query(QUrl::FullyEncoded);
213+
214+ UrlDispatcher::send(url.toStdString(), [](string url, bool success) {
215+ if (!success) {
216+ cerr << "URL Dispatcher failed on " << url << endl;
217+ }
218+ });
219+ } else {
220+ QVariantDictMap conf;
221+
222+ /// @todo getting the ssid multiple times over dbus is stupid.
223+
224+ QVariantMap wireless_conf;
225+ wireless_conf["ssid"] = ssid;
226+
227+ conf["802-11-wireless"] = wireless_conf;
228+ auto ret = d->m_nm->AddAndActivateConnection(
229+ conf, QDBusObjectPath(d->m_dev->path()), accessPoint->object_path());
230+ ret.waitForFinished();
231+ ac = ret.argumentAt<1>();
232+ }
233+ }
234+ // For enterprise access points, the system settings app will perform the connection
235+ if (!accessPoint->enterprise()) {
236+ d->updateActiveConnection(ac);
237+ }
238 d->m_connecting = false;
239 } catch(const exception &e) {
240 // @bug default timeout expired: LP(#1361642)
241
242=== modified file 'tests/integration/indicator-network-test-base.cpp'
243--- tests/integration/indicator-network-test-base.cpp 2015-07-08 08:49:46 +0000
244+++ tests/integration/indicator-network-test-base.cpp 2015-07-08 08:49:46 +0000
245@@ -64,8 +64,31 @@
246 dbusMock.registerOfono();
247 dbusMock.registerURfkill();
248
249+ dbusMock.registerCustomMock(
250+ "com.canonical.URLDispatcher",
251+ "/com/canonical/URLDispatcher",
252+ "com.canonical.URLDispatcher",
253+ QDBusConnection::SessionBus);
254+
255 dbusTestRunner.startServices();
256
257+ // Set up a basic URL dispatcher mock
258+ auto& urlDispatcher = dbusMock.mockInterface(
259+ "com.canonical.URLDispatcher",
260+ "/com/canonical/URLDispatcher",
261+ "com.canonical.URLDispatcher",
262+ QDBusConnection::SessionBus);
263+ urlDispatcher.AddMethod(
264+ "com.canonical.URLDispatcher",
265+ "DispatchURL", "ss", "",
266+ ""
267+ ).waitForFinished();
268+ urlDispatcher.AddMethod(
269+ "com.canonical.URLDispatcher",
270+ "TestURL", "as", "as",
271+ "ret = args[0]"
272+ ).waitForFinished();
273+
274 // mock service creates ril_0 automatically
275 // Initial ConnectionManager properties are insane, fix them here
276 setConnectionManagerProperty(firstModem(), "Bearer", "none");
277@@ -155,16 +178,29 @@
278 }
279
280 QString IndicatorNetworkTestBase::createAccessPoint(const QString& id, const QString& ssid, const QString& device, uchar strength,
281- Secure secure, ApMode apMode)
282+ Secure secure, ApMode apMode, const QString& mac)
283 {
284+ int secflags;
285+ if (secure == Secure::insecure)
286+ {
287+ secflags = NM_802_11_AP_SEC_NONE;
288+ }
289+ else if (secure == Secure::wpa)
290+ {
291+ secflags = NM_802_11_AP_SEC_KEY_MGMT_PSK;
292+ }
293+ else if (secure == Secure::wpa_enterprise)
294+ {
295+ secflags = NM_802_11_AP_SEC_KEY_MGMT_802_1X;
296+ }
297
298 auto& networkManager(dbusMock.networkManagerInterface());
299 auto reply = networkManager.AddAccessPoint(
300 device, id, ssid,
301- randomMac(),
302+ mac,
303 apMode == ApMode::adhoc ? NM_802_11_MODE_ADHOC : NM_802_11_MODE_INFRA,
304 0, 0, strength,
305- secure == Secure::secure ? NM_802_11_AP_SEC_KEY_MGMT_PSK : NM_802_11_AP_SEC_NONE);
306+ secflags);
307 reply.waitForFinished();
308 return reply;
309 }
310@@ -333,7 +369,8 @@
311 .pass_through_attribute(
312 "x-canonical-wifi-ap-strength-action",
313 shared_ptr<GVariant>(g_variant_new_byte(strength), &mh::gvariant_deleter))
314- .boolean_attribute("x-canonical-wifi-ap-is-secure", secure == Secure::secure)
315+ .boolean_attribute("x-canonical-wifi-ap-is-secure", secure != Secure::insecure)
316+ .boolean_attribute("x-canonical-wifi-ap-is-enterprise", secure == Secure::wpa_enterprise)
317 .boolean_attribute("x-canonical-wifi-ap-is-adhoc", apMode == ApMode::adhoc);
318 }
319
320
321=== modified file 'tests/integration/indicator-network-test-base.h'
322--- tests/integration/indicator-network-test-base.h 2015-07-08 08:49:46 +0000
323+++ tests/integration/indicator-network-test-base.h 2015-07-08 08:49:46 +0000
324@@ -63,8 +63,9 @@
325 public:
326 enum class Secure
327 {
328- secure,
329- insecure
330+ insecure,
331+ wpa,
332+ wpa_enterprise
333 };
334
335 enum class ApMode
336@@ -101,7 +102,7 @@
337 void disableWiFi();
338
339 QString createAccessPoint(const QString& id, const QString& ssid, const QString& device, uchar strength = 100,
340- Secure secure = Secure::secure, ApMode apMode = ApMode::infra);
341+ Secure secure = Secure::wpa, ApMode apMode = ApMode::infra, const QString& mac = randomMac());
342
343 void removeAccessPoint(const QString& device, const QString& ap);
344
345
346=== modified file 'tests/integration/test-indicator.cpp'
347--- tests/integration/test-indicator.cpp 2015-07-08 08:49:46 +0000
348+++ tests/integration/test-indicator.cpp 2015-07-08 08:49:46 +0000
349@@ -74,7 +74,7 @@
350 .item(mh::MenuItemMatcher()
351 .section()
352 .item(accessPoint("the ssid",
353- Secure::secure,
354+ Secure::wpa,
355 ApMode::infra,
356 ConnectionStatus::disconnected)
357 )
358@@ -103,7 +103,7 @@
359 .item(mh::MenuItemMatcher()
360 .section()
361 .item(accessPoint("the ssid",
362- Secure::secure,
363+ Secure::wpa,
364 ApMode::infra,
365 ConnectionStatus::connected)
366 )
367@@ -130,7 +130,7 @@
368 .item(mh::MenuItemMatcher()
369 .section()
370 .item(accessPoint("the ssid",
371- Secure::secure,
372+ Secure::wpa,
373 ApMode::infra,
374 ConnectionStatus::disconnected)
375 )
376@@ -160,7 +160,7 @@
377 .item(mh::MenuItemMatcher()
378 .section()
379 .item(accessPoint("the ssid",
380- Secure::secure,
381+ Secure::wpa,
382 ApMode::infra,
383 ConnectionStatus::connected)
384 )
385@@ -757,7 +757,7 @@
386
387 // add and connect to 1-bar secure AP
388 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
389- auto ap = createAccessPoint("0", "the ssid", device, 20, Secure::secure);
390+ auto ap = createAccessPoint("0", "the ssid", device, 20, Secure::wpa);
391 auto connection = createAccessPointConnection("0", "the ssid", device);
392 auto activeConnection = createActiveConnection("0", device, connection, ap);
393
394@@ -782,7 +782,7 @@
395 .item(mh::MenuItemMatcher()
396 .section()
397 .item(accessPoint("the ssid",
398- Secure::secure,
399+ Secure::wpa,
400 ApMode::infra,
401 ConnectionStatus::connected,
402 20)
403@@ -833,7 +833,7 @@
404 ).match());
405
406 // And we're back
407- ap = createAccessPoint("1", "the ssid", device, 20, Secure::secure);
408+ ap = createAccessPoint("1", "the ssid", device, 20, Secure::wpa);
409 connection = createAccessPointConnection("1", "the ssid", device);
410 activeConnection = createActiveConnection("1", device, connection, ap);
411 setGlobalConnectedState(NM_STATE_CONNECTED_GLOBAL);
412@@ -861,10 +861,10 @@
413
414 // add some APs (secure / unsecure / adhoc / varied strength)
415 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
416- auto ap1 = createAccessPoint("1", "NSD", device, 0, Secure::secure, ApMode::infra);
417- auto ap2 = createAccessPoint("2", "JDR", device, 20, Secure::secure, ApMode::adhoc);
418- auto ap3 = createAccessPoint("3", "DGN", device, 40, Secure::secure, ApMode::infra);
419- auto ap4 = createAccessPoint("4", "JDY", device, 60, Secure::secure, ApMode::adhoc);
420+ auto ap1 = createAccessPoint("1", "NSD", device, 0, Secure::wpa, ApMode::infra);
421+ auto ap2 = createAccessPoint("2", "JDR", device, 20, Secure::wpa, ApMode::adhoc);
422+ auto ap3 = createAccessPoint("3", "DGN", device, 40, Secure::wpa, ApMode::infra);
423+ auto ap4 = createAccessPoint("4", "JDY", device, 60, Secure::wpa, ApMode::adhoc);
424 auto ap5 = createAccessPoint("5", "SCE", device, 20, Secure::insecure, ApMode::infra);
425 auto ap6 = createAccessPoint("6", "ADS", device, 40, Secure::insecure, ApMode::adhoc);
426 auto ap7 = createAccessPoint("7", "CFT", device, 60, Secure::insecure, ApMode::infra);
427@@ -896,13 +896,13 @@
428 .item(wifiEnableSwitch(true))
429 .item(mh::MenuItemMatcher()
430 .section()
431- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::connected, 40))
432+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::connected, 40))
433 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
434 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 60))
435 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
436- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
437- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
438- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 0))
439+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 20))
440+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 60))
441+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 0))
442 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20))
443 )
444 ).match());
445@@ -1021,10 +1021,10 @@
446
447 // add some APs (secure / unsecure / adhoc / varied strength)
448 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
449- auto ap1 = createAccessPoint("1", "NSD", device, 0, Secure::secure, ApMode::infra);
450- auto ap2 = createAccessPoint("2", "JDR", device, 20, Secure::secure, ApMode::adhoc);
451- auto ap3 = createAccessPoint("3", "DGN", device, 40, Secure::secure, ApMode::infra);
452- auto ap4 = createAccessPoint("4", "JDY", device, 60, Secure::secure, ApMode::adhoc);
453+ auto ap1 = createAccessPoint("1", "NSD", device, 0, Secure::wpa, ApMode::infra);
454+ auto ap2 = createAccessPoint("2", "JDR", device, 20, Secure::wpa, ApMode::adhoc);
455+ auto ap3 = createAccessPoint("3", "DGN", device, 40, Secure::wpa, ApMode::infra);
456+ auto ap4 = createAccessPoint("4", "JDY", device, 60, Secure::wpa, ApMode::adhoc);
457 auto ap5 = createAccessPoint("5", "SCE", device, 20, Secure::insecure, ApMode::infra);
458 auto ap6 = createAccessPoint("6", "ADS", device, 40, Secure::insecure, ApMode::adhoc);
459 auto ap7 = createAccessPoint("7", "CFT", device, 60, Secure::insecure, ApMode::infra);
460@@ -1058,10 +1058,10 @@
461 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::connected, 80))
462 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
463 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 60))
464- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
465- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
466- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
467- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 0))
468+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
469+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 20))
470+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 60))
471+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 0))
472 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20))
473 )
474 ).match());
475@@ -1121,10 +1121,10 @@
476
477 // NOTE: every newly created access point increments AP index (see: AccessPointItem::Private::ConstructL())
478 // so here we need to start at index 1+8 as we've had 8 APs previously.
479- ap1 = createAccessPoint("9", "NSD", device, 0, Secure::secure, ApMode::infra);
480- ap2 = createAccessPoint("10", "JDR", device, 20, Secure::secure, ApMode::adhoc);
481- ap3 = createAccessPoint("11", "DGN", device, 40, Secure::secure, ApMode::infra);
482- ap4 = createAccessPoint("12", "JDY", device, 60, Secure::secure, ApMode::adhoc);
483+ ap1 = createAccessPoint("9", "NSD", device, 0, Secure::wpa, ApMode::infra);
484+ ap2 = createAccessPoint("10", "JDR", device, 20, Secure::wpa, ApMode::adhoc);
485+ ap3 = createAccessPoint("11", "DGN", device, 40, Secure::wpa, ApMode::infra);
486+ ap4 = createAccessPoint("12", "JDY", device, 60, Secure::wpa, ApMode::adhoc);
487 ap5 = createAccessPoint("13", "SCE", device, 20, Secure::insecure, ApMode::infra);
488 ap6 = createAccessPoint("14", "ADS", device, 40, Secure::insecure, ApMode::adhoc);
489 ap7 = createAccessPoint("15", "CFT", device, 60, Secure::insecure, ApMode::infra);
490@@ -1152,10 +1152,10 @@
491 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::connected, 80))
492 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
493 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 60))
494- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
495- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
496- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
497- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 0))
498+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
499+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 20))
500+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 60))
501+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 0))
502 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20))
503 )
504 ).match());
505@@ -1189,10 +1189,10 @@
506 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::connected, 80))
507 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
508 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 60))
509- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
510- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
511- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
512- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 0))
513+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
514+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 20))
515+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 60))
516+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 0))
517 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20))
518 )
519 ).match());
520@@ -1210,7 +1210,7 @@
521 ASSERT_NO_THROW(startIndicator());
522
523 // add a single AP
524- auto ap1 = createAccessPoint("1", "groupA", device, 40, Secure::secure, ApMode::infra);
525+ auto ap1 = createAccessPoint("1", "groupA", device, 40, Secure::wpa, ApMode::infra);
526
527 EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters())
528 .item(mh::MenuItemMatcher()
529@@ -1220,12 +1220,12 @@
530 .item(wifiEnableSwitch())
531 .item(mh::MenuItemMatcher()
532 .section()
533- .item(accessPoint("groupA", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
534+ .item(accessPoint("groupA", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
535 )
536 ).match());
537
538 // add a second AP with the same SSID
539- auto ap2 = createAccessPoint("2", "groupA", device, 60, Secure::secure, ApMode::infra);
540+ auto ap2 = createAccessPoint("2", "groupA", device, 60, Secure::wpa, ApMode::infra);
541
542 // check that we see a single AP with the higher strength
543 EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters())
544@@ -1236,7 +1236,7 @@
545 .item(wifiEnableSwitch())
546 .item(mh::MenuItemMatcher()
547 .section()
548- .item(accessPoint("groupA", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
549+ .item(accessPoint("groupA", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
550 )
551 ).match());
552
553@@ -1252,12 +1252,12 @@
554 .item(wifiEnableSwitch())
555 .item(mh::MenuItemMatcher()
556 .section()
557- .item(accessPoint("groupA", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 80))
558+ .item(accessPoint("groupA", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 80))
559 )
560 ).match());
561
562 // add another AP with a different SSID
563- auto ap3 = createAccessPoint("3", "groupB", device, 75, Secure::secure, ApMode::infra);
564+ auto ap3 = createAccessPoint("3", "groupB", device, 75, Secure::wpa, ApMode::infra);
565
566 // check that we see a single AP with the higher strength
567 EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters())
568@@ -1268,8 +1268,8 @@
569 .item(wifiEnableSwitch())
570 .item(mh::MenuItemMatcher()
571 .section()
572- .item(accessPoint("groupA", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 80))
573- .item(accessPoint("groupB", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 75))
574+ .item(accessPoint("groupA", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 80))
575+ .item(accessPoint("groupB", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 75))
576 )
577 ).match());
578
579@@ -1285,8 +1285,8 @@
580 .item(wifiEnableSwitch())
581 .item(mh::MenuItemMatcher()
582 .section()
583- .item(accessPoint("groupA", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
584- .item(accessPoint("groupB", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 75))
585+ .item(accessPoint("groupA", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
586+ .item(accessPoint("groupB", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 75))
587 )
588 ).match());
589 }
590@@ -1300,23 +1300,23 @@
591 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
592
593 // prepend a non-utf8 character to the end of AP 1's SSID
594- auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::secure, ApMode::infra);
595+ auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::wpa, ApMode::infra);
596 setNmProperty(ap1, NM_DBUS_INTERFACE_ACCESS_POINT, "Ssid", QByteArray(1, -1) + QByteArray("NSD"));
597
598 // append a non-utf8 character to the end of AP 2's SSID
599- auto ap2 = createAccessPoint("2", "DGN", device, 20, Secure::secure, ApMode::infra);
600+ auto ap2 = createAccessPoint("2", "DGN", device, 20, Secure::wpa, ApMode::infra);
601 setNmProperty(ap2, NM_DBUS_INTERFACE_ACCESS_POINT, "Ssid", QByteArray("DGN") + QByteArray(1, -1));
602
603 // insert a non-utf8 character into AP 3's SSID
604- auto ap3 = createAccessPoint("3", "JDY", device, 20, Secure::secure, ApMode::infra);
605+ auto ap3 = createAccessPoint("3", "JDY", device, 20, Secure::wpa, ApMode::infra);
606 setNmProperty(ap3, NM_DBUS_INTERFACE_ACCESS_POINT, "Ssid", QByteArray("JD") + QByteArray(1, -1) + QByteArray("Y"));
607
608 // use only non-utf8 characters for AP 4's SSID
609- auto ap4 = createAccessPoint("4", "---", device, 20, Secure::secure, ApMode::infra);
610+ auto ap4 = createAccessPoint("4", "---", device, 20, Secure::wpa, ApMode::infra);
611 setNmProperty(ap4, NM_DBUS_INTERFACE_ACCESS_POINT, "Ssid", QByteArray(4, -1));
612
613 // leave AP 5's SSID blank
614- auto ap5 = createAccessPoint("5", "", device, 20, Secure::secure, ApMode::infra);
615+ auto ap5 = createAccessPoint("5", "", device, 20, Secure::wpa, ApMode::infra);
616
617 // start the indicator
618 ASSERT_NO_THROW(startIndicator());
619@@ -1334,10 +1334,10 @@
620 )
621 .item(wifiEnableSwitch(true))
622 .item(mh::MenuItemMatcher()
623- .item(accessPoint("DGN�", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
624- .item(accessPoint("JD�Y", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
625- .item(accessPoint("�NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
626- .item(accessPoint("����", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
627+ .item(accessPoint("DGN�", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
628+ .item(accessPoint("JD�Y", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
629+ .item(accessPoint("�NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
630+ .item(accessPoint("����", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
631 )
632 ).match());
633 }
634@@ -1394,10 +1394,10 @@
635 )
636 ).match());
637
638- auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::secure, ApMode::infra);
639- auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::secure, ApMode::adhoc);
640- auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::secure, ApMode::infra);
641- auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::secure, ApMode::adhoc);
642+ auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::wpa, ApMode::infra);
643+ auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::wpa, ApMode::adhoc);
644+ auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::wpa, ApMode::infra);
645+ auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::wpa, ApMode::adhoc);
646 auto ap5 = createAccessPoint("5", "SCE", device, 0, Secure::insecure, ApMode::infra);
647 auto ap6 = createAccessPoint("6", "ADS", device, 20, Secure::insecure, ApMode::adhoc);
648 auto ap7 = createAccessPoint("7", "CFT", device, 40, Secure::insecure, ApMode::infra);
649@@ -1420,11 +1420,11 @@
650 .item(mh::MenuItemMatcher()
651 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
652 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
653- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
654+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
655 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
656- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
657- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
658- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
659+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
660+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
661+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
662 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 0))
663 )
664 ).match());
665@@ -1445,11 +1445,11 @@
666 .item(mh::MenuItemMatcher()
667 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::connected, 20))
668 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
669- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
670+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
671 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
672- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
673- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
674- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
675+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
676+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
677+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
678 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 0))
679 )
680 ).match());
681@@ -1565,10 +1565,10 @@
682
683 // add some APs (secure / unsecure / adhoc / varied strength)
684 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
685- auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::secure, ApMode::infra);
686- auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::secure, ApMode::adhoc);
687- auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::secure, ApMode::infra);
688- auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::secure, ApMode::adhoc);
689+ auto ap1 = createAccessPoint("1", "NSD", device, 20, Secure::wpa, ApMode::infra);
690+ auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::wpa, ApMode::adhoc);
691+ auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::wpa, ApMode::infra);
692+ auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::wpa, ApMode::adhoc);
693 auto ap5 = createAccessPoint("5", "SCE", device, 0, Secure::insecure, ApMode::infra);
694 auto ap6 = createAccessPoint("6", "ADS", device, 20, Secure::insecure, ApMode::adhoc);
695 auto ap7 = createAccessPoint("7", "CFT", device, 40, Secure::insecure, ApMode::infra);
696@@ -1594,13 +1594,13 @@
697 )
698 .item(wifiEnableSwitch(true))
699 .item(mh::MenuItemMatcher()
700- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::connected, 80))
701+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::connected, 80))
702 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
703 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
704- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
705+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
706 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
707- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
708- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
709+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
710+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
711 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 0))
712 )
713 ).match());
714@@ -1624,11 +1624,11 @@
715 .item(mh::MenuItemMatcher()
716 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::connected, 40))
717 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
718- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
719+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
720 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
721- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
722- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
723- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
724+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
725+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
726+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
727 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 0))
728 )
729 ).match());
730@@ -1681,10 +1681,10 @@
731
732 // NOTE: every newly created access point increments AP index (see: AccessPointItem::Private::ConstructL())
733 // so here we need to start at index 1+8 as we've had 8 APs previously.
734- ap1 = createAccessPoint("9", "NSD", device, 20, Secure::secure, ApMode::infra);
735- ap2 = createAccessPoint("10", "JDR", device, 40, Secure::secure, ApMode::adhoc);
736- ap3 = createAccessPoint("11", "DGN", device, 60, Secure::secure, ApMode::infra);
737- ap4 = createAccessPoint("12", "JDY", device, 80, Secure::secure, ApMode::adhoc);
738+ ap1 = createAccessPoint("9", "NSD", device, 20, Secure::wpa, ApMode::infra);
739+ ap2 = createAccessPoint("10", "JDR", device, 40, Secure::wpa, ApMode::adhoc);
740+ ap3 = createAccessPoint("11", "DGN", device, 60, Secure::wpa, ApMode::infra);
741+ ap4 = createAccessPoint("12", "JDY", device, 80, Secure::wpa, ApMode::adhoc);
742 ap5 = createAccessPoint("13", "SCE", device, 0, Secure::insecure, ApMode::infra);
743 ap6 = createAccessPoint("14", "ADS", device, 20, Secure::insecure, ApMode::adhoc);
744 ap7 = createAccessPoint("15", "CFT", device, 40, Secure::insecure, ApMode::infra);
745@@ -1703,13 +1703,13 @@
746 .mode(mh::MenuItemMatcher::Mode::starts_with)
747 .item(flightModeSwitch(false)).item(mh::MenuItemMatcher()).item(wifiEnableSwitch(true))
748 .item(mh::MenuItemMatcher()
749- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::connected, 80))
750+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::connected, 80))
751 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
752 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
753- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
754+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
755 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
756- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
757- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 20))
758+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
759+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 20))
760 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 0))
761 )
762 ).match());
763@@ -1725,10 +1725,10 @@
764
765 // add some APs (secure / unsecure / adhoc / varied strength)
766 auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
767- auto ap1 = createAccessPoint("1", "NSD", device, 40, Secure::secure, ApMode::infra);
768- auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::secure, ApMode::adhoc);
769- auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::secure, ApMode::infra);
770- auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::secure, ApMode::adhoc);
771+ auto ap1 = createAccessPoint("1", "NSD", device, 40, Secure::wpa, ApMode::infra);
772+ auto ap2 = createAccessPoint("2", "JDR", device, 40, Secure::wpa, ApMode::adhoc);
773+ auto ap3 = createAccessPoint("3", "DGN", device, 60, Secure::wpa, ApMode::infra);
774+ auto ap4 = createAccessPoint("4", "JDY", device, 80, Secure::wpa, ApMode::adhoc);
775 auto ap5 = createAccessPoint("5", "SCE", device, 20, Secure::insecure, ApMode::infra);
776 auto ap6 = createAccessPoint("6", "ADS", device, 20, Secure::insecure, ApMode::adhoc);
777 auto ap7 = createAccessPoint("7", "CFT", device, 40, Secure::insecure, ApMode::infra);
778@@ -1753,11 +1753,11 @@
779 .item(mh::MenuItemMatcher()
780 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
781 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
782- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
783+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
784 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
785- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
786- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
787- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
788+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
789+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
790+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
791 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20)
792 .activate())
793 )
794@@ -1782,11 +1782,11 @@
795 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::connected, 20))
796 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
797 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
798- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
799+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
800 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
801- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
802- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
803- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40)
804+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
805+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
806+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40)
807 .activate())
808 )
809 ).match());
810@@ -1808,13 +1808,13 @@
811 )
812 .item(wifiEnableSwitch(true))
813 .item(mh::MenuItemMatcher()
814- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::connected, 40))
815+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::connected, 40))
816 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
817 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
818- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
819+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
820 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
821- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
822- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
823+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
824+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
825 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 20)
826 .activate())
827 )
828@@ -1839,13 +1839,70 @@
829 .item(accessPoint("SCE", Secure::insecure, ApMode::infra, ConnectionStatus::connected, 20))
830 .item(accessPoint("ADS", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 20))
831 .item(accessPoint("CFT", Secure::insecure, ApMode::infra, ConnectionStatus::disconnected, 40))
832- .item(accessPoint("DGN", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 60))
833+ .item(accessPoint("DGN", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 60))
834 .item(accessPoint("GDF", Secure::insecure, ApMode::adhoc, ConnectionStatus::disconnected, 60))
835- .item(accessPoint("JDR", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 40))
836- .item(accessPoint("JDY", Secure::secure, ApMode::adhoc, ConnectionStatus::disconnected, 80))
837- .item(accessPoint("NSD", Secure::secure, ApMode::infra, ConnectionStatus::disconnected, 40))
838- )
839- ).match());
840+ .item(accessPoint("JDR", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 40))
841+ .item(accessPoint("JDY", Secure::wpa, ApMode::adhoc, ConnectionStatus::disconnected, 80))
842+ .item(accessPoint("NSD", Secure::wpa, ApMode::infra, ConnectionStatus::disconnected, 40))
843+ )
844+ ).match());
845+}
846+
847+TEST_F(TestIndicator, EnterpriseWifiConnect)
848+{
849+ // set wifi on, flight mode off
850+ setGlobalConnectedState(NM_STATE_DISCONNECTED);
851+
852+ // set no sim
853+ setSimManagerProperty(firstModem(), "Present", false);
854+
855+ // add some APs (secure / unsecure / adhoc / varied strength)
856+ auto device = createWiFiDevice(NM_DEVICE_STATE_ACTIVATED);
857+ auto ap1 = createAccessPoint("1", "ABC", device, 80, Secure::wpa_enterprise, ApMode::infra, "11:22:33:44:55:66");
858+
859+ // start the indicator
860+ ASSERT_NO_THROW(startIndicator());
861+
862+ // interface to the URL dispatcher
863+ auto& urlDispatcher = dbusMock.mockInterface(
864+ "com.canonical.URLDispatcher",
865+ "/com/canonical/URLDispatcher",
866+ "com.canonical.URLDispatcher",
867+ QDBusConnection::SessionBus);
868+
869+ // Wait for method calls on the URL dispatcher
870+ QSignalSpy urlDispatcherSpy(&urlDispatcher, SIGNAL(MethodCalled(const QString &, const QVariantList &)));
871+
872+ EXPECT_MATCHRESULT(mh::MenuMatcher(phoneParameters())
873+ .item(mh::MenuItemMatcher()
874+ .state_icons({"nm-no-connection"})
875+ .mode(mh::MenuItemMatcher::Mode::starts_with)
876+ .item(flightModeSwitch(false))
877+ .item(mh::MenuItemMatcher()
878+ .item(modemInfo("", "No SIM", "no-simcard"))
879+ .item(cellularSettings())
880+ )
881+ .item(wifiEnableSwitch(true))
882+ .item(mh::MenuItemMatcher()
883+ .item(accessPoint("ABC", Secure::wpa_enterprise, ApMode::infra, ConnectionStatus::disconnected, 80).activate())
884+ )
885+ ).match());
886+
887+ if (urlDispatcherSpy.isEmpty())
888+ {
889+ ASSERT_TRUE(urlDispatcherSpy.wait());
890+ }
891+
892+ ASSERT_FALSE(urlDispatcherSpy.isEmpty());
893+ EXPECT_EQ(urlDispatcherSpy.first(),
894+ QVariantList()
895+ << QVariant("DispatchURL")
896+ << QVariant(
897+ QVariantList()
898+ << QVariant("settings:///system/wifi?ssid=ABC&bssid=11:22:33:44:55:66")
899+ << QVariant("")
900+ )
901+ );
902 }
903
904 TEST_F(TestIndicator, CellDataEnabled)
905@@ -1982,7 +2039,7 @@
906
907 // Enable WiFi and connect to it
908 enableWiFi();
909- auto ap1 = createAccessPoint("1", "ABC", device, 20, Secure::secure, ApMode::infra);
910+ auto ap1 = createAccessPoint("1", "ABC", device, 20, Secure::wpa, ApMode::infra);
911 auto connection = createAccessPointConnection("1", "ABC", device);
912 setNmProperty(device, NM_DBUS_INTERFACE_DEVICE, "State", QVariant::fromValue(uint(NM_DEVICE_STATE_ACTIVATED)));
913 auto active_connection = createActiveConnection("1", device, connection, ap1);
914@@ -2003,7 +2060,7 @@
915 .item(wifiEnableSwitch(true))
916 .item(mh::MenuItemMatcher()
917 .item(accessPoint("ABC",
918- Secure::secure,
919+ Secure::wpa,
920 ApMode::infra,
921 ConnectionStatus::connected,
922 20)
923
924=== modified file 'tests/unit/indicator/menuitems/test-access-point-item.cpp'
925--- tests/unit/indicator/menuitems/test-access-point-item.cpp 2015-04-14 11:20:17 +0000
926+++ tests/unit/indicator/menuitems/test-access-point-item.cpp 2015-07-08 08:49:46 +0000
927@@ -40,12 +40,16 @@
928 public:
929 MOCK_CONST_METHOD0(ssid, QString());
930
931+ MOCK_CONST_METHOD0(bssid, QString());
932+
933 MOCK_CONST_METHOD0(raw_ssid, QByteArray());
934
935 MOCK_CONST_METHOD0(object_path, QDBusObjectPath());
936
937 MOCK_CONST_METHOD0(secured, bool());
938
939+ MOCK_CONST_METHOD0(enterprise, bool());
940+
941 MOCK_CONST_METHOD0(adhoc, bool());
942
943 MOCK_CONST_METHOD0(strength, double());

Subscribers

People subscribed via source and target branches