address PR feedback

This commit was merged in pull request #23.
This commit is contained in:
2025-10-15 15:23:07 -05:00
committed by Jason Ross
parent 3973ae1801
commit aed4a1756a
2 changed files with 73 additions and 1 deletions
+65 -1
View File
@@ -552,4 +552,68 @@ class TestADBManagerSecurityIntegration:
# Should not raise exception or return security error
result = manager.list_files(path)
# Result will be empty list due to mocked command, but should not reject path
assert isinstance(result, list)
assert isinstance(result, list)
def test_list_files_calls_status_callback_on_invalid_path(self):
"""Test that list_files() notifies user via status callback on invalid path."""
manager = ADBManager()
manager.selected_device = "test_device"
# Set up status callback to capture messages
status_messages = []
manager.set_status_callback(lambda msg: status_messages.append(msg))
# Try invalid path
result = manager.list_files("/sdcard/test; rm -rf /")
assert result == []
assert len(status_messages) == 1
assert "Invalid path" in status_messages[0]
assert "dangerous pattern" in status_messages[0]
def test_list_files_calls_status_callback_on_invalid_device_id(self):
"""Test that list_files() notifies user via status callback on invalid device ID."""
manager = ADBManager()
# Set up status callback to capture messages
status_messages = []
manager.set_status_callback(lambda msg: status_messages.append(msg))
# Try invalid device ID
result = manager.list_files("/sdcard/test", device_id="device; malicious")
assert result == []
assert len(status_messages) == 1
assert "Invalid device ID" in status_messages[0]
def test_get_file_info_calls_status_callback_on_invalid_path(self):
"""Test that get_file_info() notifies user via status callback on invalid path."""
manager = ADBManager()
manager.selected_device = "test_device"
# Set up status callback to capture messages
status_messages = []
manager.set_status_callback(lambda msg: status_messages.append(msg))
# Try invalid path with null byte
result = manager.get_file_info("/sdcard/file\x00.txt")
assert result is None
assert len(status_messages) == 1
assert "Invalid path" in status_messages[0]
assert "null byte" in status_messages[0]
def test_status_callback_not_called_on_valid_input(self):
"""Test that status callback is not called for valid inputs."""
manager = ADBManager()
manager.selected_device = "test_device"
# Set up status callback to capture messages
status_messages = []
manager.set_status_callback(lambda msg: status_messages.append(msg))
# Try valid path (will return empty due to mocked command, but shouldn't trigger callback)
result = manager.list_files("/sdcard/DCIM")
# No status messages for validation errors
assert not any("Invalid" in msg for msg in status_messages)