mirror of https://gitlab.com/cppit/jucipp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
4.0 KiB
90 lines
4.0 KiB
#include "test_suite.h" |
|
#include <iostream> |
|
|
|
int main() { |
|
const auto suite_name = "Config_tests"; |
|
const auto doTest = [&](const std::string &test, const std::function<void(Config & config)> &assertions) { |
|
auto &config = Config::get(); |
|
suite test_suite(suite_name); |
|
try { |
|
auto module = py::module::import("config_test"); |
|
module.attr(test.c_str())(); |
|
assertions(config); |
|
test_suite.has_assertion = true; |
|
} |
|
catch(const py::error_already_set &error) { |
|
std::cout << error.what(); |
|
} |
|
}; |
|
|
|
doTest("menu", [](Config &config) { |
|
g_assert_cmpstr(config.menu.keys.at("key").c_str(), ==, "value"); |
|
}); |
|
|
|
doTest("theme", [](Config &config) { |
|
g_assert_cmpstr(config.theme.name.c_str(), ==, "Star Wars"); |
|
g_assert_cmpstr(config.theme.variant.c_str(), ==, "Instrumental"); |
|
g_assert_cmpstr(config.theme.font.c_str(), ==, "Imperial"); |
|
}); |
|
|
|
doTest("terminal", [](Config &config) { |
|
g_assert_cmpstr(config.terminal.font.c_str(), ==, "Comic Sans"); |
|
g_assert_cmpuint(config.terminal.history_size, ==, 3); |
|
}); |
|
|
|
doTest("project", [](Config &config) { |
|
g_assert_cmpstr(config.project.default_build_path.c_str(), ==, "/build"); |
|
g_assert_cmpstr(config.project.debug_build_path.c_str(), ==, "/debug"); |
|
g_assert_cmpstr(config.project.meson.command.c_str(), ==, "meson"); |
|
g_assert_cmpstr(config.project.meson.compile_command.c_str(), ==, "meson --build"); |
|
g_assert_cmpstr(config.project.cmake.command.c_str(), ==, "cmake"); |
|
g_assert_cmpstr(config.project.cmake.compile_command.c_str(), ==, "cmake --build"); |
|
g_assert_true(config.project.save_on_compile_or_run); |
|
// g_assert_false(config.project.clear_terminal_on_compile); |
|
g_assert_cmpstr(config.project.ctags_command.c_str(), ==, "ctags"); |
|
g_assert_cmpstr(config.project.python_command.c_str(), ==, "python"); |
|
}); |
|
|
|
doTest("source", [](Config &config) { |
|
g_assert_cmpstr(config.source.style.c_str(), ==, "Classical"); |
|
g_assert_cmpstr(config.source.font.c_str(), ==, "Monospaced"); |
|
g_assert_cmpstr(config.source.spellcheck_language.c_str(), ==, "Klingon"); |
|
g_assert_false(config.source.cleanup_whitespace_characters); |
|
g_assert_cmpstr(config.source.show_whitespace_characters.c_str(), ==, "no"); |
|
g_assert_false(config.source.format_style_on_save); |
|
g_assert_false(config.source.format_style_on_save_if_style_file_found); |
|
g_assert_false(config.source.smart_inserts); |
|
g_assert_false(config.source.show_map); |
|
// g_assert_cmpstr(config.source.map_font_size.c_str(), ==, "10px"); |
|
g_assert_false(config.source.show_git_diff); |
|
g_assert_false(config.source.show_background_pattern); |
|
g_assert_false(config.source.show_right_margin); |
|
g_assert_cmpuint(config.source.right_margin_position, ==, 10); |
|
g_assert_false(config.source.auto_tab_char_and_size); |
|
g_assert_cmpint(config.source.default_tab_char, ==, 'c'); |
|
g_assert_cmpuint(config.source.default_tab_size, ==, 1); |
|
g_assert_false(config.source.tab_indents_line); |
|
// g_assert_false(config.source.wrap_lines); |
|
g_assert_false(config.source.highlight_current_line); |
|
g_assert_false(config.source.show_line_numbers); |
|
g_assert_false(config.source.enable_multiple_cursors); |
|
g_assert_false(config.source.auto_reload_changed_files); |
|
g_assert_cmpstr(config.source.clang_format_style.c_str(), ==, "CFS"); |
|
g_assert_cmpuint(config.source.clang_usages_threads, ==, 1); |
|
g_assert_cmpuint(config.source.documentation_searches.size(), ==, 1); |
|
auto ds = config.source.documentation_searches.at("cpp"); |
|
g_assert_cmpstr(ds.separator.c_str(), ==, "::"); |
|
g_assert_cmpint(ds.queries.size(), ==, 1); |
|
g_assert_cmpstr(ds.queries.at("key").c_str(), ==, "value"); |
|
}); |
|
|
|
doTest("log", [](Config &config) { |
|
g_assert_true(config.log.libclang); |
|
g_assert_false(config.log.language_server); |
|
}); |
|
|
|
doTest("cfg", [](Config &config) { |
|
g_assert_cmpstr(config.home_juci_path.string().c_str(), ==, "/away"); |
|
g_assert_cmpstr(config.home_path.string().c_str(), ==, "/home"); |
|
}); |
|
}
|
|
|