aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/autocomplete/autocomplete_events.js
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2010-01-14 17:23:11 +0000
committerScott González <scott.gonzalez@gmail.com>2010-01-14 17:23:11 +0000
commit6024fdf2564b274af2f2d306f420e44a2c88d7b1 (patch)
treee2bace3eacb81bd9732226fc19dfd5089d19fe3f /tests/unit/autocomplete/autocomplete_events.js
parent7f5fe2f2f14406a0c028e92ab6203ae0b72a1e96 (diff)
downloadjquery-ui-6024fdf2564b274af2f2d306f420e44a2c88d7b1.tar.gz
jquery-ui-6024fdf2564b274af2f2d306f420e44a2c88d7b1.zip
Copied autocomplete from dev branch.
Diffstat (limited to 'tests/unit/autocomplete/autocomplete_events.js')
-rw-r--r--tests/unit/autocomplete/autocomplete_events.js120
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/unit/autocomplete/autocomplete_events.js b/tests/unit/autocomplete/autocomplete_events.js
new file mode 100644
index 000000000..09dd2ef11
--- /dev/null
+++ b/tests/unit/autocomplete/autocomplete_events.js
@@ -0,0 +1,120 @@
+/*
+ * autocomplete_events.js
+ */
+(function($) {
+
+module("autocomplete: events");
+
+var data = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "pearl"];
+
+test("all events", function() {
+ expect(11);
+ var ac = $("#autocomplete").autocomplete({
+ delay: 0,
+ source: data,
+ search: function(event) {
+ same(event.type, "autocompletesearch");
+ },
+ open: function(event) {
+ same(event.type, "autocompleteopen");
+ },
+ focus: function(event, ui) {
+ same(event.type, "autocompletefocus");
+ same(ui.item, {label:"java", value:"java"});
+ },
+ close: function(event) {
+ same(event.type, "autocompleteclose");
+ same( $(".ui-menu").length, 1 );
+ },
+ select: function(event, ui) {
+ same(event.type, "autocompleteselect");
+ same(ui.item, {label:"java", value:"java"});
+ },
+ change: function(event) {
+ same(event.type, "autocompletechange");
+ same( $(".ui-menu").length, 0 );
+ }
+ });
+ stop();
+ ac.val("ja").keydown();
+ setTimeout(function() {
+ same( $(".ui-menu").length, 1 );
+ ac.simulate("keydown", { keyCode: $.ui.keyCode.DOWN });
+ ac.simulate("keydown", { keyCode: $.ui.keyCode.ENTER });
+ start();
+ }, 50);
+});
+
+test("cancel search", function() {
+ expect(6);
+ var first = true;
+ var ac = $("#autocomplete").autocomplete({
+ delay: 0,
+ source: data,
+ search: function() {
+ if (first) {
+ same( ac.val(), "ja" );
+ first = false;
+ return false;
+ }
+ same( ac.val(), "java" );
+ },
+ open: function() {
+ ok(true);
+ }
+ });
+ stop();
+ ac.val("ja").keydown();
+ setTimeout(function() {
+ same( $(".ui-menu").length, 0 );
+ ac.val("java").keydown();
+ setTimeout(function() {
+ same( $(".ui-menu").length, 1 );
+ same( $(".ui-menu .ui-menu-item").length, 2 );
+ start();
+ }, 50);
+ }, 50);
+});
+
+test("cancel focus", function() {
+ expect(1);
+ var customVal = 'custom value';
+ var ac = $("#autocomplete").autocomplete({
+ delay: 0,
+ source: data,
+ focus: function(event, ui) {
+ $(this).val(customVal);
+ return false;
+ }
+ });
+ stop();
+ ac.val("ja").keydown();
+ setTimeout(function() {
+ ac.simulate("keydown", { keyCode: $.ui.keyCode.DOWN });
+ same( ac.val(), customVal );
+ start();
+ }, 50);
+});
+
+test("cancel select", function() {
+ expect(1);
+ var customVal = 'custom value';
+ var ac = $("#autocomplete").autocomplete({
+ delay: 0,
+ source: data,
+ select: function(event, ui) {
+ $(this).val(customVal);
+ return false;
+ }
+ });
+ stop();
+ ac.val("ja").keydown();
+ setTimeout(function() {
+ ac.simulate("keydown", { keyCode: $.ui.keyCode.DOWN });
+ ac.simulate("keydown", { keyCode: $.ui.keyCode.ENTER });
+ same( ac.val(), customVal );
+ start();
+ }, 50);
+});
+
+})(jQuery);