|
8 | 8 | import numpy as np |
9 | 9 | import pytest |
10 | 10 |
|
11 | | -from folium import Map |
12 | | -from folium.map import CustomPane, Icon, Marker, Popup |
| 11 | +from folium import GeoJson, Map, TileLayer |
| 12 | +from folium.map import CustomPane, Icon, LayerControl, Marker, Popup |
13 | 13 | from folium.utilities import normalize |
14 | 14 |
|
15 | 15 | tmpl = """ |
|
19 | 19 | """.format |
20 | 20 |
|
21 | 21 |
|
| 22 | +def test_layer_control_initialization(): |
| 23 | + layer_control = LayerControl() |
| 24 | + assert layer_control._name == "LayerControl" |
| 25 | + assert layer_control.options["position"] == "topright" |
| 26 | + assert layer_control.options["collapsed"] is True |
| 27 | + assert layer_control.options["autoZIndex"] is True |
| 28 | + assert layer_control.draggable is False |
| 29 | + assert layer_control.base_layers == {} |
| 30 | + assert layer_control.overlays == {} |
| 31 | + |
| 32 | + |
| 33 | +def test_layer_control_reset(): |
| 34 | + layer_control = LayerControl() |
| 35 | + layer_control.base_layers = {"Layer1": "layer1"} |
| 36 | + layer_control.overlays = {"Layer2": "layer2"} |
| 37 | + layer_control.reset() |
| 38 | + assert layer_control.base_layers == {} |
| 39 | + assert layer_control.overlays == {} |
| 40 | + |
| 41 | + |
| 42 | +def test_layer_control_render(): |
| 43 | + m = Map(tiles=None) |
| 44 | + layer1 = TileLayer().add_to(m) |
| 45 | + layer2 = Marker([0, 0]).add_to(m) |
| 46 | + layer3 = GeoJson({}).add_to(m) |
| 47 | + layer1.control = True |
| 48 | + layer2.control = False |
| 49 | + layer3.control = True |
| 50 | + layer1.layer_name = "Layer1" |
| 51 | + layer2.layer_name = "Layer2" |
| 52 | + layer3.layer_name = "Layer3" |
| 53 | + layer1.get_name = lambda: "layer1" |
| 54 | + layer2.get_name = lambda: "layer2" |
| 55 | + layer3.get_name = lambda: "layer3" |
| 56 | + |
| 57 | + layer_control = LayerControl().add_to(m) |
| 58 | + layer_control.render() |
| 59 | + |
| 60 | + assert layer_control.base_layers == {"Layer1": "layer1"} |
| 61 | + assert layer_control.overlays == {"Layer3": "layer3"} |
| 62 | + |
| 63 | + |
| 64 | +def test_layer_control_draggable(): |
| 65 | + m = Map(tiles=None) |
| 66 | + layer_control = LayerControl(draggable=True).add_to(m) |
| 67 | + expected = f"new L.Draggable({ layer_control.get_name() }.getContainer()).enable();" |
| 68 | + rendered = m.get_root().render() |
| 69 | + assert normalize(expected) in normalize(rendered) |
| 70 | + |
| 71 | + |
22 | 72 | def test_popup_ascii(): |
23 | 73 | popup = Popup("Some text.") |
24 | 74 | _id = list(popup.html._children.keys())[0] |
|
0 commit comments