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:
authorArsentiy Milchakov <a.milchakov@corp.mail.ru>2016-08-16 19:13:41 +0300
committerArsentiy Milchakov <a.milchakov@corp.mail.ru>2016-08-16 19:13:41 +0300
commitb326b53ff10308eeed7d8466faebc6c73b4cd9fd (patch)
treed23ad47a4f309a20e426ee215db43741fdc11481 /indexer/osm_editor.cpp
parent5d06534373c541b102eee12bfedb3eb097e489e3 (diff)
additional tests for editor
Diffstat (limited to 'indexer/osm_editor.cpp')
-rw-r--r--indexer/osm_editor.cpp47
1 files changed, 22 insertions, 25 deletions
diff --git a/indexer/osm_editor.cpp b/indexer/osm_editor.cpp
index 5fdde75491..30a324770a 100644
--- a/indexer/osm_editor.cpp
+++ b/indexer/osm_editor.cpp
@@ -415,9 +415,8 @@ bool Editor::IsFeatureUploaded(MwmSet::MwmId const & mwmId, uint32_t index) cons
return info && info->m_uploadStatus == kUploaded;
}
-void Editor::DeleteFeature(FeatureType const & feature)
+void Editor::DeleteFeature(FeatureID const & fid)
{
- FeatureID const & fid = feature.GetID();
auto const mwm = m_features.find(fid.m_mwmId);
if (mwm != m_features.end())
{
@@ -430,16 +429,10 @@ void Editor::DeleteFeature(FeatureType const & feature)
}
}
- FeatureTypeInfo & fti = m_features[fid.m_mwmId][fid.m_index];
- fti.m_status = FeatureStatus::Deleted;
- // TODO: What if local client time is absolutely wrong?
- fti.m_modificationTimestamp = time(nullptr);
- // TODO: We don't really need to serialize whole feature. Improve this code in the future.
- fti.m_feature = feature;
+ MarkFeatureWithStatus(fid, FeatureStatus::Deleted);
// TODO(AlexZ): Synchronize Save call/make it on a separate thread.
Save();
-
Invalidate();
}
@@ -491,6 +484,7 @@ Editor::SaveResult Editor::SaveEditedFeature(EditableMapObject const & emo)
auto const featureStatus = GetFeatureStatus(fid.m_mwmId, fid.m_index);
ASSERT_NOT_EQUAL(featureStatus, FeatureStatus::Obsolete, ("Obsolete feature cannot be modified."));
+ ASSERT_NOT_EQUAL(featureStatus, FeatureStatus::Deleted, ("Unexpected feature status."));
bool const wasCreatedByUser = IsCreatedFeature(fid);
if (wasCreatedByUser)
@@ -510,8 +504,6 @@ Editor::SaveResult Editor::SaveEditedFeature(EditableMapObject const & emo)
}
else
{
- ASSERT_NOT_EQUAL(featureStatus, FeatureStatus::Deleted, ("Unexpected feature status."));
-
auto const originalFeaturePtr = m_getOriginalFeatureFn(fid);
if (!originalFeaturePtr)
{
@@ -1037,20 +1029,7 @@ void Editor::MarkFeatureAsObsolete(FeatureID const & fid)
return;
}
- auto & fti = m_features[fid.m_mwmId][fid.m_index];
- // If a feature was modified we can drop all changes since it's now obsolete.
- auto const originalFeaturePtr = m_getOriginalFeatureFn(fid);
-
- if (!originalFeaturePtr)
- {
- LOG(LERROR, ("A feature with id", fid, "cannot be loaded."));
- alohalytics::LogEvent("Editor_MissingFeature_Error");
- return;
- }
-
- fti.m_feature = *originalFeaturePtr;
- fti.m_status = FeatureStatus::Obsolete;
- fti.m_modificationTimestamp = time(nullptr);
+ MarkFeatureWithStatus(fid, FeatureStatus::Obsolete);
Save();
Invalidate();
@@ -1146,6 +1125,24 @@ void Editor::UploadNotes(string const & key, string const & secret)
m_notes->Upload(OsmOAuth::ServerAuth({key, secret}));
}
+void Editor::MarkFeatureWithStatus(FeatureID const & fid, FeatureStatus status)
+{
+ auto & fti = m_features[fid.m_mwmId][fid.m_index];
+
+ auto const originalFeaturePtr = m_getOriginalFeatureFn(fid);
+
+ if (!originalFeaturePtr)
+ {
+ LOG(LERROR, ("A feature with id", fid, "cannot be loaded."));
+ alohalytics::LogEvent("Editor_MissingFeature_Error");
+ return;
+ }
+
+ fti.m_feature = *originalFeaturePtr;
+ fti.m_status = status;
+ fti.m_modificationTimestamp = time(nullptr);
+}
+
string DebugPrint(Editor::FeatureStatus fs)
{
switch (fs)