|
@@ -239,3 +239,113 @@ test('!scrollAfterSelect does not trigger results:focus', function (assert) {
|
|
|
|
|
|
container.trigger('select', {});
|
|
container.trigger('select', {});
|
|
});
|
|
});
|
|
|
|
+
|
|
|
|
+test('tag result is highlighted with no other selections', function (assert) {
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ var $ = require('jquery');
|
|
|
|
+
|
|
|
|
+ var $select = $('<select></select>');
|
|
|
|
+ var $parent = $('<div></div>');
|
|
|
|
+
|
|
|
|
+ var $container = $('<span></span>');
|
|
|
|
+ var container = new MockContainer();
|
|
|
|
+
|
|
|
|
+ $parent.appendTo($('#qunit-fixture'));
|
|
|
|
+ $select.appendTo($parent);
|
|
|
|
+
|
|
|
|
+ var Utils = require('select2/utils');
|
|
|
|
+ var Options = require('select2/options');
|
|
|
|
+
|
|
|
|
+ var Results = require('select2/results');
|
|
|
|
+ var Tags = require('select2/dropdown/tagsSearchHighlight');
|
|
|
|
+ var TagResults = Utils.Decorate(Results, Tags);
|
|
|
|
+
|
|
|
|
+ var results = new TagResults($select, new Options({}));
|
|
|
|
+
|
|
|
|
+ // Fake the data adapter for the `setClasses` method
|
|
|
|
+ results.data = {};
|
|
|
|
+ results.data.current = function (callback) {
|
|
|
|
+ callback([]);
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ results.render();
|
|
|
|
+
|
|
|
|
+ results.bind(container, $container);
|
|
|
|
+
|
|
|
|
+ results.on('results:focus', function (params) {
|
|
|
|
+ assert.equal(params.data.id, 'tag');
|
|
|
|
+ assert.equal(params.data.text, 'Tag');
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var tagElement = $('<option data-select2-tag="true"></option>')[0];
|
|
|
|
+
|
|
|
|
+ container.trigger('results:all', {
|
|
|
|
+ data: {
|
|
|
|
+ results: [
|
|
|
|
+ {
|
|
|
|
+ id: 'tag',
|
|
|
|
+ text: 'Tag',
|
|
|
|
+ element: tagElement
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+});
|
|
|
|
+
|
|
|
|
+test('tag result is highlighted with other selections', function (assert) {
|
|
|
|
+ assert.expect(2);
|
|
|
|
+
|
|
|
|
+ var $ = require('jquery');
|
|
|
|
+
|
|
|
|
+ var $select = $('<select></select>');
|
|
|
|
+ var $parent = $('<div></div>');
|
|
|
|
+
|
|
|
|
+ var $container = $('<span></span>');
|
|
|
|
+ var container = new MockContainer();
|
|
|
|
+
|
|
|
|
+ $parent.appendTo($('#qunit-fixture'));
|
|
|
|
+ $select.appendTo($parent);
|
|
|
|
+
|
|
|
|
+ var Utils = require('select2/utils');
|
|
|
|
+ var Options = require('select2/options');
|
|
|
|
+
|
|
|
|
+ var Results = require('select2/results');
|
|
|
|
+ var Tags = require('select2/dropdown/tagsSearchHighlight');
|
|
|
|
+ var TagResults = Utils.Decorate(Results, Tags);
|
|
|
|
+
|
|
|
|
+ var results = new TagResults($select, new Options({}));
|
|
|
|
+
|
|
|
|
+ // Fake the data adapter for the `setClasses` method
|
|
|
|
+ results.data = {};
|
|
|
|
+ results.data.current = function (callback) {
|
|
|
|
+ callback([{ id: 'test' }]);
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ results.render();
|
|
|
|
+
|
|
|
|
+ results.bind(container, $container);
|
|
|
|
+
|
|
|
|
+ results.on('results:focus', function (params) {
|
|
|
|
+ assert.equal(params.data.id, 'tag');
|
|
|
|
+ assert.equal(params.data.text, 'Tag');
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ var tagElement = $('<option data-select2-tag="true"></option>')[0];
|
|
|
|
+
|
|
|
|
+ container.trigger('results:all', {
|
|
|
|
+ data: {
|
|
|
|
+ results: [
|
|
|
|
+ {
|
|
|
|
+ id: 'tag',
|
|
|
|
+ text: 'Tag',
|
|
|
|
+ element: tagElement
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ id: 'test',
|
|
|
|
+ text: 'Test'
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+});
|