Skip to content

Commit 4442f60

Browse files
committed
Add more tests for text entry box controls
1 parent 3978bf5 commit 4442f60

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

tests/test_elements/test_ui_text_entry_box.py

+148
Original file line numberDiff line numberDiff line change
@@ -1170,6 +1170,42 @@ def test_process_event_text_right_actually_move(self, _init_pygame: None,
11701170
'mod': 0}))
11711171

11721172
assert processed_key_event
1173+
assert text_entry.edit_position == 3
1174+
1175+
text_entry.edit_position = 1
1176+
text_entry.focus()
1177+
1178+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1179+
{'key': pygame.K_RIGHT,
1180+
'mod': pygame.KMOD_SHIFT}))
1181+
1182+
assert processed_key_event
1183+
assert text_entry.select_range == [1, 2]
1184+
assert text_entry.edit_position == 2
1185+
1186+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1187+
{'key': pygame.K_RIGHT,
1188+
'mod': pygame.KMOD_SHIFT}))
1189+
1190+
assert processed_key_event
1191+
assert text_entry.select_range == [1, 3]
1192+
assert text_entry.edit_position == 3
1193+
1194+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1195+
{'key': pygame.K_LEFT,
1196+
'mod': pygame.KMOD_SHIFT}))
1197+
1198+
assert processed_key_event
1199+
assert text_entry.select_range == [1, 2]
1200+
assert text_entry.edit_position == 2
1201+
1202+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1203+
{'key': pygame.K_RIGHT,
1204+
'mod': 0}))
1205+
1206+
assert processed_key_event
1207+
assert text_entry.select_range == [0, 0]
1208+
assert text_entry.edit_position == 2
11731209

11741210
text_entry.edit_position = 0
11751211
text_entry.focus()
@@ -1181,6 +1217,17 @@ def test_process_event_text_right_actually_move(self, _init_pygame: None,
11811217
assert processed_key_event
11821218
assert text_entry.edit_position == 3
11831219

1220+
text_entry.edit_position = 0
1221+
text_entry.focus()
1222+
1223+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1224+
{'key': pygame.K_RIGHT,
1225+
'mod': pygame.KMOD_CTRL | pygame.KMOD_SHIFT}))
1226+
1227+
assert processed_key_event
1228+
assert text_entry.select_range == [0, 3]
1229+
assert text_entry.edit_position == 3
1230+
11841231
def test_process_event_text_left(self, _init_pygame: None, default_ui_manager: UIManager,
11851232
_display_surface_return_none: None):
11861233
text_entry = UITextEntryBox(relative_rect=pygame.Rect(100, 100, 200, 30),
@@ -1197,13 +1244,114 @@ def test_process_event_text_left(self, _init_pygame: None, default_ui_manager: U
11971244
assert processed_key_event
11981245
assert text_entry.edit_position == 2
11991246

1247+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1248+
{'key': pygame.K_LEFT,
1249+
'mod': pygame.KMOD_SHIFT}))
1250+
1251+
assert processed_key_event
1252+
assert text_entry.select_range == [1, 2]
1253+
assert text_entry.edit_position == 1
1254+
1255+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1256+
{'key': pygame.K_LEFT,
1257+
'mod': pygame.KMOD_SHIFT}))
1258+
1259+
assert processed_key_event
1260+
assert text_entry.select_range == [0, 2]
1261+
assert text_entry.edit_position == 0
1262+
1263+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1264+
{'key': pygame.K_RIGHT,
1265+
'mod': pygame.KMOD_SHIFT}))
1266+
1267+
assert processed_key_event
1268+
assert text_entry.select_range == [1, 2]
1269+
assert text_entry.edit_position == 1
1270+
1271+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1272+
{'key': pygame.K_LEFT,
1273+
'mod': 0}))
1274+
1275+
assert processed_key_event
1276+
assert text_entry.select_range == [0, 0]
1277+
assert text_entry.edit_position == 1
1278+
12001279
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
12011280
{'key': pygame.K_LEFT,
12021281
'mod': pygame.KMOD_CTRL}))
12031282

12041283
assert processed_key_event
12051284
assert text_entry.edit_position == 0
12061285

1286+
text_entry.edit_position = 3
1287+
text_entry.focus()
1288+
1289+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1290+
{'key': pygame.K_LEFT,
1291+
'mod': pygame.KMOD_CTRL | pygame.KMOD_SHIFT}))
1292+
1293+
assert processed_key_event
1294+
assert text_entry.select_range == [0, 3]
1295+
assert text_entry.edit_position == 0
1296+
1297+
def test_process_event_text_down(self, _init_pygame: None, default_ui_manager: UIManager,
1298+
_display_surface_return_none: None):
1299+
text_entry = UITextEntryBox(relative_rect=pygame.Rect(100, 100, 200, 30),
1300+
manager=default_ui_manager)
1301+
1302+
text_entry.set_text('daniel\nmulti-line\ntext')
1303+
text_entry.edit_position = 3
1304+
text_entry.focus()
1305+
text_entry.update(0.1)
1306+
1307+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1308+
{'key': pygame.K_DOWN,
1309+
'mod': 0}))
1310+
1311+
assert processed_key_event
1312+
assert text_entry.edit_position == 10
1313+
1314+
text_entry.edit_position = 3
1315+
text_entry.focus()
1316+
text_entry.update(0.1)
1317+
1318+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1319+
{'key': pygame.K_DOWN,
1320+
'mod': pygame.KMOD_SHIFT}))
1321+
1322+
assert processed_key_event
1323+
assert text_entry.select_range == [3, 10]
1324+
assert text_entry.edit_position == 10
1325+
1326+
def test_process_event_text_up(self, _init_pygame: None, default_ui_manager: UIManager,
1327+
_display_surface_return_none: None):
1328+
text_entry = UITextEntryBox(relative_rect=pygame.Rect(100, 100, 200, 30),
1329+
manager=default_ui_manager)
1330+
1331+
text_entry.set_text('daniel\nmulti-line\ntext')
1332+
text_entry.edit_position = 10
1333+
text_entry.focus()
1334+
text_entry.update(0.1)
1335+
1336+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1337+
{'key': pygame.K_UP,
1338+
'mod': 0}))
1339+
1340+
assert processed_key_event
1341+
assert text_entry.edit_position == 3
1342+
1343+
text_entry.edit_position = 10
1344+
text_entry.focus()
1345+
text_entry.update(0.1)
1346+
1347+
processed_key_event = text_entry.process_event(pygame.event.Event(pygame.KEYDOWN,
1348+
{'key': pygame.K_UP,
1349+
'mod': pygame.KMOD_SHIFT}))
1350+
1351+
assert processed_key_event
1352+
assert text_entry.select_range == [3, 10]
1353+
assert text_entry.edit_position == 3
1354+
12071355
def test_process_event_home(self, _init_pygame: None, default_ui_manager: UIManager,
12081356
_display_surface_return_none: None):
12091357
text_entry = UITextEntryBox(relative_rect=pygame.Rect(100, 100, 200, 30),

0 commit comments

Comments
 (0)