Changes in uspace/lib/ui/test/window.c [cde067e:0576df9] in mainline
- File:
-
- 1 edited
-
uspace/lib/ui/test/window.c (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/test/window.c
rcde067e r0576df9 1 1 /* 2 * Copyright (c) 202 4Jiri Svoboda2 * Copyright (c) 2020 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 45 45 PCUT_TEST_SUITE(window); 46 46 47 static void test_window_sysmenu(ui_window_t *, void *, sysarg_t);48 static void test_window_minimize(ui_window_t *, void *);49 static void test_window_maximize(ui_window_t *, void *);50 static void test_window_unmaximize(ui_window_t *, void *);51 47 static void test_window_close(ui_window_t *, void *); 52 static void test_window_focus(ui_window_t *, void * , unsigned);48 static void test_window_focus(ui_window_t *, void *); 53 49 static void test_window_kbd(ui_window_t *, void *, kbd_event_t *); 54 50 static errno_t test_window_paint(ui_window_t *, void *); 55 51 static void test_window_pos(ui_window_t *, void *, pos_event_t *); 56 static void test_window_unfocus(ui_window_t *, void *, unsigned); 57 static void test_window_resize(ui_window_t *, void *); 52 static void test_window_unfocus(ui_window_t *, void *); 58 53 59 54 static ui_window_cb_t test_window_cb = { 60 .sysmenu = test_window_sysmenu,61 .minimize = test_window_minimize,62 .maximize = test_window_maximize,63 .unmaximize = test_window_unmaximize,64 55 .close = test_window_close, 65 56 .focus = test_window_focus, … … 67 58 .paint = test_window_paint, 68 59 .pos = test_window_pos, 69 .unfocus = test_window_unfocus, 70 .resize = test_window_resize 60 .unfocus = test_window_unfocus 71 61 }; 72 62 … … 76 66 static errno_t test_ctl_paint(void *); 77 67 static ui_evclaim_t test_ctl_pos_event(void *, pos_event_t *); 78 static void test_ctl_unfocus(void *, unsigned);79 68 80 69 static ui_control_ops_t test_ctl_ops = { 81 70 .paint = test_ctl_paint, 82 .pos_event = test_ctl_pos_event, 83 .unfocus = test_ctl_unfocus 71 .pos_event = test_ctl_pos_event 84 72 }; 85 73 86 74 typedef struct { 87 75 errno_t rc; 88 bool sysmenu;89 sysarg_t sysmenu_idev_id;90 bool minimize;91 bool maximize;92 bool unmaximize;93 76 bool close; 94 77 bool focus; 95 unsigned focus_nfocus;96 78 bool kbd; 97 79 kbd_event_t kbd_event; … … 100 82 pos_event_t pos_event; 101 83 bool unfocus; 102 unsigned unfocus_nfocus;103 bool resize;104 84 } test_cb_resp_t; 105 85 … … 110 90 bool pos; 111 91 pos_event_t pos_event; 112 bool unfocus;113 unsigned unfocus_nfocus;114 92 } test_ctl_resp_t; 115 93 … … 197 175 } 198 176 199 /** ui_window_get_active */200 PCUT_TEST(get_active)201 {202 errno_t rc;203 ui_t *ui = NULL;204 ui_wnd_params_t params;205 ui_window_t *window1 = NULL;206 ui_window_t *window2 = NULL;207 ui_window_t *awnd;208 209 rc = ui_create_cons(NULL, &ui);210 PCUT_ASSERT_ERRNO_VAL(EOK, rc);211 212 awnd = ui_window_get_active(ui);213 PCUT_ASSERT_NULL(awnd);214 215 ui_wnd_params_init(¶ms);216 params.caption = "Hello";217 218 rc = ui_window_create(ui, ¶ms, &window1);219 PCUT_ASSERT_ERRNO_VAL(EOK, rc);220 PCUT_ASSERT_NOT_NULL(window1);221 222 awnd = ui_window_get_active(ui);223 PCUT_ASSERT_EQUALS(window1, awnd);224 225 rc = ui_window_create(ui, ¶ms, &window2);226 PCUT_ASSERT_ERRNO_VAL(EOK, rc);227 PCUT_ASSERT_NOT_NULL(window2);228 229 awnd = ui_window_get_active(ui);230 PCUT_ASSERT_EQUALS(window2, awnd);231 232 ui_window_destroy(window2);233 234 awnd = ui_window_get_active(ui);235 PCUT_ASSERT_EQUALS(window1, awnd);236 237 ui_window_destroy(window1);238 239 awnd = ui_window_get_active(ui);240 PCUT_ASSERT_NULL(awnd);241 242 ui_destroy(ui);243 }244 245 177 /** ui_window_resize */ 246 178 PCUT_TEST(resize) … … 277 209 } 278 210 279 /** ui_window_get_ui() returns containing UI */280 PCUT_TEST(get_ui)281 {282 errno_t rc;283 ui_t *ui = NULL;284 ui_t *rui;285 ui_wnd_params_t params;286 ui_window_t *window = NULL;287 288 rc = ui_create_disp(NULL, &ui);289 PCUT_ASSERT_ERRNO_VAL(EOK, rc);290 291 ui_wnd_params_init(¶ms);292 params.caption = "Hello";293 294 rc = ui_window_create(ui, ¶ms, &window);295 PCUT_ASSERT_ERRNO_VAL(EOK, rc);296 PCUT_ASSERT_NOT_NULL(window);297 298 rui = ui_window_get_ui(window);299 PCUT_ASSERT_EQUALS(ui, rui);300 301 ui_window_destroy(window);302 ui_destroy(ui);303 }304 305 211 /** ui_window_get_res/gc/rect() return valid objects */ 306 212 PCUT_TEST(get_res_gc_rect) … … 336 242 } 337 243 338 /** ui_window_set_ctl_cursor() */339 PCUT_TEST(set_ctl_cursor)340 {341 errno_t rc;342 ui_t *ui = NULL;343 ui_wnd_params_t params;344 ui_window_t *window = NULL;345 346 rc = ui_create_disp(NULL, &ui);347 PCUT_ASSERT_ERRNO_VAL(EOK, rc);348 349 ui_wnd_params_init(¶ms);350 params.caption = "Hello";351 352 rc = ui_window_create(ui, ¶ms, &window);353 PCUT_ASSERT_ERRNO_VAL(EOK, rc);354 PCUT_ASSERT_NOT_NULL(window);355 356 ui_window_set_ctl_cursor(window, ui_curs_ibeam);357 358 ui_window_destroy(window);359 ui_destroy(ui);360 }361 362 244 /** ui_window_get_app_gc() return valid GC */ 363 245 PCUT_TEST(get_app_gc) … … 376 258 params.rect.p0.x = 0; 377 259 params.rect.p0.y = 0; 378 params.rect.p0.x = 10 0;379 params.rect.p0.y = 10 0;260 params.rect.p0.x = 10; 261 params.rect.p0.y = 10; 380 262 381 263 rc = ui_window_create(ui, ¶ms, &window); … … 514 396 } 515 397 516 /** ui_window_def_unfocus() delivers unfocus event to control in window */517 PCUT_TEST(def_unfocus)518 {519 errno_t rc;520 ui_t *ui = NULL;521 ui_wnd_params_t params;522 ui_window_t *window = NULL;523 ui_control_t *control = NULL;524 test_ctl_resp_t resp;525 526 rc = ui_create_disp(NULL, &ui);527 PCUT_ASSERT_ERRNO_VAL(EOK, rc);528 529 ui_wnd_params_init(¶ms);530 params.caption = "Hello";531 532 rc = ui_window_create(ui, ¶ms, &window);533 PCUT_ASSERT_ERRNO_VAL(EOK, rc);534 535 rc = ui_control_new(&test_ctl_ops, &resp, &control);536 PCUT_ASSERT_ERRNO_VAL(EOK, rc);537 538 ui_window_add(window, control);539 540 resp.unfocus = false;541 542 ui_window_def_unfocus(window, 42);543 PCUT_ASSERT_TRUE(resp.unfocus);544 PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus);545 546 /* Need to remove first because we didn't implement the destructor */547 ui_window_remove(window, control);548 549 ui_window_destroy(window);550 ui_destroy(ui);551 }552 553 /** ui_window_send_sysmenu() calls sysmenu callback set via ui_window_set_cb() */554 PCUT_TEST(send_sysmenu)555 {556 errno_t rc;557 ui_t *ui = NULL;558 ui_wnd_params_t params;559 ui_window_t *window = NULL;560 test_cb_resp_t resp;561 562 rc = ui_create_disp(NULL, &ui);563 PCUT_ASSERT_ERRNO_VAL(EOK, rc);564 565 ui_wnd_params_init(¶ms);566 params.caption = "Hello";567 568 rc = ui_window_create(ui, ¶ms, &window);569 PCUT_ASSERT_ERRNO_VAL(EOK, rc);570 PCUT_ASSERT_NOT_NULL(window);571 572 /* Sysmenu callback with no callbacks set */573 ui_window_send_sysmenu(window, 42);574 575 /* Sysmenu callback with sysmenu callback not implemented */576 ui_window_set_cb(window, &dummy_window_cb, NULL);577 ui_window_send_sysmenu(window, 42);578 579 /* Sysmenu callback with real callback set */580 resp.sysmenu = false;581 resp.sysmenu_idev_id = 0;582 ui_window_set_cb(window, &test_window_cb, &resp);583 ui_window_send_sysmenu(window, 42);584 PCUT_ASSERT_TRUE(resp.sysmenu);585 PCUT_ASSERT_INT_EQUALS(42, resp.sysmenu_idev_id);586 587 ui_window_destroy(window);588 ui_destroy(ui);589 }590 591 /** ui_window_send_minimize() calls minimize callback set via ui_window_set_cb() */592 PCUT_TEST(send_minimize)593 {594 errno_t rc;595 ui_t *ui = NULL;596 ui_wnd_params_t params;597 ui_window_t *window = NULL;598 test_cb_resp_t resp;599 600 rc = ui_create_disp(NULL, &ui);601 PCUT_ASSERT_ERRNO_VAL(EOK, rc);602 603 ui_wnd_params_init(¶ms);604 params.caption = "Hello";605 606 rc = ui_window_create(ui, ¶ms, &window);607 PCUT_ASSERT_ERRNO_VAL(EOK, rc);608 PCUT_ASSERT_NOT_NULL(window);609 610 /* Minimize callback with no callbacks set */611 ui_window_send_minimize(window);612 613 /* Minimize callback with minimize callback not implemented */614 ui_window_set_cb(window, &dummy_window_cb, NULL);615 ui_window_send_minimize(window);616 617 /* Minimize callback with real callback set */618 resp.minimize = false;619 ui_window_set_cb(window, &test_window_cb, &resp);620 ui_window_send_minimize(window);621 PCUT_ASSERT_TRUE(resp.minimize);622 623 ui_window_destroy(window);624 ui_destroy(ui);625 }626 627 /** ui_window_send_maximize() calls maximize callback set via ui_window_set_cb() */628 PCUT_TEST(send_maximize)629 {630 errno_t rc;631 ui_t *ui = NULL;632 ui_wnd_params_t params;633 ui_window_t *window = NULL;634 test_cb_resp_t resp;635 636 rc = ui_create_disp(NULL, &ui);637 PCUT_ASSERT_ERRNO_VAL(EOK, rc);638 639 ui_wnd_params_init(¶ms);640 params.caption = "Hello";641 642 rc = ui_window_create(ui, ¶ms, &window);643 PCUT_ASSERT_ERRNO_VAL(EOK, rc);644 PCUT_ASSERT_NOT_NULL(window);645 646 /* Maximize callback with no callbacks set */647 ui_window_send_maximize(window);648 649 /* Maximize callback with maximize callback not implemented */650 ui_window_set_cb(window, &dummy_window_cb, NULL);651 ui_window_send_maximize(window);652 653 /* Maximize callback with real callback set */654 resp.maximize = false;655 ui_window_set_cb(window, &test_window_cb, &resp);656 ui_window_send_maximize(window);657 PCUT_ASSERT_TRUE(resp.maximize);658 659 ui_window_destroy(window);660 ui_destroy(ui);661 }662 663 /** ui_window_send_unmaximize() calls unmaximize callback set via ui_window_set_cb() */664 PCUT_TEST(send_unmaximize)665 {666 errno_t rc;667 ui_t *ui = NULL;668 ui_wnd_params_t params;669 ui_window_t *window = NULL;670 test_cb_resp_t resp;671 672 rc = ui_create_disp(NULL, &ui);673 PCUT_ASSERT_ERRNO_VAL(EOK, rc);674 675 ui_wnd_params_init(¶ms);676 params.caption = "Hello";677 678 rc = ui_window_create(ui, ¶ms, &window);679 PCUT_ASSERT_ERRNO_VAL(EOK, rc);680 PCUT_ASSERT_NOT_NULL(window);681 682 /* Unmaximize callback with no callbacks set */683 ui_window_send_unmaximize(window);684 685 /* Unmaximize callback with unmaximize callback not implemented */686 ui_window_set_cb(window, &dummy_window_cb, NULL);687 ui_window_send_unmaximize(window);688 689 /* Unmaximize callback with real callback set */690 resp.unmaximize = false;691 ui_window_set_cb(window, &test_window_cb, &resp);692 ui_window_send_unmaximize(window);693 PCUT_ASSERT_TRUE(resp.unmaximize);694 695 ui_window_destroy(window);696 ui_destroy(ui);697 }698 699 398 /** ui_window_send_close() calls close callback set via ui_window_set_cb() */ 700 399 PCUT_TEST(send_close) … … 753 452 754 453 /* Focus callback with no callbacks set */ 755 ui_window_send_focus(window , 42);454 ui_window_send_focus(window); 756 455 757 456 /* Focus callback with focus callback not implemented */ 758 457 ui_window_set_cb(window, &dummy_window_cb, NULL); 759 ui_window_send_focus(window , 42);458 ui_window_send_focus(window); 760 459 761 460 /* Focus callback with real callback set */ 762 461 resp.focus = false; 763 462 ui_window_set_cb(window, &test_window_cb, &resp); 764 ui_window_send_focus(window , 42);463 ui_window_send_focus(window); 765 464 PCUT_ASSERT_TRUE(resp.focus); 766 PCUT_ASSERT_INT_EQUALS(42, resp.focus_nfocus);767 465 768 466 ui_window_destroy(window); … … 790 488 PCUT_ASSERT_NOT_NULL(window); 791 489 792 kbd_event.type = KEY_PRESS;490 kbd_event.type = POS_PRESS; 793 491 kbd_event.key = KC_X; 794 492 kbd_event.mods = 0; … … 922 620 923 621 /* Unfocus callback with no callbacks set */ 924 ui_window_send_unfocus(window , 42);622 ui_window_send_unfocus(window); 925 623 926 624 /* Unfocus callback with unfocus callback not implemented */ 927 625 ui_window_set_cb(window, &dummy_window_cb, NULL); 928 ui_window_send_unfocus(window , 42);626 ui_window_send_unfocus(window); 929 627 930 628 /* Unfocus callback with real callback set */ 931 629 resp.close = false; 932 630 ui_window_set_cb(window, &test_window_cb, &resp); 933 ui_window_send_unfocus(window , 42);631 ui_window_send_unfocus(window); 934 632 PCUT_ASSERT_TRUE(resp.unfocus); 935 PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus); 936 937 ui_window_destroy(window); 938 ui_destroy(ui); 939 } 940 941 /** ui_window_send_resize() calls resize callback set via ui_window_set_cb() */ 942 PCUT_TEST(send_resize) 943 { 944 errno_t rc; 945 ui_t *ui = NULL; 946 ui_wnd_params_t params; 947 ui_window_t *window = NULL; 948 test_cb_resp_t resp; 949 950 rc = ui_create_disp(NULL, &ui); 951 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 952 953 ui_wnd_params_init(¶ms); 954 params.caption = "Hello"; 955 956 rc = ui_window_create(ui, ¶ms, &window); 957 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 958 PCUT_ASSERT_NOT_NULL(window); 959 960 /* Resize callback with no callbacks set */ 961 ui_window_send_resize(window); 962 963 /* Resize callback with resize callback not implemented */ 964 ui_window_set_cb(window, &dummy_window_cb, NULL); 965 ui_window_send_resize(window); 966 967 /* Resize callback with real callback set */ 968 resp.close = false; 969 ui_window_set_cb(window, &test_window_cb, &resp); 970 ui_window_send_resize(window); 971 PCUT_ASSERT_TRUE(resp.resize); 972 973 ui_window_destroy(window); 974 ui_destroy(ui); 975 } 976 977 static void test_window_sysmenu(ui_window_t *window, void *arg, sysarg_t idev_id) 633 634 ui_window_destroy(window); 635 ui_destroy(ui); 636 } 637 638 static void test_window_close(ui_window_t *window, void *arg) 978 639 { 979 640 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 980 641 981 resp->sysmenu = true; 982 resp->sysmenu_idev_id = idev_id; 983 } 984 985 static void test_window_minimize(ui_window_t *window, void *arg) 642 resp->close = true; 643 } 644 645 static void test_window_focus(ui_window_t *window, void *arg) 986 646 { 987 647 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 988 648 989 resp->minimize = true;990 }991 992 static void test_window_maximize(ui_window_t *window, void *arg)993 {994 test_cb_resp_t *resp = (test_cb_resp_t *) arg;995 996 resp->maximize = true;997 }998 999 static void test_window_unmaximize(ui_window_t *window, void *arg)1000 {1001 test_cb_resp_t *resp = (test_cb_resp_t *) arg;1002 1003 resp->unmaximize = true;1004 }1005 1006 static void test_window_close(ui_window_t *window, void *arg)1007 {1008 test_cb_resp_t *resp = (test_cb_resp_t *) arg;1009 1010 resp->close = true;1011 }1012 1013 static void test_window_focus(ui_window_t *window, void *arg, unsigned nfocus)1014 {1015 test_cb_resp_t *resp = (test_cb_resp_t *) arg;1016 1017 649 resp->focus = true; 1018 resp->focus_nfocus = nfocus;1019 650 } 1020 651 … … 1045 676 } 1046 677 1047 static void test_window_unfocus(ui_window_t *window, void *arg , unsigned nfocus)678 static void test_window_unfocus(ui_window_t *window, void *arg) 1048 679 { 1049 680 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 1050 681 1051 682 resp->unfocus = true; 1052 resp->unfocus_nfocus = nfocus;1053 }1054 1055 static void test_window_resize(ui_window_t *window, void *arg)1056 {1057 test_cb_resp_t *resp = (test_cb_resp_t *) arg;1058 1059 resp->resize = true;1060 683 } 1061 684 … … 1078 701 } 1079 702 1080 static void test_ctl_unfocus(void *arg, unsigned nfocus)1081 {1082 test_ctl_resp_t *resp = (test_ctl_resp_t *) arg;1083 1084 resp->unfocus = true;1085 resp->unfocus_nfocus = nfocus;1086 }1087 1088 703 PCUT_EXPORT(window);
Note:
See TracChangeset
for help on using the changeset viewer.
