diff options
author | Andrei Karas <akaras@inbox.ru> | 2016-03-29 21:29:51 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2016-03-29 21:29:51 +0300 |
commit | d6f42c15612b9d40d0a496b2b34efe66df0b74f9 (patch) | |
tree | e18c0752ac3935d2ac4f68b5f4531af6baf30021 /src/utils/langs_unittest.cc | |
parent | fdd94971fc164397bdf18cf7558b91283afc9769 (diff) | |
download | manaverse-d6f42c15612b9d40d0a496b2b34efe66df0b74f9.tar.gz manaverse-d6f42c15612b9d40d0a496b2b34efe66df0b74f9.tar.bz2 manaverse-d6f42c15612b9d40d0a496b2b34efe66df0b74f9.tar.xz manaverse-d6f42c15612b9d40d0a496b2b34efe66df0b74f9.zip |
Add tests for lang functions.
Diffstat (limited to 'src/utils/langs_unittest.cc')
-rw-r--r-- | src/utils/langs_unittest.cc | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/src/utils/langs_unittest.cc b/src/utils/langs_unittest.cc new file mode 100644 index 000000000..76c9cdf7a --- /dev/null +++ b/src/utils/langs_unittest.cc @@ -0,0 +1,115 @@ +/* + * The ManaPlus Client + * Copyright (C) 2013-2016 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "utils/langs.h" + +#include "catch.hpp" +#include "configuration.h" + +#include "utils/env.h" + +#include "debug.h" + +TEST_CASE("Langs getLang") +{ + LangVect langs; + + config.setValue("lang", "C"); + langs = getLang(); + REQUIRE(langs.size() == 1); + REQUIRE(langs[0] == "C"); + + config.setValue("lang", "ru_RU"); + langs = getLang(); + REQUIRE(langs.size() == 2); + REQUIRE(langs[0] == "ru_RU"); + REQUIRE(langs[1] == "ru"); + + config.setValue("lang", "ru_RU.UTF-8"); + langs = getLang(); + REQUIRE(langs.size() == 2); + REQUIRE(langs[0] == "ru_RU"); + REQUIRE(langs[1] == "ru"); + + config.setValue("lang", ""); + + setEnv("LANG", "C"); + langs = getLang(); + REQUIRE(langs.size() == 1); + REQUIRE(langs[0] == "C"); + + setEnv("LANG", "ru_RU"); + langs = getLang(); + REQUIRE(langs.size() == 2); + REQUIRE(langs[0] == "ru_RU"); + REQUIRE(langs[1] == "ru"); + + setEnv("LANG", "ru_RU.UTF-8"); + langs = getLang(); + REQUIRE(langs.size() == 2); + REQUIRE(langs[0] == "ru_RU"); + REQUIRE(langs[1] == "ru"); +} + +TEST_CASE("Langs getLangSimple") +{ + config.setValue("lang", "C"); + REQUIRE(getLangSimple() == "C"); + + config.setValue("lang", "ru_RU"); + REQUIRE(getLangSimple() == "ru_RU"); + + config.setValue("lang", "ru_RU.UTF-8"); + REQUIRE(getLangSimple() == "ru_RU.UTF-8"); + + config.setValue("lang", ""); + + setEnv("LANG", "C"); + REQUIRE(getLangSimple() == "C"); + + setEnv("LANG", "ru_RU"); + REQUIRE(getLangSimple() == "ru_RU"); + + setEnv("LANG", "ru_RU.UTF-8"); + REQUIRE(getLangSimple() == "ru_RU.UTF-8"); +} + +TEST_CASE("Langs getLangShort") +{ + config.setValue("lang", "C"); + REQUIRE(getLangShort() == "C"); + + config.setValue("lang", "ru_RU"); + REQUIRE(getLangShort() == "ru"); + + config.setValue("lang", "ru_RU.UTF-8"); + REQUIRE(getLangShort() == "ru"); + + config.setValue("lang", ""); + + setEnv("LANG", "C"); + REQUIRE(getLangShort() == "C"); + + setEnv("LANG", "ru_RU"); + REQUIRE(getLangShort() == "ru"); + + setEnv("LANG", "ru_RU.UTF-8"); + REQUIRE(getLangShort() == "ru"); +} |