Commit Graph

88 Commits

Author SHA1 Message Date
ghybs
8c3eaaf3e8 test(Map): set div width for getBoundsZoom parameter inside, Firefox (#6192)
* test(Map): set div width for getBoundsZoom inside

in particular Firefox has a different default width than PhantomJS, making the result different than the expected one. Wider container => can zoom higher to fit the specified bounds.

* docs(Map): getBoundsZoom add padding

3rd argument docstring.
2018-06-20 12:25:05 +02:00
ghybs
fe9e0f2333
Fix(Draggable): compensate for container CSS scale (#6055)
* Test(MapDragSpec): add mouse drag with CSS scaled container

This test is failing as of this commit.

* Fix(Draggable): measure drag compensating for CSS scale

so that the computed offset (i.e. user drag length) is divided by the CSS scale applied on the `_element`'s container. Later on when `Draggable` updates the `_element`'s position, the latter is affected by the CSS scale by the browser.
Added a `getSizedParentNode` function in `DomUtil` in order to automatically retrieve the closest parent node in the DOM hierarchy tree that has a non null size (so that we can compute the scale in `DomEvent.getMousePosition`), without having to specify the parent node explicitly (which is ugly).

* Fix(getMousePosition): getBoundingClientRect is in page scale

therefore it must also be divided by the container scale in order to compute the relative position of the event in the scaled container.

* Test(MarkerDragSpec): add drag with CSS scaled container

this should pass automatically at this commit, thanks to the previous modification of Draggable.

* Debug(map-scaled): add draggable marker

as well as another CSS scaled wrapper, plus some border and padding, and debugging console logs, to make sure the computations of `getMousePosition` are correct (correctly removing the border width, and compensating for CSS scale).

* Docs(getMousePosition): explicitly exclude border

* Docs(DomUtil): add return value of getSizedParentNode

was missing in docstring.

* Feat(DomUtil): add getScale function

so that it can be used by DomEvent.getMousePosition and Draggable.

* Refactor(Draggable): cache container scale

to avoid triggering browser reflow continuously during _onMove, but only on drag start (_onDown).
By compensating for the scale within Draggable instead of delegating to DomEvent.getMousePosition, it also becomes possible to check first for the clickTolerance, so that we prevents user's small movement based on screen, irrespective of rendered scale.

* Test(Map+MarkerDrag): remove scale on initial movement

that is intended to overcome Draggable clickTolerance, since now it is based on screen pixels, irrespective of applied CSS scale on the map.
Thanks to the tolerance in the expected final position, this has no effect on the result of the test, even though the overall drag is now slightly shorter.

* Refactor(DomEvent): use DomUtil.getScale in getMousePosition

to factorize scale computation (also used within Draggable).
2018-03-16 19:46:44 +04:00
Vladimir Agafonkin
88dd22cfe8 upgrade deps, fix indenting (#5743) 2017-08-31 08:58:42 +02:00
Michael Fenwick
0e36b948cd Feature: optionally allow popups to not close on pressing Esc (#5730)
* add test for disabled popup ESC key functionality

* add closeOnEscapeKey default option for popup

* add ESC key condition to prevent map.closePopup

* fix variable indentation

* revert unnecessary mapPopup variable back to map._popup

* add 4 spaces of indentation to variables
2017-08-28 16:11:54 +02:00
Per Liedman
54ce147f3d Throw if argument to addLayer is not actually a layer (#5689)
Fixes #5225.
2017-08-06 08:36:10 +02:00
Iván Sánchez Ortega
873d4cab31 Handle edge case of empty bounds on _getBoundsCenterZoom (#5157)
* Handle edge case of empty bounds on _getBoundsCenterZoom

* Unit test for map._getBoundsCenterZoom
2017-05-11 22:33:46 +02:00
Iván Sánchez Ortega
f57b5bf7ee Couple tests for Map.Keyboard.disable() 2017-02-14 13:15:50 +01:00
Iván Sánchez Ortega
c856c6090f Do not stop keypress on escape if no popup is open 2017-02-14 13:15:50 +01:00
Iván Sánchez Ortega
ddc3a9ca61 Fix max/min calculation for getBoundsZoom (fixes #5136) (#5137)
* Fix max/min calculation for getBoundsZoom (fixes #5136)

* Added test for inside param of L.Map.getBoundsZoom()
2017-02-02 16:21:10 +01:00
Vladimir Agafonkin
703ae02aa8 ES6 modules & Rollup (#4989)
* WIP ES6 modules & rollup

* WIP ES6 modules & rollup 2

* WIP ES6 modules & rollup 3

* WIP ES6 modules Browser

* WIP ES6 module fixes

* WIP ES6 modules: simpler browser exports

* WIP ES6: refactor CRS/Projection modules, CRS obj -> CRS.Base

* get rid of unnecessary index.js

* WIP ES6 modules, dom events and stuff

* Make linter happy, rollup to dist/

* revert to CRS namespace/class for now

* WIP rollup: export more stuff

* export controls

* rollup: export Layer

* rollup: export DomEvent

* rollup: export more layer types

* rollup: export Popup/Tooltip

* WIP: ES6-ify marker, icon, domutil, draggable.

* ES6-ify gridlayer, tilelayer.

* ES6-ify: Tweak imports-exports, code is now runnable!!

* ES6-ify: Fix scope in some DomUtils

* ES6-ify: Path, fix Popup

* ES6-ify: Lint & cleanup

* ES6-ify map handlers, more linting

* ES6-ify: Icon.Default namespacing

* ES6-ify: Renderers, CircleMarker

* ES6-ify: Circle, Polyline, LineUtil

* ES6-ify: Polygon, Rectangle, LineUtil, PolyUtil, linting

* ES6-ify: SVG.VML

* ES6-ify: DomEvent.Pointer, DomEvent.DoubleTap

* ES6-ify: Linting, make Karma play nice with Rollup

* ES6-ify: More work on fixing bits breaking some unit tests.

* ES6-ify: rollup the version number, fiddled with build scripts

* ES6-ify: Fiddle with test scripts

* ES6-ify: cleanup (refs to global L, imports from (DOM)Util), prevent cyclic loop on Map imports

* ES6-ify: More cleanup of (DOM)Util/Browser/DomEvent imports

* ES6ify: Use rollup's "legacy" option for ES3 (IE8) builds

* ES6-ify: Clean up build scripts, fix CONTRIBUTING.md instructions

* Typo

* ES6-ify: minor fixes and lefovers after rebasing on top of 1.0.2

* ES6-ify: upgrade to rollup 0.38 for proper IE8 builds, fix L.SVG.VML

* Make linter happy.

* ES6: Fixing typos and sxrew-ups after big rebase

* Fix symlink for debugging scripts

* ES6: Cleanup old build scripts

* ES6-ify: Update build system to include git rev in L.version

* ES6-ify: re-enable unit tests replacing L.Path with L.Polyline

* Export Path

* ES6ify: cleanup old banner file

* ES6-ify: whitespace in var declarations

* ES6-ify: Export toTransformation as L.transformation

* ES6-ify: cleanup L.transform exports

* ES6-ify: "import Util" in Transformation and SVG.VML
2017-01-30 11:35:16 +01:00
Marvin Bredal Lillehaug
884463bb09 Avoid getBoundsZoom return Infinity when using CRS with flipped axis (#5204)
* Create new bounds from projected coordinates rather than subtract in getBoundsZoom to avoid negative scale. Fixes #5195

* Fix unit test mocks

Apparently, mocking `project()` instead of `latLngToPoint()` magically works.

* Expected zoomlevel is 9, not 7
2016-12-19 12:40:22 +01:00
Iván Sánchez Ortega
8c22c4e385 Ensure zoom is within span when adding a layer with min/maxzoom, fixes #4915 (#4916)
* Ensure zoom is within span when adding a layer with min/maxzoom, fixes #4915.

* Add tests written by @theashyster

* Add tests to verify map's zoom is actually adjusted to layer's min/max
2016-11-11 10:46:31 +01:00
Andris Nolendorfs
62fdf6f642 Fix handling of NaN in getScaleZoom (#4914)
* Fixed an issue when crs.zoom returns NaN in getScaleZoom

* Small documentation fixes
2016-09-15 09:46:53 +02:00
Iván Sánchez Ortega
09937e39b0 Add a _leaflet_id to the map container to fix #4806 (#4810) 2016-08-11 09:10:46 +02:00
Yohan Boniface
bd2616f901 Do not rely on options.draggable to compute draggableMoved (#4638)
One can enable dragging of a marker after it has been initialized
with draggable=false.
2016-07-08 11:22:54 +02:00
Yohan Boniface
5dfc3364d1 Allow to make screenshots in Phantomjs (#4705)
* Load CSS in PhantomJS

* Allow to take screenshot in PhantomJS while running tests

For that, one need to run this call:

    window.top.callPhantom({'render': 'screenshot.png'});

* Make PhantomJS serve images

* Bonus: those tests now passe in Phantom too

* Add helper to make screenshot in tests

	takeScreenshot();

or

	takeScreenshot('path/to/screenshot.png');
2016-07-08 11:05:12 +02:00
Per Liedman
01790eacda Ignore events if Draggable is disabled, fixing disabling drag on click in IE11 (#4479)
* Ingore events if Draggable is disabled
Close #3666.

* Add test for verifying fix to #3666
2016-06-27 16:16:03 -07:00
Yohan Boniface
6e8ac31993 Fix setMaxBounds not resetting when passing null argument (#4494) 2016-05-09 15:12:51 +02:00
Iván Sánchez Ortega
cc3380f98e Tweaked values of getBoundsZoom unit tests (#4528) 2016-05-09 10:42:19 +02:00
Dian Jin
a6888ab13f getBoundsZoom fix for small size and padding and tests (#4532) 2016-05-09 10:39:14 +02:00
Iván Sánchez Ortega
23890c5fa4 Skip a touch unit test on non-touch browsers 2016-04-19 12:21:01 +02:00
Iván Sánchez Ortega
5389d23e79 Add unit test for drag handler enable/disable bug (#4387) 2016-04-15 15:30:39 +02:00
David Uvenman
864326610a Added click tolerance also for non-touch devices (#4396)
* Added option for click tolerance. This option is used as a threshold to determine if the user event should be considered a click or a drag.

* Updated docs for clickTolerance to state the correct default value.

* Added tests for click threshold
2016-04-15 10:18:50 +02:00
Per Liedman
36b60b7c88 Round scale to avoid float rounding issues in fitBounds
Reverts _round() fix from b511c7bcc8.

Close #4395.
2016-04-06 22:58:00 +02:00
Zsolt Ero
928100f961 Workaround for flyTo bug
* test for flyTo start latlng == end latlng condition
* workaround for flyTo infinite loop
* expect for zoomend values

Close #4226
2016-04-02 21:12:40 +02:00
Per Liedman
b511c7bcc8 Round bounds size.
Bounds size should be in pixels, so round it to avoid
any floating point inaccuracies from projection.

Closes #4255.
2016-04-02 19:55:02 +02:00
Yohan Boniface
4bcc89bc54 Make sure bounds are bounds before testing its validity in fitBounds
Fix #4374
2016-04-02 19:23:58 +02:00
Iván Sánchez Ortega
c6c0e4f484 Switch prosthetic-hand to 1.3.0 and use onStop callback 2016-04-02 17:55:22 +02:00
Iván Sánchez Ortega
8da61993d2 Added four prosthetic-hand tests, checking mouse&touch drag events and touch-zoom 2016-03-18 15:24:42 +01:00
Iván Sánchez Ortega
8dee2d3591 Fix for #4208 with extra unit tests 2016-02-09 10:07:36 +01:00
Iván Sánchez Ortega
afd7959959 Make linter happy. 2016-01-18 10:10:32 +01:00
Iván Sánchez Ortega
65ccc2b36c Fractional zoom controls. 2016-01-18 10:10:32 +01:00
Yohan Boniface
d3198d8d39 Fix duration not passed through from setView to panBy (fix #3300) 2015-10-12 14:02:30 +02:00
Yohan Boniface
0b0989f9f1 Canvas events fixes (fix #3915)
- fix fireEvent called for each layer containing event point
- fix layer not removed from this._layer at remove
- fix L.DomEvent.stop(e) not honoured for canvas because events
  are both listenned on canvas container and map container
2015-10-09 18:28:35 +02:00
Yohan Boniface
7c2ac9f39d Make sure mouse has an external relatedTarget on mouseout/over (fix #3797 #3708) 2015-10-08 14:57:33 +03:00
Vladimir Agafonkin
cfdbd10431 enforce indentation in specs 2015-09-25 13:55:37 +03:00
Vladimir Agafonkin
301473ad4d more strict eslinting 2015-09-25 13:40:21 +03:00
javimolla
76868ad3f4 Extract logic from getScaleZoom to CRS
Added tests for custom crs with zooms not power of two related
2015-09-15 17:58:19 +02:00
Yohan Boniface
50d7121f72 Make _fireDOMEvent accept optional targets
In the case of canvas path, we can't add the canvas element itself
as an interactiveTarget, given that it's big like the path bbox, and
thus would make all this bbox target of events (so also clicking
outside of the path itself, the layer would fire click event, for
example)
2015-07-06 13:55:59 +02:00
Yohan Boniface
f4cc307e70 Add preclick related unitest 2015-07-06 13:55:59 +02:00
Yohan Boniface
0d3448d494 Always fire DOM event on the map too 2015-07-06 13:55:59 +02:00
Iván Sánchez Ortega
ad08a5c874 Unit test for map zoom level limit and zoom-less setView 2015-06-05 20:51:20 +03:00
Nathan Cahill
794e64df41 add map.setMinZoom() and map.setMaxZoom() closes #3380 2015-04-16 18:39:40 -05:00
Yohan Boniface
4e25056703 Typo in test description 2015-03-09 10:13:42 +01:00
Yohan Boniface
c10f81f95d Remove flyTo callback (but keep test refactored) 2015-03-09 10:11:20 +01:00
Yohan Boniface
60df920452 Add optional callback to map.flyTo 2015-03-08 12:21:43 +01:00
John Firebaugh
4825fc05b3 Add test for #1871 2014-11-05 15:44:23 -08:00
Vladimir Agafonkin
e2e1ccb2f0 fix 404 warnings in tests 2014-10-23 13:52:19 +03:00
danzel
d5a3112852 Another break with adding and removing tile layers. 2014-01-30 16:35:08 +13:00
danzel
2396a10282 Fix adding and immediately removing a Layer from the map when the map is never initialized 2014-01-30 16:15:03 +13:00