Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/nav/test/menu.c

    rf59212cc raccdf882  
    11/*
    2  * Copyright (c) 2021 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    3737
    3838static void test_menu_file_open(void *);
     39static void test_menu_file_edit(void *);
    3940static void test_menu_file_exit(void *);
    4041
     
    4243static nav_menu_cb_t test_cb = {
    4344        .file_open = test_menu_file_open,
     45        .file_edit = test_menu_file_edit,
    4446        .file_exit = test_menu_file_exit
    4547};
     
    4850typedef struct {
    4951        bool file_open;
     52        bool file_edit;
    5053        bool file_exit;
    5154} test_resp_t;
     
    148151}
    149152
     153/** File / Edit callback */
     154PCUT_TEST(file_edit)
     155{
     156        ui_t *ui;
     157        ui_window_t *window;
     158        ui_wnd_params_t params;
     159        nav_menu_t *menu;
     160        test_resp_t resp;
     161        errno_t rc;
     162
     163        rc = ui_create_disp(NULL, &ui);
     164        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     165
     166        ui_wnd_params_init(&params);
     167        params.caption = "Test";
     168
     169        rc = ui_window_create(ui, &params, &window);
     170        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     171
     172        rc = nav_menu_create(window, &menu);
     173        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     174
     175        /* Call back with no callbacks set */
     176        nav_menu_file_edit(NULL, menu);
     177
     178        /* Call back with dummy callbacks set */
     179        nav_menu_set_cb(menu, &dummy_cb, &resp);
     180        nav_menu_file_edit(NULL, menu);
     181
     182        /* Call back with test callbacks set */
     183        resp.file_edit = false;
     184        nav_menu_set_cb(menu, &test_cb, &resp);
     185        nav_menu_file_edit(NULL, menu);
     186        PCUT_ASSERT_TRUE(resp.file_edit);
     187
     188        nav_menu_destroy(menu);
     189        ui_window_destroy(window);
     190        ui_destroy(ui);
     191}
     192
     193/** File / Exit callback */
     194PCUT_TEST(file_exit)
     195{
     196        ui_t *ui;
     197        ui_window_t *window;
     198        ui_wnd_params_t params;
     199        nav_menu_t *menu;
     200        test_resp_t resp;
     201        errno_t rc;
     202
     203        rc = ui_create_disp(NULL, &ui);
     204        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     205
     206        ui_wnd_params_init(&params);
     207        params.caption = "Test";
     208
     209        rc = ui_window_create(ui, &params, &window);
     210        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     211
     212        rc = nav_menu_create(window, &menu);
     213        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     214
     215        /* Call back with no callbacks set */
     216        nav_menu_file_exit(NULL, menu);
     217
     218        /* Call back with dummy callbacks set */
     219        nav_menu_set_cb(menu, &dummy_cb, &resp);
     220        nav_menu_file_exit(NULL, menu);
     221
     222        /* Call back with test callbacks set */
     223        resp.file_exit = false;
     224        nav_menu_set_cb(menu, &test_cb, &resp);
     225        nav_menu_file_exit(NULL, menu);
     226        PCUT_ASSERT_TRUE(resp.file_exit);
     227
     228        nav_menu_destroy(menu);
     229        ui_window_destroy(window);
     230        ui_destroy(ui);
     231}
     232
    150233/** Testing File / Open callback */
    151234static void test_menu_file_open(void *arg)
     
    156239}
    157240
     241/** Testing File / Edit callback */
     242static void test_menu_file_edit(void *arg)
     243{
     244        test_resp_t *resp = (test_resp_t *)arg;
     245
     246        resp->file_edit = true;
     247}
     248
    158249/** Testing File / Exit callback */
    159250static void test_menu_file_exit(void *arg)
Note: See TracChangeset for help on using the changeset viewer.