Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ui/test/window.c

    r09b01ed0 r3d10a2f  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4545PCUT_TEST_SUITE(window);
    4646
    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 *);
    5147static void test_window_close(ui_window_t *, void *);
    52 static void test_window_focus(ui_window_t *, void *, unsigned);
     48static void test_window_focus(ui_window_t *, void *);
    5349static void test_window_kbd(ui_window_t *, void *, kbd_event_t *);
    5450static errno_t test_window_paint(ui_window_t *, void *);
    5551static void test_window_pos(ui_window_t *, void *, pos_event_t *);
    56 static void test_window_unfocus(ui_window_t *, void *, unsigned);
     52static void test_window_unfocus(ui_window_t *, void *);
    5753
    5854static 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,
    6355        .close = test_window_close,
    6456        .focus = test_window_focus,
     
    7466static errno_t test_ctl_paint(void *);
    7567static ui_evclaim_t test_ctl_pos_event(void *, pos_event_t *);
    76 static void test_ctl_unfocus(void *, unsigned);
     68static void test_ctl_unfocus(void *);
    7769
    7870static ui_control_ops_t test_ctl_ops = {
     
    8476typedef struct {
    8577        errno_t rc;
    86         bool sysmenu;
    87         sysarg_t sysmenu_idev_id;
    88         bool minimize;
    89         bool maximize;
    90         bool unmaximize;
    9178        bool close;
    9279        bool focus;
    93         unsigned focus_nfocus;
    9480        bool kbd;
    9581        kbd_event_t kbd_event;
     
    9884        pos_event_t pos_event;
    9985        bool unfocus;
    100         unsigned unfocus_nfocus;
    10186} test_cb_resp_t;
    10287
     
    10893        pos_event_t pos_event;
    10994        bool unfocus;
    110         unsigned unfocus_nfocus;
    11195} test_ctl_resp_t;
    11296
     
    537521        resp.unfocus = false;
    538522
    539         ui_window_def_unfocus(window, 42);
     523        ui_window_def_unfocus(window);
    540524        PCUT_ASSERT_TRUE(resp.unfocus);
    541         PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus);
    542525
    543526        /* Need to remove first because we didn't implement the destructor */
    544527        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(&params);
    563         params.caption = "Hello";
    564 
    565         rc = ui_window_create(ui, &params, &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(&params);
    601         params.caption = "Hello";
    602 
    603         rc = ui_window_create(ui, &params, &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(&params);
    637         params.caption = "Hello";
    638 
    639         rc = ui_window_create(ui, &params, &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(&params);
    673         params.caption = "Hello";
    674 
    675         rc = ui_window_create(ui, &params, &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);
    691528
    692529        ui_window_destroy(window);
     
    750587
    751588        /* Focus callback with no callbacks set */
    752         ui_window_send_focus(window, 42);
     589        ui_window_send_focus(window);
    753590
    754591        /* Focus callback with focus callback not implemented */
    755592        ui_window_set_cb(window, &dummy_window_cb, NULL);
    756         ui_window_send_focus(window, 42);
     593        ui_window_send_focus(window);
    757594
    758595        /* Focus callback with real callback set */
    759596        resp.focus = false;
    760597        ui_window_set_cb(window, &test_window_cb, &resp);
    761         ui_window_send_focus(window, 42);
     598        ui_window_send_focus(window);
    762599        PCUT_ASSERT_TRUE(resp.focus);
    763         PCUT_ASSERT_INT_EQUALS(42, resp.focus_nfocus);
    764600
    765601        ui_window_destroy(window);
     
    787623        PCUT_ASSERT_NOT_NULL(window);
    788624
    789         kbd_event.type = KEY_PRESS;
     625        kbd_event.type = POS_PRESS;
    790626        kbd_event.key = KC_X;
    791627        kbd_event.mods = 0;
     
    919755
    920756        /* Unfocus callback with no callbacks set */
    921         ui_window_send_unfocus(window, 42);
     757        ui_window_send_unfocus(window);
    922758
    923759        /* Unfocus callback with unfocus callback not implemented */
    924760        ui_window_set_cb(window, &dummy_window_cb, NULL);
    925         ui_window_send_unfocus(window, 42);
     761        ui_window_send_unfocus(window);
    926762
    927763        /* Unfocus callback with real callback set */
    928764        resp.close = false;
    929765        ui_window_set_cb(window, &test_window_cb, &resp);
    930         ui_window_send_unfocus(window, 42);
     766        ui_window_send_unfocus(window);
    931767        PCUT_ASSERT_TRUE(resp.unfocus);
    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)
     768
     769        ui_window_destroy(window);
     770        ui_destroy(ui);
     771}
     772
     773static void test_window_close(ui_window_t *window, void *arg)
    939774{
    940775        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
    941776
    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)
     777        resp->close = true;
     778}
     779
     780static void test_window_focus(ui_window_t *window, void *arg)
    947781{
    948782        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
    949783
    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;
    965 }
    966 
    967 static void test_window_close(ui_window_t *window, void *arg)
    968 {
    969         test_cb_resp_t *resp = (test_cb_resp_t *) arg;
    970 
    971         resp->close = true;
    972 }
    973 
    974 static void test_window_focus(ui_window_t *window, void *arg, unsigned nfocus)
    975 {
    976         test_cb_resp_t *resp = (test_cb_resp_t *) arg;
    977 
    978784        resp->focus = true;
    979         resp->focus_nfocus = nfocus;
    980785}
    981786
     
    1006811}
    1007812
    1008 static void test_window_unfocus(ui_window_t *window, void *arg, unsigned nfocus)
     813static void test_window_unfocus(ui_window_t *window, void *arg)
    1009814{
    1010815        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
    1011816
    1012817        resp->unfocus = true;
    1013         resp->unfocus_nfocus = nfocus;
    1014818}
    1015819
     
    1032836}
    1033837
    1034 static void test_ctl_unfocus(void *arg, unsigned nfocus)
     838static void test_ctl_unfocus(void *arg)
    1035839{
    1036840        test_ctl_resp_t *resp = (test_ctl_resp_t *) arg;
    1037841
    1038842        resp->unfocus = true;
    1039         resp->unfocus_nfocus = nfocus;
    1040843}
    1041844
Note: See TracChangeset for help on using the changeset viewer.