diff --git a/tests/selector.cpp b/tests/selector.cpp index 931654848..941b389fd 100644 --- a/tests/selector.cpp +++ b/tests/selector.cpp @@ -171,6 +171,30 @@ TEST_CASE("SelectorTest") { CHECK(0 == notcurses_render(nc_)); auto sel = ncselector_selected(ncs); REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + ncselector_nextitem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[1].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + ncselector_previtem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + // wrap around from the top to bottom... + ncselector_previtem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[2].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + // ...and back to the top + ncselector_nextitem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); struct ncplane* ncsp = ncselector_plane(ncs); REQUIRE(nullptr != ncsp); int dimy, dimx; @@ -193,6 +217,31 @@ TEST_CASE("SelectorTest") { struct ncselector* ncs = ncselector_create(notcurses_stdplane(nc_), 0, 0, &opts); REQUIRE(nullptr != ncs); CHECK(0 == notcurses_render(nc_)); + auto sel = ncselector_selected(ncs); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + ncselector_nextitem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[1].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + ncselector_previtem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + // wrap around from the top to bottom... + ncselector_previtem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[2].option)); + free(sel); + CHECK(0 == notcurses_render(nc_)); + // ...and back to the top + ncselector_nextitem(ncs, &sel); + REQUIRE(nullptr != sel); + CHECK(0 == strcmp(sel, items[0].option)); + free(sel); struct ncplane* ncsp = ncselector_plane(ncs); REQUIRE(nullptr != ncsp); int dimy, dimx;