leaflet-js 0.6.beta4 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +6 -14
- data/CHANGELOG.rdoc +3 -0
- data/leaflet-js.gemspec +2 -2
- data/lib/leaflet.draw/CHANGELOG.md +45 -0
- data/lib/leaflet.draw/README.md +70 -23
- data/lib/leaflet.draw/build/deps.js +1 -0
- data/lib/leaflet.draw/dist/images/spritesheet-2x.png +0 -0
- data/lib/leaflet.draw/dist/images/spritesheet.png +0 -0
- data/lib/leaflet.draw/dist/leaflet.draw-src.js +489 -136
- data/lib/leaflet.draw/dist/leaflet.draw.css +34 -2
- data/lib/leaflet.draw/dist/leaflet.draw.ie.css +5 -0
- data/lib/leaflet.draw/dist/leaflet.draw.js +2 -2
- data/lib/leaflet.draw/examples/basic.html +14 -7
- data/lib/leaflet.draw/examples/libs/images/layers-2x.png +0 -0
- data/lib/leaflet.draw/examples/libs/images/layers.png +0 -0
- data/lib/leaflet.draw/examples/libs/images/marker-icon-2x.png +0 -0
- data/lib/leaflet.draw/examples/libs/leaflet-src.js +1129 -608
- data/lib/leaflet.draw/examples/libs/leaflet.css +85 -66
- data/lib/leaflet.draw/package.json +2 -2
- data/lib/leaflet.draw/spec/suites/DrawControlSpec.js +1 -1
- data/lib/leaflet.draw/spec/suites/GeometryUtilSpec.js +25 -0
- data/lib/leaflet.draw/spec/suites/LatLngUtilSpec.js +9 -0
- data/lib/leaflet.draw/src/Control.Draw.js +1 -0
- data/lib/leaflet.draw/src/Leaflet.draw.js +89 -1
- data/lib/leaflet.draw/src/Toolbar.js +2 -6
- data/lib/leaflet.draw/src/Tooltip.js +20 -7
- data/lib/leaflet.draw/src/draw/DrawToolbar.js +26 -22
- data/lib/leaflet.draw/src/draw/handler/Draw.Circle.js +11 -6
- data/lib/leaflet.draw/src/draw/handler/Draw.Feature.js +6 -2
- data/lib/leaflet.draw/src/draw/handler/Draw.Marker.js +7 -2
- data/lib/leaflet.draw/src/draw/handler/Draw.Polygon.js +29 -7
- data/lib/leaflet.draw/src/draw/handler/Draw.Polyline.js +44 -21
- data/lib/leaflet.draw/src/draw/handler/Draw.Rectangle.js +3 -3
- data/lib/leaflet.draw/src/draw/handler/Draw.SimpleShape.js +14 -1
- data/lib/leaflet.draw/src/edit/EditToolbar.js +86 -16
- data/lib/leaflet.draw/src/edit/handler/Edit.Poly.js +10 -7
- data/lib/leaflet.draw/src/edit/handler/Edit.SimpleShape.js +1 -2
- data/lib/leaflet.draw/src/edit/handler/EditToolbar.Delete.js +15 -3
- data/lib/leaflet.draw/src/edit/handler/EditToolbar.Edit.js +56 -38
- data/lib/leaflet.draw/src/ext/GeometryUtil.js +68 -0
- data/lib/leaflet.draw/src/images/spritesheet.svg +41 -0
- data/lib/leaflet.label/CHANGELOG.md +32 -0
- data/lib/leaflet.label/README.md +21 -4
- data/lib/leaflet.label/build/build.js +2 -2
- data/lib/leaflet.label/build/deps.js +2 -0
- data/lib/leaflet.label/build/hintrc.js +4 -0
- data/lib/leaflet.label/dist/leaflet.label-src.js +266 -83
- data/lib/leaflet.label/dist/leaflet.label.css +23 -4
- data/lib/leaflet.label/dist/leaflet.label.js +1 -1
- data/lib/leaflet.label/example/label.html +6 -3
- data/lib/leaflet.label/libs/leaflet/images/layers-2x.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/layers.png +0 -0
- data/lib/leaflet.label/libs/leaflet/images/marker-icon-2x.png +0 -0
- data/lib/leaflet.label/libs/leaflet/leaflet-src.js +1129 -608
- data/lib/leaflet.label/libs/leaflet/leaflet.css +85 -66
- data/lib/leaflet.label/libs/leaflet/leaflet.js +6 -5
- data/lib/leaflet.label/package.json +19 -0
- data/lib/leaflet.label/src/BaseMarkerMethods.js +129 -0
- data/lib/leaflet.label/src/CircleMarker.Label.js +7 -0
- data/lib/leaflet.label/src/Label.js +161 -37
- data/lib/leaflet.label/src/Leaflet.label.js +1 -1
- data/lib/leaflet.label/src/Map.Label.js +0 -2
- data/lib/leaflet.label/src/Marker.Label.js +15 -120
- data/lib/leaflet.label/src/Path.Label.js +11 -11
- data/lib/leaflet/CHANGELOG.md +299 -31
- data/lib/leaflet/CONTRIBUTING.md +3 -3
- data/lib/leaflet/FAQ.md +138 -0
- data/lib/leaflet/Jakefile.js +24 -4
- data/lib/leaflet/PLUGIN-GUIDE.md +127 -0
- data/lib/leaflet/README.md +10 -6
- data/lib/leaflet/build/build.html +3 -19
- data/lib/leaflet/build/build.js +21 -51
- data/lib/leaflet/build/deps.js +10 -7
- data/lib/leaflet/build/hintrc.js +6 -4
- data/lib/leaflet/debug/hacks/jitter.html +0 -1
- data/lib/leaflet/debug/map/canvas.html +11 -12
- data/lib/leaflet/debug/map/controls.html +3 -4
- data/lib/leaflet/debug/map/geolocation.html +0 -1
- data/lib/leaflet/debug/map/iframe.html +11 -0
- data/lib/leaflet/debug/map/image-overlay.html +0 -1
- data/lib/leaflet/debug/map/map-mobile.html +0 -1
- data/lib/leaflet/debug/map/map.html +1 -2
- data/lib/leaflet/debug/map/max-bounds.html +2 -1
- data/lib/leaflet/debug/map/opacity.html +223 -0
- data/lib/leaflet/debug/map/scroll.html +6 -1
- data/lib/leaflet/debug/map/simple-proj.html +0 -1
- data/lib/leaflet/debug/map/wms-marble.html +4 -5
- data/lib/leaflet/debug/map/wms.html +0 -1
- data/lib/leaflet/debug/map/zoomlevels.html +0 -1
- data/lib/leaflet/debug/tests/add_remove_layers.html +5 -6
- data/lib/leaflet/debug/tests/bringtoback.html +0 -1
- data/lib/leaflet/debug/tests/canvasloop.html +47 -0
- data/lib/leaflet/debug/tests/click_on_canvas.html +0 -1
- data/lib/leaflet/debug/tests/dragging_and_copyworldjump.html +61 -0
- data/lib/leaflet/debug/tests/opacity.html +0 -1
- data/lib/leaflet/debug/tests/popupcontextmenuclicks.html +59 -0
- data/lib/leaflet/debug/tests/remove_while_dragging.html +4 -5
- data/lib/leaflet/debug/tests/removetilewhilepan.html +0 -1
- data/lib/leaflet/debug/tests/reuse_popups.html +0 -1
- data/lib/leaflet/debug/tests/rtl.html +42 -0
- data/lib/leaflet/debug/tests/rtl2.html +27 -0
- data/lib/leaflet/debug/tests/set_icon_reuse_dom.html +43 -0
- data/lib/leaflet/debug/tests/svg_clicks.html +3 -4
- data/lib/leaflet/debug/vector/bounds-extend.html +0 -1
- data/lib/leaflet/debug/vector/feature-group-bounds.html +0 -1
- data/lib/leaflet/debug/vector/geojson.html +0 -1
- data/lib/leaflet/debug/vector/rectangle.html +0 -1
- data/lib/leaflet/debug/vector/touchzoomemu.html +2 -3
- data/lib/leaflet/debug/vector/vector-bounds.html +0 -1
- data/lib/leaflet/debug/vector/vector-canvas.html +0 -1
- data/lib/leaflet/debug/vector/vector-mobile.html +0 -1
- data/lib/leaflet/debug/vector/vector-simple.html +0 -1
- data/lib/leaflet/debug/vector/vector.html +0 -1
- data/lib/leaflet/dist/images/layers-2x.png +0 -0
- data/lib/leaflet/dist/images/layers.png +0 -0
- data/lib/leaflet/dist/leaflet.css +85 -66
- data/lib/leaflet/package.json +25 -20
- data/lib/leaflet/spec/after.js +1 -1
- data/lib/leaflet/spec/index.html +21 -13
- data/lib/leaflet/spec/karma.conf.js +51 -50
- data/lib/leaflet/spec/spec.hintrc.js +25 -0
- data/lib/leaflet/spec/suites/LeafletSpec.js +2 -2
- data/lib/leaflet/spec/suites/SpecHelper.js +37 -21
- data/lib/leaflet/spec/suites/control/Control.LayersSpec.js +1 -1
- data/lib/leaflet/spec/suites/core/ClassSpec.js +12 -12
- data/lib/leaflet/spec/suites/core/EventsSpec.js +74 -18
- data/lib/leaflet/spec/suites/core/UtilSpec.js +69 -25
- data/lib/leaflet/spec/suites/dom/DomEventSpec.js +16 -16
- data/lib/leaflet/spec/suites/dom/DomUtilSpec.js +9 -16
- data/lib/leaflet/spec/suites/dom/PosAnimationSpec.js +27 -0
- data/lib/leaflet/spec/suites/geo/CRSSpec.js +47 -0
- data/lib/leaflet/spec/suites/geo/LatLngBoundsSpec.js +22 -14
- data/lib/leaflet/spec/suites/geo/LatLngSpec.js +22 -8
- data/lib/leaflet/spec/suites/geo/ProjectionSpec.js +21 -20
- data/lib/leaflet/spec/suites/geometry/BoundsSpec.js +15 -15
- data/lib/leaflet/spec/suites/geometry/PointSpec.js +12 -12
- data/lib/leaflet/spec/suites/geometry/TransformationSpec.js +4 -4
- data/lib/leaflet/spec/suites/layer/FeatureGroupSpec.js +59 -9
- data/lib/leaflet/spec/suites/layer/GeoJSONSpec.js +213 -17
- data/lib/leaflet/spec/suites/layer/LayerGroupSpec.js +6 -6
- data/lib/leaflet/spec/suites/layer/PopupSpec.js +65 -5
- data/lib/leaflet/spec/suites/layer/TileLayerSpec.js +16 -15
- data/lib/leaflet/spec/suites/layer/marker/MarkerSpec.js +94 -0
- data/lib/leaflet/spec/suites/layer/vector/CircleMarkerSpec.js +7 -7
- data/lib/leaflet/spec/suites/layer/vector/PolygonSpec.js +38 -2
- data/lib/leaflet/spec/suites/layer/vector/PolylineGeometrySpec.js +4 -4
- data/lib/leaflet/spec/suites/layer/vector/PolylineSpec.js +2 -2
- data/lib/leaflet/spec/suites/map/MapSpec.js +318 -26
- data/lib/leaflet/spec/suites/map/handler/Map.DragSpec.js +38 -0
- data/lib/leaflet/src/Leaflet.js +2 -2
- data/lib/leaflet/src/control/Control.Attribution.js +6 -0
- data/lib/leaflet/src/control/Control.Layers.js +33 -24
- data/lib/leaflet/src/control/Control.Zoom.js +12 -4
- data/lib/leaflet/src/control/Control.js +10 -0
- data/lib/leaflet/src/copyright.js +2 -1
- data/lib/leaflet/src/core/Browser.js +11 -10
- data/lib/leaflet/src/core/Events.js +15 -11
- data/lib/leaflet/src/core/Util.js +19 -14
- data/lib/leaflet/src/dom/DomEvent.DoubleTap.js +13 -12
- data/lib/leaflet/src/dom/DomEvent.Pointer.js +155 -0
- data/lib/leaflet/src/dom/DomEvent.js +57 -19
- data/lib/leaflet/src/dom/DomUtil.js +89 -34
- data/lib/leaflet/src/dom/Draggable.js +26 -89
- data/lib/leaflet/src/dom/PosAnimation.js +13 -2
- data/lib/leaflet/src/geo/LatLng.js +16 -5
- data/lib/leaflet/src/geo/LatLngBounds.js +5 -2
- data/lib/leaflet/src/geo/crs/CRS.EPSG3395.js +2 -2
- data/lib/leaflet/src/geo/crs/CRS.js +5 -0
- data/lib/leaflet/src/geo/projection/Projection.Mercator.js +3 -3
- data/lib/leaflet/src/geometry/LineUtil.js +2 -2
- data/lib/leaflet/src/images/layers.svg +8 -0
- data/lib/leaflet/src/images/marker.svg +61 -1
- data/lib/leaflet/src/layer/FeatureGroup.js +24 -7
- data/lib/leaflet/src/layer/GeoJSON.js +97 -56
- data/lib/leaflet/src/layer/ImageOverlay.js +9 -0
- data/lib/leaflet/src/layer/LayerGroup.js +8 -3
- data/lib/leaflet/src/layer/Popup.js +56 -34
- data/lib/leaflet/src/layer/marker/DivIcon.js +4 -2
- data/lib/leaflet/src/layer/marker/Icon.Default.js +1 -1
- data/lib/leaflet/src/layer/marker/Icon.js +15 -18
- data/lib/leaflet/src/layer/marker/Marker.Drag.js +7 -5
- data/lib/leaflet/src/layer/marker/Marker.Popup.js +22 -5
- data/lib/leaflet/src/layer/marker/Marker.js +75 -32
- data/lib/leaflet/src/layer/tile/TileLayer.Anim.js +14 -26
- data/lib/leaflet/src/layer/tile/TileLayer.Canvas.js +7 -6
- data/lib/leaflet/src/layer/tile/TileLayer.WMS.js +14 -10
- data/lib/leaflet/src/layer/tile/TileLayer.js +53 -32
- data/lib/leaflet/src/layer/vector/CircleMarker.js +11 -0
- data/lib/leaflet/src/layer/vector/MultiPoly.js +10 -0
- data/lib/leaflet/src/layer/vector/Path.SVG.js +14 -3
- data/lib/leaflet/src/layer/vector/Path.VML.js +12 -2
- data/lib/leaflet/src/layer/vector/Path.js +7 -3
- data/lib/leaflet/src/layer/vector/Polygon.js +14 -3
- data/lib/leaflet/src/layer/vector/canvas/CircleMarker.Canvas.js +9 -0
- data/lib/leaflet/src/layer/vector/canvas/Path.Canvas.js +1 -0
- data/lib/leaflet/src/map/Map.js +192 -125
- data/lib/leaflet/src/map/anim/Map.PanAnimation.js +29 -19
- data/lib/leaflet/src/map/anim/Map.ZoomAnimation.js +21 -9
- data/lib/leaflet/src/map/ext/Map.Geolocation.js +11 -4
- data/lib/leaflet/src/map/handler/Map.BoxZoom.js +26 -12
- data/lib/leaflet/src/map/handler/Map.DoubleClickZoom.js +10 -3
- data/lib/leaflet/src/map/handler/Map.Drag.js +12 -6
- data/lib/leaflet/src/map/handler/Map.Keyboard.js +5 -2
- data/lib/leaflet/src/map/handler/Map.ScrollWheelZoom.js +7 -1
- data/lib/leaflet/src/map/handler/Map.Tap.js +107 -0
- data/lib/leaflet/src/map/handler/Map.TouchZoom.js +9 -3
- data/vendor/assets/images/layers-2x.png +0 -0
- data/vendor/assets/images/layers.png +0 -0
- data/vendor/assets/images/spritesheet-2x.png +0 -0
- data/vendor/assets/images/spritesheet.png +0 -0
- data/vendor/assets/javascripts/leaflet.draw.js +2 -4
- data/vendor/assets/javascripts/leaflet.js +3 -1
- data/vendor/assets/javascripts/leaflet.label.js +2 -0
- data/vendor/assets/stylesheets/leaflet.css.erb +337 -318
- data/vendor/assets/stylesheets/leaflet.draw.css.erb +35 -3
- data/vendor/assets/stylesheets/leaflet.draw.ie.css +5 -0
- data/vendor/assets/stylesheets/leaflet.label.css +23 -4
- metadata +40 -14
- data/lib/leaflet.draw/examples/libs/leaflet.ie.css +0 -51
- data/lib/leaflet.label/libs/leaflet/leaflet.ie.css +0 -51
- data/lib/leaflet/dist/leaflet-src.js +0 -8579
- data/lib/leaflet/dist/leaflet.ie.css +0 -51
- data/lib/leaflet/dist/leaflet.js +0 -8
- data/lib/leaflet/spec/happen.js +0 -93
- data/lib/leaflet/src/dom/DomEvent.MsTouch.js +0 -146
- data/vendor/assets/stylesheets/leaflet.ie.css +0 -51
@@ -1,64 +1,65 @@
|
|
1
1
|
// Karma configuration
|
2
|
-
|
2
|
+
module.exports = function (config) {
|
3
3
|
|
4
|
-
|
5
|
-
basePath = '';
|
4
|
+
var libSources = require(__dirname+'/../build/build.js').getFiles();
|
6
5
|
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
var files = [
|
7
|
+
"spec/before.js",
|
8
|
+
"spec/sinon.js",
|
9
|
+
"spec/expect.js"
|
10
|
+
].concat(libSources, [
|
11
|
+
"spec/after.js",
|
12
|
+
"node_modules/happen/happen.js",
|
13
|
+
"spec/suites/SpecHelper.js",
|
14
|
+
"spec/suites/**/*.js",
|
15
|
+
{pattern: "dist/images/*.png", included: false}
|
16
|
+
]);
|
10
17
|
|
11
|
-
|
12
|
-
files
|
13
|
-
|
14
|
-
MOCHA_ADAPTER,
|
15
|
-
"before.js",
|
16
|
-
"sinon.js",
|
17
|
-
"expect.js"
|
18
|
-
], libSources, [
|
19
|
-
"after.js",
|
20
|
-
"happen.js",
|
21
|
-
"suites/SpecHelper.js",
|
22
|
-
"suites/**/*.js"
|
23
|
-
]);
|
18
|
+
config.set({
|
19
|
+
// base path, that will be used to resolve files and exclude
|
20
|
+
basePath: '../',
|
24
21
|
|
25
|
-
|
26
|
-
exclude = [
|
27
|
-
];
|
22
|
+
plugins: ['karma-mocha', 'karma-phantomjs-launcher', 'karma-chrome-launcher'],
|
28
23
|
|
29
|
-
//
|
30
|
-
|
31
|
-
reporters = ['dots'];
|
24
|
+
// frameworks to use
|
25
|
+
frameworks: ['mocha'],
|
32
26
|
|
33
|
-
//
|
34
|
-
|
27
|
+
// list of files / patterns to load in the browser
|
28
|
+
files: files,
|
29
|
+
exclude: [],
|
35
30
|
|
36
|
-
//
|
37
|
-
|
31
|
+
// test results reporter to use
|
32
|
+
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
|
33
|
+
reporters: ['dots'],
|
38
34
|
|
39
|
-
//
|
40
|
-
|
35
|
+
// web server port
|
36
|
+
port: 9876,
|
41
37
|
|
42
|
-
// level of logging
|
43
|
-
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
|
44
|
-
logLevel
|
38
|
+
// level of logging
|
39
|
+
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
40
|
+
logLevel: config.LOG_WARN,
|
45
41
|
|
46
|
-
// enable / disable
|
47
|
-
|
42
|
+
// enable / disable colors in the output (reporters and logs)
|
43
|
+
colors: true,
|
48
44
|
|
49
|
-
//
|
50
|
-
|
51
|
-
// - ChromeCanary
|
52
|
-
// - Firefox
|
53
|
-
// - Opera
|
54
|
-
// - Safari (only Mac)
|
55
|
-
// - PhantomJS
|
56
|
-
// - IE (only Windows)
|
57
|
-
browsers = ['PhantomJS'];
|
45
|
+
// enable / disable watching file and executing tests whenever any file changes
|
46
|
+
autoWatch: false,
|
58
47
|
|
59
|
-
//
|
60
|
-
|
48
|
+
// Start these browsers, currently available:
|
49
|
+
// - Chrome
|
50
|
+
// - ChromeCanary
|
51
|
+
// - Firefox
|
52
|
+
// - Opera
|
53
|
+
// - Safari (only Mac)
|
54
|
+
// - PhantomJS
|
55
|
+
// - IE (only Windows)
|
56
|
+
browsers: ['PhantomJS'],
|
61
57
|
|
62
|
-
//
|
63
|
-
|
64
|
-
|
58
|
+
// If browser does not capture in given timeout [ms], kill it
|
59
|
+
captureTimeout: 5000,
|
60
|
+
|
61
|
+
// Continuous Integration mode
|
62
|
+
// if true, it capture browsers, run tests and exit
|
63
|
+
singleRun: true
|
64
|
+
});
|
65
|
+
};
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"browser": true,
|
3
|
+
"node": true,
|
4
|
+
"predef": ["define", "L", "expect", "describe", "it", "sinon", "happen", "beforeEach", "afterEach"],
|
5
|
+
"strict": false,
|
6
|
+
"bitwise": true,
|
7
|
+
"camelcase": true,
|
8
|
+
"curly": true,
|
9
|
+
"eqeqeq": true,
|
10
|
+
"forin": false,
|
11
|
+
"immed": true,
|
12
|
+
"latedef": true,
|
13
|
+
"newcap": true,
|
14
|
+
"noarg": true,
|
15
|
+
"noempty": true,
|
16
|
+
"nonew": true,
|
17
|
+
"undef": true,
|
18
|
+
// "unused": true,
|
19
|
+
// "quotmark": "single",
|
20
|
+
"indent": 4,
|
21
|
+
"trailing": true,
|
22
|
+
"white": true,
|
23
|
+
"smarttabs": true
|
24
|
+
// "maxlen": 120
|
25
|
+
}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
describe('L#noConflict', function() {
|
2
|
-
it('restores the previous L value and returns Leaflet namespace', function(){
|
1
|
+
describe('L#noConflict', function () {
|
2
|
+
it('restores the previous L value and returns Leaflet namespace', function () {
|
3
3
|
|
4
4
|
expect(L.version).to.be.ok();
|
5
5
|
|
@@ -1,26 +1,42 @@
|
|
1
|
-
function noSpecs() {
|
2
|
-
xit('has no specs');
|
3
|
-
}
|
4
|
-
|
5
1
|
if (!Array.prototype.map) {
|
6
|
-
|
7
|
-
|
2
|
+
Array.prototype.map = function (fun /*, thisp */) {
|
3
|
+
"use strict";
|
4
|
+
|
5
|
+
if (this === void 0 || this === null) {
|
6
|
+
throw new TypeError();
|
7
|
+
}
|
8
8
|
|
9
|
-
|
10
|
-
|
9
|
+
var t = Object(this);
|
10
|
+
// jshint bitwise: false
|
11
|
+
var len = t.length >>> 0;
|
12
|
+
if (typeof fun !== "function") {
|
13
|
+
throw new TypeError();
|
14
|
+
}
|
11
15
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
var res = new Array(len);
|
17
|
+
var thisp = arguments[1];
|
18
|
+
for (var i = 0; i < len; i++) {
|
19
|
+
if (i in t) {
|
20
|
+
res[i] = fun.call(thisp, t[i], i, t);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
return res;
|
25
|
+
};
|
26
|
+
}
|
16
27
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
28
|
+
expect.Assertion.prototype.near = function (expected, delta) {
|
29
|
+
delta = delta || 1;
|
30
|
+
expect(this.obj.x).to
|
31
|
+
.be.within(expected.x - delta, expected.x + delta);
|
32
|
+
expect(this.obj.y).to
|
33
|
+
.be.within(expected.y - delta, expected.y + delta);
|
34
|
+
};
|
23
35
|
|
24
|
-
|
25
|
-
|
26
|
-
|
36
|
+
expect.Assertion.prototype.nearLatLng = function (expected, delta) {
|
37
|
+
delta = delta || 1e-4;
|
38
|
+
expect(this.obj.lat).to
|
39
|
+
.be.within(expected.lat - delta, expected.lat + delta);
|
40
|
+
expect(this.obj.lng).to
|
41
|
+
.be.within(expected.lng - delta, expected.lng + delta);
|
42
|
+
};
|
@@ -12,7 +12,7 @@ describe("Control.Layers", function () {
|
|
12
12
|
spy = sinon.spy();
|
13
13
|
|
14
14
|
map.on('baselayerchange', spy)
|
15
|
-
.whenReady(function() {
|
15
|
+
.whenReady(function () {
|
16
16
|
happen.click(layers._baseLayersList.getElementsByTagName("input")[0]);
|
17
17
|
|
18
18
|
expect(spy.called).to.be.ok();
|
@@ -1,11 +1,11 @@
|
|
1
|
-
describe("Class", function() {
|
1
|
+
describe("Class", function () {
|
2
2
|
|
3
|
-
describe("#extend", function() {
|
3
|
+
describe("#extend", function () {
|
4
4
|
var Klass,
|
5
5
|
constructor,
|
6
6
|
method;
|
7
7
|
|
8
|
-
beforeEach(function() {
|
8
|
+
beforeEach(function () {
|
9
9
|
constructor = sinon.spy();
|
10
10
|
method = sinon.spy();
|
11
11
|
|
@@ -19,7 +19,7 @@ describe("Class", function() {
|
|
19
19
|
});
|
20
20
|
});
|
21
21
|
|
22
|
-
it("creates a class with the given constructor & properties", function() {
|
22
|
+
it("creates a class with the given constructor & properties", function () {
|
23
23
|
var a = new Klass();
|
24
24
|
|
25
25
|
expect(constructor.called).to.be.ok();
|
@@ -30,7 +30,7 @@ describe("Class", function() {
|
|
30
30
|
expect(method.called).to.be.ok();
|
31
31
|
});
|
32
32
|
|
33
|
-
it("inherits parent classes' constructor & properties", function() {
|
33
|
+
it("inherits parent classes' constructor & properties", function () {
|
34
34
|
var Klass2 = Klass.extend({baz: 2});
|
35
35
|
|
36
36
|
var b = new Klass2();
|
@@ -46,28 +46,28 @@ describe("Class", function() {
|
|
46
46
|
expect(method.called).to.be.ok();
|
47
47
|
});
|
48
48
|
|
49
|
-
it("supports static properties", function() {
|
49
|
+
it("supports static properties", function () {
|
50
50
|
expect(Klass.bla).to.eql(1);
|
51
51
|
});
|
52
52
|
|
53
|
-
it("inherits parent static properties", function() {
|
53
|
+
it("inherits parent static properties", function () {
|
54
54
|
var Klass2 = Klass.extend({});
|
55
55
|
|
56
56
|
expect(Klass2.bla).to.eql(1);
|
57
57
|
});
|
58
58
|
|
59
|
-
it("overrides parent static properties", function() {
|
59
|
+
it("overrides parent static properties", function () {
|
60
60
|
var Klass2 = Klass.extend({statics: {bla: 2}});
|
61
61
|
|
62
62
|
expect(Klass2.bla).to.eql(2);
|
63
63
|
});
|
64
64
|
|
65
|
-
it("includes the given mixin", function() {
|
65
|
+
it("includes the given mixin", function () {
|
66
66
|
var a = new Klass();
|
67
67
|
expect(a.mixin).to.be.ok();
|
68
68
|
});
|
69
69
|
|
70
|
-
it("includes multiple mixins", function() {
|
70
|
+
it("includes multiple mixins", function () {
|
71
71
|
var Klass2 = L.Class.extend({
|
72
72
|
includes: [{mixin: true}, {mixin2: true}]
|
73
73
|
});
|
@@ -77,14 +77,14 @@ describe("Class", function() {
|
|
77
77
|
expect(a.mixin2).to.be.ok();
|
78
78
|
});
|
79
79
|
|
80
|
-
it("grants the ability to include the given mixin", function() {
|
80
|
+
it("grants the ability to include the given mixin", function () {
|
81
81
|
Klass.include({mixin2: true});
|
82
82
|
|
83
83
|
var a = new Klass();
|
84
84
|
expect(a.mixin2).to.be.ok();
|
85
85
|
});
|
86
86
|
|
87
|
-
it("merges options instead of replacing them", function() {
|
87
|
+
it("merges options instead of replacing them", function () {
|
88
88
|
var KlassWithOptions1 = L.Class.extend({
|
89
89
|
options: {
|
90
90
|
foo1: 1,
|
@@ -1,21 +1,21 @@
|
|
1
|
-
describe('Events', function() {
|
1
|
+
describe('Events', function () {
|
2
2
|
var Klass;
|
3
3
|
|
4
|
-
beforeEach(function() {
|
4
|
+
beforeEach(function () {
|
5
5
|
Klass = L.Class.extend({
|
6
6
|
includes: L.Mixin.Events
|
7
7
|
});
|
8
8
|
});
|
9
9
|
|
10
|
-
describe('#fireEvent', function() {
|
10
|
+
describe('#fireEvent', function () {
|
11
11
|
|
12
|
-
it('fires all listeners added through #addEventListener', function() {
|
12
|
+
it('fires all listeners added through #addEventListener', function () {
|
13
13
|
var obj = new Klass(),
|
14
14
|
spy1 = sinon.spy(),
|
15
15
|
spy2 = sinon.spy(),
|
16
16
|
spy3 = sinon.spy(),
|
17
17
|
spy4 = sinon.spy(),
|
18
|
-
spy5 = sinon.spy()
|
18
|
+
spy5 = sinon.spy(),
|
19
19
|
spy6 = sinon.spy();
|
20
20
|
|
21
21
|
obj.addEventListener('test', spy1);
|
@@ -42,7 +42,7 @@ describe('Events', function() {
|
|
42
42
|
expect(spy6.callCount).to.be(1);
|
43
43
|
});
|
44
44
|
|
45
|
-
it('provides event object to listeners and executes them in the right context', function() {
|
45
|
+
it('provides event object to listeners and executes them in the right context', function () {
|
46
46
|
var obj = new Klass(),
|
47
47
|
obj2 = new Klass(),
|
48
48
|
obj3 = new Klass(),
|
@@ -88,7 +88,7 @@ describe('Events', function() {
|
|
88
88
|
obj4.fireEvent('test', {baz: 4});
|
89
89
|
});
|
90
90
|
|
91
|
-
it('calls no listeners removed through #removeEventListener', function() {
|
91
|
+
it('calls no listeners removed through #removeEventListener', function () {
|
92
92
|
var obj = new Klass(),
|
93
93
|
spy = sinon.spy(),
|
94
94
|
spy2 = sinon.spy(),
|
@@ -171,7 +171,7 @@ describe('Events', function() {
|
|
171
171
|
expect(spy2.called).to.be(true);
|
172
172
|
});
|
173
173
|
|
174
|
-
it('removes listeners with a stamp originally added without one', function() {
|
174
|
+
it('removes listeners with a stamp originally added without one', function () {
|
175
175
|
var obj = new Klass(),
|
176
176
|
spy1 = sinon.spy(),
|
177
177
|
spy2 = sinon.spy(),
|
@@ -189,6 +189,30 @@ describe('Events', function() {
|
|
189
189
|
expect(spy1.called).to.be(false);
|
190
190
|
expect(spy2.called).to.be(false);
|
191
191
|
});
|
192
|
+
|
193
|
+
it('removes listeners with context == this and a stamp originally added without one', function () {
|
194
|
+
var obj = new Klass(),
|
195
|
+
obj2 = new Klass(),
|
196
|
+
spy1 = sinon.spy(),
|
197
|
+
spy2 = sinon.spy(),
|
198
|
+
spy3 = sinon.spy();
|
199
|
+
|
200
|
+
obj.addEventListener('test', spy1, obj);
|
201
|
+
L.Util.stamp(obj);
|
202
|
+
obj.addEventListener('test', spy2, obj);
|
203
|
+
obj.addEventListener('test', spy3, obj2); // So that there is a contextId based listener, otherwise removeEventListener will do correct behaviour anyway
|
204
|
+
|
205
|
+
obj.removeEventListener('test', spy1, obj);
|
206
|
+
obj.removeEventListener('test', spy2, obj);
|
207
|
+
obj.removeEventListener('test', spy3, obj2);
|
208
|
+
|
209
|
+
obj.fireEvent('test');
|
210
|
+
|
211
|
+
expect(spy1.called).to.be(false);
|
212
|
+
expect(spy2.called).to.be(false);
|
213
|
+
expect(spy3.called).to.be(false);
|
214
|
+
});
|
215
|
+
|
192
216
|
it('doesnt lose track of listeners when removing non existent ones', function () {
|
193
217
|
var obj = new Klass(),
|
194
218
|
spy = sinon.spy(),
|
@@ -210,11 +234,43 @@ describe('Events', function() {
|
|
210
234
|
|
211
235
|
expect(spy.called).to.be(false);
|
212
236
|
});
|
237
|
+
|
238
|
+
it('correctly removes all listeners if given no fn', function () {
|
239
|
+
var obj = new Klass(),
|
240
|
+
spy = sinon.spy(),
|
241
|
+
foo = {},
|
242
|
+
foo2 = {},
|
243
|
+
foo3 = {};
|
244
|
+
|
245
|
+
obj.addEventListener('test', spy, foo2);
|
246
|
+
obj.addEventListener('test', spy, foo3);
|
247
|
+
|
248
|
+
obj.removeEventListener('test'); // Removes both of the above listeners
|
249
|
+
|
250
|
+
expect(obj.hasEventListeners('test')).to.be(false);
|
251
|
+
|
252
|
+
//Add and remove a listener
|
253
|
+
obj.addEventListener('test', spy, foo2);
|
254
|
+
obj.removeEventListener('test', spy, foo2);
|
255
|
+
|
256
|
+
expect(obj.hasEventListeners('test')).to.be(false);
|
257
|
+
});
|
258
|
+
|
259
|
+
it('makes sure an event is not triggered if a listener is removed during dispatch', function () {
|
260
|
+
var obj = new Klass(),
|
261
|
+
spy = sinon.spy();
|
262
|
+
|
263
|
+
obj.addEventListener('test', function () { obj.removeEventListener('test', spy); });
|
264
|
+
obj.addEventListener('test', spy);
|
265
|
+
obj.fireEvent('test');
|
266
|
+
|
267
|
+
expect(spy.called).to.be(false);
|
268
|
+
});
|
213
269
|
});
|
214
270
|
|
215
|
-
describe('#on, #off & #fire', function() {
|
271
|
+
describe('#on, #off & #fire', function () {
|
216
272
|
|
217
|
-
it('works like #addEventListener && #removeEventListener', function() {
|
273
|
+
it('works like #addEventListener && #removeEventListener', function () {
|
218
274
|
var obj = new Klass(),
|
219
275
|
spy = sinon.spy();
|
220
276
|
|
@@ -229,7 +285,7 @@ describe('Events', function() {
|
|
229
285
|
expect(spy.callCount).to.be.lessThan(2);
|
230
286
|
});
|
231
287
|
|
232
|
-
it('does not override existing methods with the same name', function() {
|
288
|
+
it('does not override existing methods with the same name', function () {
|
233
289
|
var spy1 = sinon.spy(),
|
234
290
|
spy2 = sinon.spy(),
|
235
291
|
spy3 = sinon.spy();
|
@@ -254,10 +310,10 @@ describe('Events', function() {
|
|
254
310
|
});
|
255
311
|
});
|
256
312
|
|
257
|
-
describe("#clearEventListeners", function() {
|
258
|
-
it("clears all registered listeners on an object", function() {
|
313
|
+
describe("#clearEventListeners", function () {
|
314
|
+
it("clears all registered listeners on an object", function () {
|
259
315
|
var spy = sinon.spy(),
|
260
|
-
obj = new Klass()
|
316
|
+
obj = new Klass(),
|
261
317
|
otherObj = new Klass();
|
262
318
|
|
263
319
|
obj.on('test', spy, obj);
|
@@ -271,8 +327,8 @@ describe('Events', function() {
|
|
271
327
|
});
|
272
328
|
});
|
273
329
|
|
274
|
-
describe('#once', function() {
|
275
|
-
it('removes event listeners after first trigger', function() {
|
330
|
+
describe('#once', function () {
|
331
|
+
it('removes event listeners after first trigger', function () {
|
276
332
|
var obj = new Klass(),
|
277
333
|
spy = sinon.spy();
|
278
334
|
|
@@ -286,7 +342,7 @@ describe('Events', function() {
|
|
286
342
|
expect(spy.callCount).to.be.lessThan(2);
|
287
343
|
});
|
288
344
|
|
289
|
-
it('works with an object hash', function() {
|
345
|
+
it('works with an object hash', function () {
|
290
346
|
var obj = new Klass(),
|
291
347
|
spy = sinon.spy(),
|
292
348
|
otherSpy = sinon.spy();
|
@@ -321,7 +377,7 @@ describe('Events', function() {
|
|
321
377
|
expect(spy.called).to.be(false);
|
322
378
|
});
|
323
379
|
|
324
|
-
it('works if called from a context that doesnt implement #Events', function() {
|
380
|
+
it('works if called from a context that doesnt implement #Events', function () {
|
325
381
|
var obj = new Klass(),
|
326
382
|
spy = sinon.spy(),
|
327
383
|
foo = {};
|