Changeset d4ea1f6 in mainline for uspace/lib/ui/test/pbutton.c


Ignore:
Timestamp:
2022-03-21T17:38:57Z (2 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8965860c
Parents:
26c90dd
Message:

Scroll as soon as scroll button is pressed

File:
1 edited

Legend:

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

    r26c90dd rd4ea1f6  
    6363
    6464static void test_pbutton_clicked(ui_pbutton_t *, void *);
     65static void test_pbutton_down(ui_pbutton_t *, void *);
     66static void test_pbutton_up(ui_pbutton_t *, void *);
    6567
    6668static ui_pbutton_cb_t test_pbutton_cb = {
    67         .clicked = test_pbutton_clicked
     69        .clicked = test_pbutton_clicked,
     70        .down = test_pbutton_down,
     71        .up = test_pbutton_up
    6872};
    6973
     
    9094typedef struct {
    9195        bool clicked;
     96        bool down;
     97        bool up;
    9298} test_cb_resp_t;
    9399
     
    225231}
    226232
     233/** Test ui_pbutton_down() */
     234PCUT_TEST(down)
     235{
     236        errno_t rc;
     237        ui_pbutton_t *pbutton;
     238        test_cb_resp_t resp;
     239
     240        rc = ui_pbutton_create(NULL, "Hello", &pbutton);
     241        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     242
     243        /* Down with no callbacks set */
     244        ui_pbutton_clicked(pbutton);
     245
     246        /* Down with callback not implementing down */
     247        ui_pbutton_set_cb(pbutton, &dummy_pbutton_cb, NULL);
     248        ui_pbutton_down(pbutton);
     249
     250        /* Down with real callback set */
     251        resp.down = false;
     252        ui_pbutton_set_cb(pbutton, &test_pbutton_cb, &resp);
     253        ui_pbutton_down(pbutton);
     254        PCUT_ASSERT_TRUE(resp.down);
     255
     256        ui_pbutton_destroy(pbutton);
     257}
     258
     259/** Test ui_pbutton_up() */
     260PCUT_TEST(up)
     261{
     262        errno_t rc;
     263        ui_pbutton_t *pbutton;
     264        test_cb_resp_t resp;
     265
     266        rc = ui_pbutton_create(NULL, "Hello", &pbutton);
     267        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     268
     269        /* Up with no callbacks set */
     270        ui_pbutton_clicked(pbutton);
     271
     272        /* Up with callback not implementing up */
     273        ui_pbutton_set_cb(pbutton, &dummy_pbutton_cb, NULL);
     274        ui_pbutton_up(pbutton);
     275
     276        /* Up with real callback set */
     277        resp.up = false;
     278        ui_pbutton_set_cb(pbutton, &test_pbutton_cb, &resp);
     279        ui_pbutton_up(pbutton);
     280        PCUT_ASSERT_TRUE(resp.up);
     281
     282        ui_pbutton_destroy(pbutton);
     283}
     284
    227285/** Press and release button */
    228286PCUT_TEST(press_release)
     
    247305
    248306        resp.clicked = false;
     307        resp.down = false;
     308        resp.up = false;
    249309        ui_pbutton_set_cb(pbutton, &test_pbutton_cb, &resp);
    250310
     
    255315        PCUT_ASSERT_TRUE(pbutton->held);
    256316        PCUT_ASSERT_TRUE(pbutton->inside);
     317        PCUT_ASSERT_TRUE(resp.down);
     318        PCUT_ASSERT_FALSE(resp.up);
    257319        PCUT_ASSERT_FALSE(resp.clicked);
    258320
     
    260322        PCUT_ASSERT_FALSE(pbutton->held);
    261323        PCUT_ASSERT_TRUE(pbutton->inside);
     324        PCUT_ASSERT_TRUE(resp.up);
    262325        PCUT_ASSERT_TRUE(resp.clicked);
    263326
     
    588651}
    589652
     653static void test_pbutton_down(ui_pbutton_t *pbutton, void *arg)
     654{
     655        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
     656
     657        resp->down = true;
     658}
     659
     660static void test_pbutton_up(ui_pbutton_t *pbutton, void *arg)
     661{
     662        test_cb_resp_t *resp = (test_cb_resp_t *) arg;
     663
     664        resp->up = true;
     665}
     666
    590667PCUT_EXPORT(pbutton);
Note: See TracChangeset for help on using the changeset viewer.