fix mousewheel handler tests

This commit is contained in:
Éric Lemoine
2012-07-13 16:20:23 +02:00
parent 6fd5bb8647
commit 226480af90
2 changed files with 29 additions and 20 deletions
+6 -1
View File
@@ -30,7 +30,12 @@ goog.require('goog.events.MouseWheelHandler.EventType');
ol.handler.MouseWheel = function(map, states) { ol.handler.MouseWheel = function(map, states) {
goog.base(this, map, states); goog.base(this, map, states);
var handler = new goog.events.MouseWheelHandler(this.element_); /**
* @type {goog.events.MouseWheelHandler}
*/
this.handler_ = new goog.events.MouseWheelHandler(this.element_);
var handler = this.handler_;
this.registerDisposable(handler); this.registerDisposable(handler);
goog.events.listen(handler, goog.events.listen(handler,
+23 -19
View File
@@ -1,12 +1,10 @@
describe('ol.handler.MouseWheel', function() { describe('ol.handler.MouseWheel', function() {
var map, elt; var map;
beforeEach(function() { beforeEach(function() {
map = new ol.Map(); map = new ol.Map();
elt = new goog.events.EventTarget(); var elt = new goog.events.EventTarget();
map.viewport_ = elt; map.viewport_ = elt;
listener = {fn: function() {}};
spyOn(listener, 'fn');
}); });
describe('create a mouse wheel handler', function() { describe('create a mouse wheel handler', function() {
@@ -20,25 +18,31 @@ describe('ol.handler.MouseWheel', function() {
describe('dispatching events', function() { describe('dispatching events', function() {
it('dispatches a mousewheel event', function() { var handler;
var handler = new ol.handler.MouseWheel(map, {});
goog.events.listen(map, 'mousewheel', listener.fn);
var evt = new goog.events.MouseWheelEvent(1, 'foo', 0, 1); beforeEach(function() {
handler.handleMouseWheel(evt); handler = new ol.handler.MouseWheel(map, {});
expect(listener.fn.calls[0].args[0].type).toBe('mousewheel');
expect(listener.fn.calls[0].args[0].originalEvent).toBe(evt);
}); });
it('calls the default action on the default control', function() { it('dispatches a mousewheel event', function() {
var control = new ol.control.DefaultControl(); var spy = spyOn(goog.events.Event, 'preventDefault').andCallThrough();
spyOn(control, 'defaultMouseWheel'); goog.events.listen(map, ol.events.MapEventType.MOUSEWHEEL, spy);
map.setDefaultControl(control);
var handler = new ol.handler.MouseWheel(map, {});
handler.handleMouseWheel(new goog.events.MouseWheelEvent(1, 'foo', 0, 1)); var evt = new goog.events.MouseWheelEvent(1, 'foo', 0, 1);
expect(control.defaultMouseWheel).toHaveBeenCalled(); handler.handler_.dispatchEvent(evt);
expect(spy).toHaveBeenCalled();
expect(spy.argsForCall[0][0].type).toEqual(ol.events.MapEventType.MOUSEWHEEL);
});
it('calls the default action', function() {
var handler = new ol.handler.MouseWheel(map, {});
spyOn(handler, 'defaultMouseWheel');
var evt = new goog.events.MouseWheelEvent(1, 'foo', 0, 1);
handler.handler_.dispatchEvent(evt);
expect(handler.defaultMouseWheel).toHaveBeenCalled();
}); });
}); });