* Break the reference to the options of the Class prototype
* Refactor test and .setOptions
* Revert: Merge https://github.com/Leaflet/Leaflet into class_options
* Class.extend: do not modify source props.options
`extend` method had side effects:
- (if parent prototype has options) props.options got rewritten
- (if parent does not have options) props.options object was used directly
that behavior was undesirable, as it prevented to reuse props.
E.g. this case had unexpected behavior:
var props = {
// ...
// some useful props and methods
}
var MyLine = L.Polyline.extend(props);
var MyGon = L.Polygon.extend(props);
var line = new MyLine([]);
var gon = new MyGon([]);
console.log(line.options.fill, gon.options.fill);
// Output expected: false, true
// Output before fix: false, false
* Class.extend: do not modify source props object
Previously 'statics' and 'includes' were removed,
that prevented source props reusing
* 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
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/)