leaflet-js 0.6.beta4 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 = {};
|