element-tests.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. module('Options - Copying from element');
  2. var $ = require('jquery');
  3. var Options = require('select2/options');
  4. test('copies disabled attribute when set', function (assert) {
  5. var $test = $('<select disabled></select>');
  6. var options = new Options({}, $test);
  7. assert.ok(options.get('disabled'));
  8. });
  9. test('does not copy disabled attribute when not set', function (assert) {
  10. var $test = $('<select></select>');
  11. var options = new Options({}, $test);
  12. assert.ok(!options.get('disabled'));
  13. });
  14. test('disabled attribute does not override disable option', function (assert) {
  15. var $test = $('<select disabled></select>');
  16. var options = new Options({
  17. disabled: false
  18. }, $test);
  19. assert.ok(!options.get('disabled'));
  20. });
  21. test('disabled option is synchronized back', function (assert) {
  22. var $test = $('<select disabled></select>');
  23. assert.ok($test.prop('disabled'));
  24. var options = new Options({
  25. disabled: false
  26. }, $test);
  27. assert.ok(!$test.prop('disabled'));
  28. });
  29. test('copies multiple attribute when set', function (assert) {
  30. var $test = $('<select multiple></select>');
  31. var options = new Options({}, $test);
  32. assert.ok(options.get('multiple'));
  33. });
  34. test('does not copy multiple attribute when not set', function (assert) {
  35. var $test = $('<select></select>');
  36. var options = new Options({}, $test);
  37. assert.ok(!options.get('multiple'));
  38. });
  39. test('multiple attribute does not override multiple option', function (assert) {
  40. var $test = $('<select multiple></select>');
  41. var options = new Options({
  42. multiple: false
  43. }, $test);
  44. assert.ok(!options.get('multiple'));
  45. });
  46. test('multiple option is synchronized back', function (assert) {
  47. var $test = $('<select multiple></select>');
  48. assert.ok($test.prop('multiple'));
  49. var options = new Options({
  50. multiple: false
  51. }, $test);
  52. assert.ok(!$test.prop('multiple'));
  53. });
  54. test('copies autocomplete attribute when set', function (assert) {
  55. var $test = $('<select autocomplete="country-name"></select>');
  56. if ($test.prop('autocomplete') !== 'country-name') {
  57. // Browser does not support the autocomplete attribute on a select
  58. assert.ok(true);
  59. return;
  60. }
  61. var options = new Options({}, $test);
  62. assert.equal(options.get('autocomplete'), 'country-name');
  63. });
  64. test('does not copy autocomplete attribute when not set', function (assert) {
  65. var $test = $('<select></select>');
  66. var options = new Options({}, $test);
  67. assert.equal(options.get('autocomplete'), 'off');
  68. });
  69. test('autocomplete attribute does not override option', function (assert) {
  70. var $test = $('<select autocomplete="country-name"></select>');
  71. var options = new Options({
  72. autocomplete: 'organization'
  73. }, $test);
  74. assert.ok(options.get('autocomplete'), 'organization');
  75. });