mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 09:12:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
module('select2(val)');
 | 
						|
 | 
						|
var Utils = require('select2/utils');
 | 
						|
 | 
						|
test('multiple elements with arguments works', function (assert) {
 | 
						|
  var $ = require('jquery');
 | 
						|
  require('jquery.select2');
 | 
						|
 | 
						|
  var $first = $(
 | 
						|
    '<select>' +
 | 
						|
      '<option>1</option>' +
 | 
						|
      '<option>2</option>' +
 | 
						|
    '</select>'
 | 
						|
  );
 | 
						|
  var $second = $first.clone();
 | 
						|
 | 
						|
  var $both = $first.add($second);
 | 
						|
  $both.select2();
 | 
						|
 | 
						|
  $both.select2('val', '2');
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $first.val(),
 | 
						|
    '2',
 | 
						|
    'The call should change the value on the first element'
 | 
						|
  );
 | 
						|
  assert.equal(
 | 
						|
    $second.val(),
 | 
						|
    '2',
 | 
						|
    'The call should also change the value on the second element'
 | 
						|
  );
 | 
						|
});
 | 
						|
 | 
						|
test('initializes when jQuery $.data contains' +
 | 
						|
  ' cyclic reference', function (assert) {
 | 
						|
  var $ = require('jquery');
 | 
						|
  require('jquery.select2');
 | 
						|
 | 
						|
  var $select = $(
 | 
						|
    '<select>' +
 | 
						|
      '<option>One</option>' +
 | 
						|
      '<option>Two</option>' +
 | 
						|
      '<option value="3" selected>Three</option>' +
 | 
						|
    '</select>'
 | 
						|
  );
 | 
						|
 | 
						|
  // Add a circular reference object using jQuery.
 | 
						|
  var recursiveObject = {};
 | 
						|
 | 
						|
  recursiveObject.same =  recursiveObject;
 | 
						|
 | 
						|
  $select.data('same', recursiveObject);
 | 
						|
 | 
						|
  $select.select2();
 | 
						|
 | 
						|
  assert.equal(
 | 
						|
    $select.val(),
 | 
						|
    '3',
 | 
						|
    'The option value should be pulled correctly'
 | 
						|
  );
 | 
						|
});
 | 
						|
 | 
						|
test('$element.data returns instance and options correctly', 
 | 
						|
  function (assert) {
 | 
						|
  var $ = require('jquery');
 | 
						|
  require('jquery.select2');
 | 
						|
 | 
						|
  var $select = $(
 | 
						|
  '<select>' +
 | 
						|
    '<option value="1">One</option>' +
 | 
						|
    '<option value="2">Two</option>' +
 | 
						|
    '<option value="3" selected>Three</option>' +
 | 
						|
  '</select>'
 | 
						|
  );
 | 
						|
  
 | 
						|
  // Initialize.
 | 
						|
  $select.select2({maximumSelectionLength: 2, multiple: true});
 | 
						|
  
 | 
						|
  assert.equal(
 | 
						|
    $select.val(),
 | 
						|
    '3',
 | 
						|
    'Only 1 option should be pulled.'
 | 
						|
  );
 | 
						|
 | 
						|
  // Try to resolve instance via .data('select2').
 | 
						|
  var $instance = $select.data('select2'); 
 | 
						|
  assert.ok($instance);
 | 
						|
  assert.ok($instance.options);
 | 
						|
 | 
						|
  // Ensure $select.data('select2') is the same instance 
 | 
						|
  // created by .select2()   
 | 
						|
  assert.equal($instance, Utils.GetData($instance.$element[0], 
 | 
						|
               'select2'));
 | 
						|
   
 | 
						|
  // Ensure initialized property matches.
 | 
						|
  assert.equal($instance.options.options.maximumSelectionLength,
 | 
						|
               2);
 | 
						|
}); |