Permalink
Show file tree
Hide file tree
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
integrated offset tests into main test suite. offset tests now use if…
…rames instead of popups
- Loading branch information
1 parent
4edbff9
commit 6504751006e6848369c9bfa5758f06b5ff40ba58
Showing
3 changed files
with
119 additions
and
139 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,173 +1,180 @@ | ||
module("offset"); | ||
|
||
// opens a new window to run the tests against | ||
var testwin = function(name, fn) { | ||
testwin[name] = load_offset_fixture(name); | ||
var interval = setInterval(function() { | ||
if (testwin[name] && testwin[name].$ && testwin[name].jQuery.isReady) { | ||
clearInterval(interval); | ||
test(name, fn); | ||
} | ||
}, 0); | ||
|
||
function load_offset_fixture(name) { | ||
var win = window.open( "./data/offset/" + name + ".html?num"+parseInt(Math.random()*1000), name, 'left=0,top=0,width=500,height=500,toolbar=1,resizable=0' ); | ||
if ( !win ) { | ||
alert("Please disable your popup blocker for the offset test suite"); | ||
throw "Please disable your popup blocker for the offset test suite"; | ||
} | ||
return win; | ||
} | ||
}; | ||
|
||
testwin("absolute", function() { | ||
var $w = testwin["absolute"].$; | ||
|
||
equals( $w('#absolute-1').offset().top, 1, "jQuery('#absolute-1').offset().top" ); | ||
equals( $w('#absolute-1').offset().left, 1, "jQuery('#absolute-1').offset().left" ); | ||
testoffset("absolute", function( jQuery ) { | ||
equals( jQuery('#absolute-1').offset().top, 1, "jQuery('#absolute-1').offset().top" ); | ||
equals( jQuery('#absolute-1').offset().left, 1, "jQuery('#absolute-1').offset().left" ); | ||
|
||
equals( $w('#absolute-1-1').offset().top, 5, "jQuery('#absolute-1-1').offset().top" ); | ||
equals( $w('#absolute-1-1').offset().left, 5, "jQuery('#absolute-1-1').offset().left" ); | ||
equals( jQuery('#absolute-1-1').offset().top, 5, "jQuery('#absolute-1-1').offset().top" ); | ||
equals( jQuery('#absolute-1-1').offset().left, 5, "jQuery('#absolute-1-1').offset().left" ); | ||
|
||
equals( $w('#absolute-1-1-1').offset().top, 9, "jQuery('#absolute-1-1-1').offset().top" ); | ||
equals( $w('#absolute-1-1-1').offset().left, 9, "jQuery('#absolute-1-1-1').offset().left" ); | ||
equals( jQuery('#absolute-1-1-1').offset().top, 9, "jQuery('#absolute-1-1-1').offset().top" ); | ||
equals( jQuery('#absolute-1-1-1').offset().left, 9, "jQuery('#absolute-1-1-1').offset().left" ); | ||
|
||
equals( $w('#absolute-2').offset().top, 20, "jQuery('#absolute-2').offset().top" ); | ||
equals( $w('#absolute-2').offset().left, 20, "jQuery('#absolute-2').offset().left" ); | ||
equals( jQuery('#absolute-2').offset().top, 20, "jQuery('#absolute-2').offset().top" ); | ||
equals( jQuery('#absolute-2').offset().left, 20, "jQuery('#absolute-2').offset().left" ); | ||
|
||
|
||
equals( $w('#absolute-1').position().top, 0, "jQuery('#absolute-1').position().top" ); | ||
equals( $w('#absolute-1').position().left, 0, "jQuery('#absolute-1').position().left" ); | ||
equals( jQuery('#absolute-1').position().top, 0, "jQuery('#absolute-1').position().top" ); | ||
equals( jQuery('#absolute-1').position().left, 0, "jQuery('#absolute-1').position().left" ); | ||
|
||
equals( $w('#absolute-1-1').position().top, 1, "jQuery('#absolute-1-1').position().top" ); | ||
equals( $w('#absolute-1-1').position().left, 1, "jQuery('#absolute-1-1').position().left" ); | ||
equals( jQuery('#absolute-1-1').position().top, 1, "jQuery('#absolute-1-1').position().top" ); | ||
equals( jQuery('#absolute-1-1').position().left, 1, "jQuery('#absolute-1-1').position().left" ); | ||
|
||
equals( $w('#absolute-1-1-1').position().top, 1, "jQuery('#absolute-1-1-1').position().top" ); | ||
equals( $w('#absolute-1-1-1').position().left, 1, "jQuery('#absolute-1-1-1').position().left" ); | ||
equals( jQuery('#absolute-1-1-1').position().top, 1, "jQuery('#absolute-1-1-1').position().top" ); | ||
equals( jQuery('#absolute-1-1-1').position().left, 1, "jQuery('#absolute-1-1-1').position().left" ); | ||
|
||
equals( $w('#absolute-2').position().top, 19, "jQuery('#absolute-2').position().top" ); | ||
equals( $w('#absolute-2').position().left, 19, "jQuery('#absolute-2').position().left" ); | ||
|
||
testwin["absolute"].close(); | ||
equals( jQuery('#absolute-2').position().top, 19, "jQuery('#absolute-2').position().top" ); | ||
equals( jQuery('#absolute-2').position().left, 19, "jQuery('#absolute-2').position().left" ); | ||
}); | ||
|
||
testwin("relative", function() { | ||
var $w = testwin["relative"].$; | ||
testoffset("relative", function( jQuery ) { | ||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8; | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-1').offset().top, jQuery.browser.msie ? 6 : 7, "jQuery('#relative-1').offset().top" ); | ||
equals( $w('#relative-1').offset().left, 7, "jQuery('#relative-1').offset().left" ); | ||
equals( jQuery('#relative-1').offset().top, ie ? 6 : 7, "jQuery('#relative-1').offset().top" ); | ||
equals( jQuery('#relative-1').offset().left, 7, "jQuery('#relative-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-1-1').offset().top, jQuery.browser.msie ? 13 : 15, "jQuery('#relative-1-1').offset().top" ); | ||
equals( $w('#relative-1-1').offset().left, 15, "jQuery('#relative-1-1').offset().left" ); | ||
equals( jQuery('#relative-1-1').offset().top, ie ? 13 : 15, "jQuery('#relative-1-1').offset().top" ); | ||
equals( jQuery('#relative-1-1').offset().left, 15, "jQuery('#relative-1-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-2').offset().top, jQuery.browser.msie ? 141 : 142, "jQuery('#relative-2').offset().top" ); | ||
equals( $w('#relative-2').offset().left, 27, "jQuery('#relative-2').offset().left" ); | ||
equals( jQuery('#relative-2').offset().top, ie ? 141 : 142, "jQuery('#relative-2').offset().top" ); | ||
equals( jQuery('#relative-2').offset().left, 27, "jQuery('#relative-2').offset().left" ); | ||
|
||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-1').position().top, jQuery.browser.msie ? 5 : 6, "jQuery('#relative-1').position().top" ); | ||
equals( $w('#relative-1').position().left, 6, "jQuery('#relative-1').position().left" ); | ||
equals( jQuery('#relative-1').position().top, ie ? 5 : 6, "jQuery('#relative-1').position().top" ); | ||
equals( jQuery('#relative-1').position().left, 6, "jQuery('#relative-1').position().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-1-1').position().top, jQuery.browser.msie ? 4 : 5, "jQuery('#relative-1-1').position().top" ); | ||
equals( $w('#relative-1-1').position().left, 5, "jQuery('#relative-1-1').position().left" ); | ||
equals( jQuery('#relative-1-1').position().top, ie ? 4 : 5, "jQuery('#relative-1-1').position().top" ); | ||
equals( jQuery('#relative-1-1').position().left, 5, "jQuery('#relative-1-1').position().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#relative-2').position().top, jQuery.browser.msie ? 140 : 141, "jQuery('#relative-2').position().top" ); | ||
equals( $w('#relative-2').position().left, 26, "jQuery('#relative-2').position().left" ); | ||
|
||
testwin["relative"].close(); | ||
equals( jQuery('#relative-2').position().top, ie ? 140 : 141, "jQuery('#relative-2').position().top" ); | ||
equals( jQuery('#relative-2').position().left, 26, "jQuery('#relative-2').position().left" ); | ||
}); | ||
|
||
testwin("static", function() { | ||
var $w = testwin["static"].$; | ||
testoffset("static", function( jQuery ) { | ||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8; | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1').offset().top, jQuery.browser.msie ? 6 : 7, "jQuery('#static-1').offset().top" ); | ||
equals( $w('#static-1').offset().left, 7, "jQuery('#static-1').offset().left" ); | ||
equals( jQuery('#static-1').offset().top, ie ? 6 : 7, "jQuery('#static-1').offset().top" ); | ||
equals( jQuery('#static-1').offset().left, 7, "jQuery('#static-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1-1').offset().top, jQuery.browser.msie ? 13 : 15, "jQuery('#static-1-1').offset().top" ); | ||
equals( $w('#static-1-1').offset().left, 15, "jQuery('#static-1-1').offset().left" ); | ||
equals( jQuery('#static-1-1').offset().top, ie ? 13 : 15, "jQuery('#static-1-1').offset().top" ); | ||
equals( jQuery('#static-1-1').offset().left, 15, "jQuery('#static-1-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1-1-1').offset().top, jQuery.browser.msie ? 20 : 23, "jQuery('#static-1-1-1').offset().top" ); | ||
equals( $w('#static-1-1-1').offset().left, 23, "jQuery('#static-1-1-1').offset().left" ); | ||
equals( jQuery('#static-1-1-1').offset().top, ie ? 20 : 23, "jQuery('#static-1-1-1').offset().top" ); | ||
equals( jQuery('#static-1-1-1').offset().left, 23, "jQuery('#static-1-1-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-2').offset().top, jQuery.browser.msie ? 121 : 122, "jQuery('#static-2').offset().top" ); | ||
equals( $w('#static-2').offset().left, 7, "jQuery('#static-2').offset().left" ); | ||
equals( jQuery('#static-2').offset().top, ie ? 121 : 122, "jQuery('#static-2').offset().top" ); | ||
equals( jQuery('#static-2').offset().left, 7, "jQuery('#static-2').offset().left" ); | ||
|
||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1').position().top, jQuery.browser.msie ? 5 : 6, "jQuery('#static-1').position().top" ); | ||
equals( $w('#static-1').position().left, 6, "jQuery('#static-1').position().left" ); | ||
equals( jQuery('#static-1').position().top, ie ? 5 : 6, "jQuery('#static-1').position().top" ); | ||
equals( jQuery('#static-1').position().left, 6, "jQuery('#static-1').position().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1-1').position().top, jQuery.browser.msie ? 12 : 14, "jQuery('#static-1-1').position().top" ); | ||
equals( $w('#static-1-1').position().left, 14, "jQuery('#static-1-1').position().left" ); | ||
equals( jQuery('#static-1-1').position().top, ie ? 12 : 14, "jQuery('#static-1-1').position().top" ); | ||
equals( jQuery('#static-1-1').position().left, 14, "jQuery('#static-1-1').position().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-1-1-1').position().top, jQuery.browser.msie ? 19 : 22, "jQuery('#static-1-1-1').position().top" ); | ||
equals( $w('#static-1-1-1').position().left, 22, "jQuery('#static-1-1-1').position().left" ); | ||
equals( jQuery('#static-1-1-1').position().top, ie ? 19 : 22, "jQuery('#static-1-1-1').position().top" ); | ||
equals( jQuery('#static-1-1-1').position().left, 22, "jQuery('#static-1-1-1').position().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#static-2').position().top, jQuery.browser.msie ? 120 : 121, "jQuery('#static-2').position().top" ); | ||
equals( $w('#static-2').position().left, 6, "jQuery('#static-2').position().left" ); | ||
|
||
testwin["static"].close(); | ||
equals( jQuery('#static-2').position().top, ie ? 120 : 121, "jQuery('#static-2').position().top" ); | ||
equals( jQuery('#static-2').position().left, 6, "jQuery('#static-2').position().left" ); | ||
}); | ||
|
||
if ( !jQuery.browser.msie || (jQuery.browser.msie && parseInt(jQuery.browser.version) > 6) ) | ||
testwin("fixed", function() { | ||
var $w = testwin["fixed"].$; | ||
|
||
equals( $w('#fixed-1').offset().top, 1001, "jQuery('#fixed-1').offset().top" ); | ||
equals( $w('#fixed-1').offset().left, 1001, "jQuery('#fixed-1').offset().left" ); | ||
|
||
equals( $w('#fixed-2').offset().top, 1021, "jQuery('#fixed-2').offset().top" ); | ||
equals( $w('#fixed-2').offset().left, 1021, "jQuery('#fixed-2').offset().left" ); | ||
if ( jQuery.offset.supportsFixedPosition ) { | ||
testoffset("fixed", function( jQuery ) { | ||
equals( jQuery('#fixed-1').offset().top, 1001, "jQuery('#fixed-1').offset().top" ); | ||
equals( jQuery('#fixed-1').offset().left, 1001, "jQuery('#fixed-1').offset().left" ); | ||
|
||
testwin["fixed"].close(); | ||
equals( jQuery('#fixed-2').offset().top, 1021, "jQuery('#fixed-2').offset().top" ); | ||
equals( jQuery('#fixed-2').offset().left, 1021, "jQuery('#fixed-2').offset().left" ); | ||
}); | ||
} | ||
|
||
testwin("table", function() { | ||
var $w = testwin["table"].$; | ||
testoffset("table", function( jQuery ) { | ||
var ie = jQuery.browser.msie; | ||
|
||
equals( jQuery('#table-1').offset().top, 6, "jQuery('#table-1').offset().top" ); | ||
equals( jQuery('#table-1').offset().left, 6, "jQuery('#table-1').offset().left" ); | ||
|
||
equals( jQuery('#th-1').offset().top, 10, "jQuery('#th-1').offset().top" ); | ||
equals( jQuery('#th-1').offset().left, 10, "jQuery('#th-1').offset().left" ); | ||
|
||
equals( $w('#table-1').offset().top, 6, "jQuery('#table-1').offset().top" ); | ||
equals( $w('#table-1').offset().left, 6, "jQuery('#table-1').offset().left" ); | ||
equals( jQuery('#th-2').offset().top, 10, "jQuery('#th-2').offset().top" ); | ||
equals( jQuery('#th-2').offset().left, 116, "jQuery('#th-2').offset().left" ); | ||
|
||
equals( $w('#th-1').offset().top, 10, "jQuery('#table-1').offset().top" ); | ||
equals( $w('#th-1').offset().left, 10, "jQuery('#table-1').offset().left" ); | ||
equals( jQuery('#th-3').offset().top, 10, "jQuery('#th-3').offset().top" ); | ||
equals( jQuery('#th-3').offset().left, 222, "jQuery('#th-3').offset().left" ); | ||
|
||
equals( $w('#th-2').offset().top, 10, "jQuery('#table-1').offset().top" ); | ||
equals( $w('#th-2').offset().left, 116, "jQuery('#table-1').offset().left" ); | ||
equals( jQuery('#td-1').offset().top, ie ? 116 : 112, "jQuery('#td-1').offset().top" ); | ||
equals( jQuery('#td-1').offset().left, 10, "jQuery('#td-1').offset().left" ); | ||
|
||
testwin["table"].close(); | ||
equals( jQuery('#td-2').offset().top, ie ? 116 : 112, "jQuery('#td-2').offset().top" ); | ||
equals( jQuery('#td-2').offset().left, 116, "jQuery('#td-2').offset().left" ); | ||
|
||
equals( jQuery('#td-3').offset().top, ie ? 116 : 112, "jQuery('#td-3').offset().top" ); | ||
equals( jQuery('#td-3').offset().left, 222, "jQuery('#td-3').offset().left" ); | ||
}); | ||
|
||
testwin("scroll", function() { | ||
var $w = testwin["scroll"].$; | ||
testoffset("scroll", function( jQuery ) { | ||
var ie = jQuery.browser.msie && parseInt( jQuery.browser.version ) < 8; | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#scroll-1').offset().top, jQuery.browser.msie ? 6 : 7, "jQuery('#scroll-1').offset().top" ); | ||
equals( $w('#scroll-1').offset().left, 7, "jQuery('#scroll-1').offset().left" ); | ||
equals( jQuery('#scroll-1').offset().top, ie ? 6 : 7, "jQuery('#scroll-1').offset().top" ); | ||
equals( jQuery('#scroll-1').offset().left, 7, "jQuery('#scroll-1').offset().left" ); | ||
|
||
// IE is collapsing the top margin of 1px | ||
equals( $w('#scroll-1-1').offset().top, jQuery.browser.msie ? 9 : 11, "jQuery('#scroll-1-1').offset().top" ); | ||
equals( $w('#scroll-1-1').offset().left, 11, "jQuery('#scroll-1-1').offset().left" ); | ||
|
||
testwin["scroll"].close(); | ||
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" ); | ||
}); | ||
|
||
testwin("body", function() { | ||
var $w = testwin["body"].$; | ||
|
||
equals( $w('body').offset().top, 1, "jQuery('#body').offset().top" ); | ||
equals( $w('body').offset().left, 1, "jQuery('#body').offset().left" ); | ||
testoffset("body", function( jQuery ) { | ||
equals( jQuery('body').offset().top, 1, "jQuery('#body').offset().top" ); | ||
equals( jQuery('body').offset().left, 1, "jQuery('#body').offset().left" ); | ||
}); | ||
|
||
|
||
|
||
function testoffset(name, fn) { | ||
|
||
test(name, function() { | ||
// pause execution for now | ||
stop(); | ||
|
||
// load fixture in iframe | ||
var iframe = loadFixture(), | ||
win = iframe.contentWindow, | ||
interval = setInterval( function() { | ||
if ( win && win.jQuery && win.jQuery.isReady ) { | ||
clearInterval( interval ); | ||
// continue | ||
start(); | ||
// call actual tests passing the correct jQuery isntance to use | ||
fn.call( this, win.jQuery ); | ||
document.body.removeChild( iframe ); | ||
iframe = null; | ||
} | ||
}, 15 ); | ||
}); | ||
|
||
testwin["body"].close(); | ||
}); | ||
function loadFixture() { | ||
var src = './data/offset/' + name + '.html?' + parseInt( Math.random()*1000 ), | ||
iframe = jQuery('<iframe />').css({ | ||
width: 500, height: 500, position: 'absolute', top: -600, left: -600, visiblity: 'hidden' | ||
}).appendTo('body')[0]; | ||
iframe.contentWindow.location = src; | ||
return iframe; | ||
} | ||
} |