Changes in uspace/lib/ui/test/window.c [3d10a2f:09b01ed0] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/test/window.c
r3d10a2f r09b01ed0 1 1 /* 2 * Copyright (c) 202 1Jiri Svoboda2 * Copyright (c) 2023 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 *); 47 51 static void test_window_close(ui_window_t *, void *); 48 static void test_window_focus(ui_window_t *, void * );52 static void test_window_focus(ui_window_t *, void *, unsigned); 49 53 static void test_window_kbd(ui_window_t *, void *, kbd_event_t *); 50 54 static errno_t test_window_paint(ui_window_t *, void *); 51 55 static void test_window_pos(ui_window_t *, void *, pos_event_t *); 52 static void test_window_unfocus(ui_window_t *, void * );56 static void test_window_unfocus(ui_window_t *, void *, unsigned); 53 57 54 58 static ui_window_cb_t test_window_cb = { 59 .sysmenu = test_window_sysmenu, 60 .minimize = test_window_minimize, 61 .maximize = test_window_maximize, 62 .unmaximize = test_window_unmaximize, 55 63 .close = test_window_close, 56 64 .focus = test_window_focus, … … 66 74 static errno_t test_ctl_paint(void *); 67 75 static ui_evclaim_t test_ctl_pos_event(void *, pos_event_t *); 68 static void test_ctl_unfocus(void * );76 static void test_ctl_unfocus(void *, unsigned); 69 77 70 78 static ui_control_ops_t test_ctl_ops = { … … 76 84 typedef struct { 77 85 errno_t rc; 86 bool sysmenu; 87 sysarg_t sysmenu_idev_id; 88 bool minimize; 89 bool maximize; 90 bool unmaximize; 78 91 bool close; 79 92 bool focus; 93 unsigned focus_nfocus; 80 94 bool kbd; 81 95 kbd_event_t kbd_event; … … 84 98 pos_event_t pos_event; 85 99 bool unfocus; 100 unsigned unfocus_nfocus; 86 101 } test_cb_resp_t; 87 102 … … 93 108 pos_event_t pos_event; 94 109 bool unfocus; 110 unsigned unfocus_nfocus; 95 111 } test_ctl_resp_t; 96 112 … … 521 537 resp.unfocus = false; 522 538 523 ui_window_def_unfocus(window );539 ui_window_def_unfocus(window, 42); 524 540 PCUT_ASSERT_TRUE(resp.unfocus); 541 PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus); 525 542 526 543 /* Need to remove first because we didn't implement the destructor */ 527 544 ui_window_remove(window, control); 545 546 ui_window_destroy(window); 547 ui_destroy(ui); 548 } 549 550 /** ui_window_send_sysmenu() calls sysmenu callback set via ui_window_set_cb() */ 551 PCUT_TEST(send_sysmenu) 552 { 553 errno_t rc; 554 ui_t *ui = NULL; 555 ui_wnd_params_t params; 556 ui_window_t *window = NULL; 557 test_cb_resp_t resp; 558 559 rc = ui_create_disp(NULL, &ui); 560 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 561 562 ui_wnd_params_init(¶ms); 563 params.caption = "Hello"; 564 565 rc = ui_window_create(ui, ¶ms, &window); 566 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 567 PCUT_ASSERT_NOT_NULL(window); 568 569 /* Sysmenu callback with no callbacks set */ 570 ui_window_send_sysmenu(window, 42); 571 572 /* Sysmenu callback with sysmenu callback not implemented */ 573 ui_window_set_cb(window, &dummy_window_cb, NULL); 574 ui_window_send_sysmenu(window, 42); 575 576 /* Sysmenu callback with real callback set */ 577 resp.sysmenu = false; 578 resp.sysmenu_idev_id = 0; 579 ui_window_set_cb(window, &test_window_cb, &resp); 580 ui_window_send_sysmenu(window, 42); 581 PCUT_ASSERT_TRUE(resp.sysmenu); 582 PCUT_ASSERT_INT_EQUALS(42, resp.sysmenu_idev_id); 583 584 ui_window_destroy(window); 585 ui_destroy(ui); 586 } 587 588 /** ui_window_send_minimize() calls minimize callback set via ui_window_set_cb() */ 589 PCUT_TEST(send_minimize) 590 { 591 errno_t rc; 592 ui_t *ui = NULL; 593 ui_wnd_params_t params; 594 ui_window_t *window = NULL; 595 test_cb_resp_t resp; 596 597 rc = ui_create_disp(NULL, &ui); 598 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 599 600 ui_wnd_params_init(¶ms); 601 params.caption = "Hello"; 602 603 rc = ui_window_create(ui, ¶ms, &window); 604 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 605 PCUT_ASSERT_NOT_NULL(window); 606 607 /* Minimize callback with no callbacks set */ 608 ui_window_send_minimize(window); 609 610 /* Minimize callback with minimize callback not implemented */ 611 ui_window_set_cb(window, &dummy_window_cb, NULL); 612 ui_window_send_minimize(window); 613 614 /* Minimize callback with real callback set */ 615 resp.minimize = false; 616 ui_window_set_cb(window, &test_window_cb, &resp); 617 ui_window_send_minimize(window); 618 PCUT_ASSERT_TRUE(resp.minimize); 619 620 ui_window_destroy(window); 621 ui_destroy(ui); 622 } 623 624 /** ui_window_send_maximize() calls maximize callback set via ui_window_set_cb() */ 625 PCUT_TEST(send_maximize) 626 { 627 errno_t rc; 628 ui_t *ui = NULL; 629 ui_wnd_params_t params; 630 ui_window_t *window = NULL; 631 test_cb_resp_t resp; 632 633 rc = ui_create_disp(NULL, &ui); 634 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 635 636 ui_wnd_params_init(¶ms); 637 params.caption = "Hello"; 638 639 rc = ui_window_create(ui, ¶ms, &window); 640 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 641 PCUT_ASSERT_NOT_NULL(window); 642 643 /* Maximize callback with no callbacks set */ 644 ui_window_send_maximize(window); 645 646 /* Maximize callback with maximize callback not implemented */ 647 ui_window_set_cb(window, &dummy_window_cb, NULL); 648 ui_window_send_maximize(window); 649 650 /* Maximize callback with real callback set */ 651 resp.maximize = false; 652 ui_window_set_cb(window, &test_window_cb, &resp); 653 ui_window_send_maximize(window); 654 PCUT_ASSERT_TRUE(resp.maximize); 655 656 ui_window_destroy(window); 657 ui_destroy(ui); 658 } 659 660 /** ui_window_send_unmaximize() calls unmaximize callback set via ui_window_set_cb() */ 661 PCUT_TEST(send_unmaximize) 662 { 663 errno_t rc; 664 ui_t *ui = NULL; 665 ui_wnd_params_t params; 666 ui_window_t *window = NULL; 667 test_cb_resp_t resp; 668 669 rc = ui_create_disp(NULL, &ui); 670 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 671 672 ui_wnd_params_init(¶ms); 673 params.caption = "Hello"; 674 675 rc = ui_window_create(ui, ¶ms, &window); 676 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 677 PCUT_ASSERT_NOT_NULL(window); 678 679 /* Unmaximize callback with no callbacks set */ 680 ui_window_send_unmaximize(window); 681 682 /* Unmaximize callback with unmaximize callback not implemented */ 683 ui_window_set_cb(window, &dummy_window_cb, NULL); 684 ui_window_send_unmaximize(window); 685 686 /* Unmaximize callback with real callback set */ 687 resp.unmaximize = false; 688 ui_window_set_cb(window, &test_window_cb, &resp); 689 ui_window_send_unmaximize(window); 690 PCUT_ASSERT_TRUE(resp.unmaximize); 528 691 529 692 ui_window_destroy(window); … … 587 750 588 751 /* Focus callback with no callbacks set */ 589 ui_window_send_focus(window );752 ui_window_send_focus(window, 42); 590 753 591 754 /* Focus callback with focus callback not implemented */ 592 755 ui_window_set_cb(window, &dummy_window_cb, NULL); 593 ui_window_send_focus(window );756 ui_window_send_focus(window, 42); 594 757 595 758 /* Focus callback with real callback set */ 596 759 resp.focus = false; 597 760 ui_window_set_cb(window, &test_window_cb, &resp); 598 ui_window_send_focus(window );761 ui_window_send_focus(window, 42); 599 762 PCUT_ASSERT_TRUE(resp.focus); 763 PCUT_ASSERT_INT_EQUALS(42, resp.focus_nfocus); 600 764 601 765 ui_window_destroy(window); … … 623 787 PCUT_ASSERT_NOT_NULL(window); 624 788 625 kbd_event.type = POS_PRESS;789 kbd_event.type = KEY_PRESS; 626 790 kbd_event.key = KC_X; 627 791 kbd_event.mods = 0; … … 755 919 756 920 /* Unfocus callback with no callbacks set */ 757 ui_window_send_unfocus(window );921 ui_window_send_unfocus(window, 42); 758 922 759 923 /* Unfocus callback with unfocus callback not implemented */ 760 924 ui_window_set_cb(window, &dummy_window_cb, NULL); 761 ui_window_send_unfocus(window );925 ui_window_send_unfocus(window, 42); 762 926 763 927 /* Unfocus callback with real callback set */ 764 928 resp.close = false; 765 929 ui_window_set_cb(window, &test_window_cb, &resp); 766 ui_window_send_unfocus(window );930 ui_window_send_unfocus(window, 42); 767 931 PCUT_ASSERT_TRUE(resp.unfocus); 768 769 ui_window_destroy(window); 770 ui_destroy(ui); 932 PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus); 933 934 ui_window_destroy(window); 935 ui_destroy(ui); 936 } 937 938 static void test_window_sysmenu(ui_window_t *window, void *arg, sysarg_t idev_id) 939 { 940 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 941 942 resp->sysmenu = true; 943 resp->sysmenu_idev_id = idev_id; 944 } 945 946 static void test_window_minimize(ui_window_t *window, void *arg) 947 { 948 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 949 950 resp->minimize = true; 951 } 952 953 static void test_window_maximize(ui_window_t *window, void *arg) 954 { 955 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 956 957 resp->maximize = true; 958 } 959 960 static void test_window_unmaximize(ui_window_t *window, void *arg) 961 { 962 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 963 964 resp->unmaximize = true; 771 965 } 772 966 … … 778 972 } 779 973 780 static void test_window_focus(ui_window_t *window, void *arg )974 static void test_window_focus(ui_window_t *window, void *arg, unsigned nfocus) 781 975 { 782 976 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 783 977 784 978 resp->focus = true; 979 resp->focus_nfocus = nfocus; 785 980 } 786 981 … … 811 1006 } 812 1007 813 static void test_window_unfocus(ui_window_t *window, void *arg )1008 static void test_window_unfocus(ui_window_t *window, void *arg, unsigned nfocus) 814 1009 { 815 1010 test_cb_resp_t *resp = (test_cb_resp_t *) arg; 816 1011 817 1012 resp->unfocus = true; 1013 resp->unfocus_nfocus = nfocus; 818 1014 } 819 1015 … … 836 1032 } 837 1033 838 static void test_ctl_unfocus(void *arg )1034 static void test_ctl_unfocus(void *arg, unsigned nfocus) 839 1035 { 840 1036 test_ctl_resp_t *resp = (test_ctl_resp_t *) arg; 841 1037 842 1038 resp->unfocus = true; 1039 resp->unfocus_nfocus = nfocus; 843 1040 } 844 1041
Note:
See TracChangeset
for help on using the changeset viewer.