def test_process_event_text_ctrl_x(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() processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_a, 'mod': pygame.KMOD_CTRL, 'unicode': 'a' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_x, 'mod': pygame.KMOD_CTRL, 'unicode': 'x' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_v, 'mod': pygame.KMOD_CTRL, 'unicode': 'v' })) assert processed_key_event and clipboard_paste() == 'dan'
def test_process_event_text_entered_success( 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.select() # process a mouse button down event processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_d, 'mod': 0, 'unicode': 'd' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_a, 'mod': 0, 'unicode': 'a' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_n, 'mod': 0, 'unicode': 'n' })) assert processed_key_event and text_entry.get_text() == 'dan'
def test_process_event_text_ctrl_v_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.select_range = [1, 3] text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_c, 'mod': pygame.KMOD_CTRL, 'unicode': 'c' })) text_entry.select_range = [0, 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() == 'an'
def test_select(self, _init_pygame, default_ui_manager): text_entry = UITextEntryLine(relative_rect=pygame.Rect( 100, 100, 200, 30), manager=default_ui_manager) text_entry.select() assert text_entry.image is not None
def test_process_event_text_left(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() processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, {'key': pygame.K_LEFT})) assert processed_key_event
def test_process_event_backspace(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 = 2 text_entry.start_text_offset = 1 processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, {'key': pygame.K_BACKSPACE})) assert processed_key_event
def test_update_cursor_blink(self, _init_pygame, _display_surface_return_none: None): manager = UIManager( (800, 600), os.path.join("tests", "data", "themes", "ui_text_entry_line_non_default.json")) text_entry = UITextEntryLine(relative_rect=pygame.Rect( 100, 100, 200, 30), manager=manager) text_entry.select() text_entry.cursor_blink_delay_after_moving_acc = 10.0 text_entry.update(0.01) text_entry.blink_cursor_time_acc = 10.0 text_entry.update(0.01) text_entry.blink_cursor_time_acc = 10.0 text_entry.update(0.01)
def test_process_event_text_entered_not_allowed( 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.select() text_entry.set_allowed_characters(['d', 'a', 'n']) # process a mouse button down event processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_o, 'mod': 0, 'unicode': 'o' })) assert processed_key_event is False and text_entry.get_text() == ''
def test_update_after_click(self, _init_pygame, _display_surface_return_none: None): manager = UIManager( (800, 600), os.path.join("tests", "data", "themes", "ui_text_entry_line_non_default.json")) text_entry = UITextEntryLine(relative_rect=pygame.Rect(0, 0, 200, 30), manager=manager) text_entry.set_text('Wow testing is great so amazing') text_entry.select() text_entry.process_event( pygame.event.Event(pygame.MOUSEBUTTONDOWN, { 'button': 1, 'pos': (30, 15) })) default_ui_manager.mouse_position = (70, 15) text_entry.update(0.01)
def test_process_event_text_entered_with_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('Hours and hours of fun writing tests') text_entry.select() text_entry.select_range = [1, 9] # process a mouse button down event processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_o, 'mod': 0, 'unicode': 'o' })) assert processed_key_event is True and text_entry.get_text( ) == 'Ho hours of fun writing tests'
def test_process_event_text_ctrl_c(self, _init_pygame: None, _display_surface_return_none: None): manager = UIManager( (800, 600), os.path.join("tests", "data", "themes", "ui_text_entry_line_non_default_2.json")) text_entry = UITextEntryLine(relative_rect=pygame.Rect( 100, 100, 200, 30), manager=manager) text_entry.set_text('dan') text_entry.select() text_entry.select_range = [0, 3] processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_c, 'mod': pygame.KMOD_CTRL, 'unicode': 'c' })) text_entry.cursor_on = True text_entry.redraw_cursor() assert processed_key_event and clipboard_paste() == 'dan'
def test_process_event_text_entered_too_long( 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_length_limit(3) text_entry.select() text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_t, 'mod': 0, 'unicode': 't' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_e, 'mod': 0, 'unicode': 'e' })) text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_s, 'mod': 0, 'unicode': 's' })) processed_key_event = text_entry.process_event( pygame.event.Event(pygame.KEYDOWN, { 'key': pygame.K_s, 'mod': 0, 'unicode': 't' })) assert processed_key_event is False and text_entry.get_text() == 'tes'