@@ -21,6 +21,7 @@ import MeeGo.QOfono 0.2
21import QMenuModel 0.1
21import QMenuModel 0.1
22import Ubuntu.Components 1.3
22import Ubuntu.Components 1.3
23import Ubuntu.SystemSettings.SecurityPrivacy 1.0
23import Ubuntu.SystemSettings.SecurityPrivacy 1.0
24+import Ubuntu.SystemSettings.TimeDate 1.0
24import Unity.Test 0.1 as UT
25import Unity.Test 0.1 as UT
25import Wizard 0.1
26import Wizard 0.1
26import "../../../qml/Wizard"
27import "../../../qml/Wizard"
@@ -39,7 +40,6 @@ Item {
40 id: wizard
41 id: wizard
41 anchors.fill: parent
42 anchors.fill: parent
42− background: Qt.resolvedUrl("../../../qml/graphics/phone_background.jpg")
44 Component.onDestruction: {
44 Component.onDestruction: {
45 wizardLoader.itemDestroyed = true;
45 wizardLoader.itemDestroyed = true;
@@ -51,7 +51,7 @@ Item {
51 SignalSpy {
51 SignalSpy {
52 id: updateSessionLanguageSpy
52 id: updateSessionLanguageSpy
53 target: System
53 target: System
54− signalName: "updateSessionLanguageCalled"
54+ signalName: "updateSessionLocaleCalled"
57 SignalSpy {
57 SignalSpy {
@@ -69,6 +69,11 @@ Item {
69 signalName: "activated"
69 signalName: "activated"
74+ signalName: "timeZoneChangedCalled"
72 function setup() {
77 function setup() {
73 AccountsService.hereEnabled = false;
78 AccountsService.hereEnabled = false;
74 AccountsService.hereLicensePath = Qt.resolvedUrl("licenses");
79 AccountsService.hereLicensePath = Qt.resolvedUrl("licenses");
@@ -82,6 +87,7 @@ Item {
82 setSecuritySpy.clear();
87 setSecuritySpy.clear();
83 activateLocationSpy.clear();
88 activateLocationSpy.clear();
84 activateGPSSpy.clear();
89 activateGPSSpy.clear();
86 ActionData.data = {
92 ActionData.data = {
87 "location-detection-enabled": {
93 "location-detection-enabled": {
@@ -180,11 +186,6 @@ Item {
180 tap(findChild(page, "forwardButton"));
186 tap(findChild(page, "forwardButton"));
183− page = waitForPage("passwdPage");
184− if (name === page.objectName) return page;
185− tap(findChild(page, "passwdDelegate0"));
186− tap(findChild(page, "forwardButton"));
188 page = waitForPage("wifiPage");
189 page = waitForPage("wifiPage");
189 if (name === page.objectName) return page;
190 if (name === page.objectName) return page;
190 tap(findChild(page, "forwardButton"));
191 tap(findChild(page, "forwardButton"));
@@ -195,6 +196,31 @@ Item {
195 tap(findChild(page, "forwardButton"));
196 tap(findChild(page, "forwardButton"));
199+ page = waitForPage("tzPage");
200+ if (name === page.objectName) return page;
201+ var tzList = findChild(page, "tzList");
203+ waitForRendering(tzList);
204+ page.selectedTimeZone = "Pacific/Honolulu";
205+ tap(findChild(page, "forwardButton"));
207+ page = waitForPage("accountPage");
208+ if (name === page.objectName) return page;
209+ tap(findChild(page, "nameInput"));
210+ typeString("foobar");
211+ tap(findChild(page, "passInput"));
212+ typeString("12345678");
213+ var pass2Input = findChild(page, "pass2Input");
214+ // give it a bit of time to finish the scroll-into-view animation
215+ tryCompareFunction(function() { return pass2Input !== null; }, true);
217+ typeString("12345678");
218+ tap(findChild(page, "forwardButton"));
220+ page = waitForPage("passwdPage");
221+ if (name === page.objectName) return page;
222+ tap(findChild(page, "forwardButton"));
198 if (!skipReporting) {
224 if (!skipReporting) {
199 page = waitForPage("reportingPage");
225 page = waitForPage("reportingPage");
200 if (name === page.objectName) return page;
226 if (name === page.objectName) return page;
@@ -203,7 +229,8 @@ Item {
204 page = waitForPage("finishedPage");
230 page = waitForPage("finishedPage");
205 if (name === page.objectName) return page;
231 if (name === page.objectName) return page;
232+ waitUntilTransitionsEnd(page);
206− tap(findChild(page, "forwardButton"));
233+ tap(findChild(page, "finishButton"));
208 tryCompare(wizard, "shown", false);
235 tryCompare(wizard, "shown", false);
209 compare(name, null);
236 compare(name, null);
@@ -212,100 +239,43 @@ Item {
213 function test_languageChange() {
240 function test_languageChange() {
214 var page = goToPage("languagePage");
241 var page = goToPage("languagePage");
215− tap(findChild(page, "languageCombo"));
242+ tap(findChild(page, "languageDelegate1")); // should invoke "fr" lang
216− waitForRendering(findChild(page, "languageDelegate1"));
243+
218− // For some reason, the delegate *sometimes* (like 1 in 10 maybe)
219− // needs more time before it can process a tap() call. I can't
220− // find a rhyme or reason, its properties all seem the same in
221− // cases where it works and does not. This failure to receive a
222− // tap() call below does *not* happen when running in xvfb, so
223− // jenkins is unaffected (and we don't have to worry about 100 not
224− // being enough time in its slow environment). This wait() call is
225− // just to help local runs not trip up.
227− tap(findChild(page, "languageDelegate1"));
229− tryCompare(i18n, "language", "fr");
244+ tryCompare(i18n, "language", "fr_FR");
230 tap(findChild(page, "forwardButton"));
245 tap(findChild(page, "forwardButton"));
231 tryCompare(updateSessionLanguageSpy, "count", 1);
246 tryCompare(updateSessionLanguageSpy, "count", 1);
232− compare(updateSessionLanguageSpy.signalArguments[0][0], "fr");
247+ compare(updateSessionLanguageSpy.signalArguments[0][0], "fr_FR");
235 function test_languageNoChange() {
250 function test_languageNoChange() {
236− goToPage("simPage"); // one past language page
251+ var page = goToPage("languagePage");
252+ tap(findChild(page, "forwardButton"));
237 compare(updateSessionLanguageSpy.count, 0);
253 compare(updateSessionLanguageSpy.count, 0);
240 function test_simUnavailableSkip() {
256 function test_simUnavailableSkip() {
241 MockQOfono.available = false;
257 MockQOfono.available = false;
242− goToPage("passwdPage", true);
258+ goToPage("wifiPage", true);
245 function test_simNoModemsSkip() {
261 function test_simNoModemsSkip() {
246 MockQOfono.setModems([], [], []);
262 MockQOfono.setModems([], [], []);
247− goToPage("passwdPage", true);
263+ goToPage("wifiPage", true);
250 function test_simFirstSkip() {
266 function test_simFirstSkip() {
251 MockQOfono.setModems(["a", "b"], [true, false], []);
267 MockQOfono.setModems(["a", "b"], [true, false], []);
252− goToPage("passwdPage", true);
268+ goToPage("wifiPage", true);
255 function test_simSecondSkip() {
271 function test_simSecondSkip() {
256 MockQOfono.setModems(["a", "b"], [false, true], []);
272 MockQOfono.setModems(["a", "b"], [false, true], []);
257− goToPage("passwdPage", true);
273+ goToPage("wifiPage", true);
260 function test_simBothSkip() {
276 function test_simBothSkip() {
261 MockQOfono.setModems(["a", "b"], [true, true], []);
277 MockQOfono.setModems(["a", "b"], [true, true], []);
262− goToPage("passwdPage", true);
278+ goToPage("wifiPage", true);
265− function test_simWaitOnManagerAsync() {
266− MockQOfono.ready = false;
267− MockQOfono.setModems(["a"], [false], []);
269− // Go to SIM page, which will be waiting for skip to be valid
270− var page = goToPage("languagePage");
271− tap(findChild(page, "forwardButton"));
272− verifyPageIsBlocked("simPage");
274− // Now release QOfono from blocking the page
275− MockQOfono.ready = true;
277− waitForPage("simPage");
280− function test_simWaitOnCardAsync() {
281− MockQOfono.setModems(["a"], [false], [false]);
283− // Go to SIM page, which will be waiting for skip to be valid
284− var page = goToPage("languagePage");
285− tap(findChild(page, "forwardButton"));
286− verifyPageIsBlocked("simPage");
288− // Now release QOfono from blocking the page
289− MockQOfono.setModems(["a"], [false], [true]);
291− waitForPage("simPage");
294− function test_simWaitTimeout() {
295− MockQOfono.setModems(["a"], [false], [false]);
297− // Go to SIM page, which will be waiting for skip to be valid
298− var page = goToPage("languagePage");
299− tap(findChild(page, "forwardButton"));
300− verifyPageIsBlocked("simPage");
302− var timeout = findInvisibleChild(wizard, "timeout");
303− timeout.interval = 100; // reduce our delay
305− // Now just wait for timeout
306− compare(timeout.running, true);
307− waitForPage("passwdPage");
308− compare(timeout.running, false);
311 function enterPasscode(passcode) {
281 function enterPasscode(passcode) {
@@ -332,33 +302,32 @@ Item {
333 function test_passwdPasscode() {
303 function test_passwdPasscode() {
334 var page = goToPage("passwdPage");
304 var page = goToPage("passwdPage");
335−
305+ tap(findChild(page, "passwdDelegate2")); // passcode option
336 tap(findChild(page, "forwardButton"));
306 tap(findChild(page, "forwardButton"));
337− page = waitForPage("passwdSetPage");
307+ page = waitForPage("passcodeSetPage");
339 enterPasscode("1111");
309 enterPasscode("1111");
340− page = waitForPage("passwdConfirmPage");
310+ page = waitForPage("passcodeConfirmPage");
342 // make sure we go back to 'set' page not 'type' page
312 // make sure we go back to 'set' page not 'type' page
343 tap(findChild(page, "backButton"));
313 tap(findChild(page, "backButton"));
344− page = waitForPage("passwdSetPage");
314+ page = waitForPage("passcodeSetPage");
346 enterPasscode("1111");
316 enterPasscode("1111");
347− page = waitForPage("passwdConfirmPage");
317+ page = waitForPage("passcodeConfirmPage");
349 enterPasscode("1112");
319 enterPasscode("1112");
350 var error = findChild(page, "wrongNoticeLabel");
320 var error = findChild(page, "wrongNoticeLabel");
351 tryCompareFunction(function() { return error.text !== ""; }, true);
321 tryCompareFunction(function() { return error.text !== ""; }, true);
353 enterPasscode("1111");
323 enterPasscode("1111");
354− page = waitForPage("wifiPage");
356 // now finish up
325 // now finish up
357− tap(findChild(page, "forwardButton"));
358− page = waitForPage("locationPage");
326+ page = waitForPage("reportingPage");
359 tap(findChild(page, "forwardButton"));
327 tap(findChild(page, "forwardButton"));
360 page = waitForPage("finishedPage");
328 page = waitForPage("finishedPage");
329+ waitUntilTransitionsEnd(page);
361− tap(findChild(page, "forwardButton"));
330+ tap(findChild(page, "finishButton"));
363 tryCompare(setSecuritySpy, "count", 1);
332 tryCompare(setSecuritySpy, "count", 1);
364 compare(setSecuritySpy.signalArguments[0][0], "");
333 compare(setSecuritySpy.signalArguments[0][0], "");
@@ -368,96 +337,85 @@ Item {
369 function test_passwdPassphrase() {
338 function test_passwdPassphrase() {
370 var page = goToPage("passwdPage");
339 var page = goToPage("passwdPage");
371− tap(findChild(page, "passwdDelegate2"));
340+ tap(findChild(page, "passwdDelegate1")); // password option
373 tap(findChild(page, "forwardButton"));
341 tap(findChild(page, "forwardButton"));
374 page = waitForPage("passwdSetPage");
342 page = waitForPage("passwdSetPage");
344+ var passwdField = findChild(page, "passwordField");
345+ verify(passwdField);
376 typeString("aaa");
347 typeString("aaa");
377− var continueButton = findChild(page, "forwardButton");
348+ var continueButton = findChild(page, "okButton");
378− tryCompare(continueButton.item, "enabled", false);
349+ tryCompare(continueButton, "enabled", false);
379− keyClick(Qt.Key_Enter);
380− var error = findChild(page, "wrongNoticeLabel");
381− tryCompareFunction(function() { return error.text !== ""; }, true);
352+ passwdField.selectAll(); // overwrite the text
383− typeString("aaaa");
353+ typeString("12345678");
384 tap(continueButton);
354 tap(continueButton);
385− page = waitForPage("passwdConfirmPage");
355+ wait(200);
387 // make sure we go back to 'set' page not 'type' page
357 // make sure we go back to 'set' page not 'type' page
388− var back = findChild(page, "backButton");
358+ var back = findChild(page, "cancelButton");
389 tap(back);
359 tap(back);
390− page = waitForPage("passwdSetPage");
360+ wait(200);
393− keyClick(Qt.Key_Enter);
394− page = waitForPage("passwdConfirmPage");
396− continueButton = findChild(page, "forwardButton");
362+ passwdField = findChild(page, "passwordField");
363+ tryCompareFunction(function() {return !!passwdField}, true);
397 typeString("aaab");
365 typeString("aaab");
367+ continueButton = findChild(page, "okButton");
398− tryCompare(continueButton.item, "enabled", false);
368+ tryCompare(continueButton, "enabled", false);
399− keyClick(Qt.Key_Enter);
400− var error = findChild(page, "wrongNoticeLabel");
369+ var error = findChild(page, "infoLabel");
401 tryCompareFunction(function() { return error.text !== ""; }, true);
370 tryCompareFunction(function() { return error.text !== ""; }, true);
373+ passwdField.selectAll(); // overwrite the text
374+ typeString("12345678");
375+ tap(continueButton);
379+ passwdField.selectAll(); // overwrite the text
403− typeString("aaaa");
380+ typeString("12345678");
404 tap(continueButton);
381 tap(continueButton);
405− page = waitForPage("wifiPage");
407 // now finish up
383 // now finish up
408− tap(findChild(page, "forwardButton"));
409− page = waitForPage("locationPage");
384+ page = waitForPage("reportingPage");
410 tap(findChild(page, "forwardButton"));
385 tap(findChild(page, "forwardButton"));
411 page = waitForPage("finishedPage");
386 page = waitForPage("finishedPage");
387+ waitUntilTransitionsEnd(page);
412− tap(findChild(page, "forwardButton"));
388+ tap(findChild(page, "finishButton"));
414 tryCompare(setSecuritySpy, "count", 1);
390 tryCompare(setSecuritySpy, "count", 1);
415 compare(setSecuritySpy.signalArguments[0][0], "");
391 compare(setSecuritySpy.signalArguments[0][0], "");
416− compare(setSecuritySpy.signalArguments[0][1], "aaaa");
392+ compare(setSecuritySpy.signalArguments[0][1], "12345678");
417 compare(setSecuritySpy.signalArguments[0][2], UbuntuSecurityPrivacyPanel.Passphrase);
393 compare(setSecuritySpy.signalArguments[0][2], UbuntuSecurityPrivacyPanel.Passphrase);
420 function test_passwdSwipe() {
396 function test_passwdSwipe() {
421− goToPage(null, false, false, true);
397+ var page = goToPage("passwdPage");
422−
398+ tap(findChild(page, "passwdDelegate3")); // swipe option
423− tryCompare(setSecuritySpy, "count", 1);
424− compare(setSecuritySpy.signalArguments[0][0], "");
425− compare(setSecuritySpy.signalArguments[0][1], "");
426− compare(setSecuritySpy.signalArguments[0][2], UbuntuSecurityPrivacyPanel.Swipe);
429− function test_locationSkipNoPath() {
430− AccountsService.hereLicensePath = "";
431− goToPage("finishedPage", false, true, true);
434− function test_locationSkipNoFiles() {
435− AccountsService.hereLicensePath = Qt.resolvedUrl("nolicenses");
436− goToPage("finishedPage", false, true, true);
439− function test_locationWaitOnPath() {
440− AccountsService.hereLicensePath = " "; // means we're still getting the path from dbus
442− var page = goToPage("wifiPage");
444− var pages = findChild(wizard, "wizardPages");
400+ // now finish up
445− var stack = findChild(pages, "pageStack");
446 tap(findChild(page, "forwardButton"));
401 tap(findChild(page, "forwardButton"));
447− // don't simply call tryCompare here, because stack.currentPage will be swapped out itself
402+ page = waitForPage("reportingPage");
448− tryCompareFunction(function() { return stack.currentPage.objectName; }, "locationPage");
403+ tap(findChild(page, "forwardButton"));
449− compare(stack.currentPage.enabled, false);
404+ page = waitForPage("finishedPage");
450− compare(stack.currentPage.skipValid, false);
405+ waitUntilTransitionsEnd(page);
406+ tap(findChild(page, "finishButton"));
452− AccountsService.hereLicensePath = "";
408+ tryCompare(setSecuritySpy, "count", 1);
453− waitForPage("finishedPage", false, false, true);
409+ //compare(setSecuritySpy.signalArguments[0][0], ""); // FIXME the swipe method collides with the account password
410+ //compare(setSecuritySpy.signalArguments[0][1], "");
411+ compare(setSecuritySpy.signalArguments[0][2], UbuntuSecurityPrivacyPanel.Swipe);
456 function test_locationGpsOnly() {
414 function test_locationGpsOnly() {
457 var page = goToPage("locationPage");
415 var page = goToPage("locationPage");
458− var gpsCheck = findChild(page, "gpsCheck");
416+ var gpsCheck = findChild(page, "gpsCheckLabel");
459− var hereCheck = findChild(page, "hereCheck");
417+ var hereCheck = findChild(page, "hereCheckLabel");
460− var nopeCheck = findChild(page, "nopeCheck");
418+ var nopeCheck = findChild(page, "nopeCheckLabel");
462 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
420 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
463 activateLocationSpy.target = locationActionGroup.location;
421 activateLocationSpy.target = locationActionGroup.location;
@@ -476,9 +434,9 @@ Item {
477 function test_locationNope() {
435 function test_locationNope() {
478 var page = goToPage("locationPage");
436 var page = goToPage("locationPage");
479− var gpsCheck = findChild(page, "gpsCheck");
437+ var gpsCheck = findChild(page, "gpsCheckLabel");
480− var hereCheck = findChild(page, "hereCheck");
438+ var hereCheck = findChild(page, "hereCheckLabel");
481− var nopeCheck = findChild(page, "nopeCheck");
439+ var nopeCheck = findChild(page, "nopeCheckLabel");
483 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
441 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
484 activateLocationSpy.target = locationActionGroup.location;
442 activateLocationSpy.target = locationActionGroup.location;
@@ -491,15 +449,15 @@ Item {
492 tap(findChild(page, "forwardButton"));
450 tap(findChild(page, "forwardButton"));
493 tryCompare(AccountsService, "hereEnabled", false);
451 tryCompare(AccountsService, "hereEnabled", false);
494− tryCompare(activateLocationSpy, "count", 0)
452+ tryCompare(activateLocationSpy, "count", 0);
495− tryCompare(activateGPSSpy, "count", 0)
453+ tryCompare(activateGPSSpy, "count", 0);
498 function test_locationHere() {
456 function test_locationHere() {
499 var page = goToPage("locationPage");
457 var page = goToPage("locationPage");
500− var gpsCheck = findChild(page, "gpsCheck");
458+ var gpsCheck = findChild(page, "gpsCheckLabel");
501− var hereCheck = findChild(page, "hereCheck");
459+ var hereCheck = findChild(page, "hereCheckLabel");
502− var nopeCheck = findChild(page, "nopeCheck");
460+ var nopeCheck = findChild(page, "nopeCheckLabel");
504 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
462 var locationActionGroup = findInvisibleChild(page, "locationActionGroup");
505 activateLocationSpy.target = locationActionGroup.location;
463 activateLocationSpy.target = locationActionGroup.location;
@@ -512,68 +470,81 @@ Item {
513 tap(findChild(page, "forwardButton"));
471 tap(findChild(page, "forwardButton"));
514 tryCompare(AccountsService, "hereEnabled", true);
472 tryCompare(AccountsService, "hereEnabled", true);
515− tryCompare(activateLocationSpy, "count", 1)
473+ tryCompare(activateLocationSpy, "count", 1);
516− tryCompare(activateGPSSpy, "count", 1)
474+ tryCompare(activateGPSSpy, "count", 1);
519− function test_locationHereTerms() {
477+ function test_timezonePage() {
520− var page = goToPage("locationPage");
478+ var page = goToPage("tzPage");
480+ timezoneSpy.target = page.tdModule;
522− var link = findChild(page, "hereTermsLink");
482+ var tzFilter = findChild(page, "tzFilter");
485+ typeString("London");
524− // Test our language lookup code a bit
487+ var tzList = findChild(page, "tzList");
526− i18n.language = "fr_FR.UTF-8";
490+ // test filtering works and returns some results
527− link.linkActivated("not-used");
491+ tryCompareFunction(function() { return tzList.count > 0; }, true);
528− page = waitForPage("hereTermsPage");
529− tryCompare(findChild(page, "termsLabel"), "text", "fr_FR\n");
530− tap(findChild(page, "backButton"));
531− waitForPage("locationPage");
533− i18n.language = "fr_CA";
493+ // just tap the first one
534− link.linkActivated("not-used");
535− page = waitForPage("hereTermsPage");
536− tryCompare(findChild(page, "termsLabel"), "text", "fr_CA\n");
537− tap(findChild(page, "backButton"));
494+ tap(findChild(page, "tz0"));
538− waitForPage("locationPage");
540− i18n.language = "fr_US";
496+ // go next and verify the (mock) signal got fired
541− link.linkActivated("not-used");
542− page = waitForPage("hereTermsPage");
543− tryCompare(findChild(page, "termsLabel"), "text", "fr_FR\n");
544− tap(findChild(page, "backButton"));
497+ tap(findChild(page, "forwardButton"));
545− waitForPage("locationPage");
498+ tryCompare(timezoneSpy, "count", 1);
499+ tryCompare(page.tdModule, "timeZone", timezoneSpy.signalArguments[0][0]);
547− i18n.language = "fr.utf8";
502+ function test_accountPage() {
548− link.linkActivated("not-used");
503+ var page = goToPage("accountPage");
549− page = waitForPage("hereTermsPage");
504+ var password1 = findChild(page, "passInput");
550− tryCompare(findChild(page, "termsLabel"), "text", "fr_FR\n");
551− tap(findChild(page, "backButton"));
505+ var password2 = findChild(page, "pass2Input");
552− waitForPage("locationPage");
506+ var forwardButton = findChild(page, "forwardButton");
554− i18n.language = "es"; // will not be found
508+ tap(findChild(page, "nameInput"));
555− link.linkActivated("not-used");
509+ typeString("foobar");
556− page = waitForPage("hereTermsPage");
557− tryCompare(findChild(page, "termsLabel"), "text", "en_US\n");
559− // OK, done with languages, back to actual page
511+ verify(forwardButton.enabled, false); // no passwords yet
561− var label = findChild(page, "termsLabel");
513+ tap(password1);
562− label.linkActivated(Qt.resolvedUrl("licenses/en_US.html"));
514+ typeString("12345");
563− tryCompare(label, "visible", false);
565− var webview = findChild(page, "webview");
516+ verify(forwardButton.enabled, false); // password too short
566− tryCompare(webview, "visible", true);
567− tryCompare(webview, "url", Qt.resolvedUrl("licenses/en_US.html"));
568− tryCompare(webview, "loadProgress", 100);
570− tap(findChild(page, "backButton"));
518+ tap(password2);
571− waitForPage("hereTermsPage"); // confirm we're on same page
519+ typeString("12345678");
572− tryCompare(webview, "visible", false);
573− tryCompare(label, "visible", true);
575− tap(findChild(page, "backButton"));
521+ verify(forwardButton.enabled, false); // passwords don't match
524+ password1.selectAll();
525+ typeString("12345678");
527+ verify(forwardButton.enabled, true); // now they match
529+ var pages = findChild(wizard, "wizardPages");
530+ var security = findInvisibleChild(pages, "securityPrivacy");
531+ setSecuritySpy.target = security;
535+ page = waitForPage("passwdPage");
536+ tap(findChild(page, "passwdDelegate0")); // account option
537+ tap(findChild(page, "forwardButton"));
576− waitForPage("locationPage");
538+ page = waitForPage("reportingPage");
539+ tap(findChild(page, "forwardButton"));
540+ page = waitForPage("finishedPage");
541+ waitUntilTransitionsEnd(page);
542+ tap(findChild(page, "finishButton"));
544+ tryCompare(setSecuritySpy, "count", 1);
545+ compare(setSecuritySpy.signalArguments[0][0], "");
546+ compare(setSecuritySpy.signalArguments[0][1], "12345678");
547+ compare(setSecuritySpy.signalArguments[0][2], UbuntuSecurityPrivacyPanel.Passphrase);