Improve Language tests

This commit is contained in:
Oliver Hamlet
2016-03-24 11:53:29 +00:00
parent 714f9640cc
commit b03f0e493c
3 changed files with 25 additions and 23 deletions
+1 -1
View File
@@ -241,7 +241,7 @@ set (LOOT_TESTS_HEADERS "${CMAKE_SOURCE_DIR}/src/tests/base_game_test.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/game/load_order_handler_test.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/git_helper_test.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/helpers_test.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_language.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/language_test.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_version.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_yaml_set_helpers.h"
"${CMAKE_SOURCE_DIR}/src/tests/backend/metadata/test_condition_grammar.h"
@@ -26,49 +26,50 @@ along with LOOT. If not, see
#define LOOT_TEST_BACKEND_HELPERS_LANGUAGE
#include "backend/helpers/language.h"
#include "tests/fixtures.h"
#include <gtest/gtest.h>
namespace loot {
namespace test {
TEST(Language, ConstructorsAndDataAccess) {
// Test English code and locale.
TEST(Language, codeConstructorShouldSetTheCorrectData) {
Language lang(Language::english);
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
lang = Language("en");
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
// Test code and locale for a couple of other languages, in case English
// is wrongly being used for everything. No point testing all languages,
// because that would just be copying the class code.
lang = Language(Language::polish);
EXPECT_EQ(Language::polish, lang.Code());
EXPECT_EQ("Polski", lang.Name());
EXPECT_EQ("pl", lang.Locale());
}
TEST(Language, localeConstructorShouldSetTheCorrectData) {
Language lang("en");
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
lang = Language("de");
EXPECT_EQ(Language::german, lang.Code());
EXPECT_EQ("Deutsch", lang.Name());
EXPECT_EQ("de", lang.Locale());
}
// Test that invalid values get treated as English.
lang = Language(1000);
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
lang = Language("foo");
TEST(Language, codeConstructorShouldTreatAnInvalidCodeAsEnglish) {
Language lang(1000);
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
}
TEST(Language, Codes) {
// Check that all the expected codes are given.
TEST(Language, localeConstructorShouldTreatAnInvalidLocaleAsEnglish) {
Language lang("foo");
EXPECT_EQ(Language::english, lang.Code());
EXPECT_EQ("English", lang.Name());
EXPECT_EQ("en", lang.Locale());
}
TEST(Language, codesShouldContainAllExpectedLanguageCodes) {
std::vector<unsigned int> codes = {
Language::english,
Language::spanish,
@@ -82,7 +83,8 @@ namespace loot {
Language::danish,
Language::korean
};
EXPECT_EQ(Language::Codes, codes);
EXPECT_EQ(codes, Language::Codes);
}
}
}
+1 -1
View File
@@ -47,7 +47,7 @@
#include "backend/game/load_order_handler_test.h"
#include "backend/helpers/git_helper_test.h"
#include "backend/helpers/helpers_test.h"
#include "backend/helpers/test_language.h"
#include "backend/helpers/language_test.h"
#include "backend/helpers/test_version.h"
#include "backend/helpers/test_yaml_set_helpers.h"
#include "backend/metadata/test_condition_grammar.h"