diff options
Diffstat (limited to 'src/unittest/test_gettext.cpp')
-rw-r--r-- | src/unittest/test_gettext.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/unittest/test_gettext.cpp b/src/unittest/test_gettext.cpp new file mode 100644 index 000000000..338a416d7 --- /dev/null +++ b/src/unittest/test_gettext.cpp @@ -0,0 +1,43 @@ +#include "test.h" +#include "porting.h" +#include "gettext.h" + +class TestGettext : public TestBase +{ +public: + TestGettext() { + TestManager::registerTestModule(this); + } + + const char *getName() { return "TestGettext"; } + + void runTests(IGameDef *gamedef); + + void testFmtgettext(); +}; + +static TestGettext g_test_instance; + +void TestGettext::runTests(IGameDef *gamedef) +{ + TEST(testFmtgettext); +} + +// Make sure updatepo.sh does not pick up the strings +#define dummyname fmtgettext + +void TestGettext::testFmtgettext() +{ + std::string buf = dummyname("sample text %d", 12); + UASSERTEQ(std::string, buf, "sample text 12"); + + std::string src, expect; + src = "You are about to join this server with the name \"%s\".\n"; + expect = "You are about to join this server with the name \"foo\".\n"; + for (int i = 0; i < 20; i++) { + src.append("loooong text"); + expect.append("loooong text"); + } + buf = dummyname(src.c_str(), "foo"); + UASSERTEQ(const std::string &, buf, expect); +} |