MarkerSpec.js
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
describe("Creating a marker", function() {
var map, marker;
beforeEach(function() {
map = map || new GMaps({
el : '#map-with-markers',
lat : -12.0533,
lng: -77.0293,
zoom: 14
});
});
describe("With basic options", function() {
beforeEach(function() {
marker = map.addMarker({
lat : -12.0533,
lng: -77.0293,
title : 'New marker'
});
});
it("should add the marker to the markers collection", function() {
expect(map.markers.length).toEqual(1);
expect(map.markers[0]).toEqual(marker);
});
it("should create a marker with defined position", function() {
// Fix for floating-point bug
expect(parseFloat(marker.getPosition().lat().toFixed(4))).toEqual(-12.0533);
expect(parseFloat(marker.getPosition().lng().toFixed(4))).toEqual(-77.0293);
});
});
describe("With events", function() {
var callbacks;
beforeEach(function() {
callbacks = {
onclick : function() {
console.log(this.title);
}
};
spyOn(callbacks, 'onclick').andCallThrough();
marker = map.addMarker({
lat : -12.0533,
lng: -77.0193,
title : 'New marker',
click : callbacks.onclick
});
});
it("should respond to click event", function() {
google.maps.event.trigger(marker, 'click');
expect(callbacks.onclick).toHaveBeenCalled();
});
});
});
describe("Removing markers", function() {
var map;
beforeEach(function() {
map = map || new GMaps({
el : '#map-with-markers',
lat : -12.0533,
lng: -77.0293,
zoom: 14
});
map.removeMarkers();
map.addMarkers([{
lat : -12.0523,
lng: -77.0297,
title : 'Marker #1'
}, {
lat : -12.0531,
lng: -77.0289,
title : 'Marker #2'
}, {
lat : -12.0537,
lng: -77.0299,
title : 'Marker #3'
}, {
lat : -12.0532,
lng: -77.0278,
title : 'Marker #4'
}]);
});
it("should remove a marker from the markers collection", function() {
map.removeMarker(map.markers[0]);
expect(map.markers.length).toEqual(3);
});
it("should remove an array of markers from the markers collection", function() {
var markers = [map.markers[0], map.markers[2]];
map.removeMarkers(markers);
expect(map.markers.length).toEqual(2);
});
});