mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-23 22:53:43 +00:00
To expand with full Organic Maps and Maps.ME commits history run: git remote add om-historic [om-historic.git repo url] git fetch --tags om-historic git replace squashed-history historic-commits
94 lines
3.0 KiB
C++
94 lines
3.0 KiB
C++
#include "testing/testing.hpp"
|
|
|
|
#include "editor/config_loader.hpp"
|
|
#include "editor/editor_config.hpp"
|
|
|
|
#include "base/stl_helpers.hpp"
|
|
|
|
UNIT_TEST(EditorConfig_TypeDescription)
|
|
{
|
|
using EType = feature::Metadata::EType;
|
|
using Fields = editor::TypeAggregatedDescription::FeatureFields;
|
|
|
|
Fields const poiInternet = {
|
|
EType::FMD_OPEN_HOURS,
|
|
EType::FMD_PHONE_NUMBER,
|
|
EType::FMD_WEBSITE,
|
|
EType::FMD_INTERNET,
|
|
EType::FMD_EMAIL,
|
|
EType::FMD_LEVEL,
|
|
EType::FMD_CONTACT_FACEBOOK,
|
|
EType::FMD_CONTACT_INSTAGRAM,
|
|
EType::FMD_CONTACT_TWITTER,
|
|
EType::FMD_CONTACT_VK,
|
|
EType::FMD_CONTACT_LINE,
|
|
};
|
|
|
|
pugi::xml_document doc;
|
|
editor::ConfigLoader::LoadFromLocal(doc);
|
|
|
|
editor::EditorConfig config;
|
|
config.SetConfig(doc);
|
|
|
|
{
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(!config.GetTypeDescription({"death-star"}, desc), ());
|
|
}
|
|
{
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(config.GetTypeDescription({"amenity-hunting_stand"}, desc), ());
|
|
TEST(desc.IsNameEditable(), ());
|
|
TEST(!desc.IsAddressEditable(), ());
|
|
TEST_EQUAL(desc.GetEditableFields(), Fields{EType::FMD_HEIGHT}, ());
|
|
}
|
|
{
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(config.GetTypeDescription({"shop-toys"}, desc), ());
|
|
TEST(desc.IsNameEditable(), ());
|
|
TEST(desc.IsAddressEditable(), ());
|
|
TEST_EQUAL(desc.GetEditableFields(), poiInternet, ());
|
|
}
|
|
{
|
|
// Test that amenity-bank is selected as it goes first in config.
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(config.GetTypeDescription({"amenity-bicycle_rental", "amenity-bank"}, desc), ());
|
|
TEST(desc.IsNameEditable(), ());
|
|
TEST(desc.IsAddressEditable(), ());
|
|
TEST_EQUAL(desc.GetEditableFields(), poiInternet, ());
|
|
}
|
|
{
|
|
// Testing type inheritance
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(config.GetTypeDescription({"amenity-place_of_worship-christian"}, desc), ());
|
|
TEST(desc.IsNameEditable(), ());
|
|
TEST_EQUAL(desc.GetEditableFields(), poiInternet, ());
|
|
}
|
|
{
|
|
// Testing long type inheritance on a fake object
|
|
editor::TypeAggregatedDescription desc;
|
|
TEST(config.GetTypeDescription({"tourism-artwork-impresionism-monet"}, desc), ());
|
|
TEST(desc.IsNameEditable(), ());
|
|
TEST_EQUAL(desc.GetEditableFields(), Fields{}, ());
|
|
}
|
|
// TODO(mgsergio): Test case with priority="high" when there is one on editor.config.
|
|
}
|
|
|
|
UNIT_TEST(EditorConfig_GetTypesThatCanBeAdded)
|
|
{
|
|
pugi::xml_document doc;
|
|
editor::ConfigLoader::LoadFromLocal(doc);
|
|
|
|
editor::EditorConfig config;
|
|
config.SetConfig(doc);
|
|
|
|
auto const types = config.GetTypesThatCanBeAdded();
|
|
// A sample addable type.
|
|
TEST(find(begin(types), end(types), "amenity-cafe") != end(types), ());
|
|
// A sample line type.
|
|
TEST(find(begin(types), end(types), "highway-primary") == end(types), ());
|
|
// A sample type marked as can_add="no".
|
|
TEST(find(begin(types), end(types), "landuse-cemetery") == end(types), ());
|
|
// A sample type marked as editable="no".
|
|
TEST(find(begin(types), end(types), "aeroway-airport") == end(types), ());
|
|
}
|