From 3e0cc815043c2425819743e907a0ce263a7ce164 Mon Sep 17 00:00:00 2001 From: Colin Snover Date: Thu, 30 Dec 2010 00:34:48 -0600 Subject: [PATCH] Clean trailing whitespace from all files. --- Makefile | 2 +- Rakefile | 22 +-- build.xml | 2 +- src/ajax.js | 48 ++--- src/attributes.js | 2 +- src/core.js | 56 +++--- src/dimensions.js | 2 +- src/effects.js | 2 +- src/intro.js | 2 +- src/offset.js | 10 +- src/traversing.js | 14 +- src/xhr.js | 426 ++++++++++++++++++++++----------------------- test/data/headers.php | 12 +- test/data/params_html.php | 6 +- test/delegatetest.html | 6 +- test/polluted.php | 4 +- test/unit/ajax.js | 108 ++++++------ test/unit/attributes.js | 66 +++---- test/unit/css.js | 64 +++---- test/unit/dimensions.js | 30 ++-- test/unit/effects.js | 26 +-- test/unit/event.js | 258 +++++++++++++-------------- test/unit/offset.js | 100 +++++------ test/unit/queue.js | 46 ++--- test/unit/selector.js | 38 ++-- test/unit/traversing.js | 24 +-- 26 files changed, 688 insertions(+), 688 deletions(-) diff --git a/Makefile b/Makefile index 935f69c..6f22817 100644 --- a/Makefile +++ b/Makefile @@ -85,7 +85,7 @@ ${JQ}: ${MODULES} ${DIST_DIR} @@cat ${MODULES} | \ sed 's/.function..jQuery...{//' | \ sed 's/}...jQuery..;//' | \ - sed 's/Date:./&'"${DATE}"'/' | \ + sed 's/@DATE/'"${DATE}"'/' | \ ${VER} > ${JQ}; ${SRC_DIR}/selector.js: ${SIZZLE_DIR}/sizzle.js diff --git a/Rakefile b/Rakefile index 5ea143b..4319aa7 100644 --- a/Rakefile +++ b/Rakefile @@ -31,7 +31,7 @@ rhino = "java -jar #{build_dir}/js.jar" minfier = "java -jar #{build_dir}/google-compiler-20100917.jar" # Turn off output other than needed from `sh` and file commands -verbose(false) +verbose(false) # Tasks task :default => "all" @@ -51,7 +51,7 @@ task :min => jq_min task :init => [sizzle, qunit] do sizzle_git = File.join(sizzle_dir, '.git') qunit_git = File.join(qunit_dir, '.git') - + puts "Updating SizzleJS with latest..." sh "git --git-dir=#{sizzle_git} pull -q origin master" @@ -61,7 +61,7 @@ end desc "Removes dist folder, selector.js, and Sizzle/QUnit" task :clean do - puts "Removing Distribution directory: #{dist_dir}..." + puts "Removing Distribution directory: #{dist_dir}..." rm_rf dist_dir puts "Removing built copy of Sizzle..." @@ -87,9 +87,9 @@ directory dist_dir file jq => [dist_dir, base_files].flatten do puts "Building jquery.js..." - + File.open(jq, 'w') do |f| - f.write cat(base_files).gsub(/(Date:.)/, "\\1#{date}" ).gsub(/@VERSION/, version) + f.write cat(base_files).gsub(/@DATE/, date).gsub(/@VERSION/, version) end end @@ -97,9 +97,9 @@ file jq_min => jq do puts "Building jquery.min.js..." sh "#{minfier} --js #{jq} --warning_level QUIET --js_output_file #{jq_min}" - + min = File.read( jq_min ) - + # Equivilent of "head" File.open(jq_min, 'w') do |f| f.write File.readlines(jq)[0..14].join() @@ -107,12 +107,12 @@ file jq_min => jq do end end -file selector => [sizzle, :init] do +file selector => [sizzle, :init] do puts "Building selector code from Sizzle..." - + File.open(selector, 'w') do |f| - f.write File.read(sizzle).gsub( - /^.+EXPOSE$\n/, + f.write File.read(sizzle).gsub( + /^.+EXPOSE$\n/, '\0' + File.read( File.join( src_dir, 'sizzle-jquery.js' )) ).gsub( /^window.Sizzle.+$\n/, '' diff --git a/build.xml b/build.xml index f6650f4..6a28aa8 100644 --- a/build.xml +++ b/build.xml @@ -77,7 +77,7 @@ - + diff --git a/src/ajax.js b/src/ajax.js index 18ea203..08fbe6f 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -1,5 +1,5 @@ (function( jQuery ) { - + var rscript = /)<[^<]*)*<\/script>/gi, rselectTextarea = /^(?:select|textarea)/i, rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, @@ -43,9 +43,9 @@ jQuery.fn.extend({ type = "POST"; } } - + var self = this; - + // Request the remote document jQuery.ajax({ url: url, @@ -171,7 +171,7 @@ jQuery.extend({ text: "Text", json: "JSON" }, - + accepts: { xml: "application/xml, text/xml", html: "text/html", @@ -179,13 +179,13 @@ jQuery.extend({ json: "application/json, text/javascript", "*": "*/*" }, - + autoDataType: { xml: /xml/, html: /html/, json: /json/ }, - + // Prefilters // 1) They are useful to introduce custom dataTypes (see transport/jsonp for an example) // 2) These are called: @@ -193,27 +193,27 @@ jQuery.extend({ // * AFTER param serialization (s.data is a string if s.processData is true) // 3) They MUST be order agnostic prefilters: [], - + // Transports bindings // 1) key is the dataType // 2) the catchall symbol "*" can be used // 3) selection will start with transport dataType and THEN go to "*" if needed transports: { }, - + // Checkers // 1) key is dataType // 2) they are called to control successful response // 3) error throws is used as error data dataCheckers: { - + // Check if data is a string "text": function(data) { if ( typeof data != "string" ) { jQuery.error("typeerror"); } }, - + // Check if xml has been properly parsed "xml": function(data) { var documentElement = data ? data.documentElement : data; @@ -225,25 +225,25 @@ jQuery.extend({ } } }, - + // List of data converters // 1) key format is "source_type => destination_type" (spaces required) // 2) the catchall symbol "*" can be used for source_type dataConverters: { - + // Convert anything to text "* => text": function(data) { return "" + data; }, - + // Text to html (no transformation) "text => html": function(data) { return data; }, - + // Evaluate text as a json expression "text => json": jQuery.parseJSON, - + // Parse text as xml "text => xml": function(data) { var xml, parser; @@ -262,14 +262,14 @@ jQuery.extend({ // Main method ajax: function( url , s ) { - + if ( arguments.length === 1 ) { s = url; url = s ? s.url : undefined; } - + return jQuery.xhr().open( s ? s.type : undefined , url ).send( undefined , s ); - + }, // Serialize an array of form elements or a set of @@ -281,19 +281,19 @@ jQuery.extend({ value = jQuery.isFunction(value) ? value() : value; s[ s.length ] = encodeURIComponent(key) + "=" + encodeURIComponent(value); }; - + // Set traditional to true for jQuery <= 1.3.2 behavior. if ( traditional === undefined ) { traditional = jQuery.ajaxSettings.traditional; } - + // If an array was passed in, assume that it is an array of form elements. if ( jQuery.isArray(a) || a.jquery ) { // Serialize the form elements jQuery.each( a, function() { add( this.name, this.value ); }); - + } else { // If traditional, encode the "old" way (the way 1.3.2 or older // did it), otherwise encode params recursively. @@ -326,7 +326,7 @@ function buildParams( prefix, obj, traditional, add ) { buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add ); } }); - + } else if ( !traditional && obj != null && typeof obj === "object" ) { // If we see an array here, it is empty and should be treated as an empty // object @@ -339,7 +339,7 @@ function buildParams( prefix, obj, traditional, add ) { buildParams( prefix + "[" + k + "]", v, traditional, add ); }); } - + } else { // Serialize scalar item. add( prefix, obj ); @@ -373,7 +373,7 @@ if ( window.ActiveXObject ) { return new window.XMLHttpRequest(); } catch( xhrError ) {} } - + try { return new window.ActiveXObject("Microsoft.XMLHTTP"); } catch( activeError ) {} diff --git a/src/attributes.js b/src/attributes.js index 78b1bfd..fec1323 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -182,7 +182,7 @@ jQuery.fn.extend({ var option = options[ i ]; // Don't return options that are disabled or in a disabled optgroup - if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && + if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) && (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) { // Get the specific value for the option diff --git a/src/core.js b/src/core.js index 4da1212..e463ade 100644 --- a/src/core.js +++ b/src/core.js @@ -56,10 +56,10 @@ var jQuery = function( selector, context ) { // For matching the engine and version of the browser browserMatch, - + // Has the ready events already been bound? readyBound = false, - + // The functions to execute on DOM ready readyList = [], @@ -73,7 +73,7 @@ var jQuery = function( selector, context ) { slice = Array.prototype.slice, trim = String.prototype.trim, indexOf = Array.prototype.indexOf, - + // [[Class]] -> type pairs class2type = {}; @@ -92,7 +92,7 @@ jQuery.fn = jQuery.prototype = { this.length = 1; return this; } - + // The body element only exists once, optimize finding it if ( selector === "body" && !context && document.body ) { this.context = document; @@ -131,9 +131,9 @@ jQuery.fn = jQuery.prototype = { ret = jQuery.buildFragment( [ match[1] ], [ doc ] ); selector = (ret.cacheable ? ret.fragment.cloneNode(true) : ret.fragment).childNodes; } - + return jQuery.merge( this, selector ); - + // HANDLE: $("#id") } else { elem = document.getElementById( match[2] ); @@ -226,7 +226,7 @@ jQuery.fn = jQuery.prototype = { if ( jQuery.isArray( elems ) ) { push.apply( ret, elems ); - + } else { jQuery.merge( ret, elems ); } @@ -252,7 +252,7 @@ jQuery.fn = jQuery.prototype = { each: function( callback, args ) { return jQuery.each( this, callback, args ); }, - + ready: function( fn ) { // Attach the listeners jQuery.bindReady(); @@ -270,7 +270,7 @@ jQuery.fn = jQuery.prototype = { return this; }, - + eq: function( i ) { return i === -1 ? this.slice( i ) : @@ -295,7 +295,7 @@ jQuery.fn = jQuery.prototype = { return callback.call( elem, i, elem ); })); }, - + end: function() { return this.prevObject || jQuery(null); }, @@ -384,14 +384,14 @@ jQuery.extend({ return jQuery; }, - + // Is the DOM ready to be used? Set to true once it occurs. isReady: false, // A counter to track how many items to wait for before // the ready event fires. See #6781 readyWait: 1, - + // Handle when the DOM is ready ready: function( wait ) { // A third-party is pushing the ready event forwards @@ -435,7 +435,7 @@ jQuery.extend({ } } }, - + bindReady: function() { if ( readyBound ) { return; @@ -454,7 +454,7 @@ jQuery.extend({ if ( document.addEventListener ) { // Use the handy event callback document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); - + // A fallback to window.onload, that will always work window.addEventListener( "load", jQuery.ready, false ); @@ -463,7 +463,7 @@ jQuery.extend({ // ensure firing before onload, // maybe late but safe also for iframes document.attachEvent("onreadystatechange", DOMContentLoaded); - + // A fallback to window.onload, that will always work window.attachEvent( "onload", jQuery.ready ); @@ -514,20 +514,20 @@ jQuery.extend({ if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { return false; } - + // Not own constructor property must be Object if ( obj.constructor && !hasOwn.call(obj, "constructor") && !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { return false; } - + // Own properties are enumerated firstly, so to speed up, // if last one is own, then all properties are own. - + var key; for ( key in obj ) {} - + return key === undefined || hasOwn.call( obj, key ); }, @@ -537,11 +537,11 @@ jQuery.extend({ } return true; }, - + error: function( msg ) { throw msg; }, - + parseJSON: function( data ) { if ( typeof data !== "string" || !data ) { return null; @@ -549,7 +549,7 @@ jQuery.extend({ // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); - + // Make sure the incoming data is actual JSON // Logic borrowed from http://json.org/json2.js if ( rvalidchars.test(data.replace(rvalidescape, "@") @@ -691,7 +691,7 @@ jQuery.extend({ for ( var l = second.length; j < l; j++ ) { first[ i++ ] = second[ j ]; } - + } else { while ( second[j] !== undefined ) { first[ i++ ] = second[ j++ ]; @@ -772,7 +772,7 @@ jQuery.extend({ // The value/s can be optionally by executed if its a function access: function( elems, key, value, exec, fn, pass ) { var length = elems.length; - + // Setting many attributes if ( typeof key === "object" ) { for ( var k in key ) { @@ -780,19 +780,19 @@ jQuery.extend({ } return elems; } - + // Setting one attribute if ( value !== undefined ) { // Optionally, function values get executed if exec is true exec = !pass && exec && jQuery.isFunction(value); - + for ( var i = 0; i < length; i++ ) { fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass ); } - + return elems; } - + // Getting an attribute return length ? fn( elems[0], key ) : undefined; }, diff --git a/src/dimensions.js b/src/dimensions.js index f35b0ac..17b4f8f 100644 --- a/src/dimensions.js +++ b/src/dimensions.js @@ -25,7 +25,7 @@ jQuery.each([ "Height", "Width" ], function( i, name ) { if ( !elem ) { return size == null ? null : this; } - + if ( jQuery.isFunction( size ) ) { return this.each(function( i ) { var self = jQuery( this ); diff --git a/src/effects.js b/src/effects.js index 6007074..5f3a035 100644 --- a/src/effects.js +++ b/src/effects.js @@ -61,7 +61,7 @@ jQuery.fn.extend({ } else { for ( var i = 0, j = this.length; i < j; i++ ) { var display = jQuery.css( this[i], "display" ); - + if ( display !== "none" && !jQuery.data( this[i], "olddisplay" ) ) { jQuery.data( this[i], "olddisplay", display ); } diff --git a/src/intro.js b/src/intro.js index cb15705..a75f311 100644 --- a/src/intro.js +++ b/src/intro.js @@ -11,7 +11,7 @@ * Copyright 2010, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * - * Date: + * Date: @DATE */ (function( window, undefined ) { diff --git a/src/offset.js b/src/offset.js index 3fb2917..2040c9d 100644 --- a/src/offset.js +++ b/src/offset.js @@ -7,7 +7,7 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { var elem = this[0], box; - if ( options ) { + if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); @@ -49,7 +49,7 @@ if ( "getBoundingClientRect" in document.documentElement ) { jQuery.fn.offset = function( options ) { var elem = this[0]; - if ( options ) { + if ( options ) { return this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); @@ -168,7 +168,7 @@ jQuery.offset = { return { top: top, left: left }; }, - + setOffset: function( elem, options, i ) { var position = jQuery.css( elem, "position" ); @@ -202,7 +202,7 @@ jQuery.offset = { if (options.left != null) { props.left = (options.left - curOffset.left) + curLeft; } - + if ( "using" in options ) { options.using.call( elem, props ); } else { @@ -262,7 +262,7 @@ jQuery.each( ["Left", "Top"], function( i, name ) { jQuery.fn[ method ] = function(val) { var elem = this[0], win; - + if ( !elem ) { return null; } diff --git a/src/traversing.js b/src/traversing.js index 15446bd..689e901 100644 --- a/src/traversing.js +++ b/src/traversing.js @@ -51,7 +51,7 @@ jQuery.fn.extend({ filter: function( selector ) { return this.pushStack( winnow(this, selector, true), "filter", selector ); }, - + is: function( selector ) { return !!selector && jQuery.filter( selector, this ).length > 0; }, @@ -69,7 +69,7 @@ jQuery.fn.extend({ selector = selectors[i]; if ( !matches[selector] ) { - matches[selector] = jQuery.expr.match.POS.test( selector ) ? + matches[selector] = jQuery.expr.match.POS.test( selector ) ? jQuery( selector, context || this.context ) : selector; } @@ -92,7 +92,7 @@ jQuery.fn.extend({ return ret; } - var pos = POS.test( selectors ) ? + var pos = POS.test( selectors ) ? jQuery( selectors, context || this.context ) : null; for ( i = 0, l = this.length; i < l; i++ ) { @@ -113,10 +113,10 @@ jQuery.fn.extend({ } ret = ret.length > 1 ? jQuery.unique(ret) : ret; - + return this.pushStack( ret, "closest", selectors ); }, - + // Determine the position of an element within // the matched set of elements index: function( elem ) { @@ -197,7 +197,7 @@ jQuery.each({ }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { var ret = jQuery.map( this, fn, until ); - + if ( !runtil.test( name ) ) { selector = until; } @@ -226,7 +226,7 @@ jQuery.extend({ jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] : jQuery.find.matches(expr, elems); }, - + dir: function( elem, dir, until ) { var matched = [], cur = elem[ dir ]; diff --git a/src/xhr.js b/src/xhr.js index 4896e6c..c715396 100644 --- a/src/xhr.js +++ b/src/xhr.js @@ -6,39 +6,39 @@ var rquery_xhr = /\?/, rnoContent = /^(?:GET|HEAD)$/, rts = /([?&])_=[^&]*/, rurl = /^(\w+:)?\/\/([^\/?#]+)/, - + sliceFunc = Array.prototype.slice, - + isFunction = jQuery.isFunction; - + // Creates a jQuery xhr object jQuery.xhr = function( _native ) { - + if ( _native ) { return jQuery.ajaxSettings.xhr(); } - + function reset(force) { - + // We only need to reset if we went through the init phase // (with the exception of object creation) if ( force || internal ) { - + // Reset callbacks lists callbacksLists = { success: createCBList(), error: createCBList(), complete: createCBList() }; - + // Reset private variables requestHeaders = {}; responseHeadersString = responseHeaders = internal = done = timeoutTimer = s = undefined; - + // Reset state xhr.readyState = 0; sendFlag = 0; - + // Remove responseX fields for ( var name in xhr ) { if ( /^response/.test(name) ) { @@ -47,134 +47,134 @@ jQuery.xhr = function( _native ) { } } } - + function init() { - + var // Options extraction - + // Remove hash character (#7531: first for string promotion) url = s.url = ( "" + s.url ).replace( rhash , "" ), - + // Uppercase the type type = s.type = s.type.toUpperCase(), - + // Determine if request has content hasContent = s.hasContent = ! rnoContent.test( type ), - + // Extract dataTypes list dataType = s.dataType, dataTypes = s.dataTypes = dataType ? jQuery.trim(dataType).toLowerCase().split(/\s+/) : ["*"], - + // Determine if a cross-domain request is in order parts = rurl.exec( url.toLowerCase() ), loc = location, crossDomain = s.crossDomain = !!( parts && ( parts[1] && parts[1] != loc.protocol || parts[2] != loc.host ) ), - + // Get other options locally data = s.data, originalContentType = s.contentType, prefilters = s.prefilters, accepts = s.accepts, headers = s.headers, - + // Other Variables transportDataType, i; - + // Convert data if not already a string if ( data && s.processData && typeof data != "string" ) { data = s.data = jQuery.param( data , s.traditional ); } - + // Apply option prefilters for ( i = 0; i < prefilters.length; i++ ) { prefilters[i](s); } - + // Get internal internal = selectTransport( s ); - + // Re-actualize url & data url = s.url; data = s.data; - + // If internal was found if ( internal ) { - + // Get transportDataType transportDataType = dataTypes[0]; - + // More options handling for requests with no content if ( ! hasContent ) { - + // If data is available, append data to url if ( data ) { url += (rquery_xhr.test(url) ? "&" : "?") + data; } - + // Add anti-cache in url if needed if ( s.cache === false ) { - + var ts = jQuery.now(), // try replacing _= if it is there ret = url.replace(rts, "$1_=" + ts ); - + // if nothing was replaced, add timestamp to the end url = ret + ((ret == url) ? (rquery_xhr.test(url) ? "&" : "?") + "_=" + ts : ""); } - + s.url = url; } - + // Set the correct header, if data is being sent if ( ( data && hasContent ) || originalContentType ) { requestHeaders["content-type"] = s.contentType; } - + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( s.ifModified ) { - if ( jQuery_lastModified[url] ) { + if ( jQuery_lastModified[url] ) { requestHeaders["if-modified-since"] = jQuery_lastModified[url]; } if ( jQuery_etag[url] ) { requestHeaders["if-none-match"] = jQuery_etag[url]; } } - + // Set the Accepts header for the server, depending on the dataType requestHeaders.accept = transportDataType && accepts[ transportDataType ] ? accepts[ transportDataType ] + ( transportDataType !== "*" ? ", */*; q=0.01" : "" ) : accepts[ "*" ]; - + // Check for headers option for ( i in headers ) { requestHeaders[ i.toLowerCase() ] = headers[ i ]; - } + } } - + callbackContext = s.context || s; globalEventContext = s.context ? jQuery(s.context) : jQuery.event; - + for ( i in callbacksLists ) { callbacksLists[i].bind(s[i]); } - + // Watch for a new set of requests if ( s.global && jQuery.active++ === 0 ) { jQuery.event.trigger( "ajaxStart" ); } - + done = whenDone; } - + function whenDone(status, statusText, response, headers) { - + // Called once done = undefined; - + // Reset sendFlag sendFlag = 0; - + // Cache response headers responseHeadersString = headers || ""; @@ -182,12 +182,12 @@ jQuery.xhr = function( _native ) { if ( timeoutTimer ) { clearTimeout(timeoutTimer); } - + var // Reference url url = s.url, // and ifModified status ifModified = s.ifModified, - + // Is it a success? isSuccess = 0, // Stored success @@ -197,19 +197,19 @@ jQuery.xhr = function( _native ) { // If not timeout, force a jQuery-compliant status text if ( statusText != "timeout" ) { - statusText = ( status >= 200 && status < 300 ) ? + statusText = ( status >= 200 && status < 300 ) ? "success" : ( status === 304 ? "notmodified" : "error" ); } - + // If successful, handle type chaining if ( statusText === "success" || statusText === "notmodified" ) { - + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. if ( ifModified ) { var lastModified = xhr.getResponseHeader("Last-Modified"), etag = xhr.getResponseHeader("Etag"); - + if (lastModified) { jQuery_lastModified[url] = lastModified; } @@ -217,17 +217,17 @@ jQuery.xhr = function( _native ) { jQuery_etag[url] = etag; } } - + if ( ifModified && statusText === "notmodified" ) { - + success = null; isSuccess = 1; - + } else { // Chain data conversions and determine the final value // (if an exception is thrown in the process, it'll be notified as an error) try { - + function checkData(data) { if ( data !== undefined ) { var testFunction = s.dataCheckers[srcDataType]; @@ -236,7 +236,7 @@ jQuery.xhr = function( _native ) { } } } - + function convertData (data) { var conversionFunction = dataConverters[srcDataType+" => "+destDataType] || dataConverters["* => "+destDataType], @@ -259,11 +259,11 @@ jQuery.xhr = function( _native ) { if ( noFunction ) { jQuery.error( "no data converter between " + srcDataType + " and " + destDataType ); } - + } return conversionFunction(data); } - + var dataTypes = s.dataTypes, i, length, @@ -272,13 +272,13 @@ jQuery.xhr = function( _native ) { srcDataType, destDataType, responseTypes = s.xhrResponseFields; - + for ( i = 0, length = dataTypes.length ; i < length ; i++ ) { - + destDataType = dataTypes[i]; - + if ( !srcDataType ) { // First time - + // Copy type srcDataType = destDataType; // Check @@ -289,92 +289,92 @@ jQuery.xhr = function( _native ) { // Recheck data checkData(data); } - + } else { // Subsequent times - + // handle auto // JULIAN: for reasons unknown to me === doesn't work here if (destDataType == "*") { - + destDataType = srcDataType; - + } else if ( srcDataType != destDataType ) { - + // Convert data = convertData(data); // Copy type & check srcDataType = destDataType; checkData(data); - + } - + } - + // Copy response into the xhr if it hasn't been already var responseDataType, responseType = responseTypes[srcDataType]; - + if ( responseType ) { - + responseDataType = srcDataType; - + } else { - + responseType = responseTypes[ responseDataType = "text" ]; - + } - + if ( responseType !== 1 ) { xhr[ "response" + responseType ] = data; responseTypes[ responseType ] = 1; } - + } - + // We have a real success success = data; isSuccess = 1; - + } catch(e) { - + statusText = "parsererror"; error = "" + e; - + } } - + } else { // if not success, mark it as an error - + error = error || statusText; - + } - + // Set data for the fake xhr object xhr.status = status; xhr.statusText = statusText; - + // Keep local copies of vars in case callbacks re-use the xhr var _s = s, _callbacksLists = callbacksLists, _callbackContext = callbackContext, _globalEventContext = globalEventContext; - + // Set state if the xhr hasn't been re-used function _setState( value ) { if ( xhr.readyState && s === _s ) { setState( value ); } } - + // Really completed? if ( status && s.async ) { setState( 2 ); _setState( 3 ); } - + // We're done _setState( 4 ); - + // Success _callbacksLists.success.fire( isSuccess , _callbackContext , success, statusText, xhr); if ( isSuccess && _s.global ) { @@ -383,7 +383,7 @@ jQuery.xhr = function( _native ) { // Error _callbacksLists.error.fire( ! isSuccess , _callbackContext , xhr, statusText, error); if ( !isSuccess && _s.global ) { - _globalEventContext.trigger( "ajaxError", [xhr, _s, error] ); + _globalEventContext.trigger( "ajaxError", [xhr, _s, error] ); } // Complete _callbacksLists.complete.fire( 1 , _callbackContext, xhr, statusText); @@ -395,14 +395,14 @@ jQuery.xhr = function( _native ) { } } } - + // Ready state control function checkState( expected , test ) { if ( expected !== true && ( expected === false || test === false || xhr.readyState !== expected ) ) { jQuery.error("INVALID_STATE_ERR"); } } - + // Ready state change function setState( value ) { xhr.readyState = value; @@ -410,7 +410,7 @@ jQuery.xhr = function( _native ) { xhr.onreadystatechange(); } } - + var // jQuery lists jQuery_lastModified = jQuery.lastModified, jQuery_etag = jQuery.etag, @@ -437,16 +437,16 @@ jQuery.xhr = function( _native ) { xhr = { // state readyState: 0, - + // Callback onreadystatechange: null, - + // Open open: function(type, url, async, username, password) { - + xhr.abort(); reset(); - + s = { type: type, url: url, @@ -454,128 +454,128 @@ jQuery.xhr = function( _native ) { username: username, password: password }; - + setState(1); - + return xhr; }, - + // Send send: function(data, moreOptions) { - + checkState(1 , !sendFlag); - + s.data = data; - + s = jQuery.extend( true, {}, jQuery.ajaxSettings, s, moreOptions || ( moreOptions === false ? { global: false } : {} ) ); - + if ( moreOptions ) { // We force the original context // (plain objects used as context get extended) s.context = moreOptions.context; } - + init(); - + // If not internal, abort if ( ! internal ) { done( 0 , "transport not found" ); return false; } - + // Allow custom headers/mimetypes and early abort if ( s.beforeSend ) { - + var _s = s; - + if ( s.beforeSend.call(callbackContext, xhr, s) === false || ! xhr.readyState || _s !== s ) { - + // Abort if not done if ( xhr.readyState && _s === s ) { xhr.abort(); } - + // Handle the global AJAX counter if ( _s.global && ! --jQuery.active ) { jQuery.event.trigger( "ajaxStop" ); } - + return false; } } - + sendFlag = 1; - + // Send global event if ( s.global ) { globalEventContext.trigger("ajaxSend", [xhr, s]); } - + // Timeout if ( s.async && s.timeout > 0 ) { timeoutTimer = setTimeout(function(){ xhr.abort("timeout"); }, s.timeout); } - + if ( s.async ) { setState(1); } - + try { - + internal.send(requestHeaders, done); return xhr; - + } catch (e) { - + if ( done ) { - + done(0, "error", "" + e); - + } else { - + jQuery.error(e); - + } } - + return false; }, - + // Caches the header setRequestHeader: function(name,value) { checkState(1, !sendFlag); requestHeaders[ name.toLowerCase() ] = value; return xhr; }, - + // Raw string getAllResponseHeaders: function() { return xhr.readyState <= 1 ? "" : responseHeadersString; }, - + // Builds headers hashtable if needed getResponseHeader: function( key ) { - + if ( xhr.readyState <= 1 ) { - + return null; - + } - + if ( responseHeaders === undefined ) { - + responseHeaders = {}; - + if ( typeof responseHeadersString === "string" ) { - + var match; - + while( ( match = rheaders.exec( responseHeadersString ) ) ) { responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; } @@ -583,7 +583,7 @@ jQuery.xhr = function( _native ) { } return responseHeaders[ key.toLowerCase() ]; }, - + // Cancel the request abort: function(statusText) { if (internal) { @@ -592,7 +592,7 @@ jQuery.xhr = function( _native ) { xhr.readyState = 0; } }; - + // Init data (so that we can bind callbacks early reset(1); @@ -607,82 +607,82 @@ jQuery.xhr = function( _native ) { return this; }; }); - + // Return the xhr emulation return xhr; }; // Create a callback list function createCBList() { - + var functors = [], autoFire = 0, fireArgs, list = { - + fire: function( flag , context ) { - + // Save info for later bindings fireArgs = arguments; - + // Remove autoFire to keep bindings in order autoFire = 0; - + var args = sliceFunc.call( fireArgs , 2 ); - + // Execute callbacks while ( flag && functors.length ) { flag = functors.shift().apply( context , args ) !== false; } - + // Clean if asked to stop if ( ! flag ) { clean(); } - + // Set autoFire - autoFire = 1; + autoFire = 1; }, - + bind: function() { - + var args = arguments, i = 0, length = args.length, func; - + for ( ; i < length ; i++ ) { - + func = args[ i ]; - + if ( jQuery.isArray(func) ) { - + list.bind.apply( list , func ); - + } else if ( isFunction(func) ) { - + // Add if not already in if ( ! pos( func ) ) { functors.push( func ); } } } - + if ( autoFire ) { list.fire.apply( list , fireArgs ); } }, - + unbind: function() { - + var i = 0, args = arguments, length = args.length, - func, + func, position; - + if ( length ) { - + for( ; i < length ; i++ ) { func = args[i]; if ( jQuery.isArray(func) ) { @@ -694,15 +694,15 @@ function createCBList() { } } } - + } else { - + functors = []; - + } } - + }; // Get the index of the functor in the list (1-based) @@ -711,7 +711,7 @@ function createCBList() { } return i < length ? ( i + 1 ) : 0; } - + // Clean the object function clean() { // Empty callbacks list @@ -721,12 +721,12 @@ function createCBList() { list[i] = jQuery.noop; } } - + return list; } jQuery.extend(jQuery.xhr, { - + // Add new prefilter prefilter: function (functor) { if ( isFunction(functor) ) { @@ -734,10 +734,10 @@ jQuery.extend(jQuery.xhr, { } return this; }, - + // Bind a transport to one or more dataTypes bindTransport: function () { - + var args = arguments, i, start = 0, @@ -749,63 +749,63 @@ jQuery.extend(jQuery.xhr, { append, list, transports = jQuery.ajaxSettings.transports; - + if ( length ) { - + if ( ! isFunction( args[ 0 ] ) ) { - + dataTypes = args[ 0 ].toLowerCase().split(/\s+/); start = 1; - + } - + if ( dataTypes.length && start < length ) { - + for ( i = start; i < length; i++ ) { functor = args[i]; if ( isFunction(functor) ) { functors.push( functor ); } } - + if ( functors.length ) { - + jQuery.each ( dataTypes, function( _ , dataType ) { - + first = /^\+/.test( dataType ); - + if (first) { dataType = dataType.substr(1); } - + if ( dataType !== "" ) { - + append = Array.prototype[ first ? "unshift" : "push" ]; - + list = transports[ dataType ]; - + jQuery.each ( functors, function( _ , functor ) { - + if ( ! list ) { - + list = transports[ dataType ] = [ functor ]; - + } else { - + append.call( list , functor ); } } ); } - + } ); } } } - + return this; } - + }); // Select a transport given options @@ -819,13 +819,13 @@ function selectTransport( s ) { length, checked = {}, flag; - + function initSearch( dataType ) { flag = transportDataType !== dataType && ! checked[ dataType ]; - + if ( flag ) { - + checked[ dataType ] = 1; transportDataType = dataType; transportsList = s.transports[ dataType ]; @@ -835,15 +835,15 @@ function selectTransport( s ) { return flag; } - + initSearch( dataTypes[ 0 ] ); for ( i = 0 ; ! transport && i <= length ; i++ ) { - + if ( i === length ) { - + initSearch( "*" ); - + } else { transport = transportsList[ i ]( s , determineDataType ); @@ -861,18 +861,18 @@ function selectTransport( s ) { return transport; } - + // Utility function that handles dataType when response is received // (for those transports that can give text or xml responses) function determineDataType( s , ct , text , xml ) { - + var autoDataType = s.autoDataType, type, regexp, dataTypes = s.dataTypes, transportDataType = dataTypes[0], response; - + // Auto (xml, json, script or text determined given headers) if ( transportDataType === "*" ) { @@ -881,29 +881,29 @@ function determineDataType( s , ct , text , xml ) { transportDataType = dataTypes[0] = type; break; } - } - } - + } + } + // xml and parsed as such if ( transportDataType === "xml" && xml && xml.documentElement /* #4958 */ ) { - + response = xml; - + // Text response was provided } else { - + response = text; - + // If it's not really text, defer to dataConverters if ( transportDataType !== "text" ) { dataTypes.unshift( "text" ); } - + } - + return response; -} +} })( jQuery ); diff --git a/test/data/headers.php b/test/data/headers.php index f2c21c0..c3cb729 100644 --- a/test/data/headers.php +++ b/test/data/headers.php @@ -4,16 +4,16 @@ header( "Sample-Header: Hello World" ); $headers = array(); -foreach( $_SERVER as $key => $value ) { - - if ( substr( $key , 0 , 5 ) == "HTTP_" ) { - +foreach( $_SERVER as $key => $value ) { + + if ( substr( $key , 0 , 5 ) == "HTTP_" ) { + $key = str_replace( "_" , "-" , substr( $key , 5) ); $headers[ $key ] = $value; } - -} + +} foreach( explode( "_" , $_GET[ "keys" ] ) as $key ) { echo "$key: " . $headers[ strtoupper( $key ) ] . "\n"; diff --git a/test/data/params_html.php b/test/data/params_html.php index 0bab00f..e88ef15 100644 --- a/test/data/params_html.php +++ b/test/data/params_html.php @@ -1,12 +1,12 @@
-$value ) echo "$value"; -?> +?>
$value ) echo "$value"; -?> +?>
\ No newline at end of file diff --git a/test/delegatetest.html b/test/delegatetest.html index 327085c..6479d26 100644 --- a/test/delegatetest.html +++ b/test/delegatetest.html @@ -206,7 +206,7 @@ $(document).bind("focusin", function() { jQuery("#boundFocus").blink(); }); - + $(document).bind("focusout", function() { jQuery("#boundBlur").blink(); }); @@ -229,14 +229,14 @@ $(document).bind("change", function(){ jQuery("#boundChange").blink(); }); - + $("#text_submit").addSubmitTest("#textSubmit", true); $("#password_submit").addSubmitTest("#passwordSubmit", true); $("#submit_submit").addSubmitTest("#submitSubmit", true); $(document).bind("submit", function(){ jQuery("#boundSubmit").blink(); }); - + diff --git a/test/polluted.php b/test/polluted.php index 3ddb7ac..55df0dd 100644 --- a/test/polluted.php +++ b/test/polluted.php @@ -15,7 +15,7 @@ $suite = file_get_contents('index.html'); echo str_replace( '', $includes, $suite ); exit; - } + } ?> @@ -43,7 +43,7 @@

jQuery Test Suite

Choose other libraries to include

- +
" + e ); }, complete: function() { if ( ! --i ) start(); } }); - + jQuery.ajax({ 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(); } }); - + }); test("jQuery ajax - atom+xml", function() { stop(); - + jQuery.ajax({ url: url( 'data/atom+xml.php' ), success: function(){ ok( true , "success" ); }, error: function(){ ok( false , "error" ); }, complete: function() { start(); } }); - + }); test("jQuery.ajax - active counter", function() { diff --git a/test/unit/attributes.js b/test/unit/attributes.js index f9506b3..a1ab581 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -4,13 +4,13 @@ var bareObj = function(value) { return value; }; var functionReturningObj = function(value) { return (function() { return value; }); }; test("jQuery.props: itegrity test", function() { - + expect(1); - + // This must be maintained and equal jQuery.props - // Ensure that accidental or erroneous property + // Ensure that accidental or erroneous property // overwrites don't occur - // This is simply for better code coverage and future proofing. + // This is simply for better code coverage and future proofing. var propsShouldBe = { "for": "htmlFor", "class": "className", @@ -23,7 +23,7 @@ test("jQuery.props: itegrity test", function() { usemap: "useMap", frameborder: "frameBorder" }; - + same(propsShouldBe, jQuery.props, "jQuery.props passes integrity check"); }); @@ -33,7 +33,7 @@ test("attr(String)", function() { // This one sometimes fails randomly ?! equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' ); - + equals( jQuery('#text1').attr('value', "Test2").attr('defaultValue'), "Test", 'Check for defaultValue attribute' ); equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' ); equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' ); @@ -255,30 +255,30 @@ test("attr(String, Object)", function() { test("attr(jquery_method)", function(){ expect(7); - + var $elem = jQuery("
"), elem = $elem[0]; - - // one at a time + + // one at a time $elem.attr({'html': 'foo'}, true); equals( elem.innerHTML, 'foo', 'attr(html)'); - + $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({'height': 10}, true); equals( elem.style.height, '10px', 'attr(height)'); - + // Multiple attributes - + $elem.attr({ width:10, css:{ paddingLeft:1, paddingRight:1 } }, true); - + equals( elem.style.width, '10px', 'attr({...})'); equals( elem.style.paddingLeft, '1px', 'attr({...})'); equals( elem.style.paddingRight, '1px', 'attr({...})'); @@ -491,7 +491,7 @@ test( "val(Array of Numbers) (Bug #7123)", function() { ok( elements[1].checked, "Second element was checked" ); ok( !elements[2].checked, "Third element was unchecked" ); ok( !elements[3].checked, "Fourth element remained unchecked" ); - + elements.remove(); }); @@ -672,7 +672,7 @@ test("removeClass(Function) with incoming value", function() { ok( !$divs.is('.test'), "Remove Class" ); - QUnit.reset(); + QUnit.reset(); }); var testToggleClass = function(valueObj) { @@ -740,21 +740,21 @@ test("toggleClass(Fucntion[, boolean]) with incoming value", function() { var e = jQuery("#firstp"), old = e.attr("class"); ok( !e.is(".test"), "Assert class not present" ); - + e.toggleClass(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); return "test"; }); ok( e.is(".test"), "Assert class present" ); - + old = e.attr("class"); - + e.toggleClass(function(i, val) { equals( val, old, "Make sure the incoming value is correct." ); return "test"; }); ok( !e.is(".test"), "Assert class not present" ); - + old = e.attr("class"); // class name with a boolean @@ -764,18 +764,18 @@ test("toggleClass(Fucntion[, boolean]) with incoming value", function() { return "test"; }, false ); ok( !e.is(".test"), "Assert class not present" ); - + old = e.attr("class"); - + e.toggleClass(function(i, val, state) { equals( val, old, "Make sure the incoming value is correct." ); equals( state, true, "Make sure that the state is passed in." ); return "test"; }, true ); ok( e.is(".test"), "Assert class present" ); - + old = e.attr("class"); - + e.toggleClass(function(i, val, state) { equals( val, old, "Make sure the incoming value is correct." ); equals( state, false, "Make sure that the state is passed in." ); @@ -790,25 +790,25 @@ test("toggleClass(Fucntion[, boolean]) with incoming value", function() { test("addClass, removeClass, hasClass", function() { expect(17); - + var jq = jQuery("

Hi

"), x = jq[0]; - + jq.addClass("hi"); equals( x.className, "hi", "Check single added class" ); - + jq.addClass("foo bar"); equals( x.className, "hi foo bar", "Check more added classes" ); - + jq.removeClass(); equals( x.className, "", "Remove all classes" ); - + jq.addClass("hi foo bar"); jq.removeClass("foo"); equals( x.className, "hi bar", "Check removal of one class" ); - + ok( jq.hasClass("hi"), "Check has1" ); ok( jq.hasClass("bar"), "Check has2" ); - + var jq = jQuery("

"); ok( jq.hasClass("class1"), "Check hasClass with line feed" ); ok( jq.is(".class1"), "Check is with line feed" ); @@ -817,7 +817,7 @@ test("addClass, removeClass, hasClass", function() { ok( jq.hasClass("cla.ss3"), "Check hasClass with dot" ); ok( jq.hasClass("class4"), "Check hasClass with carriage return" ); ok( jq.is(".class4"), "Check is with carriage return" ); - + jq.removeClass("class2"); ok( jq.hasClass("class2")==false, "Check the class has been properly removed" ); jq.removeClass("cla"); diff --git a/test/unit/css.js b/test/unit/css.js index cddd902..fbbf937 100644 --- a/test/unit/css.js +++ b/test/unit/css.js @@ -178,24 +178,24 @@ if ( !jQuery.support.opacity ) { test("css(String, Function)", function() { expect(3); - + var sizes = ["10px", "20px", "30px"]; - - jQuery("
" + - "
" + + + jQuery("
" + + "
" + "
") .appendTo("body"); - + var index = 0; - + jQuery("#cssFunctionTest div").css("font-size", function() { var size = sizes[index]; index++; return size; }); - + index = 0; - + jQuery("#cssFunctionTest div").each(function() { var computedSize = jQuery(this).css("font-size") var expectedSize = sizes[index] @@ -208,24 +208,24 @@ test("css(String, Function)", function() { test("css(String, Function) with incoming value", function() { expect(3); - + var sizes = ["10px", "20px", "30px"]; - - jQuery("
" + - "
" + + + jQuery("
" + + "
" + "
") .appendTo("body"); - + var index = 0; - + jQuery("#cssFunctionTest div").css("font-size", function() { var size = sizes[index]; index++; return size; }); - + index = 0; - + jQuery("#cssFunctionTest div").css("font-size", function(i, computedSize) { var expectedSize = sizes[index] equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize ); @@ -238,61 +238,61 @@ test("css(String, Function) with incoming value", function() { test("css(Object) where values are Functions", function() { expect(3); - + var sizes = ["10px", "20px", "30px"]; - - jQuery("
" + - "
" + + + jQuery("
" + + "
" + "
") .appendTo("body"); var index = 0; - + jQuery("#cssFunctionTest div").css({fontSize: function() { var size = sizes[index]; index++; return size; }}); - + index = 0; - + jQuery("#cssFunctionTest div").each(function() { var computedSize = jQuery(this).css("font-size") var expectedSize = sizes[index] equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize ); index++; }); - + jQuery("#cssFunctionTest").remove(); }); test("css(Object) where values are Functions with incoming values", function() { expect(3); - + var sizes = ["10px", "20px", "30px"]; - - jQuery("
" + - "
" + + + jQuery("
" + + "
" + "
") .appendTo("body"); var index = 0; - + jQuery("#cssFunctionTest div").css({fontSize: function() { var size = sizes[index]; index++; return size; }}); - + index = 0; - + jQuery("#cssFunctionTest div").css({"font-size": function(i, computedSize) { var expectedSize = sizes[index] equals( computedSize, expectedSize, "Div #" + index + " should be " + expectedSize ); index++; return computedSize; }}); - + jQuery("#cssFunctionTest").remove(); }); diff --git a/test/unit/dimensions.js b/test/unit/dimensions.js index 8255bf3..b38e73b 100644 --- a/test/unit/dimensions.js +++ b/test/unit/dimensions.js @@ -45,13 +45,13 @@ test("width() with function", function() { test("width() with function args", function() { expect( 2 ); - + var $div = jQuery("#nothiddendiv"); $div.width( 30 ).width(function(i, width) { equals( width, 30, "Make sure previous value is corrrect." ); return width + 1; }); - + equals( $div.width(), 31, "Make sure value was modified correctly." ); }); @@ -92,13 +92,13 @@ test("height() with function", function() { test("height() with function args", function() { expect( 2 ); - + var $div = jQuery("#nothiddendiv"); $div.height( 30 ).height(function(i, height) { equals( height, 30, "Make sure previous value is corrrect." ); return height + 1; }); - + equals( $div.height(), 31, "Make sure value was modified correctly." ); }); @@ -112,13 +112,13 @@ test("innerWidth()", function() { border: "2px solid #fff", width: 30 }); - + equals($div.innerWidth(), 30, "Test with margin and border"); $div.css("padding", "20px"); equals($div.innerWidth(), 70, "Test with margin, border and padding"); $div.hide(); equals($div.innerWidth(), 70, "Test hidden div"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); @@ -130,7 +130,7 @@ test("innerWidth()", function() { test("innerHeight()", function() { expect(4); - + var $div = jQuery("#nothiddendiv"); // set styles $div.css({ @@ -138,13 +138,13 @@ test("innerHeight()", function() { border: "2px solid #fff", height: 30 }); - + equals($div.innerHeight(), 30, "Test with margin and border"); $div.css("padding", "20px"); equals($div.innerHeight(), 70, "Test with margin, border and padding"); $div.hide(); equals($div.innerHeight(), 70, "Test hidden div"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); @@ -156,10 +156,10 @@ test("innerHeight()", function() { test("outerWidth()", function() { expect(7); - + var $div = jQuery("#nothiddendiv"); $div.css("width", 30); - + equals($div.outerWidth(), 30, "Test with only width set"); $div.css("padding", "20px"); equals($div.outerWidth(), 70, "Test with padding"); @@ -171,7 +171,7 @@ test("outerWidth()", function() { equals($div.outerWidth(true), 94, "Test with padding, border and margin with margin option"); $div.hide(); equals($div.outerWidth(true), 94, "Test hidden div with padding, border and margin with margin option"); - + // reset styles $div.css({ position: "", display: "", border: "", padding: "", width: "", height: "" }); @@ -183,10 +183,10 @@ test("outerWidth()", function() { test("outerHeight()", function() { expect(7); - + var $div = jQuery("#nothiddendiv"); $div.css("height", 30); - + equals($div.outerHeight(), 30, "Test with only width set"); $div.css("padding", "20px"); equals($div.outerHeight(), 70, "Test with padding"); @@ -197,7 +197,7 @@ test("outerHeight()", function() { equals($div.outerHeight(true), 94, "Test with padding, border and margin with margin option"); $div.hide(); equals($div.outerHeight(true), 94, "Test hidden div with padding, border and margin with margin option"); - + // reset styles $div.css({ display: "", border: "", padding: "", width: "", height: "" }); diff --git a/test/unit/effects.js b/test/unit/effects.js index 9690796..e96f6b6 100644 --- a/test/unit/effects.js +++ b/test/unit/effects.js @@ -64,7 +64,7 @@ test("show()", function() { // #show-tests * is set display: none in CSS jQuery("#main").append('

'); - + var old = jQuery("#test-table").show().css("display") !== "table"; jQuery("#test-table").remove(); @@ -140,15 +140,15 @@ test("Persist correct display value", function() { // #show-tests * is set display: none in CSS jQuery("#main").append('
foo
'); - - var $span = jQuery("#show-tests span"), + + var $span = jQuery("#show-tests span"), displayNone = $span.css("display"), display = '', num = 0; - + $span.show(); - + display = $span.css("display"); - + $span.hide(); $span.fadeIn(100, function() { @@ -156,13 +156,13 @@ test("Persist correct display value", function() { equals($span.css("display"), display, "Expecting display: " + display); $span.fadeOut(100, function () { - + equals($span.css("display"), displayNone, "Expecting display: " + displayNone); - + $span.fadeIn(100, function() { - + equals($span.css("display"), display, "Expecting display: " + display); - + start(); }); }); @@ -194,7 +194,7 @@ test("animate block as inline width/height", function() { var span = jQuery("").css("display", "inline-block").appendTo("body"), expected = span.css("display"); - + span.remove(); if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { @@ -220,7 +220,7 @@ test("animate native inline width/height", function() { var span = jQuery("").css("display", "inline-block").appendTo("body"), expected = span.css("display"); - + span.remove(); if ( jQuery.support.inlineBlockNeedsLayout || expected === "inline-block" ) { @@ -889,7 +889,7 @@ test("hide hidden elements, with animation (bug #7141)", function() { expect(3); QUnit.reset(); stop(); - + var div = jQuery("
").appendTo("#main"); equals( div.css("display"), "none", "Element is hidden by default" ); div.hide(1, function () { diff --git a/test/unit/event.js b/test/unit/event.js index 83f6096..b4672a8 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -4,20 +4,20 @@ test("null or undefined handler", function() { expect(2); // Supports Fixes bug #7229 try { - + jQuery("#firstp").click(null); - + ok(true, "Passing a null handler will not throw an exception"); - } catch (e) {} + } catch (e) {} try { - + jQuery("#firstp").click(undefined); - + ok(true, "Passing an undefined handler will not throw an exception"); - } catch (e) {} + } catch (e) {} }); test("bind(), with data", function() { @@ -175,7 +175,7 @@ test("bind(), no data", function() { test("bind/one/unbind(Object)", function(){ expect(6); - + var clickCounter = 0, mouseoverCounter = 0; function handler(event) { if (event.type == "click") @@ -183,18 +183,18 @@ test("bind/one/unbind(Object)", function(){ else if (event.type == "mouseover") mouseoverCounter++; }; - + function handlerWithData(event) { if (event.type == "click") clickCounter += event.data; else if (event.type == "mouseover") mouseoverCounter += event.data; }; - + function trigger(){ $elem.trigger("click").trigger("mouseover"); } - + var $elem = jQuery("#firstp") // Regular bind .bind({ @@ -206,16 +206,16 @@ test("bind/one/unbind(Object)", function(){ click:handlerWithData, mouseover:handlerWithData }, 2 ); - + trigger(); - + equals( clickCounter, 3, "bind(Object)" ); equals( mouseoverCounter, 3, "bind(Object)" ); - + trigger(); equals( clickCounter, 4, "bind(Object)" ); equals( mouseoverCounter, 4, "bind(Object)" ); - + jQuery("#firstp").unbind({ click:handler, mouseover:handler @@ -228,10 +228,10 @@ test("bind/one/unbind(Object)", function(){ test("live/die(Object), delegate/undelegate(String, Object)", function() { expect(6); - + var clickCounter = 0, mouseoverCounter = 0, $p = jQuery("#firstp"), $a = $p.find("a:first"); - + var events = { click: function( event ) { clickCounter += ( event.data || 1 ); @@ -240,26 +240,26 @@ test("live/die(Object), delegate/undelegate(String, Object)", function() { mouseoverCounter += ( event.data || 1 ); } }; - + function trigger() { $a.trigger("click").trigger("mouseover"); } - + $a.live( events ); $p.delegate( "a", events, 2 ); - + trigger(); equals( clickCounter, 3, "live/delegate" ); equals( mouseoverCounter, 3, "live/delegate" ); - + $p.undelegate( "a", events ); - + trigger(); equals( clickCounter, 4, "undelegate" ); equals( mouseoverCounter, 4, "undelegate" ); - + $a.die( events ); - + trigger(); equals( clickCounter, 4, "die" ); equals( mouseoverCounter, 4, "die" ); @@ -267,12 +267,12 @@ test("live/die(Object), delegate/undelegate(String, Object)", function() { test("live/delegate immediate propagation", function() { expect(2); - + var $p = jQuery("#firstp"), $a = $p.find("a:first"), lastClick; - + lastClick = ""; - $a.live( "click", function(e) { - lastClick = "click1"; + $a.live( "click", function(e) { + lastClick = "click1"; e.stopImmediatePropagation(); }); $a.live( "click", function(e) { @@ -281,10 +281,10 @@ test("live/delegate immediate propagation", function() { $a.trigger( "click" ); equals( lastClick, "click1", "live stopImmediatePropagation" ); $a.die( "click" ); - + lastClick = ""; - $p.delegate( "a", "click", function(e) { - lastClick = "click1"; + $p.delegate( "a", "click", function(e) { + lastClick = "click1"; e.stopImmediatePropagation(); }); $p.delegate( "a", "click", function(e) { @@ -303,7 +303,7 @@ test("bind/delegate bubbling, isDefaultPrevented (Bug #7793)", function() { // Use a native click so we don't get jQuery simulated bubbling if ( document.createEvent ) { var e = document.createEvent( "MouseEvents" ); - e.initEvent( "click", true, true ); + e.initEvent( "click", true, true ); $jq[0].dispatchEvent(e); } else if ( $jq[0].click ) { @@ -333,7 +333,7 @@ test("bind/delegate bubbling, isDefaultPrevented (Bug #7793)", function() { test("bind(), iframes", function() { // events don't work with iframes, see #939 - this test fails in IE because of contentDocument var doc = jQuery("#loadediframe").contents(); - + jQuery("div", doc).bind("click", function() { ok( true, "Binding to element inside iframe" ); }).click().unbind('click'); @@ -395,7 +395,7 @@ test("bind(), namespaced events, cloned events", function() { test("bind(), multi-namespaced events", function() { expect(6); - + var order = [ "click.test.abc", "click.test.abc", @@ -404,7 +404,7 @@ test("bind(), multi-namespaced events", function() { "click.test", "custom.test2" ]; - + function check(name, msg){ same(name, order.shift(), msg); } @@ -424,7 +424,7 @@ test("bind(), multi-namespaced events", function() { jQuery("#firstp").bind("click.test.abc",function(e){ check("click.test.abc", "Namespaced click triggered"); }); - + // Those would not trigger/unbind (#5303) jQuery("#firstp").trigger("click.a.test"); jQuery("#firstp").unbind("click.a.test"); @@ -488,7 +488,7 @@ test("bind(), make sure order is maintained", function() { elem.unbind("click"); }); - + test("bind(), with different this object", function() { expect(4); var thisObject = { myThis: true }, @@ -500,7 +500,7 @@ test("bind(), with different this object", function() { equals( this, thisObject, "bind() with different this object and data" ); equals( event.data, data, "bind() with different this object and data" ); }; - + jQuery("#firstp") .bind("click", jQuery.proxy(handler1, thisObject)).click().unbind("click", handler1) .bind("click", data, jQuery.proxy(handler2, thisObject)).click().unbind("click", handler2); @@ -566,29 +566,29 @@ test("bind()/trigger()/unbind() on plain object", function() { // Make sure it doesn't complain when no events are found jQuery(obj).unbind("test"); - + equals( obj.__events__, undefined, "Make sure events object is removed" ); }); test("unbind(type)", function() { expect( 0 ); - + var $elem = jQuery("#firstp"), message; function error(){ ok( false, message ); } - + message = "unbind passing function"; $elem.bind('error1', error).unbind('error1',error).triggerHandler('error1'); - + message = "unbind all from event"; $elem.bind('error1', error).unbind('error1').triggerHandler('error1'); - + message = "unbind all"; $elem.bind('error1', error).unbind().triggerHandler('error1'); - + message = "unbind many with function"; $elem.bind('error1 error2',error) .unbind('error1 error2', error ) @@ -598,7 +598,7 @@ test("unbind(type)", function() { $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) .unbind() @@ -607,7 +607,7 @@ test("unbind(type)", function() { test("unbind(eventObject)", function() { expect(4); - + var $elem = jQuery("#firstp"), num; @@ -616,7 +616,7 @@ test("unbind(eventObject)", function() { $elem.trigger('foo').triggerHandler('bar'); equals( num, expected, "Check the right handlers are triggered" ); } - + $elem // This handler shouldn't be unbound .bind('foo', function(){ @@ -630,14 +630,14 @@ test("unbind(eventObject)", function() { .bind('bar', function(){ num += 4; }); - + assert( 7 ); assert( 5 ); - + $elem.unbind('bar'); assert( 1 ); - - $elem.unbind(); + + $elem.unbind(); assert( 0 ); }); @@ -667,25 +667,25 @@ test("trigger() shortcuts", function() { ok( !close[0], "Context element does not exist, direct access to element must return undefined" ); return false; }).click(); - + jQuery("#check1").click(function() { ok( true, "click event handler for checkbox gets fired twice, see #815" ); }).click(); - + var counter = 0; jQuery('#firstp')[0].onclick = function(event) { counter++; }; jQuery('#firstp').click(); equals( counter, 1, "Check that click, triggers onclick event handler also" ); - + var clickCounter = 0; jQuery('#simon1')[0].onclick = function(event) { clickCounter++; }; jQuery('#simon1').click(); equals( clickCounter, 1, "Check that click, triggers onclick event handler on an a tag also" ); - + jQuery('').load(function(){ ok( true, "Trigger the load event, using the shortcut .load() (#2819)"); }).load(); @@ -763,7 +763,7 @@ test("trigger(type, [data], [fn])", function() { pass = false; } ok( pass, "Trigger focus on hidden element" ); - + pass = true; try { jQuery('table:first').bind('test:test', function(){}).trigger('test:test'); @@ -803,28 +803,28 @@ test("jQuery.Event.currentTarget", function(){ test("trigger(eventObject, [data], [fn])", function() { expect(25); - + var $parent = jQuery('
').hide().appendTo('body'), $child = jQuery('

foo

').appendTo( $parent ); - - var event = jQuery.Event("noNew"); + + var event = jQuery.Event("noNew"); ok( event != window, "Instantiate jQuery.Event without the 'new' keyword" ); equals( event.type, "noNew", "Verify its type" ); - + equals( event.isDefaultPrevented(), false, "Verify isDefaultPrevented" ); equals( event.isPropagationStopped(), false, "Verify isPropagationStopped" ); equals( event.isImmediatePropagationStopped(), false, "Verify isImmediatePropagationStopped" ); - + event.preventDefault(); equals( event.isDefaultPrevented(), true, "Verify isDefaultPrevented" ); event.stopPropagation(); equals( event.isPropagationStopped(), true, "Verify isPropagationStopped" ); - + event.isPropagationStopped = function(){ return false }; event.stopImmediatePropagation(); equals( event.isPropagationStopped(), true, "Verify isPropagationStopped" ); equals( event.isImmediatePropagationStopped(), true, "Verify isPropagationStopped" ); - + $parent.bind('foo',function(e){ // Tries bubbling equals( e.type, 'foo', 'Verify event type when passed passing an event object' ); @@ -832,72 +832,72 @@ test("trigger(eventObject, [data], [fn])", function() { 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!'; $child.trigger(event); - + // test with a literal object $child.trigger({type:'foo', secret:'boo!'}); - + $parent.unbind(); function error(){ ok( false, "This assertion shouldn't be reached"); } - + $parent.bind('foo', error ); - + $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"); equals( c, 3, "Check third custom argument"); - + equals( e.isDefaultPrevented(), false, "Verify isDefaultPrevented" ); equals( e.isPropagationStopped(), false, "Verify isPropagationStopped" ); equals( e.isImmediatePropagationStopped(), false, "Verify isImmediatePropagationStopped" ); - + // Skips both errors e.stopImmediatePropagation(); - + return "result"; }); - + // We should add this back in when we want to test the order // in which event handlers are iterated. //$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.unbind(); $parent.unbind().remove(); }); test("jQuery.Event.currentTarget", function(){ expect(1); - + var counter = 0, $elem = jQuery('').click(function(e){ equals( e.currentTarget, this, "Check currentTarget on "+(counter++?"native":"fake") +" event" ); }); - + // Fake event $elem.trigger('click'); - + // Cleanup $elem.unbind(); }); test("toggle(Function, Function, ...)", function() { expect(16); - + var count = 0, fn1 = function(e) { count++; }, fn2 = function(e) { count--; }, @@ -920,7 +920,7 @@ test("toggle(Function, Function, ...)", function() { }); return false; }).click().click().click(); - + var turn = 0; var fns = [ function(){ @@ -933,7 +933,7 @@ test("toggle(Function, Function, ...)", function() { turn = 3; } ]; - + var $div = jQuery("
 
").toggle( fns[0], fns[1], fns[2] ); $div.click(); equals( turn, 1, "Trying toggle with 3 functions, attempt 1 yields 1"); @@ -945,7 +945,7 @@ test("toggle(Function, Function, ...)", function() { equals( turn, 1, "Trying toggle with 3 functions, attempt 4 yields 1"); $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' ); ok( !data, "Unbinding one function from toggle unbinds them all"); @@ -1087,7 +1087,7 @@ test(".live()/.die()", function() { // Test binding with different this object, event data, and trigger data jQuery("#foo").live("click", true, jQuery.proxy(function(e, data){ equals( e.data, true, "live with with different this object, event data, and trigger data" ); - equals( this.foo, "bar", "live with with different this object, event data, and trigger data" ); + equals( this.foo, "bar", "live with with different this object, event data, and trigger data" ); equals( data, true, "live with with different this object, event data, and trigger data") }, { foo: "bar" })); jQuery("#foo").trigger("click", true).die("click"); @@ -1148,25 +1148,25 @@ test(".live()/.die()", function() { // Cleanup jQuery("#nothiddendiv").die("foo", callback); - + // 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('').get(0); - + jQuery("#nothiddendivchild").live("click", function(e){ jQuery("#nothiddendivchild").html(''); }); jQuery("#nothiddendivchild").live("click", function(e){ if(e.target) {livec++;} }); - + jQuery("#nothiddendiv span").click(); equals( jQuery("#nothiddendiv span").length, 0, "Verify that first handler occurred and modified the DOM." ); equals( livec, 1, "Verify that second handler occurred even with nuked target." ); - + // Cleanup jQuery("#nothiddendivchild").die("click"); // Verify that .live() ocurs and cancel buble in the same order as // we would expect .bind() and .click() without delegation 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++; }); @@ -1184,22 +1184,22 @@ test(".live()/.die()", function() { jQuery('span#liveSpan2 a').click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); - + // Cleanup jQuery("span#liveSpan1 a").die("click") jQuery("span#liveSpan1").die("click"); jQuery("span#liveSpan2 a").die("click"); jQuery("span#liveSpan2").die("click"); - + // Test this, target and currentTarget are correct - jQuery('span#liveSpan1').live('click', function(e){ + 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').die('click'); // Work with deep selectors @@ -1333,18 +1333,18 @@ test("live with change", function(){ expect(8); var selectChange = 0, checkboxChange = 0; - + var select = jQuery("select[name='S1']") select.live("change", function() { selectChange++; }); - - var checkbox = jQuery("#check2"), + + var checkbox = jQuery("#check2"), checkboxFunction = function(){ checkboxChange++; } checkbox.live("change", checkboxFunction); - + // test click on select // second click that changed it @@ -1352,17 +1352,17 @@ test("live with change", function(){ select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 1, "Change on click." ); - + // test keys on select selectChange = 0; select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 1, "Change on keyup." ); - + // test click on checkbox checkbox.trigger("change"); equals( checkboxChange, 1, "Change on checkbox." ); - + // test blur/focus on text var text = jQuery("#name"), textChange = 0, oldTextVal = text.val(); text.live("change", function() { @@ -1375,7 +1375,7 @@ test("live with change", function(){ text.val(oldTextVal); text.die("change"); - + // test blur/focus on password var password = jQuery("#name"), passwordChange = 0, oldPasswordVal = password.val(); password.live("change", function() { @@ -1388,9 +1388,9 @@ test("live with change", function(){ password.val(oldPasswordVal); password.die("change"); - + // make sure die works - + // die all changes selectChange = 0; select.die("change"); @@ -1402,7 +1402,7 @@ test("live with change", function(){ select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 0, "Die on keyup works." ); - + // die specific checkbox checkbox.die("change", checkboxFunction); checkbox.trigger("change"); @@ -1411,7 +1411,7 @@ test("live with change", function(){ test("live with submit", function() { var count1 = 0, count2 = 0; - + jQuery("#testForm").live("submit", function(ev) { count1++; ev.preventDefault(); @@ -1425,7 +1425,7 @@ test("live with submit", function() { jQuery("#testForm input[name=sub1]").submit(); equals( count1, 1, "Verify form submit." ); equals( count2, 1, "Verify body submit." ); - + jQuery("#testForm").die("submit"); jQuery("body").die("submit"); }); @@ -1603,7 +1603,7 @@ test(".delegate()/.undelegate()", function() { // Test binding with different this object, event data, and trigger data jQuery("#body").delegate("#foo", "click", true, jQuery.proxy(function(e, data){ equals( e.data, true, "delegate with with different this object, event data, and trigger data" ); - equals( this.foo, "bar", "delegate with with different this object, event data, and trigger data" ); + equals( this.foo, "bar", "delegate with with different this object, event data, and trigger data" ); equals( data, true, "delegate with with different this object, event data, and trigger data") }, { foo: "bar" })); jQuery("#foo").trigger("click", true); @@ -1665,25 +1665,25 @@ test(".delegate()/.undelegate()", function() { // Cleanup jQuery("#body").undelegate("#nothiddendiv", "foo", callback); - + // 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('').get(0); - + 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(); equals( jQuery("#nothiddendiv span").length, 0, "Verify that first handler occurred and modified the DOM." ); equals( livec, 1, "Verify that second handler occurred even with nuked target." ); - + // Cleanup jQuery("#body").undelegate("#nothiddendivchild", "click"); // Verify that .live() ocurs and cancel buble in the same order as // we would expect .bind() and .click() without delegation 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++; }); @@ -1701,19 +1701,19 @@ test(".delegate()/.undelegate()", function() { jQuery('span#liveSpan2 a').click(); equals( lived, 1, "Verify that only one first handler occurred." ); equals( livee, 0, "Verify that second handler doesn't." ); - + // Cleanup jQuery("#body").undelegate("click"); - + // Test this, target and currentTarget are correct - jQuery("#body").delegate('span#liveSpan1', 'click', function(e){ + 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("#body").undelegate('span#liveSpan1', 'click'); // Work with deep selectors @@ -1789,18 +1789,18 @@ test("delegate with change", function(){ expect(8); var selectChange = 0, checkboxChange = 0; - + var select = jQuery("select[name='S1']"); jQuery("#body").delegate("select[name='S1']", "change", function() { selectChange++; }); - - var checkbox = jQuery("#check2"), + + var checkbox = jQuery("#check2"), checkboxFunction = function(){ checkboxChange++; } jQuery("#body").delegate("#check2", "change", checkboxFunction); - + // test click on select // second click that changed it @@ -1808,17 +1808,17 @@ test("delegate with change", function(){ select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 1, "Change on click." ); - + // test keys on select selectChange = 0; select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 1, "Change on keyup." ); - + // test click on checkbox checkbox.trigger("change"); equals( checkboxChange, 1, "Change on checkbox." ); - + // test blur/focus on text var text = jQuery("#name"), textChange = 0, oldTextVal = text.val(); jQuery("#body").delegate("#name", "change", function() { @@ -1831,7 +1831,7 @@ test("delegate with change", function(){ text.val(oldTextVal); jQuery("#body").die("change"); - + // test blur/focus on password var password = jQuery("#name"), passwordChange = 0, oldPasswordVal = password.val(); jQuery("#body").delegate("#name", "change", function() { @@ -1844,9 +1844,9 @@ test("delegate with change", function(){ password.val(oldPasswordVal); jQuery("#body").undelegate("#name", "change"); - + // make sure die works - + // die all changes selectChange = 0; jQuery("#body").undelegate("select[name='S1']", "change"); @@ -1858,7 +1858,7 @@ test("delegate with change", function(){ select[0].selectedIndex = select[0].selectedIndex ? 0 : 1; select.trigger("change"); equals( selectChange, 0, "Die on keyup works." ); - + // die specific checkbox jQuery("#body").undelegate("#check2", "change", checkboxFunction); checkbox.trigger("change"); @@ -1867,7 +1867,7 @@ test("delegate with change", function(){ test("delegate with submit", function() { var count1 = 0, count2 = 0; - + jQuery("#body").delegate("#testForm", "submit", function(ev) { count1++; ev.preventDefault(); @@ -1881,7 +1881,7 @@ test("delegate with submit", function() { jQuery("#testForm input[name=sub1]").submit(); equals( count1, 1, "Verify form submit." ); equals( count2, 1, "Verify body submit." ); - + jQuery("#body").undelegate(); jQuery(document).undelegate(); }); diff --git a/test/unit/offset.js b/test/unit/offset.js index 8797531..cfa1444 100644 --- a/test/unit/offset.js +++ b/test/unit/offset.js @@ -13,9 +13,9 @@ var supportsScroll = false; testoffset("absolute"/* in iframe */, function($, iframe) { expect(4); - + var doc = iframe.document, tests; - + // force a scroll value on the main window // this insures that the results will be wrong // if the offset method is using the scroll offset @@ -28,7 +28,7 @@ testoffset("absolute"/* in iframe */, function($, iframe) { } window.scrollTo(1, 1); - + // get offset tests = [ { id: '#absolute-1', top: 1, left: 1 } @@ -47,16 +47,16 @@ testoffset("absolute"/* in iframe */, function($, iframe) { equals( jQuery( this.id, doc ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); equals( jQuery( this.id, doc ).position().left, this.left, "jQuery('" + this.id + "').position().left" ); }); - + forceScroll.remove(); }); testoffset("absolute", function( jQuery ) { expect(178); - + // get offset tests var tests = [ - { id: '#absolute-1', top: 1, left: 1 }, + { 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 } @@ -65,8 +65,8 @@ testoffset("absolute", function( jQuery ) { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset().left" ); }); - - + + // get position tests = [ { id: '#absolute-1', top: 0, left: 0 }, @@ -78,13 +78,13 @@ testoffset("absolute", function( jQuery ) { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); equals( jQuery( this.id ).position().left, this.left, "jQuery('" + this.id + "').position().left" ); }); - + // test #5781 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 }, @@ -108,9 +108,9 @@ testoffset("absolute", function( jQuery ) { jQuery( this.id ).offset({ top: this.top, left: this.left }); equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" ); - + var top = this.top, left = this.left; - + jQuery( this.id ).offset(function(i, val){ equals( val.top, top, "Verify incoming top position." ); equals( val.left, left, "Verify incoming top position." ); @@ -118,13 +118,13 @@ testoffset("absolute", function( jQuery ) { }); equals( jQuery( this.id ).offset().top, this.top + 1, "jQuery('" + this.id + "').offset({ top: " + (this.top + 1) + " })" ); equals( jQuery( this.id ).offset().left, this.left + 1, "jQuery('" + this.id + "').offset({ left: " + (this.left + 1) + " })" ); - + jQuery( this.id ) .offset({ left: this.left + 2 }) .offset({ top: this.top + 2 }); equals( jQuery( this.id ).offset().top, this.top + 2, "Setting one property at a time." ); equals( jQuery( this.id ).offset().left, this.left + 2, "Setting one property at a time." ); - + jQuery( this.id ).offset({ top: this.top, left: this.left, using: function( props ) { jQuery( this ).css({ top: props.top + 1, @@ -138,10 +138,10 @@ testoffset("absolute", function( jQuery ) { testoffset("relative", function( jQuery ) { expect(60); - + // IE is collapsing the top margin of 1px var ie = jQuery.browser.msie && parseInt( jQuery.browser.version, 10 ) < 8; - + // get offset var tests = [ { id: '#relative-1', top: ie ? 6 : 7, left: 7 }, @@ -152,8 +152,8 @@ testoffset("relative", function( jQuery ) { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset().left" ); }); - - + + // get position tests = [ { id: '#relative-1', top: ie ? 5 : 6, left: 6 }, @@ -164,8 +164,8 @@ testoffset("relative", function( jQuery ) { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.id + "').position().top" ); equals( jQuery( this.id ).position().left, this.left, "jQuery('" + this.id + "').position().left" ); }); - - + + // set offset tests = [ { id: '#relative-2', top: 200, left: 50 }, @@ -185,7 +185,7 @@ testoffset("relative", function( jQuery ) { jQuery( this.id ).offset({ top: this.top, left: this.left }); equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" ); - + jQuery( this.id ).offset({ top: this.top, left: this.left, using: function( props ) { jQuery( this ).css({ top: props.top + 1, @@ -199,10 +199,10 @@ testoffset("relative", function( jQuery ) { testoffset("static", function( jQuery ) { expect(80); - + // IE is collapsing the top margin of 1px var ie = jQuery.browser.msie && parseInt( jQuery.browser.version, 10 ) < 8; - + // get offset var tests = [ { id: '#static-1', top: ie ? 6 : 7, left: 7 }, @@ -214,8 +214,8 @@ testoffset("static", function( jQuery ) { equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset().top" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset().left" ); }); - - + + // get position tests = [ { id: '#static-1', top: ie ? 5 : 6, left: 6 }, @@ -227,8 +227,8 @@ testoffset("static", function( jQuery ) { equals( jQuery( this.id ).position().top, this.top, "jQuery('" + this.top + "').position().top" ); equals( jQuery( this.id ).position().left, this.left, "jQuery('" + this.left +"').position().left" ); }); - - + + // set offset tests = [ { id: '#static-2', top: 200, left: 200 }, @@ -252,7 +252,7 @@ testoffset("static", function( jQuery ) { jQuery( this.id ).offset({ top: this.top, left: this.left }); equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" ); - + jQuery( this.id ).offset({ top: this.top, left: this.left, using: function( props ) { jQuery( this ).css({ top: props.top + 1, @@ -266,9 +266,9 @@ testoffset("static", function( jQuery ) { testoffset("fixed", function( jQuery ) { expect(28); - + jQuery.offset.initialize(); - + var tests = [ { id: '#fixed-1', top: 1001, left: 1001 }, { id: '#fixed-2', top: 1021, left: 1021 } @@ -288,7 +288,7 @@ testoffset("fixed", function( jQuery ) { ok( true, 'Fixed position is not supported' ); } }); - + tests = [ { id: '#fixed-1', top: 100, left: 100 }, { id: '#fixed-1', top: 0, left: 0 }, @@ -297,13 +297,13 @@ testoffset("fixed", function( jQuery ) { { id: '#fixed-2', top: 0, left: 0 }, { id: '#fixed-2', top: -5, left: -5 } ]; - + jQuery.each( tests, function() { if ( jQuery.offset.supportsFixedPosition ) { jQuery( this.id ).offset({ top: this.top, left: this.left }); equals( jQuery( this.id ).offset().top, this.top, "jQuery('" + this.id + "').offset({ top: " + this.top + " })" ); equals( jQuery( this.id ).offset().left, this.left, "jQuery('" + this.id + "').offset({ left: " + this.left + " })" ); - + jQuery( this.id ).offset({ top: this.top, left: this.left, using: function( props ) { jQuery( this ).css({ top: props.top + 1, @@ -324,38 +324,38 @@ testoffset("fixed", function( jQuery ) { 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('#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); - + 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" ); - + // 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" ); - - + + // 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-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()" ); - + win.name = "test"; if ( !supportsScroll ) { @@ -367,11 +367,11 @@ testoffset("scroll", function( jQuery, win ) { } else { equals( jQuery(win).scrollTop(), 1000, "jQuery(window).scrollTop()" ); equals( jQuery(win).scrollLeft(), 1000, "jQuery(window).scrollLeft()" ); - + equals( jQuery(win.document).scrollTop(), 1000, "jQuery(document).scrollTop()" ); equals( jQuery(win.document).scrollLeft(), 1000, "jQuery(document).scrollLeft()" ); } - + // test jQuery using parent window/document // jQuery reference here is in the iframe window.scrollTo(0,0); @@ -383,7 +383,7 @@ testoffset("scroll", function( jQuery, win ) { 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" ); }); @@ -423,11 +423,11 @@ test("offsetParent", function(){ }); function testoffset(name, fn) { - + test(name, function() { // pause execution for now stop(); - + // load fixture in iframe var iframe = loadFixture(), win = iframe.contentWindow, @@ -443,7 +443,7 @@ function testoffset(name, fn) { } }, 15 ); }); - + function loadFixture() { var src = './data/offset/' + name + '.html?' + parseInt( Math.random()*1000, 10 ), iframe = jQuery('