123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- module('Dropdown - containerCssClass compatibility');
-
- var $ = require('jquery');
- var Utils = require('select2/utils');
- var Options = require('select2/options');
-
- var SingleSelection = require('select2/selection/single');
- var ContainerCSS = Utils.Decorate(
- SingleSelection,
- require('select2/compat/containerCss')
- );
-
- test('all classes will be copied if :all: is used', function (assert) {
- var $element = $('<select class="test copy works"></select>');
- var options = new Options({
- containerCssClass: ':all:'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('copy'));
- assert.ok($container.hasClass('works'));
- assert.ok(!$container.hasClass(':all:'));
- });
-
- test(':all: can be used with other classes', function (assert) {
- var $element = $('<select class="test copy works"></select>');
- var options = new Options({
- containerCssClass: ':all: other'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('copy'));
- assert.ok($container.hasClass('works'));
- assert.ok($container.hasClass('other'));
- assert.ok(!$container.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({
- containerCssClass: 'other'
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('other'));
- });
-
- test('a function can be used based on the element', function (assert){
- var $element = $('<select class="test"></select>');
- var options = new Options({
- containerCssClass: function ($element) {
- return 'function';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('function'));
- assert.ok(!$container.hasClass('test'));
- });
-
- test(':all: works around custom adapters', function (assert) {
- var $element = $('<select class="test"></select>');
- var options = new Options({
- containerCssClass: ':all: something',
- adaptContainerCssClass: function (clazz) {
- return clazz + '-modified';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok($container.hasClass('something'));
-
- assert.ok($container.hasClass('test'));
- assert.ok($container.hasClass('test-modified'));
- });
-
- module('Selection - adaptContainerCss compatibility');
-
- test('only return when adapted', function (assert) {
- var $element = $('<select class="original"></select>');
- var options = new Options({
- adaptContainerCssClass: function (clazz) {
- return 'modified';
- }
- });
-
- var select = new ContainerCSS($element, options);
- var $container = select.render();
-
- assert.ok(!$container.hasClass('original'));
- assert.ok($container.hasClass('modified'));
- });
|