1
0
mirror of synced 2024-11-22 21:16:10 +03:00
select2/tests/dropdown/stopPropagation-tests.js
Kevin Brown 8f8140e3b0 Added modules for stopping event propagation
This adds `StopPropagation` modules that will stop the propagation
of the most common events from the selection and dropdown containers.
These modules work from a list of 21 common events, most of which
were stopped by default in past versions, and call `stopPropagation`
on them when they are detected at the container level.

These modules are only available in full builds of Select2.

This closes https://github.com/select2/select2/issues/2033.
This closes https://github.com/select2/select2/issues/2974.
2015-02-09 20:04:01 -05:00

34 lines
924 B
JavaScript

module('Dropdown - Stoping event propagation');
var Dropdown = require('select2/dropdown');
var StopPropagation = require('select2/dropdown/stopPropagation');
var $ = require('jquery');
var Options = require('select2/options');
var Utils = require('select2/utils');
var CustomDropdown = Utils.Decorate(Dropdown, StopPropagation);
var options = new Options();
test('click event does not propagate', function (assert) {
expect(1);
var $container = $('#qunit-fixture .event-container');
var container = new MockContainer();
var dropdown = new CustomDropdown($('#qunit-fixture select'), options);
var $dropdown = dropdown.render();
dropdown.bind(container, $container);
$container.append($dropdown);
$container.on('click', function () {
assert.ok(false, 'The click event should have been stopped');
});
$dropdown.trigger('click');
assert.ok(true, 'Something went wrong if this failed');
});