Clean trailing whitespace from all files.

This commit is contained in:
Colin Snover 2010-12-30 00:34:48 -06:00
parent 429b078dc7
commit 3e0cc81504
26 changed files with 688 additions and 688 deletions

View File

@ -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

View File

@ -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/, ''

View File

@ -77,7 +77,7 @@
<arg line="log -1 --pretty=format:%ad" />
</exec>
<replaceregexp match="(\(\s*function\s*\(\s*jQuery\s*\)\s*\{)|(\}\s*\)\s*\(\s*jQuery\s*\)\s*;)" flags="g" replace="" file="${JQ}" />
<replaceregexp match="Date: " replace="Date: ${date}" file="${JQ}" />
<replaceregexp match="@DATE" replace="${date}" file="${JQ}" />
<echo message="${JQ} built." />
</target>

View File

@ -1,5 +1,5 @@
(function( jQuery ) {
var rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/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 ) {}

View File

@ -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

View File

@ -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;
},

View File

@ -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 );

2
src/effects.js vendored
View File

@ -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 );
}

View File

@ -11,7 +11,7 @@
* Copyright 2010, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses.
*
* Date:
* Date: @DATE
*/
(function( window, undefined ) {

View File

@ -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;
}

View File

@ -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 ];

File diff suppressed because it is too large Load Diff

View File

@ -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";

View File

@ -1,12 +1,12 @@
<div id="post">
<?php
<?php
foreach( $_POST as $key=>$value )
echo "<b id='$key'>$value</b>";
?>
?>
</div>
<div id="get">
<?php
foreach( $_GET as $key=>$value )
echo "<b id='$key'>$value</b>";
?>
?>
</div>

View File

@ -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();
});
</script>
</body>
</html>

View File

@ -15,7 +15,7 @@
$suite = file_get_contents('index.html');
echo str_replace( '<!-- Includes -->', $includes, $suite );
exit;
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
@ -43,7 +43,7 @@
<h1 id="header">jQuery Test Suite</h1>
<h2 id="banner" class="fail"></h2>
<h2 id="userAgent">Choose other libraries to include</h2>
<form class="otherlibs" action="" method="post">
<?php
$libs = scandir('otherlibs');

View File

@ -71,9 +71,9 @@ test("jQuery.ajax() - success callbacks - (url, options) syntax", function() {
});
test("jQuery.ajax() - success/error callbacks (remote)", function() {
var supports = jQuery.support.cors;
expect( supports ? 9 : 6 );
jQuery.ajaxSetup({ timeout: 0 });
@ -221,7 +221,7 @@ test("jQuery.ajax() - success callbacks (order)", function() {
jQuery.ajaxSetup({ timeout: 0 });
stop();
var testString = "";
setTimeout(function(){
@ -281,9 +281,9 @@ test("jQuery.ajax() - error callbacks", function() {
test(".ajax() - headers" , function() {
expect( 2 );
stop();
var requestHeaders = {
siMPle: "value",
"SometHing-elsE": "other value",
@ -291,11 +291,11 @@ test(".ajax() - headers" , function() {
},
list = [],
i;
for( i in requestHeaders ) {
list.push( i );
}
jQuery.ajax(url("data/headers.php?keys="+list.join( "_" ) ), {
headers: requestHeaders,
success: function( data , _ , xhr ) {
@ -304,19 +304,19 @@ test(".ajax() - headers" , function() {
tmp.push( i , ": " , requestHeaders[ i ] , "\n" );
}
tmp = tmp.join( "" );
equals( data , tmp , "Headers were sent" );
equals( xhr.getResponseHeader( "Sample-Header" ) , "Hello World" , "Sample header received" );
start();
},
error: function(){ ok(false, "error"); }
});
});
test(".ajax() - hash", function() {
expect(3);
jQuery.ajax({
url: "data/name.html#foo",
beforeSend: function( xhr, settings ) {
@ -324,7 +324,7 @@ test(".ajax() - hash", function() {
return false;
}
});
jQuery.ajax({
url: "data/name.html?abc#foo",
beforeSend: function( xhr, settings ) {
@ -332,7 +332,7 @@ test(".ajax() - hash", function() {
return false;
}
});
jQuery.ajax({
url: "data/name.html?abc#foo",
data: { "test": 123 },
@ -346,7 +346,7 @@ test(".ajax() - hash", function() {
test(".ajax() - 304", function() {
expect( 1 );
stop();
jQuery.ajax({
url: url("data/notmodified.php"),
success: function(){ ok(true, "304 ok"); },
@ -415,7 +415,7 @@ test("jQuery.ajax() - readyState (success)", function() {
jQuery.ajaxSetup({ timeout: 0 });
stop();
var control = "";
setTimeout(function(){
@ -426,7 +426,7 @@ test("jQuery.ajax() - readyState (success)", function() {
control += xhr.readyState;
}
},
complete: function(){
complete: function(){
setTimeout( function() {
equals( control , "1234" , "onreadystatechange was properly called" );
}, 13 );
@ -442,7 +442,7 @@ test("jQuery.ajax() - readyState (abort)", function() {
jQuery.ajaxSetup({ timeout: 0 });
stop();
var control = "";
setTimeout(function(){
@ -456,7 +456,7 @@ test("jQuery.ajax() - readyState (abort)", function() {
control += xhr.readyState;
}
},
complete: function( xhr ){
complete: function( xhr ){
setTimeout( function() {
equals( control , "14" , "onreadystatechange was properly called" );
equals( xhr.readyState, 0 , "readyState is 0" );
@ -473,9 +473,9 @@ test("jQuery.xhr() - reuse", function() {
jQuery.ajaxSetup({ timeout: 0 });
stop();
var number = 0;
setTimeout(function(){
jQuery('#foo').ajaxStart(function(){
ok( true, "ajaxStart" );
@ -499,7 +499,7 @@ test("jQuery.xhr() - reuse", function() {
success: function( _1 , _2 , xhr ){
ok(true, "success (1)");
xhr.complete(function() {
ok(true, "complete (1bis)");
ok(true, "complete (1bis)");
});
xhr.open( "GET", url("data/name.html") );
xhr.success( function(){ ok(true, "beforeSend (2)"); } )
@ -521,7 +521,7 @@ test("jQuery.xhr() - early binding", function() {
jQuery.ajaxSetup({ timeout: 0 });
stop();
jQuery.xhr()
.success( function(){ ok(true, "success"); } )
.error( function(){ ok(false, "error"); } )
@ -531,20 +531,20 @@ test("jQuery.xhr() - early binding", function() {
});
test("jQuery.xhr() - get native implementation", function() {
var xhr = jQuery.xhr(true);
ok( xhr.readyState !== undefined , "implements XMLHttpRequest" );
ok( ! jQuery.isFunction( xhr.success ) , "is not jQuery's abstraction" );
});
test("Ajax events with context", function() {
expect(14);
stop();
var context = document.createElement("div");
function event(e){
equals( this, context, e.type );
}
@ -560,7 +560,7 @@ test("Ajax events with context", function() {
equals( typeof this.url, "string", "context is settings on callback " + msg );
};
}
jQuery('#foo').add(context)
.ajaxSend(event)
.ajaxComplete(event)
@ -721,7 +721,7 @@ test("jQuery.ajax - HEAD requests", function() {
success: function(data, status, xhr){
var h = xhr.getAllResponseHeaders();
ok( /Date/i.test(h), 'No Date in HEAD response' );
jQuery.ajax({
url: url("data/name.html"),
data: { whip_it: "good" },
@ -863,9 +863,9 @@ test("serialize()", function() {
test("jQuery.param()", function() {
expect(22);
equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" );
var params = {foo:"bar", baz:42, quux:"All your base are belong to us"};
equals( jQuery.param(params), "foo=bar&baz=42&quux=All+your+base+are+belong+to+us", "simple" );
@ -880,13 +880,13 @@ test("jQuery.param()", function() {
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?" };
equals( decodeURIComponent( jQuery.param(params) ), "a[]=1&a[]=2&b[c]=3&b[d][]=4&b[d][]=5&b[e][x][]=6&b[e][y]=7&b[e][z][]=8&b[e][z][]=9&b[f]=true&b[g]=false&b[h]=undefined&i[]=10&i[]=11&j=true&k=false&l[]=undefined&l[]=0&m=cowboy+hat?", "huge structure" );
params = { a: [ 0, [ 1, 2 ], [ 3, [ 4, 5 ], [ 6 ] ], { b: [ 7, [ 8, 9 ], [ { c: 10, d: 11 } ], [ [ 12 ] ], [ [ [ 13 ] ] ], { e: { f: { g: [ 14, [ 15 ] ] } } }, 16 ] }, 17 ] };
equals( decodeURIComponent( jQuery.param(params) ), "a[]=0&a[1][]=1&a[1][]=2&a[2][]=3&a[2][1][]=4&a[2][1][]=5&a[2][2][]=6&a[3][b][]=7&a[3][b][1][]=8&a[3][b][1][]=9&a[3][b][2][0][c]=10&a[3][b][2][0][d]=11&a[3][b][3][0][]=12&a[3][b][4][0][0][]=13&a[3][b][5][e][f][g][]=14&a[3][b][5][e][f][g][1][]=15&a[3][b][]=16&a[]=17", "nested 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?" };
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" );
@ -898,7 +898,7 @@ test("jQuery.param()", function() {
equals( jQuery.param({"foo": {"bar": {}} }), "foo%5Bbar%5D=", "Empty object param" );
jQuery.ajaxSetup({ traditional: true });
var params = {foo:"bar", baz:42, quux:"All your base are belong to us"};
equals( jQuery.param(params), "foo=bar&baz=42&quux=All+your+base+are+belong+to+us", "simple" );
@ -913,16 +913,16 @@ test("jQuery.param()", function() {
params = {"foo[bar]":"baz", "foo[beep]":42, "foo[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?" };
equals( jQuery.param(params), "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" );
params = { a: [ 0, [ 1, 2 ], [ 3, [ 4, 5 ], [ 6 ] ], { b: [ 7, [ 8, 9 ], [ { c: 10, d: 11 } ], [ [ 12 ] ], [ [ [ 13 ] ] ], { e: { f: { g: [ 14, [ 15 ] ] } } }, 16 ] }, 17 ] };
equals( jQuery.param(params), "a=0&a=1%2C2&a=3%2C4%2C5%2C6&a=%5Bobject+Object%5D&a=17", "nested arrays (not possible when jQuery.param.traditional == true)" );
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( decodeURIComponent( jQuery.param(params,false) ), "a[]=1&a[]=2&b[c]=3&b[d][]=4&b[d][]=5&b[e][x][]=6&b[e][y]=7&b[e][z][]=8&b[e][z][]=9&b[f]=true&b[g]=false&b[h]=undefined&i[]=10&i[]=11&j=true&k=false&l[]=undefined&l[]=0&m=cowboy+hat?", "huge structure, forced not traditional" );
params = { param1: null };
equals( jQuery.param(params,false), "param1=null", "Make sure that null params aren't traversed." );
});
@ -971,7 +971,7 @@ test("pass-through request object", function() {
test("ajax cache", function () {
expect(18);
stop();
var count = 0;
@ -1384,7 +1384,7 @@ test("jQuery.ajax() - script, Remote with POST", function() {
expect(3);
var base = window.location.href.replace(/[^\/]*$/, "");
stop();
jQuery.ajax({
@ -1525,7 +1525,7 @@ test("jQuery.getJSON(String, Function) - JSON object", function() {
test("jQuery.getJSON - Using Native JSON", function() {
expect(2);
var old = window.JSON;
JSON = {
parse: function(str){
@ -1740,13 +1740,13 @@ test("jQuery.ajax - If-Modified-Since support", function() {
jQuery.ajax({
url: url,
ifModified: true,
success: function(data, status) {
success: function(data, status) {
equals(status, "success");
jQuery.ajax({
url: url,
ifModified: true,
success: function(data, status) {
success: function(data, status) {
if ( data === "FAIL" ) {
ok(true, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
ok(true, "Opera is incapable of doing .setRequestHeader('If-Modified-Since').");
@ -1787,13 +1787,13 @@ test("jQuery.ajax - Etag support", function() {
jQuery.ajax({
url: url,
ifModified: true,
success: function(data, status) {
success: function(data, status) {
equals(status, "success");
jQuery.ajax({
url: url,
ifModified: true,
success: function(data, status) {
success: function(data, status) {
if ( data === "FAIL" ) {
ok(true, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
ok(true, "Opera is incapable of doing .setRequestHeader('If-None-Match').");
@ -1826,38 +1826,38 @@ test("jQuery.ajax - Etag support", function() {
test("jQuery ajax - failing cross-domain", function() {
expect( 2 );
stop();
var i = 2;
jQuery.ajax({
url: 'http://somewebsitethatdoesnotexist.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',
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() {

View File

@ -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("<div />"),
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("<p>Hi</p>"), 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("<p class='class1\nclass2\tcla.ss3\n\rclass4'></p>");
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");

View File

@ -178,24 +178,24 @@ if ( !jQuery.support.opacity ) {
test("css(String, Function)", function() {
expect(3);
var sizes = ["10px", "20px", "30px"];
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
"<div class='cssFunction'></div></div>")
.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("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
"<div class='cssFunction'></div></div>")
.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("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
"<div class='cssFunction'></div></div>")
.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("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
jQuery("<div id='cssFunctionTest'><div class='cssFunction'></div>" +
"<div class='cssFunction'></div>" +
"<div class='cssFunction'></div></div>")
.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();
});

View File

@ -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: "" });

26
test/unit/effects.js vendored
View File

@ -64,7 +64,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>');
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('<div id="show-tests"><span style="position:absolute;">foo</span></div>');
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("<span>").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("<span>").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("<div style='display:none'></div>").appendTo("#main");
equals( div.css("display"), "none", "Element is hidden by default" );
div.hide(1, function () {

View File

@ -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('<img />').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('<div id="par" />').hide().appendTo('body'),
$child = jQuery('<p id="child">foo</p>').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('<button>a</button>').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("<div>&nbsp;</div>").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('<span></span>').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('<span></span>').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();
});

View File

@ -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('<iframe />').css({

View File

@ -3,9 +3,9 @@ module("queue");
test("queue() with other types",function() {
expect(9);
var counter = 0;
var $div = jQuery({});
$div
.queue('foo',function(){
equals( ++counter, 1, "Dequeuing" );
@ -21,26 +21,26 @@ test("queue() with other types",function() {
.queue('foo',function(){
equals( ++counter, 4, "Dequeuing" );
});
equals( $div.queue('foo').length, 4, "Testing queue length" );
$div.dequeue('foo');
equals( counter, 3, "Testing previous call to dequeue" );
equals( $div.queue('foo').length, 1, "Testing queue length" );
$div.dequeue('foo');
equals( counter, 4, "Testing previous call to dequeue" );
equals( $div.queue('foo').length, 0, "Testing queue length" );
});
test("queue(name) passes in the next item in the queue as a parameter", function() {
expect(2);
var div = jQuery({});
var counter = 0;
div.queue("foo", function(next) {
equals(++counter, 1, "Dequeueing");
next();
@ -50,16 +50,16 @@ test("queue(name) passes in the next item in the queue as a parameter", function
}).queue("bar", function() {
equals(++counter, 3, "Other queues are not triggered by next()")
});
div.dequeue("foo");
});
test("queue(name) passes in the next item in the queue as a parameter", function() {
expect(2);
var div = jQuery({});
var counter = 0;
div.queue("foo", function(next) {
equals(++counter, 1, "Dequeueing");
next();
@ -69,17 +69,17 @@ test("queue(name) passes in the next item in the queue as a parameter", function
}).queue("bar", function() {
equals(++counter, 3, "Other queues are not triggered by next()")
});
div.dequeue("foo");
});
test("queue() passes in the next item in the queue as a parameter to fx queues", function() {
expect(2);
stop();
var div = jQuery({});
var counter = 0;
div.queue(function(next) {
equals(++counter, 1, "Dequeueing");
var self = this;
@ -111,10 +111,10 @@ test("delay()", function() {
test("clearQueue(name) clears the queue", function() {
expect(1);
var div = jQuery({});
var counter = 0;
div.queue("foo", function(next) {
counter++;
jQuery(this).clearQueue("foo");
@ -122,18 +122,18 @@ test("clearQueue(name) clears the queue", function() {
}).queue("foo", function(next) {
counter++;
});
div.dequeue("foo");
equals(counter, 1, "the queue was cleared");
});
test("clearQueue() clears the fx queue", function() {
expect(1);
var div = jQuery({});
var counter = 0;
div.queue(function(next) {
counter++;
var self = this;
@ -141,8 +141,8 @@ test("clearQueue() clears the fx queue", function() {
}).queue(function(next) {
counter++;
});
equals(counter, 1, "the queue was cleared");
div.removeData();
});

View File

@ -22,7 +22,7 @@ test("element", function() {
same( jQuery("div").find("p").get(), q("firstp","ap","sndp","en","sap","first"), "Finding elements with a context." );
same( jQuery("#form").find("select").get(), q("select1","select2","select3","select4","select5"), "Finding selects with a context." );
ok( jQuery("#length").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
ok( jQuery("#lengthtest input").length, '&lt;input name="length"&gt; cannot be found under IE, see #945' );
@ -68,7 +68,7 @@ test("broken", function() {
name + ": " + selector );
}
}
broken( "Broken Selector", "[", [] );
broken( "Broken Selector", "(", [] );
broken( "Broken Selector", "{", [] );
@ -90,28 +90,28 @@ test("id", function() {
t( "Multiple ID selectors using UTF8", "#台北Táiběi, #台北", ["台北Táiběi","台北"] );
t( "Descendant ID selector using UTF8", "div #台北", ["台北"] );
t( "Child ID selector using UTF8", "form > #台北", ["台北"] );
t( "Escaped ID", "#foo\\:bar", ["foo:bar"] );
t( "Escaped ID", "#test\\.foo\\[5\\]bar", ["test.foo[5]bar"] );
t( "Descendant escaped ID", "div #foo\\:bar", ["foo:bar"] );
t( "Descendant escaped ID", "div #test\\.foo\\[5\\]bar", ["test.foo[5]bar"] );
t( "Child escaped ID", "form > #foo\\:bar", ["foo:bar"] );
t( "Child escaped ID", "form > #test\\.foo\\[5\\]bar", ["test.foo[5]bar"] );
t( "ID Selector, child ID present", "#form > #radio1", ["radio1"] ); // bug #267
t( "ID Selector, not an ancestor ID", "#form #first", [] );
t( "ID Selector, not a child ID", "#form > #option1a", [] );
t( "All Children of ID", "#foo > *", ["sndp", "en", "sap"] );
t( "All Children of ID with no children", "#firstUL > *", [] );
var a = jQuery('<div><a name="tName1">tName1 A</a><a name="tName2">tName2 A</a><div id="tName1">tName1 Div</div></div>').appendTo('#main');
equals( jQuery("#tName1")[0].id, 'tName1', "ID selector with same value for a name attribute" );
equals( jQuery("#tName2").length, 0, "ID selector non-existing but name attribute on an A tag" );
a.remove();
t( "ID Selector on Form with an input that has a name of 'id'", "#lengthtest", ["lengthtest"] );
t( "ID selector with non-existant ancestor", "#asdfasdf #foobar", [] ); // bug #986
same( jQuery("body").find("div#form").get(), [], "ID selector within the context of another element" );
@ -134,7 +134,7 @@ test("class", function() {
same( jQuery(".blog", "p").get(), q("mark", "simon"), "Finding elements with a context." );
same( jQuery(".blog", jQuery("p")).get(), q("mark", "simon"), "Finding elements with a context." );
same( jQuery("p").find(".blog").get(), q("mark", "simon"), "Finding elements with a context." );
t( "Class selector using UTF8", ".台北Táiběi", ["utf8class1"] );
//t( "Class selector using UTF8", ".台北", ["utf8class1","utf8class2"] );
t( "Class selector using UTF8", ".台北Táiběi.台北", ["utf8class1"] );
@ -194,7 +194,7 @@ test("name", function() {
test("multiple", function() {
expect(4);
t( "Comma Support", "h2, p", ["qunit-banner","qunit-userAgent","firstp","ap","sndp","en","sap","first"]);
t( "Comma Support", "h2 , p", ["qunit-banner","qunit-userAgent","firstp","ap","sndp","en","sap","first"]);
t( "Comma Support", "h2 , p", ["qunit-banner","qunit-userAgent","firstp","ap","sndp","en","sap","first"]);
@ -242,7 +242,7 @@ test("attributes", function() {
t( "Attribute Exists", "*[title]", ["google"] );
t( "Attribute Exists", "[title]", ["google"] );
t( "Attribute Exists", "a[ title ]", ["google"] );
t( "Attribute Equals", "a[rel='bookmark']", ["simon1"] );
t( "Attribute Equals", 'a[rel="bookmark"]', ["simon1"] );
t( "Attribute Equals", "a[rel=bookmark]", ["simon1"] );
@ -263,13 +263,13 @@ test("attributes", function() {
t( "Attribute containing []", "input[name$='[bar]']", ["hidden2"] );
t( "Attribute containing []", "input[name$='foo[bar]']", ["hidden2"] );
t( "Attribute containing []", "input[name*='foo[bar]']", ["hidden2"] );
t( "Multiple Attribute Equals", "#form input[type='radio'], #form input[type='hidden']", ["radio1", "radio2", "hidden1"] );
t( "Multiple Attribute Equals", "#form input[type='radio'], #form input[type=\"hidden\"]", ["radio1", "radio2", "hidden1"] );
t( "Multiple Attribute Equals", "#form input[type='radio'], #form input[type=hidden]", ["radio1", "radio2", "hidden1"] );
t( "Attribute selector using UTF8", "span[lang=中文]", ["台北"] );
t( "Attribute Begins With", "a[href ^= 'http://www']", ["google","yahoo"] );
t( "Attribute Ends With", "a[href $= 'org/']", ["mark"] );
t( "Attribute Contains", "a[href *= 'google']", ["google","groups"] );
@ -288,11 +288,11 @@ test("attributes", function() {
t("Empty values", "#select1 option[value='']", ["option1a"]);
t("Empty values", "#select1 option[value!='']", ["option1b","option1c","option1d"]);
t("Select options via :selected", "#select1 option:selected", ["option1a"] );
t("Select options via :selected", "#select2 option:selected", ["option2d"] );
t("Select options via :selected", "#select3 option:selected", ["option3b", "option3c"] );
t( "Grouped Form Elements", "input[name='foo[bar]']", ["hidden2"] );
});
@ -315,10 +315,10 @@ test("pseudo - child", function() {
t( "First Child", "p:first-child", [] );
QUnit.reset();
t( "Last Child", "p:last-child", ["sap"] );
t( "Last Child", "#main a:last-child", ["simon1","anchor1","mark","yahoo","anchor2","simon","liveLink1","liveLink2"] );
t( "Nth-child", "#main form#form > *:nth-child(2)", ["text1"] );
t( "Nth-child", "#main form#form > :nth-child(2)", ["text1"] );
@ -347,7 +347,7 @@ test("pseudo - misc", function() {
t( "Headers", ":header", ["qunit-header", "qunit-banner", "qunit-userAgent"] );
t( "Has Children - :has()", "p:has(a)", ["firstp","ap","en","sap"] );
var select = document.getElementById("select1");
ok( (window.Sizzle || window.jQuery.find).matchesSelector( select, ":has(option)" ), "Has Option Matches" );
@ -393,7 +393,7 @@ test("pseudo - :not", function() {
t( ":not() Multiple Class", "#foo a:not(.blog.link)", ["yahoo","anchor2"] );
});
test("pseudo - position", function() {
test("pseudo - position", function() {
expect(25);
t( "nth Element", "p:nth(1)", ["ap"] );
t( "First Element", "p:first", ["firstp"] );

View File

@ -138,7 +138,7 @@ test("closest()", function() {
same( jq.closest("html", document.body).get(), [], "Context limited." );
same( jq.closest("body", document.body).get(), [], "Context limited." );
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" );
@ -275,9 +275,9 @@ test("parents([String])", function() {
test("parentsUntil([String])", function() {
expect(9);
var parents = jQuery("#groups").parents();
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" );
@ -307,9 +307,9 @@ test("prev([String])", function() {
test("nextAll([String])", function() {
expect(4);
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" );
@ -318,9 +318,9 @@ test("nextAll([String])", function() {
test("prevAll([String])", function() {
expect(4);
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" );
@ -329,9 +329,9 @@ test("prevAll([String])", function() {
test("nextUntil([String])", function() {
expect(11);
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)" );
same( jQuery("#text1").nextUntil("#area1").get(), elems.get(), "Simple nextUntil check" );
@ -342,15 +342,15 @@ test("nextUntil([String])", function() {
same( jQuery("#text1").nextUntil("#area1", "button,input").get(), elems.get(), "Multiple-filtered nextUntil check" );
equals( jQuery("#text1").nextUntil("#area1", "div").length, 0, "Filtered nextUntil check, no match" );
same( jQuery("#text1, #hidden1").nextUntil("#area1", "button,input").get(), elems.get(), "Multi-source, multiple-filtered nextUntil check" );
same( jQuery("#text1").nextUntil("[class=foo]").get(), jQuery("#text1").nextAll().get(), "Non-element nodes must be skipped, since they have no attributes" );
});
test("prevUntil([String])", function() {
expect(10);
var elems = jQuery("#area1").prevAll();
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" );