Changes in uspace/srv/hid/display/test/window.c [35cffea:17c0f5d] in mainline
- File:
-
- 1 edited
-
uspace/srv/hid/display/test/window.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/display/test/window.c
r35cffea r17c0f5d 1 1 /* 2 * Copyright (c) 202 2Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 51 51 }; 52 52 53 /** Test creating and destroying window */ 54 PCUT_TEST(create_destroy) 55 { 56 ds_display_t *disp; 57 ds_client_t *client; 58 ds_seat_t *seat; 59 ds_window_t *wnd; 60 display_wnd_params_t params; 61 errno_t rc; 62 63 rc = ds_display_create(NULL, df_none, &disp); 64 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 65 66 rc = ds_client_create(disp, NULL, NULL, &client); 67 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 68 69 rc = ds_seat_create(disp, &seat); 70 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 71 72 display_wnd_params_init(¶ms); 73 params.rect.p0.x = params.rect.p0.y = 0; 74 params.rect.p1.x = params.rect.p1.y = 10; 75 76 rc = ds_window_create(client, ¶ms, &wnd); 77 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 78 79 ds_window_destroy(wnd); 80 ds_seat_destroy(seat); 81 ds_client_destroy(client); 82 ds_display_destroy(disp); 83 } 84 85 /** Test ds_window_bring_to_top() brings window to top */ 86 PCUT_TEST(bring_to_top) 87 { 88 ds_display_t *disp; 89 ds_client_t *client; 90 ds_seat_t *seat; 91 ds_window_t *w1; 92 ds_window_t *w2; 93 display_wnd_params_t params; 94 errno_t rc; 95 96 rc = ds_display_create(NULL, df_none, &disp); 97 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 98 99 rc = ds_client_create(disp, NULL, NULL, &client); 100 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 101 102 rc = ds_seat_create(disp, &seat); 103 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 104 105 display_wnd_params_init(¶ms); 106 params.rect.p0.x = params.rect.p0.y = 0; 107 params.rect.p1.x = params.rect.p1.y = 10; 108 109 rc = ds_window_create(client, ¶ms, &w1); 110 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 111 112 rc = ds_window_create(client, ¶ms, &w2); 113 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 114 115 /* w2 should be on the top */ 116 PCUT_ASSERT_EQUALS(w2, ds_display_first_window(disp)); 117 118 /* Bring w1 to top */ 119 ds_window_bring_to_top(w1); 120 121 /* Now w1 should be on the top */ 122 PCUT_ASSERT_EQUALS(w1, ds_display_first_window(disp)); 123 124 ds_window_destroy(w1); 125 ds_window_destroy(w2); 126 ds_seat_destroy(seat); 127 ds_client_destroy(client); 128 ds_display_destroy(disp); 129 } 130 53 131 /** Test ds_window_resize(). */ 54 132 PCUT_TEST(window_resize) … … 183 261 } 184 262 263 /** Test ds_window_minimize(). */ 264 PCUT_TEST(window_minimize) 265 { 266 ds_display_t *disp; 267 ds_client_t *client; 268 ds_seat_t *seat; 269 ds_window_t *wnd; 270 display_wnd_params_t params; 271 errno_t rc; 272 273 rc = ds_display_create(NULL, df_none, &disp); 274 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 275 276 rc = ds_client_create(disp, NULL, NULL, &client); 277 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 278 279 rc = ds_seat_create(disp, &seat); 280 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 281 282 display_wnd_params_init(¶ms); 283 params.rect.p0.x = params.rect.p0.y = 0; 284 params.rect.p1.x = params.rect.p1.y = 10; 285 286 rc = ds_window_create(client, ¶ms, &wnd); 287 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 288 289 rc = ds_window_minimize(wnd); 290 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 291 292 PCUT_ASSERT_INT_EQUALS(wndf_minimized, wnd->flags & wndf_minimized); 293 294 ds_window_destroy(wnd); 295 ds_seat_destroy(seat); 296 ds_client_destroy(client); 297 ds_display_destroy(disp); 298 } 299 300 /** Test ds_window_unminimize(). */ 301 PCUT_TEST(window_unminimize) 302 { 303 ds_display_t *disp; 304 ds_client_t *client; 305 ds_seat_t *seat; 306 ds_window_t *wnd; 307 display_wnd_params_t params; 308 errno_t rc; 309 310 rc = ds_display_create(NULL, df_none, &disp); 311 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 312 313 rc = ds_client_create(disp, NULL, NULL, &client); 314 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 315 316 rc = ds_seat_create(disp, &seat); 317 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 318 319 display_wnd_params_init(¶ms); 320 params.flags |= wndf_minimized; 321 params.rect.p0.x = params.rect.p0.y = 0; 322 params.rect.p1.x = params.rect.p1.y = 10; 323 324 rc = ds_window_create(client, ¶ms, &wnd); 325 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 326 327 rc = ds_window_unminimize(wnd); 328 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 329 330 PCUT_ASSERT_INT_EQUALS(0, wnd->flags & wndf_minimized); 331 332 ds_window_destroy(wnd); 333 ds_seat_destroy(seat); 334 ds_client_destroy(client); 335 ds_display_destroy(disp); 336 } 337 185 338 /** Test ds_window_maximize(). */ 186 339 PCUT_TEST(window_maximize) … … 295 448 gc = ds_window_get_ctx(wnd); 296 449 PCUT_ASSERT_NOT_NULL(gc); 450 451 ds_window_destroy(wnd); 452 ds_seat_destroy(seat); 453 ds_client_destroy(client); 454 ds_display_destroy(disp); 455 } 456 457 /** Test ds_window_is_visible() */ 458 PCUT_TEST(is_visible) 459 { 460 ds_display_t *disp; 461 ds_client_t *client; 462 ds_seat_t *seat; 463 ds_window_t *wnd; 464 display_wnd_params_t params; 465 errno_t rc; 466 467 rc = ds_display_create(NULL, df_none, &disp); 468 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 469 470 rc = ds_client_create(disp, NULL, NULL, &client); 471 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 472 473 rc = ds_seat_create(disp, &seat); 474 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 475 476 display_wnd_params_init(¶ms); 477 params.rect.p0.x = params.rect.p0.y = 0; 478 params.rect.p1.x = params.rect.p1.y = 10; 479 480 rc = ds_window_create(client, ¶ms, &wnd); 481 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 482 483 PCUT_ASSERT_TRUE(ds_window_is_visible(wnd)); 484 485 wnd->flags |= wndf_minimized; 486 487 PCUT_ASSERT_FALSE(ds_window_is_visible(wnd)); 297 488 298 489 ds_window_destroy(wnd); … … 425 616 PCUT_ASSERT_INT_EQUALS(13, wnd->dpos.x); 426 617 PCUT_ASSERT_INT_EQUALS(14, wnd->dpos.y); 618 619 ds_window_destroy(wnd); 620 ds_seat_destroy(seat); 621 ds_client_destroy(client); 622 ds_display_destroy(disp); 623 } 624 625 /** Test ds_window_post_focus_event() */ 626 PCUT_TEST(window_post_focus_event) 627 { 628 gfx_context_t *gc; 629 ds_display_t *disp; 630 ds_client_t *client; 631 ds_seat_t *seat; 632 ds_window_t *wnd; 633 display_wnd_params_t params; 634 errno_t rc; 635 636 rc = gfx_context_new(&dummy_ops, NULL, &gc); 637 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 638 639 rc = ds_display_create(gc, df_none, &disp); 640 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 641 642 rc = ds_client_create(disp, NULL, NULL, &client); 643 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 644 645 rc = ds_seat_create(disp, &seat); 646 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 647 648 display_wnd_params_init(¶ms); 649 params.rect.p0.x = params.rect.p0.y = 0; 650 params.rect.p1.x = params.rect.p1.y = 1; 651 652 rc = ds_window_create(client, ¶ms, &wnd); 653 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 654 655 rc = ds_window_post_focus_event(wnd); 656 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 657 658 ds_window_destroy(wnd); 659 ds_seat_destroy(seat); 660 ds_client_destroy(client); 661 ds_display_destroy(disp); 662 } 663 664 /** Test ds_window_post_unfocus_event() */ 665 PCUT_TEST(window_post_unfocus_event) 666 { 667 gfx_context_t *gc; 668 ds_display_t *disp; 669 ds_client_t *client; 670 ds_seat_t *seat; 671 ds_window_t *wnd; 672 display_wnd_params_t params; 673 errno_t rc; 674 675 rc = gfx_context_new(&dummy_ops, NULL, &gc); 676 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 677 678 rc = ds_display_create(gc, df_none, &disp); 679 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 680 681 rc = ds_client_create(disp, NULL, NULL, &client); 682 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 683 684 rc = ds_seat_create(disp, &seat); 685 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 686 687 display_wnd_params_init(¶ms); 688 params.rect.p0.x = params.rect.p0.y = 0; 689 params.rect.p1.x = params.rect.p1.y = 1; 690 691 rc = ds_window_create(client, ¶ms, &wnd); 692 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 693 694 rc = ds_window_post_focus_event(wnd); 695 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 427 696 428 697 ds_window_destroy(wnd); … … 851 1120 } 852 1121 1122 /** Test ds_window_set_caption() */ 1123 PCUT_TEST(window_set_caption) 1124 { 1125 gfx_context_t *gc; 1126 ds_display_t *disp; 1127 ds_client_t *client; 1128 ds_seat_t *seat; 1129 ds_window_t *wnd; 1130 display_wnd_params_t params; 1131 errno_t rc; 1132 1133 rc = gfx_context_new(&dummy_ops, NULL, &gc); 1134 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1135 1136 rc = ds_display_create(gc, df_none, &disp); 1137 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1138 1139 rc = ds_client_create(disp, NULL, NULL, &client); 1140 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1141 1142 rc = ds_seat_create(disp, &seat); 1143 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1144 1145 display_wnd_params_init(¶ms); 1146 params.rect.p0.x = params.rect.p0.y = 0; 1147 params.rect.p1.x = params.rect.p1.y = 1; 1148 1149 rc = ds_window_create(client, ¶ms, &wnd); 1150 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1151 1152 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1153 1154 rc = ds_window_set_caption(wnd, "Hello"); 1155 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1156 PCUT_ASSERT_INT_EQUALS(0, str_cmp("Hello", wnd->caption)); 1157 1158 ds_window_destroy(wnd); 1159 ds_seat_destroy(seat); 1160 ds_client_destroy(client); 1161 ds_display_destroy(disp); 1162 } 1163 1164 /** ds_window_find_alt() finds alternate window by flags */ 1165 PCUT_TEST(window_find_alt) 1166 { 1167 gfx_context_t *gc; 1168 ds_display_t *disp; 1169 ds_client_t *client; 1170 ds_seat_t *seat; 1171 ds_window_t *w0; 1172 ds_window_t *w1; 1173 ds_window_t *w2; 1174 ds_window_t *wnd; 1175 display_wnd_params_t params; 1176 errno_t rc; 1177 1178 rc = gfx_context_new(&dummy_ops, NULL, &gc); 1179 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1180 1181 rc = ds_display_create(gc, df_none, &disp); 1182 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1183 1184 rc = ds_client_create(disp, NULL, NULL, &client); 1185 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1186 1187 rc = ds_seat_create(disp, &seat); 1188 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1189 1190 display_wnd_params_init(¶ms); 1191 params.rect.p0.x = params.rect.p0.y = 0; 1192 params.rect.p1.x = params.rect.p1.y = 1; 1193 1194 rc = ds_window_create(client, ¶ms, &w0); 1195 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1196 1197 rc = ds_window_create(client, ¶ms, &w1); 1198 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1199 w1->flags |= wndf_minimized; 1200 1201 rc = ds_window_create(client, ¶ms, &w2); 1202 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1203 w2->flags |= wndf_system; 1204 1205 wnd = ds_window_find_alt(w0, wndf_minimized); 1206 PCUT_ASSERT_EQUALS(w1, wnd); 1207 1208 wnd = ds_window_find_alt(w0, wndf_system); 1209 PCUT_ASSERT_EQUALS(w2, wnd); 1210 1211 wnd = ds_window_find_alt(w0, wndf_maximized); 1212 PCUT_ASSERT_NULL(wnd); 1213 1214 ds_window_destroy(w0); 1215 ds_window_destroy(w1); 1216 ds_window_destroy(w2); 1217 ds_seat_destroy(seat); 1218 ds_client_destroy(client); 1219 ds_display_destroy(disp); 1220 } 1221 1222 /** ds_window_unfocus() switches to another window */ 1223 PCUT_TEST(window_unfocus) 1224 { 1225 gfx_context_t *gc; 1226 ds_display_t *disp; 1227 ds_client_t *client; 1228 ds_seat_t *seat; 1229 ds_window_t *w0; 1230 ds_window_t *w1; 1231 display_wnd_params_t params; 1232 errno_t rc; 1233 1234 rc = gfx_context_new(&dummy_ops, NULL, &gc); 1235 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1236 1237 rc = ds_display_create(gc, df_none, &disp); 1238 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1239 1240 rc = ds_client_create(disp, NULL, NULL, &client); 1241 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1242 1243 rc = ds_seat_create(disp, &seat); 1244 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1245 1246 display_wnd_params_init(¶ms); 1247 params.rect.p0.x = params.rect.p0.y = 0; 1248 params.rect.p1.x = params.rect.p1.y = 1; 1249 1250 rc = ds_window_create(client, ¶ms, &w1); 1251 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1252 1253 rc = ds_window_create(client, ¶ms, &w0); 1254 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1255 1256 PCUT_ASSERT_EQUALS(w0, seat->focus); 1257 1258 ds_window_unfocus(w0); 1259 1260 PCUT_ASSERT_EQUALS(w1, seat->focus); 1261 1262 ds_window_destroy(w0); 1263 ds_window_destroy(w1); 1264 ds_seat_destroy(seat); 1265 ds_client_destroy(client); 1266 ds_display_destroy(disp); 1267 } 1268 853 1269 static errno_t dummy_set_color(void *arg, gfx_color_t *color) 854 1270 {
Note:
See TracChangeset
for help on using the changeset viewer.
