cmstyle 0.0.13 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/app/assets/images/cm_app.ico +0 -0
- data/lib/app/assets/images/cm_app.png +0 -0
- data/lib/app/assets/images/cm_app_30x30.png +0 -0
- data/lib/app/assets/stylesheets/application.css +9 -78
- data/lib/app/views/layouts/_footer.slim +12 -5
- data/lib/app/views/layouts/application.slim +27 -18
- data/lib/assets/images/glyphicons-halflings-white.png +0 -0
- data/lib/assets/images/glyphicons-halflings.png +0 -0
- data/lib/assets/javascripts/bootstrap.js +165 -31
- data/lib/assets/javascripts/prettify.js +0 -0
- data/lib/assets/stylesheets/bootstrap-responsive.css +5 -1
- data/lib/assets/stylesheets/bootstrap.css +335 -189
- data/lib/assets/stylesheets/prettify.css +0 -0
- data/lib/cmstyle.rb +4 -1
- data/lib/cmstyle/navigation_helpers.rb +165 -0
- data/lib/cmstyle/version.rb +1 -1
- metadata +6 -83
- data/lib/app/assets/images/novartis-micro.png +0 -0
- data/lib/app/assets/images/novartis-small.png +0 -0
- data/lib/app/views/cmstyle/_footer.slim +0 -5
- data/lib/app/views/cmstyle/_header.slim +0 -40
- data/lib/app/views/cmstyle/_modals.slim +0 -62
- data/lib/assets/images/8020select.png +0 -0
- data/lib/assets/images/adoptahydrant.png +0 -0
- data/lib/assets/images/apple-touch-icon-114-precomposed.png +0 -0
- data/lib/assets/images/apple-touch-icon-144-precomposed.png +0 -0
- data/lib/assets/images/apple-touch-icon-57-precomposed.png +0 -0
- data/lib/assets/images/apple-touch-icon-72-precomposed.png +0 -0
- data/lib/assets/images/bootstrap-example-carousel.png +0 -0
- data/lib/assets/images/bootstrap-example-fluid.jpg +0 -0
- data/lib/assets/images/bootstrap-example-hero.jpg +0 -0
- data/lib/assets/images/bootstrap-example-marketing-narrow.png +0 -0
- data/lib/assets/images/bootstrap-example-signin.png +0 -0
- data/lib/assets/images/bootstrap-example-starter.jpg +0 -0
- data/lib/assets/images/bootstrap-example-sticky-footer.png +0 -0
- data/lib/assets/images/bootstrap-mdo-sfmoma-01.jpg +0 -0
- data/lib/assets/images/bootstrap-mdo-sfmoma-02.jpg +0 -0
- data/lib/assets/images/bootstrap-mdo-sfmoma-03.jpg +0 -0
- data/lib/assets/images/breakingnews.png +0 -0
- data/lib/assets/images/browser-icon-chrome.png +0 -0
- data/lib/assets/images/browser-icon-firefox.png +0 -0
- data/lib/assets/images/browser-icon-safari.png +0 -0
- data/lib/assets/images/bs-docs-bootstrap-features.png +0 -0
- data/lib/assets/images/bs-docs-masthead-pattern.png +0 -0
- data/lib/assets/images/bs-docs-responsive-illustrations.png +0 -0
- data/lib/assets/images/bs-docs-twitter-github.png +0 -0
- data/lib/assets/images/fleetio.png +0 -0
- data/lib/assets/images/gathercontent.png +0 -0
- data/lib/assets/images/grid-baseline-20px.png +0 -0
- data/lib/assets/images/jshint.png +0 -0
- data/lib/assets/images/kippt.png +0 -0
- data/lib/assets/images/less-logo-large.png +0 -0
- data/lib/assets/images/logo.png +0 -0
- data/lib/assets/images/noise.png +0 -0
- data/lib/assets/images/responsive-illustrations.png +0 -0
- data/lib/assets/images/slide-01.jpg +0 -0
- data/lib/assets/images/slide-02.jpg +0 -0
- data/lib/assets/images/slide-03.jpg +0 -0
- data/lib/assets/images/small-hogan-icon.png +0 -0
- data/lib/assets/images/soundready.png +0 -0
- data/lib/assets/images/stripes.png +0 -0
- data/lib/assets/javascripts/application.js +0 -154
- data/lib/assets/javascripts/bootstrap-affix.js +0 -19
- data/lib/assets/javascripts/bootstrap-alert.js +0 -56
- data/lib/assets/javascripts/bootstrap-button.js +0 -96
- data/lib/assets/javascripts/bootstrap-carousel.js +0 -63
- data/lib/assets/javascripts/bootstrap-collapse.js +0 -88
- data/lib/assets/javascripts/bootstrap-dropdown.js +0 -145
- data/lib/assets/javascripts/bootstrap-modal.js +0 -114
- data/lib/assets/javascripts/bootstrap-phantom.js +0 -21
- data/lib/assets/javascripts/bootstrap-popover.js +0 -107
- data/lib/assets/javascripts/bootstrap-scrollspy.js +0 -31
- data/lib/assets/javascripts/bootstrap-tab.js +0 -80
- data/lib/assets/javascripts/bootstrap-tooltip.js +0 -153
- data/lib/assets/javascripts/bootstrap-transition.js +0 -13
- data/lib/assets/javascripts/bootstrap-typeahead.js +0 -199
- data/lib/assets/javascripts/compiler.js +0 -348
- data/lib/assets/javascripts/hogan-1.0.5.amd.js +0 -576
- data/lib/assets/javascripts/hogan-1.0.5.common.js +0 -576
- data/lib/assets/javascripts/hogan-1.0.5.js +0 -572
- data/lib/assets/javascripts/hogan-1.0.5.mustache.js +0 -619
- data/lib/assets/javascripts/hogan.js +0 -545
- data/lib/assets/javascripts/index.js +0 -848
- data/lib/assets/javascripts/jquery.js +0 -2
- data/lib/assets/javascripts/mustache.js +0 -90
- data/lib/assets/javascripts/phantom.js +0 -63
- data/lib/assets/javascripts/qunit.js +0 -1510
- data/lib/assets/javascripts/release.js +0 -74
- data/lib/assets/javascripts/server.js +0 -14
- data/lib/assets/javascripts/spec.js +0 -77
- data/lib/assets/javascripts/template-1.0.5.js +0 -233
- data/lib/assets/javascripts/template.js +0 -233
- data/lib/assets/javascripts/web_templates.js +0 -32
- data/lib/assets/stylesheets/css-tests.css +0 -139
- data/lib/assets/stylesheets/docs.css +0 -1015
- data/lib/assets/stylesheets/layout.css +0 -206
- data/lib/assets/stylesheets/qunit.css +0 -232
- data/lib/assets/stylesheets/skeleton.css +0 -236
@@ -1,31 +0,0 @@
|
|
1
|
-
$(function () {
|
2
|
-
|
3
|
-
module("bootstrap-scrollspy")
|
4
|
-
|
5
|
-
test("should be defined on jquery object", function () {
|
6
|
-
ok($(document.body).scrollspy, 'scrollspy method is defined')
|
7
|
-
})
|
8
|
-
|
9
|
-
test("should return element", function () {
|
10
|
-
ok($(document.body).scrollspy()[0] == document.body, 'document.body returned')
|
11
|
-
})
|
12
|
-
|
13
|
-
test("should switch active class on scroll", function () {
|
14
|
-
var sectionHTML = '<div id="masthead"></div>'
|
15
|
-
, $section = $(sectionHTML).append('#qunit-fixture')
|
16
|
-
, topbarHTML ='<div class="topbar">'
|
17
|
-
+ '<div class="topbar-inner">'
|
18
|
-
+ '<div class="container">'
|
19
|
-
+ '<h3><a href="#">Bootstrap</a></h3>'
|
20
|
-
+ '<ul class="nav">'
|
21
|
-
+ '<li><a href="#masthead">Overview</a></li>'
|
22
|
-
+ '</ul>'
|
23
|
-
+ '</div>'
|
24
|
-
+ '</div>'
|
25
|
-
+ '</div>'
|
26
|
-
, $topbar = $(topbarHTML).scrollspy()
|
27
|
-
|
28
|
-
ok($topbar.find('.active', true))
|
29
|
-
})
|
30
|
-
|
31
|
-
})
|
@@ -1,80 +0,0 @@
|
|
1
|
-
$(function () {
|
2
|
-
|
3
|
-
module("bootstrap-tabs")
|
4
|
-
|
5
|
-
test("should be defined on jquery object", function () {
|
6
|
-
ok($(document.body).tab, 'tabs method is defined')
|
7
|
-
})
|
8
|
-
|
9
|
-
test("should return element", function () {
|
10
|
-
ok($(document.body).tab()[0] == document.body, 'document.body returned')
|
11
|
-
})
|
12
|
-
|
13
|
-
test("should activate element by tab id", function () {
|
14
|
-
var tabsHTML =
|
15
|
-
'<ul class="tabs">'
|
16
|
-
+ '<li><a href="#home">Home</a></li>'
|
17
|
-
+ '<li><a href="#profile">Profile</a></li>'
|
18
|
-
+ '</ul>'
|
19
|
-
|
20
|
-
$('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")
|
21
|
-
|
22
|
-
$(tabsHTML).find('li:last a').tab('show')
|
23
|
-
equals($("#qunit-fixture").find('.active').attr('id'), "profile")
|
24
|
-
|
25
|
-
$(tabsHTML).find('li:first a').tab('show')
|
26
|
-
equals($("#qunit-fixture").find('.active').attr('id'), "home")
|
27
|
-
})
|
28
|
-
|
29
|
-
test("should activate element by tab id", function () {
|
30
|
-
var pillsHTML =
|
31
|
-
'<ul class="pills">'
|
32
|
-
+ '<li><a href="#home">Home</a></li>'
|
33
|
-
+ '<li><a href="#profile">Profile</a></li>'
|
34
|
-
+ '</ul>'
|
35
|
-
|
36
|
-
$('<ul><li id="home"></li><li id="profile"></li></ul>').appendTo("#qunit-fixture")
|
37
|
-
|
38
|
-
$(pillsHTML).find('li:last a').tab('show')
|
39
|
-
equals($("#qunit-fixture").find('.active').attr('id'), "profile")
|
40
|
-
|
41
|
-
$(pillsHTML).find('li:first a').tab('show')
|
42
|
-
equals($("#qunit-fixture").find('.active').attr('id'), "home")
|
43
|
-
})
|
44
|
-
|
45
|
-
|
46
|
-
test("should not fire closed when close is prevented", function () {
|
47
|
-
$.support.transition = false
|
48
|
-
stop();
|
49
|
-
$('<div class="tab"/>')
|
50
|
-
.bind('show', function (e) {
|
51
|
-
e.preventDefault();
|
52
|
-
ok(true);
|
53
|
-
start();
|
54
|
-
})
|
55
|
-
.bind('shown', function () {
|
56
|
-
ok(false);
|
57
|
-
})
|
58
|
-
.tab('show')
|
59
|
-
})
|
60
|
-
|
61
|
-
test("show and shown events should reference correct relatedTarget", function () {
|
62
|
-
var dropHTML =
|
63
|
-
'<ul class="drop">'
|
64
|
-
+ '<li class="dropdown"><a data-toggle="dropdown" href="#">1</a>'
|
65
|
-
+ '<ul class="dropdown-menu">'
|
66
|
-
+ '<li><a href="#1-1" data-toggle="tab">1-1</a></li>'
|
67
|
-
+ '<li><a href="#1-2" data-toggle="tab">1-2</a></li>'
|
68
|
-
+ '</ul>'
|
69
|
-
+ '</li>'
|
70
|
-
+ '</ul>'
|
71
|
-
|
72
|
-
$(dropHTML).find('ul>li:first a').tab('show').end()
|
73
|
-
.find('ul>li:last a').on('show', function(event){
|
74
|
-
equals(event.relatedTarget.hash, "#1-1")
|
75
|
-
}).on('shown', function(event){
|
76
|
-
equals(event.relatedTarget.hash, "#1-1")
|
77
|
-
}).tab('show')
|
78
|
-
})
|
79
|
-
|
80
|
-
})
|
@@ -1,153 +0,0 @@
|
|
1
|
-
$(function () {
|
2
|
-
|
3
|
-
module("bootstrap-tooltip")
|
4
|
-
|
5
|
-
test("should be defined on jquery object", function () {
|
6
|
-
var div = $("<div></div>")
|
7
|
-
ok(div.tooltip, 'popover method is defined')
|
8
|
-
})
|
9
|
-
|
10
|
-
test("should return element", function () {
|
11
|
-
var div = $("<div></div>")
|
12
|
-
ok(div.tooltip() == div, 'document.body returned')
|
13
|
-
})
|
14
|
-
|
15
|
-
test("should expose default settings", function () {
|
16
|
-
ok(!!$.fn.tooltip.defaults, 'defaults is defined')
|
17
|
-
})
|
18
|
-
|
19
|
-
test("should remove title attribute", function () {
|
20
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>').tooltip()
|
21
|
-
ok(!tooltip.attr('title'), 'title tag was removed')
|
22
|
-
})
|
23
|
-
|
24
|
-
test("should add data attribute for referencing original title", function () {
|
25
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>').tooltip()
|
26
|
-
equals(tooltip.attr('data-original-title'), 'Another tooltip', 'original title preserved in data attribute')
|
27
|
-
})
|
28
|
-
|
29
|
-
test("should place tooltips relative to placement option", function () {
|
30
|
-
$.support.transition = false
|
31
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
32
|
-
.appendTo('#qunit-fixture')
|
33
|
-
.tooltip({placement: 'bottom'})
|
34
|
-
.tooltip('show')
|
35
|
-
|
36
|
-
ok($(".tooltip").is('.fade.bottom.in'), 'has correct classes applied')
|
37
|
-
tooltip.tooltip('hide')
|
38
|
-
})
|
39
|
-
|
40
|
-
test("should allow html entities", function () {
|
41
|
-
$.support.transition = false
|
42
|
-
var tooltip = $('<a href="#" rel="tooltip" title="<b>@fat</b>"></a>')
|
43
|
-
.appendTo('#qunit-fixture')
|
44
|
-
.tooltip({html: true})
|
45
|
-
.tooltip('show')
|
46
|
-
|
47
|
-
ok($('.tooltip b').length, 'b tag was inserted')
|
48
|
-
tooltip.tooltip('hide')
|
49
|
-
ok(!$(".tooltip").length, 'tooltip removed')
|
50
|
-
})
|
51
|
-
|
52
|
-
test("should respect custom classes", function () {
|
53
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
54
|
-
.appendTo('#qunit-fixture')
|
55
|
-
.tooltip({ template: '<div class="tooltip some-class"><div class="tooltip-arrow"/><div class="tooltip-inner"/></div>'})
|
56
|
-
.tooltip('show')
|
57
|
-
|
58
|
-
ok($('.tooltip').hasClass('some-class'), 'custom class is present')
|
59
|
-
tooltip.tooltip('hide')
|
60
|
-
ok(!$(".tooltip").length, 'tooltip removed')
|
61
|
-
})
|
62
|
-
|
63
|
-
test("should not show tooltip if leave event occurs before delay expires", function () {
|
64
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
65
|
-
.appendTo('#qunit-fixture')
|
66
|
-
.tooltip({ delay: 200 })
|
67
|
-
|
68
|
-
stop()
|
69
|
-
|
70
|
-
tooltip.trigger('mouseenter')
|
71
|
-
|
72
|
-
setTimeout(function () {
|
73
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
74
|
-
tooltip.trigger('mouseout')
|
75
|
-
setTimeout(function () {
|
76
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
77
|
-
start()
|
78
|
-
}, 200)
|
79
|
-
}, 100)
|
80
|
-
})
|
81
|
-
|
82
|
-
test("should not show tooltip if leave event occurs before delay expires, even if hide delay is 0", function () {
|
83
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
84
|
-
.appendTo('#qunit-fixture')
|
85
|
-
.tooltip({ delay: { show: 200, hide: 0} })
|
86
|
-
|
87
|
-
stop()
|
88
|
-
|
89
|
-
tooltip.trigger('mouseenter')
|
90
|
-
|
91
|
-
setTimeout(function () {
|
92
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
93
|
-
tooltip.trigger('mouseout')
|
94
|
-
setTimeout(function () {
|
95
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
96
|
-
start()
|
97
|
-
}, 200)
|
98
|
-
}, 100)
|
99
|
-
})
|
100
|
-
|
101
|
-
test("should not show tooltip if leave event occurs before delay expires", function () {
|
102
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
103
|
-
.appendTo('#qunit-fixture')
|
104
|
-
.tooltip({ delay: 100 })
|
105
|
-
stop()
|
106
|
-
tooltip.trigger('mouseenter')
|
107
|
-
setTimeout(function () {
|
108
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
109
|
-
tooltip.trigger('mouseout')
|
110
|
-
setTimeout(function () {
|
111
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
112
|
-
start()
|
113
|
-
}, 100)
|
114
|
-
}, 50)
|
115
|
-
})
|
116
|
-
|
117
|
-
test("should show tooltip if leave event hasn't occured before delay expires", function () {
|
118
|
-
var tooltip = $('<a href="#" rel="tooltip" title="Another tooltip"></a>')
|
119
|
-
.appendTo('#qunit-fixture')
|
120
|
-
.tooltip({ delay: 150 })
|
121
|
-
stop()
|
122
|
-
tooltip.trigger('mouseenter')
|
123
|
-
setTimeout(function () {
|
124
|
-
ok(!$(".tooltip").is('.fade.in'), 'tooltip is not faded in')
|
125
|
-
}, 100)
|
126
|
-
setTimeout(function () {
|
127
|
-
ok($(".tooltip").is('.fade.in'), 'tooltip has faded in')
|
128
|
-
start()
|
129
|
-
}, 200)
|
130
|
-
})
|
131
|
-
|
132
|
-
test("should destroy tooltip", function () {
|
133
|
-
var tooltip = $('<div/>').tooltip().on('click.foo', function(){})
|
134
|
-
ok(tooltip.data('tooltip'), 'tooltip has data')
|
135
|
-
ok($._data(tooltip[0], 'events').mouseover && $._data(tooltip[0], 'events').mouseout, 'tooltip has hover event')
|
136
|
-
ok($._data(tooltip[0], 'events').click[0].namespace == 'foo', 'tooltip has extra click.foo event')
|
137
|
-
tooltip.tooltip('show')
|
138
|
-
tooltip.tooltip('destroy')
|
139
|
-
ok(!tooltip.hasClass('in'), 'tooltip is hidden')
|
140
|
-
ok(!$._data(tooltip[0], 'tooltip'), 'tooltip does not have data')
|
141
|
-
ok($._data(tooltip[0], 'events').click[0].namespace == 'foo', 'tooltip still has click.foo')
|
142
|
-
ok(!$._data(tooltip[0], 'events').mouseover && !$._data(tooltip[0], 'events').mouseout, 'tooltip does not have any events')
|
143
|
-
})
|
144
|
-
|
145
|
-
test("should show tooltip with delegate selector on click", function () {
|
146
|
-
var div = $('<div><a href="#" rel="tooltip" title="Another tooltip"></a></div>')
|
147
|
-
var tooltip = div.appendTo('#qunit-fixture')
|
148
|
-
.tooltip({ selector: 'a[rel=tooltip]',
|
149
|
-
trigger: 'click' })
|
150
|
-
div.find('a').trigger('click')
|
151
|
-
ok($(".tooltip").is('.fade.in'), 'tooltip is faded in')
|
152
|
-
})
|
153
|
-
})
|
@@ -1,13 +0,0 @@
|
|
1
|
-
$(function () {
|
2
|
-
|
3
|
-
module("bootstrap-transition")
|
4
|
-
|
5
|
-
test("should be defined on jquery support object", function () {
|
6
|
-
ok($.support.transition !== undefined, 'transition object is defined')
|
7
|
-
})
|
8
|
-
|
9
|
-
test("should provide an end object", function () {
|
10
|
-
ok($.support.transition ? $.support.transition.end : true, 'end string is defined')
|
11
|
-
})
|
12
|
-
|
13
|
-
})
|
@@ -1,199 +0,0 @@
|
|
1
|
-
$(function () {
|
2
|
-
|
3
|
-
module("bootstrap-typeahead")
|
4
|
-
|
5
|
-
test("should be defined on jquery object", function () {
|
6
|
-
ok($(document.body).typeahead, 'alert method is defined')
|
7
|
-
})
|
8
|
-
|
9
|
-
test("should return element", function () {
|
10
|
-
ok($(document.body).typeahead()[0] == document.body, 'document.body returned')
|
11
|
-
})
|
12
|
-
|
13
|
-
test("should listen to an input", function () {
|
14
|
-
var $input = $('<input />')
|
15
|
-
$input.typeahead()
|
16
|
-
ok($._data($input[0], 'events').blur, 'has a blur event')
|
17
|
-
ok($._data($input[0], 'events').keypress, 'has a keypress event')
|
18
|
-
ok($._data($input[0], 'events').keyup, 'has a keyup event')
|
19
|
-
})
|
20
|
-
|
21
|
-
test("should create a menu", function () {
|
22
|
-
var $input = $('<input />')
|
23
|
-
ok($input.typeahead().data('typeahead').$menu, 'has a menu')
|
24
|
-
})
|
25
|
-
|
26
|
-
test("should listen to the menu", function () {
|
27
|
-
var $input = $('<input />')
|
28
|
-
, $menu = $input.typeahead().data('typeahead').$menu
|
29
|
-
|
30
|
-
ok($._data($menu[0], 'events').mouseover, 'has a mouseover(pseudo: mouseenter)')
|
31
|
-
ok($._data($menu[0], 'events').click, 'has a click')
|
32
|
-
})
|
33
|
-
|
34
|
-
test("should show menu when query entered", function () {
|
35
|
-
var $input = $('<input />').typeahead({
|
36
|
-
source: ['aa', 'ab', 'ac']
|
37
|
-
})
|
38
|
-
, typeahead = $input.data('typeahead')
|
39
|
-
|
40
|
-
$input.val('a')
|
41
|
-
typeahead.lookup()
|
42
|
-
|
43
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
44
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
45
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
46
|
-
|
47
|
-
typeahead.$menu.remove()
|
48
|
-
})
|
49
|
-
|
50
|
-
test("should accept data source via synchronous function", function () {
|
51
|
-
var $input = $('<input />').typeahead({
|
52
|
-
source: function () {
|
53
|
-
return ['aa', 'ab', 'ac']
|
54
|
-
}
|
55
|
-
})
|
56
|
-
, typeahead = $input.data('typeahead')
|
57
|
-
|
58
|
-
$input.val('a')
|
59
|
-
typeahead.lookup()
|
60
|
-
|
61
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
62
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
63
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
64
|
-
|
65
|
-
typeahead.$menu.remove()
|
66
|
-
})
|
67
|
-
|
68
|
-
test("should accept data source via asynchronous function", function () {
|
69
|
-
var $input = $('<input />').typeahead({
|
70
|
-
source: function (query, process) {
|
71
|
-
process(['aa', 'ab', 'ac'])
|
72
|
-
}
|
73
|
-
})
|
74
|
-
, typeahead = $input.data('typeahead')
|
75
|
-
|
76
|
-
$input.val('a')
|
77
|
-
typeahead.lookup()
|
78
|
-
|
79
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
80
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
81
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
82
|
-
|
83
|
-
typeahead.$menu.remove()
|
84
|
-
})
|
85
|
-
|
86
|
-
test("should not explode when regex chars are entered", function () {
|
87
|
-
var $input = $('<input />').typeahead({
|
88
|
-
source: ['aa', 'ab', 'ac', 'mdo*', 'fat+']
|
89
|
-
})
|
90
|
-
, typeahead = $input.data('typeahead')
|
91
|
-
|
92
|
-
$input.val('+')
|
93
|
-
typeahead.lookup()
|
94
|
-
|
95
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
96
|
-
equals(typeahead.$menu.find('li').length, 1, 'has 1 item in menu')
|
97
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
98
|
-
|
99
|
-
typeahead.$menu.remove()
|
100
|
-
})
|
101
|
-
|
102
|
-
test("should hide menu when query entered", function () {
|
103
|
-
stop()
|
104
|
-
var $input = $('<input />').typeahead({
|
105
|
-
source: ['aa', 'ab', 'ac']
|
106
|
-
})
|
107
|
-
, typeahead = $input.data('typeahead')
|
108
|
-
|
109
|
-
$input.val('a')
|
110
|
-
typeahead.lookup()
|
111
|
-
|
112
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
113
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
114
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
115
|
-
|
116
|
-
$input.blur()
|
117
|
-
|
118
|
-
setTimeout(function () {
|
119
|
-
ok(!typeahead.$menu.is(":visible"), "typeahead is no longer visible")
|
120
|
-
start()
|
121
|
-
}, 200)
|
122
|
-
|
123
|
-
typeahead.$menu.remove()
|
124
|
-
})
|
125
|
-
|
126
|
-
test("should set next item when down arrow is pressed", function () {
|
127
|
-
var $input = $('<input />').typeahead({
|
128
|
-
source: ['aa', 'ab', 'ac']
|
129
|
-
})
|
130
|
-
, typeahead = $input.data('typeahead')
|
131
|
-
|
132
|
-
$input.val('a')
|
133
|
-
typeahead.lookup()
|
134
|
-
|
135
|
-
ok(typeahead.$menu.is(":visible"), 'typeahead is visible')
|
136
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
137
|
-
equals(typeahead.$menu.find('.active').length, 1, 'one item is active')
|
138
|
-
ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active")
|
139
|
-
|
140
|
-
$input.trigger({
|
141
|
-
type: 'keydown'
|
142
|
-
, keyCode: 40
|
143
|
-
})
|
144
|
-
|
145
|
-
ok(typeahead.$menu.find('li').first().next().hasClass('active'), "second item is active")
|
146
|
-
|
147
|
-
|
148
|
-
$input.trigger({
|
149
|
-
type: 'keydown'
|
150
|
-
, keyCode: 38
|
151
|
-
})
|
152
|
-
|
153
|
-
ok(typeahead.$menu.find('li').first().hasClass('active'), "first item is active")
|
154
|
-
|
155
|
-
typeahead.$menu.remove()
|
156
|
-
})
|
157
|
-
|
158
|
-
|
159
|
-
test("should set input value to selected item", function () {
|
160
|
-
var $input = $('<input />').typeahead({
|
161
|
-
source: ['aa', 'ab', 'ac']
|
162
|
-
})
|
163
|
-
, typeahead = $input.data('typeahead')
|
164
|
-
, changed = false
|
165
|
-
|
166
|
-
$input.val('a')
|
167
|
-
typeahead.lookup()
|
168
|
-
|
169
|
-
$input.change(function() { changed = true });
|
170
|
-
|
171
|
-
$(typeahead.$menu.find('li')[2]).mouseover().click()
|
172
|
-
|
173
|
-
equals($input.val(), 'ac', 'input value was correctly set')
|
174
|
-
ok(!typeahead.$menu.is(':visible'), 'the menu was hidden')
|
175
|
-
ok(changed, 'a change event was fired')
|
176
|
-
|
177
|
-
typeahead.$menu.remove()
|
178
|
-
})
|
179
|
-
|
180
|
-
test("should start querying when minLength is met", function () {
|
181
|
-
var $input = $('<input />').typeahead({
|
182
|
-
source: ['aaaa', 'aaab', 'aaac'],
|
183
|
-
minLength: 3
|
184
|
-
})
|
185
|
-
, typeahead = $input.data('typeahead')
|
186
|
-
|
187
|
-
$input.val('aa')
|
188
|
-
typeahead.lookup()
|
189
|
-
|
190
|
-
equals(typeahead.$menu.find('li').length, 0, 'has 0 items in menu')
|
191
|
-
|
192
|
-
$input.val('aaa')
|
193
|
-
typeahead.lookup()
|
194
|
-
|
195
|
-
equals(typeahead.$menu.find('li').length, 3, 'has 3 items in menu')
|
196
|
-
|
197
|
-
typeahead.$menu.remove()
|
198
|
-
})
|
199
|
-
})
|