Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2018-06-19 14:22:31 +0300
committerArsentiy Milchakov <milcars@mapswithme.com>2018-06-19 15:10:59 +0300
commit8f26473d158404875e68807162a2db0a8876419d (patch)
tree3283254b6f2cffc07f6049078ef9a22c0550f89b /partners_api
parentd60e738a409fa4a61307b84c8c0c6d41fc9ebf7e (diff)
Added Megafon countries checker
Diffstat (limited to 'partners_api')
-rw-r--r--partners_api/CMakeLists.txt2
-rw-r--r--partners_api/megafon_countries.cpp65
-rw-r--r--partners_api/megafon_countries.hpp10
-rw-r--r--partners_api/partners_api_tests/CMakeLists.txt4
-rw-r--r--partners_api/partners_api_tests/megafon_countries_tests.cpp15
5 files changed, 96 insertions, 0 deletions
diff --git a/partners_api/CMakeLists.txt b/partners_api/CMakeLists.txt
index b7bfef5b89..b8a474c7f3 100644
--- a/partners_api/CMakeLists.txt
+++ b/partners_api/CMakeLists.txt
@@ -22,6 +22,8 @@ set(
locals_api.hpp
maxim_api.cpp
maxim_api.hpp
+ megafon_countries.cpp
+ megafon_countries.hpp
mopub_ads.cpp
mopub_ads.hpp
opentable_api.cpp
diff --git a/partners_api/megafon_countries.cpp b/partners_api/megafon_countries.cpp
new file mode 100644
index 0000000000..63d75e0980
--- /dev/null
+++ b/partners_api/megafon_countries.cpp
@@ -0,0 +1,65 @@
+#include "partners_api/megafon_countries.hpp"
+
+#include <algorithm>
+
+namespace ads
+{
+namespace
+{
+storage::TCountriesVec const kCountries = {
+ "Armenia",
+ "Austria",
+ "Belarus",
+ "Bulgaria",
+ "Croatia",
+ "Cyprus",
+ "Czech",
+ "Czech Republic",
+ "Denmark",
+ "Egypt",
+ "Estonia",
+ "Finland",
+ "France",
+ "Germany",
+ "Gibraltar",
+ "Greece",
+ "Hungary",
+ "Iceland",
+ "Israel",
+ "Italy",
+ "Kazakhstan",
+ "Kyrgyzstan",
+ "Latvia",
+ "Lithuania",
+ "Malta",
+ "Montenegro",
+ "Netherlands",
+ "Norway",
+ "Poland",
+ "Portugal",
+ "Romania",
+ "Saudi Arabia",
+ "South Korea",
+ "Spain",
+ "Sweden",
+ "Switzerland",
+ "Thailand",
+ "Tunisia",
+ "Turkey",
+ "Ukraine",
+ "United Arab Emirates",
+};
+} // namespace
+
+bool HasMegafonDownloaderBanner(storage::Storage const & storage, std::string const & mwmId)
+{
+ storage::TCountriesVec countries;
+ storage.GetTopmostNodesFor(mwmId, countries);
+ for (auto const & c : countries)
+ {
+ if (std::find(kCountries.cbegin(), kCountries.cend(), c) != kCountries.cend())
+ return true;
+ }
+ return false;
+}
+} // namespace ads
diff --git a/partners_api/megafon_countries.hpp b/partners_api/megafon_countries.hpp
new file mode 100644
index 0000000000..6e77afbfd9
--- /dev/null
+++ b/partners_api/megafon_countries.hpp
@@ -0,0 +1,10 @@
+#pragma once
+
+#include "storage/storage.hpp"
+
+#include <string>
+
+namespace ads
+{
+extern bool HasMegafonDownloaderBanner(storage::Storage const & storage, std::string const & mwmId);
+} // namespace ads
diff --git a/partners_api/partners_api_tests/CMakeLists.txt b/partners_api/partners_api_tests/CMakeLists.txt
index c005e0736d..caea8e4f7d 100644
--- a/partners_api/partners_api_tests/CMakeLists.txt
+++ b/partners_api/partners_api_tests/CMakeLists.txt
@@ -9,6 +9,7 @@ set(
facebook_tests.cpp
google_tests.cpp
maxim_tests.cpp
+ megafon_countries_tests.cpp
mopub_tests.cpp
rb_tests.cpp
taxi_engine_tests.cpp
@@ -23,9 +24,12 @@ omim_add_test(${PROJECT_NAME} ${SRC})
omim_link_libraries(
${PROJECT_NAME}
partners_api
+ storage
indexer
platform
editor
+ mwm_diff
+ bsdiff
geometry
coding
base
diff --git a/partners_api/partners_api_tests/megafon_countries_tests.cpp b/partners_api/partners_api_tests/megafon_countries_tests.cpp
new file mode 100644
index 0000000000..bb5f28e5f1
--- /dev/null
+++ b/partners_api/partners_api_tests/megafon_countries_tests.cpp
@@ -0,0 +1,15 @@
+#include "testing/testing.hpp"
+
+#include "partners_api/megafon_countries.hpp"
+
+UNIT_TEST(MegafonCountriesTest_ExistedCountry)
+{
+ storage::Storage storage;
+ TEST(ads::HasMegafonDownloaderBanner(storage, "Germany_Baden-Wurttemberg_Regierungsbezirk Freiburg"), ());
+}
+
+UNIT_TEST(MegafonCountriesTest_NotExistedCountry)
+{
+ storage::Storage storage;
+ TEST(!ads::HasMegafonDownloaderBanner(storage, "Russia_Altai Krai"), ());
+}