From e3a3cf375d39297b4c729078fd8bd1314a30e0b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Wed, 30 Nov 2016 11:51:55 +0100 Subject: [PATCH] Add LanguagePackTest --- test/tests/CMakeLists.txt | 29 ++++++++++++++--- test/tests/LanguagePackTest.cpp | 55 +++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 5 deletions(-) create mode 100644 test/tests/LanguagePackTest.cpp diff --git a/test/tests/CMakeLists.txt b/test/tests/CMakeLists.txt index a16f70fc9d..8d2c6650ff 100644 --- a/test/tests/CMakeLists.txt +++ b/test/tests/CMakeLists.txt @@ -48,13 +48,32 @@ add_dependencies(${GTEST_LIBRARY} googletest) add_dependencies(${GTEST_MAIN_LIBRARY} ${GTEST_LIBRARY}) include_directories(SYSTEM ${GTEST_INCLUDE_DIR}) +include_directories("../../src") + +set(GTEST_LIBRARIES gtest gtest_main pthread) # Start of our tests +# sawyercoding test + set(SAWYERCODING_TEST_SOURCES "sawyercoding_test.cpp" "../../src/diagnostic.c" "../../src/util/sawyercoding.c" "../../src/localisation/utf8.c") -set (CMAKE_CXX_STANDARD 11) add_executable(test_sawyercoding ${SAWYERCODING_TEST_SOURCES}) -target_link_libraries(test_sawyercoding gtest gtest_main pthread) -target_include_directories(test_sawyercoding PUBLIC "../../src") -add_test(NAME sawyercoding - COMMAND test_sawyercoding) +target_link_libraries(test_sawyercoding ${GTEST_LIBRARIES}) +add_test(NAME sawyercoding COMMAND test_sawyercoding) + +# LanguagePack test +set(LANGUAGEPACK_TEST_SOURCES + "LanguagePackTest.cpp" + "../../src/localisation/LanguagePack.cpp" + "../../src/core/Console.cpp" + "../../src/core/Diagnostics.cpp" + "../../src/core/Guard.cpp" + "../../src/core/String.cpp" + "../../src/diagnostic.c" + "../../src/localisation/format_codes.c" + "../../src/localisation/utf8.c" + "../../src/util/util.c" + ) +add_executable(test_languagepack ${LANGUAGEPACK_TEST_SOURCES}) +target_link_libraries(test_languagepack ${GTEST_LIBRARIES} dl z SDL2 SDL2_ttf ssl crypto) +add_test(NAME languagepack COMMAND test_languagepack) \ No newline at end of file diff --git a/test/tests/LanguagePackTest.cpp b/test/tests/LanguagePackTest.cpp new file mode 100644 index 0000000000..598a7e3558 --- /dev/null +++ b/test/tests/LanguagePackTest.cpp @@ -0,0 +1,55 @@ +#include "localisation/LanguagePack.h" +#include + +TEST(LanguagePackTest, create_empty) +{ + ILanguagePack * empty = LanguagePackFactory::FromText(0, ""); + ASSERT_EQ(empty->GetId(), 0); + ASSERT_EQ(empty->GetCount(), 0); + delete empty; +} + +TEST(LanguagePackTest, create_mutable_id_1) +{ + ILanguagePack * lang = LanguagePackFactory::FromText(1, "STR_0000:\n"); + ASSERT_EQ(lang->GetId(), 1); + ASSERT_EQ(lang->GetCount(), 1); + ASSERT_STREQ(lang->GetString(0), ""); + lang->SetString(0, "xx"); + ASSERT_EQ(lang->GetCount(), 1); + ASSERT_STREQ(lang->GetString(0), "xx"); + delete lang; +} + +extern const utf8 * LanguageEnGB; + +TEST(LanguagePackTest, language_pack_simple) +{ + ILanguagePack * lang = LanguagePackFactory::FromText(0, LanguageEnGB); + ASSERT_EQ(lang->GetId(), 0); + ASSERT_EQ(lang->GetCount(), 4); + ASSERT_STREQ(lang->GetString(2), "Spiral Roller Coaster"); + ASSERT_EQ(lang->GetScenarioOverrideStringId("Arid Heights", 0), 0x7000); + ASSERT_STREQ(lang->GetString(0x7000), "Arid Heights scenario string"); + ASSERT_EQ(lang->GetObjectOverrideStringId("CONDORRD", 0), 0x6000); + ASSERT_STREQ(lang->GetString(0x6000), "my test ride"); + delete lang; +} + +const utf8 * LanguageEnGB = "# STR_XXXX part is read and XXXX becomes the string id number.\n" + "# Everything after the colon and before the new line will be saved as the " + "string.\n" + "# Use # at the beginning of a line to leave a comment.\n" + "STR_0000 :\n" + "STR_0001 :{STRINGID} {COMMA16}\n" + "STR_0002 :Spiral Roller Coaster\n" + "STR_0003 :Stand-up Roller Coaster\n" + "\n" + "STR_SCNR :Arid Heights scenario string\n" + "STR_PARK :Arid Heights park string\n" + "STR_DTLS :Free of any financial limits, your challenge is to develop " + "this desert park while keeping the guests happy\n" + "[CONDORRD]\n" + "STR_NAME :my test ride\n" + "STR_DESC :ride description\n" + "STR_CPTY :ride capacity\n";