Changeset 3b67e95 in mainline for uspace/app/nav/test/panel.c


Ignore:
Timestamp:
2021-10-06T15:07:44Z (4 years ago)
Author:
Jiri Svoboda <jiri@…>
Children:
8e5f39d
Parents:
0e5ed803
git-author:
Jiri Svoboda <jiri@…> (2021-10-05 17:07:26)
git-committer:
Jiri Svoboda <jiri@…> (2021-10-06 15:07:44)
Message:

Creating and enumerating panel entries

File:
1 edited

Legend:

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

    r0e5ed803 r3b67e95  
    4747}
    4848
    49 
    5049/** Test panel_paint() */
    5150PCUT_TEST(paint)
     
    142141}
    143142
     143/** panel_entry_append() appends new entry */
     144PCUT_TEST(entry_append)
     145{
     146        panel_t *panel;
     147        errno_t rc;
     148
     149        rc = panel_create(NULL, &panel);
     150        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     151
     152        rc = panel_entry_append(panel, "a", 1);
     153        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     154
     155        PCUT_ASSERT_INT_EQUALS(1, list_count(&panel->entries));
     156
     157        rc = panel_entry_append(panel, "b", 2);
     158        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     159
     160        PCUT_ASSERT_INT_EQUALS(2, list_count(&panel->entries));
     161
     162        panel_destroy(panel);
     163}
     164
     165/** panel_entry_delete() deletes entry */
     166PCUT_TEST(entry_delete)
     167{
     168        panel_t *panel;
     169        panel_entry_t *entry;
     170        errno_t rc;
     171
     172        rc = panel_create(NULL, &panel);
     173        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     174
     175        rc = panel_entry_append(panel, "a", 1);
     176        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     177
     178        rc = panel_entry_append(panel, "b", 2);
     179        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     180
     181        PCUT_ASSERT_INT_EQUALS(2, list_count(&panel->entries));
     182
     183        entry = panel_first(panel);
     184        panel_entry_delete(entry);
     185
     186        PCUT_ASSERT_INT_EQUALS(1, list_count(&panel->entries));
     187
     188        entry = panel_first(panel);
     189        panel_entry_delete(entry);
     190
     191        PCUT_ASSERT_INT_EQUALS(0, list_count(&panel->entries));
     192
     193        panel_destroy(panel);
     194}
     195
     196/** panel_first() returns valid entry or @c NULL as appropriate */
     197PCUT_TEST(first)
     198{
     199        panel_t *panel;
     200        panel_entry_t *entry;
     201        errno_t rc;
     202
     203        rc = panel_create(NULL, &panel);
     204        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     205
     206        entry = panel_first(panel);
     207        PCUT_ASSERT_NULL(entry);
     208
     209        /* Add one entry */
     210        rc = panel_entry_append(panel, "a", 1);
     211        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     212
     213        /* Now try getting it */
     214        entry = panel_first(panel);
     215        PCUT_ASSERT_NOT_NULL(entry);
     216        PCUT_ASSERT_STR_EQUALS("a", entry->name);
     217        PCUT_ASSERT_INT_EQUALS(1, entry->size);
     218
     219        /* Add another entry */
     220        rc = panel_entry_append(panel, "b", 2);
     221        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     222
     223        /* We should still get the first entry */
     224        entry = panel_first(panel);
     225        PCUT_ASSERT_NOT_NULL(entry);
     226        PCUT_ASSERT_STR_EQUALS("a", entry->name);
     227        PCUT_ASSERT_INT_EQUALS(1, entry->size);
     228
     229        panel_destroy(panel);
     230}
     231
     232/** panel_next() returns the next entry or @c NULL as appropriate */
     233PCUT_TEST(next)
     234{
     235        panel_t *panel;
     236        panel_entry_t *entry;
     237        errno_t rc;
     238
     239        rc = panel_create(NULL, &panel);
     240        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     241
     242        /* Add one entry */
     243        rc = panel_entry_append(panel, "a", 1);
     244        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     245
     246        /* Now try getting its successor */
     247        entry = panel_first(panel);
     248        PCUT_ASSERT_NOT_NULL(entry);
     249
     250        entry = panel_next(entry);
     251        PCUT_ASSERT_NULL(entry);
     252
     253        /* Add another entry */
     254        rc = panel_entry_append(panel, "b", 2);
     255        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     256
     257        /* Try getting the successor of first entry again */
     258        entry = panel_first(panel);
     259        PCUT_ASSERT_NOT_NULL(entry);
     260
     261        entry = panel_next(entry);
     262        PCUT_ASSERT_NOT_NULL(entry);
     263        PCUT_ASSERT_STR_EQUALS("b", entry->name);
     264        PCUT_ASSERT_INT_EQUALS(2, entry->size);
     265
     266        panel_destroy(panel);
     267}
     268
    144269PCUT_EXPORT(panel);
Note: See TracChangeset for help on using the changeset viewer.