diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | src/attributes.js | 2 | ||||
-rw-r--r-- | src/core.js | 49 | ||||
-rw-r--r-- | src/css.js | 35 | ||||
-rw-r--r-- | src/effects.js | 17 | ||||
-rw-r--r-- | src/event.js | 23 | ||||
-rw-r--r-- | src/manipulation.js | 7 | ||||
-rw-r--r-- | src/offset.js | 52 | ||||
-rw-r--r-- | src/queue.js | 95 | ||||
-rw-r--r-- | src/support.js | 9 | ||||
-rw-r--r-- | src/traversing.js | 11 | ||||
-rw-r--r-- | test/data/testsuite.css | 2 | ||||
-rw-r--r-- | test/index.html | 5 | ||||
-rw-r--r-- | test/unit/ajax.js | 254 | ||||
-rw-r--r-- | test/unit/attributes.js | 364 | ||||
-rw-r--r-- | test/unit/core.js | 147 | ||||
-rw-r--r-- | test/unit/css.js | 137 | ||||
-rw-r--r-- | test/unit/data.js | 46 | ||||
-rw-r--r-- | test/unit/dimensions.js | 12 | ||||
-rw-r--r-- | test/unit/effects.js | 98 | ||||
-rw-r--r-- | test/unit/event.js | 183 | ||||
-rw-r--r-- | test/unit/manipulation.js | 488 | ||||
-rw-r--r-- | test/unit/offset.js | 252 | ||||
-rw-r--r-- | test/unit/queue.js | 133 | ||||
-rw-r--r-- | test/unit/traversing.js | 233 |
26 files changed, 1448 insertions, 1216 deletions
@@ -111,7 +111,7 @@ update_submodules: # update the submodules to the latest at the most logical branch pull_submodules: - @@git submodule foreach "git pull origin \$$(git branch --no-color --contains \$$(git rev-parse HEAD) | grep -v \( | head -1)" + @@git submodule foreach "git pull \$$(git config remote.origin.url)" @@git submodule summary pull: pull_submodules @@ -63,7 +63,7 @@ As the source code is handled by the version control system Git, it's useful to ### Submodules ### -The repository uses submodules, which normally are handles directly by the Makefile, but sometimes you want to +The repository uses submodules, which normally are handled directly by the Makefile, but sometimes you want to be able to work with them manually. Following are the steps to manually get the submodules: @@ -86,7 +86,7 @@ If you want to work inside a submodule, it is possible, but first you need to ch 1. `cd src/sizzle` 2. `git checkout master` -After you've commited your changes to the submodule, you'll update the jquery project to point to the new commit, +After you've committed your changes to the submodule, you'll update the jquery project to point to the new commit, but remember to push the submodule changes before pushing the new jquery commit: 1. `cd src/sizzle` @@ -99,12 +99,12 @@ The makefile has some targets to simplify submodule handling: #### `make update_submodules` #### -checks out the commit pointed to byu jquery, but merges your local changes, if any. This target is executed +checks out the commit pointed to by jquery, but merges your local changes, if any. This target is executed when you are doing a normal `make`. #### `make pull_submodules` #### -updates the content of the submoduels to what is probably the latest upstream code +updates the content of the submodules to what is probably the latest upstream code. #### `make pull` #### diff --git a/src/attributes.js b/src/attributes.js index c34cd6193..5ccbf2cde 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -479,7 +479,7 @@ jQuery.each([ "selected", "checked", "readOnly", "disabled" ], function( i, name // Some attributes require a special call on IE if ( !jQuery.support.hrefNormalized ) { - jQuery.each([ "href", "src", "width", "height", "list" ], function( i, name ) { + jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { get: function( elem ) { var ret = elem.getAttribute( name, 2 ); diff --git a/src/core.js b/src/core.js index d3641365b..89bbde5c0 100644 --- a/src/core.js +++ b/src/core.js @@ -358,9 +358,11 @@ jQuery.extend = jQuery.fn.extend = function() { jQuery.extend({ noConflict: function( deep ) { - window.$ = _$; + if ( window.$ === jQuery ) { + window.$ = _$; + } - if ( deep ) { + if ( deep && window.jQuery === jQuery ) { window.jQuery = _jQuery; } @@ -436,7 +438,7 @@ jQuery.extend({ } else if ( document.attachEvent ) { // ensure firing before onload, // maybe late but safe also for iframes - document.attachEvent("onreadystatechange", DOMContentLoaded); + document.attachEvent( "onreadystatechange", DOMContentLoaded ); // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); @@ -587,7 +589,7 @@ jQuery.extend({ each: function( object, callback, args ) { var name, i = 0, length = object.length, - isObj = length === undefined || jQuery.isFunction(object); + isObj = length === undefined || jQuery.isFunction( object ); if ( args ) { if ( isObj ) { @@ -613,8 +615,11 @@ jQuery.extend({ } } } else { - for ( var value = object[0]; - i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {} + for ( ; i < length; ) { + if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) { + break; + } + } } } @@ -645,7 +650,7 @@ jQuery.extend({ // The extra typeof function check is to prevent crashes // in Safari 2 (See: #3039) // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930 - var type = jQuery.type(array); + var type = jQuery.type( array ); if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) { push.call( ret, array ); @@ -841,24 +846,24 @@ jQuery.extend({ }, sub: function() { - function jQuerySubclass( selector, context ) { - return new jQuerySubclass.fn.init( selector, context ); - } - jQuery.extend( true, jQuerySubclass, this ); - jQuerySubclass.superclass = this; - jQuerySubclass.fn = jQuerySubclass.prototype = this(); - jQuerySubclass.fn.constructor = jQuerySubclass; - jQuerySubclass.subclass = this.subclass; - jQuerySubclass.fn.init = function init( selector, context ) { - if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) { - context = jQuerySubclass(context); + function jQuerySub( selector, context ) { + return new jQuerySub.fn.init( selector, context ); + } + jQuery.extend( true, jQuerySub, this ); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + jQuerySub.fn.init = function init( selector, context ) { + if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) { + context = jQuerySub( context ); } - return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass ); + return jQuery.fn.init.call( this, selector, context, rootjQuerySub ); }; - jQuerySubclass.fn.init.prototype = jQuerySubclass.fn; - var rootjQuerySubclass = jQuerySubclass(document); - return jQuerySubclass; + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; }, browser: {} diff --git a/src/css.js b/src/css.js index 65ec20f57..c5c01ecac 100644 --- a/src/css.js +++ b/src/css.js @@ -93,7 +93,7 @@ jQuery.extend({ // convert relative number strings (+= or -=) to relative numbers. #7345 if ( type === "string" && rrelNum.test( value ) ) { - value = +value.replace( rrelNumFilter, '' ) + parseFloat( jQuery.css( elem, name ) ); + value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) ); } // If a number was passed in, add 'px' to the (except for certain CSS properties) @@ -122,11 +122,17 @@ jQuery.extend({ }, css: function( elem, name, extra ) { + var ret, hooks; + // Make sure that we're working with the right name - var ret, origName = jQuery.camelCase( name ), - hooks = jQuery.cssHooks[ origName ]; + name = jQuery.camelCase( name ); + hooks = jQuery.cssHooks[ name ]; + name = jQuery.cssProps[ name ] || name; - name = jQuery.cssProps[ origName ] || origName; + // cssFloat needs a special treatment + if ( name === "cssFloat" ) { + name = "float"; + } // If a hook was provided get the computed value from there if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) { @@ -134,7 +140,7 @@ jQuery.extend({ // Otherwise, if a way to get the computed value exists, use that } else if ( curCSS ) { - return curCSS( elem, name, origName ); + return curCSS( elem, name ); } }, @@ -225,27 +231,28 @@ if ( !jQuery.support.opacity ) { jQuery.cssHooks.opacity = { get: function( elem, computed ) { // IE uses filters for opacity - return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ? - (parseFloat(RegExp.$1) / 100) + "" : + return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ? + ( parseFloat( RegExp.$1 ) / 100 ) + "" : computed ? "1" : ""; }, set: function( elem, value ) { - var style = elem.style; + var style = elem.style, + currentStyle = elem.currentStyle; // IE has trouble with opacity if it does not have layout // Force it by setting the zoom level style.zoom = 1; // Set the alpha filter to set the opacity - var opacity = jQuery.isNaN(value) ? + var opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")", - filter = style.filter || ""; + filter = currentStyle && currentStyle.filter || style.filter || ""; - style.filter = ralpha.test(filter) ? - filter.replace(ralpha, opacity) : - style.filter + ' ' + opacity; + style.filter = ralpha.test( filter ) ? + filter.replace( ralpha, opacity ) : + filter + " " + opacity; } }; } @@ -273,7 +280,7 @@ jQuery(function() { }); if ( document.defaultView && document.defaultView.getComputedStyle ) { - getComputedStyle = function( elem, newName, name ) { + getComputedStyle = function( elem, name ) { var ret, defaultView, computedStyle; name = name.replace( rupper, "-$1" ).toLowerCase(); diff --git a/src/effects.js b/src/effects.js index f334ac95b..7aec83009 100644 --- a/src/effects.js +++ b/src/effects.js @@ -121,13 +121,17 @@ jQuery.fn.extend({ var optall = jQuery.speed(speed, easing, callback); if ( jQuery.isEmptyObject( prop ) ) { - return this.each( optall.complete ); + return this.each( optall.complete, [ false ] ); } return this[ optall.queue === false ? "each" : "queue" ](function() { // XXX 'this' does not always have a nodeName when running the // test suite + if ( optall.queue === false ) { + jQuery._mark( this ); + } + var opt = jQuery.extend({}, optall), p, isElement = this.nodeType === 1, hidden = isElement && jQuery(this).is(":hidden"), @@ -237,6 +241,10 @@ jQuery.fn.extend({ } this.each(function() { + // clear marker counters if we know they won't be + if ( !gotoEnd ) { + jQuery._unmark( true, this ); + } // go in reverse order so anything added to the queue during the loop is ignored for ( var i = timers.length - 1; i >= 0; i-- ) { if ( timers[i].elem === this ) { @@ -298,10 +306,13 @@ jQuery.extend({ // Queueing opt.old = opt.complete; - opt.complete = function() { + opt.complete = function( noUnmark ) { if ( opt.queue !== false ) { - jQuery(this).dequeue(); + jQuery.dequeue( this ); + } else if ( noUnmark !== false ) { + jQuery._unmark( this ); } + if ( jQuery.isFunction( opt.old ) ) { opt.old.call( this ); } diff --git a/src/event.js b/src/event.js index f6cd97ccf..f005f7285 100644 --- a/src/event.js +++ b/src/event.js @@ -24,17 +24,6 @@ jQuery.event = { return; } - // TODO :: Use a try/catch until it's safe to pull this out (likely 1.6) - // Minor release fix for bug #8018 - try { - // For whatever reason, IE has trouble passing the window object - // around, causing it to be cloned in the process - if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) { - elem = window; - } - } - catch ( e ) {} - if ( handler === false ) { handler = returnFalse; } else if ( !handler ) { @@ -297,6 +286,7 @@ jQuery.event = { type = type.slice(0, -1); exclusive = true; } + if ( type.indexOf(".") >= 0 ) { // Namespaced trigger; create a regexp to match event type in handle() namespaces = type.split("."); @@ -317,6 +307,7 @@ jQuery.event = { jQuery.extend( new jQuery.Event(type), event ) : // Just the event type (string) new jQuery.Event(type); + event.type = type; event.namespace = namespaces.join("."); event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)"); @@ -355,12 +346,12 @@ jQuery.event = { event.target = elem; // Clone any incoming data and prepend the event, creating the handler arg list - data = data? jQuery.makeArray( data ) : []; + data = data ? jQuery.makeArray( data ) : []; data.unshift( event ); var cur = elem, // IE doesn't like method names with a colon (#3533, #8272) - ontype = type.indexOf(":") < 0? "on" + type : ""; + ontype = type.indexOf(":") < 0 ? "on" + type : ""; // Fire event on the current element, then bubble up the DOM tree do { @@ -372,7 +363,7 @@ jQuery.event = { } // Trigger an inline bound script - if ( ontype &&jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { + if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) { event.result = false; event.preventDefault(); } @@ -810,7 +801,7 @@ if ( !jQuery.support.changeBubbles ) { beforedeactivate: testChange, click: function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) { testChange.call( this, e ); @@ -820,7 +811,7 @@ if ( !jQuery.support.changeBubbles ) { // Change has to be called before submit // Keydown will be called before keypress, which is used in submit-event delegation keydown: function( e ) { - var elem = e.target, type = elem.type; + var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : ""; if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") || (e.keyCode === 32 && (type === "checkbox" || type === "radio")) || diff --git a/src/manipulation.js b/src/manipulation.js index 758cdbae0..52d59d83e 100644 --- a/src/manipulation.js +++ b/src/manipulation.js @@ -9,6 +9,7 @@ var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g, rnocache = /<(?:script|object|embed|option|style)/i, // checked="checked" or checked rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /\/(java|ecma)script/i, wrapMap = { option: [ 1, "<select multiple='multiple'>", "</select>" ], legend: [ 1, "<fieldset>", "</fieldset>" ], @@ -635,7 +636,11 @@ jQuery.extend({ } else { if ( ret[i].nodeType === 1 ) { - ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) ); + var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), function( elem ) { + return !elem.type || rscriptType.test( elem.type ); + }); + + ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) ); } fragment.appendChild( ret[i] ); } diff --git a/src/offset.js b/src/offset.js index a0cd7a156..31f2503a4 100644 --- a/src/offset.js +++ b/src/offset.js @@ -180,17 +180,19 @@ jQuery.offset = { curOffset = curElem.offset(), curCSSTop = jQuery.css( elem, "top" ), curCSSLeft = jQuery.css( elem, "left" ), - calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1, + calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, props = {}, curPosition = {}, curTop, curLeft; // need to be able to calculate position if either top or left is auto and position is either absolute or fixed if ( calculatePosition ) { curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat( curCSSTop ) || 0; + curLeft = parseFloat( curCSSLeft ) || 0; } - curTop = calculatePosition ? curPosition.top : parseInt( curCSSTop, 10 ) || 0; - curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0; - if ( jQuery.isFunction( options ) ) { options = options.call( elem, i, curOffset ); } @@ -259,29 +261,16 @@ jQuery.fn.extend({ jQuery.each( ["Left", "Top"], function( i, name ) { var method = "scroll" + name; - jQuery.fn[ method ] = function(val) { - var elem = this[0], win; + jQuery.fn[ method ] = function( val ) { + var elem, win; - if ( !elem ) { - return null; - } + if ( val === undefined ) { + elem = this[ 0 ]; - if ( val !== undefined ) { - // Set the scroll offset - return this.each(function() { - win = getWindow( this ); - - if ( win ) { - win.scrollTo( - !i ? val : jQuery(win).scrollLeft(), - i ? val : jQuery(win).scrollTop() - ); + if ( !elem ) { + return null; + } - } else { - this[ method ] = val; - } - }); - } else { win = getWindow( elem ); // Return the scroll offset @@ -290,6 +279,21 @@ jQuery.each( ["Left", "Top"], function( i, name ) { win.document.body[ method ] : elem[ method ]; } + + // Set the scroll offset + return this.each(function() { + win = getWindow( this ); + + if ( win ) { + win.scrollTo( + !i ? val : jQuery( win ).scrollLeft(), + i ? val : jQuery( win ).scrollTop() + ); + + } else { + this[ method ] = val; + } + }); }; }); diff --git a/src/queue.js b/src/queue.js index 701d06ade..ce2305426 100644 --- a/src/queue.js +++ b/src/queue.js @@ -1,27 +1,67 @@ (function( jQuery ) { -jQuery.extend({ - queue: function( elem, type, data ) { - if ( !elem ) { - return; - } +function handleQueueMarkDefer( elem, type, src ) { + var deferDataKey = type + "defer", + queueDataKey = type + "queue", + markDataKey = type + "mark", + defer = jQuery.data( elem, deferDataKey, undefined, true ); + if ( defer && + ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) && + ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) { + // Give room for hard-coded callbacks to fire first + // and eventually mark/queue something else on the element + setTimeout( function() { + if ( !jQuery.data( elem, queueDataKey, undefined, true ) && + !jQuery.data( elem, markDataKey, undefined, true ) ) { + jQuery.removeData( elem, deferDataKey, true ); + defer.resolve(); + } + }, 0 ); + } +} - type = (type || "fx") + "queue"; - var q = jQuery._data( elem, type ); +jQuery.extend({ - // Speed up dequeue by getting out quickly if this is just a lookup - if ( !data ) { - return q || []; + _mark: function( elem, type ) { + if ( elem ) { + type = (type || "fx") + "mark"; + jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true ); } + }, - if ( !q || jQuery.isArray(data) ) { - q = jQuery._data( elem, type, jQuery.makeArray(data) ); - - } else { - q.push( data ); + _unmark: function( force, elem, type ) { + if ( force !== true ) { + type = elem; + elem = force; + force = false; + } + if ( elem ) { + type = type || "fx"; + var key = type + "mark", + count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 ); + if ( count ) { + jQuery.data( elem, key, count, true ); + } else { + jQuery.removeData( elem, key, true ); + handleQueueMarkDefer( elem, type, "mark" ); + } } + }, - return q; + queue: function( elem, type, data ) { + if ( elem ) { + type = (type || "fx") + "queue"; + var q = jQuery.data( elem, type, undefined, true ); + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !q || jQuery.isArray(data) ) { + q = jQuery.data( elem, type, jQuery.makeArray(data), true ); + } else { + q.push( data ); + } + } + return q || []; + } }, dequeue: function( elem, type ) { @@ -50,17 +90,7 @@ jQuery.extend({ if ( !queue.length ) { jQuery.removeData( elem, type + "queue", true ); - // Look if we have observers and resolve if needed - if (( defer = jQuery.data( elem, type + "defer", undefined, true ) )) { - // Give room for hard-coded callbacks to fire first - // and eventually add another animation on the element - setTimeout( function() { - if ( !jQuery.data( elem, type + "queue", undefined, true ) ) { - jQuery.removeData( elem, type + "defer", true ); - defer.resolve(); - } - }, 0 ); - } + handleQueueMarkDefer( elem, type, "queue" ); } } }); @@ -75,7 +105,7 @@ jQuery.fn.extend({ if ( data === undefined ) { return jQuery.queue( this[0], type ); } - return this.each(function( i ) { + return this.each(function() { var queue = jQuery.queue( this, type, data ); if ( type === "fx" && queue[0] !== "inprogress" ) { @@ -88,7 +118,6 @@ jQuery.fn.extend({ jQuery.dequeue( this, type ); }); }, - // Based off of the plugin by Clint Helfers, with permission. // http://blindsignals.com/index.php/2009/07/jquery-delay/ delay: function( time, type ) { @@ -102,11 +131,9 @@ jQuery.fn.extend({ }, time ); }); }, - clearQueue: function( type ) { return this.queue( type || "fx", [] ); }, - // Get a promise resolved when queues of a certain type // are emptied (fx is the type by default) promise: function( type, object ) { @@ -120,7 +147,8 @@ jQuery.fn.extend({ i = elements.length, count = 1, deferDataKey = type + "defer", - queueDataKey = type + "queue"; + queueDataKey = type + "queue", + markDataKey = type + "mark"; function resolve() { if ( !( --count ) ) { defer.resolveWith( elements, [ elements ] ); @@ -128,7 +156,8 @@ jQuery.fn.extend({ } while( i-- ) { if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) || - jQuery.data( elements[ i ], queueDataKey, undefined, true ) && + ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) || + jQuery.data( elements[ i ], markDataKey, undefined, true ) ) && jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) { count++; tmp.done( resolve ); diff --git a/src/support.js b/src/support.js index 34960505a..6b19c0830 100644 --- a/src/support.js +++ b/src/support.js @@ -8,6 +8,7 @@ jQuery.support = (function() { select, opt, input, + marginDiv, support, fragment, body, @@ -190,10 +191,12 @@ jQuery.support = (function() { // Fails in WebKit before Feb 2011 nightlies // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right if ( document.defaultView && document.defaultView.getComputedStyle ) { - div.style.width = "1px"; - div.style.marginRight = "0"; + marginDiv = document.createElement('div'); + marginDiv.style.width = "0"; + marginDiv.style.marginRight = "0"; + div.appendChild( marginDiv ); support.reliableMarginRight = - ( parseInt( document.defaultView.getComputedStyle(div).marginRight, 10 ) || 0 ) === 0; + ( parseInt( document.defaultView.getComputedStyle( marginDiv ).marginRight, 10 ) || 0 ) === 0; } // Remove the body element we added diff --git a/src/traversing.js b/src/traversing.js index fb5946bba..e0f40151d 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -73,9 +73,9 @@ jQuery.fn.extend({ }, is: function( selector ) { - return !!selector && (typeof selector === "string" ? + return !!selector && ( typeof selector === "string" ? jQuery.filter( selector, this ).length > 0 : - this.filter( selector ).length > 0); + this.filter( selector ).length > 0 ); }, closest: function( selectors, context ) { @@ -298,13 +298,18 @@ jQuery.extend({ // Implement the identical functionality for filter and not function winnow( elements, qualifier, keep ) { + + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + if ( jQuery.isFunction( qualifier ) ) { return jQuery.grep(elements, function( elem, i ) { var retVal = !!qualifier.call( elem, i, elem ); return retVal === keep; }); - } else if ( qualifier && qualifier.nodeType ) { + } else if ( qualifier.nodeType ) { return jQuery.grep(elements, function( elem, i ) { return (elem === qualifier) === keep; }); diff --git a/test/data/testsuite.css b/test/data/testsuite.css index cffaaa46a..029006810 100644 --- a/test/data/testsuite.css +++ b/test/data/testsuite.css @@ -1,5 +1,5 @@ /* for testing opacity set in styles in IE */ -ol#empty { opacity: 0; filter:Alpha(opacity=0); } +ol#empty { opacity: 0; filter:Alpha(opacity=0) progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffff0000', EndColorStr='#ffffffff'); } div#fx-tests h4 { background: red; diff --git a/test/index.html b/test/index.html index a10655089..bf7dc7989 100644 --- a/test/index.html +++ b/test/index.html @@ -45,6 +45,10 @@ <script src="unit/effects.js"></script> <script src="unit/offset.js"></script> <script src="unit/dimensions.js"></script> + + <!-- For testing http://bugs.jquery.com/ticket/7071 --> + <xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" /> + <style>v\:oval { behavior:url(#default#VML); display:inline-block; }</style> </head> <body id="body"> @@ -147,6 +151,7 @@ <span id="test.foo[5]bar" class="test.foo[5]bar"></span> <foo_bar id="foobar">test element</foo_bar> + <v:oval id="oval" style="width:100pt;height:75pt;" fillcolor="red"> </v:oval> </form> <b id="floatTest">Float test.</b> <iframe id="iframe" name="iframe"></iframe> diff --git a/test/unit/ajax.js b/test/unit/ajax.js index e9c7a00c5..ac1dc73b1 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -14,7 +14,7 @@ test("jQuery.ajax() - success callbacks", function() { stop(); - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -46,7 +46,7 @@ test("jQuery.ajax() - success callbacks - (url, options) syntax", function() { stop(); setTimeout(function(){ - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -78,7 +78,7 @@ test("jQuery.ajax() - success callbacks (late binding)", function() { stop(); setTimeout(function(){ - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -111,7 +111,7 @@ test("jQuery.ajax() - success callbacks (oncomplete binding)", function() { stop(); setTimeout(function(){ - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -147,7 +147,7 @@ test("jQuery.ajax() - success callbacks (very late binding)", function() { stop(); setTimeout(function(){ - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -214,7 +214,7 @@ test("jQuery.ajax() - error callbacks", function() { expect( 8 ); stop(); - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -247,10 +247,10 @@ test( "jQuery.ajax - multiple method signatures introduced in 1.5 ( #8107)", fun stop(); jQuery.when( - jQuery.ajax().success(function() { ok( true, 'With no arguments' ); }), - jQuery.ajax('data/name.html').success(function() { ok( true, 'With only string URL argument' ); }), - jQuery.ajax('data/name.html', {} ).success(function() { ok( true, 'With string URL param and map' ); }), - jQuery.ajax({ url: 'data/name.html'} ).success(function() { ok( true, 'With only map' ); }) + jQuery.ajax().success(function() { ok( true, "With no arguments" ); }), + jQuery.ajax("data/name.html").success(function() { ok( true, "With only string URL argument" ); }), + jQuery.ajax("data/name.html", {} ).success(function() { ok( true, "With string URL param and map" ); }), + jQuery.ajax({ url: "data/name.html"} ).success(function() { ok( true, "With only map" ); }) ).then( start, start ); }); @@ -348,7 +348,7 @@ test(".ajax() - headers" , function() { stop(); - jQuery('#foo').ajaxSend(function( evt, xhr ) { + jQuery("#foo").ajaxSend(function( evt, xhr ) { xhr.setRequestHeader( "ajax-send", "test" ); }); @@ -509,7 +509,7 @@ test("jQuery ajax - cross-domain detection", function() { jQuery.ajax({ dataType: "jsonp", - url: 'app:/path', + url: "app:/path", beforeSend: function( _ , s ) { ok( s.crossDomain , "Adobe AIR app:/ URL detected as cross-domain" ); return false; @@ -518,7 +518,7 @@ test("jQuery ajax - cross-domain detection", function() { jQuery.ajax({ dataType: "jsonp", - url: loc.protocol + '//somewebsitethatdoesnotexist-656329477541.com:' + ( loc.port || 80 ), + url: loc.protocol + "//somewebsitethatdoesnotexist-656329477541.com:" + ( loc.port || 80 ), beforeSend: function( _ , s ) { ok( s.crossDomain , "Test different hostnames are detected as cross-domain" ); return false; @@ -559,7 +559,7 @@ test(".load() - 404 error callbacks", function() { expect( 6 ); stop(); - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -583,7 +583,7 @@ test("jQuery.ajax() - abort", function() { expect( 8 ); stop(); - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( true, "ajaxStart" ); }).ajaxStop(function(){ ok( true, "ajaxStop" ); @@ -628,7 +628,7 @@ test("Ajax events with context", function() { }; } - jQuery('#foo').add(context) + jQuery("#foo").add(context) .ajaxSend(event) .ajaxComplete(event) .ajaxError(event) @@ -650,7 +650,7 @@ test("Ajax events with context", function() { complete: function(){ callback("complete").call(this); - jQuery('#foo').add(context).unbind(); + jQuery("#foo").add(context).unbind(); jQuery.ajax({ url: url("data/404.html"), @@ -734,7 +734,7 @@ test("jQuery.ajax() - disabled globals", function() { expect( 3 ); stop(); - jQuery('#foo').ajaxStart(function(){ + jQuery("#foo").ajaxStart(function(){ ok( false, "ajaxStart" ); }).ajaxStop(function(){ ok( false, "ajaxStop" ); @@ -768,9 +768,9 @@ test("jQuery.ajax - xml: non-namespace elements inside namespaced elements", fun url: url("data/with_fries.xml"), dataType: "xml", success: function(resp) { - equals( jQuery("properties", resp).length, 1, 'properties in responseXML' ); - equals( jQuery("jsconf", resp).length, 1, 'jsconf in responseXML' ); - equals( jQuery("thing", resp).length, 2, 'things in responseXML' ); + equals( jQuery("properties", resp).length, 1, "properties in responseXML" ); + equals( jQuery("jsconf", resp).length, 1, "jsconf in responseXML" ); + equals( jQuery("thing", resp).length, 2, "things in responseXML" ); start(); } }); @@ -783,9 +783,9 @@ test("jQuery.ajax - xml: non-namespace elements inside namespaced elements (over url: url("data/with_fries_over_jsonp.php"), dataType: "jsonp xml", success: function(resp) { - equals( jQuery("properties", resp).length, 1, 'properties in responseXML' ); - equals( jQuery("jsconf", resp).length, 1, 'jsconf in responseXML' ); - equals( jQuery("thing", resp).length, 2, 'things in responseXML' ); + equals( jQuery("properties", resp).length, 1, "properties in responseXML" ); + equals( jQuery("jsconf", resp).length, 1, "jsconf in responseXML" ); + equals( jQuery("thing", resp).length, 2, "things in responseXML" ); start(); }, error: function(_1,_2,error) { @@ -804,7 +804,7 @@ test("jQuery.ajax - HEAD requests", function() { type: "HEAD", success: function(data, status, xhr){ var h = xhr.getAllResponseHeaders(); - ok( /Date/i.test(h), 'No Date in HEAD response' ); + ok( /Date/i.test(h), "No Date in HEAD response" ); jQuery.ajax({ url: url("data/name.html"), @@ -812,7 +812,7 @@ test("jQuery.ajax - HEAD requests", function() { type: "HEAD", success: function(data, status, xhr){ var h = xhr.getAllResponseHeaders(); - ok( /Date/i.test(h), 'No Date in HEAD response with data' ); + ok( /Date/i.test(h), "No Date in HEAD response with data" ); start(); } }); @@ -891,8 +891,8 @@ test("jQuery.ajax - dataType html", function() { stop(); var verifyEvaluation = function() { - equals( testFoo, "foo", 'Check if script was evaluated for datatype html' ); - equals( foobar, "bar", 'Check if script src was evaluated for datatype html' ); + equals( testFoo, "foo", "Check if script was evaluated for datatype html" ); + equals( foobar, "bar", "Check if script src was evaluated for datatype html" ); start(); }; @@ -902,7 +902,7 @@ test("jQuery.ajax - dataType html", function() { url: url("data/test.html"), success: function(data) { jQuery("#ap").html(data); - ok( data.match(/^html text/), 'Check content for datatype html' ); + ok( data.match(/^html text/), "Check content for datatype html" ); setTimeout(verifyEvaluation, 600); } }); @@ -913,34 +913,34 @@ test("serialize()", function() { // Add html5 elements only for serialize because selector can't yet find them on non-html5 browsers jQuery("#search").after( - '<input type="email" id="html5email" name="email" value="dave@jquery.com" />'+ - '<input type="number" id="html5number" name="number" value="43" />' + "<input type='email' id='html5email' name='email' value='dave@jquery.com' />"+ + "<input type='number' id='html5number' name='number' value='43' />" ); - equals( jQuery('#form').serialize(), + equals( jQuery("#form").serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&email=dave%40jquery.com&number=43&select1=&select2=3&select3=1&select3=2&select5=3", - 'Check form serialization as query string'); + "Check form serialization as query string"); - equals( jQuery('#form :input').serialize(), + equals( jQuery("#form :input").serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&email=dave%40jquery.com&number=43&select1=&select2=3&select3=1&select3=2&select5=3", - 'Check input serialization as query string'); + "Check input serialization as query string"); - equals( jQuery('#testForm').serialize(), - 'T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=', - 'Check form serialization as query string'); + equals( jQuery("#testForm").serialize(), + "T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", + "Check form serialization as query string"); - equals( jQuery('#testForm :input').serialize(), - 'T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=', - 'Check input serialization as query string'); + equals( jQuery("#testForm :input").serialize(), + "T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", + "Check input serialization as query string"); - equals( jQuery('#form, #testForm').serialize(), + equals( jQuery("#form, #testForm").serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&email=dave%40jquery.com&number=43&select1=&select2=3&select3=1&select3=2&select5=3&T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", - 'Multiple form serialization as query string'); + "Multiple form serialization as query string"); /* Temporarily disabled. Opera 10 has problems with form serialization. - equals( jQuery('#form, #testForm :input').serialize(), + equals( jQuery("#form, #testForm :input").serialize(), "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&email=dave%40jquery.com&number=43&select1=&select2=3&select3=1&select3=2&T3=%3F%0D%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=", - 'Mixed form/input serialization as query string'); + "Mixed form/input serialization as query string"); */ jQuery("#html5email, #html5number").remove(); }); @@ -956,13 +956,13 @@ test("jQuery.param()", function() { params = {someName: [1, 2, 3], regularThing: "blah" }; equals( jQuery.param(params), "someName%5B%5D=1&someName%5B%5D=2&someName%5B%5D=3®ularThing=blah", "with array" ); - params = {foo: ['a', 'b', 'c']}; + params = {foo: ["a", "b", "c"]}; equals( jQuery.param(params), "foo%5B%5D=a&foo%5B%5D=b&foo%5B%5D=c", "with array of strings" ); params = {foo: ["baz", 42, "All your base are belong to us"] }; equals( jQuery.param(params), "foo%5B%5D=baz&foo%5B%5D=42&foo%5B%5D=All+your+base+are+belong+to+us", "more array" ); - params = {foo: { bar: 'baz', beep: 42, quux: 'All your base are belong to us' } }; + params = {foo: { bar: "baz", beep: 42, quux: "All your base are belong to us" } }; equals( jQuery.param(params), "foo%5Bbar%5D=baz&foo%5Bbeep%5D=42&foo%5Bquux%5D=All+your+base+are+belong+to+us", "even more arrays" ); params = { a:[1,2], b:{ c:3, d:[4,5], e:{ x:[6], y:7, z:[8,9] }, f:true, g:false, h:undefined }, i:[10,11], j:true, k:false, l:[undefined,0], m:"cowboy hat?" }; @@ -974,7 +974,7 @@ test("jQuery.param()", function() { params = { a:[1,2], b:{ c:3, d:[4,5], e:{ x:[6], y:7, z:[8,9] }, f:true, g:false, h:undefined }, i:[10,11], j:true, k:false, l:[undefined,0], m:"cowboy hat?" }; equals( jQuery.param(params,true), "a=1&a=2&b=%5Bobject+Object%5D&i=10&i=11&j=true&k=false&l=undefined&l=0&m=cowboy+hat%3F", "huge structure, forced traditional" ); - equals( decodeURIComponent( jQuery.param({ a: [1,2,3], 'b[]': [4,5,6], 'c[d]': [7,8,9], e: { f: [10], g: [11,12], h: 13 } }) ), "a[]=1&a[]=2&a[]=3&b[]=4&b[]=5&b[]=6&c[d][]=7&c[d][]=8&c[d][]=9&e[f][]=10&e[g][]=11&e[g][]=12&e[h]=13", "Make sure params are not double-encoded." ); + equals( decodeURIComponent( jQuery.param({ a: [1,2,3], "b[]": [4,5,6], "c[d]": [7,8,9], e: { f: [10], g: [11,12], h: 13 } }) ), "a[]=1&a[]=2&a[]=3&b[]=4&b[]=5&b[]=6&c[d][]=7&c[d][]=8&c[d][]=9&e[f][]=10&e[g][]=11&e[g][]=12&e[h]=13", "Make sure params are not double-encoded." ); // Make sure empty arrays and objects are handled #6481 equals( jQuery.param({"foo": {"bar": []} }), "foo%5Bbar%5D=", "Empty array param" ); @@ -992,7 +992,7 @@ test("jQuery.param()", function() { params = {someName: [1, 2, 3], regularThing: "blah" }; equals( jQuery.param(params), "someName=1&someName=2&someName=3®ularThing=blah", "with array" ); - params = {foo: ['a', 'b', 'c']}; + params = {foo: ["a", "b", "c"]}; equals( jQuery.param(params), "foo=a&foo=b&foo=c", "with array of strings" ); params = {"foo[]":["baz", 42, "All your base are belong to us"]}; @@ -1013,7 +1013,7 @@ test("jQuery.param()", function() { params = { param1: null }; equals( jQuery.param(params,false), "param1=null", "Make sure that null params aren't traversed." ); - params = {'test': {'length': 3, 'foo': 'bar'} }; + params = {"test": {"length": 3, "foo": "bar"} }; equals( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" ); }); @@ -1044,10 +1044,10 @@ test("pass-through request object", function() { errorCount++; errorEx += ": " + xml.status; }); - jQuery("#foo").one('ajaxStop', function () { + jQuery("#foo").one("ajaxStop", function () { equals(successCount, 5, "Check all ajax calls successful"); equals(errorCount, 0, "Check no ajax errors (status" + errorEx + ")"); - jQuery("#foo").unbind('ajaxError'); + jQuery("#foo").unbind("ajaxError"); start(); }); @@ -1101,17 +1101,17 @@ test("global ajaxSettings", function() { var orig = { url: "data/with_fries.xml" }; var t; - jQuery.ajaxSetup({ data: {foo: 'bar', bar: 'BAR'} }); + jQuery.ajaxSetup({ data: {foo: "bar", bar: "BAR"} }); t = jQuery.extend({}, orig); t.data = {}; jQuery.ajax(t); - ok( t.url.indexOf('foo') > -1 && t.url.indexOf('bar') > -1, "Check extending {}" ); + ok( t.url.indexOf("foo") > -1 && t.url.indexOf("bar") > -1, "Check extending {}" ); t = jQuery.extend({}, orig); - t.data = { zoo: 'a', ping: 'b' }; + t.data = { zoo: "a", ping: "b" }; jQuery.ajax(t); - ok( t.url.indexOf('ping') > -1 && t.url.indexOf('zoo') > -1 && t.url.indexOf('foo') > -1 && t.url.indexOf('bar') > -1, "Check extending { zoo: 'a', ping: 'b' }" ); + ok( t.url.indexOf("ping") > -1 && t.url.indexOf("zoo") > -1 && t.url.indexOf("foo") > -1 && t.url.indexOf("bar") > -1, "Check extending { zoo: "a", ping: "b" }" ); jQuery.ajaxSettings = tmp; }); @@ -1120,13 +1120,13 @@ test("global ajaxSettings", function() { test("load(String)", function() { expect(1); stop(); // check if load can be called with only url - jQuery('#first').load("data/name.html", start); + jQuery("#first").load("data/name.html", start); }); test("load('url selector')", function() { expect(1); stop(); // check if load can be called with only url - jQuery('#first').load("data/test3.html div.user", function(){ + jQuery("#first").load("data/test3.html div.user", function(){ equals( jQuery(this).children("div").length, 2, "Verify that specific elements were injected" ); start(); }); @@ -1142,14 +1142,14 @@ test("load(String, Function) with ajaxSetup on dataType json, see #2046", functi jQuery.ajaxSetup({ dataType: "" }); start(); }); - jQuery('#first').load("data/test3.html"); + jQuery("#first").load("data/test3.html"); }); test("load(String, Function) - simple: inject text into DOM", function() { expect(2); stop(); - jQuery('#first').load(url("data/name.html"), function() { - ok( /^ERROR/.test(jQuery('#first').text()), 'Check if content was injected into the DOM' ); + jQuery("#first").load(url("data/name.html"), function() { + ok( /^ERROR/.test(jQuery("#first").text()), "Check if content was injected into the DOM" ); start(); }); }); @@ -1159,15 +1159,15 @@ test("load(String, Function) - check scripts", function() { stop(); var verifyEvaluation = function() { - equals( foobar, "bar", 'Check if script src was evaluated after load' ); - equals( jQuery('#ap').html(), 'bar', 'Check if script evaluation has modified DOM'); + equals( foobar, "bar", "Check if script src was evaluated after load" ); + equals( jQuery("#ap").html(), "bar", "Check if script evaluation has modified DOM"); start(); }; - jQuery('#first').load(url('data/test.html'), function() { - ok( jQuery('#first').html().match(/^html text/), 'Check content after loading html' ); - equals( jQuery('#foo').html(), 'foo', 'Check if script evaluation has modified DOM'); - equals( testFoo, "foo", 'Check if script was evaluated after load' ); + jQuery("#first").load(url("data/test.html"), function() { + ok( jQuery("#first").html().match(/^html text/), "Check content after loading html" ); + equals( jQuery("#foo").html(), "foo", "Check if script evaluation has modified DOM"); + equals( testFoo, "foo", "Check if script was evaluated after load" ); setTimeout(verifyEvaluation, 600); }); }); @@ -1176,9 +1176,9 @@ test("load(String, Function) - check file with only a script tag", function() { expect(3); stop(); - jQuery('#first').load(url('data/test2.html'), function() { - equals( jQuery('#foo').html(), 'foo', 'Check if script evaluation has modified DOM'); - equals( testFoo, "foo", 'Check if script was evaluated after load' ); + jQuery("#first").load(url("data/test2.html"), function() { + equals( jQuery("#foo").html(), "foo", "Check if script evaluation has modified DOM"); + equals( testFoo, "foo", "Check if script was evaluated after load" ); start(); }); @@ -1200,10 +1200,10 @@ test("load(String, Object, Function)", function() { expect(2); stop(); - jQuery('<div />').load(url('data/params_html.php'), { foo:3, bar:'ok' }, function() { - var $post = jQuery(this).find('#post'); - equals( $post.find('#foo').text(), '3', 'Check if a hash of data is passed correctly'); - equals( $post.find('#bar').text(), 'ok', 'Check if a hash of data is passed correctly'); + jQuery("<div />").load(url("data/params_html.php"), { foo: 3, bar: "ok" }, function() { + var $post = jQuery(this).find("#post"); + equals( $post.find("#foo").text(), "3", "Check if a hash of data is passed correctly"); + equals( $post.find("#bar").text(), "ok", "Check if a hash of data is passed correctly"); start(); }); }); @@ -1212,10 +1212,10 @@ test("load(String, String, Function)", function() { expect(2); stop(); - jQuery('<div />').load(url('data/params_html.php'), 'foo=3&bar=ok', function() { - var $get = jQuery(this).find('#get'); - equals( $get.find('#foo').text(), '3', 'Check if a string of data is passed correctly'); - equals( $get.find('#bar').text(), 'ok', 'Check if a of data is passed correctly'); + jQuery("<div />").load(url("data/params_html.php"), "foo=3&bar=ok", function() { + var $get = jQuery(this).find("#get"); + equals( $get.find("#foo").text(), "3", "Check if a string of data is passed correctly"); + equals( $get.find("#bar").text(), "ok", "Check if a of data is passed correctly"); start(); }); }); @@ -1226,8 +1226,8 @@ test("jQuery.get(String, Function) - data in ajaxSettings (#8277)", function() { jQuery.ajaxSetup({ data: "helloworld" }); - jQuery.get(url('data/echoQuery.php'), function(data) { - ok( /helloworld$/.test( data ), 'Data from ajaxSettings was used'); + jQuery.get(url("data/echoQuery.php"), function(data) { + ok( /helloworld$/.test( data ), "Data from ajaxSettings was used"); jQuery.ajaxSetup({ data: null }); @@ -1238,13 +1238,13 @@ test("jQuery.get(String, Function) - data in ajaxSettings (#8277)", function() { test("jQuery.get(String, Hash, Function) - parse xml and use text() on nodes", function() { expect(2); stop(); - jQuery.get(url('data/dashboard.xml'), function(xml) { + jQuery.get(url("data/dashboard.xml"), function(xml) { var content = []; - jQuery('tab', xml).each(function() { + jQuery("tab", xml).each(function() { content.push(jQuery(this).text()); }); - equals( content[0], 'blabla', 'Check first tab'); - equals( content[1], 'blublu', 'Check second tab'); + equals( content[0], "blabla", "Check first tab"); + equals( content[1], "blublu", "Check second tab"); start(); }); }); @@ -1253,7 +1253,7 @@ test("jQuery.getScript(String, Function) - with callback", function() { expect(3); stop(); jQuery.getScript(url("data/test.js"), function( data, _, jqXHR ) { - equals( foobar, "bar", 'Check if script was evaluated' ); + equals( foobar, "bar", "Check if script was evaluated" ); strictEqual( data, jqXHR.responseText, "Same-domain script requests returns the source of the script (#8082)" ); setTimeout(start, 100); }); @@ -1636,10 +1636,10 @@ test("jQuery.ajax() - json by content-type", function() { data: { header: "json", json: "array" }, success: function( json ) { ok( json.length >= 2, "Check length"); - equals( json[0].name, 'John', 'Check JSON: first, name' ); - equals( json[0].age, 21, 'Check JSON: first, age' ); - equals( json[1].name, 'Peter', 'Check JSON: second, name' ); - equals( json[1].age, 25, 'Check JSON: second, age' ); + equals( json[0].name, "John", "Check JSON: first, name" ); + equals( json[0].age, 21, "Check JSON: first, age" ); + equals( json[1].name, "Peter", "Check JSON: second, name" ); + equals( json[1].age, 25, "Check JSON: second, age" ); start(); } }); @@ -1660,10 +1660,10 @@ test("jQuery.ajax() - json by content-type disabled with options", function() { equals( typeof text , "string" , "json wasn't auto-determined" ); var json = jQuery.parseJSON( text ); ok( json.length >= 2, "Check length"); - equals( json[0].name, 'John', 'Check JSON: first, name' ); - equals( json[0].age, 21, 'Check JSON: first, age' ); - equals( json[1].name, 'Peter', 'Check JSON: second, name' ); - equals( json[1].age, 25, 'Check JSON: second, age' ); + equals( json[0].name, "John", "Check JSON: first, name" ); + equals( json[0].age, 21, "Check JSON: first, age" ); + equals( json[1].name, "Peter", "Check JSON: second, name" ); + equals( json[1].age, 25, "Check JSON: second, age" ); start(); } }); @@ -1674,10 +1674,10 @@ test("jQuery.getJSON(String, Hash, Function) - JSON array", function() { stop(); jQuery.getJSON(url("data/json.php"), {json: "array"}, function(json) { ok( json.length >= 2, "Check length"); - equals( json[0].name, 'John', 'Check JSON: first, name' ); - equals( json[0].age, 21, 'Check JSON: first, age' ); - equals( json[1].name, 'Peter', 'Check JSON: second, name' ); - equals( json[1].age, 25, 'Check JSON: second, age' ); + equals( json[0].name, "John", "Check JSON: first, name" ); + equals( json[0].age, 21, "Check JSON: first, age" ); + equals( json[1].name, "Peter", "Check JSON: second, name" ); + equals( json[1].age, 25, "Check JSON: second, age" ); start(); }); }); @@ -1687,8 +1687,8 @@ test("jQuery.getJSON(String, Function) - JSON object", function() { stop(); jQuery.getJSON(url("data/json.php"), function(json) { if (json && json.data) { - equals( json.data.lang, 'en', 'Check JSON: lang' ); - equals( json.data.length, 25, 'Check JSON: length' ); + equals( json.data.lang, "en", "Check JSON: lang" ); + equals( json.data.length, 25, "Check JSON: length" ); } start(); }); @@ -1720,8 +1720,8 @@ test("jQuery.getJSON(String, Function) - JSON object with absolute url to local stop(); jQuery.getJSON(url(base + "data/json.php"), function(json) { - equals( json.data.lang, 'en', 'Check JSON: lang' ); - equals( json.data.length, 25, 'Check JSON: length' ); + equals( json.data.lang, "en", "Check JSON: lang" ); + equals( json.data.length, 25, "Check JSON: length" ); start(); }); }); @@ -1731,23 +1731,23 @@ test("jQuery.post - data", 3, function() { jQuery.when( jQuery.post( url( "data/name.php" ), { xml: "5-2", length: 3 }, function( xml ) { - jQuery( 'math', xml ).each( function() { - equals( jQuery( 'calculation', this ).text(), '5-2', 'Check for XML' ); - equals( jQuery( 'result', this ).text(), '3', 'Check for XML' ); + jQuery( "math", xml ).each( function() { + equals( jQuery( "calculation", this ).text(), "5-2", "Check for XML" ); + equals( jQuery( "result", this ).text(), "3", "Check for XML" ); }); }), jQuery.ajax({ - url: url('data/echoData.php'), + url: url("data/echoData.php"), type: "POST", data: { - 'test': { - 'length': 7, - 'foo': 'bar' + "test": { + "length": 7, + "foo": "bar" } }, success: function( data ) { - strictEqual( data, 'test%5Blength%5D=7&test%5Bfoo%5D=bar', 'Check if a sub-object with a length param is serialized correctly'); + strictEqual( data, "test%5Blength%5D=7&test%5Bfoo%5D=bar", "Check if a sub-object with a length param is serialized correctly"); } }) ).then( start, start ); @@ -1760,17 +1760,17 @@ test("jQuery.post(String, Hash, Function) - simple with xml", function() { var done = 0; jQuery.post(url("data/name.php"), {xml: "5-2"}, function(xml){ - jQuery('math', xml).each(function() { - equals( jQuery('calculation', this).text(), '5-2', 'Check for XML' ); - equals( jQuery('result', this).text(), '3', 'Check for XML' ); + jQuery("math", xml).each(function() { + equals( jQuery("calculation", this).text(), "5-2", "Check for XML" ); + equals( jQuery("result", this).text(), "3", "Check for XML" ); }); if ( ++done === 2 ) start(); }); jQuery.post(url("data/name.php?xml=5-2"), {}, function(xml){ - jQuery('math', xml).each(function() { - equals( jQuery('calculation', this).text(), '5-2', 'Check for XML' ); - equals( jQuery('result', this).text(), '3', 'Check for XML' ); + jQuery("math", xml).each(function() { + equals( jQuery("calculation", this).text(), "5-2", "Check for XML" ); + equals( jQuery("result", this).text(), "3", "Check for XML" ); }); if ( ++done === 2 ) start(); }); @@ -1786,18 +1786,18 @@ test("jQuery.ajaxSetup({timeout: Number}) - with global timeout", function() { var pass = function() { passed++; if ( passed == 2 ) { - ok( true, 'Check local and global callbacks after timeout' ); - jQuery('#main').unbind("ajaxError"); + ok( true, "Check local and global callbacks after timeout" ); + jQuery("#main").unbind("ajaxError"); start(); } }; var fail = function(a,b,c) { - ok( false, 'Check for timeout failed ' + a + ' ' + b ); + ok( false, "Check for timeout failed " + a + " " + b ); start(); }; - jQuery('#main').ajaxError(pass); + jQuery("#main").ajaxError(pass); jQuery.ajax({ type: "GET", @@ -1819,11 +1819,11 @@ test("jQuery.ajaxSetup({timeout: Number}) with localtimeout", function() { timeout: 15000, url: url("data/name.php?wait=1"), error: function() { - ok( false, 'Check for local timeout failed' ); + ok( false, "Check for local timeout failed" ); start(); }, success: function() { - ok( true, 'Check for local timeout' ); + ok( true, "Check for local timeout" ); start(); } }); @@ -1839,7 +1839,7 @@ test("jQuery.ajax - simple get", function() { type: "GET", url: url("data/name.php?name=foo"), success: function(msg){ - equals( msg, 'bar', 'Check for GET' ); + equals( msg, "bar", "Check for GET" ); start(); } }); @@ -1853,7 +1853,7 @@ test("jQuery.ajax - simple post", function() { url: url("data/name.php"), data: "name=peter", success: function(msg){ - equals( msg, 'pan', 'Check for POST' ); + equals( msg, "pan", "Check for POST" ); start(); } }); @@ -1865,7 +1865,7 @@ test("ajaxSetup()", function() { jQuery.ajaxSetup({ url: url("data/name.php?name=foo"), success: function(msg){ - equals( msg, 'bar', 'Check for GET' ); + equals( msg, "bar", "Check for GET" ); start(); } }); @@ -2027,14 +2027,14 @@ test("jQuery ajax - failing cross-domain", function() { var i = 2; jQuery.ajax({ - url: 'http://somewebsitethatdoesnotexist-67864863574657654.com', + url: "http://somewebsitethatdoesnotexist-67864863574657654.com", success: function(){ ok( false , "success" ); }, error: function(xhr,_,e){ ok( true , "file not found: " + xhr.status + " => " + e ); }, complete: function() { if ( ! --i ) start(); } }); jQuery.ajax({ - url: 'http://www.google.com', + url: "http://www.google.com", success: function(){ ok( false , "success" ); }, error: function(xhr,_,e){ ok( true , "access denied: " + xhr.status + " => " + e ); }, complete: function() { if ( ! --i ) start(); } @@ -2047,7 +2047,7 @@ test("jQuery ajax - atom+xml", function() { stop(); jQuery.ajax({ - url: url( 'data/atom+xml.php' ), + url: url( "data/atom+xml.php" ), success: function(){ ok( true , "success" ); }, error: function(){ ok( false , "error" ); }, complete: function() { start(); } diff --git a/test/unit/attributes.js b/test/unit/attributes.js index f3f0bab2b..c78a2961f 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -37,19 +37,19 @@ test("jQuery.attrFix integrity test", function() { test("prop(String, Object)", function() { expect(19); - equals( jQuery('#text1').prop('value'), "Test", 'Check for value attribute' ); - equals( jQuery('#text1').prop('value', "Test2").prop('defaultValue'), "Test", 'Check for defaultValue attribute' ); - equals( jQuery('#select2').prop('selectedIndex'), 3, 'Check for selectedIndex attribute' ); - equals( jQuery('#foo').prop('nodeName').toUpperCase(), 'DIV', 'Check for nodeName attribute' ); - equals( jQuery('#foo').prop('tagName').toUpperCase(), 'DIV', 'Check for tagName attribute' ); + equals( jQuery("#text1").prop("value"), "Test", "Check for value attribute" ); + equals( jQuery("#text1").prop("value", "Test2").prop("defaultValue"), "Test", "Check for defaultValue attribute" ); + equals( jQuery("#select2").prop("selectedIndex"), 3, "Check for selectedIndex attribute" ); + equals( jQuery("#foo").prop("nodeName").toUpperCase(), "DIV", "Check for nodeName attribute" ); + equals( jQuery("#foo").prop("tagName").toUpperCase(), "DIV", "Check for tagName attribute" ); equals( jQuery("<option/>").prop("selected"), false, "Check selected attribute on disconnected element." ); var body = document.body, $body = jQuery( body ); - ok( $body.prop('nextSibling') === null, 'Make sure a null expando returns null' ); - body.foo = 'bar'; - equals( $body.prop('foo'), 'bar', 'Make sure the expando is preferred over the dom attribute' ); + ok( $body.prop("nextSibling") === null, "Make sure a null expando returns null" ); + body.foo = "bar"; + equals( $body.prop("foo"), "bar", "Make sure the expando is preferred over the dom attribute" ); body.foo = undefined; - ok( $body.prop('foo') === undefined, 'Make sure the expando is preferred over the dom attribute, even if undefined' ); + ok( $body.prop("foo") === undefined, "Make sure the expando is preferred over the dom attribute, even if undefined" ); var select = document.createElement("select"), optgroup = document.createElement("optgroup"), option = document.createElement("option"); optgroup.appendChild( option ); @@ -78,62 +78,62 @@ test("prop(String, Object)", function() { test("attr(String)", function() { expect(32); - equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' ); - equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' ); - equals( jQuery('#check1').attr('type'), "checkbox", 'Check for type attribute' ); - equals( jQuery('#simon1').attr('rel'), "bookmark", 'Check for rel attribute' ); - equals( jQuery('#google').attr('title'), "Google!", 'Check for title attribute' ); - equals( jQuery('#mark').attr('hreflang'), "en", 'Check for hreflang attribute' ); - equals( jQuery('#en').attr('lang'), "en", 'Check for lang attribute' ); - equals( jQuery('#simon').attr('class'), "blog link", 'Check for class attribute' ); - equals( jQuery('#name').attr('name'), "name", 'Check for name attribute' ); - equals( jQuery('#text1').attr('name'), "action", 'Check for name attribute' ); - ok( jQuery('#form').attr('action').indexOf("formaction") >= 0, 'Check for action attribute' ); - equals( jQuery('#form').attr('blah', 'blah').attr('blah'), 'blah', 'Set non-existant attribute on a form' ); - equals( jQuery('#foo').attr('height'), undefined, 'Non existent height attribute should return undefined' ); + equals( jQuery("#text1").attr("type"), "text", "Check for type attribute" ); + equals( jQuery("#radio1").attr("type"), "radio", "Check for type attribute" ); + equals( jQuery("#check1").attr("type"), "checkbox", "Check for type attribute" ); + equals( jQuery("#simon1").attr("rel"), "bookmark", "Check for rel attribute" ); + equals( jQuery("#google").attr("title"), "Google!", "Check for title attribute" ); + equals( jQuery("#mark").attr("hreflang"), "en", "Check for hreflang attribute" ); + equals( jQuery("#en").attr("lang"), "en", "Check for lang attribute" ); + equals( jQuery("#simon").attr("class"), "blog link", "Check for class attribute" ); + equals( jQuery("#name").attr("name"), "name", "Check for name attribute" ); + equals( jQuery("#text1").attr("name"), "action", "Check for name attribute" ); + ok( jQuery("#form").attr("action").indexOf("formaction") >= 0, "Check for action attribute" ); + equals( jQuery("#form").attr("blah", "blah").attr("blah"), "blah", "Set non-existant attribute on a form" ); + equals( jQuery("#foo").attr("height"), undefined, "Non existent height attribute should return undefined" ); // [7472] & [3113] (form contains an input with name="action" or name="id") - var extras = jQuery('<input name="id" name="name" /><input id="target" name="target" />').appendTo('#testForm'); - equals( jQuery('#form').attr('action','newformaction').attr('action'), 'newformaction', 'Check that action attribute was changed' ); - equals( jQuery('#testForm').attr('target'), undefined, 'Retrieving target does not equal the input with name=target' ); - equals( jQuery('#testForm').attr('target', 'newTarget').attr('target'), 'newTarget', 'Set target successfully on a form' ); - equals( jQuery('#testForm').removeAttr('id').attr('id'), undefined, 'Retrieving id does not equal the input with name=id after id is removed [#7472]' ); + var extras = jQuery("<input name='id' name='name' /><input id='target' name='target' />").appendTo("#testForm"); + equals( jQuery("#form").attr("action","newformaction").attr("action"), "newformaction", "Check that action attribute was changed" ); + equals( jQuery("#testForm").attr("target"), undefined, "Retrieving target does not equal the input with name=target" ); + equals( jQuery("#testForm").attr("target", "newTarget").attr("target"), "newTarget", "Set target successfully on a form" ); + equals( jQuery("#testForm").removeAttr("id").attr("id"), undefined, "Retrieving id does not equal the input with name=id after id is removed [#7472]" ); // Bug #3685 (form contains input with name="name") - equals( jQuery('#testForm').attr('name'), undefined, 'Retrieving name does not retrieve input with name=name' ); + equals( jQuery("#testForm").attr("name"), undefined, "Retrieving name does not retrieve input with name=name" ); extras.remove(); - equals( jQuery('#text1').attr('maxlength'), '30', 'Check for maxlength attribute' ); - equals( jQuery('#text1').attr('maxLength'), '30', 'Check for maxLength attribute' ); - equals( jQuery('#area1').attr('maxLength'), '30', 'Check for maxLength attribute' ); + equals( jQuery("#text1").attr("maxlength"), "30", "Check for maxlength attribute" ); + equals( jQuery("#text1").attr("maxLength"), "30", "Check for maxLength attribute" ); + equals( jQuery("#area1").attr("maxLength"), "30", "Check for maxLength attribute" ); // using innerHTML in IE causes href attribute to be serialized to the full path - jQuery('<a/>').attr({ 'id': 'tAnchor5', 'href': '#5' }).appendTo('#main'); - equals( jQuery('#tAnchor5').attr('href'), "#5", 'Check for non-absolute href (an anchor)' ); + jQuery("<a/>").attr({ "id": "tAnchor5", "href": "#5" }).appendTo("#main"); + equals( jQuery("#tAnchor5").attr("href"), "#5", "Check for non-absolute href (an anchor)" ); // list attribute is readonly by default in browsers that support it - jQuery('#list-test').attr('list', 'datalist'); - equals( jQuery('#list-test').attr('list'), 'datalist', 'Check setting list attribute' ); + jQuery("#list-test").attr("list", "datalist"); + equals( jQuery("#list-test").attr("list"), "datalist", "Check setting list attribute" ); // Related to [5574] and [5683] var body = document.body, $body = jQuery(body); - strictEqual( $body.attr('foo'), undefined, 'Make sure that a non existent attribute returns undefined' ); + strictEqual( $body.attr("foo"), undefined, "Make sure that a non existent attribute returns undefined" ); - body.setAttribute('foo', 'baz'); - equals( $body.attr('foo'), 'baz', 'Make sure the dom attribute is retrieved when no expando is found' ); + body.setAttribute("foo", "baz"); + equals( $body.attr("foo"), "baz", "Make sure the dom attribute is retrieved when no expando is found" ); - $body.attr('foo','cool'); - equals( $body.attr('foo'), 'cool', 'Make sure that setting works well when both expando and dom attribute are available' ); + $body.attr("foo","cool"); + equals( $body.attr("foo"), "cool", "Make sure that setting works well when both expando and dom attribute are available" ); - body.removeAttribute('foo'); // Cleanup + body.removeAttribute("foo"); // Cleanup - var $img = jQuery('<img style="display:none" width="215" height="53" src="http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif"/>').appendTo('body'); - equals( $img.attr('width'), "215", "Retrieve width attribute an an element with display:none." ); - equals( $img.attr('height'), "53", "Retrieve height attribute an an element with display:none." ); + var $img = jQuery("<img style='display:none' width='215' height='53' src='http://static.jquery.com/files/rocker/images/logo_jquery_215x53.gif'/>").appendTo("body"); + equals( $img.attr("width"), "215", "Retrieve width attribute an an element with display:none." ); + equals( $img.attr("height"), "53", "Retrieve height attribute an an element with display:none." ); // Check for style support - ok( !!~jQuery('#dl').attr('style').indexOf('position'), 'Check style attribute getter, also normalize css props to lowercase' ); - ok( !!~jQuery('#foo').attr('style', 'position:absolute;').attr('style').indexOf('position'), 'Check style setter' ); + ok( !!~jQuery("#dl").attr("style").indexOf("position"), "Check style attribute getter, also normalize css props to lowercase" ); + ok( !!~jQuery("#foo").attr("style", "position:absolute;").attr("style").indexOf("position"), "Check style setter" ); ok( jQuery("<div/>").attr("doesntexist") === undefined, "Make sure undefined is returned when no attribute is found." ); ok( jQuery().attr("doesntexist") === undefined, "Make sure undefined is returned when no element is there." ); @@ -153,19 +153,19 @@ if ( !isLocal ) { test("attr(String, Function)", function() { expect(2); - equals( jQuery('#text1').attr('value', function() { return this.id; })[0].value, "text1", "Set value from id" ); - equals( jQuery('#text1').attr('title', function(i) { return i; }).attr('title'), "0", "Set value with an index"); + equals( jQuery("#text1").attr("value", function() { return this.id; })[0].value, "text1", "Set value from id" ); + equals( jQuery("#text1").attr("title", function(i) { return i; }).attr("title"), "0", "Set value with an index"); }); test("attr(Hash)", function() { expect(3); var pass = true; - jQuery("div").attr({foo: 'baz', zoo: 'ping'}).each(function(){ - if ( this.getAttribute('foo') != "baz" && this.getAttribute('zoo') != "ping" ) pass = false; + jQuery("div").attr({foo: "baz", zoo: "ping"}).each(function(){ + if ( this.getAttribute("foo") != "baz" && this.getAttribute("zoo") != "ping" ) pass = false; }); ok( pass, "Set Multiple Attributes" ); - equals( jQuery('#text1').attr({'value': function() { return this.id; }})[0].value, "text1", "Set attribute to computed value #1" ); - equals( jQuery('#text1').attr({'title': function(i) { return i; }}).attr('title'), "0", "Set attribute to computed value #2"); + equals( jQuery("#text1").attr({value: function() { return this.id; }})[0].value, "text1", "Set attribute to computed value #1" ); + equals( jQuery("#text1").attr({title: function(i) { return i; }}).attr("title"), "0", "Set attribute to computed value #2"); }); @@ -176,7 +176,7 @@ test("attr(String, Object)", function() { fail = false; for ( var i = 0; i < div.size(); i++ ) { - if ( div.get(i).getAttribute('foo') != "bar" ){ + if ( div.get(i).getAttribute("foo") != "bar" ){ fail = i; break; } @@ -187,25 +187,25 @@ test("attr(String, Object)", function() { // Fails on IE since recent changes to .attr() // ok( jQuery("#foo").attr({"width": null}), "Try to set an attribute to nothing" ); - jQuery("#name").attr('name', 'something'); - equals( jQuery("#name").attr('name'), 'something', 'Set name attribute' ); - jQuery("#name").attr('name', null); - equals( jQuery("#name").attr('name'), undefined, 'Remove name attribute' ); - jQuery("#check2").attr('checked', true); - equals( document.getElementById('check2').checked, true, 'Set checked attribute' ); - jQuery("#check2").attr('checked', false); - equals( document.getElementById('check2').checked, false, 'Set checked attribute' ); - jQuery("#text1").attr('readonly', true); - equals( document.getElementById('text1').readOnly, true, 'Set readonly attribute' ); - jQuery("#text1").attr('readonly', false); - equals( document.getElementById('text1').readOnly, false, 'Set readonly attribute' ); - jQuery("#name").attr('maxlength', '5'); - equals( document.getElementById('name').maxLength, 5, 'Set maxlength attribute' ); - jQuery("#name").attr('maxLength', '10'); - equals( document.getElementById('name').maxLength, 10, 'Set maxlength attribute' ); - var $p = jQuery('#firstp').attr('nonexisting', 'foo'); - equals( $p.attr('nonexisting'), 'foo', "attr(name, value) works correctly for non existing attributes (bug #7500)."); - $p.removeAttr('nonexisting'); + jQuery("#name").attr("name", "something"); + equals( jQuery("#name").attr("name"), "something", "Set name attribute" ); + jQuery("#name").attr("name", null); + equals( jQuery("#name").attr("name"), undefined, "Remove name attribute" ); + jQuery("#check2").attr("checked", true); + equals( document.getElementById("check2").checked, true, "Set checked attribute" ); + jQuery("#check2").attr("checked", false); + equals( document.getElementById("check2").checked, false, "Set checked attribute" ); + jQuery("#text1").attr("readonly", true); + equals( document.getElementById("text1").readOnly, true, "Set readonly attribute" ); + jQuery("#text1").attr("readonly", false); + equals( document.getElementById("text1").readOnly, false, "Set readonly attribute" ); + jQuery("#name").attr("maxlength", "5"); + equals( document.getElementById("name").maxLength, 5, "Set maxlength attribute" ); + jQuery("#name").attr("maxLength", "10"); + equals( document.getElementById("name").maxLength, 10, "Set maxlength attribute" ); + var $p = jQuery("#firstp").attr("nonexisting", "foo"); + equals( $p.attr("nonexisting"), "foo", "attr(name, value) works correctly for non existing attributes (bug #7500)."); + $p.removeAttr("nonexisting"); var attributeNode = document.createAttribute("irrelevant"), commentNode = document.createComment("some comment"), @@ -217,8 +217,8 @@ test("attr(String, Object)", function() { strictEqual( $ele.attr("nonexisting"), undefined, "attr(name, value) works correctly on comment and text nodes (bug #7500)." ); }); - var table = jQuery('#table').append("<tr><td>cell</td></tr><tr><td>cell</td><td>cell</td></tr><tr><td>cell</td><td>cell</td></tr>"), - td = table.find('td:first'); + var table = jQuery("#table").append("<tr><td>cell</td></tr><tr><td>cell</td><td>cell</td></tr><tr><td>cell</td><td>cell</td></tr>"), + td = table.find("td:first"); td.attr("rowspan", "2"); equals( td[0].rowSpan, 2, "Check rowspan is correctly set" ); td.attr("colspan", "2"); @@ -227,12 +227,12 @@ test("attr(String, Object)", function() { equals( table[0].cellSpacing, "2", "Check cellspacing is correctly set" ); // for #1070 - jQuery("#name").attr('someAttr', '0'); - equals( jQuery("#name").attr('someAttr'), '0', 'Set attribute to a string of "0"' ); - jQuery("#name").attr('someAttr', 0); - equals( jQuery("#name").attr('someAttr'), '0', 'Set attribute to the number 0' ); - jQuery("#name").attr('someAttr', 1); - equals( jQuery("#name").attr('someAttr'), '1', 'Set attribute to the number 1' ); + jQuery("#name").attr("someAttr", "0"); + equals( jQuery("#name").attr("someAttr"), "0", "Set attribute to a string of \"0\"" ); + jQuery("#name").attr("someAttr", 0); + equals( jQuery("#name").attr("someAttr"), "0", "Set attribute to the number 0" ); + jQuery("#name").attr("someAttr", 1); + equals( jQuery("#name").attr("someAttr"), "1", "Set attribute to the number 1" ); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -244,51 +244,51 @@ test("attr(String, Object)", function() { QUnit.reset(); // Type - var type = jQuery("#check2").attr('type'); + var type = jQuery("#check2").attr("type"); var thrown = false; try { - jQuery("#check2").attr('type','hidden'); + jQuery("#check2").attr("type","hidden"); } catch(e) { thrown = true; } ok( thrown, "Exception thrown when trying to change type property" ); - equals( type, jQuery("#check2").attr('type'), "Verify that you can't change the type of an input element" ); + equals( type, jQuery("#check2").attr("type"), "Verify that you can't change the type of an input element" ); var check = document.createElement("input"); var thrown = true; try { - jQuery(check).attr('type','checkbox'); + jQuery(check).attr("type", "checkbox"); } catch(e) { thrown = false; } ok( thrown, "Exception thrown when trying to change type property" ); - equals( "checkbox", jQuery(check).attr('type'), "Verify that you can change the type of an input element that isn't in the DOM" ); + equals( "checkbox", jQuery(check).attr("type"), "Verify that you can change the type of an input element that isn't in the DOM" ); var check = jQuery("<input />"); var thrown = true; try { - check.attr('type','checkbox'); + check.attr("type","checkbox"); } catch(e) { thrown = false; } ok( thrown, "Exception thrown when trying to change type property" ); - equals( "checkbox", check.attr('type'), "Verify that you can change the type of an input element that isn't in the DOM" ); + equals( "checkbox", check.attr("type"), "Verify that you can change the type of an input element that isn't in the DOM" ); var button = jQuery("#button"); var thrown = false; try { - button.attr('type','submit'); + button.attr("type","submit"); } catch(e) { thrown = true; } ok( thrown, "Exception thrown when trying to change type property" ); - equals( "button", button.attr('type'), "Verify that you can't change the type of a button element" ); + equals( "button", button.attr("type"), "Verify that you can't change the type of a button element" ); // Setting attributes on svg elements (bug #3116) - var $svg = jQuery('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="full" width="3000" height="3000">' - + '<circle cx="200" cy="200" r="150" />' - + '</svg>').appendTo('body'); - equals( $svg.attr('cx', 100).attr('cx'), "100", "Set attribute on svg element" ); + var $svg = jQuery("<svg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' baseProfile='full' width='3000' height='3000'>" + + "<circle cx='200' cy='200' r='150' />" + + "</svg>").appendTo("body"); + equals( $svg.attr("cx", 100).attr("cx"), "100", "Set attribute on svg element" ); $svg.remove(); }); @@ -299,17 +299,17 @@ test("attr(jquery_method)", function(){ elem = $elem[0]; // one at a time - $elem.attr({'html': 'foo'}, true); - equals( elem.innerHTML, 'foo', 'attr(html)'); + $elem.attr({html: "foo"}, true); + equals( elem.innerHTML, "foo", "attr(html)"); - $elem.attr({'text': 'bar'}, true); - equals( elem.innerHTML, 'bar', 'attr(text)'); + $elem.attr({text: "bar"}, true); + equals( elem.innerHTML, "bar", "attr(text)"); - $elem.attr({'css': {color:'red'}}, true); - ok( /^(#ff0000|red)$/i.test(elem.style.color), 'attr(css)'); + $elem.attr({css: {color: "red"}}, true); + ok( /^(#ff0000|red)$/i.test(elem.style.color), "attr(css)"); - $elem.attr({'height': 10}, true); - equals( elem.style.height, '10px', 'attr(height)'); + $elem.attr({height: 10}, true); + equals( elem.style.height, "10px", "attr(height)"); // Multiple attributes @@ -318,22 +318,22 @@ test("attr(jquery_method)", function(){ css:{ paddingLeft:1, paddingRight:1 } }, true); - equals( elem.style.width, '10px', 'attr({...})'); - equals( elem.style.paddingLeft, '1px', 'attr({...})'); - equals( elem.style.paddingRight, '1px', 'attr({...})'); + equals( elem.style.width, "10px", "attr({...})"); + equals( elem.style.paddingLeft, "1px", "attr({...})"); + equals( elem.style.paddingRight, "1px", "attr({...})"); }); if ( !isLocal ) { test("attr(String, Object) - Loaded via XML document", function() { expect(2); stop(); - jQuery.get('data/dashboard.xml', function(xml) { + jQuery.get("data/dashboard.xml", function(xml) { var titles = []; - jQuery('tab', xml).each(function() { - titles.push(jQuery(this).attr('title')); + jQuery("tab", xml).each(function() { + titles.push(jQuery(this).attr("title")); }); - equals( titles[0], 'Location', 'attr() in XML context: Check first title' ); - equals( titles[1], 'Users', 'attr() in XML context: Check second title' ); + equals( titles[0], "Location", "attr() in XML context: Check first title" ); + equals( titles[1], "Users", "attr() in XML context: Check second title" ); start(); }); }); @@ -343,64 +343,64 @@ test("attr('tabindex')", function() { expect(8); // elements not natively tabbable - equals(jQuery('#listWithTabIndex').attr('tabindex'), 5, 'not natively tabbable, with tabindex set to 0'); - equals(jQuery('#divWithNoTabIndex').attr('tabindex'), undefined, 'not natively tabbable, no tabindex set'); + equals(jQuery("#listWithTabIndex").attr("tabindex"), 5, "not natively tabbable, with tabindex set to 0"); + equals(jQuery("#divWithNoTabIndex").attr("tabindex"), undefined, "not natively tabbable, no tabindex set"); // anchor with href - equals(jQuery('#linkWithNoTabIndex').attr('tabindex'), 0, 'anchor with href, no tabindex set'); - equals(jQuery('#linkWithTabIndex').attr('tabindex'), 2, 'anchor with href, tabindex set to 2'); - equals(jQuery('#linkWithNegativeTabIndex').attr('tabindex'), -1, 'anchor with href, tabindex set to -1'); + equals(jQuery("#linkWithNoTabIndex").attr("tabindex"), 0, "anchor with href, no tabindex set"); + equals(jQuery("#linkWithTabIndex").attr("tabindex"), 2, "anchor with href, tabindex set to 2"); + equals(jQuery("#linkWithNegativeTabIndex").attr("tabindex"), -1, "anchor with href, tabindex set to -1"); // anchor without href - equals(jQuery('#linkWithNoHrefWithNoTabIndex').attr('tabindex'), undefined, 'anchor without href, no tabindex set'); - equals(jQuery('#linkWithNoHrefWithTabIndex').attr('tabindex'), 1, 'anchor without href, tabindex set to 2'); - equals(jQuery('#linkWithNoHrefWithNegativeTabIndex').attr('tabindex'), -1, 'anchor without href, no tabindex set'); + equals(jQuery("#linkWithNoHrefWithNoTabIndex").attr("tabindex"), undefined, "anchor without href, no tabindex set"); + equals(jQuery("#linkWithNoHrefWithTabIndex").attr("tabindex"), 1, "anchor without href, tabindex set to 2"); + equals(jQuery("#linkWithNoHrefWithNegativeTabIndex").attr("tabindex"), -1, "anchor without href, no tabindex set"); }); test("attr('tabindex', value)", function() { expect(9); - var element = jQuery('#divWithNoTabIndex'); - equals(element.attr('tabindex'), undefined, 'start with no tabindex'); + var element = jQuery("#divWithNoTabIndex"); + equals(element.attr("tabindex"), undefined, "start with no tabindex"); // set a positive string - element.attr('tabindex', '1'); - equals(element.attr('tabindex'), 1, 'set tabindex to 1 (string)'); + element.attr("tabindex", "1"); + equals(element.attr("tabindex"), 1, "set tabindex to 1 (string)"); // set a zero string - element.attr('tabindex', '0'); - equals(element.attr('tabindex'), 0, 'set tabindex to 0 (string)'); + element.attr("tabindex", "0"); + equals(element.attr("tabindex"), 0, "set tabindex to 0 (string)"); // set a negative string - element.attr('tabindex', '-1'); - equals(element.attr('tabindex'), -1, 'set tabindex to -1 (string)'); + element.attr("tabindex", "-1"); + equals(element.attr("tabindex"), -1, "set tabindex to -1 (string)"); // set a positive number - element.attr('tabindex', 1); - equals(element.attr('tabindex'), 1, 'set tabindex to 1 (number)'); + element.attr("tabindex", 1); + equals(element.attr("tabindex"), 1, "set tabindex to 1 (number)"); // set a zero number - element.attr('tabindex', 0); - equals(element.attr('tabindex'), 0, 'set tabindex to 0 (number)'); + element.attr("tabindex", 0); + equals(element.attr("tabindex"), 0, "set tabindex to 0 (number)"); // set a negative number - element.attr('tabindex', -1); - equals(element.attr('tabindex'), -1, 'set tabindex to -1 (number)'); + element.attr("tabindex", -1); + equals(element.attr("tabindex"), -1, "set tabindex to -1 (number)"); - element = jQuery('#linkWithTabIndex'); - equals(element.attr('tabindex'), 2, 'start with tabindex 2'); + element = jQuery("#linkWithTabIndex"); + equals(element.attr("tabindex"), 2, "start with tabindex 2"); - element.attr('tabindex', -1); - equals(element.attr('tabindex'), -1, 'set negative tabindex'); + element.attr("tabindex", -1); + equals(element.attr("tabindex"), -1, "set negative tabindex"); }); test("removeAttr(String)", function() { expect(5); - equals( jQuery('#mark').removeAttr( "class" )[0].className, "", "remove class" ); - equals( jQuery('#form').removeAttr('id').attr('id'), undefined, 'Remove id' ); - equals( jQuery('#foo').attr('style', 'position:absolute;').removeAttr('style').attr('style'), undefined, 'Check removing style attribute' ); - equals( jQuery('#form').attr('style', 'position:absolute;').removeAttr('style').attr('style'), undefined, 'Check removing style attribute on a form' ); - equals( jQuery('#fx-test-group').attr('height', '3px').removeAttr('height').css('height'), "1px", 'Removing height attribute has no effect on height set with style attribute' ); + equals( jQuery("#mark").removeAttr( "class" )[0].className, "", "remove class" ); + equals( jQuery("#form").removeAttr("id").attr("id"), undefined, "Remove id" ); + equals( jQuery("#foo").attr("style", "position:absolute;").removeAttr("style").attr("style"), undefined, "Check removing style attribute" ); + equals( jQuery("#form").attr("style", "position:absolute;").removeAttr("style").attr("style"), undefined, "Check removing style attribute on a form" ); + equals( jQuery("#fx-test-group").attr("height", "3px").removeAttr("height").css("height"), "1px", "Removing height attribute has no effect on height set with style attribute" ); }); test("removeProp(String)", function() { @@ -427,7 +427,7 @@ test("removeProp(String)", function() { test("val()", function() { expect(23); - document.getElementById('text1').value = "bla"; + document.getElementById("text1").value = "bla"; equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" ); QUnit.reset(); @@ -437,36 +437,36 @@ test("val()", function() { equals( jQuery("#first").val(), "", "Check a paragraph element to see if it has a value" ); ok( jQuery([]).val() === undefined, "Check an empty jQuery object will return undefined from val" ); - equals( jQuery('#select2').val(), '3', 'Call val() on a single="single" select' ); + equals( jQuery("#select2").val(), "3", "Call val() on a single=\"single\" select" ); - same( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" select' ); + same( jQuery("#select3").val(), ["1", "2"], "Call val() on a multiple=\"multiple\" select" ); - equals( jQuery('#option3c').val(), '2', 'Call val() on a option element with value' ); + equals( jQuery("#option3c").val(), "2", "Call val() on a option element with value" ); - equals( jQuery('#option3a').val(), '', 'Call val() on a option element with empty value' ); + equals( jQuery("#option3a").val(), "", "Call val() on a option element with empty value" ); - equals( jQuery('#option3e').val(), 'no value', 'Call val() on a option element with no value attribute' ); + equals( jQuery("#option3e").val(), "no value", "Call val() on a option element with no value attribute" ); - equals( jQuery('#option3a').val(), '', 'Call val() on a option element with no value attribute' ); + equals( jQuery("#option3a").val(), "", "Call val() on a option element with no value attribute" ); - jQuery('#select3').val(""); - same( jQuery('#select3').val(), [''], 'Call val() on a multiple="multiple" select' ); + jQuery("#select3").val(""); + same( jQuery("#select3").val(), [""], "Call val() on a multiple=\"multiple\" select" ); - same( jQuery('#select4').val(), [], 'Call val() on multiple="multiple" select with all disabled options' ); + same( jQuery("#select4").val(), [], "Call val() on multiple=\"multiple\" select with all disabled options" ); - jQuery('#select4 optgroup').add('#select4 > [disabled]').attr('disabled', false); - same( jQuery('#select4').val(), ['2', '3'], 'Call val() on multiple="multiple" select with some disabled options' ); + jQuery("#select4 optgroup").add("#select4 > [disabled]").attr("disabled", false); + same( jQuery("#select4").val(), ["2", "3"], "Call val() on multiple=\"multiple\" select with some disabled options" ); - jQuery('#select4').attr('disabled', true); - same( jQuery('#select4').val(), ['2', '3'], 'Call val() on disabled multiple="multiple" select' ); + jQuery("#select4").attr("disabled", true); + same( jQuery("#select4").val(), ["2", "3"], "Call val() on disabled multiple=\"multiple\" select" ); - equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." ); + equals( jQuery("#select5").val(), "3", "Check value on ambiguous select." ); - jQuery('#select5').val(1); - equals( jQuery('#select5').val(), "1", "Check value on ambiguous select." ); + jQuery("#select5").val(1); + equals( jQuery("#select5").val(), "1", "Check value on ambiguous select." ); - jQuery('#select5').val(3); - equals( jQuery('#select5').val(), "3", "Check value on ambiguous select." ); + jQuery("#select5").val(3); + equals( jQuery("#select5").val(), "3", "Check value on ambiguous select." ); var checks = jQuery("<input type='checkbox' name='test' value='1'/><input type='checkbox' name='test' value='2'/><input type='checkbox' name='test' value=''/><input type='checkbox' name='test'/>").appendTo("#form"); @@ -492,17 +492,17 @@ test("val()", function() { var testVal = function(valueObj) { expect(8); - jQuery("#text1").val(valueObj( 'test' )); - equals( document.getElementById('text1').value, "test", "Check for modified (via val(String)) value of input element" ); + jQuery("#text1").val(valueObj( "test" )); + equals( document.getElementById("text1").value, "test", "Check for modified (via val(String)) value of input element" ); jQuery("#text1").val(valueObj( undefined )); - equals( document.getElementById('text1').value, "", "Check for modified (via val(undefined)) value of input element" ); + equals( document.getElementById("text1").value, "", "Check for modified (via val(undefined)) value of input element" ); jQuery("#text1").val(valueObj( 67 )); - equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" ); + equals( document.getElementById("text1").value, "67", "Check for modified (via val(Number)) value of input element" ); jQuery("#text1").val(valueObj( null )); - equals( document.getElementById('text1').value, "", "Check for modified (via val(null)) value of input element" ); + equals( document.getElementById("text1").value, "", "Check for modified (via val(null)) value of input element" ); jQuery("#select1").val(valueObj( "3" )); equals( jQuery("#select1").val(), "3", "Check for modified (via val(String)) value of select element" ); @@ -531,8 +531,8 @@ test("val(Function)", function() { test( "val(Array of Numbers) (Bug #7123)", function() { expect(4); - jQuery('#form').append('<input type="checkbox" name="arrayTest" value="1" /><input type="checkbox" name="arrayTest" value="2" /><input type="checkbox" name="arrayTest" value="3" checked="checked" /><input type="checkbox" name="arrayTest" value="4" />'); - var elements = jQuery('input[name=arrayTest]').val([ 1, 2 ]); + jQuery("#form").append("<input type='checkbox' name='arrayTest' value='1' /><input type='checkbox' name='arrayTest' value='2' /><input type='checkbox' name='arrayTest' value='3' checked='checked' /><input type='checkbox' name='arrayTest' value='4' />"); + var elements = jQuery("input[name=arrayTest]").val([ 1, 2 ]); ok( elements[0].checked, "First element was checked" ); ok( elements[1].checked, "Second element was checked" ); ok( !elements[2].checked, "Third element was unchecked" ); @@ -551,7 +551,7 @@ test("val(Function) with incoming value", function() { return "test"; }); - equals( document.getElementById('text1').value, "test", "Check for modified (via val(String)) value of input element" ); + equals( document.getElementById("text1").value, "test", "Check for modified (via val(String)) value of input element" ); oldVal = jQuery("#text1").val(); @@ -560,7 +560,7 @@ test("val(Function) with incoming value", function() { return 67; }); - equals( document.getElementById('text1').value, "67", "Check for modified (via val(Number)) value of input element" ); + equals( document.getElementById("text1").value, "67", "Check for modified (via val(Number)) value of input element" ); oldVal = jQuery("#select1").val(); @@ -596,7 +596,7 @@ test("val(Function) with incoming value", function() { test("val(select) after form.reset() (Bug #2551)", function() { expect(3); - jQuery('<form id="kk" name="kk"><select id="kkk"><option value="cf">cf</option><option value="gf">gf</option></select></form>').appendTo("#main"); + jQuery("<form id='kk' name='kk'><select id='kkk'><option value='cf'>cf</option><option value='gf'>gf</option></select></form>").appendTo("#main"); jQuery("#kkk").val( "gf" ); @@ -606,7 +606,7 @@ test("val(select) after form.reset() (Bug #2551)", function() { equal( jQuery("#kkk").val(), "cf", "Check value of select after form reset." ); // re-verify the multi-select is not broken (after form.reset) by our fix for single-select - same( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" select' ); + same( jQuery("#select3").val(), ["1", "2"], "Call val() on a multiple=\"multiple\" select" ); jQuery("#kk").remove(); }); @@ -671,29 +671,29 @@ test("addClass(Function) with incoming value", function() { var testRemoveClass = function(valueObj) { expect(7); - var $divs = jQuery('div'); + var $divs = jQuery("div"); $divs.addClass("test").removeClass( valueObj("test") ); - ok( !$divs.is('.test'), "Remove Class" ); + ok( !$divs.is(".test"), "Remove Class" ); QUnit.reset(); - $divs = jQuery('div'); + $divs = jQuery("div"); $divs.addClass("test").addClass("foo").addClass("bar"); $divs.removeClass( valueObj("test") ).removeClass( valueObj("bar") ).removeClass( valueObj("foo") ); - ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" ); + ok( !$divs.is(".test,.bar,.foo"), "Remove multiple classes" ); QUnit.reset(); - $divs = jQuery('div'); + $divs = jQuery("div"); // Make sure that a null value doesn't cause problems $divs.eq(0).addClass("test").removeClass( valueObj(null) ); - ok( $divs.eq(0).is('.test'), "Null value passed to removeClass" ); + ok( $divs.eq(0).is(".test"), "Null value passed to removeClass" ); $divs.eq(0).addClass("test").removeClass( valueObj("") ); - ok( $divs.eq(0).is('.test'), "Empty string passed to removeClass" ); + ok( $divs.eq(0).is(".test"), "Empty string passed to removeClass" ); // using contents will get regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -723,7 +723,7 @@ test("removeClass(Function) - simple", function() { test("removeClass(Function) with incoming value", function() { expect(45); - var $divs = jQuery('div').addClass("test"), old = $divs.map(function(){ + var $divs = jQuery("div").addClass("test"), old = $divs.map(function(){ return jQuery(this).attr("class"); }); @@ -734,7 +734,7 @@ test("removeClass(Function) with incoming value", function() { } }); - ok( !$divs.is('.test'), "Remove Class" ); + ok( !$divs.is(".test"), "Remove Class" ); QUnit.reset(); }); @@ -772,7 +772,7 @@ var testToggleClass = function(valueObj) { ok( e.is(".testD.testE"), "Assert class present" ); e.toggleClass(); ok( !e.is(".testD.testE"), "Assert class not present" ); - ok( jQuery._data(e[0], '__className__') === 'testD testE', "Assert data was stored" ); + ok( jQuery._data(e[0], "__className__") === "testD testE", "Assert data was stored" ); e.toggleClass(); ok( e.is(".testD.testE"), "Assert class present (restored from data)" ); e.toggleClass(false); @@ -786,7 +786,7 @@ var testToggleClass = function(valueObj) { // Cleanup e.removeClass("testD"); - jQuery.removeData(e[0], '__className__', true); + jQuery.removeData(e[0], "__className__", true); }; test("toggleClass(String|boolean|undefined[, boolean])", function() { @@ -847,7 +847,7 @@ test("toggleClass(Fucntion[, boolean]) with incoming value", function() { // Cleanup e.removeClass("test"); - jQuery.removeData(e[0], '__className__', true); + jQuery.removeData(e[0], "__className__", true); }); test("addClass, removeClass, hasClass", function() { diff --git a/test/unit/core.js b/test/unit/core.js index c2a23b1a8..8d29575a5 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -62,7 +62,7 @@ test("jQuery()", function() { equals( jQuery([1,2,3]).get(1), 2, "Test passing an array to the factory" ); - equals( jQuery(document.body).get(0), jQuery('body').get(0), "Test passing an html node to the factory" ); + equals( jQuery(document.body).get(0), jQuery("body").get(0), "Test passing an html node to the factory" ); var exec = false; @@ -75,13 +75,13 @@ test("jQuery()", function() { id: "test3" }); - equals( elem[0].style.width, '10px', 'jQuery() quick setter width'); - equals( elem[0].style.paddingLeft, '1px', 'jQuery quick setter css'); - equals( elem[0].style.paddingRight, '1px', 'jQuery quick setter css'); - equals( elem[0].childNodes.length, 1, 'jQuery quick setter text'); - equals( elem[0].firstChild.nodeValue, "test", 'jQuery quick setter text'); - equals( elem[0].className, "test2", 'jQuery() quick setter class'); - equals( elem[0].id, "test3", 'jQuery() quick setter id'); + equals( elem[0].style.width, "10px", "jQuery() quick setter width"); + equals( elem[0].style.paddingLeft, "1px", "jQuery quick setter css"); + equals( elem[0].style.paddingRight, "1px", "jQuery quick setter css"); + equals( elem[0].childNodes.length, 1, "jQuery quick setter text"); + equals( elem[0].firstChild.nodeValue, "test", "jQuery quick setter text"); + equals( elem[0].className, "test2", "jQuery() quick setter class"); + equals( elem[0].id, "test3", "jQuery() quick setter id"); exec = true; elem.click(); @@ -460,7 +460,7 @@ if ( !isLocal ) { test("isXMLDoc - XML", function() { expect(3); stop(); - jQuery.get('data/dashboard.xml', function(xml) { + jQuery.get("data/dashboard.xml", function(xml) { ok( jQuery.isXMLDoc( xml ), "XML document" ); ok( jQuery.isXMLDoc( xml.documentElement ), "XML documentElement" ); ok( jQuery.isXMLDoc( jQuery("tab", xml)[0] ), "XML Tab Element" ); @@ -524,15 +524,15 @@ test("jQuery('html')", function() { // Test very large html string #7990 var i; - var li = '<li>very large html string</li>'; - var html = ['<ul>']; + var li = "<li>very large html string</li>"; + var html = ["<ul>"]; for ( i = 0; i < 50000; i += 1 ) { html.push(li); } - html.push('</ul>'); - html = jQuery(html.join(''))[0]; - equals( html.nodeName.toUpperCase(), 'UL'); - equals( html.firstChild.nodeName.toUpperCase(), 'LI'); + html.push("</ul>"); + html = jQuery(html.join(""))[0]; + equals( html.nodeName.toUpperCase(), "UL"); + equals( html.firstChild.nodeName.toUpperCase(), "LI"); equals( html.childNodes.length, 50000 ); }); @@ -548,7 +548,7 @@ if ( !isLocal ) { test("jQuery(selector, xml).text(str) - Loaded via XML document", function() { expect(2); stop(); - jQuery.get('data/dashboard.xml', function(xml) { + jQuery.get("data/dashboard.xml", function(xml) { // tests for #1419 where IE was a problem var tab = jQuery("tab", xml).eq(0); equals( tab.text(), "blabla", "Verify initial text correct" ); @@ -561,12 +561,12 @@ test("jQuery(selector, xml).text(str) - Loaded via XML document", function() { test("end()", function() { expect(3); - equals( 'Yahoo', jQuery('#yahoo').parent().end().text(), 'Check for end' ); - ok( jQuery('#yahoo').end(), 'Check for end with nothing to end' ); + equals( "Yahoo", jQuery("#yahoo").parent().end().text(), "Check for end" ); + ok( jQuery("#yahoo").end(), "Check for end with nothing to end" ); - var x = jQuery('#yahoo'); + var x = jQuery("#yahoo"); x.parent(); - equals( 'Yahoo', jQuery('#yahoo').text(), 'Check for non-destructive behaviour' ); + equals( "Yahoo", jQuery("#yahoo").text(), "Check for non-destructive behaviour" ); }); test("length", function() { @@ -606,7 +606,7 @@ test("get(-Number)",function() { test("each(Function)", function() { expect(1); var div = jQuery("div"); - div.each(function(){this.foo = 'zoo';}); + div.each(function(){this.foo = "zoo";}); var pass = true; for ( var i = 0; i < div.size(); i++ ) { if ( div.get(i).foo != "zoo" ) pass = false; @@ -625,7 +625,7 @@ test("slice()", function() { same( $links.slice(-1).get(), q("mark"), "slice(-1)" ); same( $links.eq(1).get(), q("groups"), "eq(1)" ); - same( $links.eq('2').get(), q("anchor1"), "eq('2')" ); + same( $links.eq("2").get(), q("anchor1"), "eq('2')" ); same( $links.eq(-1).get(), q("mark"), "eq(-1)" ); }); @@ -792,7 +792,7 @@ test("jQuery.extend(Object, Object)", function() { ok( typeof ret.foo != "string", "Check to make sure values equal with coersion (but not actually equal) overwrite correctly" ); var ret = jQuery.extend(true, { foo:"bar" }, { foo:null } ); - ok( typeof ret.foo !== 'undefined', "Make sure a null value doesn't crash with deep extend, for #1908" ); + ok( typeof ret.foo !== "undefined", "Make sure a null value doesn't crash with deep extend, for #1908" ); var obj = { foo:null }; jQuery.extend(true, obj, { foo:"notnull" } ); @@ -818,7 +818,7 @@ test("jQuery.extend(Object, Object)", function() { }); test("jQuery.each(Object,Function)", function() { - expect(13); + expect(14); jQuery.each( [0,1,2], function(i, n){ equals( i, n, "Check array iteration" ); }); @@ -845,17 +845,24 @@ test("jQuery.each(Object,Function)", function() { equals( total, 3, "Looping over an object, with break" ); var f = function(){}; - f.foo = 'bar'; + f.foo = "bar"; jQuery.each(f, function(i){ - f[i] = 'baz'; + f[i] = "baz"; }); equals( "baz", f.foo, "Loop over a function" ); + + var stylesheet_count = 0; + jQuery.each(document.styleSheets, function(i){ + stylesheet_count++; + }); + equals(stylesheet_count, 2, "should not throw an error in IE while looping over document.styleSheets and return proper amount"); + }); test("jQuery.makeArray", function(){ expect(17); - equals( jQuery.makeArray(jQuery('html>*'))[0].nodeName.toUpperCase(), "HEAD", "Pass makeArray a jQuery object" ); + equals( jQuery.makeArray(jQuery("html>*"))[0].nodeName.toUpperCase(), "HEAD", "Pass makeArray a jQuery object" ); equals( jQuery.makeArray(document.getElementsByName("PWD")).slice(0,1)[0].name, "PWD", "Pass makeArray a nodelist" ); @@ -885,11 +892,11 @@ test("jQuery.makeArray", function(){ equals( jQuery.makeArray(/a/)[0].constructor, RegExp, "Pass makeArray a regex" ); - ok( jQuery.makeArray(document.getElementById('form')).length >= 13, "Pass makeArray a form (treat as elements)" ); + ok( jQuery.makeArray(document.getElementById("form")).length >= 13, "Pass makeArray a form (treat as elements)" ); // For #5610 - same( jQuery.makeArray({'length': '0'}), [], "Make sure object is coerced properly."); - same( jQuery.makeArray({'length': '5'}), [], "Make sure object is coerced properly."); + same( jQuery.makeArray({length: "0"}), [], "Make sure object is coerced properly."); + same( jQuery.makeArray({length: "5"}), [], "Make sure object is coerced properly."); }); test("jQuery.isEmptyObject", function(){ @@ -938,9 +945,9 @@ test("jQuery.parseJSON", function(){ equals( jQuery.parseJSON( "" ), null, "Nothing in, null out." ); same( jQuery.parseJSON("{}"), {}, "Plain object parsing." ); - same( jQuery.parseJSON('{"test":1}'), {"test":1}, "Plain object parsing." ); + same( jQuery.parseJSON("{\"test\":1}"), {"test":1}, "Plain object parsing." ); - same( jQuery.parseJSON('\n{"test":1}'), {"test":1}, "Make sure leading whitespaces are handled." ); + same( jQuery.parseJSON("\n{\"test\":1}"), {"test":1}, "Make sure leading whitespaces are handled." ); try { jQuery.parseJSON("{a:1}"); @@ -964,7 +971,7 @@ test("jQuery.sub() - Static Methods", function(){ topLevelMethod: function() {return this.debug;}, debug: false, config: { - locale: 'en_US' + locale: "en_US" }, setup: function(config) { this.extend(true, this.config, config); @@ -973,37 +980,37 @@ test("jQuery.sub() - Static Methods", function(){ Subclass.fn.extend({subClassMethod: function() { return this;}}); //Test Simple Subclass - ok(Subclass.topLevelMethod() === false, 'Subclass.topLevelMethod thought debug was true'); - ok(Subclass.config.locale == 'en_US', Subclass.config.locale + ' is wrong!'); - same(Subclass.config.test, undefined, 'Subclass.config.test is set incorrectly'); - equal(jQuery.ajax, Subclass.ajax, 'The subclass failed to get all top level methods'); + ok(Subclass.topLevelMethod() === false, "Subclass.topLevelMethod thought debug was true"); + ok(Subclass.config.locale == "en_US", Subclass.config.locale + " is wrong!"); + same(Subclass.config.test, undefined, "Subclass.config.test is set incorrectly"); + equal(jQuery.ajax, Subclass.ajax, "The subclass failed to get all top level methods"); //Create a SubSubclass var SubSubclass = Subclass.sub(); //Make Sure the SubSubclass inherited properly - ok(SubSubclass.topLevelMethod() === false, 'SubSubclass.topLevelMethod thought debug was true'); - ok(SubSubclass.config.locale == 'en_US', SubSubclass.config.locale + ' is wrong!'); - same(SubSubclass.config.test, undefined, 'SubSubclass.config.test is set incorrectly'); - equal(jQuery.ajax, SubSubclass.ajax, 'The subsubclass failed to get all top level methods'); + ok(SubSubclass.topLevelMethod() === false, "SubSubclass.topLevelMethod thought debug was true"); + ok(SubSubclass.config.locale == "en_US", SubSubclass.config.locale + " is wrong!"); + same(SubSubclass.config.test, undefined, "SubSubclass.config.test is set incorrectly"); + equal(jQuery.ajax, SubSubclass.ajax, "The subsubclass failed to get all top level methods"); //Modify The Subclass and test the Modifications SubSubclass.fn.extend({subSubClassMethod: function() { return this;}}); - SubSubclass.setup({locale: 'es_MX', test: 'worked'}); + SubSubclass.setup({locale: "es_MX", test: "worked"}); SubSubclass.debug = true; SubSubclass.ajax = function() {return false;}; - ok(SubSubclass.topLevelMethod(), 'SubSubclass.topLevelMethod thought debug was false'); - same(SubSubclass(document).subClassMethod, Subclass.fn.subClassMethod, 'Methods Differ!'); - ok(SubSubclass.config.locale == 'es_MX', SubSubclass.config.locale + ' is wrong!'); - ok(SubSubclass.config.test == 'worked', 'SubSubclass.config.test is set incorrectly'); - notEqual(jQuery.ajax, SubSubclass.ajax, 'The subsubclass failed to get all top level methods'); + ok(SubSubclass.topLevelMethod(), "SubSubclass.topLevelMethod thought debug was false"); + same(SubSubclass(document).subClassMethod, Subclass.fn.subClassMethod, "Methods Differ!"); + ok(SubSubclass.config.locale == "es_MX", SubSubclass.config.locale + " is wrong!"); + ok(SubSubclass.config.test == "worked", "SubSubclass.config.test is set incorrectly"); + notEqual(jQuery.ajax, SubSubclass.ajax, "The subsubclass failed to get all top level methods"); //This shows that the modifications to the SubSubClass did not bubble back up to it's superclass - ok(Subclass.topLevelMethod() === false, 'Subclass.topLevelMethod thought debug was true'); - ok(Subclass.config.locale == 'en_US', Subclass.config.locale + ' is wrong!'); - same(Subclass.config.test, undefined, 'Subclass.config.test is set incorrectly'); - same(Subclass(document).subSubClassMethod, undefined, 'subSubClassMethod set incorrectly'); - equal(jQuery.ajax, Subclass.ajax, 'The subclass failed to get all top level methods'); + ok(Subclass.topLevelMethod() === false, "Subclass.topLevelMethod thought debug was true"); + ok(Subclass.config.locale == "en_US", Subclass.config.locale + " is wrong!"); + same(Subclass.config.test, undefined, "Subclass.config.test is set incorrectly"); + same(Subclass(document).subSubClassMethod, undefined, "subSubClassMethod set incorrectly"); + equal(jQuery.ajax, Subclass.ajax, "The subclass failed to get all top level methods"); }); test("jQuery.sub() - .fn Methods", function(){ @@ -1014,25 +1021,25 @@ test("jQuery.sub() - .fn Methods", function(){ jQueryDocument = jQuery(document), selectors, contexts, methods, method, arg, description; - jQueryDocument.toString = function(){ return 'jQueryDocument'; }; + jQueryDocument.toString = function(){ return "jQueryDocument"; }; Subclass.fn.subclassMethod = function(){}; SubclassSubclass.fn.subclassSubclassMethod = function(){}; selectors = [ - 'body', - 'html, body', - '<div></div>' + "body", + "html, body", + "<div></div>" ]; methods = [ // all methods that return a new jQuery instance - ['eq', 1], - ['add', document], - ['end'], - ['has'], - ['closest', 'div'], - ['filter', document], - ['find', 'div'] + ["eq", 1], + ["add", document], + ["end"], + ["has"], + ["closest", "div"], + ["filter", document], + ["find", "div"] ]; contexts = [undefined, document, jQueryDocument]; @@ -1045,31 +1052,31 @@ test("jQuery.sub() - .fn Methods", function(){ jQuery.each(contexts, function(i, context){ - description = '("'+selector+'", '+context+').'+method+'('+(arg||'')+')'; + description = "(\""+selector+"\", "+context+")."+method+"("+(arg||"")+")"; same( jQuery(selector, context)[method](arg).subclassMethod, undefined, - 'jQuery'+description+' doesnt have Subclass methods' + "jQuery"+description+" doesn't have Subclass methods" ); same( jQuery(selector, context)[method](arg).subclassSubclassMethod, undefined, - 'jQuery'+description+' doesnt have SubclassSubclass methods' + "jQuery"+description+" doesn't have SubclassSubclass methods" ); same( Subclass(selector, context)[method](arg).subclassMethod, Subclass.fn.subclassMethod, - 'Subclass'+description+' has Subclass methods' + "Subclass"+description+" has Subclass methods" ); same( Subclass(selector, context)[method](arg).subclassSubclassMethod, undefined, - 'Subclass'+description+' doesnt have SubclassSubclass methods' + "Subclass"+description+" doesn't have SubclassSubclass methods" ); same( SubclassSubclass(selector, context)[method](arg).subclassMethod, Subclass.fn.subclassMethod, - 'SubclassSubclass'+description+' has Subclass methods' + "SubclassSubclass"+description+" has Subclass methods" ); same( SubclassSubclass(selector, context)[method](arg).subclassSubclassMethod, SubclassSubclass.fn.subclassSubclassMethod, - 'SubclassSubclass'+description+' has SubclassSubclass methods' + "SubclassSubclass"+description+" has SubclassSubclass methods" ); }); diff --git a/test/unit/css.js b/test/unit/css.js index 08f50ef25..33bc1548d 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -1,15 +1,15 @@ module("css", { teardown: moduleTeardown }); test("css(String|Hash)", function() { - expect(41); + expect( 42 ); - equals( jQuery('#main').css("display"), 'block', 'Check for css property "display"'); + equals( jQuery("#main").css("display"), "block", "Check for css property \"display\""); - ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible'); - jQuery('#nothiddendiv').css({display: 'none'}); - ok( !jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is hidden'); - jQuery('#nothiddendiv').css({display: 'block'}); - ok( jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is visible'); + ok( jQuery("#nothiddendiv").is(":visible"), "Modifying CSS display: Assert element is visible"); + jQuery("#nothiddendiv").css({display: "none"}); + ok( !jQuery("#nothiddendiv").is(":visible"), "Modified CSS display: Assert element is hidden"); + jQuery("#nothiddendiv").css({display: "block"}); + ok( jQuery("#nothiddendiv").is(":visible"), "Modified CSS display: Assert element is visible"); var div = jQuery( "<div>" ); @@ -32,34 +32,37 @@ test("css(String|Hash)", function() { div2.remove(); // handle negative numbers by ignoring #1599, #4216 - jQuery('#nothiddendiv').css({ 'width': 1, 'height': 1 }); + jQuery("#nothiddendiv").css( {width: 1, height: 1} ); - var width = parseFloat(jQuery('#nothiddendiv').css('width')), height = parseFloat(jQuery('#nothiddendiv').css('height')); - jQuery('#nothiddendiv').css({ width: -1, height: -1 }); - equals( parseFloat(jQuery('#nothiddendiv').css('width')), width, 'Test negative width ignored') - equals( parseFloat(jQuery('#nothiddendiv').css('height')), height, 'Test negative height ignored') + var width = parseFloat(jQuery("#nothiddendiv").css("width")), height = parseFloat(jQuery("#nothiddendiv").css("height")); + jQuery("#nothiddendiv").css({ width: -1, height: -1 }); + equals( parseFloat(jQuery("#nothiddendiv").css("width")), width, "Test negative width ignored") + equals( parseFloat(jQuery("#nothiddendiv").css("height")), height, "Test negative height ignored") - equals( jQuery('<div style="display: none;">').css('display'), 'none', 'Styles on disconnected nodes'); + equals( jQuery("<div style='display: none;'>").css("display"), "none", "Styles on disconnected nodes"); - jQuery('#floatTest').css({'float': 'right'}); - equals( jQuery('#floatTest').css('float'), 'right', 'Modified CSS float using "float": Assert float is right'); - jQuery('#floatTest').css({'font-size': '30px'}); - equals( jQuery('#floatTest').css('font-size'), '30px', 'Modified CSS font-size: Assert font-size is 30px'); + jQuery("#floatTest").css({"float": "right"}); + equals( jQuery("#floatTest").css("float"), "right", "Modified CSS float using \"float\": Assert float is right"); + jQuery("#floatTest").css({"font-size": "30px"}); + equals( jQuery("#floatTest").css("font-size"), "30px", "Modified CSS font-size: Assert font-size is 30px"); - jQuery.each("0,0.25,0.5,0.75,1".split(','), function(i, n) { - jQuery('#foo').css({opacity: n}); - equals( jQuery('#foo').css('opacity'), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" ); - jQuery('#foo').css({opacity: parseFloat(n)}); - equals( jQuery('#foo').css('opacity'), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" ); + jQuery.each("0,0.25,0.5,0.75,1".split(","), function(i, n) { + jQuery("#foo").css({opacity: n}); + equals( jQuery("#foo").css("opacity"), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" ); + jQuery("#foo").css({opacity: parseFloat(n)}); + equals( jQuery("#foo").css("opacity"), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" ); }); - jQuery('#foo').css({opacity: ''}); - equals( jQuery('#foo').css('opacity'), '1', "Assert opacity is 1 when set to an empty String" ); + jQuery("#foo").css({opacity: ""}); + equals( jQuery("#foo").css("opacity"), "1", "Assert opacity is 1 when set to an empty String" ); - equals( jQuery('#empty').css('opacity'), '0', "Assert opacity is accessible via filter property set in stylesheet in IE" ); - jQuery('#empty').css({ opacity: '1' }); - equals( jQuery('#empty').css('opacity'), '1', "Assert opacity is taken from style attribute when set vs stylesheet in IE with filters" ); + equals( jQuery("#empty").css("opacity"), "0", "Assert opacity is accessible via filter property set in stylesheet in IE" ); + jQuery("#empty").css({ opacity: "1" }); + equals( jQuery("#empty").css("opacity"), "1", "Assert opacity is taken from style attribute when set vs stylesheet in IE with filters" ); + jQuery.support.opacity ? + ok(true, "Requires the same number of tests"): + ok( ~jQuery("#empty")[0].currentStyle.filter.indexOf("gradient"), "Assert setting opacity doesn't overwrite other filters of the stylesheet in IE" ); - var div = jQuery('#nothiddendiv'), child = jQuery('#nothiddendivchild'); + var div = jQuery("#nothiddendiv"), child = jQuery("#nothiddendivchild"); equals( parseInt(div.css("fontSize")), 16, "Verify fontSize px set." ); equals( parseInt(div.css("font-size")), 16, "Verify fontSize px set." ); @@ -107,7 +110,7 @@ test("css(String|Hash)", function() { test("css() explicit and relative values", function() { expect(9); - var $elem = jQuery('#nothiddendiv'); + var $elem = jQuery("#nothiddendiv"); $elem.css({ width: 1, height: 1 }); equals( $elem.width(), 1, "Initial css set or width/height works (hash)" ); @@ -140,28 +143,28 @@ test("css() explicit and relative values", function() { test("css(String, Object)", function() { expect(22); - ok( jQuery('#nothiddendiv').is(':visible'), 'Modifying CSS display: Assert element is visible'); - jQuery('#nothiddendiv').css("display", 'none'); - ok( !jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is hidden'); - jQuery('#nothiddendiv').css("display", 'block'); - ok( jQuery('#nothiddendiv').is(':visible'), 'Modified CSS display: Assert element is visible'); + ok( jQuery("#nothiddendiv").is(":visible"), "Modifying CSS display: Assert element is visible"); + jQuery("#nothiddendiv").css("display", "none"); + ok( !jQuery("#nothiddendiv").is(":visible"), "Modified CSS display: Assert element is hidden"); + jQuery("#nothiddendiv").css("display", "block"); + ok( jQuery("#nothiddendiv").is(":visible"), "Modified CSS display: Assert element is visible"); jQuery("#nothiddendiv").css("top", "-1em"); ok( jQuery("#nothiddendiv").css("top"), -16, "Check negative number in EMs." ); - jQuery('#floatTest').css('float', 'left'); - equals( jQuery('#floatTest').css('float'), 'left', 'Modified CSS float using "float": Assert float is left'); - jQuery('#floatTest').css('font-size', '20px'); - equals( jQuery('#floatTest').css('font-size'), '20px', 'Modified CSS font-size: Assert font-size is 20px'); + jQuery("#floatTest").css("float", "left"); + equals( jQuery("#floatTest").css("float"), "left", "Modified CSS float using \"float\": Assert float is left"); + jQuery("#floatTest").css("font-size", "20px"); + equals( jQuery("#floatTest").css("font-size"), "20px", "Modified CSS font-size: Assert font-size is 20px"); - jQuery.each("0,0.25,0.5,0.75,1".split(','), function(i, n) { - jQuery('#foo').css('opacity', n); - equals( jQuery('#foo').css('opacity'), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" ); - jQuery('#foo').css('opacity', parseFloat(n)); - equals( jQuery('#foo').css('opacity'), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" ); + jQuery.each("0,0.25,0.5,0.75,1".split(","), function(i, n) { + jQuery("#foo").css("opacity", n); + equals( jQuery("#foo").css("opacity"), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" ); + jQuery("#foo").css("opacity", parseFloat(n)); + equals( jQuery("#foo").css("opacity"), parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" ); }); - jQuery('#foo').css('opacity', ''); - equals( jQuery('#foo').css('opacity'), '1', "Assert opacity is 1 when set to an empty String" ); + jQuery("#foo").css("opacity", ""); + equals( jQuery("#foo").css("opacity"), "1", "Assert opacity is 1 when set to an empty String" ); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -181,7 +184,7 @@ test("css(String, Object)", function() { // Test for Bug #5509 var success = true; try { - jQuery('#foo').css("backgroundColor", "rgba(0, 0, 0, 0.1)"); + jQuery("#foo").css("backgroundColor", "rgba(0, 0, 0, 0.1)"); } catch (e) { success = false; @@ -192,19 +195,19 @@ test("css(String, Object)", function() { if ( !jQuery.support.opacity ) { test("css(String, Object) for MSIE", function() { // for #1438, IE throws JS error when filter exists but doesn't have opacity in it - jQuery('#foo').css("filter", "progid:DXImageTransform.Microsoft.Chroma(color='red');"); - equals( jQuery('#foo').css('opacity'), '1', "Assert opacity is 1 when a different filter is set in IE, #1438" ); + jQuery("#foo").css("filter", "progid:DXImageTransform.Microsoft.Chroma(color='red');"); + equals( jQuery("#foo").css("opacity"), "1", "Assert opacity is 1 when a different filter is set in IE, #1438" ); var filterVal = "progid:DXImageTransform.Microsoft.Alpha(opacity=30) progid:DXImageTransform.Microsoft.Blur(pixelradius=5)"; var filterVal2 = "progid:DXImageTransform.Microsoft.alpha(opacity=100) progid:DXImageTransform.Microsoft.Blur(pixelradius=5)"; var filterVal3 = "progid:DXImageTransform.Microsoft.Blur(pixelradius=5)"; - jQuery('#foo').css("filter", filterVal); - equals( jQuery('#foo').css("filter"), filterVal, "css('filter', val) works" ); - jQuery('#foo').css("opacity", 1); - equals( jQuery('#foo').css("filter"), filterVal2, "Setting opacity in IE doesn't duplicate opacity filter" ); - equals( jQuery('#foo').css("opacity"), 1, "Setting opacity in IE with other filters works" ); - jQuery('#foo').css("filter", filterVal3).css("opacity", 1); - ok( jQuery('#foo').css("filter").indexOf(filterVal3) !== -1, "Setting opacity in IE doesn't clobber other filters" ); + jQuery("#foo").css("filter", filterVal); + equals( jQuery("#foo").css("filter"), filterVal, "css('filter', val) works" ); + jQuery("#foo").css("opacity", 1); + equals( jQuery("#foo").css("filter"), filterVal2, "Setting opacity in IE doesn't duplicate opacity filter" ); + equals( jQuery("#foo").css("opacity"), 1, "Setting opacity in IE with other filters works" ); + jQuery("#foo").css("filter", filterVal3).css("opacity", 1); + ok( jQuery("#foo").css("filter").indexOf(filterVal3) !== -1, "Setting opacity in IE doesn't clobber other filters" ); }); } @@ -343,14 +346,14 @@ test("jQuery.css(elem, 'height') doesn't clear radio buttons (bug #1095)", funct test(":visible selector works properly on table elements (bug #4512)", function () { expect(1); - jQuery('#table').html('<tr><td style="display:none">cell</td><td>cell</td></tr>'); - equals(jQuery('#table td:visible').length, 1, "hidden cell is not perceived as visible"); + jQuery("#table").html("<tr><td style='display:none'>cell</td><td>cell</td></tr>"); + equals(jQuery("#table td:visible").length, 1, "hidden cell is not perceived as visible"); }); test(":visible selector works properly on children with a hidden parent (bug #4512)", function () { expect(1); - jQuery('#table').css('display', 'none').html('<tr><td>cell</td><td>cell</td></tr>'); - equals(jQuery('#table td:visible').length, 0, "hidden cell children not perceived as visible"); + jQuery("#table").css("display", "none").html("<tr><td>cell</td><td>cell</td></tr>"); + equals(jQuery("#table td:visible").length, 0, "hidden cell children not perceived as visible"); }); test("internal ref to elem.runtimeStyle (bug #7608)", function () { @@ -375,5 +378,19 @@ test("marginRight computed style (bug #3333)", function() { marginRight: 0 }); - equals($div.css("marginRight"), "0px"); + equals($div.css("marginRight"), "0px", "marginRight correctly calculated with a width and display block"); +}); + +test("jQuery.cssProps behavior, (bug #8402)", function() { + var div = jQuery( "<div>" ).appendTo(document.body).css({ + position: "absolute", + top: 0, + left: 10 + }); + jQuery.cssProps.top = "left"; + equal( div.css("top"), "10px", "the fixed property is used when accessing the computed style"); + div.css("top", "100px"); + equal( div[0].style.left, "100px", "the fixed property is used when setting the style"); + // cleanup jQuery.cssProps + jQuery.cssProps.top = undefined; }); diff --git a/test/unit/data.js b/test/unit/data.js index 94fa2a018..888f71cbf 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -283,11 +283,11 @@ test(".data(String) and .data(String, Object)", function() { // #3748 var $elem = jQuery({exists:true}); - equals( $elem.data('nothing'), undefined, "Non-existent data returns undefined"); - equals( $elem.data('null',null).data('null'), null, "null's are preserved"); - equals( $elem.data('emptyString','').data('emptyString'), '', "Empty strings are preserved"); - equals( $elem.data('false',false).data('false'), false, "false's are preserved"); - equals( $elem.data('exists'), undefined, "Existing data is not returned" ); + equals( $elem.data("nothing"), undefined, "Non-existent data returns undefined"); + equals( $elem.data("null", null).data("null"), null, "null's are preserved"); + equals( $elem.data("emptyString", "").data("emptyString"), "", "Empty strings are preserved"); + equals( $elem.data("false", false).data("false"), false, "false's are preserved"); + equals( $elem.data("exists"), undefined, "Existing data is not returned" ); // Clean up $elem.removeData(); @@ -316,7 +316,7 @@ test("data-* attributes", function() { div.remove(); - child.appendTo('#main'); + child.appendTo("#main"); equals( child.data("myobj"), "old data", "Value accessed from data-* attribute"); child.data("myobj", "replaced"); @@ -365,19 +365,19 @@ test("data-* attributes", function() { .attr("data-null", "null") .attr("data-string", "test"); - strictEqual( child.data('true'), true, "Primitive true read from attribute"); - strictEqual( child.data('false'), false, "Primitive false read from attribute"); - strictEqual( child.data('five'), 5, "Primitive number read from attribute"); - strictEqual( child.data('point'), 5.5, "Primitive number read from attribute"); - strictEqual( child.data('pointe'), 5500, "Primitive number read from attribute"); - strictEqual( child.data('pointbad'), "5..5", "Bad number read from attribute"); - strictEqual( child.data('pointbad2'), "-.", "Bad number read from attribute"); - strictEqual( child.data('badjson'), "{123}", "Bad number read from attribute"); - strictEqual( child.data('badjson2'), "[abc]", "Bad number read from attribute"); - strictEqual( child.data('empty'), "", "Empty string read from attribute"); - strictEqual( child.data('space'), " ", "Empty string read from attribute"); - strictEqual( child.data('null'), null, "Primitive null read from attribute"); - strictEqual( child.data('string'), "test", "Typical string read from attribute"); + strictEqual( child.data("true"), true, "Primitive true read from attribute"); + strictEqual( child.data("false"), false, "Primitive false read from attribute"); + strictEqual( child.data("five"), 5, "Primitive number read from attribute"); + strictEqual( child.data("point"), 5.5, "Primitive number read from attribute"); + strictEqual( child.data("pointe"), 5500, "Primitive number read from attribute"); + strictEqual( child.data("pointbad"), "5..5", "Bad number read from attribute"); + strictEqual( child.data("pointbad2"), "-.", "Bad number read from attribute"); + strictEqual( child.data("badjson"), "{123}", "Bad number read from attribute"); + strictEqual( child.data("badjson2"), "[abc]", "Bad number read from attribute"); + strictEqual( child.data("empty"), "", "Empty string read from attribute"); + strictEqual( child.data("space"), " ", "Empty string read from attribute"); + strictEqual( child.data("null"), null, "Primitive null read from attribute"); + strictEqual( child.data("string"), "test", "Typical string read from attribute"); child.remove(); @@ -401,12 +401,12 @@ test("data-* attributes", function() { same(jQuery(elem).data("stuff"), [2,8], "Check stuff property"); break; default: - ok(false, ["Assertion failed on index ", index, ", with data ", data].join('')); + ok(false, ["Assertion failed on index ", index, ", with data ", data].join("")); } } - var metadata = '<ol><li class="test test2" data-foo="bar" data-bar="baz" data-arr="[1,2]">Some stuff</li><li class="test test2" data-test="bar" data-bar="baz">Some stuff</li><li class="test test2" data-zoooo="bar" data-bar=\'{"test":"baz"}\'>Some stuff</li><li class="test test2" data-number=true data-stuff="[2,8]">Some stuff</li></ol>', - elem = jQuery(metadata).appendTo('#main'); + var metadata = "<ol><li class='test test2' data-foo='bar' data-bar='baz' data-arr='[1,2]'>Some stuff</li><li class='test test2' data-test='bar' data-bar='baz'>Some stuff</li><li class='test test2' data-zoooo='bar' data-bar='{\"test\":\"baz\"}'>Some stuff</li><li class='test test2' data-number=true data-stuff='[2,8]'>Some stuff</li></ol>", + elem = jQuery(metadata).appendTo("#main"); elem.find("li").each(testData); elem.remove(); @@ -483,7 +483,7 @@ if (window.JSON && window.JSON.stringify) { var obj = { foo: "bar" }; jQuery.data(obj, "hidden", true); - equals( JSON.stringify(obj), '{"foo":"bar"}', "Expando is hidden from JSON.stringify" ); + equals( JSON.stringify(obj), "{\"foo\":\"bar\"}", "Expando is hidden from JSON.stringify" ); }); } diff --git a/test/unit/dimensions.js b/test/unit/dimensions.js index fa59a9f77..641165f4f 100644 --- a/test/unit/dimensions.js +++ b/test/unit/dimensions.js @@ -34,7 +34,7 @@ function testWidth( val ) { equals( blah.width( val(10) ), blah, "Make sure that setting a width on an empty set returns the set." ); equals( blah.width(), null, "Make sure 'null' is returned on an empty set"); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); } test("width()", function() { @@ -83,7 +83,7 @@ function testHeight( val ) { equals( blah.height( val(10) ), blah, "Make sure that setting a height on an empty set returns the set." ); equals( blah.height(), null, "Make sure 'null' is returned on an empty set"); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); } test("height()", function() { @@ -132,7 +132,7 @@ test("innerWidth()", function() { equals( div.innerWidth(), 0, "Make sure that disconnected nodes are handled." ); div.remove(); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); }); test("innerHeight()", function() { @@ -161,7 +161,7 @@ test("innerHeight()", function() { equals( div.innerHeight(), 0, "Make sure that disconnected nodes are handled." ); div.remove(); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); }); test("outerWidth()", function() { @@ -191,7 +191,7 @@ test("outerWidth()", function() { equals( div.outerWidth(), 0, "Make sure that disconnected nodes are handled." ); div.remove(); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); }); test("outerHeight()", function() { @@ -220,5 +220,5 @@ test("outerHeight()", function() { equals( div.outerHeight(), 0, "Make sure that disconnected nodes are handled." ); div.remove(); - jQuery.removeData($div[0], 'olddisplay', true); + jQuery.removeData($div[0], "olddisplay", true); }); diff --git a/test/unit/effects.js b/test/unit/effects.js index 4f6785111..4faf61743 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -62,7 +62,7 @@ test("show()", function() { }); // #show-tests * is set display: none in CSS - jQuery("#main").append('<div id="show-tests"><div><p><a href="#"></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div><table id="test-table"></table>'); + jQuery("#main").append("<div id='show-tests'><div><p><a href='#'></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div><table id='test-table'></table>"); var old = jQuery("#test-table").show().css("display") !== "table"; jQuery("#test-table").remove(); @@ -96,7 +96,7 @@ test("show(Number) - other displays", function() { stop(); // #show-tests * is set display: none in CSS - jQuery("#main").append('<div id="show-tests"><div><p><a href="#"></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div><table id="test-table"></table>'); + jQuery("#main").append("<div id='show-tests'><div><p><a href='#'></a></p><code></code><pre></pre><span></span></div><table><thead><tr><th></th></tr></thead><tbody><tr><td></td></tr></tbody></table><ul><li></li></ul></div><table id='test-table'></table>"); var old = jQuery("#test-table").show().css("display") !== "table", num = 0; @@ -138,11 +138,11 @@ test("Persist correct display value", function() { stop(); // #show-tests * is set display: none in CSS - jQuery("#main").append('<div id="show-tests"><span style="position:absolute;">foo</span></div>'); + jQuery("#main").append("<div id='show-tests'><span style='position:absolute;'>foo</span></div>"); var $span = jQuery("#show-tests span"), displayNone = $span.css("display"), - display = '', num = 0; + display = "", num = 0; $span.show(); @@ -165,10 +165,10 @@ test("Persist correct display value", function() { test("animate(Hash, Object, Function)", function() { expect(1); stop(); - var hash = {opacity: 'show'}; + var hash = {opacity: "show"}; var hashCopy = jQuery.extend({}, hash); - jQuery('#foo').animate(hash, 0, function() { - equals( hash.opacity, hashCopy.opacity, 'Check if animate changed the hash parameter' ); + jQuery("#foo").animate(hash, 0, function() { + equals( hash.opacity, hashCopy.opacity, "Check if animate changed the hash parameter" ); start(); }); }); @@ -193,7 +193,7 @@ test("animate block as inline width/height", function() { if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { stop(); - jQuery("#foo").css({ display: "inline", width: '', height: '' }).animate({ width: 42, height: 42 }, 100, function() { + jQuery("#foo").css({ display: "inline", width: "", height: "" }).animate({ width: 42, height: 42 }, 100, function() { equals( jQuery(this).css("display"), jQuery.support.inlineBlockNeedsLayout ? "inline" : "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); equals( this.offsetWidth, 42, "width was animated" ); equals( this.offsetHeight, 42, "height was animated" ); @@ -218,9 +218,9 @@ test("animate native inline width/height", function() { if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { stop(); - jQuery("#foo").css({ display: "", width: '', height: '' }) - .append('<span>text</span>') - .children('span') + jQuery("#foo").css({ display: "", width: "", height: "" }) + .append("<span>text</span>") + .children("span") .animate({ width: 42, height: 42 }, 100, function() { equals( jQuery(this).css("display"), "inline-block", "inline-block was set on non-floated inline element when animating width/height" ); equals( this.offsetWidth, 42, "width was animated" ); @@ -317,13 +317,13 @@ test("animate option (queue === false)", function () { var order = []; var $foo = jQuery("#foo"); - $foo.animate({width:'100px'}, 3000, function () { + $foo.animate({width:"100px"}, 3000, function () { // should finish after unqueued animation so second order.push(2); same( order, [ 1, 2 ], "Animations finished in the correct order" ); start(); }); - $foo.animate({fontSize:'2em'}, {queue:false, duration:10, complete:function () { + $foo.animate({fontSize:"2em"}, {queue:false, duration:10, complete:function () { // short duration and out of queue so should finish first order.push(1); }}); @@ -433,7 +433,7 @@ test("stop()", function() { var w = 0; $foo.hide().width(200).width(); - $foo.animate({ width:'show' }, 1000); + $foo.animate({ width: "show" }, 1000); setTimeout(function(){ var nw = $foo.width(); notEqual( nw, w, "An animation occurred " + nw + "px " + w + "px"); @@ -458,9 +458,9 @@ test("stop() - several in queue", function() { var w = 0; $foo.hide().width(200).width(); - $foo.animate({ width:'show' }, 1000); - $foo.animate({ width:'hide' }, 1000); - $foo.animate({ width:'show' }, 1000); + $foo.animate({ width: "show" }, 1000); + $foo.animate({ width: "hide" }, 1000); + $foo.animate({ width: "show" }, 1000); setTimeout(function(){ equals( $foo.queue().length, 3, "All 3 still in the queue" ); var nw = $foo.width(); @@ -483,9 +483,9 @@ test("stop(clearQueue)", function() { var w = 0; $foo.hide().width(200).width(); - $foo.animate({ width:'show' }, 1000); - $foo.animate({ width:'hide' }, 1000); - $foo.animate({ width:'show' }, 1000); + $foo.animate({ width: "show" }, 1000); + $foo.animate({ width: "hide" }, 1000); + $foo.animate({ width: "show" }, 1000); setTimeout(function(){ var nw = $foo.width(); ok( nw != w, "An animation occurred " + nw + "px " + w + "px"); @@ -510,10 +510,10 @@ test("stop(clearQueue, gotoEnd)", function() { var w = 0; $foo.hide().width(200).width(); - $foo.animate({ width:'show' }, 1000); - $foo.animate({ width:'hide' }, 1000); - $foo.animate({ width:'show' }, 1000); - $foo.animate({ width:'hide' }, 1000); + $foo.animate({ width: "show" }, 1000); + $foo.animate({ width: "hide" }, 1000); + $foo.animate({ width: "show" }, 1000); + $foo.animate({ width: "hide" }, 1000); setTimeout(function(){ var nw = $foo.width(); ok( nw != w, "An animation occurred " + nw + "px " + w + "px"); @@ -783,7 +783,7 @@ jQuery.each( { }); jQuery.fn.saveState = function(hiddenOverflow){ - var check = ['opacity','height','width','display','overflow']; + var check = ["opacity", "height", "width", "display", "overflow"]; expect(check.length); stop(); @@ -804,64 +804,64 @@ jQuery.checkState = function(){ }); // manually clean data on modified element - jQuery.removeData(this, 'olddisplay', true); + jQuery.removeData(this, "olddisplay", true); start(); -} +}; // Chaining Tests test("Chain fadeOut fadeIn", function() { - jQuery('#fadein div').saveState().fadeOut('fast').fadeIn('fast',jQuery.checkState); + jQuery("#fadein div").saveState().fadeOut("fast").fadeIn("fast",jQuery.checkState); }); test("Chain fadeIn fadeOut", function() { - jQuery('#fadeout div').saveState().fadeIn('fast').fadeOut('fast',jQuery.checkState); + jQuery("#fadeout div").saveState().fadeIn("fast").fadeOut("fast",jQuery.checkState); }); test("Chain hide show", function() { - jQuery('#show div').saveState(jQuery.support.shrinkWrapBlocks).hide('fast').show('fast',jQuery.checkState); + jQuery("#show div").saveState(jQuery.support.shrinkWrapBlocks).hide("fast").show("fast",jQuery.checkState); }); test("Chain show hide", function() { - jQuery('#hide div').saveState(jQuery.support.shrinkWrapBlocks).show('fast').hide('fast',jQuery.checkState); + jQuery("#hide div").saveState(jQuery.support.shrinkWrapBlocks).show("fast").hide("fast",jQuery.checkState); }); test("Chain show hide with easing and callback", function() { - jQuery('#hide div').saveState().show('fast').hide('fast','linear',jQuery.checkState); + jQuery("#hide div").saveState().show("fast").hide("fast","linear",jQuery.checkState); }); test("Chain toggle in", function() { - jQuery('#togglein div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast',jQuery.checkState); + jQuery("#togglein div").saveState(jQuery.support.shrinkWrapBlocks).toggle("fast").toggle("fast",jQuery.checkState); }); test("Chain toggle out", function() { - jQuery('#toggleout div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast',jQuery.checkState); + jQuery("#toggleout div").saveState(jQuery.support.shrinkWrapBlocks).toggle("fast").toggle("fast",jQuery.checkState); }); test("Chain toggle out with easing and callback", function() { - jQuery('#toggleout div').saveState(jQuery.support.shrinkWrapBlocks).toggle('fast').toggle('fast','linear',jQuery.checkState); + jQuery("#toggleout div").saveState(jQuery.support.shrinkWrapBlocks).toggle("fast").toggle("fast","linear",jQuery.checkState); }); test("Chain slideDown slideUp", function() { - jQuery('#slidedown div').saveState(jQuery.support.shrinkWrapBlocks).slideDown('fast').slideUp('fast',jQuery.checkState); + jQuery("#slidedown div").saveState(jQuery.support.shrinkWrapBlocks).slideDown("fast").slideUp("fast",jQuery.checkState); }); test("Chain slideUp slideDown", function() { - jQuery('#slideup div').saveState(jQuery.support.shrinkWrapBlocks).slideUp('fast').slideDown('fast',jQuery.checkState); + jQuery("#slideup div").saveState(jQuery.support.shrinkWrapBlocks).slideUp("fast").slideDown("fast",jQuery.checkState); }); test("Chain slideUp slideDown with easing and callback", function() { - jQuery('#slideup div').saveState(jQuery.support.shrinkWrapBlocks).slideUp('fast').slideDown('fast','linear',jQuery.checkState); + jQuery("#slideup div").saveState(jQuery.support.shrinkWrapBlocks).slideUp("fast").slideDown("fast","linear",jQuery.checkState); }); test("Chain slideToggle in", function() { - jQuery('#slidetogglein div').saveState(jQuery.support.shrinkWrapBlocks).slideToggle('fast').slideToggle('fast',jQuery.checkState); + jQuery("#slidetogglein div").saveState(jQuery.support.shrinkWrapBlocks).slideToggle("fast").slideToggle("fast",jQuery.checkState); }); test("Chain slideToggle out", function() { - jQuery('#slidetoggleout div').saveState(jQuery.support.shrinkWrapBlocks).slideToggle('fast').slideToggle('fast',jQuery.checkState); + jQuery("#slidetoggleout div").saveState(jQuery.support.shrinkWrapBlocks).slideToggle("fast").slideToggle("fast",jQuery.checkState); }); test("Chain fadeToggle in", function() { - jQuery('#fadetogglein div').saveState().fadeToggle('fast').fadeToggle('fast',jQuery.checkState); + jQuery("#fadetogglein div").saveState().fadeToggle("fast").fadeToggle("fast",jQuery.checkState); }); test("Chain fadeToggle out", function() { - jQuery('#fadetoggleout div').saveState().fadeToggle('fast').fadeToggle('fast',jQuery.checkState); + jQuery("#fadetoggleout div").saveState().fadeToggle("fast").fadeToggle("fast",jQuery.checkState); }); test("Chain fadeTo 0.5 1.0 with easing and callback)", function() { - jQuery('#fadeto div').saveState().fadeTo('fast',0.5).fadeTo('fast',1.0,'linear',jQuery.checkState); + jQuery("#fadeto div").saveState().fadeTo("fast",0.5).fadeTo("fast",1.0,"linear",jQuery.checkState); }); jQuery.makeTest = function( text ){ @@ -903,23 +903,23 @@ test("animate with per-property easing", function(){ var _test2_called = false; var _default_test_called = false; - jQuery.easing['_test1'] = function() { + jQuery.easing["_test1"] = function() { _test1_called = true; }; - jQuery.easing['_test2'] = function() { + jQuery.easing["_test2"] = function() { _test2_called = true; }; - jQuery.easing['_default_test'] = function() { + jQuery.easing["_default_test"] = function() { _default_test_called = true; }; jQuery({a:0,b:0,c:0}).animate({ - a: [100, '_test1'], - b: [100, '_test2'], + a: [100, "_test1"], + b: [100, "_test2"], c: 100 - }, 400, '_default_test', function(){ + }, 400, "_default_test", function(){ start(); ok(_test1_called, "Easing function (1) called"); ok(_test2_called, "Easing function (2) called"); diff --git a/test/unit/event.js b/test/unit/event.js index b1fd919f5..491396f93 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -305,7 +305,7 @@ test("bind/delegate bubbling, isDefaultPrevented", function() { fakeClick = function($jq) { // Use a native click so we don't get jQuery simulated bubbling if ( document.createEvent ) { - var e = document.createEvent( 'MouseEvents' ); + var e = document.createEvent( "MouseEvents" ); e.initEvent( "click", true, true ); $jq[0].dispatchEvent(e); } @@ -347,7 +347,7 @@ test("bind(), iframes", function() { jQuery("div", doc).bind("click", function() { ok( true, "Binding to element inside iframe" ); - }).click().unbind('click'); + }).click().unbind("click"); }); test("bind(), trigger change on select", function() { @@ -357,8 +357,8 @@ test("bind(), trigger change on select", function() { equals( event.data, counter++, "Event.data is not a global event object" ); }; jQuery("#form select").each(function(i){ - jQuery(this).bind('change', i, selectOnChange); - }).trigger('change'); + jQuery(this).bind("change", i, selectOnChange); + }).trigger("change"); }); test("bind(), namespaced events, cloned events", 18, function() { @@ -646,23 +646,23 @@ test("unbind(type)", function() { } message = "unbind passing function"; - $elem.bind('error1', error).unbind('error1',error).triggerHandler('error1'); + $elem.bind("error1", error).unbind("error1", error).triggerHandler("error1"); message = "unbind all from event"; - $elem.bind('error1', error).unbind('error1').triggerHandler('error1'); + $elem.bind("error1", error).unbind("error1").triggerHandler("error1"); message = "unbind all"; - $elem.bind('error1', error).unbind().triggerHandler('error1'); + $elem.bind("error1", error).unbind().triggerHandler("error1"); message = "unbind many with function"; - $elem.bind('error1 error2',error) - .unbind('error1 error2', error ) - .trigger('error1').triggerHandler('error2'); + $elem.bind("error1 error2",error) + .unbind("error1 error2", error ) + .trigger("error1").triggerHandler("error2"); message = "unbind many"; // #3538 - $elem.bind('error1 error2',error) - .unbind('error1 error2') - .trigger('error1').triggerHandler('error2'); + $elem.bind("error1 error2", error) + .unbind("error1 error2") + .trigger("error1").triggerHandler("error2"); message = "unbind without a type or handler"; $elem.bind("error1 error2.test",error) @@ -678,28 +678,28 @@ test("unbind(eventObject)", function() { function assert( expected ){ num = 0; - $elem.trigger('foo').triggerHandler('bar'); + $elem.trigger("foo").triggerHandler("bar"); equals( num, expected, "Check the right handlers are triggered" ); } $elem // This handler shouldn't be unbound - .bind('foo', function(){ + .bind("foo", function(){ num += 1; }) - .bind('foo', function(e){ + .bind("foo", function(e){ $elem.unbind( e ) num += 2; }) // Neither this one - .bind('bar', function(){ + .bind("bar", function(){ num += 4; }); assert( 7 ); assert( 5 ); - $elem.unbind('bar'); + $elem.unbind("bar"); assert( 1 ); $elem.unbind(); @@ -732,7 +732,7 @@ test("mouseover triggers mouseenter", function() { elem.mouseenter(function () { count++; }); - elem.trigger('mouseover'); + elem.trigger("mouseover"); equals(count, 1, "make sure mouseover triggers a mouseenter" ); elem.remove(); @@ -741,9 +741,9 @@ test("mouseover triggers mouseenter", function() { test("trigger() shortcuts", function() { expect(6); - var elem = jQuery('<li><a href="#">Change location</a></li>').prependTo('#firstUL'); - elem.find('a').bind('click', function() { - var close = jQuery('spanx', this); // same with jQuery(this).find('span'); + var elem = jQuery("<li><a href='#'>Change location</a></li>").prependTo("#firstUL"); + elem.find("a").bind("click", function() { + var close = jQuery("spanx", this); // same with jQuery(this).find("span"); equals( close.length, 0, "Context element does not exist, length must be zero" ); ok( !close[0], "Context element does not exist, direct access to element must return undefined" ); return false; @@ -757,25 +757,28 @@ test("trigger() shortcuts", function() { }).click(); var counter = 0; - jQuery('#firstp')[0].onclick = function(event) { + jQuery("#firstp")[0].onclick = function(event) { counter++; }; - jQuery('#firstp').click(); + jQuery("#firstp").click(); equals( counter, 1, "Check that click, triggers onclick event handler also" ); var clickCounter = 0; - jQuery('#simon1')[0].onclick = function(event) { + jQuery("#simon1")[0].onclick = function(event) { clickCounter++; }; - jQuery('#simon1').click(); + jQuery("#simon1").click(); equals( clickCounter, 1, "Check that click, triggers onclick event handler on an a tag also" ); - elem = jQuery('<img />').load(function(){ + elem = jQuery("<img />").load(function(){ ok( true, "Trigger the load event, using the shortcut .load() (#2819)"); }).load(); // manually clean up detached elements elem.remove(); + + // test that special handlers do not blow up with VML elements (#7071) + jQuery("#oval").click().keydown(); }); test("trigger() bubbling", function() { @@ -853,7 +856,7 @@ test("trigger(type, [data], [fn])", function() { var pass = true; try { - jQuery('#form input:first').hide().trigger('focus'); + jQuery("#form input:first").hide().trigger("focus"); } catch(e) { pass = false; } @@ -861,7 +864,7 @@ test("trigger(type, [data], [fn])", function() { pass = true; try { - jQuery('#main table:first').bind('test:test', function(){}).trigger('test:test'); + jQuery("#main table:first").bind("test:test", function(){}).trigger("test:test"); } catch (e) { pass = false; } @@ -899,8 +902,8 @@ test("jQuery.Event.currentTarget", function(){ test("trigger(eventObject, [data], [fn])", function() { expect(25); - var $parent = jQuery('<div id="par" />').hide().appendTo('body'), - $child = jQuery('<p id="child">foo</p>').appendTo( $parent ); + var $parent = jQuery("<div id='par' />").hide().appendTo("body"), + $child = jQuery("<p id='child'>foo</p>").appendTo( $parent ); var event = jQuery.Event("noNew"); ok( event != window, "Instantiate jQuery.Event without the 'new' keyword" ); @@ -920,21 +923,21 @@ test("trigger(eventObject, [data], [fn])", function() { equals( event.isPropagationStopped(), true, "Verify isPropagationStopped" ); equals( event.isImmediatePropagationStopped(), true, "Verify isPropagationStopped" ); - $parent.bind('foo',function(e){ + $parent.bind("foo",function(e){ // Tries bubbling - equals( e.type, 'foo', 'Verify event type when passed passing an event object' ); - equals( e.target.id, 'child', 'Verify event.target when passed passing an event object' ); - equals( e.currentTarget.id, 'par', 'Verify event.target when passed passing an event object' ); - equals( e.secret, 'boo!', 'Verify event object\'s custom attribute when passed passing an event object' ); + equals( e.type, "foo", "Verify event type when passed passing an event object" ); + equals( e.target.id, "child", "Verify event.target when passed passing an event object" ); + equals( e.currentTarget.id, "par", "Verify event.target when passed passing an event object" ); + equals( e.secret, "boo!", "Verify event object's custom attribute when passed passing an event object" ); }); // test with an event object event = new jQuery.Event("foo"); - event.secret = 'boo!'; + event.secret = "boo!"; $child.trigger(event); // test with a literal object - $child.trigger({type:'foo', secret:'boo!'}); + $child.trigger({type: "foo", secret: "boo!"}); $parent.unbind(); @@ -942,9 +945,9 @@ test("trigger(eventObject, [data], [fn])", function() { ok( false, "This assertion shouldn't be reached"); } - $parent.bind('foo', error ); + $parent.bind("foo", error ); - $child.bind('foo',function(e, a, b, c ){ + $child.bind("foo",function(e, a, b, c ){ equals( arguments.length, 4, "Check arguments length"); equals( a, 1, "Check first custom argument"); equals( b, 2, "Check second custom argument"); @@ -962,14 +965,14 @@ test("trigger(eventObject, [data], [fn])", function() { // We should add this back in when we want to test the order // in which event handlers are iterated. - //$child.bind('foo', error ); + //$child.bind("foo", error ); event = new jQuery.Event("foo"); $child.trigger( event, [1,2,3] ).unbind(); equals( event.result, "result", "Check event.result attribute"); // Will error if it bubbles - $child.triggerHandler('foo'); + $child.triggerHandler("foo"); $child.unbind(); $parent.unbind().remove(); @@ -1000,12 +1003,12 @@ test("jQuery.Event.currentTarget", function(){ expect(1); var counter = 0, - $elem = jQuery('<button>a</button>').click(function(e){ + $elem = jQuery("<button>a</button>").click(function(e){ equals( e.currentTarget, this, "Check currentTarget on "+(counter++?"native":"fake") +" event" ); }); // Fake event - $elem.trigger('click'); + $elem.trigger("click"); // Cleanup $elem.unbind(); @@ -1018,7 +1021,7 @@ test("toggle(Function, Function, ...)", function() { fn1 = function(e) { count++; }, fn2 = function(e) { count--; }, preventDefault = function(e) { e.preventDefault() }, - link = jQuery('#mark'); + link = jQuery("#mark"); link.click(preventDefault).click().toggle(fn1, fn2).click().click().click().click().click(); equals( count, 1, "Check for toggle(fn, fn)" ); @@ -1062,8 +1065,8 @@ test("toggle(Function, Function, ...)", function() { $div.click(); equals( turn, 2, "Trying toggle with 3 functions, attempt 5 yields 2"); - $div.unbind('click',fns[0]); - var data = jQuery._data( $div[0], 'events' ); + $div.unbind("click",fns[0]); + var data = jQuery._data( $div[0], "events" ); ok( !data, "Unbinding one function from toggle unbinds them all"); // manually clean up detached elements @@ -1178,12 +1181,12 @@ test(".live()/.die()", function() { jQuery("div").die("submit"); // Test binding with a different context - var clicked = 0, container = jQuery('#main')[0]; + var clicked = 0, container = jQuery("#main")[0]; jQuery("#foo", container).live("click", function(e){ clicked++; }); - jQuery("div").trigger('click'); - jQuery("#foo").trigger('click'); - jQuery("#main").trigger('click'); - jQuery("body").trigger('click'); + jQuery("div").trigger("click"); + jQuery("#foo").trigger("click"); + jQuery("#main").trigger("click"); + jQuery("body").trigger("click"); equals( clicked, 2, "live with a context" ); // Make sure the event is actually stored on the context @@ -1191,7 +1194,7 @@ test(".live()/.die()", function() { // Test unbinding with a different context jQuery("#foo", container).die("click"); - jQuery("#foo").trigger('click'); + jQuery("#foo").trigger("click"); equals( clicked, 2, "die with a context"); // Test binding with event data @@ -1273,9 +1276,9 @@ test(".live()/.die()", function() { // Make sure we don't loose the target by DOM modifications // after the bubble already reached the liveHandler - var livec = 0, elemDiv = jQuery("#nothiddendivchild").html('<span></span>').get(0); + var livec = 0, elemDiv = jQuery("#nothiddendivchild").html("<span></span>").get(0); - jQuery("#nothiddendivchild").live("click", function(e){ jQuery("#nothiddendivchild").html(''); }); + jQuery("#nothiddendivchild").live("click", function(e){ jQuery("#nothiddendivchild").html(""); }); jQuery("#nothiddendivchild").live("click", function(e){ if(e.target) {livec++;} }); jQuery("#nothiddendiv span").click(); @@ -1290,20 +1293,20 @@ test(".live()/.die()", function() { var lived = 0, livee = 0; // bind one pair in one order - jQuery('span#liveSpan1 a').live('click', function(){ lived++; return false; }); - jQuery('span#liveSpan1').live('click', function(){ livee++; }); + jQuery("span#liveSpan1 a").live("click", function(){ lived++; return false; }); + jQuery("span#liveSpan1").live("click", function(){ livee++; }); - jQuery('span#liveSpan1 a').click(); + jQuery("span#liveSpan1 a").click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); // and one pair in inverse - jQuery('span#liveSpan2').live('click', function(){ livee++; }); - jQuery('span#liveSpan2 a').live('click', function(){ lived++; return false; }); + jQuery("span#liveSpan2").live("click", function(){ livee++; }); + jQuery("span#liveSpan2 a").live("click", function(){ lived++; return false; }); lived = 0; livee = 0; - jQuery('span#liveSpan2 a').click(); + jQuery("span#liveSpan2 a").click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); @@ -1314,15 +1317,15 @@ test(".live()/.die()", function() { jQuery("span#liveSpan2").die("click"); // Test this, target and currentTarget are correct - jQuery('span#liveSpan1').live('click', function(e){ - equals( this.id, 'liveSpan1', 'Check the this within a live handler' ); - equals( e.currentTarget.id, 'liveSpan1', 'Check the event.currentTarget within a live handler' ); - equals( e.target.nodeName.toUpperCase(), 'A', 'Check the event.target within a live handler' ); + jQuery("span#liveSpan1").live("click", function(e){ + equals( this.id, "liveSpan1", "Check the this within a live handler" ); + equals( e.currentTarget.id, "liveSpan1", "Check the event.currentTarget within a live handler" ); + equals( e.target.nodeName.toUpperCase(), "A", "Check the event.target within a live handler" ); }); - jQuery('span#liveSpan1 a').click(); + jQuery("span#liveSpan1 a").click(); - jQuery('span#liveSpan1').die('click'); + jQuery("span#liveSpan1").die("click"); // Work with deep selectors livee = 0; @@ -1705,12 +1708,12 @@ test(".delegate()/.undelegate()", function() { jQuery("#body").undelegate("div", "submit"); // Test binding with a different context - var clicked = 0, container = jQuery('#main')[0]; + var clicked = 0, container = jQuery("#main")[0]; jQuery("#main").delegate("#foo", "click", function(e){ clicked++; }); - jQuery("div").trigger('click'); - jQuery("#foo").trigger('click'); - jQuery("#main").trigger('click'); - jQuery("body").trigger('click'); + jQuery("div").trigger("click"); + jQuery("#foo").trigger("click"); + jQuery("#main").trigger("click"); + jQuery("body").trigger("click"); equals( clicked, 2, "delegate with a context" ); // Make sure the event is actually stored on the context @@ -1718,7 +1721,7 @@ test(".delegate()/.undelegate()", function() { // Test unbinding with a different context jQuery("#main").undelegate("#foo", "click"); - jQuery("#foo").trigger('click'); + jQuery("#foo").trigger("click"); equals( clicked, 2, "undelegate with a context"); // Test binding with event data @@ -1804,9 +1807,9 @@ test(".delegate()/.undelegate()", function() { // Make sure we don't loose the target by DOM modifications // after the bubble already reached the liveHandler - var livec = 0, elemDiv = jQuery("#nothiddendivchild").html('<span></span>').get(0); + var livec = 0, elemDiv = jQuery("#nothiddendivchild").html("<span></span>").get(0); - jQuery("#body").delegate("#nothiddendivchild", "click", function(e){ jQuery("#nothiddendivchild").html(''); }); + jQuery("#body").delegate("#nothiddendivchild", "click", function(e){ jQuery("#nothiddendivchild").html(""); }); jQuery("#body").delegate("#nothiddendivchild", "click", function(e){ if(e.target) {livec++;} }); jQuery("#nothiddendiv span").click(); @@ -1821,20 +1824,20 @@ test(".delegate()/.undelegate()", function() { var lived = 0, livee = 0; // bind one pair in one order - jQuery("#body").delegate('span#liveSpan1 a', 'click', function(){ lived++; return false; }); - jQuery("#body").delegate('span#liveSpan1', 'click', function(){ livee++; }); + jQuery("#body").delegate("span#liveSpan1 a", "click", function(){ lived++; return false; }); + jQuery("#body").delegate("span#liveSpan1", "click", function(){ livee++; }); - jQuery('span#liveSpan1 a').click(); + jQuery("span#liveSpan1 a").click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); // and one pair in inverse - jQuery("#body").delegate('span#liveSpan2', 'click', function(){ livee++; }); - jQuery("#body").delegate('span#liveSpan2 a', 'click', function(){ lived++; return false; }); + jQuery("#body").delegate("span#liveSpan2", "click", function(){ livee++; }); + jQuery("#body").delegate("span#liveSpan2 a", "click", function(){ lived++; return false; }); lived = 0; livee = 0; - jQuery('span#liveSpan2 a').click(); + jQuery("span#liveSpan2 a").click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); @@ -1842,15 +1845,15 @@ test(".delegate()/.undelegate()", function() { jQuery("#body").undelegate("click"); // Test this, target and currentTarget are correct - jQuery("#body").delegate('span#liveSpan1', 'click', function(e){ - equals( this.id, 'liveSpan1', 'Check the this within a delegate handler' ); - equals( e.currentTarget.id, 'liveSpan1', 'Check the event.currentTarget within a delegate handler' ); - equals( e.target.nodeName.toUpperCase(), 'A', 'Check the event.target within a delegate handler' ); + jQuery("#body").delegate("span#liveSpan1", "click", function(e){ + equals( this.id, "liveSpan1", "Check the this within a delegate handler" ); + equals( e.currentTarget.id, "liveSpan1", "Check the event.currentTarget within a delegate handler" ); + equals( e.target.nodeName.toUpperCase(), "A", "Check the event.target within a delegate handler" ); }); - jQuery('span#liveSpan1 a').click(); + jQuery("span#liveSpan1 a").click(); - jQuery("#body").undelegate('span#liveSpan1', 'click'); + jQuery("#body").undelegate("span#liveSpan1", "click"); // Work with deep selectors livee = 0; @@ -2048,11 +2051,11 @@ test("Non DOM element events", function() { var o = {}; - jQuery(o).bind('nonelementobj', function(e) { + jQuery(o).bind("nonelementobj", function(e) { ok( true, "Event on non-DOM object triggered" ); }); - jQuery(o).trigger('nonelementobj'); + jQuery(o).trigger("nonelementobj"); }); test("window resize", function() { @@ -2070,7 +2073,7 @@ test("window resize", function() { test("focusin bubbles", function() { expect(5); - var input = jQuery( '<input type="text" />' ).prependTo( "body" ), + var input = jQuery( "<input type='text' />" ).prependTo( "body" ), order = 0; jQuery( "body" ).bind( "focusin.focusinBubblesTest", function(){ diff --git a/test/unit/manipulation.js b/test/unit/manipulation.js index e972a4792..de65daa13 100644 --- a/test/unit/manipulation.js +++ b/test/unit/manipulation.js @@ -9,7 +9,7 @@ var functionReturningObj = function(value) { return (function() { return value; test("text()", function() { expect(2); var expected = "This link has class=\"blog\": Simon Willison's Weblog"; - equals( jQuery('#sap').text(), expected, 'Check for merged text of more then one element.' ); + equals( jQuery("#sap").text(), expected, "Check for merged text of more then one element." ); // Check serialization of text values equals( jQuery(document.createTextNode("foo")).text(), "foo", "Text node was retreived from .text()." ); @@ -43,34 +43,34 @@ test("text(Function) with incoming value", function() { var old = "This link has class=\"blog\": Simon Willison's Weblog"; - jQuery('#sap').text(function(i, val) { + jQuery("#sap").text(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); return "foobar"; }); - equals( jQuery("#sap").text(), "foobar", 'Check for merged text of more then one element.' ); + equals( jQuery("#sap").text(), "foobar", "Check for merged text of more then one element." ); QUnit.reset(); }); var testWrap = function(val) { expect(19); - var defaultText = 'Try them out:' - var result = jQuery('#first').wrap(val( '<div class="red"><span></span></div>' )).text(); - equals( defaultText, result, 'Check for wrapping of on-the-fly html' ); - ok( jQuery('#first').parent().parent().is('.red'), 'Check if wrapper has class "red"' ); + var defaultText = "Try them out:" + var result = jQuery("#first").wrap(val( "<div class='red'><span></span></div>" )).text(); + equals( defaultText, result, "Check for wrapping of on-the-fly html" ); + ok( jQuery("#first").parent().parent().is(".red"), "Check if wrapper has class 'red'" ); QUnit.reset(); - var defaultText = 'Try them out:' - var result = jQuery('#first').wrap(val( document.getElementById('empty') )).parent(); - ok( result.is('ol'), 'Check for element wrapping' ); - equals( result.text(), defaultText, 'Check for element wrapping' ); + var defaultText = "Try them out:" + var result = jQuery("#first").wrap(val( document.getElementById("empty") )).parent(); + ok( result.is("ol"), "Check for element wrapping" ); + equals( result.text(), defaultText, "Check for element wrapping" ); QUnit.reset(); - jQuery('#check1').click(function() { + jQuery("#check1").click(function() { var checkbox = this; ok( checkbox.checked, "Checkbox's state is erased after wrap() action, see #769" ); - jQuery(checkbox).wrap(val( '<div id="c1" style="display:none;"></div>' )); + jQuery(checkbox).wrap(val( "<div id='c1' style='display:none;'></div>" )); ok( checkbox.checked, "Checkbox's state is erased after wrap() action, see #769" ); }).click(); @@ -143,17 +143,17 @@ var testWrapAll = function(val) { var prev = jQuery("#firstp")[0].previousSibling; var p = jQuery("#firstp,#first")[0].parentNode; - var result = jQuery('#firstp,#first').wrapAll(val( '<div class="red"><div class="tmp"></div></div>' )); - equals( result.parent().length, 1, 'Check for wrapping of on-the-fly html' ); - ok( jQuery('#first').parent().parent().is('.red'), 'Check if wrapper has class "red"' ); - ok( jQuery('#firstp').parent().parent().is('.red'), 'Check if wrapper has class "red"' ); + var result = jQuery("#firstp,#first").wrapAll(val( "<div class='red'><div class='tmp'></div></div>" )); + equals( result.parent().length, 1, "Check for wrapping of on-the-fly html" ); + ok( jQuery("#first").parent().parent().is(".red"), "Check if wrapper has class 'red'" ); + ok( jQuery("#firstp").parent().parent().is(".red"), "Check if wrapper has class 'red'" ); equals( jQuery("#first").parent().parent()[0].previousSibling, prev, "Correct Previous Sibling" ); equals( jQuery("#first").parent().parent()[0].parentNode, p, "Correct Parent" ); QUnit.reset(); var prev = jQuery("#firstp")[0].previousSibling; var p = jQuery("#first")[0].parentNode; - var result = jQuery('#firstp,#first').wrapAll(val( document.getElementById('empty') )); + var result = jQuery("#firstp,#first").wrapAll(val( document.getElementById("empty") )); equals( jQuery("#first").parent()[0], jQuery("#firstp").parent()[0], "Same Parent" ); equals( jQuery("#first").parent()[0].previousSibling, prev, "Correct Previous Sibling" ); equals( jQuery("#first").parent()[0].parentNode, p, "Correct Parent" ); @@ -166,21 +166,21 @@ test("wrapAll(String|Element)", function() { var testWrapInner = function(val) { expect(11); var num = jQuery("#first").children().length; - var result = jQuery('#first').wrapInner(val('<div class="red"><div id="tmp"></div></div>')); + var result = jQuery("#first").wrapInner(val("<div class='red'><div id='tmp'></div></div>")); equals( jQuery("#first").children().length, 1, "Only one child" ); ok( jQuery("#first").children().is(".red"), "Verify Right Element" ); equals( jQuery("#first").children().children().children().length, num, "Verify Elements Intact" ); QUnit.reset(); var num = jQuery("#first").html("foo<div>test</div><div>test2</div>").children().length; - var result = jQuery('#first').wrapInner(val('<div class="red"><div id="tmp"></div></div>')); + var result = jQuery("#first").wrapInner(val("<div class='red'><div id='tmp'></div></div>")); equals( jQuery("#first").children().length, 1, "Only one child" ); ok( jQuery("#first").children().is(".red"), "Verify Right Element" ); equals( jQuery("#first").children().children().children().length, num, "Verify Elements Intact" ); QUnit.reset(); var num = jQuery("#first").children().length; - var result = jQuery('#first').wrapInner(val(document.getElementById('empty'))); + var result = jQuery("#first").wrapInner(val(document.getElementById("empty"))); equals( jQuery("#first").children().length, 1, "Only one child" ); ok( jQuery("#first").children().is("#empty"), "Verify Right Element" ); equals( jQuery("#first").children().children().length, num, "Verify Elements Intact" ); @@ -202,51 +202,51 @@ test("wrapInner(Function)", function() { test("unwrap()", function() { expect(9); - jQuery("body").append(' <div id="unwrap" style="display: none;"> <div id="unwrap1"> <span class="unwrap">a</span> <span class="unwrap">b</span> </div> <div id="unwrap2"> <span class="unwrap">c</span> <span class="unwrap">d</span> </div> <div id="unwrap3"> <b><span class="unwrap unwrap3">e</span></b> <b><span class="unwrap unwrap3">f</span></b> </div> </div>'); + jQuery("body").append(" <div id='unwrap' style='display: none;'> <div id='unwrap1'> <span class='unwrap'>a</span> <span class='unwrap'>b</span> </div> <div id='unwrap2'> <span class='unwrap'>c</span> <span class='unwrap'>d</span> </div> <div id='unwrap3'> <b><span class='unwrap unwrap3'>e</span></b> <b><span class='unwrap unwrap3'>f</span></b> </div> </div>"); - var abcd = jQuery('#unwrap1 > span, #unwrap2 > span').get(), - abcdef = jQuery('#unwrap span').get(); + var abcd = jQuery("#unwrap1 > span, #unwrap2 > span").get(), + abcdef = jQuery("#unwrap span").get(); - equals( jQuery('#unwrap1 span').add('#unwrap2 span:first').unwrap().length, 3, 'make #unwrap1 and #unwrap2 go away' ); - same( jQuery('#unwrap > span').get(), abcd, 'all four spans should still exist' ); + equals( jQuery("#unwrap1 span").add("#unwrap2 span:first").unwrap().length, 3, "make #unwrap1 and #unwrap2 go away" ); + same( jQuery("#unwrap > span").get(), abcd, "all four spans should still exist" ); - same( jQuery('#unwrap3 span').unwrap().get(), jQuery('#unwrap3 > span').get(), 'make all b in #unwrap3 go away' ); + same( jQuery("#unwrap3 span").unwrap().get(), jQuery("#unwrap3 > span").get(), "make all b in #unwrap3 go away" ); - same( jQuery('#unwrap3 span').unwrap().get(), jQuery('#unwrap > span.unwrap3').get(), 'make #unwrap3 go away' ); + same( jQuery("#unwrap3 span").unwrap().get(), jQuery("#unwrap > span.unwrap3").get(), "make #unwrap3 go away" ); - same( jQuery('#unwrap').children().get(), abcdef, '#unwrap only contains 6 child spans' ); + same( jQuery("#unwrap").children().get(), abcdef, "#unwrap only contains 6 child spans" ); - same( jQuery('#unwrap > span').unwrap().get(), jQuery('body > span.unwrap').get(), 'make the 6 spans become children of body' ); + same( jQuery("#unwrap > span").unwrap().get(), jQuery("body > span.unwrap").get(), "make the 6 spans become children of body" ); - same( jQuery('body > span.unwrap').unwrap().get(), jQuery('body > span.unwrap').get(), 'can\'t unwrap children of body' ); - same( jQuery('body > span.unwrap').unwrap().get(), abcdef, 'can\'t unwrap children of body' ); + same( jQuery("body > span.unwrap").unwrap().get(), jQuery("body > span.unwrap").get(), "can't unwrap children of body" ); + same( jQuery("body > span.unwrap").unwrap().get(), abcdef, "can't unwrap children of body" ); - same( jQuery('body > span.unwrap').get(), abcdef, 'body contains 6 .unwrap child spans' ); + same( jQuery("body > span.unwrap").get(), abcdef, "body contains 6 .unwrap child spans" ); - jQuery('body > span.unwrap').remove(); + jQuery("body > span.unwrap").remove(); }); var testAppend = function(valueObj) { expect(37); - var defaultText = 'Try them out:' - var result = jQuery('#first').append(valueObj('<b>buga</b>')); - equals( result.text(), defaultText + 'buga', 'Check if text appending works' ); - equals( jQuery('#select3').append(valueObj('<option value="appendTest">Append Test</option>')).find('option:last-child').attr('value'), 'appendTest', 'Appending html options to select element'); + var defaultText = "Try them out:" + var result = jQuery("#first").append(valueObj("<b>buga</b>")); + equals( result.text(), defaultText + "buga", "Check if text appending works" ); + equals( jQuery("#select3").append(valueObj("<option value='appendTest'>Append Test</option>")).find("option:last-child").attr("value"), "appendTest", "Appending html options to select element"); QUnit.reset(); var expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:"; - jQuery('#sap').append(valueObj(document.getElementById('first'))); - equals( jQuery('#sap').text(), expected, "Check for appending of element" ); + jQuery("#sap").append(valueObj(document.getElementById("first"))); + equals( jQuery("#sap").text(), expected, "Check for appending of element" ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:Yahoo"; - jQuery('#sap').append(valueObj([document.getElementById('first'), document.getElementById('yahoo')])); - equals( jQuery('#sap').text(), expected, "Check for appending of array of elements" ); + jQuery("#sap").append(valueObj([document.getElementById("first"), document.getElementById("yahoo")])); + equals( jQuery("#sap").text(), expected, "Check for appending of array of elements" ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogYahooTry them out:"; - jQuery('#sap').append(valueObj(jQuery("#yahoo, #first"))); - equals( jQuery('#sap').text(), expected, "Check for appending of jQuery object" ); + jQuery("#sap").append(valueObj(jQuery("#yahoo, #first"))); + equals( jQuery("#sap").text(), expected, "Check for appending of jQuery object" ); QUnit.reset(); jQuery("#sap").append(valueObj( 5 )); @@ -262,25 +262,25 @@ var testAppend = function(valueObj) { ok( jQuery("#sap").append(valueObj( document.getElementsByTagName("foo") )), "Check for appending an empty nodelist." ); QUnit.reset(); - jQuery("form").append(valueObj('<input name="radiotest" type="radio" checked="checked" />')); + jQuery("form").append(valueObj("<input name='radiotest' type='radio' checked='checked' />")); jQuery("form input[name=radiotest]").each(function(){ - ok( jQuery(this).is(':checked'), "Append checked radio"); + ok( jQuery(this).is(":checked"), "Append checked radio"); }).remove(); QUnit.reset(); - jQuery("form").append(valueObj('<input name="radiotest" type="radio" checked = \'checked\' />')); + jQuery("form").append(valueObj("<input name='radiotest' type='radio' checked = 'checked' />")); jQuery("form input[name=radiotest]").each(function(){ - ok( jQuery(this).is(':checked'), "Append alternately formated checked radio"); + ok( jQuery(this).is(":checked"), "Append alternately formated checked radio"); }).remove(); QUnit.reset(); - jQuery("form").append(valueObj('<input name="radiotest" type="radio" checked />')); + jQuery("form").append(valueObj("<input name='radiotest' type='radio' checked />")); jQuery("form input[name=radiotest]").each(function(){ - ok( jQuery(this).is(':checked'), "Append HTML5-formated checked radio"); + ok( jQuery(this).is(":checked"), "Append HTML5-formated checked radio"); }).remove(); QUnit.reset(); - jQuery("#sap").append(valueObj( document.getElementById('form') )); + jQuery("#sap").append(valueObj( document.getElementById("form") )); equals( jQuery("#sap>form").size(), 1, "Check for appending a form" ); // Bug #910 QUnit.reset(); @@ -296,31 +296,31 @@ var testAppend = function(valueObj) { ok( pass, "Test for appending a DOM node to the contents of an IFrame" ); QUnit.reset(); - jQuery('<fieldset/>').appendTo('#form').append(valueObj( '<legend id="legend">test</legend>' )); - t( 'Append legend', '#legend', ['legend'] ); + jQuery("<fieldset/>").appendTo("#form").append(valueObj( "<legend id='legend'>test</legend>" )); + t( "Append legend", "#legend", ["legend"] ); QUnit.reset(); - jQuery('#select1').append(valueObj( '<OPTION>Test</OPTION>' )); - equals( jQuery('#select1 option:last').text(), "Test", "Appending <OPTION> (all caps)" ); + jQuery("#select1").append(valueObj( "<OPTION>Test</OPTION>" )); + equals( jQuery("#select1 option:last").text(), "Test", "Appending <OPTION> (all caps)" ); - jQuery('#table').append(valueObj( '<colgroup></colgroup>' )); - ok( jQuery('#table colgroup').length, "Append colgroup" ); + jQuery("#table").append(valueObj( "<colgroup></colgroup>" )); + ok( jQuery("#table colgroup").length, "Append colgroup" ); - jQuery('#table colgroup').append(valueObj( '<col/>' )); - ok( jQuery('#table colgroup col').length, "Append col" ); + jQuery("#table colgroup").append(valueObj( "<col/>" )); + ok( jQuery("#table colgroup col").length, "Append col" ); QUnit.reset(); - jQuery('#table').append(valueObj( '<caption></caption>' )); - ok( jQuery('#table caption').length, "Append caption" ); + jQuery("#table").append(valueObj( "<caption></caption>" )); + ok( jQuery("#table caption").length, "Append caption" ); QUnit.reset(); - jQuery('form:last') - .append(valueObj( '<select id="appendSelect1"></select>' )) - .append(valueObj( '<select id="appendSelect2"><option>Test</option></select>' )); + jQuery("form:last") + .append(valueObj( "<select id='appendSelect1'></select>" )) + .append(valueObj( "<select id='appendSelect2'><option>Test</option></select>" )); t( "Append Select", "#appendSelect1, #appendSelect2", ["appendSelect1", "appendSelect2"] ); - equals( "Two nodes", jQuery('<div />').append("Two", " nodes").text(), "Appending two text nodes (#4011)" ); + equals( "Two nodes", jQuery("<div />").append("Two", " nodes").text(), "Appending two text nodes (#4011)" ); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -343,51 +343,51 @@ test("append(Function)", function() { test("append(Function) with incoming value", function() { expect(12); - var defaultText = 'Try them out:', old = jQuery("#first").html(); + var defaultText = "Try them out:", old = jQuery("#first").html(); - var result = jQuery('#first').append(function(i, val){ + var result = jQuery("#first").append(function(i, val){ equals( val, old, "Make sure the incoming value is correct." ); - return '<b>buga</b>'; + return "<b>buga</b>"; }); - equals( result.text(), defaultText + 'buga', 'Check if text appending works' ); + equals( result.text(), defaultText + "buga", "Check if text appending works" ); - var select = jQuery('#select3'); + var select = jQuery("#select3"); old = select.html(); equals( select.append(function(i, val){ equals( val, old, "Make sure the incoming value is correct." ); - return '<option value="appendTest">Append Test</option>'; - }).find('option:last-child').attr('value'), 'appendTest', 'Appending html options to select element'); + return "<option value='appendTest'>Append Test</option>"; + }).find("option:last-child").attr("value"), "appendTest", "Appending html options to select element"); QUnit.reset(); var expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:"; old = jQuery("#sap").html(); - jQuery('#sap').append(function(i, val){ + jQuery("#sap").append(function(i, val){ equals( val, old, "Make sure the incoming value is correct." ); - return document.getElementById('first'); + return document.getElementById("first"); }); - equals( jQuery('#sap').text(), expected, "Check for appending of element" ); + equals( jQuery("#sap").text(), expected, "Check for appending of element" ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:Yahoo"; old = jQuery("#sap").html(); - jQuery('#sap').append(function(i, val){ + jQuery("#sap").append(function(i, val){ equals( val, old, "Make sure the incoming value is correct." ); - return [document.getElementById('first'), document.getElementById('yahoo')]; + return [document.getElementById("first"), document.getElementById("yahoo")]; }); - equals( jQuery('#sap').text(), expected, "Check for appending of array of elements" ); + equals( jQuery("#sap").text(), expected, "Check for appending of array of elements" ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogYahooTry them out:"; old = jQuery("#sap").html(); - jQuery('#sap').append(function(i, val){ + jQuery("#sap").append(function(i, val){ equals( val, old, "Make sure the incoming value is correct." ); return jQuery("#yahoo, #first"); }); - equals( jQuery('#sap').text(), expected, "Check for appending of jQuery object" ); + equals( jQuery("#sap").text(), expected, "Check for appending of jQuery object" ); QUnit.reset(); old = jQuery("#sap").html(); @@ -414,11 +414,11 @@ test("append the same fragment with events (Bug #6997, 5566)", function () { if ( doExtra ) { element = jQuery("div:first").click(function () { ok(true, "Event exists on original after being unbound on clone"); - jQuery(this).unbind('click'); + jQuery(this).unbind("click"); }); - var clone = element.clone(true).unbind('click'); - clone[0].fireEvent('onclick'); - element[0].fireEvent('onclick'); + var clone = element.clone(true).unbind("click"); + clone[0].fireEvent("onclick"); + element[0].fireEvent("onclick"); // manually clean up detached elements clone.remove(); @@ -429,7 +429,7 @@ test("append the same fragment with events (Bug #6997, 5566)", function () { }); jQuery("#listWithTabIndex li").append(element) - .find('a.test6997').eq(1).click(); + .find("a.test6997").eq(1).click(); element = jQuery("<li class='test6997'></li>").click(function () { ok(true, "Before second element events work"); @@ -443,10 +443,10 @@ test("append the same fragment with events (Bug #6997, 5566)", function () { test("appendTo(String|Element|Array<Element>|jQuery)", function() { expect(16); - var defaultText = 'Try them out:' - jQuery('<b>buga</b>').appendTo('#first'); - equals( jQuery("#first").text(), defaultText + 'buga', 'Check if text appending works' ); - equals( jQuery('<option value="appendTest">Append Test</option>').appendTo('#select3').parent().find('option:last-child').attr('value'), 'appendTest', 'Appending html options to select element'); + var defaultText = "Try them out:" + jQuery("<b>buga</b>").appendTo("#first"); + equals( jQuery("#first").text(), defaultText + "buga", "Check if text appending works" ); + equals( jQuery("<option value='appendTest'>Append Test</option>").appendTo("#select3").parent().find("option:last-child").attr("value"), "appendTest", "Appending html options to select element"); QUnit.reset(); var l = jQuery("#first").children().length + 2; @@ -459,25 +459,25 @@ test("appendTo(String|Element|Array<Element>|jQuery)", function() { QUnit.reset(); var expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:"; - jQuery(document.getElementById('first')).appendTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for appending of element" ); + jQuery(document.getElementById("first")).appendTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for appending of element" ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogTry them out:Yahoo"; - jQuery([document.getElementById('first'), document.getElementById('yahoo')]).appendTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for appending of array of elements" ); + jQuery([document.getElementById("first"), document.getElementById("yahoo")]).appendTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for appending of array of elements" ); QUnit.reset(); ok( jQuery(document.createElement("script")).appendTo("body").length, "Make sure a disconnected script can be appended." ); QUnit.reset(); expected = "This link has class=\"blog\": Simon Willison's WeblogYahooTry them out:"; - jQuery("#yahoo, #first").appendTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for appending of jQuery object" ); + jQuery("#yahoo, #first").appendTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for appending of jQuery object" ); QUnit.reset(); - jQuery('#select1').appendTo('#foo'); - t( 'Append select', '#foo select', ['select1'] ); + jQuery("#select1").appendTo("#foo"); + t( "Append select", "#foo select", ["select1"] ); QUnit.reset(); var div = jQuery("<div/>").click(function(){ @@ -517,25 +517,25 @@ test("appendTo(String|Element|Array<Element>|jQuery)", function() { var testPrepend = function(val) { expect(5); - var defaultText = 'Try them out:' - var result = jQuery('#first').prepend(val( '<b>buga</b>' )); - equals( result.text(), 'buga' + defaultText, 'Check if text prepending works' ); - equals( jQuery('#select3').prepend(val( '<option value="prependTest">Prepend Test</option>' )).find('option:first-child').attr('value'), 'prependTest', 'Prepending html options to select element'); + var defaultText = "Try them out:" + var result = jQuery("#first").prepend(val( "<b>buga</b>" )); + equals( result.text(), "buga" + defaultText, "Check if text prepending works" ); + equals( jQuery("#select3").prepend(val( "<option value='prependTest'>Prepend Test</option>" )).find("option:first-child").attr("value"), "prependTest", "Prepending html options to select element"); QUnit.reset(); var expected = "Try them out:This link has class=\"blog\": Simon Willison's Weblog"; - jQuery('#sap').prepend(val( document.getElementById('first') )); - equals( jQuery('#sap').text(), expected, "Check for prepending of element" ); + jQuery("#sap").prepend(val( document.getElementById("first") )); + equals( jQuery("#sap").text(), expected, "Check for prepending of element" ); QUnit.reset(); expected = "Try them out:YahooThis link has class=\"blog\": Simon Willison's Weblog"; - jQuery('#sap').prepend(val( [document.getElementById('first'), document.getElementById('yahoo')] )); - equals( jQuery('#sap').text(), expected, "Check for prepending of array of elements" ); + jQuery("#sap").prepend(val( [document.getElementById("first"), document.getElementById("yahoo")] )); + equals( jQuery("#sap").text(), expected, "Check for prepending of array of elements" ); QUnit.reset(); expected = "YahooTry them out:This link has class=\"blog\": Simon Willison's Weblog"; - jQuery('#sap').prepend(val( jQuery("#yahoo, #first") )); - equals( jQuery('#sap').text(), expected, "Check for prepending of jQuery object" ); + jQuery("#sap").prepend(val( jQuery("#yahoo, #first") )); + equals( jQuery("#sap").text(), expected, "Check for prepending of jQuery object" ); }; test("prepend(String|Element|Array<Element>|jQuery)", function() { @@ -549,103 +549,103 @@ test("prepend(Function)", function() { test("prepend(Function) with incoming value", function() { expect(10); - var defaultText = 'Try them out:', old = jQuery('#first').html(); - var result = jQuery('#first').prepend(function(i, val) { + var defaultText = "Try them out:", old = jQuery("#first").html(); + var result = jQuery("#first").prepend(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); - return '<b>buga</b>'; + return "<b>buga</b>"; }); - equals( result.text(), 'buga' + defaultText, 'Check if text prepending works' ); + equals( result.text(), "buga" + defaultText, "Check if text prepending works" ); old = jQuery("#select3").html(); - equals( jQuery('#select3').prepend(function(i, val) { + equals( jQuery("#select3").prepend(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); - return '<option value="prependTest">Prepend Test</option>'; - }).find('option:first-child').attr('value'), 'prependTest', 'Prepending html options to select element'); + return "<option value='prependTest'>Prepend Test</option>"; + }).find("option:first-child").attr("value"), "prependTest", "Prepending html options to select element"); QUnit.reset(); var expected = "Try them out:This link has class=\"blog\": Simon Willison's Weblog"; - old = jQuery('#sap').html(); + old = jQuery("#sap").html(); - jQuery('#sap').prepend(function(i, val) { + jQuery("#sap").prepend(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); - return document.getElementById('first'); + return document.getElementById("first"); }); - equals( jQuery('#sap').text(), expected, "Check for prepending of element" ); + equals( jQuery("#sap").text(), expected, "Check for prepending of element" ); QUnit.reset(); expected = "Try them out:YahooThis link has class=\"blog\": Simon Willison's Weblog"; - old = jQuery('#sap').html(); + old = jQuery("#sap").html(); - jQuery('#sap').prepend(function(i, val) { + jQuery("#sap").prepend(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); - return [document.getElementById('first'), document.getElementById('yahoo')]; + return [document.getElementById("first"), document.getElementById("yahoo")]; }); - equals( jQuery('#sap').text(), expected, "Check for prepending of array of elements" ); + equals( jQuery("#sap").text(), expected, "Check for prepending of array of elements" ); QUnit.reset(); expected = "YahooTry them out:This link has class=\"blog\": Simon Willison's Weblog"; - old = jQuery('#sap').html(); + old = jQuery("#sap").html(); - jQuery('#sap').prepend(function(i, val) { + jQuery("#sap").prepend(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); return jQuery("#yahoo, #first"); }); - equals( jQuery('#sap').text(), expected, "Check for prepending of jQuery object" ); + equals( jQuery("#sap").text(), expected, "Check for prepending of jQuery object" ); }); test("prependTo(String|Element|Array<Element>|jQuery)", function() { expect(6); - var defaultText = 'Try them out:' - jQuery('<b>buga</b>').prependTo('#first'); - equals( jQuery('#first').text(), 'buga' + defaultText, 'Check if text prepending works' ); - equals( jQuery('<option value="prependTest">Prepend Test</option>').prependTo('#select3').parent().find('option:first-child').attr('value'), 'prependTest', 'Prepending html options to select element'); + var defaultText = "Try them out:" + jQuery("<b>buga</b>").prependTo("#first"); + equals( jQuery("#first").text(), "buga" + defaultText, "Check if text prepending works" ); + equals( jQuery("<option value='prependTest'>Prepend Test</option>").prependTo("#select3").parent().find("option:first-child").attr("value"), "prependTest", "Prepending html options to select element"); QUnit.reset(); var expected = "Try them out:This link has class=\"blog\": Simon Willison's Weblog"; - jQuery(document.getElementById('first')).prependTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for prepending of element" ); + jQuery(document.getElementById("first")).prependTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for prepending of element" ); QUnit.reset(); expected = "Try them out:YahooThis link has class=\"blog\": Simon Willison's Weblog"; - jQuery([document.getElementById('first'), document.getElementById('yahoo')]).prependTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for prepending of array of elements" ); + jQuery([document.getElementById("first"), document.getElementById("yahoo")]).prependTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for prepending of array of elements" ); QUnit.reset(); expected = "YahooTry them out:This link has class=\"blog\": Simon Willison's Weblog"; - jQuery("#yahoo, #first").prependTo('#sap'); - equals( jQuery('#sap').text(), expected, "Check for prepending of jQuery object" ); + jQuery("#yahoo, #first").prependTo("#sap"); + equals( jQuery("#sap").text(), expected, "Check for prepending of jQuery object" ); QUnit.reset(); - jQuery('<select id="prependSelect1"></select>').prependTo('form:last'); - jQuery('<select id="prependSelect2"><option>Test</option></select>').prependTo('form:last'); + jQuery("<select id='prependSelect1'></select>").prependTo("form:last"); + jQuery("<select id='prependSelect2'><option>Test</option></select>").prependTo("form:last"); t( "Prepend Select", "#prependSelect2, #prependSelect1", ["prependSelect2", "prependSelect1"] ); }); var testBefore = function(val) { expect(6); - var expected = 'This is a normal link: bugaYahoo'; - jQuery('#yahoo').before(val( '<b>buga</b>' )); - equals( jQuery('#en').text(), expected, 'Insert String before' ); + var expected = "This is a normal link: bugaYahoo"; + jQuery("#yahoo").before(val( "<b>buga</b>" )); + equals( jQuery("#en").text(), expected, "Insert String before" ); QUnit.reset(); expected = "This is a normal link: Try them out:Yahoo"; - jQuery('#yahoo').before(val( document.getElementById('first') )); - equals( jQuery('#en').text(), expected, "Insert element before" ); + jQuery("#yahoo").before(val( document.getElementById("first") )); + equals( jQuery("#en").text(), expected, "Insert element before" ); QUnit.reset(); expected = "This is a normal link: Try them out:diveintomarkYahoo"; - jQuery('#yahoo').before(val( [document.getElementById('first'), document.getElementById('mark')] )); - equals( jQuery('#en').text(), expected, "Insert array of elements before" ); + jQuery("#yahoo").before(val( [document.getElementById("first"), document.getElementById("mark")] )); + equals( jQuery("#en").text(), expected, "Insert array of elements before" ); QUnit.reset(); expected = "This is a normal link: diveintomarkTry them out:Yahoo"; - jQuery('#yahoo').before(val( jQuery("#mark, #first") )); - equals( jQuery('#en').text(), expected, "Insert jQuery before" ); + jQuery("#yahoo").before(val( jQuery("#mark, #first") )); + equals( jQuery("#en").text(), expected, "Insert jQuery before" ); var set = jQuery("<div/>").before("<span>test</span>"); equals( set[0].nodeName.toLowerCase(), "span", "Insert the element before the disconnected node." ); @@ -662,46 +662,46 @@ test("before(Function)", function() { test("insertBefore(String|Element|Array<Element>|jQuery)", function() { expect(4); - var expected = 'This is a normal link: bugaYahoo'; - jQuery('<b>buga</b>').insertBefore('#yahoo'); - equals( jQuery('#en').text(), expected, 'Insert String before' ); + var expected = "This is a normal link: bugaYahoo"; + jQuery("<b>buga</b>").insertBefore("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert String before" ); QUnit.reset(); expected = "This is a normal link: Try them out:Yahoo"; - jQuery(document.getElementById('first')).insertBefore('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert element before" ); + jQuery(document.getElementById("first")).insertBefore("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert element before" ); QUnit.reset(); expected = "This is a normal link: Try them out:diveintomarkYahoo"; - jQuery([document.getElementById('first'), document.getElementById('mark')]).insertBefore('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert array of elements before" ); + jQuery([document.getElementById("first"), document.getElementById("mark")]).insertBefore("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert array of elements before" ); QUnit.reset(); expected = "This is a normal link: diveintomarkTry them out:Yahoo"; - jQuery("#mark, #first").insertBefore('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert jQuery before" ); + jQuery("#mark, #first").insertBefore("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert jQuery before" ); }); var testAfter = function(val) { expect(6); - var expected = 'This is a normal link: Yahoobuga'; - jQuery('#yahoo').after(val( '<b>buga</b>' )); - equals( jQuery('#en').text(), expected, 'Insert String after' ); + var expected = "This is a normal link: Yahoobuga"; + jQuery("#yahoo").after(val( "<b>buga</b>" )); + equals( jQuery("#en").text(), expected, "Insert String after" ); QUnit.reset(); expected = "This is a normal link: YahooTry them out:"; - jQuery('#yahoo').after(val( document.getElementById('first') )); - equals( jQuery('#en').text(), expected, "Insert element after" ); + jQuery("#yahoo").after(val( document.getElementById("first") )); + equals( jQuery("#en").text(), expected, "Insert element after" ); QUnit.reset(); expected = "This is a normal link: YahooTry them out:diveintomark"; - jQuery('#yahoo').after(val( [document.getElementById('first'), document.getElementById('mark')] )); - equals( jQuery('#en').text(), expected, "Insert array of elements after" ); + jQuery("#yahoo").after(val( [document.getElementById("first"), document.getElementById("mark")] )); + equals( jQuery("#en").text(), expected, "Insert array of elements after" ); QUnit.reset(); expected = "This is a normal link: YahoodiveintomarkTry them out:"; - jQuery('#yahoo').after(val( jQuery("#mark, #first") )); - equals( jQuery('#en').text(), expected, "Insert jQuery after" ); + jQuery("#yahoo").after(val( jQuery("#mark, #first") )); + equals( jQuery("#en").text(), expected, "Insert jQuery after" ); var set = jQuery("<div/>").after("<span>test</span>"); equals( set[1].nodeName.toLowerCase(), "span", "Insert the element after the disconnected node." ); @@ -718,58 +718,58 @@ test("after(Function)", function() { test("insertAfter(String|Element|Array<Element>|jQuery)", function() { expect(4); - var expected = 'This is a normal link: Yahoobuga'; - jQuery('<b>buga</b>').insertAfter('#yahoo'); - equals( jQuery('#en').text(), expected, 'Insert String after' ); + var expected = "This is a normal link: Yahoobuga"; + jQuery("<b>buga</b>").insertAfter("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert String after" ); QUnit.reset(); expected = "This is a normal link: YahooTry them out:"; - jQuery(document.getElementById('first')).insertAfter('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert element after" ); + jQuery(document.getElementById("first")).insertAfter("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert element after" ); QUnit.reset(); expected = "This is a normal link: YahooTry them out:diveintomark"; - jQuery([document.getElementById('first'), document.getElementById('mark')]).insertAfter('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert array of elements after" ); + jQuery([document.getElementById("first"), document.getElementById("mark")]).insertAfter("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert array of elements after" ); QUnit.reset(); expected = "This is a normal link: YahoodiveintomarkTry them out:"; - jQuery("#mark, #first").insertAfter('#yahoo'); - equals( jQuery('#en').text(), expected, "Insert jQuery after" ); + jQuery("#mark, #first").insertAfter("#yahoo"); + equals( jQuery("#en").text(), expected, "Insert jQuery after" ); }); var testReplaceWith = function(val) { expect(21); - jQuery('#yahoo').replaceWith(val( '<b id="replace">buga</b>' )); - ok( jQuery("#replace")[0], 'Replace element with string' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' ); + jQuery("#yahoo").replaceWith(val( "<b id='replace'>buga</b>" )); + ok( jQuery("#replace")[0], "Replace element with string" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after string" ); QUnit.reset(); - jQuery('#yahoo').replaceWith(val( document.getElementById('first') )); - ok( jQuery("#first")[0], 'Replace element with element' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after element' ); + jQuery("#yahoo").replaceWith(val( document.getElementById("first") )); + ok( jQuery("#first")[0], "Replace element with element" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after element" ); QUnit.reset(); - jQuery("#main").append('<div id="bar"><div id="baz">Foo</div></div>'); - jQuery('#baz').replaceWith("Baz"); - equals( jQuery("#bar").text(),"Baz", 'Replace element with text' ); - ok( !jQuery("#baz")[0], 'Verify that original element is gone, after element' ); + jQuery("#main").append("<div id='bar'><div id='baz'</div></div>"); + jQuery("#baz").replaceWith("Baz"); + equals( jQuery("#bar").text(),"Baz", "Replace element with text" ); + ok( !jQuery("#baz")[0], "Verify that original element is gone, after element" ); QUnit.reset(); - jQuery('#yahoo').replaceWith(val( [document.getElementById('first'), document.getElementById('mark')] )); - ok( jQuery("#first")[0], 'Replace element with array of elements' ); - ok( jQuery("#mark")[0], 'Replace element with array of elements' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after array of elements' ); + jQuery("#yahoo").replaceWith(val( [document.getElementById("first"), document.getElementById("mark")] )); + ok( jQuery("#first")[0], "Replace element with array of elements" ); + ok( jQuery("#mark")[0], "Replace element with array of elements" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after array of elements" ); QUnit.reset(); - jQuery('#yahoo').replaceWith(val( jQuery("#mark, #first") )); - ok( jQuery("#first")[0], 'Replace element with set of elements' ); - ok( jQuery("#mark")[0], 'Replace element with set of elements' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after set of elements' ); + jQuery("#yahoo").replaceWith(val( jQuery("#mark, #first") )); + ok( jQuery("#first")[0], "Replace element with set of elements" ); + ok( jQuery("#mark")[0], "Replace element with set of elements" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after set of elements" ); QUnit.reset(); var tmp = jQuery("<div/>").appendTo("body").click(function(){ ok(true, "Newly bound click run." ); }); - var y = jQuery('<div/>').appendTo("body").click(function(){ ok(true, "Previously bound click run." ); }); + var y = jQuery("<div/>").appendTo("body").click(function(){ ok(true, "Previously bound click run." ); }); var child = y.append("<b>test</b>").find("b").click(function(){ ok(true, "Child bound click run." ); return false; }); y.replaceWith( tmp ); @@ -784,7 +784,7 @@ var testReplaceWith = function(val) { QUnit.reset(); - y = jQuery('<div/>').appendTo("body").click(function(){ ok(true, "Previously bound click run." ); }); + y = jQuery("<div/>").appendTo("body").click(function(){ ok(true, "Previously bound click run." ); }); var child2 = y.append("<u>test</u>").find("u").click(function(){ ok(true, "Child 2 bound click run." ); return false; }); y.replaceWith( child2 ); @@ -800,7 +800,7 @@ var testReplaceWith = function(val) { equals( set[0].nodeName.toLowerCase(), "span", "Replace the disconnected node." ); equals( set.length, 1, "Replace the disconnected node." ); - var non_existant = jQuery('#does-not-exist').replaceWith( val("<b>should not throw an error</b>") ); + var non_existant = jQuery("#does-not-exist").replaceWith( val("<b>should not throw an error</b>") ); equals( non_existant.length, 0, "Length of non existant element." ); var $div = jQuery("<div class='replacewith'></div>").appendTo("body"); @@ -808,8 +808,8 @@ var testReplaceWith = function(val) { //$div.replaceWith("<div class='replacewith'></div><script>" + //"equals(jQuery('.replacewith').length, 1, 'Check number of elements in page.');" + //"</script>"); - equals(jQuery('.replacewith').length, 1, 'Check number of elements in page.'); - jQuery('.replacewith').remove(); + equals(jQuery(".replacewith").length, 1, "Check number of elements in page."); + jQuery(".replacewith").remove(); QUnit.reset(); @@ -844,35 +844,35 @@ test("replaceWith(Function)", function() { test("replaceWith(string) for more than one element", function(){ expect(3); - equals(jQuery('#foo p').length, 3, 'ensuring that test data has not changed'); + equals(jQuery("#foo p").length, 3, "ensuring that test data has not changed"); - jQuery('#foo p').replaceWith('<span>bar</span>'); - equals(jQuery('#foo span').length, 3, 'verify that all the three original element have been replaced'); - equals(jQuery('#foo p').length, 0, 'verify that all the three original element have been replaced'); + jQuery("#foo p").replaceWith("<span>bar</span>"); + equals(jQuery("#foo span").length, 3, "verify that all the three original element have been replaced"); + equals(jQuery("#foo p").length, 0, "verify that all the three original element have been replaced"); }); test("replaceAll(String|Element|Array<Element>|jQuery)", function() { expect(10); - jQuery('<b id="replace">buga</b>').replaceAll("#yahoo"); - ok( jQuery("#replace")[0], 'Replace element with string' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after string' ); + jQuery("<b id='replace'>buga</b>").replaceAll("#yahoo"); + ok( jQuery("#replace")[0], "Replace element with string" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after string" ); QUnit.reset(); - jQuery(document.getElementById('first')).replaceAll("#yahoo"); - ok( jQuery("#first")[0], 'Replace element with element' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after element' ); + jQuery(document.getElementById("first")).replaceAll("#yahoo"); + ok( jQuery("#first")[0], "Replace element with element" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after element" ); QUnit.reset(); - jQuery([document.getElementById('first'), document.getElementById('mark')]).replaceAll("#yahoo"); - ok( jQuery("#first")[0], 'Replace element with array of elements' ); - ok( jQuery("#mark")[0], 'Replace element with array of elements' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after array of elements' ); + jQuery([document.getElementById("first"), document.getElementById("mark")]).replaceAll("#yahoo"); + ok( jQuery("#first")[0], "Replace element with array of elements" ); + ok( jQuery("#mark")[0], "Replace element with array of elements" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after array of elements" ); QUnit.reset(); jQuery("#mark, #first").replaceAll("#yahoo"); - ok( jQuery("#first")[0], 'Replace element with set of elements' ); - ok( jQuery("#mark")[0], 'Replace element with set of elements' ); - ok( !jQuery("#yahoo")[0], 'Verify that original element is gone, after set of elements' ); + ok( jQuery("#first")[0], "Replace element with set of elements" ); + ok( jQuery("#mark")[0], "Replace element with set of elements" ); + ok( !jQuery("#yahoo")[0], "Verify that original element is gone, after set of elements" ); }); test("jQuery.clone() (#8017)", function() { @@ -890,9 +890,9 @@ test("jQuery.clone() (#8017)", function() { test("clone() (#8070)", function () { expect(2); - jQuery('<select class="test8070"></select><select class="test8070"></select>').appendTo('#main'); - var selects = jQuery('.test8070'); - selects.append('<OPTION>1</OPTION><OPTION>2</OPTION>'); + jQuery("<select class='test8070'></select><select class='test8070'></select>").appendTo("#main"); + var selects = jQuery(".test8070"); + selects.append("<OPTION>1</OPTION><OPTION>2</OPTION>"); equals( selects[0].childNodes.length, 2, "First select got two nodes" ); equals( selects[1].childNodes.length, 2, "Second select got two nodes" ); @@ -902,10 +902,10 @@ test("clone() (#8070)", function () { test("clone()", function() { expect(37); - equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Assert text for #en' ); - var clone = jQuery('#yahoo').clone(); - equals( 'Try them out:Yahoo', jQuery('#first').append(clone).text(), 'Check for clone' ); - equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Reassert text for #en' ); + equals( "This is a normal link: Yahoo", jQuery("#en").text(), "Assert text for #en" ); + var clone = jQuery("#yahoo").clone(); + equals( "Try them out:Yahoo", jQuery("#first").append(clone).text(), "Check for clone" ); + equals( "This is a normal link: Yahoo", jQuery("#en").text(), "Reassert text for #en" ); var cloneTags = [ "<table/>", "<tr/>", "<td/>", "<div/>", @@ -915,7 +915,7 @@ test("clone()", function() { ]; for (var i = 0; i < cloneTags.length; i++) { var j = jQuery(cloneTags[i]); - equals( j[0].tagName, j.clone()[0].tagName, 'Clone a ' + cloneTags[i]); + equals( j[0].tagName, j.clone()[0].tagName, "Clone a " + cloneTags[i]); } // using contents will get comments regular, text, and comment nodes @@ -971,7 +971,7 @@ test("clone()", function() { // this is technically an invalid object, but because of the special // classid instantiation it is the only kind that IE has trouble with, // so let's test with it too. - div = jQuery("<div/>").html('<object height="355" width="425" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="movie" value="http://www.youtube.com/v/3KANI2dpXLw&hl=en"> <param name="wmode" value="transparent"> </object>'); + div = jQuery("<div/>").html("<object height='355' width='425' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'> <param name='movie' value='http://www.youtube.com/v/3KANI2dpXLw&hl=en'> <param name='wmode' value='transparent'> </object>"); clone = div.clone(true); equals( clone.length, 1, "One element cloned" ); @@ -979,7 +979,7 @@ test("clone()", function() { equals( clone[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" ); // and here's a valid one. - div = jQuery("<div/>").html('<object height="355" width="425" type="application/x-shockwave-flash" data="http://www.youtube.com/v/3KANI2dpXLw&hl=en"> <param name="movie" value="http://www.youtube.com/v/3KANI2dpXLw&hl=en"> <param name="wmode" value="transparent"> </object>'); + div = jQuery("<div/>").html("<object height='355' width='425' type='application/x-shockwave-flash' data='http://www.youtube.com/v/3KANI2dpXLw&hl=en'> <param name='movie' value='http://www.youtube.com/v/3KANI2dpXLw&hl=en'> <param name='wmode' value='transparent'> </object>"); clone = div.clone(true); equals( clone.length, 1, "One element cloned" ); @@ -1014,7 +1014,7 @@ test("clone(form element) (Bug #3879, #6655)", function() { equals( element.clone().find("option:selected").val(), element.find("option:selected").val(), "Selected option cloned correctly" ); - element = jQuery("<input type='checkbox' value='foo'>").attr('checked', 'checked'); + element = jQuery("<input type='checkbox' value='foo'>").attr("checked", "checked"); clone = element.clone(); equals( clone.is(":checked"), element.is(":checked"), "Checked input cloned correctly" ); @@ -1058,7 +1058,7 @@ test("clone() on XML nodes", function() { } var testHtml = function(valueObj) { - expect(31); + expect(34); jQuery.scriptorder = 0; @@ -1070,7 +1070,7 @@ var testHtml = function(valueObj) { } ok( pass, "Set HTML" ); - div = jQuery("<div/>").html( valueObj('<div id="parent_1"><div id="child_1"/></div><div id="parent_2"/>') ); + div = jQuery("<div/>").html( valueObj("<div id='parent_1'><div id='child_1'/></div><div id='parent_2'/>") ); equals( div.children().length, 2, "Make sure two child nodes exist." ); equals( div.children().children().length, 1, "Make sure that a grandchild exists." ); @@ -1090,18 +1090,18 @@ var testHtml = function(valueObj) { j.html(valueObj("<b>bold</b>")); // this is needed, or the expando added by jQuery unique will yield a different html - j.find('b').removeData(); + j.find("b").removeData(); equals( j.html().replace(/ xmlns="[^"]+"/g, "").toLowerCase(), "<b>bold</b>", "Check node,textnode,comment with html()" ); jQuery("#main").html(valueObj("<select/>")); jQuery("#main select").html(valueObj("<option>O1</option><option selected='selected'>O2</option><option>O3</option>")); equals( jQuery("#main select").val(), "O2", "Selected option correct" ); - var $div = jQuery('<div />'); - equals( $div.html(valueObj( 5 )).html(), '5', 'Setting a number as html' ); - equals( $div.html(valueObj( 0 )).html(), '0', 'Setting a zero as html' ); + var $div = jQuery("<div />"); + equals( $div.html(valueObj( 5 )).html(), "5", "Setting a number as html" ); + equals( $div.html(valueObj( 0 )).html(), "0", "Setting a zero as html" ); - var $div2 = jQuery('<div/>'), insert = "<div>hello1</div>"; + var $div2 = jQuery("<div/>"), insert = "<div>hello1</div>"; equals( $div2.html(insert).html().replace(/>/g, ">"), insert, "Verify escaped insertion." ); equals( $div2.html("x" + insert).html().replace(/>/g, ">"), "x" + insert, "Verify escaped insertion." ); equals( $div2.html(" " + insert).html().replace(/>/g, ">"), " " + insert, "Verify escaped insertion." ); @@ -1113,15 +1113,21 @@ var testHtml = function(valueObj) { QUnit.reset(); - jQuery("#main").html(valueObj('<script type="something/else">ok( false, "Non-script evaluated." );</script><script type="text/javascript">ok( true, "text/javascript is evaluated." );</script><script>ok( true, "No type is evaluated." );</script><div><script type="text/javascript">ok( true, "Inner text/javascript is evaluated." );</script><script>ok( true, "Inner No type is evaluated." );</script><script type="something/else">ok( false, "Non-script evaluated." );</script></div>')); + jQuery("#main").html(valueObj("<script type='something/else'>ok( false, 'Non-script evaluated.' );</script><script type='text/javascript'>ok( true, 'text/javascript is evaluated.' );</script><script>ok( true, 'No type is evaluated.' );</script><div><script type='text/javascript'>ok( true, 'Inner text/javascript is evaluated.' );</script><script>ok( true, 'Inner No type is evaluated.' );</script><script type='something/else'>ok( false, 'Non-script evaluated.' );</script></div>")); + + var child = jQuery("#main").find("script"); + + equals( child.length, 2, "Make sure that two non-JavaScript script tags are left." ); + equals( child[0].type, "something/else", "Verify type of script tag." ); + equals( child[1].type, "something/else", "Verify type of script tag." ); jQuery("#main").html(valueObj("<script>ok( true, 'Test repeated injection of script.' );</script>")); jQuery("#main").html(valueObj("<script>ok( true, 'Test repeated injection of script.' );</script>")); jQuery("#main").html(valueObj("<script>ok( true, 'Test repeated injection of script.' );</script>")); - jQuery("#main").html(valueObj('<script type="text/javascript">ok( true, "jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975 (1)" );</script>')); + jQuery("#main").html(valueObj("<script type='text/javascript'>ok( true, 'jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975 (1)' );</script>")); - jQuery("#main").html(valueObj('foo <form><script type="text/javascript">ok( true, "jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975 (2)" );</script></form>')); + jQuery("#main").html(valueObj("foo <form><script type='text/javascript'>ok( true, 'jQuery().html().evalScripts() Evals Scripts Twice in Firefox, see #975 (2)' );</script></form>")); jQuery("#main").html(valueObj("<script>equals(jQuery.scriptorder++, 0, 'Script is executed in order');equals(jQuery('#scriptorder').length, 1,'Execute after html (even though appears before)')<\/script><span id='scriptorder'><script>equals(jQuery.scriptorder++, 1, 'Script (nested) is executed in order');equals(jQuery('#scriptorder').length, 1,'Execute after html')<\/script></span><script>equals(jQuery.scriptorder++, 2, 'Script (unnested) is executed in order');equals(jQuery('#scriptorder').length, 1,'Execute after html')<\/script>")); } @@ -1133,7 +1139,7 @@ test("html(String)", function() { test("html(Function)", function() { testHtml(functionReturningObj); - expect(33); + expect(36); QUnit.reset(); @@ -1178,22 +1184,22 @@ test("html(Function) with incoming value", function() { equals( null, null, "Make sure the incoming value is correct." ); } - j.find('b').removeData(); + j.find("b").removeData(); equals( j.html().replace(/ xmlns="[^"]+"/g, "").toLowerCase(), "<b>bold</b>", "Check node,textnode,comment with html()" ); - var $div = jQuery('<div />'); + var $div = jQuery("<div />"); equals( $div.html(function(i, val) { equals( val, "", "Make sure the incoming value is correct." ); return 5; - }).html(), '5', 'Setting a number as html' ); + }).html(), "5", "Setting a number as html" ); equals( $div.html(function(i, val) { equals( val, "5", "Make sure the incoming value is correct." ); return 0; - }).html(), '0', 'Setting a zero as html' ); + }).html(), "0", "Setting a zero as html" ); - var $div2 = jQuery('<div/>'), insert = "<div>hello1</div>"; + var $div2 = jQuery("<div/>"), insert = "<div>hello1</div>"; equals( $div2.html(function(i, val) { equals( val, "", "Make sure the incoming value is correct." ); return insert; @@ -1362,6 +1368,6 @@ test("jQuery.buildFragment - no plain-text caching (Bug #6779)", function() { } catch(e) {} } - equals($f.text(), bad.join(''), "Cached strings that match Object properties"); + equals($f.text(), bad.join(""), "Cached strings that match Object properties"); $f.remove(); }); diff --git a/test/unit/offset.js b/test/unit/offset.js index ae0518849..ea1a49332 100644 --- a/test/unit/offset.js +++ b/test/unit/offset.js @@ -20,7 +20,7 @@ testoffset("absolute"/* in iframe */, function($, iframe) { // this insures that the results will be wrong // if the offset method is using the scroll offset // of the parent window - var forceScroll = jQuery('<div>', { width: 2000, height: 2000 }).appendTo('body'); + var forceScroll = jQuery("<div>", { width: 2000, height: 2000 }).appendTo("body"); window.scrollTo(200, 200); if ( document.documentElement.scrollTop || document.body.scrollTop ) { @@ -31,7 +31,7 @@ testoffset("absolute"/* in iframe */, function($, iframe) { // get offset tests = [ - { id: '#absolute-1', top: 1, left: 1 } + { id: "#absolute-1", top: 1, left: 1 } ]; jQuery.each( tests, function() { equals( jQuery( this.id, doc ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); @@ -41,7 +41,7 @@ testoffset("absolute"/* in iframe */, function($, iframe) { // get position tests = [ - { id: '#absolute-1', top: 0, left: 0 } + { id: "#absolute-1", top: 0, left: 0 } ]; jQuery.each( tests, function() { equals( jQuery( this.id, doc ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); @@ -56,10 +56,10 @@ testoffset("absolute", function( jQuery ) { // get offset tests var tests = [ - { id: '#absolute-1', top: 1, left: 1 }, - { id: '#absolute-1-1', top: 5, left: 5 }, - { id: '#absolute-1-1-1', top: 9, left: 9 }, - { id: '#absolute-2', top: 20, left: 20 } + { id: "#absolute-1", top: 1, left: 1 }, + { id: "#absolute-1-1", top: 5, left: 5 }, + { id: "#absolute-1-1-1", top: 9, left: 9 }, + { id: "#absolute-2", top: 20, left: 20 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); @@ -69,10 +69,10 @@ testoffset("absolute", function( jQuery ) { // get position tests = [ - { id: '#absolute-1', top: 0, left: 0 }, - { id: '#absolute-1-1', top: 1, left: 1 }, - { id: '#absolute-1-1-1', top: 1, left: 1 }, - { id: '#absolute-2', top: 19, left: 19 } + { id: "#absolute-1", top: 0, left: 0 }, + { id: "#absolute-1-1", top: 1, left: 1 }, + { id: "#absolute-1-1-1", top: 1, left: 1 }, + { id: "#absolute-2", top: 19, left: 19 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); @@ -80,29 +80,29 @@ testoffset("absolute", function( jQuery ) { }); // test #5781 - var offset = jQuery( '#positionTest' ).offset({ top: 10, left: 10 }).offset(); + var offset = jQuery( "#positionTest" ).offset({ top: 10, left: 10 }).offset(); equals( offset.top, 10, "Setting offset on element with position absolute but 'auto' values." ) equals( offset.left, 10, "Setting offset on element with position absolute but 'auto' values." ) // set offset tests = [ - { id: '#absolute-2', top: 30, left: 30 }, - { id: '#absolute-2', top: 10, left: 10 }, - { id: '#absolute-2', top: -1, left: -1 }, - { id: '#absolute-2', top: 19, left: 19 }, - { id: '#absolute-1-1-1', top: 15, left: 15 }, - { id: '#absolute-1-1-1', top: 5, left: 5 }, - { id: '#absolute-1-1-1', top: -1, left: -1 }, - { id: '#absolute-1-1-1', top: 9, left: 9 }, - { id: '#absolute-1-1', top: 10, left: 10 }, - { id: '#absolute-1-1', top: 0, left: 0 }, - { id: '#absolute-1-1', top: -1, left: -1 }, - { id: '#absolute-1-1', top: 5, left: 5 }, - { id: '#absolute-1', top: 2, left: 2 }, - { id: '#absolute-1', top: 0, left: 0 }, - { id: '#absolute-1', top: -1, left: -1 }, - { id: '#absolute-1', top: 1, left: 1 } + { id: "#absolute-2", top: 30, left: 30 }, + { id: "#absolute-2", top: 10, left: 10 }, + { id: "#absolute-2", top: -1, left: -1 }, + { id: "#absolute-2", top: 19, left: 19 }, + { id: "#absolute-1-1-1", top: 15, left: 15 }, + { id: "#absolute-1-1-1", top: 5, left: 5 }, + { id: "#absolute-1-1-1", top: -1, left: -1 }, + { id: "#absolute-1-1-1", top: 9, left: 9 }, + { id: "#absolute-1-1", top: 10, left: 10 }, + { id: "#absolute-1-1", top: 0, left: 0 }, + { id: "#absolute-1-1", top: -1, left: -1 }, + { id: "#absolute-1-1", top: 5, left: 5 }, + { id: "#absolute-1", top: 2, left: 2 }, + { id: "#absolute-1", top: 0, left: 0 }, + { id: "#absolute-1", top: -1, left: -1 }, + { id: "#absolute-1", top: 1, left: 1 } ]; jQuery.each( tests, function() { jQuery( this.id ).offset({ top: this.top, left: this.left }); @@ -144,9 +144,9 @@ testoffset("relative", function( jQuery ) { // get offset var tests = [ - { id: '#relative-1', top: ie ? 6 : 7, left: 7 }, - { id: '#relative-1-1', top: ie ? 13 : 15, left: 15 }, - { id: '#relative-2', top: ie ? 141 : 142, left: 27 } + { id: "#relative-1", top: ie ? 6 : 7, left: 7 }, + { id: "#relative-1-1", top: ie ? 13 : 15, left: 15 }, + { id: "#relative-2", top: ie ? 141 : 142, left: 27 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); @@ -156,9 +156,9 @@ testoffset("relative", function( jQuery ) { // get position tests = [ - { id: '#relative-1', top: ie ? 5 : 6, left: 6 }, - { id: '#relative-1-1', top: ie ? 4 : 5, left: 5 }, - { id: '#relative-2', top: ie ? 140 : 141, left: 26 } + { id: "#relative-1", top: ie ? 5 : 6, left: 6 }, + { id: "#relative-1-1", top: ie ? 4 : 5, left: 5 }, + { id: "#relative-2", top: ie ? 140 : 141, left: 26 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); @@ -168,18 +168,18 @@ testoffset("relative", function( jQuery ) { // set offset tests = [ - { id: '#relative-2', top: 200, left: 50 }, - { id: '#relative-2', top: 100, left: 10 }, - { id: '#relative-2', top: -5, left: -5 }, - { id: '#relative-2', top: 142, left: 27 }, - { id: '#relative-1-1', top: 100, left: 100 }, - { id: '#relative-1-1', top: 5, left: 5 }, - { id: '#relative-1-1', top: -1, left: -1 }, - { id: '#relative-1-1', top: 15, left: 15 }, - { id: '#relative-1', top: 100, left: 100 }, - { id: '#relative-1', top: 0, left: 0 }, - { id: '#relative-1', top: -1, left: -1 }, - { id: '#relative-1', top: 7, left: 7 } + { id: "#relative-2", top: 200, left: 50 }, + { id: "#relative-2", top: 100, left: 10 }, + { id: "#relative-2", top: -5, left: -5 }, + { id: "#relative-2", top: 142, left: 27 }, + { id: "#relative-1-1", top: 100, left: 100 }, + { id: "#relative-1-1", top: 5, left: 5 }, + { id: "#relative-1-1", top: -1, left: -1 }, + { id: "#relative-1-1", top: 15, left: 15 }, + { id: "#relative-1", top: 100, left: 100 }, + { id: "#relative-1", top: 0, left: 0 }, + { id: "#relative-1", top: -1, left: -1 }, + { id: "#relative-1", top: 7, left: 7 } ]; jQuery.each( tests, function() { jQuery( this.id ).offset({ top: this.top, left: this.left }); @@ -205,10 +205,10 @@ testoffset("static", function( jQuery ) { // get offset var tests = [ - { id: '#static-1', top: ie ? 6 : 7, left: 7 }, - { id: '#static-1-1', top: ie ? 13 : 15, left: 15 }, - { id: '#static-1-1-1', top: ie ? 20 : 23, left: 23 }, - { id: '#static-2', top: ie ? 121 : 122, left: 7 } + { id: "#static-1", top: ie ? 6 : 7, left: 7 }, + { id: "#static-1-1", top: ie ? 13 : 15, left: 15 }, + { id: "#static-1-1-1", top: ie ? 20 : 23, left: 23 }, + { id: "#static-2", top: ie ? 121 : 122, left: 7 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); @@ -218,10 +218,10 @@ testoffset("static", function( jQuery ) { // get position tests = [ - { id: '#static-1', top: ie ? 5 : 6, left: 6 }, - { id: '#static-1-1', top: ie ? 12 : 14, left: 14 }, - { id: '#static-1-1-1', top: ie ? 19 : 22, left: 22 }, - { id: '#static-2', top: ie ? 120 : 121, left: 6 } + { id: "#static-1", top: ie ? 5 : 6, left: 6 }, + { id: "#static-1-1", top: ie ? 12 : 14, left: 14 }, + { id: "#static-1-1-1", top: ie ? 19 : 22, left: 22 }, + { id: "#static-2", top: ie ? 120 : 121, left: 6 } ]; jQuery.each( tests, function() { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.top + "').position().top" ); @@ -231,22 +231,22 @@ testoffset("static", function( jQuery ) { // set offset tests = [ - { id: '#static-2', top: 200, left: 200 }, - { id: '#static-2', top: 100, left: 100 }, - { id: '#static-2', top: -2, left: -2 }, - { id: '#static-2', top: 121, left: 6 }, - { id: '#static-1-1-1', top: 50, left: 50 }, - { id: '#static-1-1-1', top: 10, left: 10 }, - { id: '#static-1-1-1', top: -1, left: -1 }, - { id: '#static-1-1-1', top: 22, left: 22 }, - { id: '#static-1-1', top: 25, left: 25 }, - { id: '#static-1-1', top: 10, left: 10 }, - { id: '#static-1-1', top: -3, left: -3 }, - { id: '#static-1-1', top: 14, left: 14 }, - { id: '#static-1', top: 30, left: 30 }, - { id: '#static-1', top: 2, left: 2 }, - { id: '#static-1', top: -2, left: -2 }, - { id: '#static-1', top: 7, left: 7 } + { id: "#static-2", top: 200, left: 200 }, + { id: "#static-2", top: 100, left: 100 }, + { id: "#static-2", top: -2, left: -2 }, + { id: "#static-2", top: 121, left: 6 }, + { id: "#static-1-1-1", top: 50, left: 50 }, + { id: "#static-1-1-1", top: 10, left: 10 }, + { id: "#static-1-1-1", top: -1, left: -1 }, + { id: "#static-1-1-1", top: 22, left: 22 }, + { id: "#static-1-1", top: 25, left: 25 }, + { id: "#static-1-1", top: 10, left: 10 }, + { id: "#static-1-1", top: -3, left: -3 }, + { id: "#static-1-1", top: 14, left: 14 }, + { id: "#static-1", top: 30, left: 30 }, + { id: "#static-1", top: 2, left: 2 }, + { id: "#static-1", top: -2, left: -2 }, + { id: "#static-1", top: 7, left: 7 } ]; jQuery.each( tests, function() { jQuery( this.id ).offset({ top: this.top, left: this.left }); @@ -270,8 +270,8 @@ testoffset("fixed", function( jQuery ) { jQuery.offset.initialize(); var tests = [ - { id: '#fixed-1', top: 1001, left: 1001 }, - { id: '#fixed-2', top: 1021, left: 1021 } + { id: "#fixed-1", top: 1001, left: 1001 }, + { id: "#fixed-2", top: 1021, left: 1021 } ]; jQuery.each( tests, function() { @@ -284,18 +284,18 @@ testoffset("fixed", function( jQuery ) { equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset().left" ); } else { // need to have same number of assertions - ok( true, 'Fixed position is not supported' ); - ok( true, 'Fixed position is not supported' ); + ok( true, "Fixed position is not supported" ); + ok( true, "Fixed position is not supported" ); } }); tests = [ - { id: '#fixed-1', top: 100, left: 100 }, - { id: '#fixed-1', top: 0, left: 0 }, - { id: '#fixed-1', top: -4, left: -4 }, - { id: '#fixed-2', top: 200, left: 200 }, - { id: '#fixed-2', top: 0, left: 0 }, - { id: '#fixed-2', top: -5, left: -5 } + { id: "#fixed-1", top: 100, left: 100 }, + { id: "#fixed-1", top: 0, left: 0 }, + { id: "#fixed-1", top: -4, left: -4 }, + { id: "#fixed-2", top: 200, left: 200 }, + { id: "#fixed-2", top: 0, left: 0 }, + { id: "#fixed-2", top: -5, left: -5 } ]; jQuery.each( tests, function() { @@ -314,58 +314,58 @@ testoffset("fixed", function( jQuery ) { equals( jQuery( this.id ).offset().left, this.left + 1, "jQuery('" + this.id + "').offset({ left: " + (this.left + 1) + ", using: fn })" ); } else { // need to have same number of assertions - ok( true, 'Fixed position is not supported' ); - ok( true, 'Fixed position is not supported' ); - ok( true, 'Fixed position is not supported' ); - ok( true, 'Fixed position is not supported' ); + ok( true, "Fixed position is not supported" ); + ok( true, "Fixed position is not supported" ); + ok( true, "Fixed position is not supported" ); + ok( true, "Fixed position is not supported" ); } }); // Bug 8316 - var $noTopLeft = jQuery('#fixed-no-top-left'); + var $noTopLeft = jQuery("#fixed-no-top-left"); if ( jQuery.offset.supportsFixedPosition ) { equals( $noTopLeft.offset().top, 1007, "Check offset top for fixed element with no top set" ); equals( $noTopLeft.offset().left, 1007, "Check offset left for fixed element with no left set" ); } else { // need to have same number of assertions - ok( true, 'Fixed position is not supported' ); - ok( true, 'Fixed position is not supported' ); + ok( true, "Fixed position is not supported" ); + ok( true, "Fixed position is not supported" ); } }); testoffset("table", function( jQuery ) { expect(4); - equals( jQuery('#table-1').offset().top, 6, "jQuery('#table-1').offset().top" ); - equals( jQuery('#table-1').offset().left, 6, "jQuery('#table-1').offset().left" ); + equals( jQuery("#table-1").offset().top, 6, "jQuery('#table-1').offset().top" ); + equals( jQuery("#table-1").offset().left, 6, "jQuery('#table-1').offset().left" ); - equals( jQuery('#th-1').offset().top, 10, "jQuery('#th-1').offset().top" ); - equals( jQuery('#th-1').offset().left, 10, "jQuery('#th-1').offset().left" ); + equals( jQuery("#th-1").offset().top, 10, "jQuery('#th-1').offset().top" ); + equals( jQuery("#th-1").offset().left, 10, "jQuery('#th-1').offset().left" ); }); testoffset("scroll", function( jQuery, win ) { - expect(16); + expect(22); var ie = jQuery.browser.msie && parseInt( jQuery.browser.version, 10 ) < 8; // IE is collapsing the top margin of 1px - equals( jQuery('#scroll-1').offset().top, ie ? 6 : 7, "jQuery('#scroll-1').offset().top" ); - equals( jQuery('#scroll-1').offset().left, 7, "jQuery('#scroll-1').offset().left" ); + equals( jQuery("#scroll-1").offset().top, ie ? 6 : 7, "jQuery('#scroll-1').offset().top" ); + equals( jQuery("#scroll-1").offset().left, 7, "jQuery('#scroll-1').offset().left" ); // IE is collapsing the top margin of 1px - equals( jQuery('#scroll-1-1').offset().top, ie ? 9 : 11, "jQuery('#scroll-1-1').offset().top" ); - equals( jQuery('#scroll-1-1').offset().left, 11, "jQuery('#scroll-1-1').offset().left" ); + equals( jQuery("#scroll-1-1").offset().top, ie ? 9 : 11, "jQuery('#scroll-1-1').offset().top" ); + equals( jQuery("#scroll-1-1").offset().left, 11, "jQuery('#scroll-1-1').offset().left" ); // scroll offset tests .scrollTop/Left - equals( jQuery('#scroll-1').scrollTop(), 5, "jQuery('#scroll-1').scrollTop()" ); - equals( jQuery('#scroll-1').scrollLeft(), 5, "jQuery('#scroll-1').scrollLeft()" ); + equals( jQuery("#scroll-1").scrollTop(), 5, "jQuery('#scroll-1').scrollTop()" ); + equals( jQuery("#scroll-1").scrollLeft(), 5, "jQuery('#scroll-1').scrollLeft()" ); - equals( jQuery('#scroll-1-1').scrollTop(), 0, "jQuery('#scroll-1-1').scrollTop()" ); - equals( jQuery('#scroll-1-1').scrollLeft(), 0, "jQuery('#scroll-1-1').scrollLeft()" ); + equals( jQuery("#scroll-1-1").scrollTop(), 0, "jQuery('#scroll-1-1').scrollTop()" ); + equals( jQuery("#scroll-1-1").scrollLeft(), 0, "jQuery('#scroll-1-1').scrollLeft()" ); - // equals( jQuery('body').scrollTop(), 0, "jQuery('body').scrollTop()" ); - // equals( jQuery('body').scrollLeft(), 0, "jQuery('body').scrollTop()" ); + // equals( jQuery("body").scrollTop(), 0, "jQuery("body").scrollTop()" ); + // equals( jQuery("body").scrollLeft(), 0, "jQuery("body").scrollTop()" ); win.name = "test"; @@ -390,13 +390,21 @@ testoffset("scroll", function( jQuery, win ) { equals( jQuery(window).scrollLeft(), 0, "jQuery(window).scrollLeft() other window" ); equals( jQuery(document).scrollTop(), 0, "jQuery(window).scrollTop() other document" ); equals( jQuery(document).scrollLeft(), 0, "jQuery(window).scrollLeft() other document" ); + + // Tests scrollTop/Left with empty jquery objects + notEqual( jQuery().scrollTop(100), null, "jQuery().scrollTop(100) testing setter on empty jquery object" ); + notEqual( jQuery().scrollLeft(100), null, "jQuery().scrollLeft(100) testing setter on empty jquery object" ); + notEqual( jQuery().scrollTop(null), null, "jQuery().scrollTop(null) testing setter on empty jquery object" ); + notEqual( jQuery().scrollLeft(null), null, "jQuery().scrollLeft(null) testing setter on empty jquery object" ); + strictEqual( jQuery().scrollTop(), null, "jQuery().scrollTop(100) testing setter on empty jquery object" ); + strictEqual( jQuery().scrollLeft(), null, "jQuery().scrollLeft(100) testing setter on empty jquery object" ); }); testoffset("body", function( jQuery ) { expect(2); - equals( jQuery('body').offset().top, 1, "jQuery('#body').offset().top" ); - equals( jQuery('body').offset().left, 1, "jQuery('#body').offset().left" ); + equals( jQuery("body").offset().top, 1, "jQuery('#body').offset().top" ); + equals( jQuery("body").offset().left, 1, "jQuery('#body').offset().left" ); }); test("Chaining offset(coords) returns jQuery object", function() { @@ -433,7 +441,33 @@ test("offsetParent", function(){ equals( div[1], jQuery("#nothiddendiv")[0], "The div is the offsetParent." ); }); -function testoffset( name, fn ) { +test("fractions (see #7730 and #7885)", function() { + expect(2); + + jQuery('body').append('<div id="fractions"/>'); + + var expected = { top: 1000, left: 1000 }; + var div = jQuery('#fractions'); + + div.css({ + position: 'absolute', + left: '1000.7432222px', + top: '1000.532325px', + width: 100, + height: 100 + }); + + div.offset(expected); + + var result = div.offset(); + + equals( result.top, expected.top, "Check top" ); + equals( result.left, expected.left, "Check left" ); + + div.remove(); +}); + +function testoffset(name, fn) { test(name, function() { // pause execution for now @@ -456,10 +490,10 @@ function testoffset( name, fn ) { }); function loadFixture() { - var src = './data/offset/' + name + '.html?' + parseInt( Math.random()*1000, 10 ), - iframe = jQuery('<iframe />').css({ - width: 500, height: 500, position: 'absolute', top: -600, left: -600, visibility: 'hidden' - }).appendTo('body')[0]; + var src = "./data/offset/" + name + ".html?" + parseInt( Math.random()*1000, 10 ), + iframe = jQuery("<iframe />").css({ + width: 500, height: 500, position: "absolute", top: -600, left: -600, visibility: "hidden" + }).appendTo("body")[0]; iframe.contentWindow.location = src; return iframe; } diff --git a/test/unit/queue.js b/test/unit/queue.js index 31e587db2..9b612ce37 100644 --- a/test/unit/queue.js +++ b/test/unit/queue.js @@ -1,38 +1,50 @@ module("queue", { teardown: moduleTeardown }); test("queue() with other types",function() { - expect(9); + expect(11); var counter = 0; - var $div = jQuery({}); + stop(); + + var $div = jQuery({}), + defer; + + $div.promise("foo").done(function() { + equals( counter, 0, "Deferred for collection with no queue is automatically resolved" ); + }); $div - .queue('foo',function(){ + .queue("foo",function(){ equals( ++counter, 1, "Dequeuing" ); - jQuery.dequeue(this,'foo'); + jQuery.dequeue(this,"foo"); }) - .queue('foo',function(){ + .queue("foo",function(){ equals( ++counter, 2, "Dequeuing" ); - jQuery(this).dequeue('foo'); + jQuery(this).dequeue("foo"); }) - .queue('foo',function(){ + .queue("foo",function(){ equals( ++counter, 3, "Dequeuing" ); }) - .queue('foo',function(){ + .queue("foo",function(){ equals( ++counter, 4, "Dequeuing" ); }); - equals( $div.queue('foo').length, 4, "Testing queue length" ); + defer = $div.promise("foo").done(function() { + equals( counter, 4, "Testing previous call to dequeue in deferred" ); + start(); + }); + + equals( $div.queue("foo").length, 4, "Testing queue length" ); - $div.dequeue('foo'); + $div.dequeue("foo"); equals( counter, 3, "Testing previous call to dequeue" ); - equals( $div.queue('foo').length, 1, "Testing queue length" ); + equals( $div.queue("foo").length, 1, "Testing queue length" ); - $div.dequeue('foo'); + $div.dequeue("foo"); equals( counter, 4, "Testing previous call to dequeue" ); - equals( $div.queue('foo').length, 0, "Testing queue length" ); + equals( $div.queue("foo").length, 0, "Testing queue length" ); }); test("queue(name) passes in the next item in the queue as a parameter", function() { @@ -74,7 +86,7 @@ test("queue(name) passes in the next item in the queue as a parameter", function }); test("queue() passes in the next item in the queue as a parameter to fx queues", function() { - expect(2); + expect(3); stop(); var div = jQuery({}); @@ -87,11 +99,15 @@ test("queue() passes in the next item in the queue as a parameter to fx queues", }).queue(function(next) { equals(++counter, 2, "Next was called"); next(); - start(); }).queue("bar", function() { equals(++counter, 3, "Other queues are not triggered by next()") }); + jQuery.when( div.promise("fx"), div ).done(function() { + equals(counter, 2, "Deferreds resolved"); + start(); + }); + }); test("delay()", function() { @@ -110,7 +126,9 @@ test("delay()", function() { }); test("clearQueue(name) clears the queue", function() { - expect(1); + expect(2); + + stop() var div = jQuery({}); var counter = 0; @@ -123,6 +141,11 @@ test("clearQueue(name) clears the queue", function() { counter++; }); + div.promise("foo").done(function() { + ok( true, "dequeue resolves the deferred" ); + start(); + }); + div.dequeue("foo"); equals(counter, 1, "the queue was cleared"); @@ -146,3 +169,81 @@ test("clearQueue() clears the fx queue", function() { div.removeData(); }); + +test("_mark() and _unmark()", function() { + expect(1); + + var div = {}, + $div = jQuery( div ); + + stop(); + + jQuery._mark( div, "foo" ); + jQuery._mark( div, "foo" ); + jQuery._unmark( div, "foo" ); + jQuery._unmark( div, "foo" ); + + $div.promise( "foo" ).done(function() { + ok( true, "No more marks" ); + start(); + }); +}); + +test("_mark() and _unmark() default to 'fx'", function() { + expect(1); + + var div = {}, + $div = jQuery( div ); + + stop(); + + jQuery._mark( div ); + jQuery._mark( div ); + jQuery._unmark( div, "fx" ); + jQuery._unmark( div ); + + $div.promise().done(function() { + ok( true, "No more marks" ); + start(); + }); +}); + +test("promise()", function() { + expect(1); + + stop(); + + var objects = []; + + jQuery.each( [{}, {}], function( i, div ) { + var $div = jQuery( div ); + $div.queue(function( next ) { + setTimeout( function() { + if ( i ) { + next(); + setTimeout( function() { + jQuery._unmark( div ); + }, 20 ); + } else { + jQuery._unmark( div ); + setTimeout( function() { + next(); + }, 20 ); + } + }, 50 ); + }).queue(function( next ) { + next(); + }); + jQuery._mark( div ); + objects.push( $div ); + }); + + jQuery.when.apply( jQuery, objects ).done(function() { + ok( true, "Deferred resolved" ); + start(); + }); + + jQuery.each( objects, function() { + this.dequeue(); + }); +});
\ No newline at end of file diff --git a/test/unit/traversing.js b/test/unit/traversing.js index f622082e7..27f315151 100644 --- a/test/unit/traversing.js +++ b/test/unit/traversing.js @@ -2,7 +2,7 @@ module("traversing", { teardown: moduleTeardown }); test("find(String)", function() { expect(5); - equals( 'Yahoo', jQuery('#foo').find('.blogTest').text(), 'Check for find' ); + equals( "Yahoo", jQuery("#foo").find(".blogTest").text(), "Check for find" ); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -16,89 +16,88 @@ test("find(String)", function() { test("find(node|jQuery object)", function() { expect( 11 ); - var $foo = jQuery('#foo'), - $blog = jQuery('.blogTest'), - $first = jQuery('#first'), + var $foo = jQuery("#foo"), + $blog = jQuery(".blogTest"), + $first = jQuery("#first"), $two = $blog.add( $first ), $fooTwo = $foo.add( $blog ); - equals( $foo.find( $blog ).text(), 'Yahoo', 'Find with blog jQuery object' ); - equals( $foo.find( $blog[0] ).text(), 'Yahoo', 'Find with blog node' ); - equals( $foo.find( $first ).length, 0, '#first is not in #foo' ); - equals( $foo.find( $first[0]).length, 0, '#first not in #foo (node)' ); - ok( $foo.find( $two ).is('.blogTest'), 'Find returns only nodes within #foo' ); - ok( $fooTwo.find( $blog ).is('.blogTest'), 'Blog is part of the collection, but also within foo' ); - ok( $fooTwo.find( $blog[0] ).is('.blogTest'), 'Blog is part of the collection, but also within foo(node)' ); + equals( $foo.find( $blog ).text(), "Yahoo", "Find with blog jQuery object" ); + equals( $foo.find( $blog[0] ).text(), "Yahoo", "Find with blog node" ); + equals( $foo.find( $first ).length, 0, "#first is not in #foo" ); + equals( $foo.find( $first[0]).length, 0, "#first not in #foo (node)" ); + ok( $foo.find( $two ).is(".blogTest"), "Find returns only nodes within #foo" ); + ok( $fooTwo.find( $blog ).is(".blogTest"), "Blog is part of the collection, but also within foo" ); + ok( $fooTwo.find( $blog[0] ).is(".blogTest"), "Blog is part of the collection, but also within foo(node)" ); - equals( $two.find( $foo ).length, 0, 'Foo is not in two elements' ); - equals( $two.find( $foo[0] ).length, 0, 'Foo is not in two elements(node)' ); - equals( $two.find( $first ).length, 0, 'first is in the collection and not within two' ); - equals( $two.find( $first ).length, 0, 'first is in the collection and not within two(node)' ); + equals( $two.find( $foo ).length, 0, "Foo is not in two elements" ); + equals( $two.find( $foo[0] ).length, 0, "Foo is not in two elements(node)" ); + equals( $two.find( $first ).length, 0, "first is in the collection and not within two" ); + equals( $two.find( $first ).length, 0, "first is in the collection and not within two(node)" ); }); test("is(String|undefined)", function() { expect(27); - ok( jQuery('#form').is('form'), 'Check for element: A form must be a form' ); - ok( !jQuery('#form').is('div'), 'Check for element: A form is not a div' ); - ok( jQuery('#mark').is('.blog'), 'Check for class: Expected class "blog"' ); - ok( !jQuery('#mark').is('.link'), 'Check for class: Did not expect class "link"' ); - ok( jQuery('#simon').is('.blog.link'), 'Check for multiple classes: Expected classes "blog" and "link"' ); - ok( !jQuery('#simon').is('.blogTest'), 'Check for multiple classes: Expected classes "blog" and "link", but not "blogTest"' ); - ok( jQuery('#en').is('[lang="en"]'), 'Check for attribute: Expected attribute lang to be "en"' ); - ok( !jQuery('#en').is('[lang="de"]'), 'Check for attribute: Expected attribute lang to be "en", not "de"' ); - ok( jQuery('#text1').is('[type="text"]'), 'Check for attribute: Expected attribute type to be "text"' ); - ok( !jQuery('#text1').is('[type="radio"]'), 'Check for attribute: Expected attribute type to be "text", not "radio"' ); - ok( jQuery('#text2').is(':disabled'), 'Check for pseudoclass: Expected to be disabled' ); - ok( !jQuery('#text1').is(':disabled'), 'Check for pseudoclass: Expected not disabled' ); - ok( jQuery('#radio2').is(':checked'), 'Check for pseudoclass: Expected to be checked' ); - ok( !jQuery('#radio1').is(':checked'), 'Check for pseudoclass: Expected not checked' ); - ok( jQuery('#foo').is(':has(p)'), 'Check for child: Expected a child "p" element' ); - ok( !jQuery('#foo').is(':has(ul)'), 'Check for child: Did not expect "ul" element' ); - ok( jQuery('#foo').is(':has(p):has(a):has(code)'), 'Check for childs: Expected "p", "a" and "code" child elements' ); - ok( !jQuery('#foo').is(':has(p):has(a):has(code):has(ol)'), 'Check for childs: Expected "p", "a" and "code" child elements, but no "ol"' ); - - ok( !jQuery('#foo').is(0), 'Expected false for an invalid expression - 0' ); - ok( !jQuery('#foo').is(null), 'Expected false for an invalid expression - null' ); - ok( !jQuery('#foo').is(''), 'Expected false for an invalid expression - ""' ); - ok( !jQuery('#foo').is(undefined), 'Expected false for an invalid expression - undefined' ); - ok( !jQuery('#foo').is({ plain: "object" }), 'Check passing invalid object' ); + ok( jQuery("#form").is("form"), "Check for element: A form must be a form" ); + ok( !jQuery("#form").is("div"), "Check for element: A form is not a div" ); + ok( jQuery("#mark").is(".blog"), "Check for class: Expected class 'blog'" ); + ok( !jQuery("#mark").is(".link"), "Check for class: Did not expect class 'link'" ); + ok( jQuery("#simon").is(".blog.link"), "Check for multiple classes: Expected classes 'blog' and 'link'" ); + ok( !jQuery("#simon").is(".blogTest"), "Check for multiple classes: Expected classes 'blog' and 'link', but not 'blogTest'" ); + ok( jQuery("#en").is("[lang=\"en\"]"), "Check for attribute: Expected attribute lang to be 'en'" ); + ok( !jQuery("#en").is("[lang=\"de\"]"), "Check for attribute: Expected attribute lang to be 'en', not 'de'" ); + ok( jQuery("#text1").is("[type=\"text\"]"), "Check for attribute: Expected attribute type to be 'text'" ); + ok( !jQuery("#text1").is("[type=\"radio\"]"), "Check for attribute: Expected attribute type to be 'text', not 'radio'" ); + ok( jQuery("#text2").is(":disabled"), "Check for pseudoclass: Expected to be disabled" ); + ok( !jQuery("#text1").is(":disabled"), "Check for pseudoclass: Expected not disabled" ); + ok( jQuery("#radio2").is(":checked"), "Check for pseudoclass: Expected to be checked" ); + ok( !jQuery("#radio1").is(":checked"), "Check for pseudoclass: Expected not checked" ); + ok( jQuery("#foo").is(":has(p)"), "Check for child: Expected a child 'p' element" ); + ok( !jQuery("#foo").is(":has(ul)"), "Check for child: Did not expect 'ul' element" ); + ok( jQuery("#foo").is(":has(p):has(a):has(code)"), "Check for childs: Expected 'p', 'a' and 'code' child elements" ); + ok( !jQuery("#foo").is(":has(p):has(a):has(code):has(ol)"), "Check for childs: Expected 'p', 'a' and 'code' child elements, but no 'ol'" ); + + ok( !jQuery("#foo").is(0), "Expected false for an invalid expression - 0" ); + ok( !jQuery("#foo").is(null), "Expected false for an invalid expression - null" ); + ok( !jQuery("#foo").is(""), "Expected false for an invalid expression - \"\"" ); + ok( !jQuery("#foo").is(undefined), "Expected false for an invalid expression - undefined" ); + ok( !jQuery("#foo").is({ plain: "object" }), "Check passing invalid object" ); // test is() with comma-seperated expressions - ok( jQuery('#en').is('[lang="en"],[lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' ); - ok( jQuery('#en').is('[lang="de"],[lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' ); - ok( jQuery('#en').is('[lang="en"] , [lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' ); - ok( jQuery('#en').is('[lang="de"] , [lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' ); + ok( jQuery("#en").is("[lang=\"en\"],[lang=\"de\"]"), "Comma-seperated; Check for lang attribute: Expect en or de" ); + ok( jQuery("#en").is("[lang=\"de\"],[lang=\"en\"]"), "Comma-seperated; Check for lang attribute: Expect en or de" ); + ok( jQuery("#en").is("[lang=\"en\"] , [lang=\"de\"]"), "Comma-seperated; Check for lang attribute: Expect en or de" ); + ok( jQuery("#en").is("[lang=\"de\"] , [lang=\"en\"]"), "Comma-seperated; Check for lang attribute: Expect en or de" ); }); test("is(jQuery)", function() { - expect(24); - ok( jQuery('#form').is( jQuery('form') ), 'Check for element: A form is a form' ); - ok( !jQuery('#form').is( jQuery('div') ), 'Check for element: A form is not a div' ); - ok( jQuery('#mark').is( jQuery('.blog') ), 'Check for class: Expected class "blog"' ); - ok( !jQuery('#mark').is( jQuery('.link') ), 'Check for class: Did not expect class "link"' ); - ok( jQuery('#simon').is( jQuery('.blog.link') ), 'Check for multiple classes: Expected classes "blog" and "link"' ); - ok( !jQuery('#simon').is( jQuery('.blogTest') ), 'Check for multiple classes: Expected classes "blog" and "link", but not "blogTest"' ); - ok( jQuery('#en').is( jQuery('[lang="en"]') ), 'Check for attribute: Expected attribute lang to be "en"' ); - ok( !jQuery('#en').is( jQuery('[lang="de"]') ), 'Check for attribute: Expected attribute lang to be "en", not "de"' ); - ok( jQuery('#text1').is( jQuery('[type="text"]') ), 'Check for attribute: Expected attribute type to be "text"' ); - ok( !jQuery('#text1').is( jQuery('[type="radio"]') ), 'Check for attribute: Expected attribute type to be "text", not "radio"' ); - ok( jQuery('#text2').is( jQuery(':disabled') ), 'Check for pseudoclass: Expected to be disabled' ); - ok( !jQuery('#text1').is( jQuery(':disabled') ), 'Check for pseudoclass: Expected not disabled' ); - ok( jQuery('#radio2').is( jQuery(':checked') ), 'Check for pseudoclass: Expected to be checked' ); - ok( !jQuery('#radio1').is( jQuery(':checked') ), 'Check for pseudoclass: Expected not checked' ); - ok( jQuery('#foo').is( jQuery(':has(p)') ), 'Check for child: Expected a child "p" element' ); - ok( !jQuery('#foo').is( jQuery(':has(ul)') ), 'Check for child: Did not expect "ul" element' ); - ok( jQuery('#foo').is( jQuery(':has(p):has(a):has(code)') ), 'Check for childs: Expected "p", "a" and "code" child elements' ); - ok( !jQuery('#foo').is( jQuery(':has(p):has(a):has(code):has(ol)') ), 'Check for childs: Expected "p", "a" and "code" child elements, but no "ol"' ); + expect(23); + ok( jQuery("#form").is( jQuery("form") ), "Check for element: A form is a form" ); + ok( !jQuery("#form").is( jQuery("div") ), "Check for element: A form is not a div" ); + ok( jQuery("#mark").is( jQuery(".blog") ), "Check for class: Expected class 'blog'" ); + ok( !jQuery("#mark").is( jQuery(".link") ), "Check for class: Did not expect class 'link'" ); + ok( jQuery("#simon").is( jQuery(".blog.link") ), "Check for multiple classes: Expected classes 'blog' and 'link'" ); + ok( !jQuery("#simon").is( jQuery(".blogTest") ), "Check for multiple classes: Expected classes 'blog' and 'link', but not 'blogTest'" ); + ok( jQuery("#en").is( jQuery("[lang=\"en\"]") ), "Check for attribute: Expected attribute lang to be 'en'" ); + ok( !jQuery("#en").is( jQuery("[lang=\"de\"]") ), "Check for attribute: Expected attribute lang to be 'en', not 'de'" ); + ok( jQuery("#text1").is( jQuery("[type=\"text\"]") ), "Check for attribute: Expected attribute type to be 'text'" ); + ok( !jQuery("#text1").is( jQuery("[type=\"radio\"]") ), "Check for attribute: Expected attribute type to be 'text', not 'radio'" ); + ok( !jQuery("#text1").is( jQuery(":disabled") ), "Check for pseudoclass: Expected not disabled" ); + ok( jQuery("#radio2").is( jQuery(":checked") ), "Check for pseudoclass: Expected to be checked" ); + ok( !jQuery("#radio1").is( jQuery(":checked") ), "Check for pseudoclass: Expected not checked" ); + ok( jQuery("#foo").is( jQuery(":has(p)") ), "Check for child: Expected a child 'p' element" ); + ok( !jQuery("#foo").is( jQuery(":has(ul)") ), "Check for child: Did not expect 'ul' element" ); + ok( jQuery("#foo").is( jQuery(":has(p):has(a):has(code)") ), "Check for childs: Expected 'p', 'a' and 'code' child elements" ); + ok( !jQuery("#foo").is( jQuery(":has(p):has(a):has(code):has(ol)") ), "Check for childs: Expected 'p', 'a' and 'code' child elements, but no 'ol'" ); // Some raw elements - ok( jQuery('#form').is( jQuery('form')[0] ), 'Check for element: A form is a form' ); - ok( !jQuery('#form').is( jQuery('div')[0] ), 'Check for element: A form is not a div' ); - ok( jQuery('#mark').is( jQuery('.blog')[0] ), 'Check for class: Expected class "blog"' ); - ok( !jQuery('#mark').is( jQuery('.link')[0] ), 'Check for class: Did not expect class "link"' ); - ok( jQuery('#simon').is( jQuery('.blog.link')[0] ), 'Check for multiple classes: Expected classes "blog" and "link"' ); - ok( !jQuery('#simon').is( jQuery('.blogTest')[0] ), 'Check for multiple classes: Expected classes "blog" and "link", but not "blogTest"' ); + ok( jQuery("#form").is( jQuery("form")[0] ), "Check for element: A form is a form" ); + ok( !jQuery("#form").is( jQuery("div")[0] ), "Check for element: A form is not a div" ); + ok( jQuery("#mark").is( jQuery(".blog")[0] ), "Check for class: Expected class 'blog'" ); + ok( !jQuery("#mark").is( jQuery(".link")[0] ), "Check for class: Did not expect class 'link'" ); + ok( jQuery("#simon").is( jQuery(".blog.link")[0] ), "Check for multiple classes: Expected classes 'blog' and 'link'" ); + ok( !jQuery("#simon").is( jQuery(".blogTest")[0] ), "Check for multiple classes: Expected classes 'blog' and 'link', but not 'blogTest'" ); }); test("index()", function() { @@ -111,15 +110,15 @@ test("index(Object|String|undefined)", function() { expect(16); var elements = jQuery([window, document]), - inputElements = jQuery('#radio1,#radio2,#check1,#check2'); + inputElements = jQuery("#radio1,#radio2,#check1,#check2"); // Passing a node equals( elements.index(window), 0, "Check for index of elements" ); equals( elements.index(document), 1, "Check for index of elements" ); - equals( inputElements.index(document.getElementById('radio1')), 0, "Check for index of elements" ); - equals( inputElements.index(document.getElementById('radio2')), 1, "Check for index of elements" ); - equals( inputElements.index(document.getElementById('check1')), 2, "Check for index of elements" ); - equals( inputElements.index(document.getElementById('check2')), 3, "Check for index of elements" ); + equals( inputElements.index(document.getElementById("radio1")), 0, "Check for index of elements" ); + equals( inputElements.index(document.getElementById("radio2")), 1, "Check for index of elements" ); + equals( inputElements.index(document.getElementById("check1")), 2, "Check for index of elements" ); + equals( inputElements.index(document.getElementById("check2")), 3, "Check for index of elements" ); equals( inputElements.index(window), -1, "Check for not found index" ); equals( inputElements.index(document), -1, "Check for not found index" ); @@ -131,11 +130,11 @@ test("index(Object|String|undefined)", function() { // Passing a selector or nothing // enabled since [6330] - equals( jQuery('#text2').index(), 2, "Check for index amongst siblings" ); - equals( jQuery('#form').children().eq(4).index(), 4, "Check for index amongst siblings" ); - equals( jQuery('#radio2').index('#form :radio') , 1, "Check for index within a selector" ); - equals( jQuery('#form :radio').index( jQuery('#radio2') ), 1, "Check for index within a selector" ); - equals( jQuery('#radio2').index('#form :text') , -1, "Check for index not found within a selector" ); + equals( jQuery("#text2").index(), 2, "Check for index amongst siblings" ); + equals( jQuery("#form").children().eq(4).index(), 4, "Check for index amongst siblings" ); + equals( jQuery("#radio2").index("#form :radio") , 1, "Check for index within a selector" ); + equals( jQuery("#form :radio").index( jQuery("#radio2") ), 1, "Check for index within a selector" ); + equals( jQuery("#radio2").index("#form :text") , -1, "Check for index not found within a selector" ); }); test("filter(Selector|undefined)", function() { @@ -144,10 +143,10 @@ test("filter(Selector|undefined)", function() { same( jQuery("p").filter("#ap, #sndp").get(), q("ap", "sndp"), "filter('String, String')" ); same( jQuery("p").filter("#ap,#sndp").get(), q("ap", "sndp"), "filter('String,String')" ); - same( jQuery('p').filter(null).get(), [], "filter(null) should return an empty jQuery object"); - same( jQuery('p').filter(undefined).get(), [], "filter(undefined) should return an empty jQuery object"); - same( jQuery('p').filter(0).get(), [], "filter(0) should return an empty jQuery object"); - same( jQuery('p').filter('').get(), [], "filter('') should return an empty jQuery object"); + same( jQuery("p").filter(null).get(), [], "filter(null) should return an empty jQuery object"); + same( jQuery("p").filter(undefined).get(), [], "filter(undefined) should return an empty jQuery object"); + same( jQuery("p").filter(0).get(), [], "filter(0) should return an empty jQuery object"); + same( jQuery("p").filter("").get(), [], "filter('') should return an empty jQuery object"); // using contents will get comments regular, text, and comment nodes var j = jQuery("#nonnodes").contents(); @@ -201,14 +200,14 @@ test("closest()", function() { same( jq.closest("#nothiddendiv", document.body).get(), q("nothiddendiv"), "Context not reached." ); //Test that .closest() returns unique'd set - equals( jQuery('#main p').closest('#main').length, 1, "Closest should return a unique set" ); + equals( jQuery("#main p").closest("#main").length, 1, "Closest should return a unique set" ); // Test on disconnected node equals( jQuery("<div><p></p></div>").find("p").closest("table").length, 0, "Make sure disconnected closest work." ); // Bug #7369 - equals( jQuery('<div foo="bar"></div>').closest('[foo]').length, 1, "Disconnected nodes with attribute selector" ); - equals( jQuery('<div>text</div>').closest('[lang]').length, 0, "Disconnected nodes with text and non-existent attribute selector" ); + equals( jQuery("<div foo='bar'></div>").closest("[foo]").length, 1, "Disconnected nodes with attribute selector" ); + equals( jQuery("<div>text</div>").closest("[lang]").length, 0, "Disconnected nodes with text and non-existent attribute selector" ); }); test("closest(Array)", function() { @@ -229,14 +228,14 @@ test("closest(jQuery)", function() { $parent = jQuery("#nothiddendiv"), $main = jQuery("#main"), $body = jQuery("body"); - ok( $child.closest( $parent ).is('#nothiddendiv'), "closest( jQuery('#nothiddendiv') )" ); - ok( $child.closest( $parent[0] ).is('#nothiddendiv'), "closest( jQuery('#nothiddendiv') ) :: node" ); - ok( $child.closest( $child ).is('#nothiddendivchild'), "child is included" ); - ok( $child.closest( $child[0] ).is('#nothiddendivchild'), "child is included :: node" ); - equals( $child.closest( document.createElement('div') ).length, 0, "created element is not related" ); + ok( $child.closest( $parent ).is("#nothiddendiv"), "closest( jQuery('#nothiddendiv') )" ); + ok( $child.closest( $parent[0] ).is("#nothiddendiv"), "closest( jQuery('#nothiddendiv') ) :: node" ); + ok( $child.closest( $child ).is("#nothiddendivchild"), "child is included" ); + ok( $child.closest( $child[0] ).is("#nothiddendivchild"), "child is included :: node" ); + equals( $child.closest( document.createElement("div") ).length, 0, "created element is not related" ); equals( $child.closest( $main ).length, 0, "Main not a parent of child" ); equals( $child.closest( $main[0] ).length, 0, "Main not a parent of child :: node" ); - ok( $child.closest( $body.add($parent) ).is('#nothiddendiv'), "Closest ancestor retrieved." ); + ok( $child.closest( $body.add($parent) ).is("#nothiddendiv"), "Closest ancestor retrieved." ); }); test("not(Selector|undefined)", function() { @@ -246,15 +245,15 @@ test("not(Selector|undefined)", function() { same( jQuery("p").not("#ap, #sndp, .result").get(), q("firstp", "en", "sap", "first"), "not('selector, selector')" ); same( jQuery("#form option").not("option.emptyopt:contains('Nothing'),[selected],[value='1']").get(), q("option1c", "option1d", "option2c", "option3d", "option3e", "option4e","option5b"), "not('complex selector')"); - same( jQuery('#ap *').not('code').get(), q("google", "groups", "anchor1", "mark"), "not('tag selector')" ); - same( jQuery('#ap *').not('code, #mark').get(), q("google", "groups", "anchor1"), "not('tag, ID selector')" ); - same( jQuery('#ap *').not('#mark, code').get(), q("google", "groups", "anchor1"), "not('ID, tag selector')"); - - var all = jQuery('p').get(); - same( jQuery('p').not(null).get(), all, "not(null) should have no effect"); - same( jQuery('p').not(undefined).get(), all, "not(undefined) should have no effect"); - same( jQuery('p').not(0).get(), all, "not(0) should have no effect"); - same( jQuery('p').not('').get(), all, "not('') should have no effect"); + same( jQuery("#ap *").not("code").get(), q("google", "groups", "anchor1", "mark"), "not('tag selector')" ); + same( jQuery("#ap *").not("code, #mark").get(), q("google", "groups", "anchor1"), "not('tag, ID selector')" ); + same( jQuery("#ap *").not("#mark, code").get(), q("google", "groups", "anchor1"), "not('ID, tag selector')"); + + var all = jQuery("p").get(); + same( jQuery("p").not(null).get(), all, "not(null) should have no effect"); + same( jQuery("p").not(undefined).get(), all, "not(undefined) should have no effect"); + same( jQuery("p").not(0).get(), all, "not(0) should have no effect"); + same( jQuery("p").not("").get(), all, "not('') should have no effect"); }); test("not(Element)", function() { @@ -367,7 +366,7 @@ test("parentsUntil([String])", function() { same( jQuery("#groups").parentsUntil().get(), parents.get(), "parentsUntil with no selector (nextAll)" ); same( jQuery("#groups").parentsUntil(".foo").get(), parents.get(), "parentsUntil with invalid selector (nextAll)" ); - same( jQuery("#groups").parentsUntil("#html").get(), parents.not(':last').get(), "Simple parentsUntil check" ); + same( jQuery("#groups").parentsUntil("#html").get(), parents.not(":last").get(), "Simple parentsUntil check" ); equals( jQuery("#groups").parentsUntil("#ap").length, 0, "Simple parentsUntil check" ); same( jQuery("#groups").parentsUntil("#html, #body").get(), parents.slice( 0, 3 ).get(), "Less simple parentsUntil check" ); same( jQuery("#groups").parentsUntil("#html", "div").get(), jQuery("#main").get(), "Filtered parentsUntil check" ); @@ -395,29 +394,29 @@ test("prev([String])", function() { test("nextAll([String])", function() { expect(4); - var elems = jQuery('#form').children(); + var elems = jQuery("#form").children(); - same( jQuery("#label-for").nextAll().get(), elems.not(':first').get(), "Simple nextAll check" ); - same( jQuery("#label-for").nextAll('input').get(), elems.not(':first').filter('input').get(), "Filtered nextAll check" ); - same( jQuery("#label-for").nextAll('input,select').get(), elems.not(':first').filter('input,select').get(), "Multiple-filtered nextAll check" ); - same( jQuery("#label-for, #hidden1").nextAll('input,select').get(), elems.not(':first').filter('input,select').get(), "Multi-source, multiple-filtered nextAll check" ); + same( jQuery("#label-for").nextAll().get(), elems.not(":first").get(), "Simple nextAll check" ); + same( jQuery("#label-for").nextAll("input").get(), elems.not(":first").filter("input").get(), "Filtered nextAll check" ); + same( jQuery("#label-for").nextAll("input,select").get(), elems.not(":first").filter("input,select").get(), "Multiple-filtered nextAll check" ); + same( jQuery("#label-for, #hidden1").nextAll("input,select").get(), elems.not(":first").filter("input,select").get(), "Multi-source, multiple-filtered nextAll check" ); }); test("prevAll([String])", function() { expect(4); - var elems = jQuery( jQuery('#form').children().slice(0, 12).get().reverse() ); + var elems = jQuery( jQuery("#form").children().slice(0, 12).get().reverse() ); same( jQuery("#area1").prevAll().get(), elems.get(), "Simple prevAll check" ); - same( jQuery("#area1").prevAll('input').get(), elems.filter('input').get(), "Filtered prevAll check" ); - same( jQuery("#area1").prevAll('input,select').get(), elems.filter('input,select').get(), "Multiple-filtered prevAll check" ); - same( jQuery("#area1, #hidden1").prevAll('input,select').get(), elems.filter('input,select').get(), "Multi-source, multiple-filtered prevAll check" ); + same( jQuery("#area1").prevAll("input").get(), elems.filter("input").get(), "Filtered prevAll check" ); + same( jQuery("#area1").prevAll("input,select").get(), elems.filter("input,select").get(), "Multiple-filtered prevAll check" ); + same( jQuery("#area1, #hidden1").prevAll("input,select").get(), elems.filter("input,select").get(), "Multi-source, multiple-filtered prevAll check" ); }); test("nextUntil([String])", function() { expect(11); - var elems = jQuery('#form').children().slice( 2, 12 ); + var elems = jQuery("#form").children().slice( 2, 12 ); same( jQuery("#text1").nextUntil().get(), jQuery("#text1").nextAll().get(), "nextUntil with no selector (nextAll)" ); same( jQuery("#text1").nextUntil(".foo").get(), jQuery("#text1").nextAll().get(), "nextUntil with invalid selector (nextAll)" ); @@ -440,14 +439,14 @@ test("prevUntil([String])", function() { same( jQuery("#area1").prevUntil().get(), elems.get(), "prevUntil with no selector (prevAll)" ); same( jQuery("#area1").prevUntil(".foo").get(), elems.get(), "prevUntil with invalid selector (prevAll)" ); - same( jQuery("#area1").prevUntil("label").get(), elems.not(':last').get(), "Simple prevUntil check" ); + same( jQuery("#area1").prevUntil("label").get(), elems.not(":last").get(), "Simple prevUntil check" ); equals( jQuery("#area1").prevUntil("#button").length, 0, "Simple prevUntil check" ); same( jQuery("#area1").prevUntil("label, #search").get(), jQuery("#area1").prev().get(), "Less simple prevUntil check" ); - same( jQuery("#area1").prevUntil("label", "input").get(), elems.not(':last').not("button").get(), "Filtered prevUntil check" ); - same( jQuery("#area1").prevUntil("label", "button").get(), elems.not(':last').not("input").get(), "Filtered prevUntil check" ); - same( jQuery("#area1").prevUntil("label", "button,input").get(), elems.not(':last').get(), "Multiple-filtered prevUntil check" ); + same( jQuery("#area1").prevUntil("label", "input").get(), elems.not(":last").not("button").get(), "Filtered prevUntil check" ); + same( jQuery("#area1").prevUntil("label", "button").get(), elems.not(":last").not("input").get(), "Filtered prevUntil check" ); + same( jQuery("#area1").prevUntil("label", "button,input").get(), elems.not(":last").get(), "Multiple-filtered prevUntil check" ); equals( jQuery("#area1").prevUntil("label", "div").length, 0, "Filtered prevUntil check, no match" ); - same( jQuery("#area1, #hidden1").prevUntil("label", "button,input").get(), elems.not(':last').get(), "Multi-source, multiple-filtered prevUntil check" ); + same( jQuery("#area1, #hidden1").prevUntil("label", "button,input").get(), elems.not(":last").get(), "Multi-source, multiple-filtered prevUntil check" ); }); test("contents()", function() { @@ -522,7 +521,7 @@ test("add(String|Element|Array|undefined)", function() { var notDefined; equals( jQuery([]).add(notDefined).length, 0, "Check that undefined adds nothing" ); - ok( jQuery([]).add( document.getElementById('form') ).length >= 13, "Add a form (adds the elements)" ); + ok( jQuery([]).add( document.getElementById("form") ).length >= 13, "Add a form (adds the elements)" ); }); test("add(String, Context)", function() { |