def test_process_event_ctrl_v_over_limit_select_range(
            self, _init_pygame: None, default_ui_manager: UIManager,
            _display_surface_return_none: None):
        text_entry = UITextEntryLine(relative_rect=pygame.Rect(
            100, 100, 200, 30),
                                     manager=default_ui_manager)

        text_entry.set_text('dan')
        text_entry.select()
        text_entry.length_limit = 3
        text_entry.select_range = [0, 3]

        text_entry.process_event(
            pygame.event.Event(pygame.KEYDOWN, {
                'key': pygame.K_c,
                'mod': pygame.KMOD_CTRL,
                'unicode': 'c'
            }))
        text_entry.select_range = [2, 3]
        text_entry.edit_position = 3
        processed_key_event = text_entry.process_event(
            pygame.event.Event(pygame.KEYDOWN, {
                'key': pygame.K_v,
                'mod': pygame.KMOD_CTRL,
                'unicode': 'v'
            }))

        assert processed_key_event and text_entry.get_text() == 'dan'
    def test_redraw_cursor(self, _init_pygame, default_ui_manager):
        text_entry = UITextEntryLine(relative_rect=pygame.Rect(
            100, 100, 200, 30),
                                     manager=default_ui_manager)

        text_entry.set_text("GOLD")
        text_entry.select_range = [0, 2]
        text_entry.cursor_on = True
        text_entry.edit_position = 1
        text_entry.redraw_cursor()

        assert text_entry.image is not None
    def test_process_event_delete(self, _init_pygame: None,
                                  default_ui_manager: UIManager,
                                  _display_surface_return_none: None):
        text_entry = UITextEntryLine(relative_rect=pygame.Rect(
            100, 100, 200, 30),
                                     manager=default_ui_manager)

        text_entry.set_text('dan')
        text_entry.select()
        text_entry.edit_position = 1

        processed_key_event = text_entry.process_event(
            pygame.event.Event(pygame.KEYDOWN, {'key': pygame.K_DELETE}))

        assert processed_key_event
    def test_process_event_text_right_actually_move(
            self, _init_pygame: None, default_ui_manager: UIManager,
            _display_surface_return_none: None):
        text_entry = UITextEntryLine(relative_rect=pygame.Rect(
            100, 100, 200, 30),
                                     manager=default_ui_manager)

        text_entry.set_text('dan')
        text_entry.edit_position = 2
        text_entry.focus()

        processed_key_event = text_entry.process_event(
            pygame.event.Event(pygame.KEYDOWN, {'key': pygame.K_RIGHT}))

        assert processed_key_event