Files
dist
src
test
libs
unit
api.js
checklist.js
combodate.js
common.js
date.js
datefield.js
datetime.js
datetimefield.js
dateui.js
dateuifield.js
select.js
select2.js
text.js
textarea.js
typeahead.js
typeaheadjs.js
wysihtml5.js
coverage
index.html
loader.js
main.js
mocks.js
require.js
style.css
.gitignore
CHANGELOG.txt
Gruntfile.js
LICENSE-MIT
Package.nuspec
README.md
bower.json
composer.json
package.json
x-editable/test/unit/typeaheadjs.js
2013-09-28 14:48:39 +04:00

66 lines
2.3 KiB
JavaScript

$(function () {
module("typeaheadjs", {
setup: function(){
sfx = $('#qunit-fixture'),
fx = $('#async-fixture');
$.support.transition = false;
}
});
asyncTest("should load correct value and save new entered text ", function () {
var v = 'ru',
e = $('<a href="#" data-pk="1" data-name="text1" data-type="typeaheadjs" data-url="post.php"></a>').appendTo(fx).editable({
value: v,
typeahead: {
name: 'country',
local: [
{value: 'ru', tokens: ['Russia']},
{value: 'gb', tokens: ['Great Britain']},
{value: 'us', tokens: ['United States']}
],
template: function(item) {
return item.tokens[0] + ' (' + item.value + ')';
}
}
}),
nv = 'gb',
newText = 'G';
equal(e.data().editable.value, v, 'initial value ok');
e.click();
var p = tip(e),
$input = p.find('input.tt-query');
ok(p.is(':visible'), 'popup visible');
ok($input.length, 'input exists');
equal($input.val(), v, 'input contains correct text');
ok($input.typeahead, 'typeahead applied to input');
// can`t find way to trigger dropdown menu of typeahead
var ev = jQuery.Event( "keydown.tt", { keyCode: 64 } );
$input.val(nv).trigger('queryChanged');
/*
ok(p.find('.tt-dropdown-menu').is(':visible'), 'dropdown visible');
equal(p.find('tt-suggestion').length, 1, 'suggestion exists');
p.find('tt-suggestion:eq(0)').mouseover().click();
equal($input.val(), nv, 'input contain correct text');
*/
p.find('form').submit();
setTimeout(function() {
ok(!p.is(':visible'), 'popup closed');
equal(e.data('editable').value, nv, 'new text saved to value');
equal(e.text(), nv, 'new text shown');
e.remove();
start();
}, timeout);
});
});