/
githubmirror
/
Leaflet
Обзор
Документация
Войти
/
githubmirror
/
Leaflet
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
spec/suites/map/handler/ScrollWheelZoomHandlerSpec.js
121 строка
3 KB
Simon Legner
Handler: stop exposing modules on other classes (#10058)
07 янв 2026, 21:45
Не верифицирован
07 янв 2026, 21:45
9753ace
Код
Авторство
О чём код?
import {expect} from 'chai'; import {DomEvent, LeafletMap} from 'leaflet'; import sinon from 'sinon'; import UIEventSimulator from 'ui-event-simulator'; import {createContainer, removeMapContainer} from '../../SpecHelper.js'; describe('ScrollWheelZoomHandler', () => { let container, map; const wheel = 'onwheel' in window ? 'wheel' : 'mousewheel'; const scrollIn = { deltaY: -120, deltaMode: 0 }; const scrollOut = { deltaY: 120, deltaMode: 0 }; beforeEach(() => { container = createContainer(); map = new LeafletMap(container, { center: [0, 0], zoom: 3, zoomAnimation: false }); }); afterEach(() => { removeMapContainer(map, container); }); it('zooms out while firing \'wheel\' event', (done) => { const zoom = map.getZoom(); UIEventSimulator.fire(wheel, container, scrollOut); map.on('zoomend', () => { // Bug 1.8.0: Firefox wheel zoom makes 2 steps #7403 // expect(map.getCenter()).to.be.nearLatLng([-33.137551192346145, 35.15625000000001]); expect(map.getZoom()).to.be.lessThan(zoom); done(); }); }); it('zooms in while firing \'wheel\' event', (done) => { const zoom = map.getZoom(); UIEventSimulator.fire(wheel, container, scrollIn); map.on('zoomend', () => { // Bug 1.8.0: Firefox wheel zoom makes 2 steps #7403 // expect(map.getCenter()).to.be.nearLatLng([17.308687886770034, -17.578125000000004]); expect(map.getZoom()).to.be.greaterThan(zoom); done(); }); }); it('scrollWheelZoom: \'center\'', (done) => { const scrollWheelZoomBefore = map.options.scrollWheelZoom; map.options.scrollWheelZoom = 'center'; const zoom = map.getZoom(); UIEventSimulator.fire(wheel, container, scrollIn); map.on('zoomend', () => { expect(map.getCenter()).to.be.nearLatLng([0, 0]); expect(map.getZoom()).to.be.greaterThan(zoom); map.options.scrollWheelZoom = scrollWheelZoomBefore; done(); }); }); it('changes the option \'wheelDebounceTime\'', (done) => { const wheelDebounceTimeBefore = map.options.wheelDebounceTime; map.options.wheelDebounceTime = 100; const zoom = map.getZoom(); const spy = sinon.spy(); map.on('zoomend', spy); UIEventSimulator.fire(wheel, container, scrollIn); setTimeout(() => { UIEventSimulator.fire(wheel, container, scrollIn); expect(spy.notCalled).to.be.true; }, 50); map.on('zoomend', () => { expect(spy.calledOnce).to.be.true; // Bug 1.8.0: Firefox wheel zoom makes 2 steps #7403 // expect(map.getCenter()).to.be.nearLatLng([25.48295117535531, -26.367187500000004]); expect(map.getZoom()).to.be.greaterThan(zoom); map.options.wheelDebounceTime = wheelDebounceTimeBefore; done(); }); }); it('changes the option \'wheelPxPerZoomLevel\'', (done) => { const wheelPxPerZoomLevelBefore = map.options.wheelPxPerZoomLevel; map.setZoom(15, {animate: false}); const zoom = map.getZoom(); UIEventSimulator.fire(wheel, container, scrollIn); map.once('zoomend', () => { expect(map.getZoom()).to.be.greaterThan(zoom); const zoomDiff = map.getZoom() - zoom; map.setZoom(zoom, {animate: false}); expect(map.getZoom()).to.equal(zoom); map.options.wheelPxPerZoomLevel = 30 / DomEvent.getWheelPxFactor(); UIEventSimulator.fire(wheel, container, scrollIn); map.once('zoomend', () => { expect(map.getZoom()).to.be.greaterThan(zoom); expect(map.getZoom() - zoom).to.be.greaterThan(zoomDiff); map.options.wheelPxPerZoomLevel = wheelPxPerZoomLevelBefore; done(); }); }); }); });