Added i18n unit test

This commit is contained in:
Veloman Yunkan 2024-01-07 16:47:01 +04:00
parent 3f0ea083e6
commit 96b6f41244
2 changed files with 52 additions and 1 deletions

50
test/i18n.cpp Normal file
View File

@ -0,0 +1,50 @@
#include "../src/server/i18n.h"
#include "gtest/gtest.h"
using namespace kiwix;
TEST(ParameterizedMessage, parameterlessMessages)
{
{
const ParameterizedMessage msg("404-page-title", {});
EXPECT_EQ(msg.getText("en"), "Content not found");
EXPECT_EQ(msg.getText("test"), "[I18N TESTING] Not Found - Try Again");
}
{
// Make sure that msgId influences the result of getText()
const ParameterizedMessage msg("random-page-button-text", {});
EXPECT_EQ(msg.getText("en"), "Go to a randomly selected page");
EXPECT_EQ(msg.getText("test"), "[I18N TESTING] I am tired of determinism");
}
{
// Demonstrate that unwanted parameters are silently ignored
const ParameterizedMessage msg("404-page-title", {{"abc", "xyz"}});
EXPECT_EQ(msg.getText("en"), "Content not found");
EXPECT_EQ(msg.getText("test"), "[I18N TESTING] Not Found - Try Again");
}
}
TEST(ParameterizedMessage, messagesWithParameters)
{
{
const ParameterizedMessage msg("filter-by-tag",
{{"TAG", "scifi"}}
);
EXPECT_EQ(msg.getText("en"), "Filter by tag \"scifi\"");
EXPECT_EQ(msg.getText("test"), "Filter [I18N] by [TESTING] tag \"scifi\"");
}
{
// Omitting expected parameters amounts to using empty values for them
const ParameterizedMessage msg("filter-by-tag", {});
EXPECT_EQ(msg.getText("en"), "Filter by tag \"\"");
EXPECT_EQ(msg.getText("test"), "Filter [I18N] by [TESTING] tag \"\"");
}
}

View File

@ -13,7 +13,8 @@ tests = [
'name_mapper',
'opds_catalog',
'server_helper',
'lrucache'
'lrucache',
'i18n'
]
if build_machine.system() != 'windows'