mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Tests: Convert closeEnough() to a proper QUnit assertion
Should eventually replace with qunit-assert-close. Ref #10119 Ref gh-1528
This commit is contained in:
parent
7c896ddb85
commit
2e1c72fb59
@ -20,7 +20,6 @@
|
||||
|
||||
"globals": {
|
||||
"asyncTest": false,
|
||||
"closeEnough": false,
|
||||
"deepEqual": false,
|
||||
"define": false,
|
||||
"domEqual": false,
|
||||
|
@ -40,6 +40,12 @@ QUnit.reset = ( function( reset ) {
|
||||
};
|
||||
} )( QUnit.reset );
|
||||
|
||||
// TODO: switch to qunit-assert-close plugin
|
||||
QUnit.assert.close = function( actual, expected, maxDifference, message ) {
|
||||
var passes = ( actual === expected ) || Math.abs( actual - expected ) <= maxDifference;
|
||||
QUnit.push( passes, actual, expected, message );
|
||||
};
|
||||
|
||||
return QUnit;
|
||||
|
||||
} );
|
||||
|
@ -262,83 +262,83 @@ test("height", function() {
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test("maxHeight", function() {
|
||||
test("maxHeight", function( assert ) {
|
||||
expect(3);
|
||||
|
||||
var element = $("<div></div>").dialog({ maxHeight: 200 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-s", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").height(), 200, 1, "maxHeight");
|
||||
assert.close(element.dialog("widget").height(), 200, 1, "maxHeight");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ maxHeight: 200 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-n", -1000, -1000);
|
||||
closeEnough(element.dialog("widget").height(), 200, 1, "maxHeight");
|
||||
assert.close(element.dialog("widget").height(), 200, 1, "maxHeight");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ maxHeight: 200 }).dialog("option", "maxHeight", 300);
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-s", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").height(), 300, 1, "maxHeight");
|
||||
assert.close(element.dialog("widget").height(), 300, 1, "maxHeight");
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test("maxWidth", function() {
|
||||
test("maxWidth", function( assert ) {
|
||||
expect(3);
|
||||
|
||||
var element = $("<div></div>").dialog({ maxWidth: 200 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-e", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").width(), 200, 1, "maxWidth");
|
||||
assert.close(element.dialog("widget").width(), 200, 1, "maxWidth");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ maxWidth: 200 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-w", -1000, -1000);
|
||||
closeEnough(element.dialog("widget").width(), 200, 1, "maxWidth");
|
||||
assert.close(element.dialog("widget").width(), 200, 1, "maxWidth");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ maxWidth: 200 }).dialog("option", "maxWidth", 300);
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-w", -1000, -1000);
|
||||
closeEnough(element.dialog("widget").width(), 300, 1, "maxWidth");
|
||||
assert.close(element.dialog("widget").width(), 300, 1, "maxWidth");
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test("minHeight", function() {
|
||||
test("minHeight", function( assert ) {
|
||||
expect(3);
|
||||
|
||||
var element = $("<div></div>").dialog({ minHeight: 10 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-s", -1000, -1000);
|
||||
closeEnough(element.dialog("widget").height(), 10, 1, "minHeight");
|
||||
assert.close(element.dialog("widget").height(), 10, 1, "minHeight");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ minHeight: 10 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-n", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").height(), 10, 1, "minHeight");
|
||||
assert.close(element.dialog("widget").height(), 10, 1, "minHeight");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ minHeight: 10 }).dialog("option", "minHeight", 30);
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-n", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").height(), 30, 1, "minHeight");
|
||||
assert.close(element.dialog("widget").height(), 30, 1, "minHeight");
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test("minWidth", function() {
|
||||
test("minWidth", function( assert ) {
|
||||
expect(3);
|
||||
|
||||
var element = $("<div></div>").dialog({ minWidth: 10 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-e", -1000, -1000);
|
||||
closeEnough(element.dialog("widget").width(), 10, 1, "minWidth");
|
||||
assert.close(element.dialog("widget").width(), 10, 1, "minWidth");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ minWidth: 10 });
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-w", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").width(), 10, 1, "minWidth");
|
||||
assert.close(element.dialog("widget").width(), 10, 1, "minWidth");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({ minWidth: 30 }).dialog("option", "minWidth", 30);
|
||||
TestHelpers.dialog.drag(element, ".ui-resizable-w", 1000, 1000);
|
||||
closeEnough(element.dialog("widget").width(), 30, 1, "minWidth");
|
||||
assert.close(element.dialog("widget").width(), 30, 1, "minWidth");
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test( "position, default center on window", function() {
|
||||
test( "position, default center on window", function( assert ) {
|
||||
expect( 2 );
|
||||
|
||||
// dialogs alter the window width and height in Firefox
|
||||
@ -349,12 +349,12 @@ test( "position, default center on window", function() {
|
||||
element = $("<div></div>").dialog(),
|
||||
dialog = element.dialog("widget"),
|
||||
offset = dialog.offset();
|
||||
closeEnough( offset.left, Math.round( winWidth / 2 - dialog.outerWidth() / 2 ) + $( window ).scrollLeft(), 1, "dialog left position of center on window on initilization" );
|
||||
closeEnough( offset.top, Math.round( winHeight / 2 - dialog.outerHeight() / 2 ) + $( window ).scrollTop(), 1, "dialog top position of center on window on initilization" );
|
||||
assert.close( offset.left, Math.round( winWidth / 2 - dialog.outerWidth() / 2 ) + $( window ).scrollLeft(), 1, "dialog left position of center on window on initilization" );
|
||||
assert.close( offset.top, Math.round( winHeight / 2 - dialog.outerHeight() / 2 ) + $( window ).scrollTop(), 1, "dialog top position of center on window on initilization" );
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test( "position, right bottom at right bottom via ui.position args", function() {
|
||||
test( "position, right bottom at right bottom via ui.position args", function( assert ) {
|
||||
expect( 2 );
|
||||
|
||||
// dialogs alter the window width and height in Firefox
|
||||
@ -371,12 +371,12 @@ test( "position, right bottom at right bottom via ui.position args", function()
|
||||
dialog = element.dialog("widget"),
|
||||
offset = dialog.offset();
|
||||
|
||||
closeEnough( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "dialog left position of right bottom at right bottom on initilization" );
|
||||
closeEnough( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "dialog top position of right bottom at right bottom on initilization" );
|
||||
assert.close( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "dialog left position of right bottom at right bottom on initilization" );
|
||||
assert.close( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "dialog top position of right bottom at right bottom on initilization" );
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test( "position, at another element", function() {
|
||||
test( "position, at another element", function( assert ) {
|
||||
expect( 4 );
|
||||
var parent = $("<div></div>").css({
|
||||
position: "absolute",
|
||||
@ -398,8 +398,8 @@ test( "position, at another element", function() {
|
||||
dialog = element.dialog("widget"),
|
||||
offset = dialog.offset();
|
||||
|
||||
closeEnough( offset.left, 600, 1, "dialog left position at another element on initilization" );
|
||||
closeEnough( offset.top, 400, 1, "dialog top position at another element on initilization" );
|
||||
assert.close( offset.left, 600, 1, "dialog left position at another element on initilization" );
|
||||
assert.close( offset.top, 400, 1, "dialog top position at another element on initilization" );
|
||||
|
||||
element.dialog("option", "position", {
|
||||
my: "left top",
|
||||
@ -410,8 +410,8 @@ test( "position, at another element", function() {
|
||||
|
||||
offset = dialog.offset();
|
||||
|
||||
closeEnough( offset.left, 610, 1, "dialog left position at another element via setting option" );
|
||||
closeEnough( offset.top, 410, 1, "dialog top position at another element via setting option" );
|
||||
assert.close( offset.left, 610, 1, "dialog left position at another element via setting option" );
|
||||
assert.close( offset.top, 410, 1, "dialog top position at another element via setting option" );
|
||||
|
||||
element.remove();
|
||||
parent.remove();
|
||||
@ -475,17 +475,17 @@ test( "title", function() {
|
||||
element.remove();
|
||||
});
|
||||
|
||||
test("width", function() {
|
||||
test("width", function( assert ) {
|
||||
expect(3);
|
||||
|
||||
var element = $("<div></div>").dialog();
|
||||
closeEnough(element.dialog("widget").width(), 300, 1, "default width");
|
||||
assert.close(element.dialog("widget").width(), 300, 1, "default width");
|
||||
element.remove();
|
||||
|
||||
element = $("<div></div>").dialog({width: 437 });
|
||||
closeEnough(element.dialog("widget").width(), 437, 1, "explicit width");
|
||||
assert.close(element.dialog("widget").width(), 437, 1, "explicit width");
|
||||
element.dialog("option", "width", 438);
|
||||
closeEnough(element.dialog("widget").width(), 438, 1, "explicit width after init");
|
||||
assert.close(element.dialog("widget").width(), 438, 1, "explicit width after init");
|
||||
element.remove();
|
||||
});
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
module( "draggable: core" );
|
||||
|
||||
test( "element types", function() {
|
||||
test( "element types", function( assert ) {
|
||||
var typeNames = (
|
||||
"p,h1,h2,h3,h4,h5,h6,blockquote,ol,ul,dl,div,form" +
|
||||
",table,fieldset,address,ins,del,em,strong,q,cite,dfn,abbr" +
|
||||
@ -35,8 +35,8 @@ test( "element types", function() {
|
||||
|
||||
// Support: FF, Chrome, and IE9,
|
||||
// there are some rounding errors in so we can't say equal, we have to settle for close enough
|
||||
closeEnough( offsetBefore.left, offsetAfter.left - 50, 1, "dragged[50, 50] " + "<" + typeName + ">" );
|
||||
closeEnough( offsetBefore.top, offsetAfter.top - 50, 1, "dragged[50, 50] " + "<" + typeName + ">" );
|
||||
assert.close( offsetBefore.left, offsetAfter.left - 50, 1, "dragged[50, 50] " + "<" + typeName + "> left" );
|
||||
assert.close( offsetBefore.top, offsetAfter.top - 50, 1, "dragged[50, 50] " + "<" + typeName + "> top" );
|
||||
el.draggable("destroy");
|
||||
el.remove();
|
||||
});
|
||||
|
@ -519,7 +519,7 @@ test( "{ containment: 'parent' }, absolute", function() {
|
||||
deepEqual( offsetAfter, expected, "compare offset to parent" );
|
||||
});
|
||||
|
||||
test( "containment, account for border", function() {
|
||||
test( "containment, account for border", function( assert ) {
|
||||
expect( 2 );
|
||||
|
||||
var el = $( "#draggable1" ).appendTo( "#scrollParent" ),
|
||||
@ -544,9 +544,9 @@ test( "containment, account for border", function() {
|
||||
dy: 100
|
||||
});
|
||||
|
||||
closeEnough( el.offset().top, parentBottom - parentBorderBottom - el.height(), 1,
|
||||
assert.close( el.offset().top, parentBottom - parentBorderBottom - el.height(), 1,
|
||||
"The draggable should be on top of its parent's bottom border" );
|
||||
closeEnough( el.offset().left, parentRight - parentBorderRight - el.width(), 1,
|
||||
assert.close( el.offset().left, parentRight - parentBorderRight - el.width(), 1,
|
||||
"The draggable should be to the right of its parent's right border" );
|
||||
});
|
||||
|
||||
@ -1137,7 +1137,7 @@ test( "scroll ignores containers that are overflow: hidden", function() {
|
||||
equal( scrollParent.scrollLeft(), 0, "container doesn't scroll horizontally" );
|
||||
});
|
||||
|
||||
test( "#6817: auto scroll goes double distance when dragging", function() {
|
||||
test( "#6817: auto scroll goes double distance when dragging", function( assert ) {
|
||||
expect( 2 );
|
||||
|
||||
TestHelpers.draggable.restoreScroll( document );
|
||||
@ -1149,8 +1149,8 @@ test( "#6817: auto scroll goes double distance when dragging", function() {
|
||||
scroll: true,
|
||||
stop: function( e, ui ) {
|
||||
equal( ui.offset.top, newY, "offset of item matches pointer position after scroll" );
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
|
||||
closeEnough( ui.offset.top - offsetBefore.top, distance, 1, "offset of item only moves expected distance after scroll" );
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so assert.close can be turned back to equal
|
||||
assert.close( ui.offset.top - offsetBefore.top, distance, 1, "offset of item only moves expected distance after scroll" );
|
||||
}
|
||||
}),
|
||||
scrollSensitivity = element.draggable( "option", "scrollSensitivity" ),
|
||||
@ -1174,7 +1174,7 @@ test( "#6817: auto scroll goes double distance when dragging", function() {
|
||||
TestHelpers.draggable.restoreScroll( document );
|
||||
});
|
||||
|
||||
test( "snap, snapMode, and snapTolerance", function() {
|
||||
test( "snap, snapMode, and snapTolerance", function( assert ) {
|
||||
expect( 10 );
|
||||
|
||||
var newX, newY,
|
||||
@ -1206,9 +1206,9 @@ test( "snap, snapMode, and snapTolerance", function() {
|
||||
moves: 1
|
||||
});
|
||||
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
|
||||
closeEnough( element.offset().left, newX, 1, "doesn't snap outside the snapTolerance" );
|
||||
closeEnough( element.offset().top, newY, 1, "doesn't snap outside the snapTolerance" );
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so assert.close can be turned back to equal
|
||||
assert.close( element.offset().left, newX, 1, "doesn't snap outside the snapTolerance" );
|
||||
assert.close( element.offset().top, newY, 1, "doesn't snap outside the snapTolerance" );
|
||||
|
||||
newX += 3;
|
||||
|
||||
@ -1301,7 +1301,7 @@ test( "snap, snapMode, and snapTolerance", function() {
|
||||
deepEqual( element.offset(), { top: newY, left: newX }, "doesn't snap on the inner snapTolerance area when snapMode is outer" );
|
||||
});
|
||||
|
||||
test( "#8459: element can snap to an element that was removed during drag", function() {
|
||||
test( "#8459: element can snap to an element that was removed during drag", function( assert ) {
|
||||
expect( 2 );
|
||||
|
||||
var newX, newY,
|
||||
@ -1337,9 +1337,9 @@ test( "#8459: element can snap to an element that was removed during drag", func
|
||||
ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
|
||||
ok( true, "Opera <12.14 and Safari <6.0 report wrong values for $.contains in jQuery < 1.8" );
|
||||
} else {
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so closeEnough can be turned back to equal
|
||||
closeEnough( element.offset().left, newX, 1, "doesn't snap to a removed element" );
|
||||
closeEnough( element.offset().top, newY, 1, "doesn't snap to a removed element" );
|
||||
// TODO: fix IE8 testswarm IFRAME positioning bug so assert.close can be turned back to equal
|
||||
assert.close( element.offset().left, newX, 1, "doesn't snap to a removed element" );
|
||||
assert.close( element.offset().top, newY, 1, "doesn't snap to a removed element" );
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -3,11 +3,11 @@ module( "effect.scale: Scale" );
|
||||
|
||||
function run( position, v, h, vo, ho ) {
|
||||
var desc = "End Position Correct: " + position + " (" + v + "," + h + ") - origin: (" + vo + "," + ho + ")";
|
||||
asyncTest( desc, function() {
|
||||
asyncTest( desc, function( assert ) {
|
||||
expect( 2 );
|
||||
function complete() {
|
||||
closeEnough( parseInt( test.css( h ), 10 ), target[ h ], 1, "Horizontal Position Correct " + desc );
|
||||
closeEnough( parseInt( test.css( v ), 10 ), target[ v ], 1, "Vertical Position Correct " + desc );
|
||||
assert.close( parseInt( test.css( h ), 10 ), target[ h ], 1, "Horizontal Position Correct " + desc );
|
||||
assert.close( parseInt( test.css( v ), 10 ), target[ v ], 1, "Vertical Position Correct " + desc );
|
||||
start();
|
||||
}
|
||||
var test = $( ".testScale" ),
|
||||
|
@ -224,8 +224,8 @@ TestHelpers.forceScrollableWindow = function( appendTo ) {
|
||||
}).appendTo( appendTo || "#qunit-fixture" );
|
||||
};
|
||||
|
||||
// Taken from https://github.com/jquery/qunit/tree/master/addons/close-enough
|
||||
window.closeEnough = function( actual, expected, maxDifference, message ) {
|
||||
// TODO: switch to qunit-assert-close plugin
|
||||
QUnit.assert.close = function( actual, expected, maxDifference, message ) {
|
||||
var passes = ( actual === expected ) || Math.abs( actual - expected ) <= maxDifference;
|
||||
QUnit.push( passes, actual, expected, message );
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user