diff options
Diffstat (limited to 'apps/it/static/js/ui/tests/unit/autocomplete/autocomplete_options.js')
-rw-r--r-- | apps/it/static/js/ui/tests/unit/autocomplete/autocomplete_options.js | 278 |
1 files changed, 0 insertions, 278 deletions
diff --git a/apps/it/static/js/ui/tests/unit/autocomplete/autocomplete_options.js b/apps/it/static/js/ui/tests/unit/autocomplete/autocomplete_options.js deleted file mode 100644 index 0a2e07b..0000000 --- a/apps/it/static/js/ui/tests/unit/autocomplete/autocomplete_options.js +++ /dev/null @@ -1,278 +0,0 @@ -(function( $ ) { - -module( "autocomplete: options" ); - -var data = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", - "python", "c", "scala", "groovy", "haskell", "perl" ]; - -test( "appendTo", function() { - expect( 8 ); - var detached = $( "<div>" ), - element = $( "#autocomplete" ).autocomplete(); - equal( element.autocomplete( "widget" ).parent()[ 0 ], document.body, - "defaults to body" ); - element.autocomplete( "destroy" ); - - element.autocomplete({ - appendTo: ".autocomplete-wrap" - }); - equal( element.autocomplete( "widget" ).parent()[ 0 ], - $( "#autocomplete-wrap1" )[ 0 ], "first found element" ); - equal( $( "#autocomplete-wrap2 .ui-autocomplete" ).length, 0, - "only appends to one element" ); - element.autocomplete( "destroy" ); - - $( "#autocomplete-wrap2" ).addClass( "ui-front" ); - element.autocomplete(); - equal( element.autocomplete( "widget" ).parent()[ 0 ], - $( "#autocomplete-wrap2" )[ 0 ], "null, inside .ui-front" ); - element.autocomplete( "destroy" ); - $( "#autocomlete-wrap2" ).removeClass( "ui-front" ); - - element.autocomplete().autocomplete( "option", "appendTo", "#autocomplete-wrap1" ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], - $( "#autocomplete-wrap1" )[ 0 ], "modified after init" ); - element.autocomplete( "destroy" ); - - element.autocomplete({ - appendTo: detached - }); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], - "detached jQuery object" ); - element.autocomplete( "destroy" ); - - element.autocomplete({ - appendTo: detached[ 0 ] - }); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], - "detached DOM element" ); - element.autocomplete( "destroy" ); - - element.autocomplete().autocomplete( "option", "appendTo", detached ); - equal( element.autocomplete( "widget" ).parent()[ 0 ], detached[ 0 ], - "detached DOM element via option()" ); - element.autocomplete( "destroy" ); -}); - -function autoFocusTest( afValue, focusedLength ) { - var element = $( "#autocomplete" ).autocomplete({ - autoFocus: afValue, - delay: 0, - source: data, - open: function() { - equal( - element.autocomplete( "widget" ) - .children( ".ui-menu-item:first" ) - .find( ".ui-state-focus" ) - .length, - focusedLength, - "first item is " + (afValue ? "" : "not") + " auto focused" ); - start(); - } - }); - element.val( "ja" ).keydown(); - stop(); -} - -test( "autoFocus: false", function() { - expect( 1 ); - autoFocusTest( false, 0 ); -}); - -test( "autoFocus: true", function() { - expect( 1 ); - autoFocusTest( true, 1 ); -}); - -asyncTest( "delay", function() { - expect( 2 ); - var element = $( "#autocomplete" ).autocomplete({ - source: data, - delay: 50 - }), - menu = element.autocomplete( "widget" ); - element.val( "ja" ).keydown(); - - ok( menu.is( ":hidden" ), "menu is closed immediately after search" ); - - setTimeout(function() { - ok( menu.is( ":visible" ), "menu is open after delay" ); - start(); - }, 100 ); -}); - -asyncTest( "disabled", function() { - expect( 2 ); - var element = $( "#autocomplete" ).autocomplete({ - source: data, - delay: 0, - disabled: true - }), - menu = element.autocomplete( "widget" ); - element.val( "ja" ).keydown(); - - ok( menu.is( ":hidden" ) ); - - setTimeout(function() { - ok( menu.is( ":hidden" ) ); - start(); - }, 50 ); -}); - -test( "minLength", function() { - expect( 2 ); - var element = $( "#autocomplete" ).autocomplete({ - source: data - }), - menu = element.autocomplete( "widget" ); - element.autocomplete( "search", "" ); - ok( menu.is( ":hidden" ), "blank not enough for minLength: 1" ); - - element.autocomplete( "option", "minLength", 0 ); - element.autocomplete( "search", "" ); - ok( menu.is( ":visible" ), "blank enough for minLength: 0" ); -}); - -asyncTest( "minLength, exceed then drop below", function() { - expect( 4 ); - var element = $( "#autocomplete" ).autocomplete({ - minLength: 2, - source: function( req, res ) { - equal( req.term, "12", "correct search term" ); - setTimeout(function() { - res([ "item" ]); - }, 1 ); - } - }), - menu = element.autocomplete( "widget" ); - - ok( menu.is( ":hidden" ), "menu is hidden before first search" ); - element.autocomplete( "search", "12" ); - - ok( menu.is( ":hidden" ), "menu is hidden before second search" ); - element.autocomplete( "search", "1" ); - - setTimeout(function() { - ok( menu.is( ":hidden" ), "menu is hidden after searches" ); - start(); - }, 50 ); -}); - -test( "minLength, exceed then drop below then exceed", function() { - expect( 3 ); - var _res = [], - element = $( "#autocomplete" ).autocomplete({ - minLength: 2, - source: function( req, res ) { - _res.push( res ); - } - }), - menu = element.autocomplete( "widget" ); - - // trigger a valid search - ok( menu.is( ":hidden" ), "menu is hidden before first search" ); - element.autocomplete( "search", "12" ); - - // trigger a search below the minLength, to turn on cancelSearch flag - ok( menu.is( ":hidden" ), "menu is hidden before second search" ); - element.autocomplete( "search", "1" ); - - // trigger a valid search - element.autocomplete( "search", "13" ); - // react as if the first search was cancelled (default ajax behavior) - _res[ 0 ]([]); - // react to second search - _res[ 1 ]([ "13" ]); - - ok( menu.is( ":visible" ), "menu is visible after searches" ); -}); - -test( "source, local string array", function() { - expect( 1 ); - var element = $( "#autocomplete" ).autocomplete({ - source: data - }), - menu = element.autocomplete( "widget" ); - element.val( "ja" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); -}); - -function sourceTest( source, async ) { - var element = $( "#autocomplete" ).autocomplete({ - source: source - }), - menu = element.autocomplete( "widget" ); - function result() { - equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); - element.autocomplete( "destroy" ); - if ( async ) { - start(); - } - } - if ( async ) { - stop(); - $( document ).one( "ajaxStop", result ); - } - element.val( "ja" ).autocomplete( "search" ); - if ( !async ) { - result(); - } -} - -test( "source, local object array, only label property", function() { - expect( 1 ); - sourceTest([ - { label: "java" }, - { label: "php" }, - { label: "coldfusion" }, - { label: "javascript" } - ]); -}); - -test( "source, local object array, only value property", function() { - expect( 1 ); - sourceTest([ - { value: "java" }, - { value: "php" }, - { value: "coldfusion" }, - { value: "javascript" } - ]); -}); - -test( "source, url string with remote json string array", function() { - expect( 1 ); - sourceTest( "remote_string_array.txt", true ); -}); - -test( "source, url string with remote json object array, only value properties", function() { - expect( 1 ); - sourceTest( "remote_object_array_values.txt", true ); -}); - -test( "source, url string with remote json object array, only label properties", function() { - expect( 1 ); - sourceTest( "remote_object_array_labels.txt", true ); -}); - -test( "source, custom", function() { - expect( 2 ); - sourceTest(function( request, response ) { - equal( request.term, "ja" ); - response( ["java", "javascript"] ); - }); -}); - -test( "source, update after init", function() { - expect( 2 ); - var element = $( "#autocomplete" ).autocomplete({ - source: [ "java", "javascript", "haskell" ] - }), - menu = element.autocomplete( "widget" ); - element.val( "ja" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "javajavascript" ); - element.autocomplete( "option", "source", [ "php", "asp" ] ); - element.val( "ph" ).autocomplete( "search" ); - equal( menu.find( ".ui-menu-item" ).text(), "php" ); -}); - -}( jQuery ) ); |