[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: tokenizer-tests.js
module('Data adaptor - Tokenizer'); test('triggers the select event', function (assert) { assert.expect(2); var SelectData = require('select2/data/select'); var Tokenizer = require('select2/data/tokenizer'); var Tags = require('select2/data/tags'); var Options = require('select2/options'); var Utils = require('select2/utils'); var $ = require('jquery'); var TokenizedSelect = Utils.Decorate( Utils.Decorate(SelectData, Tags), Tokenizer ); var $select = $('#qunit-fixture .single'); var options = new Options({ tags: true, tokenSeparators: [','] }); var container = new MockContainer(); container.dropdown = container.selection = {}; var $container = $('<div></div>'); var data = new TokenizedSelect($select, options); data.bind(container, $container); data.on('select', function () { assert.ok(true, 'The select event should be triggered'); }); data.query({ term: 'first,second' }, function () { assert.ok(true, 'The callback should have succeeded'); }); }); test('createTag can return null', function (assert) { assert.expect(3); var SelectData = require('select2/data/select'); var Tokenizer = require('select2/data/tokenizer'); var Tags = require('select2/data/tags'); var Options = require('select2/options'); var Utils = require('select2/utils'); var $ = require('jquery'); var TokenizedSelect = Utils.Decorate( Utils.Decorate(SelectData, Tags), Tokenizer ); var $select = $('#qunit-fixture .single'); var options = new Options({ tags: true, tokenSeparators: [','], createTag: function () { assert.ok(true, 'createTag should have been called'); return null; } }); var container = new MockContainer(); container.dropdown = container.selection = {}; var $container = $('<div></div>'); var data = new TokenizedSelect($select, options); data.bind(container, $container); data.on('select', function (params) { if (params.data == null) { assert.ok(false, 'Null data should never be selected'); } }); data.query({ term: 'first,second' }, function () { assert.ok(true, 'The callback should have succeeded'); }); }); test('createTag returning null does not cut the term', function (assert) { assert.expect(4); var SelectData = require('select2/data/select'); var Tokenizer = require('select2/data/tokenizer'); var Tags = require('select2/data/tags'); var Options = require('select2/options'); var Utils = require('select2/utils'); var $ = require('jquery'); var TokenizedSelect = Utils.Decorate( Utils.Decorate(SelectData, Tags), Tokenizer ); var $select = $('#qunit-fixture .single'); var options = new Options({ tags: true, tokenSeparators: [',', '"'], createTag: function (params) { var term = params.term; // Ignore blanks if (term.length === 0) { return null; } // Ignore the leading quote if (term === '"') { return null; } // If there is a leading quote, check for a second one if (term[0] === '"' && term[term.length - 1] !== '"') { return null; } var text = term.substr(1, term.length - 2); return { id: term, text: text }; } }); var container = new MockContainer(); container.dropdown = container.selection = {}; var $container = $('<div></div>'); var data = new TokenizedSelect($select, options); data.bind(container, $container); data.on('select', function (params) { assert.ok(params.data, 'Data should not be null'); assert.equal( params.data.id, '"first, second"', 'The id should have the quotes' ); assert.equal( params.data.text, 'first, second', 'The text should not have the quotes' ); }); data.query({ term: '"first, second",abc' }, function () { assert.ok(true, 'The callback should have succeeded'); }); }); test('works with multiple tokens given', function (assert) { assert.expect(4); var SelectData = require('select2/data/select'); var Tokenizer = require('select2/data/tokenizer'); var Tags = require('select2/data/tags'); var Options = require('select2/options'); var Utils = require('select2/utils'); var $ = require('jquery'); var TokenizedSelect = Utils.Decorate( Utils.Decorate(SelectData, Tags), Tokenizer ); var $select = $('#qunit-fixture .multiple'); var options = new Options({ tags: true, tokenSeparators: [','] }); var container = new MockContainer(); container.dropdown = container.selection = {}; var $container = $('<div></div>'); var data = new TokenizedSelect($select, options); data.bind(container, $container); data.on('select', function () { assert.ok(true, 'The select event should be triggered'); }); data.query({ term: 'first,second,third' }, function () { assert.ok(true, 'The callback should have succeeded'); }); assert.equal( $select.children('option').length, 3, 'The two new tags should have been created' ); });
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.83 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002