117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
		
			Vendored
		
	
	
	
| module('Results - option');
 | |
| 
 | |
| var $ = require('jquery');
 | |
| 
 | |
| var Options = require('select2/options');
 | |
| 
 | |
| var Results = require('select2/results');
 | |
| 
 | |
| test('disabled property on option is respected - enabled', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<option></option>');
 | |
|   var option = results.option({
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.notEqual(option.getAttribute('aria-disabled'), 'true');
 | |
| });
 | |
| 
 | |
| test('disabled property on option is respected - disabled', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<option disabled></option>');
 | |
|   var option = results.option({
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('aria-disabled'), 'true');
 | |
| });
 | |
| 
 | |
| test('disabled property on enabled optgroup is respected', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<optgroup></optgroup>');
 | |
|   var option = results.option({
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.notEqual(option.getAttribute('aria-disabled'), 'true');
 | |
| });
 | |
| 
 | |
| test('disabled property on disabled optgroup is respected', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<optgroup disabled></optgroup>');
 | |
|   var option = results.option({
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('aria-disabled'), 'true');
 | |
| });
 | |
| 
 | |
| test('option in disabled optgroup is disabled', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<optgroup disabled><option></option></optgroup>')
 | |
|     .find('option');
 | |
|   var option = results.option({
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('aria-disabled'), 'true');
 | |
| });
 | |
| 
 | |
| test('options are not selected by default', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<option></option>');
 | |
|   var option = results.option({
 | |
|     id: 'test',
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.notOk(option.classList.contains('select2-results__option--selected'));
 | |
| });
 | |
| 
 | |
| test('options with children are given the group role', function(assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<optgroup></optgroup>');
 | |
|   var option = results.option({
 | |
|     children: [{
 | |
|       id: 'test'
 | |
|     }],
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('role'), 'group');
 | |
| });
 | |
| 
 | |
| test('options with children have the aria-label set', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<optgroup></optgroup>');
 | |
|   var option = results.option({
 | |
|     children: [{
 | |
|       id: 'test'
 | |
|     }],
 | |
|     element: $option[0],
 | |
|     text: 'test'
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('aria-label'), 'test');
 | |
| });
 | |
| 
 | |
| test('non-group options are given the option role', function (assert) {
 | |
|   var results = new Results($('<select></select>'), new Options({}));
 | |
| 
 | |
|   var $option = $('<option></option>');
 | |
|   var option = results.option({
 | |
|     id: 'test',
 | |
|     element: $option[0]
 | |
|   });
 | |
| 
 | |
|   assert.equal(option.getAttribute('role'), 'option');
 | |
| });
 | 
