Skip to content

Commit 7646e85

Browse files
committed
test(ping): preserve message presence after a debug screen read
1 parent 0f4c839 commit 7646e85

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

tests/test_msg_ping.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,25 @@
2727

2828
class TestPing(common.KeepKeyTest):
2929

30+
def test_protected_ping_preserves_message_presence_after_debug_read(self):
31+
self.requires_firmware("7.14.3")
32+
for message in (None, '', 'ping response'):
33+
with self.subTest(message=message):
34+
request = proto.Ping(button_protection=True)
35+
if message is not None:
36+
request.message = message
37+
response = self.client.call_raw(request)
38+
self.assertIsInstance(response, proto.ButtonRequest)
39+
# Read the screen while the normal response is suspended.
40+
self.client.debug.read_layout()
41+
self.client.debug.press_yes()
42+
response = self.client.call_raw(proto.ButtonAck())
43+
self.assertIsInstance(response, proto.Success)
44+
self.assertEqual(response.HasField('message'), message is not None)
45+
if message is not None:
46+
self.assertEqual(response.message, message)
47+
48+
3049
def test_ping(self):
3150
self.setup_mnemonic_pin_passphrase()
3251
self.client.clear_session()

0 commit comments

Comments
 (0)