@@ -40,52 +40,68 @@ class TestLockscreen(UnityTestCase):
40 """Must be able to unlock the PIN entry lock screen."""
40 """Must be able to unlock the PIN entry lock screen."""
41 self.launch_unity()
41 self.launch_unity()
42 greeter = self.main_window.get_greeter()
42 greeter = self.main_window.get_greeter()
44+ if greeter.narrowMode:
45− lockscreen = self._wait_for_lockscreen()
46+ lockscreen = self._wait_for_lockscreen()
46− self._enter_pincode("1234")
47+ self._enter_pincode("1234")
47−
48+ self.assertThat(lockscreen.shown, Eventually(Equals(False)))
50+ self._enter_prompt_passphrase("1234")
48− self.assertThat(lockscreen.shown, Eventually(Equals(False)))
51+ self.assertThat(greeter.shown, Eventually(Equals(False)))
50 @with_lightdm_mock("single-passphrase")
53 @with_lightdm_mock("single-passphrase")
51 def test_can_unlock_passphrase_screen(self):
54 def test_can_unlock_passphrase_screen(self):
52 """Must be able to unlock the passphrase entry screen."""
55 """Must be able to unlock the passphrase entry screen."""
53 self.launch_unity()
56 self.launch_unity()
54 greeter = self.main_window.get_greeter()
57 greeter = self.main_window.get_greeter()
57− lockscreen = self._wait_for_lockscreen()
58− self._enter_passphrase("password")
59+ if greeter.narrowMode:
61+ lockscreen = self._wait_for_lockscreen()
62+ self._enter_pin_passphrase("password")
60− self.assertThat(lockscreen.shown, Eventually(Equals(False)))
63+ self.assertThat(lockscreen.shown, Eventually(Equals(False)))
65+ self._enter_prompt_passphrase("password")
66+ self.assertThat(greeter.shown, Eventually(Equals(False)))
62 @with_lightdm_mock("single-pin")
68 @with_lightdm_mock("single-pin")
63 def test_pin_screen_wrong_code(self):
69 def test_pin_screen_wrong_code(self):
64 """Entering the wrong pin code must not dismiss the lock screen."""
70 """Entering the wrong pin code must not dismiss the lock screen."""
65 self.launch_unity()
71 self.launch_unity()
66 greeter = self.main_window.get_greeter()
72 greeter = self.main_window.get_greeter()
69− lockscreen = self._wait_for_lockscreen()
70− self._enter_pincode("4321")
74+ if greeter.narrowMode:
76+ lockscreen = self._wait_for_lockscreen()
77+ self._enter_pincode("4321")
72− pinentryField = self.main_window.get_pinentryField()
78+ pinentryField = self.main_window.get_pinentryField()
73− self.assertThat(pinentryField.text, Eventually(Equals("")))
79+ self.assertThat(pinentryField.text, Eventually(Equals("")))
80+ self.assertThat(lockscreen.shown, Eventually(Equals(True)))
82+ self._enter_prompt_passphrase("4231")
83+ prompt = self.main_window.get_greeter().get_prompt()
84+ self.assertThat(prompt.text, Eventually(Equals("")))
74− self.assertThat(lockscreen.shown, Eventually(Equals(True)))
85+ self.assertThat(greeter.shown, Eventually(Equals(True)))
76 @with_lightdm_mock("single-passphrase")
87 @with_lightdm_mock("single-passphrase")
77 def test_passphrase_screen_wrong_password(self):
88 def test_passphrase_screen_wrong_password(self):
78 """Entering the wrong password must not dismiss the lock screen."""
89 """Entering the wrong password must not dismiss the lock screen."""
79 self.launch_unity()
90 self.launch_unity()
80 greeter = self.main_window.get_greeter()
91 greeter = self.main_window.get_greeter()
93+ if greeter.narrowMode:
83− lockscreen = self._wait_for_lockscreen()
95+ lockscreen = self._wait_for_lockscreen()
84− self._enter_passphrase("foobar")
96+ self._enter_pin_passphrase("foobar")
86− pinentryField = self.main_window.get_pinentryField()
97+ pinentryField = self.main_window.get_pinentryField()
87− self.assertThat(pinentryField.text, Eventually(Equals("")))
98+ self.assertThat(pinentryField.text, Eventually(Equals("")))
99+ self.assertThat(lockscreen.shown, Eventually(Equals(True)))
101+ self._enter_prompt_passphrase("foobar")
102+ prompt = self.main_window.get_greeter().get_prompt()
103+ self.assertThat(prompt.text, Eventually(Equals("")))
88− self.assertThat(lockscreen.shown, Eventually(Equals(True)))
104+ self.assertThat(greeter.shown, Eventually(Equals(True)))
90 def _wait_for_lockscreen(self):
106 def _wait_for_lockscreen(self):
91 """Wait for the lock screen to load, and return it."""
107 """Wait for the lock screen to load, and return it."""
@@ -114,9 +130,9 @@ class TestLockscreen(UnityTestCase):
115 self.touch.tap_object(self.main_window.get_pinPadButton(int(num)))
131 self.touch.tap_object(self.main_window.get_pinPadButton(int(num)))
117− def _enter_passphrase(self, passphrase):
133+ def _enter_pin_passphrase(self, passphrase):
118 """Enter the password specified in 'passphrase' into the password entry
134 """Enter the password specified in 'passphrase' into the password entry
119− field.
135+ field of the pin lock screen.
121 :param passphrase: The string you want to enter.
137 :param passphrase: The string you want to enter.
122 :raises: TypeError if passphrase is not a string.
138 :raises: TypeError if passphrase is not a string.
@@ -129,3 +145,19 @@ class TestLockscreen(UnityTestCase):
129 self.touch.tap_object(pinentryField)
145 self.touch.tap_object(pinentryField)
130 self.keyboard.type(passphrase)
146 self.keyboard.type(passphrase)
131 self.keyboard.type("\n")
147 self.keyboard.type("\n")
149+ def _enter_prompt_passphrase(self, passphrase):
150+ """Enter the password specified in 'passphrase' into the password entry
151+ field of the main user list's prompt.
153+ :param passphrase: The string you want to enter.
154+ :raises: TypeError if passphrase is not a string.
157+ if not isinstance(passphrase, basestring):
158+ raise TypeError("'passphrase' parameter must be a string.")
160+ prompt = self.main_window.get_greeter().get_prompt()
161+ self.touch.tap_object(prompt)
162+ self.keyboard.type(passphrase)
163+ self.keyboard.type("\n")