Commit 820a3b27 authored by fat's avatar fat

get tests passing for typeahead :P

parent 1747caf1
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
this.sorter = this.options.sorter || this.sorter this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater this.updater = this.options.updater || this.updater
this.$menu = $(this.options.menu).insertAfter(this.$element)
this.source = this.options.source this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false this.shown = false
this.listen() this.listen()
} }
...@@ -60,12 +60,14 @@ ...@@ -60,12 +60,14 @@
height: this.$element[0].offsetHeight height: this.$element[0].offsetHeight
}) })
this.$menu.css({ this.$menu
top: pos.top + pos.height .insertAfter(this.$element)
, left: pos.left .css({
}) top: pos.top + pos.height
, left: pos.left
})
.show()
this.$menu.show()
this.shown = true this.shown = true
return this return this
} }
......
...@@ -1752,8 +1752,8 @@ ...@@ -1752,8 +1752,8 @@
this.sorter = this.options.sorter || this.sorter this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater this.updater = this.options.updater || this.updater
this.$menu = $(this.options.menu).insertAfter(this.$element)
this.source = this.options.source this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false this.shown = false
this.listen() this.listen()
} }
...@@ -1779,12 +1779,14 @@ ...@@ -1779,12 +1779,14 @@
height: this.$element[0].offsetHeight height: this.$element[0].offsetHeight
}) })
this.$menu.css({ this.$menu
top: pos.top + pos.height .insertAfter(this.$element)
, left: pos.left .css({
}) top: pos.top + pos.height
, left: pos.left
})
.show()
this.$menu.show()
this.shown = true this.shown = true
return this return this
} }
......
This diff is collapsed.
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
this.sorter = this.options.sorter || this.sorter this.sorter = this.options.sorter || this.sorter
this.highlighter = this.options.highlighter || this.highlighter this.highlighter = this.options.highlighter || this.highlighter
this.updater = this.options.updater || this.updater this.updater = this.options.updater || this.updater
this.$menu = $(this.options.menu).insertAfter(this.$element)
this.source = this.options.source this.source = this.options.source
this.$menu = $(this.options.menu)
this.shown = false this.shown = false
this.listen() this.listen()
} }
...@@ -60,12 +60,14 @@ ...@@ -60,12 +60,14 @@
height: this.$element[0].offsetHeight height: this.$element[0].offsetHeight
}) })
this.$menu.css({ this.$menu
top: pos.top + pos.height .insertAfter(this.$element)
, left: pos.left .css({
}) top: pos.top + pos.height
, left: pos.left
})
.show()
this.$menu.show()
this.shown = true this.shown = true
return this return this
} }
......
...@@ -38,7 +38,9 @@ $(function () { ...@@ -38,7 +38,9 @@ $(function () {
}) })
test("should show menu when query entered", function () { test("should show menu when query entered", function () {
var $input = $('<input />').typeahead({ var $input = $('<input />')
.appendTo('body')
.typeahead({
source: ['aa', 'ab', 'ac'] source: ['aa', 'ab', 'ac']
}) })
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
...@@ -50,6 +52,7 @@ $(function () { ...@@ -50,6 +52,7 @@ $(function () {
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu') equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
equals(typeahead.$menu.find('.active').length, 1, 'one item is active') equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
...@@ -58,7 +61,7 @@ $(function () { ...@@ -58,7 +61,7 @@ $(function () {
source: function () { source: function () {
return ['aa', 'ab', 'ac'] return ['aa', 'ab', 'ac']
} }
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('a') $input.val('a')
...@@ -68,6 +71,7 @@ $(function () { ...@@ -68,6 +71,7 @@ $(function () {
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu') equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
equals(typeahead.$menu.find('.active').length, 1, 'one item is active') equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
...@@ -76,7 +80,7 @@ $(function () { ...@@ -76,7 +80,7 @@ $(function () {
source: function (query, process) { source: function (query, process) {
process(['aa', 'ab', 'ac']) process(['aa', 'ab', 'ac'])
} }
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('a') $input.val('a')
...@@ -86,13 +90,14 @@ $(function () { ...@@ -86,13 +90,14 @@ $(function () {
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu') equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
equals(typeahead.$menu.find('.active').length, 1, 'one item is active') equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
test("should not explode when regex chars are entered", function () { test("should not explode when regex chars are entered", function () {
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({
source: ['aa', 'ab', 'ac', 'mdo*', 'fat+'] source: ['aa', 'ab', 'ac', 'mdo*', 'fat+']
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('+') $input.val('+')
...@@ -102,6 +107,7 @@ $(function () { ...@@ -102,6 +107,7 @@ $(function () {
equals(typeahead.$menu.find('li').length, 1, 'has 1 item in menu') equals(typeahead.$menu.find('li').length, 1, 'has 1 item in menu')
equals(typeahead.$menu.find('.active').length, 1, 'one item is active') equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
...@@ -109,7 +115,7 @@ $(function () { ...@@ -109,7 +115,7 @@ $(function () {
stop() stop()
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({
source: ['aa', 'ab', 'ac'] source: ['aa', 'ab', 'ac']
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('a') $input.val('a')
...@@ -126,13 +132,14 @@ $(function () { ...@@ -126,13 +132,14 @@ $(function () {
start() start()
}, 200) }, 200)
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
test("should set next item when down arrow is pressed", function () { test("should set next item when down arrow is pressed", function () {
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({
source: ['aa', 'ab', 'ac'] source: ['aa', 'ab', 'ac']
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('a') $input.val('a')
...@@ -159,7 +166,6 @@ $(function () { ...@@ -159,7 +166,6 @@ $(function () {
ok(typeahead.$menu.find('li').first().next().hasClass('active'), "second item is active") ok(typeahead.$menu.find('li').first().next().hasClass('active'), "second item is active")
$input.trigger({ $input.trigger({
type: 'keydown' type: 'keydown'
, keyCode: 38 , keyCode: 38
...@@ -175,6 +181,7 @@ $(function () { ...@@ -175,6 +181,7 @@ $(function () {
ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active") ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active")
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
...@@ -182,7 +189,7 @@ $(function () { ...@@ -182,7 +189,7 @@ $(function () {
test("should set input value to selected item", function () { test("should set input value to selected item", function () {
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({
source: ['aa', 'ab', 'ac'] source: ['aa', 'ab', 'ac']
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
, changed = false , changed = false
...@@ -197,6 +204,7 @@ $(function () { ...@@ -197,6 +204,7 @@ $(function () {
ok(!typeahead.$menu.is(':visible'), 'the menu was hidden') ok(!typeahead.$menu.is(':visible'), 'the menu was hidden')
ok(changed, 'a change event was fired') ok(changed, 'a change event was fired')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
...@@ -204,7 +212,7 @@ $(function () { ...@@ -204,7 +212,7 @@ $(function () {
var $input = $('<input />').typeahead({ var $input = $('<input />').typeahead({
source: ['aaaa', 'aaab', 'aaac'], source: ['aaaa', 'aaab', 'aaac'],
minLength: 3 minLength: 3
}) }).appendTo('body')
, typeahead = $input.data('typeahead') , typeahead = $input.data('typeahead')
$input.val('aa') $input.val('aa')
...@@ -217,6 +225,7 @@ $(function () { ...@@ -217,6 +225,7 @@ $(function () {
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu') equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
$input.remove()
typeahead.$menu.remove() typeahead.$menu.remove()
}) })
}) })
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment