Skip to content

Commit 2bc6627

Browse files
committed
Autocomplete tests: Cleanup.
1 parent ba9bd20 commit 2bc6627

File tree

5 files changed

+405
-470
lines changed

5 files changed

+405
-470
lines changed
Lines changed: 29 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,44 @@
1-
<!DOCTYPE html>
1+
<!doctype html>
22
<html lang="en">
33
<head>
4-
<meta charset="UTF-8" />
4+
<meta charset="utf-8">
55
<title>jQuery UI Autocomplete Test Suite</title>
66

7-
<link type="text/css" href="../../../themes/base/jquery.ui.autocomplete.css" rel="stylesheet" />
8-
9-
<script type="text/javascript" src="../../../jquery-1.5.1.js"></script>
10-
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
11-
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
12-
<script type="text/javascript" src="../../../ui/jquery.ui.position.js"></script>
13-
<script type="text/javascript" src="../../../ui/jquery.ui.menu.js"></script>
14-
<script type="text/javascript" src="../../../ui/jquery.ui.autocomplete.js"></script>
15-
16-
<link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
17-
<script type="text/javascript" src="../../../external/qunit.js"></script>
18-
<script type="text/javascript" src="../../jquery.simulate.js"></script>
19-
<script type="text/javascript" src="../testsuite.js"></script>
20-
21-
<script type="text/javascript" src="autocomplete_core.js"></script>
22-
<script type="text/javascript" src="autocomplete_defaults.js"></script>
23-
<script type="text/javascript" src="autocomplete_events.js"></script>
24-
<script type="text/javascript" src="autocomplete_methods.js"></script>
25-
<script type="text/javascript" src="autocomplete_options.js"></script>
26-
27-
<script type="text/javascript" src="../swarminject.js"></script>
7+
<link rel="stylesheet" href="../../../themes/base/jquery.ui.autocomplete.css">
8+
9+
<script src="../../../jquery-1.5.1.js"></script>
10+
<script src="../../../ui/jquery.ui.core.js"></script>
11+
<script src="../../../ui/jquery.ui.widget.js"></script>
12+
<script src="../../../ui/jquery.ui.position.js"></script>
13+
<script src="../../../ui/jquery.ui.menu.js"></script>
14+
<script src="../../../ui/jquery.ui.autocomplete.js"></script>
15+
16+
<link rel="stylesheet" href="../../../external/qunit.css">
17+
<script src="../../../external/qunit.js"></script>
18+
<script src="../../jquery.simulate.js"></script>
19+
<script src="../testsuite.js"></script>
20+
21+
<script src="autocomplete_defaults.js"></script>
22+
<script src="autocomplete_core.js"></script>
23+
<script src="autocomplete_events.js"></script>
24+
<script src="autocomplete_methods.js"></script>
25+
<script src="autocomplete_options.js"></script>
26+
27+
<script src="../swarminject.js"></script>
2828
</head>
29-
<body id="body">
29+
<body>
3030

3131
<h1 id="qunit-header">jQuery UI Autocomplete Test Suite</h1>
3232
<h2 id="qunit-banner"></h2>
3333
<div id="qunit-testrunner-toolbar"></div>
3434
<h2 id="qunit-userAgent"></h2>
35-
<ol id="qunit-tests">
36-
</ol>
37-
35+
<ol id="qunit-tests"></ol>
3836
<div id="qunit-fixture">
3937

40-
<div id="ac-wrap1" class="ac-wrap"></div>
41-
<div id="ac-wrap2" class="ac-wrap"><input id="autocomplete" class="foo" /></div>
42-
<div id="autocomplete-contenteditable" contenteditable="" tabindex=0></div>
43-
</div>
38+
<div id="ac-wrap1" class="ac-wrap"></div>
39+
<div id="ac-wrap2" class="ac-wrap"><input id="autocomplete" class="foo" /></div>
40+
<div id="autocomplete-contenteditable" contenteditable="" tabindex=0></div>
4441

42+
</div>
4543
</body>
4644
</html>
Lines changed: 58 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,83 @@
1-
/*
2-
* autocomplete_core.js
3-
*/
1+
(function( $ ) {
42

3+
module( "autocomplete: core" );
54

6-
(function($) {
5+
asyncTest( "close-on-blur is properly delayed", function() {
6+
expect( 3 );
7+
var element = $( "#autocomplete" )
8+
.autocomplete({
9+
source: [ "java", "javascript" ]
10+
})
11+
.val( "ja" )
12+
.autocomplete( "search" ),
13+
menu = element.autocomplete( "widget" );
714

8-
module("autocomplete: core", {
9-
teardown: function() {
10-
$( ":ui-autocomplete" ).autocomplete( "destroy" );
11-
}
12-
});
13-
14-
test("close-on-blur is properly delayed", function() {
15-
var ac = $("#autocomplete").autocomplete({
16-
source: ["java", "javascript"]
17-
}).val("ja").autocomplete("search");
18-
same( $(".ui-menu:visible").length, 1 );
19-
ac.blur();
20-
same( $(".ui-menu:visible").length, 1 );
21-
stop();
15+
ok( menu.is( ":visible" ) );
16+
element.blur();
17+
ok( menu.is( ":visible" ) );
2218
setTimeout(function() {
23-
same( $(".ui-menu:visible").length, 0 );
19+
ok( menu.is( ":hidden") );
2420
start();
25-
}, 200);
21+
}, 200 );
2622
});
2723

28-
test("close-on-blur is cancelled when starting a search", function() {
29-
var ac = $("#autocomplete").autocomplete({
30-
source: ["java", "javascript"]
31-
}).val("ja").autocomplete("search");
32-
same( $(".ui-menu:visible").length, 1 );
33-
ac.blur();
34-
same( $(".ui-menu:visible").length, 1 );
35-
ac.autocomplete("search");
36-
stop();
24+
asyncTest( "close-on-blur is cancelled when starting a search", function() {
25+
expect( 3 );
26+
var element = $( "#autocomplete" )
27+
.autocomplete({
28+
source: [ "java", "javascript" ]
29+
})
30+
.val( "ja" )
31+
.autocomplete( "search" ),
32+
menu = element.autocomplete( "widget" );
33+
34+
ok( menu.is( ":visible" ) );
35+
element.blur();
36+
ok( menu.is( ":visible" ) );
37+
element.autocomplete( "search" );
3738
setTimeout(function() {
38-
same( $(".ui-menu:visible").length, 1 );
39+
ok( menu.is( ":visible" ) );
3940
start();
40-
}, 200);
41+
}, 200 );
4142
});
4243

4344
test( "prevent form submit on enter when menu is active", function() {
44-
var event;
45-
var ac = $( "#autocomplete" ).autocomplete({
46-
source: [ "java", "javascript" ]
47-
}).val( "ja" ).autocomplete( "search" );
48-
45+
expect( 2 );
46+
var event,
47+
element = $( "#autocomplete" )
48+
.autocomplete({
49+
source: [ "java", "javascript" ]
50+
})
51+
.val( "ja" )
52+
.autocomplete( "search" ),
53+
menu = element.autocomplete( "widget" );
54+
4955
event = $.Event( "keydown" );
5056
event.keyCode = $.ui.keyCode.DOWN;
51-
ac.trigger( event );
52-
same( $( ".ui-menu-item:has(.ui-state-focus)" ).length, 1, "menu item is active" );
53-
57+
element.trigger( event );
58+
deepEqual( menu.find( ".ui-menu-item:has(.ui-state-focus)" ).length, 1, "menu item is active" );
59+
5460
event = $.Event( "keydown" );
5561
event.keyCode = $.ui.keyCode.ENTER;
56-
ac.trigger( event );
62+
element.trigger( event );
5763
ok( event.isDefaultPrevented(), "default action is prevented" );
5864
});
5965

6066
test( "allow form submit on enter when menu is not active", function() {
61-
var event;
62-
var ac = $( "#autocomplete" ).autocomplete({
63-
autoFocus: false,
64-
source: [ "java", "javascript" ]
65-
}).val( "ja" ).autocomplete( "search" );
66-
67+
expect( 1 );
68+
var event,
69+
element = $( "#autocomplete" )
70+
.autocomplete({
71+
autoFocus: false,
72+
source: [ "java", "javascript" ]
73+
})
74+
.val( "ja" )
75+
.autocomplete( "search" );
76+
6777
event = $.Event( "keydown" );
6878
event.keyCode = $.ui.keyCode.ENTER;
69-
ac.trigger( event );
79+
element.trigger( event );
7080
ok( !event.isDefaultPrevented(), "default action is prevented" );
7181
});
7282

73-
})(jQuery);
83+
}( jQuery ) );

0 commit comments

Comments
 (0)