mirror of https://github.com/kiwix/libkiwix.git
65 lines
2.0 KiB
C++
65 lines
2.0 KiB
C++
#include "../src/server/i18n_utils.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 \"\"");
|
|
}
|
|
}
|
|
|
|
TEST(I18n, translateBookCategory)
|
|
{
|
|
|
|
EXPECT_EQ(translateBookCategory("en", "ted"), "Ted");
|
|
EXPECT_EQ(translateBookCategory("test", "ted"), "[I18N] Ted [TESTING]");
|
|
|
|
EXPECT_EQ(translateBookCategory("en", "stack_exchange"), "Stack Exchange");
|
|
EXPECT_EQ(translateBookCategory("test", "stack_exchange"), "[I18N] Stack Exchange [TESTING]");
|
|
|
|
// unknown categories are simply not translated
|
|
EXPECT_EQ(translateBookCategory("en", "Qwerty"), "Qwerty");
|
|
EXPECT_EQ(translateBookCategory("test", "Qwerty"), "Qwerty");
|
|
}
|