Changes in uspace/srv/hid/display/test/window.c [8aef01c:dd7df1c] in mainline
- File:
-
- 1 edited
-
uspace/srv/hid/display/test/window.c (modified) (30 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/hid/display/test/window.c
r8aef01c rdd7df1c 1 1 /* 2 * Copyright (c) 20 19Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 36 36 #include "../client.h" 37 37 #include "../display.h" 38 #include "../idevcfg.h" 38 39 #include "../seat.h" 39 40 #include "../window.h" … … 51 52 }; 52 53 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 53 132 /** Test ds_window_resize(). */ 54 133 PCUT_TEST(window_resize) … … 69 148 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 70 149 71 rc = ds_seat_create(disp, &seat);150 rc = ds_seat_create(disp, "Alice", &seat); 72 151 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 73 152 … … 99 178 } 100 179 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 101 422 /** Test ds_window_get_ctx(). */ 102 423 PCUT_TEST(window_get_ctx) … … 104 425 ds_display_t *disp; 105 426 ds_client_t *client; 427 ds_seat_t *seat; 106 428 ds_window_t *wnd; 107 429 display_wnd_params_t params; … … 113 435 114 436 rc = ds_client_create(disp, NULL, NULL, &client); 437 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 438 439 rc = ds_seat_create(disp, "Alice", &seat); 115 440 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 116 441 … … 126 451 127 452 ds_window_destroy(wnd); 453 ds_seat_destroy(seat); 454 ds_client_destroy(client); 455 ds_display_destroy(disp); 456 } 457 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); 128 492 ds_client_destroy(client); 129 493 ds_display_destroy(disp); … … 136 500 ds_display_t *disp; 137 501 ds_client_t *client; 502 ds_seat_t *seat; 138 503 ds_window_t *wnd; 139 504 ds_window_t *rwindow; … … 152 517 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 153 518 519 rc = ds_seat_create(disp, "Alice", &seat); 520 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 521 154 522 display_wnd_params_init(¶ms); 155 523 params.rect.p0.x = params.rect.p0.y = 0; … … 157 525 158 526 rc = ds_window_create(client, ¶ms, &wnd); 527 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 528 529 /* New window gets focused event */ 530 rc = ds_client_get_event(client, &rwindow, &revent); 159 531 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 160 532 … … 174 546 175 547 ds_window_destroy(wnd); 548 ds_seat_destroy(seat); 176 549 ds_client_destroy(client); 177 550 ds_display_destroy(disp); … … 184 557 ds_display_t *disp; 185 558 ds_client_t *client; 559 ds_seat_t *seat; 186 560 ds_window_t *wnd; 187 561 display_wnd_params_t params; … … 196 570 197 571 rc = ds_client_create(disp, NULL, NULL, &client); 572 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 573 574 rc = ds_seat_create(disp, "Alice", &seat); 198 575 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 199 576 … … 242 619 243 620 ds_window_destroy(wnd); 621 ds_seat_destroy(seat); 622 ds_client_destroy(client); 623 ds_display_destroy(disp); 624 } 625 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); 244 700 ds_client_destroy(client); 245 701 ds_display_destroy(disp); … … 252 708 ds_display_t *disp; 253 709 ds_client_t *client; 710 ds_seat_t *seat; 254 711 ds_window_t *wnd; 255 712 display_wnd_params_t params; 256 713 gfx_coord2_t pos; 714 sysarg_t pos_id; 257 715 errno_t rc; 258 716 … … 264 722 265 723 rc = ds_client_create(disp, NULL, NULL, &client); 724 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 725 726 rc = ds_seat_create(disp, "Alice", &seat); 266 727 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 267 728 … … 277 738 pos.x = 42; 278 739 pos.y = 43; 279 ds_window_move_req(wnd, &pos); 740 pos_id = 44; 741 ds_window_move_req(wnd, &pos, pos_id); 280 742 281 743 PCUT_ASSERT_INT_EQUALS(dsw_moving, wnd->state); 282 744 PCUT_ASSERT_INT_EQUALS(pos.x, wnd->orig_pos.x); 283 745 PCUT_ASSERT_INT_EQUALS(pos.y, wnd->orig_pos.y); 284 285 ds_window_destroy(wnd); 746 PCUT_ASSERT_INT_EQUALS(pos_id, wnd->orig_pos_id); 747 748 ds_window_destroy(wnd); 749 ds_seat_destroy(seat); 286 750 ds_client_destroy(client); 287 751 ds_display_destroy(disp); … … 298 762 display_wnd_params_t params; 299 763 gfx_coord2_t pos; 764 sysarg_t pos_id; 300 765 errno_t rc; 301 766 … … 309 774 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 310 775 311 rc = ds_seat_create(disp, &seat);776 rc = ds_seat_create(disp, "Alice", &seat); 312 777 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 313 778 … … 323 788 pos.x = 42; 324 789 pos.y = 43; 325 ds_window_resize_req(wnd, display_wr_top_right, &pos); 790 pos_id = 44; 791 ds_window_resize_req(wnd, display_wr_top_right, &pos, pos_id); 326 792 327 793 PCUT_ASSERT_INT_EQUALS(dsw_resizing, wnd->state); … … 329 795 PCUT_ASSERT_INT_EQUALS(pos.x, wnd->orig_pos.x); 330 796 PCUT_ASSERT_INT_EQUALS(pos.y, wnd->orig_pos.y); 797 PCUT_ASSERT_INT_EQUALS(pos_id, wnd->orig_pos_id); 331 798 332 799 ds_window_destroy(wnd); … … 340 807 ds_display_t *disp; 341 808 ds_client_t *client; 809 ds_seat_t *seat; 342 810 ds_window_t *wnd; 343 811 display_wnd_params_t params; … … 353 821 354 822 rc = ds_client_create(disp, NULL, NULL, &client); 823 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 824 825 rc = ds_seat_create(disp, "Alice", &seat); 355 826 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 356 827 … … 597 1068 598 1069 ds_window_destroy(wnd); 1070 ds_seat_destroy(seat); 599 1071 ds_client_destroy(client); 600 1072 ds_display_destroy(disp); … … 607 1079 ds_display_t *disp; 608 1080 ds_client_t *client; 1081 ds_seat_t *seat; 609 1082 ds_window_t *wnd; 610 1083 display_wnd_params_t params; … … 618 1091 619 1092 rc = ds_client_create(disp, NULL, NULL, &client); 1093 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 1094 1095 rc = ds_seat_create(disp, "Alice", &seat); 620 1096 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 621 1097 … … 633 1109 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 634 1110 1111 // Check that invalid cursors cannot be set: ignore enum conversions 1112 // as we are out-of-bounds 1113 #pragma GCC diagnostic push 1114 #if defined(__GNUC__) && (__GNUC__ >= 10) 1115 #pragma GCC diagnostic ignored "-Wenum-conversion" 1116 #endif 635 1117 rc = ds_window_set_cursor(wnd, dcurs_limit); 636 1118 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); … … 640 1122 PCUT_ASSERT_ERRNO_VAL(EINVAL, rc); 641 1123 PCUT_ASSERT_EQUALS(wnd->display->cursor[dcurs_arrow], wnd->cursor); 1124 #pragma GCC diagnostic pop 642 1125 643 1126 rc = ds_window_set_cursor(wnd, dcurs_size_lr); … … 646 1129 647 1130 ds_window_destroy(wnd); 1131 ds_seat_destroy(seat); 1132 ds_client_destroy(client); 1133 ds_display_destroy(disp); 1134 } 1135 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); 648 1399 ds_client_destroy(client); 649 1400 ds_display_destroy(disp);
Note:
See TracChangeset
for help on using the changeset viewer.
