Changeset 84d29a2 in mainline for uspace/lib/tbarcfg/test/tbarcfg.c


Ignore:
Timestamp:
2023-11-27T13:09:59Z (20 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, topic/simplify-dev-export
Children:
ef4d684
Parents:
8a43f01
Message:

Libtbarcfg needs work

Add tbarcfg_create(), smenu_entry_create(), smenu_entry_destroy().
Fill in and improve unit tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/tbarcfg/test/tbarcfg.c

    r8a43f01 r84d29a2  
    3636PCUT_TEST_SUITE(tbarcfg);
    3737
    38 /** Opening and closing taskbar configuration */
    39 PCUT_TEST(open_close)
    40 {
    41         errno_t rc;
    42         tbarcfg_t *tbcfg;
    43         FILE *f;
    44         int rv;
    45 
    46         f = fopen("/tmp/test", "wt");
    47         PCUT_ASSERT_NOT_NULL(f);
    48 
    49         rv = fputs("[sif](){[entries](){}}", f);
    50         PCUT_ASSERT_TRUE(rv >= 0);
    51 
    52         rv = fclose(f);
    53         PCUT_ASSERT_INT_EQUALS(0, rv);
    54 
    55         rc = tbarcfg_open("/tmp/test", &tbcfg);
    56         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    57 
    58         tbarcfg_close(tbcfg);
     38/** Creating, opening and closing taskbar configuration */
     39PCUT_TEST(create_open_close)
     40{
     41        errno_t rc;
     42        tbarcfg_t *tbcfg;
     43        char fname[L_tmpnam], *p;
     44
     45        p = tmpnam(fname);
     46        PCUT_ASSERT_NOT_NULL(p);
     47
     48        /* Create new repository */
     49        rc = tbarcfg_create(fname, &tbcfg);
     50        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     51
     52        tbarcfg_close(tbcfg);
     53
     54        /* Re-open the repository */
     55
     56        rc = tbarcfg_open(fname, &tbcfg);
     57        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     58
     59        tbarcfg_close(tbcfg);
     60        remove(fname);
    5961}
    6062
     
    6466        errno_t rc;
    6567        tbarcfg_t *tbcfg;
    66         smenu_entry_t *e;
    67         FILE *f;
    68         int rv;
    69 
    70         f = fopen("/tmp/test", "wt");
    71         PCUT_ASSERT_NOT_NULL(f);
    72 
    73         rv = fputs("[sif](){[entries](){"
    74             "[entry]([caption]=[A][cmd]=[a]){}"
    75             "[entry]([caption]=[B][cmd]=[b]){}"
    76             "}}", f);
    77         PCUT_ASSERT_TRUE(rv >= 0);
    78 
    79         rv = fclose(f);
    80         PCUT_ASSERT_INT_EQUALS(0, rv);
    81 
    82         rc = tbarcfg_open("/tmp/test", &tbcfg);
     68        char fname[L_tmpnam], *p;
     69        smenu_entry_t *e;
     70
     71        p = tmpnam(fname);
     72        PCUT_ASSERT_NOT_NULL(p);
     73
     74        rc = tbarcfg_create(fname, &tbcfg);
     75        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     76
     77        rc = smenu_entry_create(tbcfg, "A", "a");
     78        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     79
     80        rc = smenu_entry_create(tbcfg, "B", "b");
    8381        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    8482
     
    9189
    9290        tbarcfg_close(tbcfg);
     91        remove(fname);
    9392}
    9493
     
    9897        errno_t rc;
    9998        tbarcfg_t *tbcfg;
     99        char fname[L_tmpnam], *p;
    100100        smenu_entry_t *e;
    101101        const char *caption;
    102102        const char *cmd;
    103         FILE *f;
    104         int rv;
    105 
    106         f = fopen("/tmp/test", "wt");
    107         PCUT_ASSERT_NOT_NULL(f);
    108 
    109         rv = fputs("[sif](){[entries](){"
    110             "[entry]([caption]=[A][cmd]=[a]){}"
    111             "}}", f);
    112         PCUT_ASSERT_TRUE(rv >= 0);
    113 
    114         rv = fclose(f);
    115         PCUT_ASSERT_INT_EQUALS(0, rv);
    116 
    117         rc = tbarcfg_open("/tmp/test", &tbcfg);
     103
     104        p = tmpnam(fname);
     105        PCUT_ASSERT_NOT_NULL(p);
     106
     107        rc = tbarcfg_create(fname, &tbcfg);
     108        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     109
     110        rc = smenu_entry_create(tbcfg, "A", "a");
    118111        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    119112
     
    127120
    128121        tbarcfg_close(tbcfg);
     122        remove(fname);
     123}
     124
     125/** Setting menu entry properties */
     126PCUT_TEST(set_caption_cmd)
     127{
     128        errno_t rc;
     129        tbarcfg_t *tbcfg;
     130        char fname[L_tmpnam], *p;
     131        smenu_entry_t *e;
     132        const char *caption;
     133        const char *cmd;
     134
     135        p = tmpnam(fname);
     136        PCUT_ASSERT_NOT_NULL(p);
     137
     138        rc = tbarcfg_create(fname, &tbcfg);
     139        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     140
     141        rc = smenu_entry_create(tbcfg, "A", "a");
     142        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     143
     144        e = tbarcfg_smenu_first(tbcfg);
     145        PCUT_ASSERT_NOT_NULL(e);
     146
     147        caption = smenu_entry_get_caption(e);
     148        PCUT_ASSERT_STR_EQUALS("A", caption);
     149        cmd = smenu_entry_get_cmd(e);
     150        PCUT_ASSERT_STR_EQUALS("a", cmd);
     151
     152        /* Set properties */
     153        rc = smenu_entry_set_caption(e, "B");
     154        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     155        rc = smenu_entry_set_cmd(e, "b");
     156        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     157
     158        rc = smenu_entry_save(e);
     159        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     160
     161        /* Check that properties have been set */
     162        caption = smenu_entry_get_caption(e);
     163        PCUT_ASSERT_STR_EQUALS("B", caption);
     164        cmd = smenu_entry_get_cmd(e);
     165        PCUT_ASSERT_STR_EQUALS("b", cmd);
     166
     167        tbarcfg_close(tbcfg);
     168
     169        /* Re-open repository */
     170
     171        rc = tbarcfg_open(fname, &tbcfg);
     172        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     173
     174        e = tbarcfg_smenu_first(tbcfg);
     175        PCUT_ASSERT_NOT_NULL(e);
     176
     177        /* Check that new values of properties have persisted */
     178        caption = smenu_entry_get_caption(e);
     179        PCUT_ASSERT_STR_EQUALS("B", caption);
     180        cmd = smenu_entry_get_cmd(e);
     181        PCUT_ASSERT_STR_EQUALS("b", cmd);
     182
     183        tbarcfg_close(tbcfg);
     184        remove(fname);
     185}
     186
     187/** Create start menu entry */
     188PCUT_TEST(entry_create)
     189{
     190        errno_t rc;
     191        tbarcfg_t *tbcfg;
     192        char fname[L_tmpnam], *p;
     193        smenu_entry_t *e;
     194        const char *caption;
     195        const char *cmd;
     196
     197        p = tmpnam(fname);
     198        PCUT_ASSERT_NOT_NULL(p);
     199
     200        rc = tbarcfg_create(fname, &tbcfg);
     201        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     202
     203        rc = smenu_entry_create(tbcfg, "A", "a");
     204        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     205
     206        e = tbarcfg_smenu_first(tbcfg);
     207        PCUT_ASSERT_NOT_NULL(e);
     208
     209        caption = smenu_entry_get_caption(e);
     210        PCUT_ASSERT_STR_EQUALS("A", caption);
     211        cmd = smenu_entry_get_cmd(e);
     212        PCUT_ASSERT_STR_EQUALS("a", cmd);
     213
     214        tbarcfg_close(tbcfg);
     215        remove(fname);
    129216}
    130217
Note: See TracChangeset for help on using the changeset viewer.