98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
		
			Vendored
		
	
	
	
| 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);
 | |
| }); | 
