@@ -26,6 +26,7 @@ StyledItem {
27 width: units.gu(120)
27 width: units.gu(120)
28 height: units.gu(80)
28 height: units.gu(80)
30 theme.name: "Ubuntu.Components.Themes.SuruDark"
31 theme.name: "Ubuntu.Components.Themes.SuruDark"
@@ -41,6 +42,7 @@ StyledItem {
41 id: loader
42 id: loader
42 width: root.width - controls.width
43 width: root.width - controls.width
43 height: parent.height
44 height: parent.height
45 property bool itemDestroyed: false
47 property bool itemDestroyed: false
46 sourceComponent: Component {
48 sourceComponent: Component {
@@ -63,7 +65,8 @@ StyledItem {
65 onSelected: {
67 onSelected: {
66− currentIndexField.text = index;
69+ currentIndexField.text = index;
69 QtObject {
72 QtObject {
@@ -392,7 +395,7 @@ StyledItem {
393 function test_respondedWithPassword() {
396 function test_respondedWithPassword() {
394 view.locked = true;
397 view.locked = true;
395− view.showPrompt("Prompt", true, true);
398+ view.showPrompt("Prompt", true, false);
396 var passwordInput = findChild(view, "passwordInput");
399 var passwordInput = findChild(view, "passwordInput");
397 compare(passwordInput.text, "Prompt");
400 compare(passwordInput.text, "Prompt");
398 verify(passwordInput.isSecret);
401 verify(passwordInput.isSecret);
@@ -454,13 +457,13 @@ StyledItem {
454 view.showPrompt("Prompt", true, true);
457 view.showPrompt("Prompt", true, true);
455 var promptField = findChild(view, "promptField");
458 var promptField = findChild(view, "promptField");
456 tap(promptField);
459 tap(promptField);
457− compare(promptField.focus, true);
460+ verify(promptField.activeFocus);
458− compare(promptField.enabled, true);
461+ compare(promptField.opacity, 1);
460 typeString("password");
463 typeString("password");
461 keyClick(Qt.Key_Enter);
464 keyClick(Qt.Key_Enter);
462− compare(promptField.focus, true);
465+ verify(promptField.activeFocus);
463− compare(promptField.enabled, false);
466+ compare(promptField.opacity, 0); // hidden by fakeLabel
465 compare(selectedSpy.count, 0);
468 compare(selectedSpy.count, 0);
466 keyClick(Qt.Key_Escape);
469 keyClick(Qt.Key_Escape);
@@ -468,8 +471,8 @@ StyledItem {
468 compare(selectedSpy.signalArguments[0][0], 1);
471 compare(selectedSpy.signalArguments[0][0], 1);
470 view.reset();
473 view.reset();
471− compare(promptField.focus, false);
474+ verify(promptField.activeFocus);
472− compare(promptField.enabled, true);
475+ compare(promptField.opacity, 1);
475 function test_unicode() {
478 function test_unicode() {
@@ -489,6 +492,7 @@ StyledItem {
489 compare(selectedSpy.signalArguments[0][0], 0);
492 compare(selectedSpy.signalArguments[0][0], 0);
490 selectedSpy.clear();
493 selectedSpy.clear();
492 view.locked = false;
496 view.locked = false;
493 compare(passwordInput.text, "Log In");
497 compare(passwordInput.text, "Log In");
494 tap(passwordInput);
498 tap(passwordInput);
@@ -518,13 +522,89 @@ StyledItem {
518 tryCompare(loginList, "height", view.height);
522 tryCompare(loginList, "height", view.height);
521− function test_alphanumeric() {
525+ function test_passphrase() {
522− var passwordInput = findChild(view, "passwordInput");
526+ var promptField = findChild(view, "promptField");
527+ view.showPrompt("", true, true);
524 verify(view.alphanumeric);
529 verify(view.alphanumeric);
525− verify(passwordInput.isAlphanumeric);
530+ compare(promptField.inputMethodHints & Qt.ImhDigitsOnly, 0);
533+ compare(promptField.text, "d");
536+ function test_passcode() {
537+ var promptField = findChild(view, "promptField");
538+ view.showPrompt("", true, true);
526 view.alphanumeric = false;
540 view.alphanumeric = false;
527− verify(!passwordInput.isAlphanumeric);
541+ compare(promptField.inputMethodHints & Qt.ImhDigitsOnly, Qt.ImhDigitsOnly);
544+ compare(promptField.text, "");
550+ compare(promptField.text, "0000");
552+ compare(respondedSpy.count, 1);
553+ compare(respondedSpy.signalArguments[0][0], "0000");
555+ compare(promptField.opacity, 0);
558+ function test_loginListMovement_data() {
560+ {tag: "up", key: Qt.Key_Up, result: -1},
561+ {tag: "down", key: Qt.Key_Down, result: 1},
565+ function test_loginListMovement(data) {
567+ compare(selectedSpy.count, 1);
568+ compare(selectedSpy.signalArguments[0][0], data.result);
571+ function test_focusStaysActive() {
572+ var promptField = findChild(view, "promptField");
573+ var promptButton = findChild(view, "promptButton");
575+ verify(promptButton.activeFocus);
576+ keyClick(Qt.Key_Enter);
577+ compare(selectedSpy.count, 0);
578+ compare(respondedSpy.count, 1);
579+ compare(respondedSpy.signalArguments[0][0], "");
580+ verify(promptButton.activeFocus);
581+ keyClick(Qt.Key_Enter);
582+ compare(respondedSpy.count, 1);
584+ view.showPrompt("", true, true);
585+ verify(promptField.activeFocus);
587+ keyClick(Qt.Key_Enter);
588+ compare(selectedSpy.count, 0);
589+ compare(respondedSpy.count, 2);
590+ compare(respondedSpy.signalArguments[1][0], "d");
591+ verify(promptField.activeFocus);
592+ keyClick(Qt.Key_Enter);
593+ compare(respondedSpy.count, 2);
597+ verify(promptButton.activeFocus);
598+ keyClick(Qt.Key_Enter);
599+ compare(respondedSpy.count, 2);
600+ compare(selectedSpy.count, 1);
601+ compare(selectedSpy.signalArguments[0][0], 0);
602+ verify(promptButton.activeFocus);
603+ keyClick(Qt.Key_Enter);
604+ compare(selectedSpy.count, 1);
606+ view.showPrompt("", true, true);
607+ verify(promptField.activeFocus);