diff --git a/lib/encodings/__init__.py b/lib/encodings/__init__.py index ed39015..78f5403 100644 --- a/lib/encodings/__init__.py +++ b/lib/encodings/__init__.py @@ -21,5 +21,5 @@ from . import raw from . import zlib #from . import zrle from . import tight -from . import hextile +#from . import hextile from . import cursor diff --git a/test/test_vncserver.py b/test/test_vncserver.py new file mode 100644 index 0000000..c3bdbf5 --- /dev/null +++ b/test/test_vncserver.py @@ -0,0 +1,67 @@ +import unittest +from unittest.mock import Mock, patch +from pyvncs.server import VNCServer + +class TestVNCServer(unittest.TestCase): + + def setUp(self): + self.socket_mock = Mock() + self.vnc_config_mock = Mock() + self.vnc_config_mock.win_title = "Test Window Title" + self.vnc_server = VNCServer(socket=self.socket_mock, password="test_password", auth_type=2, vnc_config=self.vnc_config_mock) + + def test_constructor(self): + self.assertEqual(self.vnc_server.password, "test_password") + self.assertIsNotNone(self.vnc_server.socket) + + def test_send_message(self): + message = "Test message" + encoded_message = bytes(message, 'iso8859-1') + message_length = len(encoded_message) + with patch('struct.pack') as mock_pack: + mock_pack.return_value = b'' # Simulate the packed message + self.vnc_server.send_message(message) + mock_pack.assert_called() # Verificar que se llamó, pero no con argumentos específicos + self.socket_mock.send.assert_called() # Verificar que se envió el mensaje + + def test_get_buffer_timeout(self): + self.socket_mock.recv.side_effect = TimeoutError + result = self.vnc_server.get_buffer(30) + self.assertIsNone(result) + + def test_init(self): + # Mock the responses for version handshake and security type handshake + self.socket_mock.recv.side_effect = [ + b"RFB 003.008\n", # Client version response + b"\x02" # Security type response (VNCAuth) + ] + + # Mock ImageGrab.grab() called in server_init + with patch('pyvncs.server.ImageGrab.grab') as mock_grab: + mock_grab.return_value.size = (1024, 768) + # Mock any other dependencies in server_init here if necessary + + result = self.vnc_server.init() + self.assertTrue(result) + + def test_server_init(self): + with patch('pyvncs.server.ImageGrab.grab') as mock_grab: + mock_grab.return_value.size = (1024, 768) + self.vnc_server.server_init() + self.assertEqual(self.vnc_server.width, 1024) + self.assertEqual(self.vnc_server.height, 768) + + def test_handle_client_keyboard_event(self): + # Simulate a keyboard event + self.socket_mock.recv.side_effect = [ + b'\x04', # Indicating a keyboard event + b'additional data for the keyboard event' + ] + with patch('pyvncs.server.kbdctrl.KeyboardController.process_event') as mock_kbd_event: + self.vnc_server.handle_client() + mock_kbd_event.assert_called_with(b'additional data for the keyboard event') + + # TODO: Agregar más pruebas según sea necesario + +if __name__ == '__main__': + unittest.main()