[core] Group Map LatLngBounds, min and max zoom methods

Group bounds, minimum and maximum zoom related methods together using
the new BoundOptions.

v2: Document that getBounds() initializes all optional fields.
  - Add test for getBounds() on a map with default values.
This commit is contained in:
Ander Conselvan de Oliveira
2019-03-08 12:43:05 +02:00
parent 11de777628
commit 5733440747
11 changed files with 126 additions and 59 deletions

View File

@@ -282,6 +282,32 @@ TEST(Map, ProjectionMode) {
EXPECT_EQ(*options.ySkew, 0.0);
}
TEST(Map, BoundOptions) {
MapTest<> test;
LatLngBounds llb = LatLngBounds::hull({-10, -10}, {10, 10});
test.map.setBounds(BoundOptions().withMinZoom(4).withMaxZoom(10).withLatLngBounds(llb));
auto bounds = test.map.getBounds();
EXPECT_EQ(*bounds.minZoom, 4);
EXPECT_EQ(*bounds.maxZoom, 10);
EXPECT_EQ(*bounds.bounds, llb);
}
TEST(Map, DefaultBoundOptions) {
MapTest<> test;
auto bounds = test.map.getBounds();
EXPECT_TRUE(bounds.minZoom);
EXPECT_TRUE(bounds.maxZoom);
EXPECT_TRUE(bounds.bounds);
EXPECT_EQ(*bounds.minZoom, util::MIN_ZOOM);
EXPECT_EQ(*bounds.maxZoom, util::DEFAULT_MAX_ZOOM);
EXPECT_EQ(*bounds.bounds, LatLngBounds::unbounded());
}
TEST(Map, SetStyleInvalidJSON) {
Log::setObserver(std::make_unique<FixtureLogObserver>());