diff options
author | Alex Zolotarev <deathbaba@gmail.com> | 2012-11-08 05:35:33 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:46:41 +0300 |
commit | b5965f599595f9ea90f1f768c540fcdee0cc6cea (patch) | |
tree | d0e01ee85844b03c56f8788335122feb954cd327 /map | |
parent | 9c4d6350e9c29b61c5f9d74c648dd832fd3dfdec (diff) |
[ios] Added back geo URI Scheme support
Diffstat (limited to 'map')
-rw-r--r-- | map/geourl_process.cpp | 13 | ||||
-rw-r--r-- | map/map_tests/geourl_test.cpp | 15 |
2 files changed, 15 insertions, 13 deletions
diff --git a/map/geourl_process.cpp b/map/geourl_process.cpp index f22f490a87..8a7981f56a 100644 --- a/map/geourl_process.cpp +++ b/map/geourl_process.cpp @@ -25,7 +25,7 @@ namespace url_scheme } - class DoParse + class DoGeoParse { Info & m_info; @@ -54,7 +54,7 @@ namespace url_scheme } public: - DoParse(Info & info) : m_info(info), m_mode(START) + DoGeoParse(Info & info) : m_info(info), m_mode(START) { } @@ -63,8 +63,11 @@ namespace url_scheme switch (m_mode) { case START: - ASSERT(token == "geo" || token == "mapswithme", (token)); - m_mode = LAT; + // Only geo scheme is supported by this parser + if (token != "geo") + m_mode = FINISH; + else + m_mode = LAT; break; case LAT: @@ -99,6 +102,6 @@ namespace url_scheme void ParseURL(string const & s, Info & info) { - strings::Tokenize(s, ":/?&=,", DoParse(info)); + strings::Tokenize(s, ":/?&=,", DoGeoParse(info)); } } diff --git a/map/map_tests/geourl_test.cpp b/map/map_tests/geourl_test.cpp index d715e4cc16..8f25f38aa3 100644 --- a/map/map_tests/geourl_test.cpp +++ b/map/map_tests/geourl_test.cpp @@ -7,25 +7,24 @@ using namespace url_scheme; UNIT_TEST(ProcessURL_Smoke) { Info info; - ParseURL("geo:53.666,27.666", info); + ParseGeoURL("geo:53.666,27.666", info); TEST(info.IsValid(), ()); TEST_ALMOST_EQUAL(info.m_lat, 53.666, ()); TEST_ALMOST_EQUAL(info.m_lon, 27.666, ()); info.Reset(); - ParseURL("mapswithme:53.666,27.666", info); + ParseGeoURL("geo://point/?lon=27.666&lat=53.666&zoom=10", info); TEST(info.IsValid(), ()); TEST_ALMOST_EQUAL(info.m_lat, 53.666, ()); TEST_ALMOST_EQUAL(info.m_lon, 27.666, ()); + TEST_ALMOST_EQUAL(info.m_zoom, 10.0, ()); info.Reset(); - ParseURL("mapswithme://point/?lon=27.666&lat=53.666&zoom=10", info); - TEST(info.IsValid(), ()); - TEST_ALMOST_EQUAL(info.m_lat, 53.666, ()); - TEST_ALMOST_EQUAL(info.m_lon, 27.666, ()); - TEST_ALMOST_EQUAL(info.m_zoom, 10.0, ()); + ParseGeoURL("geo:53.666", info); + TEST(!info.IsValid(), ()); info.Reset(); - ParseURL("geo:53.666", info); + ParseGeoURL("mapswithme:123.33,32.22/showmethemagic", info); TEST(!info.IsValid(), ()); + } |