Changes in uspace/srv/hid/display/test/window.c [dd7df1c:9e84d2c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/display/test/window.c
rdd7df1c r9e84d2c 1 1 /* 2 * Copyright (c) 20 23Jiri Svoboda2 * Copyright (c) 2019 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 36 36 #include "../client.h" 37 37 #include "../display.h" 38 #include "../idevcfg.h"39 38 #include "../seat.h" 40 39 #include "../window.h" … … 52 51 }; 53 52 54 /** Test creating and destroying window */55 PCUT_TEST(create_destroy)56 {57 ds_display_t *disp;58 ds_client_t *client;59 ds_seat_t *seat;60 ds_window_t *wnd;61 display_wnd_params_t params;62 errno_t rc;63 64 rc = ds_display_create(NULL, df_none, &disp);65 PCUT_ASSERT_ERRNO_VAL(EOK, rc);66 67 rc = ds_client_create(disp, NULL, NULL, &client);68 PCUT_ASSERT_ERRNO_VAL(EOK, rc);69 70 rc = ds_seat_create(disp, "Alice", &seat);71 PCUT_ASSERT_ERRNO_VAL(EOK, rc);72 73 display_wnd_params_init(¶ms);74 params.rect.p0.x = params.rect.p0.y = 0;75 params.rect.p1.x = params.rect.p1.y = 10;76 77 rc = ds_window_create(client, ¶ms, &wnd);78 PCUT_ASSERT_ERRNO_VAL(EOK, rc);79 80 ds_window_destroy(wnd);81 ds_seat_destroy(seat);82 ds_client_destroy(client);83 ds_display_destroy(disp);84 }85 86 /** Test ds_window_bring_to_top() brings window to top */87 PCUT_TEST(bring_to_top)88 {89 ds_display_t *disp;90 ds_client_t *client;91 ds_seat_t *seat;92 ds_window_t *w1;93 ds_window_t *w2;94 display_wnd_params_t params;95 errno_t rc;96 97 rc = ds_display_create(NULL, df_none, &disp);98 PCUT_ASSERT_ERRNO_VAL(EOK, rc);99 100 rc = ds_client_create(disp, NULL, NULL, &client);101 PCUT_ASSERT_ERRNO_VAL(EOK, rc);102 103 rc = ds_seat_create(disp, "Alice", &seat);104 PCUT_ASSERT_ERRNO_VAL(EOK, rc);105 106 display_wnd_params_init(¶ms);107 params.rect.p0.x = params.rect.p0.y = 0;108 params.rect.p1.x = params.rect.p1.y = 10;109 110 rc = ds_window_create(client, ¶ms, &w1);111 PCUT_ASSERT_ERRNO_VAL(EOK, rc);112 113 rc = ds_window_create(client, ¶ms, &w2);114 PCUT_ASSERT_ERRNO_VAL(EOK, rc);115 116 /* w2 should be on the top */117 PCUT_ASSERT_EQUALS(w2, ds_display_first_window(disp));118 119 /* Bring w1 to top */120 ds_window_bring_to_top(w1);121 122 /* Now w1 should be on the top */123 PCUT_ASSERT_EQUALS(w1, ds_display_first_window(disp));124 125 ds_window_destroy(w1);126 ds_window_destroy(w2);127 ds_seat_destroy(seat);128 ds_client_destroy(client);129 ds_display_destroy(disp);130 }131 132 53 /** Test ds_window_resize(). */ 133 54 PCUT_TEST(window_resize) … … 148 69 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 149 70 150 rc = ds_seat_create(disp, "Alice",&seat);71 rc = ds_seat_create(disp, &seat); 151 72 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 152 73 … … 178 99 } 179 100 180 /** Test ds_window_get_pos(). */181 PCUT_TEST(get_pos)182 {183 ds_display_t *disp;184 ds_client_t *client;185 ds_seat_t *seat;186 ds_window_t *wnd;187 display_wnd_params_t params;188 gfx_coord2_t pos;189 errno_t rc;190 191 rc = ds_display_create(NULL, df_none, &disp);192 PCUT_ASSERT_ERRNO_VAL(EOK, rc);193 194 rc = ds_client_create(disp, NULL, NULL, &client);195 PCUT_ASSERT_ERRNO_VAL(EOK, rc);196 197 rc = ds_seat_create(disp, "Alice", &seat);198 PCUT_ASSERT_ERRNO_VAL(EOK, rc);199 200 display_wnd_params_init(¶ms);201 params.rect.p0.x = params.rect.p0.y = 0;202 params.rect.p1.x = params.rect.p1.y = 10;203 204 rc = ds_window_create(client, ¶ms, &wnd);205 PCUT_ASSERT_ERRNO_VAL(EOK, rc);206 207 wnd->dpos.x = 100;208 wnd->dpos.y = 100;209 210 ds_window_get_pos(wnd, &pos);211 212 PCUT_ASSERT_INT_EQUALS(100, pos.x);213 PCUT_ASSERT_INT_EQUALS(100, pos.y);214 215 ds_window_destroy(wnd);216 ds_seat_destroy(seat);217 ds_client_destroy(client);218 ds_display_destroy(disp);219 }220 221 /** Test ds_window_get_max_rect(). */222 PCUT_TEST(get_max_rect)223 {224 ds_display_t *disp;225 ds_client_t *client;226 ds_seat_t *seat;227 ds_window_t *wnd;228 display_wnd_params_t params;229 gfx_rect_t rect;230 errno_t rc;231 232 rc = ds_display_create(NULL, df_none, &disp);233 PCUT_ASSERT_ERRNO_VAL(EOK, rc);234 235 rc = ds_client_create(disp, NULL, NULL, &client);236 PCUT_ASSERT_ERRNO_VAL(EOK, rc);237 238 rc = ds_seat_create(disp, "Alice", &seat);239 PCUT_ASSERT_ERRNO_VAL(EOK, rc);240 241 display_wnd_params_init(¶ms);242 params.rect.p0.x = params.rect.p0.y = 0;243 params.rect.p1.x = params.rect.p1.y = 10;244 245 rc = ds_window_create(client, ¶ms, &wnd);246 PCUT_ASSERT_ERRNO_VAL(EOK, rc);247 248 wnd->dpos.x = 100;249 wnd->dpos.y = 100;250 251 ds_window_get_max_rect(wnd, &rect);252 253 PCUT_ASSERT_INT_EQUALS(disp->rect.p0.x, rect.p0.x);254 PCUT_ASSERT_INT_EQUALS(disp->rect.p0.y, rect.p0.y);255 PCUT_ASSERT_INT_EQUALS(disp->rect.p1.x, rect.p1.x);256 PCUT_ASSERT_INT_EQUALS(disp->rect.p1.y, rect.p1.y);257 258 ds_window_destroy(wnd);259 ds_seat_destroy(seat);260 ds_client_destroy(client);261 ds_display_destroy(disp);262 }263 264 /** Test ds_window_minimize(). */265 PCUT_TEST(window_minimize)266 {267 ds_display_t *disp;268 ds_client_t *client;269 ds_seat_t *seat;270 ds_window_t *wnd;271 display_wnd_params_t params;272 errno_t rc;273 274 rc = ds_display_create(NULL, df_none, &disp);275 PCUT_ASSERT_ERRNO_VAL(EOK, rc);276 277 rc = ds_client_create(disp, NULL, NULL, &client);278 PCUT_ASSERT_ERRNO_VAL(EOK, rc);279 280 rc = ds_seat_create(disp, "Alice", &seat);281 PCUT_ASSERT_ERRNO_VAL(EOK, rc);282 283 display_wnd_params_init(¶ms);284 params.rect.p0.x = params.rect.p0.y = 0;285 params.rect.p1.x = params.rect.p1.y = 10;286 287 rc = ds_window_create(client, ¶ms, &wnd);288 PCUT_ASSERT_ERRNO_VAL(EOK, rc);289 290 rc = ds_window_minimize(wnd);291 PCUT_ASSERT_ERRNO_VAL(EOK, rc);292 293 PCUT_ASSERT_INT_EQUALS(wndf_minimized, wnd->flags & wndf_minimized);294 295 ds_window_destroy(wnd);296 ds_seat_destroy(seat);297 ds_client_destroy(client);298 ds_display_destroy(disp);299 }300 301 /** Test ds_window_unminimize(). */302 PCUT_TEST(window_unminimize)303 {304 ds_display_t *disp;305 ds_client_t *client;306 ds_seat_t *seat;307 ds_window_t *wnd;308 display_wnd_params_t params;309 errno_t rc;310 311 rc = ds_display_create(NULL, df_none, &disp);312 PCUT_ASSERT_ERRNO_VAL(EOK, rc);313 314 rc = ds_client_create(disp, NULL, NULL, &client);315 PCUT_ASSERT_ERRNO_VAL(EOK, rc);316 317 rc = ds_seat_create(disp, "Alice", &seat);318 PCUT_ASSERT_ERRNO_VAL(EOK, rc);319 320 display_wnd_params_init(¶ms);321 params.flags |= wndf_minimized;322 params.rect.p0.x = params.rect.p0.y = 0;323 params.rect.p1.x = params.rect.p1.y = 10;324 325 rc = ds_window_create(client, ¶ms, &wnd);326 PCUT_ASSERT_ERRNO_VAL(EOK, rc);327 328 rc = ds_window_unminimize(wnd);329 PCUT_ASSERT_ERRNO_VAL(EOK, rc);330 331 PCUT_ASSERT_INT_EQUALS(0, wnd->flags & wndf_minimized);332 333 ds_window_destroy(wnd);334 ds_seat_destroy(seat);335 ds_client_destroy(client);336 ds_display_destroy(disp);337 }338 339 /** Test ds_window_maximize(). */340 PCUT_TEST(window_maximize)341 {342 ds_display_t *disp;343 ds_client_t *client;344 ds_seat_t *seat;345 ds_window_t *wnd;346 display_wnd_params_t params;347 errno_t rc;348 349 rc = ds_display_create(NULL, df_none, &disp);350 PCUT_ASSERT_ERRNO_VAL(EOK, rc);351 352 rc = ds_client_create(disp, NULL, NULL, &client);353 PCUT_ASSERT_ERRNO_VAL(EOK, rc);354 355 rc = ds_seat_create(disp, "Alice", &seat);356 PCUT_ASSERT_ERRNO_VAL(EOK, rc);357 358 display_wnd_params_init(¶ms);359 params.rect.p0.x = params.rect.p0.y = 0;360 params.rect.p1.x = params.rect.p1.y = 10;361 362 rc = ds_window_create(client, ¶ms, &wnd);363 PCUT_ASSERT_ERRNO_VAL(EOK, rc);364 365 wnd->dpos.x = 100;366 wnd->dpos.y = 100;367 368 rc = ds_window_maximize(wnd);369 PCUT_ASSERT_ERRNO_VAL(EOK, rc);370 371 PCUT_ASSERT_INT_EQUALS(wndf_maximized, wnd->flags & wndf_maximized);372 373 ds_window_destroy(wnd);374 ds_seat_destroy(seat);375 ds_client_destroy(client);376 ds_display_destroy(disp);377 }378 379 /** Test ds_window_unmaximize(). */380 PCUT_TEST(window_unmaximize)381 {382 ds_display_t *disp;383 ds_client_t *client;384 ds_seat_t *seat;385 ds_window_t *wnd;386 display_wnd_params_t params;387 errno_t rc;388 389 rc = ds_display_create(NULL, df_none, &disp);390 PCUT_ASSERT_ERRNO_VAL(EOK, rc);391 392 rc = ds_client_create(disp, NULL, NULL, &client);393 PCUT_ASSERT_ERRNO_VAL(EOK, rc);394 395 rc = ds_seat_create(disp, "Alice", &seat);396 PCUT_ASSERT_ERRNO_VAL(EOK, rc);397 398 display_wnd_params_init(¶ms);399 params.rect.p0.x = params.rect.p0.y = 0;400 params.rect.p1.x = params.rect.p1.y = 10;401 402 rc = ds_window_create(client, ¶ms, &wnd);403 PCUT_ASSERT_ERRNO_VAL(EOK, rc);404 405 wnd->dpos.x = 100;406 wnd->dpos.y = 100;407 408 rc = ds_window_maximize(wnd);409 PCUT_ASSERT_ERRNO_VAL(EOK, rc);410 411 rc = ds_window_unmaximize(wnd);412 PCUT_ASSERT_ERRNO_VAL(EOK, rc);413 414 PCUT_ASSERT_INT_EQUALS(0, wnd->flags & wndf_maximized);415 416 ds_window_destroy(wnd);417 ds_seat_destroy(seat);418 ds_client_destroy(client);419 ds_display_destroy(disp);420 }421 422 101 /** Test ds_window_get_ctx(). */ 423 102 PCUT_TEST(window_get_ctx) … … 437 116 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 438 117 439 rc = ds_seat_create(disp, "Alice",&seat);118 rc = ds_seat_create(disp, &seat); 440 119 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 441 120 … … 456 135 } 457 136 458 /** Test ds_window_is_visible() */459 PCUT_TEST(is_visible)460 {461 ds_display_t *disp;462 ds_client_t *client;463 ds_seat_t *seat;464 ds_window_t *wnd;465 display_wnd_params_t params;466 errno_t rc;467 468 rc = ds_display_create(NULL, df_none, &disp);469 PCUT_ASSERT_ERRNO_VAL(EOK, rc);470 471 rc = ds_client_create(disp, NULL, NULL, &client);472 PCUT_ASSERT_ERRNO_VAL(EOK, rc);473 474 rc = ds_seat_create(disp, "Alice", &seat);475 PCUT_ASSERT_ERRNO_VAL(EOK, rc);476 477 display_wnd_params_init(¶ms);478 params.rect.p0.x = params.rect.p0.y = 0;479 params.rect.p1.x = params.rect.p1.y = 10;480 481 rc = ds_window_create(client, ¶ms, &wnd);482 PCUT_ASSERT_ERRNO_VAL(EOK, rc);483 484 PCUT_ASSERT_TRUE(ds_window_is_visible(wnd));485 486 wnd->flags |= wndf_minimized;487 488 PCUT_ASSERT_FALSE(ds_window_is_visible(wnd));489 490 ds_window_destroy(wnd);491 ds_seat_destroy(seat);492 ds_client_destroy(client);493 ds_display_destroy(disp);494 }495 496 137 /** Test ds_window_post_kbd_event() with Alt-F4 sends close event */ 497 138 PCUT_TEST(window_post_kbd_event_alt_f4) … … 517 158 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 518 159 519 rc = ds_seat_create(disp, "Alice",&seat);160 rc = ds_seat_create(disp, &seat); 520 161 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 521 162 … … 572 213 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 573 214 574 rc = ds_seat_create(disp, "Alice",&seat);215 rc = ds_seat_create(disp, &seat); 575 216 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 576 217 … … 624 265 } 625 266 626 /** Test ds_window_post_focus_event() */627 PCUT_TEST(window_post_focus_event)628 {629 gfx_context_t *gc;630 ds_display_t *disp;631 ds_client_t *client;632 ds_seat_t *seat;633 ds_window_t *wnd;634 display_wnd_params_t params;635 errno_t rc;636 637 rc = gfx_context_new(&dummy_ops, NULL, &gc);638 PCUT_ASSERT_ERRNO_VAL(EOK, rc);639 640 rc = ds_display_create(gc, df_none, &disp);641 PCUT_ASSERT_ERRNO_VAL(EOK, rc);642 643 rc = ds_client_create(disp, NULL, NULL, &client);644 PCUT_ASSERT_ERRNO_VAL(EOK, rc);645 646 rc = ds_seat_create(disp, "Alice", &seat);647 PCUT_ASSERT_ERRNO_VAL(EOK, rc);648 649 display_wnd_params_init(¶ms);650 params.rect.p0.x = params.rect.p0.y = 0;651 params.rect.p1.x = params.rect.p1.y = 1;652 653 rc = ds_window_create(client, ¶ms, &wnd);654 PCUT_ASSERT_ERRNO_VAL(EOK, rc);655 656 rc = ds_window_post_focus_event(wnd);657 PCUT_ASSERT_ERRNO_VAL(EOK, rc);658 659 ds_window_destroy(wnd);660 ds_seat_destroy(seat);661 ds_client_destroy(client);662 ds_display_destroy(disp);663 }664 665 /** Test ds_window_post_unfocus_event() */666 PCUT_TEST(window_post_unfocus_event)667 {668 gfx_context_t *gc;669 ds_display_t *disp;670 ds_client_t *client;671 ds_seat_t *seat;672 ds_window_t *wnd;673 display_wnd_params_t params;674 errno_t rc;675 676 rc = gfx_context_new(&dummy_ops, NULL, &gc);677 PCUT_ASSERT_ERRNO_VAL(EOK, rc);678 679 rc = ds_display_create(gc, df_none, &disp);680 PCUT_ASSERT_ERRNO_VAL(EOK, rc);681 682 rc = ds_client_create(disp, NULL, NULL, &client);683 PCUT_ASSERT_ERRNO_VAL(EOK, rc);684 685 rc = ds_seat_create(disp, "Alice", &seat);686 PCUT_ASSERT_ERRNO_VAL(EOK, rc);687 688 display_wnd_params_init(¶ms);689 params.rect.p0.x = params.rect.p0.y = 0;690 params.rect.p1.x = params.rect.p1.y = 1;691 692 rc = ds_window_create(client, ¶ms, &wnd);693 PCUT_ASSERT_ERRNO_VAL(EOK, rc);694 695 rc = ds_window_post_focus_event(wnd);696 PCUT_ASSERT_ERRNO_VAL(EOK, rc);697 698 ds_window_destroy(wnd);699 ds_seat_destroy(seat);700 ds_client_destroy(client);701 ds_display_destroy(disp);702 }703 704 267 /** Test ds_window_move_req() */ 705 268 PCUT_TEST(window_move_req) … … 712 275 display_wnd_params_t params; 713 276 gfx_coord2_t pos; 714 sysarg_t pos_id;715 277 errno_t rc; 716 278 … … 724 286 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 725 287 726 rc = ds_seat_create(disp, "Alice",&seat);288 rc = ds_seat_create(disp, &seat); 727 289 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 728 290 … … 738 300 pos.x = 42; 739 301 pos.y = 43; 740 pos_id = 44; 741 ds_window_move_req(wnd, &pos, pos_id); 302 ds_window_move_req(wnd, &pos); 742 303 743 304 PCUT_ASSERT_INT_EQUALS(dsw_moving, wnd->state); 744 305 PCUT_ASSERT_INT_EQUALS(pos.x, wnd->orig_pos.x); 745 306 PCUT_ASSERT_INT_EQUALS(pos.y, wnd->orig_pos.y); 746 PCUT_ASSERT_INT_EQUALS(pos_id, wnd->orig_pos_id);747 307 748 308 ds_window_destroy(wnd); … … 762 322 display_wnd_params_t params; 763 323 gfx_coord2_t pos; 764 sysarg_t pos_id;765 324 errno_t rc; 766 325 … … 774 333 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 775 334 776 rc = ds_seat_create(disp, "Alice",&seat);335 rc = ds_seat_create(disp, &seat); 777 336 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 778 337 … … 788 347 pos.x = 42; 789 348 pos.y = 43; 790 pos_id = 44; 791 ds_window_resize_req(wnd, display_wr_top_right, &pos, pos_id); 349 ds_window_resize_req(wnd, display_wr_top_right, &pos); 792 350 793 351 PCUT_ASSERT_INT_EQUALS(dsw_resizing, wnd->state); … … 795 353 PCUT_ASSERT_INT_EQUALS(pos.x, wnd->orig_pos.x); 796 354 PCUT_ASSERT_INT_EQUALS(pos.y, wnd->orig_pos.y); 797 PCUT_ASSERT_INT_EQUALS(pos_id, wnd->orig_pos_id);798 355 799 356 ds_window_destroy(wnd); … … 823 380 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 824 381 825 rc = ds_seat_create(disp, "Alice",&seat);382 rc = ds_seat_create(disp, &seat); 826 383 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 827 384 … … 1093 650 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1094 651 1095 rc = ds_seat_create(disp, "Alice",&seat);652 rc = ds_seat_create(disp, &seat); 1096 653 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1097 654 … … 1109 666 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1110 667 1111 // Check that invalid cursors cannot be set: ignore enum conversions1112 // as we are out-of-bounds1113 #pragma GCC diagnostic push1114 #if defined(__GNUC__) && (__GNUC__ >= 10)1115 #pragma GCC diagnostic ignored "-Wenum-conversion"1116 #endif1117 668 rc = ds_window_set_cursor(wnd, dcurs_limit); 1118 669 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); … … 1122 673 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); 1123 674 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1124 #pragma GCC diagnostic pop1125 675 1126 676 rc = ds_window_set_cursor(wnd, dcurs_size_lr); … … 1134 684 } 1135 685 1136 /** Test ds_window_set_caption() */1137 PCUT_TEST(window_set_caption)1138 {1139 gfx_context_t *gc;1140 ds_display_t *disp;1141 ds_client_t *client;1142 ds_seat_t *seat;1143 ds_window_t *wnd;1144 display_wnd_params_t params;1145 errno_t rc;1146 1147 rc = gfx_context_new(&dummy_ops, NULL, &gc);1148 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1149 1150 rc = ds_display_create(gc, df_none, &disp);1151 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1152 1153 rc = ds_client_create(disp, NULL, NULL, &client);1154 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1155 1156 rc = ds_seat_create(disp, "Alice", &seat);1157 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1158 1159 display_wnd_params_init(¶ms);1160 params.rect.p0.x = params.rect.p0.y = 0;1161 params.rect.p1.x = params.rect.p1.y = 1;1162 1163 rc = ds_window_create(client, ¶ms, &wnd);1164 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1165 1166 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor);1167 1168 rc = ds_window_set_caption(wnd, "Hello");1169 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1170 PCUT_ASSERT_INT_EQUALS(0, str_cmp("Hello", wnd->caption));1171 1172 ds_window_destroy(wnd);1173 ds_seat_destroy(seat);1174 ds_client_destroy(client);1175 ds_display_destroy(disp);1176 }1177 1178 /** ds_window_find_next() finds next window by flags */1179 PCUT_TEST(window_find_next)1180 {1181 gfx_context_t *gc;1182 ds_display_t *disp;1183 ds_client_t *client;1184 ds_seat_t *seat;1185 ds_window_t *w0;1186 ds_window_t *w1;1187 ds_window_t *w2;1188 ds_window_t *wnd;1189 display_wnd_params_t params;1190 errno_t rc;1191 1192 rc = gfx_context_new(&dummy_ops, NULL, &gc);1193 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1194 1195 rc = ds_display_create(gc, df_none, &disp);1196 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1197 1198 rc = ds_client_create(disp, NULL, NULL, &client);1199 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1200 1201 rc = ds_seat_create(disp, "Alice", &seat);1202 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1203 1204 display_wnd_params_init(¶ms);1205 params.rect.p0.x = params.rect.p0.y = 0;1206 params.rect.p1.x = params.rect.p1.y = 1;1207 1208 rc = ds_window_create(client, ¶ms, &w0);1209 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1210 1211 rc = ds_window_create(client, ¶ms, &w1);1212 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1213 w1->flags |= wndf_minimized;1214 1215 rc = ds_window_create(client, ¶ms, &w2);1216 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1217 w2->flags |= wndf_system;1218 1219 wnd = ds_window_find_next(w0, wndf_minimized);1220 PCUT_ASSERT_EQUALS(w1, wnd);1221 1222 wnd = ds_window_find_next(w0, wndf_system);1223 PCUT_ASSERT_EQUALS(w2, wnd);1224 1225 wnd = ds_window_find_next(w0, wndf_maximized);1226 PCUT_ASSERT_NULL(wnd);1227 1228 ds_window_destroy(w0);1229 ds_window_destroy(w1);1230 ds_window_destroy(w2);1231 ds_seat_destroy(seat);1232 ds_client_destroy(client);1233 ds_display_destroy(disp);1234 }1235 1236 /** ds_window_find_prev() finds previous window by flags */1237 PCUT_TEST(window_find_prev)1238 {1239 gfx_context_t *gc;1240 ds_display_t *disp;1241 ds_client_t *client;1242 ds_seat_t *seat;1243 ds_window_t *w0;1244 ds_window_t *w1;1245 ds_window_t *w2;1246 ds_window_t *wnd;1247 display_wnd_params_t params;1248 errno_t rc;1249 1250 rc = gfx_context_new(&dummy_ops, NULL, &gc);1251 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1252 1253 rc = ds_display_create(gc, df_none, &disp);1254 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1255 1256 rc = ds_client_create(disp, NULL, NULL, &client);1257 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1258 1259 rc = ds_seat_create(disp, "Alice", &seat);1260 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1261 1262 display_wnd_params_init(¶ms);1263 params.rect.p0.x = params.rect.p0.y = 0;1264 params.rect.p1.x = params.rect.p1.y = 1;1265 1266 rc = ds_window_create(client, ¶ms, &w2);1267 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1268 w2->flags |= wndf_system;1269 1270 rc = ds_window_create(client, ¶ms, &w1);1271 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1272 w1->flags |= wndf_minimized;1273 1274 rc = ds_window_create(client, ¶ms, &w0);1275 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1276 1277 wnd = ds_window_find_prev(w0, wndf_minimized);1278 PCUT_ASSERT_EQUALS(w1, wnd);1279 1280 wnd = ds_window_find_prev(w0, wndf_system);1281 PCUT_ASSERT_EQUALS(w2, wnd);1282 1283 wnd = ds_window_find_prev(w0, wndf_maximized);1284 PCUT_ASSERT_NULL(wnd);1285 1286 ds_window_destroy(w0);1287 ds_window_destroy(w1);1288 ds_window_destroy(w2);1289 ds_seat_destroy(seat);1290 ds_client_destroy(client);1291 ds_display_destroy(disp);1292 }1293 1294 /** ds_window_unfocus() switches to another window */1295 PCUT_TEST(window_unfocus)1296 {1297 gfx_context_t *gc;1298 ds_display_t *disp;1299 ds_client_t *client;1300 ds_seat_t *seat;1301 ds_window_t *w0;1302 ds_window_t *w1;1303 display_wnd_params_t params;1304 errno_t rc;1305 1306 rc = gfx_context_new(&dummy_ops, NULL, &gc);1307 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1308 1309 rc = ds_display_create(gc, df_none, &disp);1310 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1311 1312 rc = ds_client_create(disp, NULL, NULL, &client);1313 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1314 1315 rc = ds_seat_create(disp, "Alice", &seat);1316 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1317 1318 display_wnd_params_init(¶ms);1319 params.rect.p0.x = params.rect.p0.y = 0;1320 params.rect.p1.x = params.rect.p1.y = 1;1321 1322 rc = ds_window_create(client, ¶ms, &w1);1323 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1324 1325 rc = ds_window_create(client, ¶ms, &w0);1326 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1327 1328 PCUT_ASSERT_EQUALS(w0, seat->focus);1329 1330 ds_window_unfocus(w0);1331 1332 PCUT_ASSERT_EQUALS(w1, seat->focus);1333 1334 ds_window_destroy(w0);1335 ds_window_destroy(w1);1336 ds_seat_destroy(seat);1337 ds_client_destroy(client);1338 ds_display_destroy(disp);1339 }1340 1341 /** ds_window_orig_seat() correctly compares seats */1342 PCUT_TEST(window_orig_seat)1343 {1344 gfx_context_t *gc;1345 ds_display_t *disp;1346 ds_client_t *client;1347 ds_seat_t *seat0;1348 ds_seat_t *seat1;1349 sysarg_t devid0;1350 sysarg_t devid1;1351 ds_idevcfg_t *cfg0;1352 ds_idevcfg_t *cfg1;1353 ds_window_t *wnd;1354 display_wnd_params_t params;1355 errno_t rc;1356 1357 rc = gfx_context_new(&dummy_ops, NULL, &gc);1358 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1359 1360 rc = ds_display_create(gc, df_none, &disp);1361 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1362 1363 rc = ds_client_create(disp, NULL, NULL, &client);1364 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1365 1366 rc = ds_seat_create(disp, "Alice", &seat0);1367 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1368 1369 rc = ds_seat_create(disp, "Bob", &seat1);1370 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1371 1372 display_wnd_params_init(¶ms);1373 params.rect.p0.x = params.rect.p0.y = 0;1374 params.rect.p1.x = params.rect.p1.y = 1;1375 1376 rc = ds_window_create(client, ¶ms, &wnd);1377 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1378 1379 devid0 = 42;1380 devid1 = 43;1381 1382 rc = ds_idevcfg_create(disp, devid0, seat0, &cfg0);1383 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1384 1385 rc = ds_idevcfg_create(disp, devid1, seat1, &cfg1);1386 PCUT_ASSERT_ERRNO_VAL(EOK, rc);1387 1388 wnd->state = dsw_moving;1389 wnd->orig_pos_id = devid0;1390 1391 PCUT_ASSERT_TRUE(ds_window_orig_seat(wnd, devid0));1392 PCUT_ASSERT_FALSE(ds_window_orig_seat(wnd, devid1));1393 1394 ds_idevcfg_destroy(cfg0);1395 ds_idevcfg_destroy(cfg1);1396 ds_window_destroy(wnd);1397 ds_seat_destroy(seat0);1398 ds_seat_destroy(seat1);1399 ds_client_destroy(client);1400 ds_display_destroy(disp);1401 }1402 1403 686 static errno_t dummy_set_color(void *arg, gfx_color_t *color) 1404 687 {
Note:
See TracChangeset
for help on using the changeset viewer.