/[projects]/misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/autocomplete/autocomplete_events.js
ViewVC logotype

Contents of /misc/horsensspejder-web/jquery/jquery-ui-1.10.3/tests/unit/autocomplete/autocomplete_events.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2125 - (show annotations) (download) (as text)
Wed Mar 12 19:30:05 2014 UTC (10 years, 2 months ago) by torben
File MIME type: application/javascript
File size: 4987 byte(s)
initial import
1 (function( $ ) {
2
3 module( "autocomplete: events" );
4
5 var data = [ "Clojure", "COBOL", "ColdFusion", "Java", "JavaScript", "Scala", "Scheme" ];
6
7 $.each([
8 {
9 type: "input",
10 selector: "#autocomplete",
11 valueMethod: "val"
12 },
13 {
14 type: "textarea",
15 selector: "#autocomplete-textarea",
16 valueMethod: "val"
17 },
18 {
19 type: "contenteditable",
20 selector: "#autocomplete-contenteditable",
21 valueMethod: "text"
22 }
23 ], function( i, settings ) {
24 asyncTest( "all events - " + settings.type, function() {
25 expect( 13 );
26 var element = $( settings.selector )
27 .autocomplete({
28 autoFocus: false,
29 delay: 0,
30 source: data,
31 search: function( event ) {
32 equal( event.originalEvent.type, "keydown", "search originalEvent" );
33 },
34 response: function( event, ui ) {
35 deepEqual( ui.content, [
36 { label: "Clojure", value: "Clojure" },
37 { label: "Java", value: "Java" },
38 { label: "JavaScript", value: "JavaScript" }
39 ], "response ui.content" );
40 ui.content.splice( 0, 1 );
41 },
42 open: function() {
43 ok( menu.is( ":visible" ), "menu open on open" );
44 },
45 focus: function( event, ui ) {
46 equal( event.originalEvent.type, "menufocus", "focus originalEvent" );
47 deepEqual( ui.item, { label: "Java", value: "Java" }, "focus ui.item" );
48 },
49 close: function( event ) {
50 equal( event.originalEvent.type, "menuselect", "close originalEvent" );
51 ok( menu.is( ":hidden" ), "menu closed on close" );
52 },
53 select: function( event, ui ) {
54 equal( event.originalEvent.type, "menuselect", "select originalEvent" );
55 deepEqual( ui.item, { label: "Java", value: "Java" }, "select ui.item" );
56 },
57 change: function( event, ui ) {
58 equal( event.originalEvent.type, "blur", "change originalEvent" );
59 deepEqual( ui.item, { label: "Java", value: "Java" }, "change ui.item" );
60 ok( menu.is( ":hidden" ), "menu closed on change" );
61 start();
62 }
63 }),
64 menu = element.autocomplete( "widget" );
65
66 element.simulate( "focus" )[ settings.valueMethod ]( "j" ).keydown();
67 setTimeout(function() {
68 ok( menu.is( ":visible" ), "menu is visible after delay" );
69 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
70 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
71 // blur must be async for IE to handle it properly
72 setTimeout(function() {
73 element.simulate( "blur" );
74 }, 1 );
75 }, 50 );
76 });
77 });
78
79 asyncTest( "change without selection", function() {
80 expect( 1 );
81 var element = $( "#autocomplete" ).autocomplete({
82 delay: 0,
83 source: data,
84 change: function( event, ui ) {
85 strictEqual( ui.item, null );
86 start();
87 }
88 });
89 element.triggerHandler( "focus" );
90 element.val( "ja" ).triggerHandler( "blur" );
91 });
92
93 asyncTest( "cancel search", function() {
94 expect( 6 );
95 var first = true,
96 element = $( "#autocomplete" ).autocomplete({
97 delay: 0,
98 source: data,
99 search: function() {
100 if ( first ) {
101 equal( element.val(), "ja", "val on first search" );
102 first = false;
103 return false;
104 }
105 equal( element.val(), "java", "val on second search" );
106 },
107 open: function() {
108 ok( true, "menu opened" );
109 }
110 }),
111 menu = element.autocomplete( "widget" );
112 element.val( "ja" ).keydown();
113 setTimeout(function() {
114 ok( menu.is( ":hidden" ), "menu is hidden after first search" );
115 element.val( "java" ).keydown();
116 setTimeout(function() {
117 ok( menu.is( ":visible" ), "menu is visible after second search" );
118 equal( menu.find( ".ui-menu-item" ).length, 2, "# of menu items" );
119 start();
120 }, 50 );
121 }, 50 );
122 });
123
124 asyncTest( "cancel focus", function() {
125 expect( 1 );
126 var customVal = "custom value",
127 element = $( "#autocomplete" ).autocomplete({
128 delay: 0,
129 source: data,
130 focus: function() {
131 $( this ).val( customVal );
132 return false;
133 }
134 });
135 element.val( "ja" ).keydown();
136 setTimeout(function() {
137 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
138 equal( element.val(), customVal );
139 start();
140 }, 50 );
141 });
142
143 asyncTest( "cancel select", function() {
144 expect( 1 );
145 var customVal = "custom value",
146 element = $( "#autocomplete" ).autocomplete({
147 delay: 0,
148 source: data,
149 select: function() {
150 $( this ).val( customVal );
151 return false;
152 }
153 });
154 element.val( "ja" ).keydown();
155 setTimeout(function() {
156 element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
157 element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } );
158 equal( element.val(), customVal );
159 start();
160 }, 50 );
161 });
162
163 asyncTest( "blur during remote search", function() {
164 expect( 1 );
165 var ac = $( "#autocomplete" ).autocomplete({
166 delay: 0,
167 source: function( request, response ) {
168 ok( true, "trigger request" );
169 ac.simulate( "blur" );
170 setTimeout(function() {
171 response([ "result" ]);
172 start();
173 }, 100 );
174 },
175 open: function() {
176 ok( false, "opened after a blur" );
177 }
178 });
179 ac.val( "ro" ).keydown();
180 });
181
182 }( jQuery ) );

  ViewVC Help
Powered by ViewVC 1.1.20