Ignore:
Timestamp:
2020-02-19T13:28:34Z (4 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0a052b0
Parents:
e1f2079
git-author:
Jiri Svoboda <jiri@…> (2020-01-18 18:28:21)
git-committer:
Jiri Svoboda <jiri@…> (2020-02-19 13:28:34)
Message:

Deliver window focus and unfocus events

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/display/test/client.c

    re1f2079 rb0a94854  
    163163}
    164164
     165/** Test ds_client_get_event(), ds_client_post_focus_event(). */
     166PCUT_TEST(client_get_post_focus_event)
     167{
     168        ds_display_t *disp;
     169        ds_client_t *client;
     170        ds_window_t *wnd;
     171        display_wnd_params_t params;
     172        ds_window_t *rwindow;
     173        display_wnd_ev_t revent;
     174        bool called_cb = NULL;
     175        errno_t rc;
     176
     177        rc = ds_display_create(NULL, &disp);
     178        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     179
     180        rc = ds_client_create(disp, &test_ds_client_cb, &called_cb, &client);
     181        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     182
     183        display_wnd_params_init(&params);
     184        params.rect.p0.x = params.rect.p0.y = 0;
     185        params.rect.p1.x = params.rect.p1.y = 1;
     186
     187        rc = ds_window_create(client, &params, &wnd);
     188        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     189
     190        PCUT_ASSERT_FALSE(called_cb);
     191
     192        rc = ds_client_get_event(client, &rwindow, &revent);
     193        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     194
     195        rc = ds_client_post_focus_event(client, wnd);
     196        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     197        PCUT_ASSERT_TRUE(called_cb);
     198
     199        rc = ds_client_get_event(client, &rwindow, &revent);
     200        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     201        PCUT_ASSERT_EQUALS(wnd, rwindow);
     202        PCUT_ASSERT_EQUALS(wev_focus, revent.etype);
     203
     204        rc = ds_client_get_event(client, &rwindow, &revent);
     205        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     206
     207        ds_window_destroy(wnd);
     208        ds_client_destroy(client);
     209        ds_display_destroy(disp);
     210}
     211
    165212/** Test ds_client_get_event(), ds_client_post_kbd_event(). */
    166213PCUT_TEST(client_get_post_kbd_event)
     
    275322}
    276323
     324/** Test ds_client_get_event(), ds_client_post_unfocus_event(). */
     325PCUT_TEST(client_get_post_unfocus_event)
     326{
     327        ds_display_t *disp;
     328        ds_client_t *client;
     329        ds_window_t *wnd;
     330        display_wnd_params_t params;
     331        ds_window_t *rwindow;
     332        display_wnd_ev_t revent;
     333        bool called_cb = NULL;
     334        errno_t rc;
     335
     336        rc = ds_display_create(NULL, &disp);
     337        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     338
     339        rc = ds_client_create(disp, &test_ds_client_cb, &called_cb, &client);
     340        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     341
     342        display_wnd_params_init(&params);
     343        params.rect.p0.x = params.rect.p0.y = 0;
     344        params.rect.p1.x = params.rect.p1.y = 1;
     345
     346        rc = ds_window_create(client, &params, &wnd);
     347        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     348
     349        PCUT_ASSERT_FALSE(called_cb);
     350
     351        rc = ds_client_get_event(client, &rwindow, &revent);
     352        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     353
     354        rc = ds_client_post_unfocus_event(client, wnd);
     355        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     356        PCUT_ASSERT_TRUE(called_cb);
     357
     358        rc = ds_client_get_event(client, &rwindow, &revent);
     359        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     360        PCUT_ASSERT_EQUALS(wnd, rwindow);
     361        PCUT_ASSERT_EQUALS(wev_unfocus, revent.etype);
     362
     363        rc = ds_client_get_event(client, &rwindow, &revent);
     364        PCUT_ASSERT_ERRNO_VAL(ENOENT, rc);
     365
     366        ds_window_destroy(wnd);
     367        ds_client_destroy(client);
     368        ds_display_destroy(disp);
     369}
     370
    277371/** Test client being destroyed while still having a window.
    278372 *
Note: See TracChangeset for help on using the changeset viewer.