Commit Graph

29 Commits

Author SHA1 Message Date
bb34482384 Refactor Event handling and happen.js (#8760) 2023-01-01 23:43:51 +01:00
3f5ea5a271 Remove Browser.any3d (#8748) 2022-12-26 18:52:12 +01:00
be47f10d5f Enforce quotes ESLint rule for the spec directory (#8686) 2022-11-30 11:59:18 +01:00
57c4cf4fb0 Remove indexOf() function from Util (#8623) 2022-10-25 13:19:02 +02:00
119785e3a9 Enable no-var linting rule and fix issues (#8602) 2022-10-20 21:18:26 +02:00
4e14f90d86 Enable prefer-rest-params linting rule and fix issues (#8593) 2022-10-18 23:46:16 +02:00
ebe343325b Add missing handler tests (#8182)
* Add Map.ScrollWheelZoomSpec

* Add Map.DoubleClickZoomSpec

* Don't test center in Firefox because of #7403

* Remove center check
2022-04-25 11:57:24 +03:00
7419c9c30e Cleanup all tests (#7852)
* Cleanup Map

* Cleanup Map.BoxZoom

* Cleanup Map.DragSpec

* Add SpecHelper function from commit before

* Cleanup Map.KeyboardSpec

* Cleanup Map.TapHoldSpec

* Cleanup Map.TouchZoomSpec

* Cleanup GeoJSONSpec

* Cleanup ImageOverlaySpec

* Cleanup PopupSpec

* Cleanup TooltipSpec

* Cleanup CanvasSpec

* Cleanup CircleMarkerSpec

* Cleanup CircleSpec

* Cleanup PathSpec

* Cleanup PolygonSpec

* Cleanup PolylineGeometrySpec

* Remove PolylineGeometrySpec

* Remove PolylineGeometrySpec from index.html

* Cleanup PolylineSpec

* Cleanup GridLayerSpec

* Cleanup TileLayerSpec

* Cleanup MarkerSpec

* Cleanup Marker.DragSpec

* Cleanup Icon.DefaultSpec

* Cleanup TransformationSpec

* Cleanup BoundsSpec

* Cleanup LineUtilSpec

* Cleanup PointSpec

* Cleanup PolyUtilSpec

* Cleanup ProjectionSpec

* Cleanup LatLngSpec

* Cleanup LatLngBoundsSpec

* Cleanup CRSSpec

* Cleanup ControlSpec

* Cleanup Control.LayersSpec

* Cleanup Control.AttributionSpec

* Fix some errors - global leaks & map.remove twice

* Fix lint

* Fix error

* Fix noConflict, tabs, createContainer with height & width

* noConflict was not working because rollup already exported the L var

* Replace createMapContainer
2022-03-18 16:04:01 +02:00
0a61e9065b Tests: simplify .near and .nearLatlng usage (#7820) 2021-11-27 13:08:04 +02:00
cfcff71adb DomEvent.Pointer: simplify and cover by tests (#7415) 2021-11-03 13:15:44 +02:00
0ae68f4658 Correct Browser.touch (and more related changes) (#7029)
* Simplify touch detection

1. Detect touch in recommended way
   Ref: https://www.chromestatus.com/feature/4764225348042752
   More: https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/KV6kqDJpYiE/YFM28ZNBBAAJ

2. Drop legacy Firefox touch support
   It is deprecated since Gecko 25.
   https://developer.mozilla.org/en-US/docs/Web/API/DocumentTouch

* Introduce `Browser.touchNative`, separated from `Browser.touch`

Bring `Browser.touch` description to reality.
Add brief note about pointer->touch processing in Leaflet.

* DomEvent: do not use pointer wrapper when native touch events are available
2021-11-01 10:32:06 +02:00
e7a5c6ffbf Add more browser profiles and fix some tests (#7115)
* MapSpec.js: fix: mocked function must be restored

Otherwise it will break crs.project test in CRSSpec.js

* MapSpec.js: skip broken test

crsMock.verify() call is mandatory here, but it shows that crs.project is never called,
thus the test is not ever valid.

* MapSpec.js: fix non-valid test

Revert 50a4845a78 and 1b1d96a4c4,
and refactor a bit (rather cosmetical changes)

* MapSpec.js: fix more tests

Refactor before/afterEach hooks for more careful setup/cleanup.

Fix some non-valid tests:
* #remove
  - "undefines container._leaflet"
  - "unbinds events"
* #removeLayer
  - "when the last tile layer on a map is removed"
  - "when a tile layer is removed from a map and it had greater zoom level coverage than the remainding layer"
  - "when a tile layer is removed from a map it and it had lesser or the sa,e zoom level coverage as the remainding layer(s)"

* GridLayerSpec.js: fix some tests

Refactor before/afterEach hooks for more careful setup/cleanup.

Fix some non-valid tests:
* "when a tilelayer is added to a map that already has a tilelayer"

* spec/suites/**: refactor for more careful setup/cleanup

Refactor before/afterEach hooks
Other minor changes

* SpecHelper.js: rename skipIn(non)Phantom to skipIf(No)3d

..to make things more clear

Remove unused helper functions

* Update testing deps

sinon.js: left on 7.5.0 (latest still working on PhantomJS)

karma-rollup-preprocessor: left on 6.1.2 (latest still supporting rollup < 1.0.0)

* CRSSpec.js: workaround round-off error in Chrome

L.CRS.zoom(L.CRS.scale(2.5)) results 2.4999999999999996 in Chrome

Note: comparing floating point numbers properly is hard,
e.g. see https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/

* Fix touch tests failing in Chrome

* karma.conf.js: add custom Chrome config to make some tests pass

npm run test-nolint -- --browsers Chrome1280x1024

* spec/.eslintrc: do not forbid no-unused-vars rule

* spec/.eslintrc: do not forbid more rules

no-extend-native
no-irregular-whitespace
no-shadow

* Add karma-edge-launcher

* Add karma-ie-launcher

Some test fails atm, see log:

> karma start ./spec/karma.conf.js "--browsers" "IE"

................................................................................
.....
WARN: 'Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.', undefined
................................................................................
................................................................................
...............................................................
IE 11.0 (Windows 10) ImageOverlay _image when loaded should raise the load event FAILED
	TypeError: Argument not optional
	   at raiseImageEvent (spec/suites/layer/ImageOverlaySpec.js:66:4)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:74:5)
IE 11.0 (Windows 10) ImageOverlay _image when load fails should raise the error event FAILED
	TypeError: Argument not optional
	   at raiseImageEvent (spec/suites/layer/ImageOverlaySpec.js:66:4)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:83:5)
IE 11.0 (Windows 10) ImageOverlay _image when load fails should change the image to errorOverlayUrl FAILED
	TypeError: Argument not optional
	   at raiseImageEvent (spec/suites/layer/ImageOverlaySpec.js:66:4)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:88:5)
..
IE 11.0 (Windows 10) ImageOverlay #setZIndex should update the z-index of the image if it has allready been added to the map FAILED
	Error: expected 1 to equal '1'
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (node_modules/expect.js/index.js:69:13)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:111:4)
IE 11.0 (Windows 10) ImageOverlay #setZIndex should set the z-index of the image when it is added to the map FAILED
	Error: expected 10 to equal '10'
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (node_modules/expect.js/index.js:69:13)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:121:4)
IE 11.0 (Windows 10) ImageOverlay #setZIndex should use the z-index specified in options FAILED
	Error: expected 20 to equal '20'
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (node_modules/expect.js/index.js:69:13)
	   at Anonymous function (spec/suites/layer/ImageOverlaySpec.js:127:4)
........................................................................
IE 11.0 (Windows 10) Marker.Drag drag in CSS scaled container drags a marker with mouse, compensating for CSS scale FAILED
	expected 0 to be within -50..-30 (node_modules/expect.js/index.js:102)
................................................................................
...........................................................
WARN: 'Deprecated use of _flat, please use L.LineUtil.isFlat instead.'
.
WARN: 'Deprecated use of _flat, please use L.LineUtil.isFlat instead.'
.......................................................................... 05 2020 15:25:48.917:WARN [web-server]: : /000
 05 2020 15:25:48.938:WARN [web-server]: : /000
......
..
IE 11.0 (Windows 10) Map #invalidateSize pans by the right amount when growing in 1px increments FAILED
	Error: expected 0 to equal 1
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (node_modules/expect.js/index.js:69:13)
	   at Anonymous function (spec/suites/map/MapSpec.js:649:4)
IE 11.0 (Windows 10) Map #invalidateSize pans by the right amount when shrinking in 1px increments FAILED
	Error: expected 0 to equal -1
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (node_modules/expect.js/index.js:69:13)
	   at Anonymous function (spec/suites/map/MapSpec.js:667:4)
..
IE 11.0 (Windows 10) Map #invalidateSize emits a move event if the size has changed FAILED
	Error: expected false to be truthy
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.ok (node_modules/expect.js/index.js:115:5)
	   at Anonymous function (node_modules/expect.js/index.js:499:7)
	   at Anonymous function (spec/suites/map/MapSpec.js:700:4)
IE 11.0 (Windows 10) Map #invalidateSize emits a moveend event if the size has changed FAILED
	Error: expected false to be truthy
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.ok (node_modules/expect.js/index.js:115:5)
	   at Anonymous function (node_modules/expect.js/index.js:499:7)
	   at Anonymous function (spec/suites/map/MapSpec.js:710:4)
IE 11.0 (Windows 10) Map #invalidateSize debounces the moveend event if the debounceMoveend option is given FAILED
	Error: expected false to be truthy
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.ok (node_modules/expect.js/index.js:115:5)
	   at Anonymous function (node_modules/expect.js/index.js:499:7)
	   at Anonymous function (spec/suites/map/MapSpec.js:724:4)
IE 11.0 (Windows 10) Map #invalidateSize correctly adjusts for new container size when view is set during map initialization (#6165) FAILED
	Error: expected 0 to equal 100
	   at Assertion.prototype.assert (node_modules/expect.js/index.js:102:7)
	   at Assertion.prototype.equal (node_modules/expect.js/index.js:216:5)
	   at Anonymous function (spec/suites/map/MapSpec.js:745:4)
................
IE 11.0 (Windows 10) Map #fitBounds after layers set Snaps to a number after adding tile layer FAILED
	Error: Access is denied.

	   at createTile (src/Leaflet.js:11698:3)
	   at _addTile (src/Leaflet.js:11433:3)
	   at _update (src/Leaflet.js:11330:5)
	   at _setView (src/Leaflet.js:11191:5)
	   at _resetView (src/Leaflet.js:11146:3)
	   at onAdd (src/Leaflet.js:10784:3)
	   at _layerAdd (src/Leaflet.js:6580:3)
	   at Events.fire (src/Leaflet.js:588:6)
	   at _resetView (src/Leaflet.js:4184:4)
	   at setView (src/Leaflet.js:3181:3)
..............................
IE 11.0 (Windows 10) Map.Drag mouse events in CSS scaled container change the center of the map, compensating for CSS scale FAILED
	expected 31.952162238024975 to be within 21.943..21.9431 (node_modules/expect.js/index.js:102)
IE 11.0 (Windows 10) Map.Drag touch events change the center of the map FAILED
	Object doesn't support this action (node_modules/prosthetic-hand/dist/prosthetic-hand.js:624)
IE 11.0 (Windows 10) Map.Drag touch events does not change the center of the map when finger is moved less than the drag threshold FAILED
	Object doesn't support this action (node_modules/prosthetic-hand/dist/prosthetic-hand.js:624)
IE 11.0 (Windows 10) Map.Drag touch events reset itself after touchend FAILED
	Object doesn't support this action (node_modules/prosthetic-hand/dist/prosthetic-hand.js:624)
.............
IE 11.0 (Windows 10) Map.TouchZoom Increases zoom when pinching out FAILED
	Object doesn't support this action (node_modules/prosthetic-hand/dist/prosthetic-hand.js:624)
IE 11.0 (Windows 10) Map.TouchZoom Decreases zoom when pinching in FAILED
	Object doesn't support this action (node_modules/prosthetic-hand/dist/prosthetic-hand.js:624)
IE 11.0 (Windows 10): Executed 685 of 688 (20 FAILED) (skipped 3) (25.993 secs / 22.211 secs)

* karma.conf.js: additional Firefox configs

- FirefoxPointer
- FirefoxTouch
- FirefoxPointerTouch

* .travis.yml: run CI tests with different Firefox configs

Use FirefoxHeadless

* karma.conf.js: change reporter to default ('progress')

Because 'dots' is confusing when mixed up with different warnings.

But for CI script 'dots' fits better due to travis-ci log qualities.

* .travis.yml: run CI tests with Chrome too
2020-05-04 14:19:14 +03:00
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
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
61da775379 Replace happen.drag by prosthetic-hand in specs 2016-03-28 21:51:27 +02:00
8da61993d2 Added four prosthetic-hand tests, checking mouse&touch drag events and touch-zoom 2016-03-18 15:24:42 +01:00
c6e2a2021a Unit tests for flyTo and TileLayers. 2016-02-05 16:30:29 +01:00
8c8d0ac7ee fix whitespace in comments 2015-09-25 15:37:07 +03:00
cfdbd10431 enforce indentation in specs 2015-09-25 13:55:37 +03:00
08d655fe66 upgrade deps and stricter eslint 2015-09-04 17:46:55 +02:00
8d980ce49b Add a unittest to cover dragging map not closing open popup (cf #3632) 2015-07-16 17:01:44 +02:00
d145b1fdba fix a bunch of eslint warnings in the spec suite 2015-01-28 19:32:27 +02:00
91c039b7aa jshinting and major clean up of specs code, ref #2151 2013-11-07 23:54:33 +02:00
df320c3b06 Add test specifications for CRS classes. 2013-09-10 11:40:48 +04:00
01332ebead Omit "should" in spec descriptions
The rationale is this: the spec string describes the expected
behavior unconditionally. The code examples, on the other hand,
set up an expectation that is tested with the call to the expect
method. The code examples can violate the expectation, but the
spec string does not. The value of the spec string is as clearly
as possible describing the behavior. Including “should” in that
description adds no value. (From http://rubyspec.org/style_guide/)
2013-02-19 12:41:48 -08:00
382ef5c0b2 spec cleanup 2012-07-05 12:54:40 +03:00
263a5b9b5f Add method Polyline.closestLayerPoint
Also fix method L.LineUtil.simplify for empty geometry
2011-07-20 13:23:04 +07:00
61d636cc4f remove noSpec failures (enable when needed during development) 2011-07-12 14:59:43 +03:00
42bcb9b3b3 DomUtil, DomEvent, namespace config improvements, some specs 2010-09-07 14:27:44 +03:00