Ignore:
File:
1 edited

Legend:

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

    r46bd63c9 rc68c18b9  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2021 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3535#include <ui/menu.h>
    3636#include <ui/menubar.h>
    37 #include <ui/menudd.h>
    3837#include <ui/menuentry.h>
    3938#include <ui/ui.h>
     
    7675        PCUT_ASSERT_NOT_NULL(mbar);
    7776
    78         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     77        rc = ui_menu_create(mbar, "Test", &menu);
    7978        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    8079        PCUT_ASSERT_NOT_NULL(menu);
     
    117116        PCUT_ASSERT_NOT_NULL(mbar);
    118117
    119         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     118        rc = ui_menu_create(mbar, "Test", &menu);
    120119        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    121120        PCUT_ASSERT_NOT_NULL(menu);
     
    165164        PCUT_ASSERT_NOT_NULL(mbar);
    166165
    167         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     166        rc = ui_menu_create(mbar, "Test", &menu);
    168167        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    169168        PCUT_ASSERT_NOT_NULL(menu);
     
    211210        PCUT_ASSERT_NOT_NULL(mbar);
    212211
    213         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     212        rc = ui_menu_create(mbar, "Test", &menu);
    214213        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    215214        PCUT_ASSERT_NOT_NULL(menu);
     
    230229
    231230        e = ui_menu_entry_next(e);
    232         PCUT_ASSERT_NULL(e);
    233 
    234         ui_menu_bar_destroy(mbar);
    235         ui_window_destroy(window);
    236         ui_destroy(ui);
    237 }
    238 
    239 /** ui_menu_entry_last() / ui_menu_entry_prev() iterate over entries in reverse */
    240 PCUT_TEST(last_prev)
    241 {
    242         ui_t *ui = NULL;
    243         ui_window_t *window = NULL;
    244         ui_wnd_params_t params;
    245         ui_menu_bar_t *mbar = NULL;
    246         ui_menu_t *menu = NULL;
    247         ui_menu_entry_t *entry1 = NULL;
    248         ui_menu_entry_t *entry2 = NULL;
    249         ui_menu_entry_t *e;
    250         errno_t rc;
    251 
    252         rc = ui_create_disp(NULL, &ui);
    253         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    254 
    255         ui_wnd_params_init(&params);
    256         params.caption = "Hello";
    257 
    258         rc = ui_window_create(ui, &params, &window);
    259         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    260         PCUT_ASSERT_NOT_NULL(window);
    261 
    262         rc = ui_menu_bar_create(ui, window, &mbar);
    263         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    264         PCUT_ASSERT_NOT_NULL(mbar);
    265 
    266         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
    267         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    268         PCUT_ASSERT_NOT_NULL(menu);
    269 
    270         rc = ui_menu_entry_create(menu, "Foo", "F1", &entry1);
    271         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    272         PCUT_ASSERT_NOT_NULL(entry1);
    273 
    274         rc = ui_menu_entry_create(menu, "Bar", "F2", &entry2);
    275         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    276         PCUT_ASSERT_NOT_NULL(entry2);
    277 
    278         e = ui_menu_entry_last(menu);
    279         PCUT_ASSERT_EQUALS(entry2, e);
    280 
    281         e = ui_menu_entry_prev(e);
    282         PCUT_ASSERT_EQUALS(entry1, e);
    283 
    284         e = ui_menu_entry_prev(e);
    285231        PCUT_ASSERT_NULL(e);
    286232
     
    319265        PCUT_ASSERT_NOT_NULL(mbar);
    320266
    321         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     267        rc = ui_menu_create(mbar, "Test", &menu);
    322268        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    323269        PCUT_ASSERT_NOT_NULL(menu);
     
    369315        PCUT_ASSERT_NOT_NULL(mbar);
    370316
    371         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     317        rc = ui_menu_create(mbar, "Test", &menu);
    372318        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    373319        PCUT_ASSERT_NOT_NULL(menu);
     
    382328        prect.p1.y = 0;
    383329
    384         rc = ui_menu_open(menu, &prect, 0);
     330        rc = ui_menu_open(menu, &prect);
    385331        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    386332
     
    395341}
    396342
    397 /** ui_menu_entry_selectable() returns correct value based on entry type */
    398 PCUT_TEST(selectable)
    399 {
    400         ui_t *ui = NULL;
    401         ui_window_t *window = NULL;
    402         ui_wnd_params_t params;
    403         ui_menu_bar_t *mbar = NULL;
    404         ui_menu_t *menu = NULL;
    405         ui_menu_entry_t *mentry = NULL;
    406         errno_t rc;
    407 
    408         rc = ui_create_disp(NULL, &ui);
    409         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    410 
    411         ui_wnd_params_init(&params);
    412         params.caption = "Hello";
    413 
    414         rc = ui_window_create(ui, &params, &window);
    415         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    416         PCUT_ASSERT_NOT_NULL(window);
    417 
    418         rc = ui_menu_bar_create(ui, window, &mbar);
    419         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    420         PCUT_ASSERT_NOT_NULL(mbar);
    421 
    422         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
    423         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    424         PCUT_ASSERT_NOT_NULL(menu);
    425 
    426         /* Selectable entry */
    427 
    428         rc = ui_menu_entry_create(menu, "Foo", "F1", &mentry);
    429         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    430         PCUT_ASSERT_NOT_NULL(mentry);
    431 
    432         PCUT_ASSERT_TRUE(ui_menu_entry_selectable(mentry));
    433 
    434         ui_menu_entry_destroy(mentry);
    435 
    436         /* Non-selectable separator entry */
    437 
    438         rc = ui_menu_entry_sep_create(menu, &mentry);
    439         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    440         PCUT_ASSERT_NOT_NULL(mentry);
    441 
    442         PCUT_ASSERT_FALSE(ui_menu_entry_selectable(mentry));
    443 
    444         ui_menu_entry_destroy(mentry);
    445 
    446         ui_menu_bar_destroy(mbar);
    447         ui_window_destroy(window);
    448         ui_destroy(ui);
    449 }
    450 
    451343/** Press and release activates menu entry */
    452344PCUT_TEST(press_release)
     
    477369        PCUT_ASSERT_NOT_NULL(mbar);
    478370
    479         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     371        rc = ui_menu_create(mbar, "Test", &menu);
    480372        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    481373        PCUT_ASSERT_NOT_NULL(menu);
     
    493385        prect.p1.y = 0;
    494386
    495         rc = ui_menu_open(menu, &prect, 0);
     387        rc = ui_menu_open(menu, &prect);
    496388        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    497389
     
    540432        PCUT_ASSERT_NOT_NULL(mbar);
    541433
    542         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     434        rc = ui_menu_create(mbar, "Test", &menu);
    543435        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    544436        PCUT_ASSERT_NOT_NULL(menu);
     
    556448        prect.p1.y = 0;
    557449
    558         rc = ui_menu_open(menu, &prect, 0);
     450        rc = ui_menu_open(menu, &prect);
    559451        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    560452
     
    608500        PCUT_ASSERT_NOT_NULL(mbar);
    609501
    610         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     502        rc = ui_menu_create(mbar, "Test", &menu);
    611503        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    612504        PCUT_ASSERT_NOT_NULL(menu);
     
    624516        prect.p1.y = 0;
    625517
    626         rc = ui_menu_open(menu, &prect, 0);
     518        rc = ui_menu_open(menu, &prect);
    627519        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    628520
     
    653545}
    654546
    655 /** ui_menu_entry_activate() activates menu entry */
    656 PCUT_TEST(activate)
    657 {
    658         ui_t *ui = NULL;
    659         ui_window_t *window = NULL;
    660         ui_wnd_params_t params;
    661         ui_menu_bar_t *mbar = NULL;
    662         ui_menu_t *menu = NULL;
    663         ui_menu_entry_t *mentry = NULL;
     547/** Press event inside menu entry */
     548PCUT_TEST(pos_press_inside)
     549{
     550        ui_t *ui = NULL;
     551        ui_window_t *window = NULL;
     552        ui_wnd_params_t params;
     553        ui_menu_bar_t *mbar = NULL;
     554        ui_menu_t *menu = NULL;
     555        ui_menu_entry_t *mentry = NULL;
     556        gfx_coord2_t pos;
    664557        gfx_rect_t prect;
    665         test_resp_t resp;
    666         errno_t rc;
    667 
    668         rc = ui_create_disp(NULL, &ui);
    669         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    670 
    671         ui_wnd_params_init(&params);
    672         params.caption = "Hello";
    673 
    674         rc = ui_window_create(ui, &params, &window);
    675         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    676         PCUT_ASSERT_NOT_NULL(window);
    677 
    678         rc = ui_menu_bar_create(ui, window, &mbar);
    679         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    680         PCUT_ASSERT_NOT_NULL(mbar);
    681 
    682         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     558        pos_event_t event;
     559        errno_t rc;
     560
     561        rc = ui_create_disp(NULL, &ui);
     562        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     563
     564        ui_wnd_params_init(&params);
     565        params.caption = "Hello";
     566
     567        rc = ui_window_create(ui, &params, &window);
     568        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     569        PCUT_ASSERT_NOT_NULL(window);
     570
     571        rc = ui_menu_bar_create(ui, window, &mbar);
     572        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     573        PCUT_ASSERT_NOT_NULL(mbar);
     574
     575        rc = ui_menu_create(mbar, "Test", &menu);
    683576        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    684577        PCUT_ASSERT_NOT_NULL(menu);
     
    687580        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    688581        PCUT_ASSERT_NOT_NULL(mentry);
    689 
    690         ui_menu_entry_set_cb(mentry, test_entry_cb, &resp);
    691         resp.activated = false;
    692582
    693583        prect.p0.x = 0;
     
    696586        prect.p1.y = 0;
    697587
    698         rc = ui_menu_open(menu, &prect, 0);
    699         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    700 
    701         PCUT_ASSERT_FALSE(resp.activated);
    702         ui_menu_entry_activate(mentry);
    703 
    704         ui_menu_entry_release(mentry);
    705         PCUT_ASSERT_TRUE(resp.activated);
    706 
    707         ui_menu_bar_destroy(mbar);
    708         ui_window_destroy(window);
    709         ui_destroy(ui);
    710 }
    711 
    712 /** Press event inside menu entry */
    713 PCUT_TEST(pos_press_inside)
     588        rc = ui_menu_open(menu, &prect);
     589        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     590
     591        pos.x = 0;
     592        pos.y = 0;
     593
     594        event.type = POS_PRESS;
     595        event.hpos = 4;
     596        event.vpos = 4;
     597
     598        ui_menu_entry_pos_event(mentry, &pos, &event);
     599        PCUT_ASSERT_TRUE(mentry->inside);
     600        PCUT_ASSERT_TRUE(mentry->held);
     601
     602        ui_menu_bar_destroy(mbar);
     603        ui_window_destroy(window);
     604        ui_destroy(ui);
     605}
     606
     607/** Press event outside menu entry */
     608PCUT_TEST(pos_press_outside)
    714609{
    715610        ui_t *ui = NULL;
     
    738633        PCUT_ASSERT_NOT_NULL(mbar);
    739634
    740         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     635        rc = ui_menu_create(mbar, "Test", &menu);
    741636        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    742637        PCUT_ASSERT_NOT_NULL(menu);
     
    751646        prect.p1.y = 0;
    752647
    753         rc = ui_menu_open(menu, &prect, 0);
     648        rc = ui_menu_open(menu, &prect);
    754649        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    755650
     
    758653
    759654        event.type = POS_PRESS;
    760         event.hpos = 4;
    761         event.vpos = 4;
     655        event.hpos = 40;
     656        event.vpos = 20;
    762657
    763658        ui_menu_entry_pos_event(mentry, &pos, &event);
    764         PCUT_ASSERT_TRUE(mentry->inside);
    765         PCUT_ASSERT_TRUE(mentry->held);
    766 
    767         ui_menu_bar_destroy(mbar);
    768         ui_window_destroy(window);
    769         ui_destroy(ui);
    770 }
    771 
    772 /** Press event outside menu entry */
    773 PCUT_TEST(pos_press_outside)
     659        PCUT_ASSERT_FALSE(mentry->inside);
     660        PCUT_ASSERT_FALSE(mentry->held);
     661
     662        ui_menu_bar_destroy(mbar);
     663        ui_window_destroy(window);
     664        ui_destroy(ui);
     665}
     666
     667/** Position event moving out of menu entry */
     668PCUT_TEST(pos_move_out)
    774669{
    775670        ui_t *ui = NULL;
     
    798693        PCUT_ASSERT_NOT_NULL(mbar);
    799694
    800         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     695        rc = ui_menu_create(mbar, "Test", &menu);
    801696        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    802697        PCUT_ASSERT_NOT_NULL(menu);
     
    811706        prect.p1.y = 0;
    812707
    813         rc = ui_menu_open(menu, &prect, 0);
     708        rc = ui_menu_open(menu, &prect);
    814709        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    815710
    816711        pos.x = 0;
    817712        pos.y = 0;
    818 
    819         event.type = POS_PRESS;
     713        ui_menu_entry_press(mentry, &pos);
     714        PCUT_ASSERT_TRUE(mentry->inside);
     715        PCUT_ASSERT_TRUE(mentry->held);
     716
     717        event.type = POS_UPDATE;
    820718        event.hpos = 40;
    821719        event.vpos = 20;
     
    823721        ui_menu_entry_pos_event(mentry, &pos, &event);
    824722        PCUT_ASSERT_FALSE(mentry->inside);
    825         PCUT_ASSERT_FALSE(mentry->held);
    826 
    827         ui_menu_bar_destroy(mbar);
    828         ui_window_destroy(window);
    829         ui_destroy(ui);
    830 }
    831 
    832 /** Position event moving out of menu entry */
    833 PCUT_TEST(pos_move_out)
     723        PCUT_ASSERT_TRUE(mentry->held);
     724
     725        ui_menu_bar_destroy(mbar);
     726        ui_window_destroy(window);
     727        ui_destroy(ui);
     728}
     729
     730/** Position event moving inside menu entry */
     731PCUT_TEST(pos_move_in)
    834732{
    835733        ui_t *ui = NULL;
     
    858756        PCUT_ASSERT_NOT_NULL(mbar);
    859757
    860         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
     758        rc = ui_menu_create(mbar, "Test", &menu);
    861759        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    862760        PCUT_ASSERT_NOT_NULL(menu);
     
    871769        prect.p1.y = 0;
    872770
    873         rc = ui_menu_open(menu, &prect, 0);
    874         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    875 
    876         pos.x = 0;
    877         pos.y = 0;
    878         ui_menu_entry_press(mentry, &pos);
    879         PCUT_ASSERT_TRUE(mentry->inside);
    880         PCUT_ASSERT_TRUE(mentry->held);
    881 
    882         event.type = POS_UPDATE;
    883         event.hpos = 40;
    884         event.vpos = 20;
    885 
    886         ui_menu_entry_pos_event(mentry, &pos, &event);
    887         PCUT_ASSERT_FALSE(mentry->inside);
    888         PCUT_ASSERT_TRUE(mentry->held);
    889 
    890         ui_menu_bar_destroy(mbar);
    891         ui_window_destroy(window);
    892         ui_destroy(ui);
    893 }
    894 
    895 /** Position event moving inside menu entry */
    896 PCUT_TEST(pos_move_in)
    897 {
    898         ui_t *ui = NULL;
    899         ui_window_t *window = NULL;
    900         ui_wnd_params_t params;
    901         ui_menu_bar_t *mbar = NULL;
    902         ui_menu_t *menu = NULL;
    903         ui_menu_entry_t *mentry = NULL;
    904         gfx_coord2_t pos;
    905         gfx_rect_t prect;
    906         pos_event_t event;
    907         errno_t rc;
    908 
    909         rc = ui_create_disp(NULL, &ui);
    910         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    911 
    912         ui_wnd_params_init(&params);
    913         params.caption = "Hello";
    914 
    915         rc = ui_window_create(ui, &params, &window);
    916         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    917         PCUT_ASSERT_NOT_NULL(window);
    918 
    919         rc = ui_menu_bar_create(ui, window, &mbar);
    920         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    921         PCUT_ASSERT_NOT_NULL(mbar);
    922 
    923         rc = ui_menu_dd_create(mbar, "Test", NULL, &menu);
    924         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    925         PCUT_ASSERT_NOT_NULL(menu);
    926 
    927         rc = ui_menu_entry_create(menu, "X", "Y", &mentry);
    928         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    929         PCUT_ASSERT_NOT_NULL(mentry);
    930 
    931         prect.p0.x = 0;
    932         prect.p0.y = 0;
    933         prect.p1.x = 0;
    934         prect.p1.y = 0;
    935 
    936         rc = ui_menu_open(menu, &prect, 0);
     771        rc = ui_menu_open(menu, &prect);
    937772        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    938773
Note: See TracChangeset for help on using the changeset viewer.