module('Accessibility - Search');

var MultipleSelection = require('select2/selection/multiple'); var InlineSearch = require('select2/selection/search');

var $ = require('jquery');

var Utils = require('select2/utils'); var Options = require('select2/options'); var options = new Options({});

test('aria-autocomplete attribute is present', function (assert) {

var $select = $('#qunit-fixture .multiple');

var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
var selection = new CustomSelection($select, options);
var $selection = selection.render();

// Update the selection so the search is rendered
selection.update([]);

assert.equal(
  $selection.find('input').attr('aria-autocomplete'),
  'list',
  'The search box is marked as autocomplete'
);

});

test('aria-activedescendant should be removed when closed', function (assert) {

var $select = $('#qunit-fixture .multiple');

var CustomSelection = Utils.Decorate(MultipleSelection, InlineSearch);
var selection = new CustomSelection($select, options);
var $selection = selection.render();

var container = new MockContainer();
selection.bind(container, $('<span></span>'));

// Update the selection so the search is rendered
selection.update([]);

var $search = $selection.find('input');
$search.attr('aria-activedescendant', 'something');

container.trigger('close');

assert.ok(
  !$search.attr('aria-activedescendant'),
  'There is no active descendant when the dropdown is closed'
);

});