diff --git a/tests/progbar.cpp b/tests/progbar.cpp index fdce8c03d..47e8bed23 100644 --- a/tests/progbar.cpp +++ b/tests/progbar.cpp @@ -11,7 +11,35 @@ TEST_CASE("ProgressBar") { REQUIRE(n_); REQUIRE(0 == ncplane_cursor_move_yx(n_, 0, 0)); - // FIXME add tests + // a single-cell progress bar progressing from bottom to top in 1/8 chunks + SUBCASE("SingleCellUp") { + struct ncplane_options nopts = { + .y = 0, + .x = 0, + .rows = 1, + .cols = 1, + .userptr = nullptr, + .name = "pbar", + .resizecb = nullptr, + .flags = 0, + }; + const char* egcs[] = { " ", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█" }; + auto n = ncplane_create(n_, &nopts); + REQUIRE(nullptr != n); + auto pbar = ncprogbar_create(n, NULL); + for(int i = 0 ; i < 9 ; ++i){ + double p = i / 8.0; + CHECK(0 == ncprogbar_set_progress(pbar, p)); + CHECK(0 == notcurses_render(nc_)); + uint16_t smask; + uint64_t channels; + char* egc = notcurses_at_yx(nc_, 0, 0, &smask, &channels); + REQUIRE(nullptr != egc); + CHECK(0 == strcmp(egc, egcs[i])); + free(egc); + } + ncprogbar_destroy(pbar); + } CHECK(0 == notcurses_stop(nc_)); }