@@ -73,8 +73,9 @@ Item {
73 AccountsService.hereEnabled = false;
73 AccountsService.hereEnabled = false;
74 AccountsService.hereLicensePath = Qt.resolvedUrl("licenses");
74 AccountsService.hereLicensePath = Qt.resolvedUrl("licenses");
75 i18n.language = "en";
75 i18n.language = "en";
76− MockQOfono.setModems(["sim1"], [false]);
76+ MockQOfono.setModems(["sim1"], [false], []);
77 MockQOfono.available = true;
77 MockQOfono.available = true;
78+ MockQOfono.ready = true;
78 System.wizardEnabled = true;
79 System.wizardEnabled = true;
80 updateSessionLanguageSpy.clear();
81 updateSessionLanguageSpy.clear();
@@ -140,6 +141,19 @@ Item {
140 tryCompareFunction(function() { return stack.currentPage.objectName; }, name);
141 tryCompareFunction(function() { return stack.currentPage.objectName; }, name);
141 tryCompare(stack.currentPage, "opacity", 1.0);
142 tryCompare(stack.currentPage, "opacity", 1.0);
142 tryCompare(stack.currentPage, "enabled", true);
143 tryCompare(stack.currentPage, "enabled", true);
144+ tryCompare(stack.currentPage, "skipValid", true);
145+ tryCompare(stack.currentPage, "skip", false);
146+ waitForRendering(stack.currentPage);
147+ return stack.currentPage;
150+ function verifyPageIsBlocked(name) {
151+ var pages = findChild(wizard, "wizardPages");
152+ var stack = findChild(pages, "pageStack");
153+ // don't simply call tryCompare here, because stack.currentPage will be swapped out itself
154+ tryCompareFunction(function() { return stack.currentPage.objectName; }, name);
155+ tryCompare(stack.currentPage, "enabled", false);
156+ tryCompare(stack.currentPage, "skipValid", false);
143 waitForRendering(stack.currentPage);
157 waitForRendering(stack.currentPage);
144 return stack.currentPage;
158 return stack.currentPage;
@@ -223,25 +237,54 @@ Item {
225 function test_simNoModemsSkip() {
239 function test_simNoModemsSkip() {
226− MockQOfono.setModems([], []);
240+ MockQOfono.setModems([], [], []);
227 goToPage("passwdPage", true);
241 goToPage("passwdPage", true);
230 function test_simFirstSkip() {
244 function test_simFirstSkip() {
231− MockQOfono.setModems(["a", "b"], [true, false]);
245+ MockQOfono.setModems(["a", "b"], [true, false], []);
232 goToPage("passwdPage", true);
246 goToPage("passwdPage", true);
235 function test_simSecondSkip() {
249 function test_simSecondSkip() {
236− MockQOfono.setModems(["a", "b"], [false, true]);
250+ MockQOfono.setModems(["a", "b"], [false, true], []);
237 goToPage("passwdPage", true);
251 goToPage("passwdPage", true);
240 function test_simBothSkip() {
254 function test_simBothSkip() {
241− MockQOfono.setModems(["a", "b"], [true, true]);
255+ MockQOfono.setModems(["a", "b"], [true, true], []);
242 goToPage("passwdPage", true);
256 goToPage("passwdPage", true);
259+ function test_simWaitOnManagerAsync() {
260+ MockQOfono.ready = false;
261+ MockQOfono.setModems(["a"], [false], []);
263+ // Go to SIM page, which will be waiting for skip to be valid
264+ var page = goToPage("languagePage");
265+ tap(findChild(page, "forwardButton"));
266+ verifyPageIsBlocked("simPage");
268+ // Now release QOfono from blocking the page
269+ MockQOfono.ready = true;
271+ waitForPage("simPage");
274+ function test_simWaitOnCardAsync() {
275+ MockQOfono.setModems(["a"], [false], [false]);
277+ // Go to SIM page, which will be waiting for skip to be valid
278+ var page = goToPage("languagePage");
279+ tap(findChild(page, "forwardButton"));
280+ verifyPageIsBlocked("simPage");
282+ // Now release QOfono from blocking the page
283+ MockQOfono.setModems(["a"], [false], [true]);
285+ waitForPage("simPage");
245 function enterPasscode(passcode) {
288 function enterPasscode(passcode) {
246 for (var i = 0; i < passcode.length; ++i) {
289 for (var i = 0; i < passcode.length; ++i) {
247 var character = passcode.charAt(i);
290 var character = passcode.charAt(i);