Add tests for Translations

This commit is contained in:
O01eg 2021-09-29 10:38:55 +03:00
parent b1237b5cac
commit 2cd052f889
No known key found for this signature in database
GPG Key ID: 1B9D1643A461AA2A
2 changed files with 34 additions and 0 deletions

3
.gitignore vendored
View File

@ -390,3 +390,6 @@ gcov.css
# https://clangd.llvm.org/ cache folder
.clangd/
.cache/
# Generated by unit tests files
tests/data/*.translation

View File

@ -35,6 +35,10 @@
#include "core/string/translation.h"
#include "core/string/translation_po.h"
#ifdef TOOLS_ENABLED
#include "editor/import/resource_importer_csv_translation.h"
#endif
#include "thirdparty/doctest/doctest.h"
namespace TestTranslation {
@ -145,6 +149,33 @@ TEST_CASE("[OptimizedTranslation] Generate from Translation and read messages")
CHECK(messages.size() == 0);
}
#ifdef TOOLS_ENABLED
TEST_CASE("[Translation] CSV import") {
Ref<ResourceImporterCSVTranslation> import_csv_translation = memnew(ResourceImporterCSVTranslation);
Map<StringName, Variant> options;
options["compress"] = false;
options["delimiter"] = 0;
List<String> gen_files;
Error result = import_csv_translation->import(TestUtils::get_data_path("translations.csv"),
"", options, nullptr, &gen_files);
CHECK(result == OK);
CHECK(gen_files.size() == 2);
for (const String &file : gen_files) {
Ref<Translation> translation = ResourceLoader::load(file);
CHECK(translation.is_valid());
TranslationServer::get_singleton()->add_translation(translation);
}
TranslationServer::get_singleton()->set_locale("de");
CHECK(Object().tr("GOOD_MORNING", "") == "Guten Morgen");
}
#endif // TOOLS_ENABLED
} // namespace TestTranslation
#endif // TEST_TRANSLATION_H