diff options
author | Arsentiy Milchakov <milcars@mapswithme.com> | 2016-11-02 12:43:23 +0300 |
---|---|---|
committer | Ilya Grechuhin <i.grechuhin@gmail.com> | 2016-11-11 11:05:56 +0300 |
commit | 7bd2eed6a4825cf4036011079fa1c8abb7ef5915 (patch) | |
tree | e37ec9364de67211ce0f4745ffd76da48f974114 /indexer/indexer_tests | |
parent | 36e7c13457c8850567276c60eb25dabb2c720ea5 (diff) |
Naming priority for poi objects was changed
Diffstat (limited to 'indexer/indexer_tests')
-rw-r--r-- | indexer/indexer_tests/feature_names_test.cpp | 313 |
1 files changed, 294 insertions, 19 deletions
diff --git a/indexer/indexer_tests/feature_names_test.cpp b/indexer/indexer_tests/feature_names_test.cpp index bc44e5bcec..d11b245d98 100644 --- a/indexer/indexer_tests/feature_names_test.cpp +++ b/indexer/indexer_tests/feature_names_test.cpp @@ -1,39 +1,314 @@ #include "testing/testing.hpp" +#include "indexer/feature_utils.hpp" #include "indexer/features_vector.hpp" #include "indexer/index.hpp" #include "indexer/mwm_set.hpp" #include "platform/local_country_file.hpp" +#include "platform/preferred_languages.hpp" using namespace platform; namespace { -UNIT_TEST(GetFeatureNames) +using StrUtf8 = StringUtf8Multilang; + +UNIT_TEST(GetPrefferedNames) +{ + feature::RegionData regionData; + regionData.SetLanguages({"de", "ko"}); + + int8_t deviceLang = StrUtf8::GetLangIndex("ru"); + string primary, secondary; + + { + StrUtf8 src; + src.AddString("fr", "fr name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "", ()); + TEST_EQUAL(secondary, "", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "default name", ()); + TEST_EQUAL(secondary, "", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + src.AddString("en", "en name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "en name", ()); + TEST_EQUAL(secondary, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("ru", "ru name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "ru name", ()); + TEST_EQUAL(secondary, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("default", "same name"); + src.AddString("en", "en name"); + src.AddString("ru", "same name"); + src.AddString("int_name", "int name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "same name", ()); + TEST_EQUAL(secondary, "", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("ru", "ru name"); + src.AddString("int_name", "int name"); + src.AddString("de", "de name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "ru name", ()); + TEST_EQUAL(secondary, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("ru", "ru name"); + src.AddString("int_name", "int name"); + src.AddString("de", "de name"); + src.AddString("ko", "ko name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "ru name", ()); + TEST_EQUAL(secondary, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + src.AddString("de", "de name"); + src.AddString("ko", "ko name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "int name", ()); + TEST_EQUAL(secondary, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + src.AddString("de", "de name"); + src.AddString("ko", "ko name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "int name", ()); + TEST_EQUAL(secondary, "", ()); + } + + { + StrUtf8 src; + src.AddString("en", "en name"); + src.AddString("de", "de name"); + src.AddString("ko", "ko name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "en name", ()); + TEST_EQUAL(secondary, "de name", ()); + } + + { + StrUtf8 src; + src.AddString("en", "en name"); + src.AddString("ko", "ko name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "en name", ()); + TEST_EQUAL(secondary, "ko name", ()); + } + + { + StrUtf8 src; + src.AddString("en", "en name"); + + feature::GetPreferredNames(regionData, src, deviceLang, primary, secondary); + + TEST_EQUAL(primary, "en name", ()); + TEST_EQUAL(secondary, "", ()); + } +} + +UNIT_TEST(GetReadableName) { - LocalCountryFile localFile = LocalCountryFile::MakeForTesting("minsk-pass"); + feature::RegionData regionData; + regionData.SetLanguages({"de", "ko"}); - Index index; - auto result = index.RegisterMap(localFile); - TEST_EQUAL(result.second, MwmSet::RegResult::Success, ()); + int8_t deviceLang = StrUtf8::GetLangIndex("ru"); + string name; - auto const & id = result.first; - MwmSet::MwmHandle handle = index.GetMwmHandleById(id); - TEST(handle.IsAlive(), ()); + { + StrUtf8 src; + src.AddString("fr", "fr name"); + + feature::GetReadableName(regionData, src, deviceLang, name); - auto const * value = handle.GetValue<MwmValue>(); - FeaturesVector fv(value->m_cont, value->GetHeader(), value->m_table.get()); - string primary, secondary, readable; + TEST_EQUAL(name, "", ()); + } - fv.ForEach([&](FeatureType & ft, uint32_t /* index */) { - ft.GetPreferredNames(primary, secondary); - if (!secondary.empty()) - { - ft.GetReadableName(readable); - TEST_EQUAL(secondary, readable, ()); - } - }); + StrUtf8 src; + src.AddString("ko", "ko name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "ko name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "de name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + src.AddString("default", "default name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + src.AddString("default", "default name"); + src.AddString("en", "en name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "en name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "int name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + src.AddString("ru", "ru name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "ru name", ()); + } + + deviceLang = StrUtf8::GetLangIndex("de"); + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("de", "de name"); + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "de name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("default", "default name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "default name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("en", "en name"); + src.AddString("int_name", "int name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "int name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + src.AddString("en", "en name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "en name", ()); + } + + { + StrUtf8 src; + src.AddString("ko", "ko name"); + + feature::GetReadableName(regionData, src, deviceLang, name); + + TEST_EQUAL(name, "ko name", ()); + } } } // namespace |