diff options
author | Marvin Borner | 2018-07-13 19:06:45 +0200 |
---|---|---|
committer | Marvin Borner | 2018-07-13 19:06:45 +0200 |
commit | 6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch) | |
tree | dbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/select2/tests/dropdown | |
parent | dfd839f27146df0ad0494e11734fc7d310c70ebf (diff) |
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/select2/tests/dropdown')
4 files changed, 451 insertions, 0 deletions
diff --git a/public/bower_components/select2/tests/dropdown/dropdownCss-tests.js b/public/bower_components/select2/tests/dropdown/dropdownCss-tests.js new file mode 100644 index 0000000..9969335 --- /dev/null +++ b/public/bower_components/select2/tests/dropdown/dropdownCss-tests.js @@ -0,0 +1,104 @@ +module('Dropdown - dropdownCssClass compatibility'); + +var $ = require('jquery'); +var Utils = require('select2/utils'); +var Options = require('select2/options'); + +var Dropdown = require('select2/dropdown'); +var DropdownCSS = Utils.Decorate( + Dropdown, + require('select2/compat/dropdownCss') +); + +test('all classes will be copied if :all: is used', function (assert) { + var $element = $('<select class="test copy works"></select>'); + var options = new Options({ + dropdownCssClass: ':all:' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('copy')); + assert.ok($dropdown.hasClass('works')); + assert.ok(!$dropdown.hasClass(':all:')); +}); + +test(':all: can be used with other classes', function (assert) { + var $element = $('<select class="test copy works"></select>'); + var options = new Options({ + dropdownCssClass: ':all: other' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('copy')); + assert.ok($dropdown.hasClass('works')); + assert.ok($dropdown.hasClass('other')); + assert.ok(!$dropdown.hasClass(':all:')); +}); + +test('classes can be passed in as a string', function (assert) { + var $element = $('<select class="test copy works"></select>'); + var options = new Options({ + dropdownCssClass: 'other' + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('other')); +}); + +test('a function can be used based on the element', function (assert){ + var $element = $('<select class="test"></select>'); + var options = new Options({ + dropdownCssClass: function ($element) { + return 'function'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('function')); + assert.ok(!$dropdown.hasClass('test')); +}); + +test(':all: works around custom adapters', function (assert) { + var $element = $('<select class="test"></select>'); + var options = new Options({ + dropdownCssClass: ':all: something', + adaptDropdownCssClass: function (clazz) { + return clazz + '-modified'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok($dropdown.hasClass('something')); + + assert.ok($dropdown.hasClass('test')); + assert.ok($dropdown.hasClass('test-modified')); +}); + +module('Dropdown - adaptDropdownCss compatibility'); + +test('only return when adapted', function (assert) { + var $element = $('<select class="original"></select>'); + var options = new Options({ + adaptDropdownCssClass: function (clazz) { + return 'modified'; + } + }); + + var select = new DropdownCSS($element, options); + var $dropdown = select.render(); + + assert.ok(!$dropdown.hasClass('original')); + assert.ok($dropdown.hasClass('modified')); +}); diff --git a/public/bower_components/select2/tests/dropdown/positioning-tests.js b/public/bower_components/select2/tests/dropdown/positioning-tests.js new file mode 100644 index 0000000..37c2b06 --- /dev/null +++ b/public/bower_components/select2/tests/dropdown/positioning-tests.js @@ -0,0 +1,177 @@ +module('Dropdown - attachBody - positioning'); + +test('appends to the dropdown parent', function (assert) { + assert.expect(4); + + var $ = require('jquery'); + + var $select = $('<select></select>'); + var $parent = $('<div></div>'); + + var $container = $('<span></span>'); + var container = new MockContainer(); + + $parent.appendTo($('#qunit-fixture')); + $select.appendTo($parent); + + var Utils = require('select2/utils'); + var Options = require('select2/options'); + + var Dropdown = require('select2/dropdown'); + var AttachBody = require('select2/dropdown/attachBody'); + + var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); + + var dropdown = new DropdownAdapter($select, new Options({ + dropdownParent: $parent + })); + + assert.equal( + $parent.children().length, + 1, + 'Only the select should be in the container' + ); + + var $dropdown = dropdown.render(); + + dropdown.bind(container, $container); + + dropdown.position($dropdown, $container); + + assert.equal( + $parent.children().length, + 1, + 'The dropdown should not be placed until after it is opened' + ); + + dropdown._showDropdown(); + + assert.equal( + $parent.children().length, + 2, + 'The dropdown should now be in the container as well' + ); + + assert.ok( + $.contains($parent[0], $dropdown[0]), + 'The dropdown should be contained within the parent container' + ); +}); + +test('dropdown is positioned down with static margins', function (assert) { + var $ = require('jquery'); + var $select = $('<select></select>'); + var $parent = $('<div></div>'); + $parent.css({ + position: 'static', + marginTop: '5px', + marginLeft: '10px' + }); + + var $container = $('<span>test</span>'); + var container = new MockContainer(); + + $('#qunit-fixture').empty(); + + $parent.appendTo($('#qunit-fixture')); + $container.appendTo($parent); + + var Utils = require('select2/utils'); + var Options = require('select2/options'); + + var Dropdown = require('select2/dropdown'); + var AttachBody = require('select2/dropdown/attachBody'); + + var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); + + var dropdown = new DropdownAdapter($select, new Options({ + dropdownParent: $parent + })); + + var $dropdown = dropdown.render(); + + assert.equal( + $dropdown[0].style.top, + 0, + 'The drodpown should not have any offset before it is displayed' + ); + + dropdown.bind(container, $container); + dropdown.position($dropdown, $container); + dropdown._showDropdown(); + + assert.ok( + dropdown.$dropdown.hasClass('select2-dropdown--below'), + 'The dropdown should be forced down' + ); + + assert.equal( + $dropdown.css('top').substring(0, 2), + $container.outerHeight() + 5, + 'The offset should be 5px at the top' + ); + + assert.equal( + $dropdown.css('left'), + '10px', + 'The offset should be 10px on the left' + ); +}); + +test('dropdown is positioned down with absolute offsets', function (assert) { + var $ = require('jquery'); + var $select = $('<select></select>'); + var $parent = $('<div></div>'); + $parent.css({ + position: 'absolute', + top: '10px', + left: '5px' + }); + + var $container = $('<span>test</span>'); + var container = new MockContainer(); + + $parent.appendTo($('#qunit-fixture')); + $container.appendTo($parent); + + var Utils = require('select2/utils'); + var Options = require('select2/options'); + + var Dropdown = require('select2/dropdown'); + var AttachBody = require('select2/dropdown/attachBody'); + + var DropdownAdapter = Utils.Decorate(Dropdown, AttachBody); + + var dropdown = new DropdownAdapter($select, new Options({ + dropdownParent: $parent + })); + + var $dropdown = dropdown.render(); + + assert.equal( + $dropdown[0].style.top, + 0, + 'The drodpown should not have any offset before it is displayed' + ); + + dropdown.bind(container, $container); + dropdown.position($dropdown, $container); + dropdown._showDropdown(); + + assert.ok( + dropdown.$dropdown.hasClass('select2-dropdown--below'), + 'The dropdown should be forced down' + ); + + assert.equal( + $dropdown.css('top').substring(0, 2), + $container.outerHeight(), + 'There should not be an extra top offset' + ); + + assert.equal( + $dropdown.css('left'), + '0px', + 'There should not be an extra left offset' + ); +});
\ No newline at end of file diff --git a/public/bower_components/select2/tests/dropdown/selectOnClose-tests.js b/public/bower_components/select2/tests/dropdown/selectOnClose-tests.js new file mode 100644 index 0000000..3f1d1d4 --- /dev/null +++ b/public/bower_components/select2/tests/dropdown/selectOnClose-tests.js @@ -0,0 +1,137 @@ +module('Dropdown - selectOnClose'); + +var $ = require('jquery'); + +var Utils = require('select2/utils'); +var Options = require('select2/options'); + +var SelectData = require('select2/data/select'); + +var Results = require('select2/results'); +var SelectOnClose = require('select2/dropdown/selectOnClose'); + +var ModifiedResults = Utils.Decorate(Results, SelectOnClose); + +var options = new Options({ + selectOnClose: true +}); + +test('will not trigger if no results were given', function (assert) { + assert.expect(0); + + var $element = $('<select></select>'); + var select = new ModifiedResults($element, options, new SelectData($element)); + + var $dropdown = select.render(); + + var container = new MockContainer(); + select.bind(container, $('<div></div>')); + + select.on('select', function () { + assert.ok(false, 'The select event should not have been triggered'); + }); + + container.trigger('close'); +}); + +test('will not trigger if the results list is empty', function (assert) { + assert.expect(1); + + var $element = $('<select></select>'); + var select = new ModifiedResults($element, options, new SelectData($element)); + + var $dropdown = select.render(); + + var container = new MockContainer(); + select.bind(container, $('<div></div>')); + + select.on('select', function () { + assert.ok(false, 'The select event should not have been triggered'); + }); + + select.append({ + results: [] + }); + + assert.equal( + $dropdown.find('li').length, + 0, + 'There should not be any results in the dropdown' + ); + + container.trigger('close'); +}); + +test('will not trigger if no results here highlighted', function (assert) { + assert.expect(2); + + var $element = $('<select></select>'); + var select = new ModifiedResults($element, options, new SelectData($element)); + + var $dropdown = select.render(); + + var container = new MockContainer(); + select.bind(container, $('<div></div>')); + + select.on('select', function () { + assert.ok(false, 'The select event should not have been triggered'); + }); + + select.append({ + results: [ + { + id: '1', + text: 'Test' + } + ] + }); + + assert.equal( + $dropdown.find('li').length, + 1, + 'There should be one result in the dropdown' + ); + + assert.equal( + $.trim($dropdown.find('li').text()), + 'Test', + 'The result should be the same as the one we appended' + ); + + container.trigger('close'); +}); + +test('will trigger if there is a highlighted result', function (assert) { + assert.expect(2); + + var $element = $('<select></select>'); + var select = new ModifiedResults($element, options, new SelectData($element)); + + var $dropdown = select.render(); + + var container = new MockContainer(); + select.bind(container, $('<div></div>')); + + select.on('select', function () { + assert.ok(true, 'The select event should have been triggered'); + }); + + select.append({ + results: [ + { + id: '1', + text: 'Test' + } + ] + }); + + assert.equal( + $dropdown.find('li').length, + 1, + 'There should be one result in the dropdown' + ); + + $dropdown.find('li').addClass('select2-results__option--highlighted'); + + container.trigger('close'); +}); diff --git a/public/bower_components/select2/tests/dropdown/stopPropagation-tests.js b/public/bower_components/select2/tests/dropdown/stopPropagation-tests.js new file mode 100644 index 0000000..240a3e6 --- /dev/null +++ b/public/bower_components/select2/tests/dropdown/stopPropagation-tests.js @@ -0,0 +1,33 @@ +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) { + 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'); +}); |