UI
This commit is contained in:
+21
-21
@@ -34,7 +34,7 @@
|
||||
#include <vamp_zero/navigation.hpp>
|
||||
#include <vamp_zero/parse.hpp>
|
||||
#include <vamp_zero/page_control.hpp>
|
||||
#include <vamp_zero/portal.hpp>
|
||||
#include <vamp_zero/control.hpp>
|
||||
#include <vamp_zero/app.hpp>
|
||||
#include <vamp_zero/score.hpp>
|
||||
#include <vamp_zero/types.hpp>
|
||||
@@ -92,9 +92,6 @@ BOOST_AUTO_TEST_CASE(build_identification_uses_git_without_an_application_releas
|
||||
auto once = std::string{"--once"};
|
||||
args.push_back(once.data());
|
||||
BOOST_TEST(!vamp_zero::parse_command_line(3, args.data()));
|
||||
auto status = vamp_zero::portal_status_json({}, {}).as_object();
|
||||
BOOST_TEST(status.at("git_sha").as_string() == VAMP_GIT_SHA);
|
||||
BOOST_TEST(!status.contains("version"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(runtime_config_uses_headless_and_ignores_unknown_fields) {
|
||||
@@ -155,20 +152,23 @@ BOOST_AUTO_TEST_CASE(product_vamp_audio_config_rejects_invalid_tempo_range) {
|
||||
BOOST_TEST(!parsed);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(main_menu_toggles_audio_settings_and_edits_tempo) {
|
||||
BOOST_AUTO_TEST_CASE(settings_menu_toggles_audio_settings_and_edits_tempo) {
|
||||
auto state = navigation_state();
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.selected_main_menu_index == 1U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_CHECK(state.mode == vamp_zero::app_mode::SETTINGS_MENU);
|
||||
BOOST_TEST(state.selected_settings_index == 1U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(state.audio.playback_enabled);
|
||||
BOOST_TEST(static_cast<std::int32_t>(state.mode) == static_cast<std::int32_t>(vamp_zero::app_mode::MAIN_MENU));
|
||||
BOOST_TEST(static_cast<std::int32_t>(state.mode) == static_cast<std::int32_t>(vamp_zero::app_mode::SETTINGS_MENU));
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.selected_main_menu_index == 2U);
|
||||
BOOST_TEST(state.selected_settings_index == 2U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(state.audio.metronome_enabled);
|
||||
BOOST_TEST(static_cast<std::int32_t>(state.mode) == static_cast<std::int32_t>(vamp_zero::app_mode::MAIN_MENU));
|
||||
BOOST_TEST(static_cast<std::int32_t>(state.mode) == static_cast<std::int32_t>(vamp_zero::app_mode::SETTINGS_MENU));
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.selected_main_menu_index == 3U);
|
||||
BOOST_TEST(state.selected_settings_index == 3U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_TEST(state.audio.tempo_editing);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
@@ -187,21 +187,22 @@ BOOST_AUTO_TEST_CASE(main_menu_toggles_audio_settings_and_edits_tempo) {
|
||||
BOOST_TEST(!state.audio.tempo_editing);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(audio_status_json_reports_menu_settings) {
|
||||
BOOST_AUTO_TEST_CASE(remote_display_reports_settings_without_a_catalog_dump) {
|
||||
auto state = navigation_state();
|
||||
state.mode = vamp_zero::app_mode::SETTINGS_MENU;
|
||||
state.selected_settings_index = 3U;
|
||||
state.audio.playback_enabled = true;
|
||||
state.audio.metronome_enabled = true;
|
||||
state.audio.metronome_bpm = 135;
|
||||
state.audio.tempo_editing = true;
|
||||
auto status = vamp_zero::app_status_json(state).as_object();
|
||||
auto const &audio = status.at("audio").as_object();
|
||||
BOOST_TEST(audio.at("playback_enabled").as_bool());
|
||||
BOOST_TEST(audio.at("metronome_enabled").as_bool());
|
||||
BOOST_TEST(audio.at("metronome_bpm").as_uint64() == 135U);
|
||||
BOOST_TEST(audio.at("metronome_min_bpm").as_uint64() == 40U);
|
||||
BOOST_TEST(audio.at("metronome_max_bpm").as_uint64() == 240U);
|
||||
BOOST_TEST(audio.at("metronome_step").as_uint64() == 5U);
|
||||
BOOST_TEST(audio.at("tempo_editing").as_bool());
|
||||
auto remote = vamp_pico::remote_display_state{};
|
||||
BOOST_REQUIRE(vamp_pico::parse_remote_display_body(vamp_zero::remote_display_text(state), remote));
|
||||
BOOST_TEST(std::string{remote.focus} == "Tempo");
|
||||
BOOST_TEST(std::string{remote.mode} == "settings_menu");
|
||||
BOOST_TEST(remote.playback);
|
||||
BOOST_TEST(remote.metronome);
|
||||
BOOST_TEST(remote.bpm == 135U);
|
||||
BOOST_TEST(remote.editing);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(main_menu_metronome_setting_survives_score_selection) {
|
||||
@@ -240,7 +241,7 @@ BOOST_AUTO_TEST_CASE(score_parser_loads_the_generated_catalog) {
|
||||
BOOST_AUTO_TEST_CASE(empty_catalog_navigation_and_main_menu_wrap) {
|
||||
auto state = vamp_zero::app_state{};
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::PREVIOUS);
|
||||
BOOST_TEST(state.selected_main_menu_index == 3U);
|
||||
BOOST_TEST(state.selected_main_menu_index == 1U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::NEXT);
|
||||
BOOST_TEST(state.selected_main_menu_index == 0U);
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
@@ -250,7 +251,6 @@ BOOST_AUTO_TEST_CASE(empty_catalog_navigation_and_main_menu_wrap) {
|
||||
state = vamp_zero::apply_app_command(std::move(state), vamp_protocol::page_command::SELECT);
|
||||
BOOST_CHECK(state.mode == vamp_zero::app_mode::MAIN_MENU);
|
||||
BOOST_REQUIRE(vamp_zero::validate_app_state(state));
|
||||
BOOST_TEST(!vamp_zero::app_status_json(state).as_object().contains("practice"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(song_part_navigation_preserves_selection_and_remote_display) {
|
||||
|
||||
Reference in New Issue
Block a user