diff options
author | Felix Nagel <info@felixnagel.com> | 2013-02-09 03:29:10 +0100 |
---|---|---|
committer | Felix Nagel <info@felixnagel.com> | 2013-02-09 03:29:10 +0100 |
commit | a7b4f29cea06607264c2ba98cd93f4e039cce5bd (patch) | |
tree | 1ac9e210ce8fd16a85cb1d3283983475b27437ed /tests/unit | |
parent | b81bb0b983687b1efc09577bf128b8a5b7aa5d7b (diff) | |
parent | ab408c9b82430e7a65a9269441cc0c0e2af95770 (diff) | |
download | jquery-ui-a7b4f29cea06607264c2ba98cd93f4e039cce5bd.tar.gz jquery-ui-a7b4f29cea06607264c2ba98cd93f4e039cce5bd.zip |
Merge branch 'master' into selectmenu
Diffstat (limited to 'tests/unit')
38 files changed, 961 insertions, 696 deletions
diff --git a/tests/unit/accordion/all.html b/tests/unit/accordion/all.html index f33346cae..0fe5bf10f 100644 --- a/tests/unit/accordion/all.html +++ b/tests/unit/accordion/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Accordion Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/all.html b/tests/unit/all.html index 22f8458af..ba96feef2 100644 --- a/tests/unit/all.html +++ b/tests/unit/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Test Suite</title> - <script src="../../jquery-1.9.0.js"></script> + <script src="../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../external/qunit.css"> <link rel="stylesheet" href="qunit-composite.css"> diff --git a/tests/unit/autocomplete/all.html b/tests/unit/autocomplete/all.html index 300fd80e4..3049902f8 100644 --- a/tests/unit/autocomplete/all.html +++ b/tests/unit/autocomplete/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Autocomplete Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/button/all.html b/tests/unit/button/all.html index 3ecac0a88..f5c512e20 100644 --- a/tests/unit/button/all.html +++ b/tests/unit/button/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Button Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/core/all.html b/tests/unit/core/all.html index 7322087a6..2e2d8639b 100644 --- a/tests/unit/core/all.html +++ b/tests/unit/core/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Core Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/datepicker/all.html b/tests/unit/datepicker/all.html index a07a5d36c..c6854ef9c 100644 --- a/tests/unit/datepicker/all.html +++ b/tests/unit/datepicker/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Datepicker Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js index dac2262dc..1efd854a9 100644 --- a/tests/unit/datepicker/datepicker_options.js +++ b/tests/unit/datepicker/datepicker_options.js @@ -782,6 +782,21 @@ test("callbacks", function() { inp.datepicker("hide").datepicker("destroy"); }); +test("beforeShowDay - tooltips with quotes", function() { + expect( 1 ); + var inp, dp; + inp = TestHelpers.datepicker.init("#inp", { + beforeShowDay: function() { + return [ true, "", "'" ]; + } + }); + dp = $("#ui-datepicker-div"); + + inp.datepicker("show"); + equal( dp.find( ".ui-datepicker-calendar td:contains('9')").attr( "title" ), "'" ); + inp.datepicker("hide").datepicker("destroy"); +}); + test("localisation", function() { expect( 24 ); var dp, month, day, date, diff --git a/tests/unit/dialog/all.html b/tests/unit/dialog/all.html index 59f4cb2d8..4bbf7abfd 100644 --- a/tests/unit/dialog/all.html +++ b/tests/unit/dialog/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Dialog Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/dialog/dialog.html b/tests/unit/dialog/dialog.html index 57017b1b9..7943b425b 100644 --- a/tests/unit/dialog/dialog.html +++ b/tests/unit/dialog/dialog.html @@ -24,7 +24,9 @@ "ui/jquery.ui.resizable.js", "ui/jquery.ui.button.js", "ui/jquery.ui.effect.js", + "ui/jquery.ui.effect-blind.js", "ui/jquery.ui.effect-clip.js", + "ui/jquery.ui.effect-explode.js", "ui/jquery.ui.dialog.js" ] }); diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js index b488bd112..e85759dc9 100644 --- a/tests/unit/dialog/dialog_core.js +++ b/tests/unit/dialog/dialog_core.js @@ -10,26 +10,26 @@ test("title id", function() { expect(1); var titleId, - el = $("<div></div>").dialog(); + element = $("<div></div>").dialog(); - titleId = el.dialog("widget").find(".ui-dialog-title").attr("id"); + titleId = element.dialog("widget").find(".ui-dialog-title").attr("id"); ok( /ui-id-\d+$/.test( titleId ), "auto-numbered title id"); - el.remove(); + element.remove(); }); test( "ARIA", function() { expect( 4 ); - var el = $( "<div></div>" ).dialog(), - wrapper = el.dialog( "widget" ); + var element = $( "<div></div>" ).dialog(), + wrapper = element.dialog( "widget" ); equal( wrapper.attr( "role" ), "dialog", "dialog role" ); equal( wrapper.attr( "aria-labelledby" ), wrapper.find( ".ui-dialog-title" ).attr( "id" ) ); - equal( wrapper.attr( "aria-describedby" ), el.attr( "id" ), "aria-describedby added" ); - el.remove(); + equal( wrapper.attr( "aria-describedby" ), element.attr( "id" ), "aria-describedby added" ); + element.remove(); - el = $("<div><div aria-describedby='section2'><p id='section2'>descriotion</p></div></div>").dialog(); - strictEqual( el.dialog( "widget" ).attr( "aria-describedby" ), undefined, "no aria-describedby added, as already present in markup" ); - el.remove(); + element = $("<div><div aria-describedby='section2'><p id='section2'>descriotion</p></div></div>").dialog(); + strictEqual( element.dialog( "widget" ).attr( "aria-describedby" ), undefined, "no aria-describedby added, as already present in markup" ); + element.remove(); }); test("widget method", function() { @@ -41,7 +41,7 @@ test("widget method", function() { asyncTest( "focus tabbable", function() { expect( 5 ); - var el, + var element, options = { buttons: [{ text: "Ok", @@ -50,24 +50,24 @@ asyncTest( "focus tabbable", function() { }; function checkFocus( markup, options, testFn, next ) { - el = $( markup ).dialog( options ); + element = $( markup ).dialog( options ); setTimeout(function() { testFn(); - el.remove(); + element.remove(); setTimeout( next ); }); } function step1() { checkFocus( "<div><input><input autofocus></div>", options, function() { - equal( document.activeElement, el.find( "input" )[ 1 ], + equal( document.activeElement, element.find( "input" )[ 1 ], "1. first element inside the dialog matching [autofocus]" ); }, step2 ); } function step2() { checkFocus( "<div><input><input></div>", options, function() { - equal( document.activeElement, el.find( "input" )[ 0 ], + equal( document.activeElement, element.find( "input" )[ 0 ], "2. tabbable element inside the content element" ); }, step3 ); } @@ -75,7 +75,7 @@ asyncTest( "focus tabbable", function() { function step3() { checkFocus( "<div>text</div>", options, function() { equal( document.activeElement, - el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" )[ 0 ], + element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" )[ 0 ], "3. tabbable element inside the buttonpane" ); }, step4 ); } @@ -83,20 +83,20 @@ asyncTest( "focus tabbable", function() { function step4() { checkFocus( "<div>text</div>", {}, function() { equal( document.activeElement, - el.dialog( "widget" ).find( ".ui-dialog-titlebar .ui-dialog-titlebar-close" )[ 0 ], + element.dialog( "widget" ).find( ".ui-dialog-titlebar .ui-dialog-titlebar-close" )[ 0 ], "4. the close button" ); }, step5 ); } function step5() { - el = $( "<div>text</div>" ).dialog({ + element = $( "<div>text</div>" ).dialog({ autoOpen: false }); - el.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).hide(); - el.dialog( "open" ); + element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).hide(); + element.dialog( "open" ); setTimeout(function() { - equal( document.activeElement, el.parent()[ 0 ], "5. the dialog itself" ); - el.remove(); + equal( document.activeElement, element.parent()[ 0 ], "5. the dialog itself" ); + element.remove(); start(); }); } @@ -119,9 +119,9 @@ test( "#7960: resizable handles below modal overlays", function() { asyncTest( "Prevent tabbing out of dialogs", function() { expect( 3 ); - var el = $( "<div><input><input></div>" ).dialog(), - inputs = el.find( "input" ), - widget = el.dialog( "widget" )[ 0 ]; + var element = $( "<div><input><input></div>" ).dialog(), + inputs = element.find( "input" ), + widget = element.dialog( "widget" )[ 0 ]; function checkTab() { ok( $.contains( widget, document.activeElement ), "Tab key event moved focus within the modal" ); @@ -134,7 +134,7 @@ asyncTest( "Prevent tabbing out of dialogs", function() { function checkShiftTab() { ok( $.contains( widget, document.activeElement ), "Shift-Tab key event moved focus within the modal" ); - el.remove(); + element.remove(); setTimeout( start ); } @@ -147,4 +147,17 @@ asyncTest( "Prevent tabbing out of dialogs", function() { }); }); +asyncTest( "#9048: multiple modal dialogs opened and closed in different order", function() { + expect( 1 ); + $( "#dialog1, #dialog2" ).dialog({ autoOpen: false, modal:true }); + $( "#dialog1" ).dialog( "open" ); + $( "#dialog2" ).dialog( "open" ); + $( "#dialog1" ).dialog( "close" ); + setTimeout(function() { + $( "#dialog2" ).dialog( "close" ); + $( "#favorite-animal" ).focus(); + ok( true, "event handlers cleaned up (no errors thrown)" ); + start(); + }); +}); })(jQuery); diff --git a/tests/unit/dialog/dialog_deprecated.html b/tests/unit/dialog/dialog_deprecated.html index 063769c62..1f8bac689 100644 --- a/tests/unit/dialog/dialog_deprecated.html +++ b/tests/unit/dialog/dialog_deprecated.html @@ -20,6 +20,10 @@ "ui/jquery.ui.draggable.js", "ui/jquery.ui.resizable.js", "ui/jquery.ui.button.js", + "ui/jquery.ui.effect.js", + "ui/jquery.ui.effect-blind.js", + "ui/jquery.ui.effect-clip.js", + "ui/jquery.ui.effect-explode.js", "ui/jquery.ui.dialog.js" ] }); diff --git a/tests/unit/dialog/dialog_deprecated.js b/tests/unit/dialog/dialog_deprecated.js index 57f360544..ff6284ea5 100644 --- a/tests/unit/dialog/dialog_deprecated.js +++ b/tests/unit/dialog/dialog_deprecated.js @@ -8,12 +8,12 @@ test( "position, right bottom on window w/array", function() { // Support: FF, IE7 var winWidth = $( window ).width(), winHeight = $( window ).height(), - el = $("<div></div>").dialog({ position: [ "right", "bottom" ] }), - dialog = el.dialog("widget"), + element = $("<div></div>").dialog({ position: [ "right", "bottom" ] }), + dialog = element.dialog("widget"), offset = dialog.offset(); closeEnough( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "offset left of right bottom on window w/array" ); closeEnough( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "offset top of right bottom on window w/array" ); - el.remove(); + element.remove(); }); test( "position, right bottom on window", function() { @@ -24,40 +24,40 @@ test( "position, right bottom on window", function() { // Support: FF, IE7 var winWidth = $( window ).width(), winHeight = $( window ).height(), - el = $("<div></div>").dialog({ position: "right bottom" }), - dialog = el.dialog("widget"), + element = $("<div></div>").dialog({ position: "right bottom" }), + dialog = element.dialog("widget"), offset = dialog.offset(); closeEnough( offset.left, winWidth - dialog.outerWidth() + $( window ).scrollLeft(), 1, "offset left of right bottom on window" ); closeEnough( offset.top, winHeight - dialog.outerHeight() + $( window ).scrollTop(), 1, "offset top of right bottom on window" ); - el.remove(); + element.remove(); }); test("position, offset from top left w/array", function() { expect( 2 ); - var el = $("<div></div>").dialog({ position: [10, 10] }), - dialog = el.dialog("widget"), + var element = $("<div></div>").dialog({ position: [10, 10] }), + dialog = element.dialog("widget"), offset = dialog.offset(); closeEnough(offset.left, 10 + $(window).scrollLeft(), 1); closeEnough(offset.top, 10 + $(window).scrollTop(), 1); - el.remove(); + element.remove(); }); test("position, top on window", function() { expect( 2 ); - var el = $("<div></div>").dialog({ position: "top" }), - dialog = el.dialog("widget"), + var element = $("<div></div>").dialog({ position: "top" }), + dialog = element.dialog("widget"), offset = dialog.offset(); closeEnough(offset.left, Math.round($(window).width() / 2 - dialog.outerWidth() / 2) + $(window).scrollLeft(), 1); closeEnough(offset.top, $(window).scrollTop(), 1); - el.remove(); + element.remove(); }); test("position, left on window", function() { expect( 2 ); - var el = $("<div></div>").dialog({ position: "left" }), - dialog = el.dialog("widget"), + var element = $("<div></div>").dialog({ position: "left" }), + dialog = element.dialog("widget"), offset = dialog.offset(); closeEnough(offset.left, 0, 1); closeEnough(offset.top, Math.round($(window).height() / 2 - dialog.outerHeight() / 2) + $(window).scrollTop(), 1); - el.remove(); + element.remove(); }); diff --git a/tests/unit/dialog/dialog_events.js b/tests/unit/dialog/dialog_events.js index 254158ef4..7bcd5673e 100644 --- a/tests/unit/dialog/dialog_events.js +++ b/tests/unit/dialog/dialog_events.js @@ -8,115 +8,115 @@ module("dialog: events"); test("open", function() { expect(13); - var el = $("<div></div>"); - el.dialog({ + var element = $("<div></div>"); + element.dialog({ open: function(ev, ui) { - ok(el.data("ui-dialog")._isOpen, "interal _isOpen flag is set"); + ok(element.data("ui-dialog")._isOpen, "interal _isOpen flag is set"); ok(true, "autoOpen: true fires open callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogopen", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); } }); - el.remove(); + element.remove(); - el = $("<div></div>"); - el.dialog({ + element = $("<div></div>"); + element.dialog({ autoOpen: false, open: function(ev, ui) { ok(true, ".dialog('open') fires open callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogopen", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); } }).bind("dialogopen", function(ev, ui) { - ok(el.data("ui-dialog")._isOpen, "interal _isOpen flag is set"); + ok(element.data("ui-dialog")._isOpen, "interal _isOpen flag is set"); ok(true, "dialog('open') fires open event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); deepEqual(ui, {}, "ui hash in event"); }); - el.dialog("open"); - el.remove(); + element.dialog("open"); + element.remove(); }); test( "focus", function() { expect( 5 ); - var el, other; - el = $("#dialog1").dialog({ + var element, other; + element = $("#dialog1").dialog({ autoOpen: false }); other = $("#dialog2").dialog({ autoOpen: false }); - el.one( "dialogopen", function() { + element.one( "dialogopen", function() { ok( true, "open, just once" ); }); - el.one( "dialogfocus", function() { + element.one( "dialogfocus", function() { ok( true, "focus on open" ); }); other.dialog( "open" ); - el.one( "dialogfocus", function() { + element.one( "dialogfocus", function() { ok( true, "when opening and already open and wasn't on top" ); }); other.dialog( "open" ); - el.dialog( "open" ); + element.dialog( "open" ); - el.one( "dialogfocus", function() { + element.one( "dialogfocus", function() { ok( true, "when calling moveToTop and wasn't on top" ); }); other.dialog( "moveToTop" ); - el.dialog( "moveToTop" ); + element.dialog( "moveToTop" ); - el.bind( "dialogfocus", function() { + element.bind( "dialogfocus", function() { ok( true, "when mousedown anywhere on the dialog and it wasn't on top" ); }); other.dialog( "moveToTop" ); - el.trigger( "mousedown" ); + element.trigger( "mousedown" ); // triggers just once when already on top - el.dialog( "open" ); - el.dialog( "moveToTop" ); - el.trigger( "mousedown" ); + element.dialog( "open" ); + element.dialog( "moveToTop" ); + element.trigger( "mousedown" ); - el.add( other ).remove(); + element.add( other ).remove(); }); test("dragStart", function() { expect(9); var handle, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ dragStart: function(ev, ui) { ok(true, "dragging fires dragStart callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogdragstart", "event type in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); } }).bind("dialogdragstart", function(ev, ui) { ok(true, "dragging fires dialogdragstart event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); }); - handle = $(".ui-dialog-titlebar", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-dialog-titlebar", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); test("drag", function() { expect(9); var handle, hasDragged = false, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ drag: function(ev, ui) { if (!hasDragged) { ok(true, "dragging fires drag callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogdrag", "event type in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); @@ -126,48 +126,48 @@ test("drag", function() { } }).one("dialogdrag", function(ev, ui) { ok(true, "dragging fires dialogdrag event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); }); - handle = $(".ui-dialog-titlebar", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-dialog-titlebar", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); test("dragStop", function() { expect(9); var handle, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ dragStop: function(ev, ui) { ok(true, "dragging fires dragStop callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogdragstop", "event type in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); } }).bind("dialogdragstop", function(ev, ui) { ok(true, "dragging fires dialogdragstop event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.offset !== undefined, "ui.offset in callback"); }); - handle = $(".ui-dialog-titlebar", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-dialog-titlebar", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); test("resizeStart", function() { expect(13); var handle, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ resizeStart: function(ev, ui) { ok(true, "resizing fires resizeStart callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogresizestart", "event type in callback"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); @@ -176,27 +176,27 @@ test("resizeStart", function() { } }).bind("dialogresizestart", function(ev, ui) { ok(true, "resizing fires dialogresizestart event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.size !== undefined, "ui.size in callback"); }); - handle = $(".ui-resizable-se", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-resizable-se", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); test("resize", function() { expect(13); var handle, hasResized = false, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ resize: function(ev, ui) { if (!hasResized) { ok(true, "resizing fires resize callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogresize", "event type in callback"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); @@ -208,26 +208,26 @@ test("resize", function() { } }).one("dialogresize", function(ev, ui) { ok(true, "resizing fires dialogresize event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.size !== undefined, "ui.size in callback"); }); - handle = $(".ui-resizable-se", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-resizable-se", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); test("resizeStop", function() { expect(13); var handle, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ resizeStop: function(ev, ui) { ok(true, "resizing fires resizeStop callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogresizestop", "event type in callback"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); @@ -236,107 +236,107 @@ test("resizeStop", function() { } }).bind("dialogresizestop", function(ev, ui) { ok(true, "resizing fires dialogresizestop event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); ok(ui.originalPosition !== undefined, "ui.originalPosition in callback"); ok(ui.originalSize !== undefined, "ui.originalSize in callback"); ok(ui.position !== undefined, "ui.position in callback"); ok(ui.size !== undefined, "ui.size in callback"); }); - handle = $(".ui-resizable-se", el.dialog("widget")); - TestHelpers.dialog.drag(el, handle, 50, 50); - el.remove(); + handle = $(".ui-resizable-se", element.dialog("widget")); + TestHelpers.dialog.drag(element, handle, 50, 50); + element.remove(); }); asyncTest("close", function() { expect(14); - var el = $("<div></div>").dialog({ + var element = $("<div></div>").dialog({ close: function(ev, ui) { ok(true, ".dialog('close') fires close callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogclose", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); } }).bind("dialogclose", function(ev, ui) { ok(true, ".dialog('close') fires dialogclose event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); deepEqual(ui, {}, "ui hash in event"); }); - el.dialog("close"); - el.remove(); + element.dialog("close"); + element.remove(); // Close event with an effect - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ hide: 10, close: function(ev, ui) { ok(true, ".dialog('close') fires close callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogclose", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); start(); } }).bind("dialogclose", function(ev, ui) { ok(true, ".dialog('close') fires dialogclose event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); deepEqual(ui, {}, "ui hash in event"); }); - el.dialog("close"); + element.dialog("close"); }); test("beforeClose", function() { expect(14); - var el = $("<div></div>").dialog({ + var element = $("<div></div>").dialog({ beforeClose: function(ev, ui) { ok(true, ".dialog('close') fires beforeClose callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogbeforeclose", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); return false; } }); - el.dialog("close"); - ok( el.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing"); - el.remove(); + element.dialog("close"); + ok( element.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing"); + element.remove(); - el = $("<div></div>").dialog(); - el.dialog("option", "beforeClose", function(ev, ui) { + element = $("<div></div>").dialog(); + element.dialog("option", "beforeClose", function(ev, ui) { ok(true, ".dialog('close') fires beforeClose callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.type, "dialogbeforeclose", "event type in callback"); deepEqual(ui, {}, "ui hash in callback"); return false; }); - el.dialog("close"); + element.dialog("close"); - ok( el.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing"); - el.remove(); + ok( element.dialog("widget").is(":visible"), "beforeClose callback should prevent dialog from closing"); + element.remove(); - el = $("<div></div>").dialog().bind("dialogbeforeclose", function(ev, ui) { + element = $("<div></div>").dialog().bind("dialogbeforeclose", function(ev, ui) { ok(true, ".dialog('close') triggers dialogbeforeclose event"); - equal(this, el[0], "context of event"); + equal(this, element[0], "context of event"); deepEqual(ui, {}, "ui hash in event"); return false; }); - el.dialog("close"); - ok( el.dialog("widget").is(":visible"), "dialogbeforeclose event should prevent dialog from closing"); - el.remove(); + element.dialog("close"); + ok( element.dialog("widget").is(":visible"), "dialogbeforeclose event should prevent dialog from closing"); + element.remove(); }); // #8789 and #8838 asyncTest("ensure dialog's container doesn't scroll on resize and focus", function() { expect(2); - var el = $("#dialog1").dialog(), + var element = $("#dialog1").dialog(), initialScroll = $(window).scrollTop(); - el.dialog("option", "height", 600); + element.dialog("option", "height", 600); equal($(window).scrollTop(), initialScroll, "scroll hasn't moved after height change"); setTimeout( function(){ $(".ui-dialog-titlebar-close").simulate("mousedown"); equal($(window).scrollTop(), initialScroll, "scroll hasn't moved after focus moved to dialog"); - el.dialog("destroy"); + element.dialog("destroy"); start(); }, 500); }); @@ -344,15 +344,27 @@ asyncTest("ensure dialog's container doesn't scroll on resize and focus", functi test("#5184: isOpen in dialogclose event is true", function() { expect( 3 ); - var el = $( "<div></div>" ).dialog({ + var element = $( "<div></div>" ).dialog({ close: function() { - ok( !el.dialog("isOpen"), "dialog is not open during close" ); + ok( !element.dialog("isOpen"), "dialog is not open during close" ); } }); - ok( el.dialog("isOpen"), "dialog is open after init" ); - el.dialog( "close" ); - ok( !el.dialog("isOpen"), "dialog is not open after close" ); - el.remove(); + ok( element.dialog("isOpen"), "dialog is open after init" ); + element.dialog( "close" ); + ok( !element.dialog("isOpen"), "dialog is not open after close" ); + element.remove(); +}); + +test("ensure dialog keeps focus when clicking modal overlay", function() { + expect( 2 ); + + var element = $( "<div></div>" ).dialog({ + modal: true + }); + ok( $(":focus").closest(".ui-dialog").length, "focus is in dialog" ); + $(".ui-widget-overlay").simulate("mousedown"); + ok( $(":focus").closest(".ui-dialog").length, "focus is still in dialog" ); + element.remove(); }); })(jQuery); diff --git a/tests/unit/dialog/dialog_methods.js b/tests/unit/dialog/dialog_methods.js index efca71fd8..6de185513 100644 --- a/tests/unit/dialog/dialog_methods.js +++ b/tests/unit/dialog/dialog_methods.js @@ -24,9 +24,9 @@ test("init", function() { $("<div></div>").appendTo("body").remove().dialog().remove(); ok(true, ".dialog() called on disconnected DOMElement - removed"); - var el = $("<div></div>").dialog(); - el.dialog("option", "foo"); - el.remove(); + var element = $("<div></div>").dialog(); + element.dialog("option", "foo"); + element.remove(); ok(true, "arbitrary option getter after init"); $("<div></div>").dialog().dialog("option", "foo", "bar").remove(); @@ -36,7 +36,7 @@ test("init", function() { test("destroy", function() { expect( 17 ); - var el, el2; + var element, element2; $( "#dialog1, #form-dialog" ).hide(); domEqual( "#dialog1", function() { @@ -65,17 +65,17 @@ test("destroy", function() { equal( $( ".ui-widget-overlay" ).length, 0, "overlay does not exist" ); equal( $.ui.dialog.overlayInstances, 0, "overlayInstances equals the number of open overlays"); - el = $( "#dialog1" ).dialog({ modal: true }), - el2 = $( "#dialog2" ).dialog({ modal: true }); + element = $( "#dialog1" ).dialog({ modal: true }), + element2 = $( "#dialog2" ).dialog({ modal: true }); equal( $( ".ui-widget-overlay" ).length, 2, "overlays created when dialogs are open" ); equal( $.ui.dialog.overlayInstances, 2, "overlayInstances equals the number of open overlays" ); - el.dialog( "close" ); + element.dialog( "close" ); equal( $( ".ui-widget-overlay" ).length, 1, "overlay remains after closing one dialog" ); equal( $.ui.dialog.overlayInstances, 1, "overlayInstances equals the number of open overlays" ); - el.dialog( "destroy" ); + element.dialog( "destroy" ); equal( $( ".ui-widget-overlay" ).length, 1, "overlay remains after destroying one dialog" ); equal( $.ui.dialog.overlayInstances, 1, "overlayInstances equals the number of open overlays" ); - el2.dialog( "destroy" ); + element2.dialog( "destroy" ); equal( $( ".ui-widget-overlay" ).length, 0, "overlays removed when all dialogs are destoryed" ); equal( $.ui.dialog.overlayInstances, 0, "overlayInstances equals the number of open overlays" ); }); @@ -102,40 +102,40 @@ test("#4980: Destroy should place element back in original DOM position", functi test( "enable/disable disabled", function() { expect( 2 ); - var el = $( "<div></div>" ).dialog(); - el.dialog( "disable" ); - equal(el.dialog( "option", "disabled" ), false, "disable method doesn't do anything" ); - ok( !el.dialog( "widget" ).hasClass( "ui-dialog-disabled" ), "disable method doesn't add ui-dialog-disabled class" ); + var element = $( "<div></div>" ).dialog(); + element.dialog( "disable" ); + equal(element.dialog( "option", "disabled" ), false, "disable method doesn't do anything" ); + ok( !element.dialog( "widget" ).hasClass( "ui-dialog-disabled" ), "disable method doesn't add ui-dialog-disabled class" ); }); test("close", function() { expect( 3 ); - var el, + var element, expected = $("<div></div>").dialog(), actual = expected.dialog("close"); equal(actual, expected, "close is chainable"); - el = $("<div></div>").dialog(); - ok(el.dialog("widget").is(":visible") && !el.dialog("widget").is(":hidden"), "dialog visible before close method called"); - el.dialog("close"); - ok(el.dialog("widget").is(":hidden") && !el.dialog("widget").is(":visible"), "dialog hidden after close method called"); + element = $("<div></div>").dialog(); + ok(element.dialog("widget").is(":visible") && !element.dialog("widget").is(":hidden"), "dialog visible before close method called"); + element.dialog("close"); + ok(element.dialog("widget").is(":hidden") && !element.dialog("widget").is(":visible"), "dialog hidden after close method called"); }); test("isOpen", function() { expect(4); - var el = $("<div></div>").dialog(); - equal(el.dialog("isOpen"), true, "dialog is open after init"); - el.dialog("close"); - equal(el.dialog("isOpen"), false, "dialog is closed"); - el.remove(); - - el = $("<div></div>").dialog({autoOpen: false}); - equal(el.dialog("isOpen"), false, "dialog is closed after init"); - el.dialog("open"); - equal(el.dialog("isOpen"), true, "dialog is open"); - el.remove(); + var element = $("<div></div>").dialog(); + equal(element.dialog("isOpen"), true, "dialog is open after init"); + element.dialog("close"); + equal(element.dialog("isOpen"), false, "dialog is closed"); + element.remove(); + + element = $("<div></div>").dialog({autoOpen: false}); + equal(element.dialog("isOpen"), false, "dialog is closed after init"); + element.dialog("open"); + equal(element.dialog("isOpen"), true, "dialog is open"); + element.remove(); }); test("moveToTop", function() { @@ -167,15 +167,15 @@ test("moveToTop", function() { test("open", function() { expect( 3 ); - var el, + var element, expected = $("<div></div>").dialog(), actual = expected.dialog("open"); equal(actual, expected, "open is chainable"); - el = $("<div></div>").dialog({ autoOpen: false }); - ok(el.dialog("widget").is(":hidden") && !el.dialog("widget").is(":visible"), "dialog hidden before open method called"); - el.dialog("open"); - ok(el.dialog("widget").is(":visible") && !el.dialog("widget").is(":hidden"), "dialog visible after open method called"); + element = $("<div></div>").dialog({ autoOpen: false }); + ok(element.dialog("widget").is(":hidden") && !element.dialog("widget").is(":visible"), "dialog hidden before open method called"); + element.dialog("open"); + ok(element.dialog("widget").is(":visible") && !element.dialog("widget").is(":hidden"), "dialog visible after open method called"); }); test("#6137: dialog('open') causes form elements to reset on IE7", function() { @@ -193,25 +193,54 @@ test("#6137: dialog('open') causes form elements to reset on IE7", function() { d1.remove(); }); +asyncTest( "#8958: dialog can be opened while opening", function() { + expect( 1 ); + + var element = $( "<div>" ).dialog({ + autoOpen: false, + modal: true, + open: function() { + equal( $( ".ui-widget-overlay" ).length, 1 ); + start(); + } + }); + + $( "#favorite-animal" ) + // We focus the input to start the test. Once it receives focus, the + // dialog will open. Opening the dialog, will cause an element inside + // the dialog to gain focus, thus blurring the input. + .bind( "focus", function() { + element.dialog( "open" ); + }) + // When the input blurs, the dialog is in the process of opening. We + // try to open the dialog again, to make sure that dialogs properly + // handle a call to the open() method during the process of the dialog + // being opened. + .bind( "blur", function() { + element.dialog( "open" ); + }) + .focus(); +}); + test("#5531: dialog width should be at least minWidth on creation", function () { expect( 4 ); - var el = $("<div></div>").dialog({ + var element = $("<div></div>").dialog({ width: 200, minWidth: 300 }); - equal(el.dialog("option", "width"), 300, "width is minWidth"); - el.dialog("option", "width", 200); - equal(el.dialog("option", "width"), 300, "width unchanged when set to < minWidth"); - el.dialog("option", "width", 320); - equal(el.dialog("option", "width"), 320, "width changed if set to > minWidth"); - el.remove(); + equal(element.dialog("option", "width"), 300, "width is minWidth"); + element.dialog("option", "width", 200); + equal(element.dialog("option", "width"), 300, "width unchanged when set to < minWidth"); + element.dialog("option", "width", 320); + equal(element.dialog("option", "width"), 320, "width changed if set to > minWidth"); + element.remove(); - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ minWidth: 300 }); - ok(el.dialog("option", "width") >= 300, "width is at least 300"); - el.remove(); + ok(element.dialog("option", "width") >= 300, "width is at least 300"); + element.remove(); }); diff --git a/tests/unit/dialog/dialog_options.js b/tests/unit/dialog/dialog_options.js index 5f0434308..07c2d6860 100644 --- a/tests/unit/dialog/dialog_options.js +++ b/tests/unit/dialog/dialog_options.js @@ -69,13 +69,13 @@ test( "appendTo", function() { test("autoOpen", function() { expect(2); - var el = $("<div></div>").dialog({ autoOpen: false }); - ok( !el.dialog("widget").is(":visible"), ".dialog({ autoOpen: false })"); - el.remove(); + var element = $("<div></div>").dialog({ autoOpen: false }); + ok( !element.dialog("widget").is(":visible"), ".dialog({ autoOpen: false })"); + element.remove(); - el = $("<div></div>").dialog({ autoOpen: true }); - ok( el.dialog("widget").is(":visible"), ".dialog({ autoOpen: true })"); - el.remove(); + element = $("<div></div>").dialog({ autoOpen: true }); + ok( element.dialog("widget").is(":visible"), ".dialog({ autoOpen: true })"); + element.remove(); }); test("buttons", function() { @@ -85,18 +85,18 @@ test("buttons", function() { buttons = { "Ok": function( ev ) { ok(true, "button click fires callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.target, btn[0], "event target"); }, "Cancel": function( ev ) { ok(true, "button click fires callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.target, btn[1], "event target"); } }, - el = $("<div></div>").dialog({ buttons: buttons }); + element = $("<div></div>").dialog({ buttons: buttons }); - btn = el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); + btn = element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); equal(btn.length, 2, "number of buttons"); i = 0; @@ -106,23 +106,23 @@ test("buttons", function() { }); ok(btn.parent().hasClass("ui-dialog-buttonset"), "buttons in container"); - ok(el.parent().hasClass("ui-dialog-buttons"), "dialog wrapper adds class about having buttons"); + ok(element.parent().hasClass("ui-dialog-buttons"), "dialog wrapper adds class about having buttons"); btn.trigger("click"); newButtons = { "Close": function( ev ) { ok(true, "button click fires callback"); - equal(this, el[0], "context of callback"); + equal(this, element[0], "context of callback"); equal(ev.target, btn[0], "event target"); } }; - deepEqual(el.dialog("option", "buttons"), buttons, ".dialog('option', 'buttons') getter"); - el.dialog("option", "buttons", newButtons); - deepEqual(el.dialog("option", "buttons"), newButtons, ".dialog('option', 'buttons', ...) setter"); + deepEqual(element.dialog("option", "buttons"), buttons, ".dialog('option', 'buttons') getter"); + element.dialog("option", "buttons", newButtons); + deepEqual(element.dialog("option", "buttons"), newButtons, ".dialog('option', 'buttons', ...) setter"); - btn = el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); + btn = element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); equal(btn.length, 1, "number of buttons after setter"); btn.trigger("click"); @@ -132,27 +132,27 @@ test("buttons", function() { i += 1; }); - el.dialog("option", "buttons", null); - btn = el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); + element.dialog("option", "buttons", null); + btn = element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); equal(btn.length, 0, "all buttons have been removed"); - equal(el.find(".ui-dialog-buttonset").length, 0, "buttonset has been removed"); - equal(el.parent().hasClass("ui-dialog-buttons"), false, "dialog wrapper removes class about having buttons"); + equal(element.find(".ui-dialog-buttonset").length, 0, "buttonset has been removed"); + equal(element.parent().hasClass("ui-dialog-buttons"), false, "dialog wrapper removes class about having buttons"); - el.remove(); + element.remove(); }); test("buttons - advanced", function() { expect( 7 ); var buttons, - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ buttons: [ { text: "a button", "class": "additional-class", id: "my-button-id", click: function() { - equal(this, el[0], "correct context"); + equal(this, element[0], "correct context"); }, icons: { primary: "ui-icon-cancel" @@ -162,7 +162,7 @@ test("buttons - advanced", function() { ] }); - buttons = el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); + buttons = element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" ); equal(buttons.length, 1, "correct number of buttons"); equal(buttons.attr("id"), "my-button-id", "correct id"); equal(buttons.text(), "a button", "correct label"); @@ -171,106 +171,116 @@ test("buttons - advanced", function() { equal( buttons.button( "option", "text" ), false ); buttons.click(); - el.remove(); + element.remove(); +}); + +test("#9043: buttons with Array.prototype modification", function() { + expect( 1 ); + Array.prototype.test = $.noop; + var element = $( "<div></div>" ).dialog(); + equal( element.dialog( "widget" ).find( ".ui-dialog-buttonpane" ).length, 0, + "no button pane" ); + element.remove(); + delete Array.prototype.test; }); test("closeOnEscape", function() { expect( 6 ); - var el = $("<div></div>").dialog({ closeOnEscape: false }); + var element = $("<div></div>").dialog({ closeOnEscape: false }); ok(true, "closeOnEscape: false"); - ok(el.dialog("widget").is(":visible") && !el.dialog("widget").is(":hidden"), "dialog is open before ESC"); - el.simulate("keydown", { keyCode: $.ui.keyCode.ESCAPE }) + ok(element.dialog("widget").is(":visible") && !element.dialog("widget").is(":hidden"), "dialog is open before ESC"); + element.simulate("keydown", { keyCode: $.ui.keyCode.ESCAPE }) .simulate("keypress", { keyCode: $.ui.keyCode.ESCAPE }) .simulate("keyup", { keyCode: $.ui.keyCode.ESCAPE }); - ok(el.dialog("widget").is(":visible") && !el.dialog("widget").is(":hidden"), "dialog is open after ESC"); + ok(element.dialog("widget").is(":visible") && !element.dialog("widget").is(":hidden"), "dialog is open after ESC"); - el.remove(); + element.remove(); - el = $("<div></div>").dialog({ closeOnEscape: true }); + element = $("<div></div>").dialog({ closeOnEscape: true }); ok(true, "closeOnEscape: true"); - ok(el.dialog("widget").is(":visible") && !el.dialog("widget").is(":hidden"), "dialog is open before ESC"); - el.simulate("keydown", { keyCode: $.ui.keyCode.ESCAPE }) + ok(element.dialog("widget").is(":visible") && !element.dialog("widget").is(":hidden"), "dialog is open before ESC"); + element.simulate("keydown", { keyCode: $.ui.keyCode.ESCAPE }) .simulate("keypress", { keyCode: $.ui.keyCode.ESCAPE }) .simulate("keyup", { keyCode: $.ui.keyCode.ESCAPE }); - ok(el.dialog("widget").is(":hidden") && !el.dialog("widget").is(":visible"), "dialog is closed after ESC"); + ok(element.dialog("widget").is(":hidden") && !element.dialog("widget").is(":visible"), "dialog is closed after ESC"); }); test("closeText", function() { expect(3); - var el = $("<div></div>").dialog(); - equal(el.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "close", + var element = $("<div></div>").dialog(); + equal(element.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "close", "default close text"); - el.remove(); + element.remove(); - el = $("<div></div>").dialog({ closeText: "foo" }); - equal(el.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "foo", + element = $("<div></div>").dialog({ closeText: "foo" }); + equal(element.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "foo", "closeText on init"); - el.remove(); + element.remove(); - el = $("<div></div>").dialog().dialog("option", "closeText", "bar"); - equal(el.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "bar", + element = $("<div></div>").dialog().dialog("option", "closeText", "bar"); + equal(element.dialog("widget").find(".ui-dialog-titlebar-close span").text(), "bar", "closeText via option method"); - el.remove(); + element.remove(); }); test("dialogClass", function() { expect( 6 ); - var el = $("<div></div>").dialog(); - equal(el.dialog("widget").is(".foo"), false, "dialogClass not specified. foo class added"); - el.remove(); - - el = $("<div></div>").dialog({ dialogClass: "foo" }); - equal(el.dialog("widget").is(".foo"), true, "dialogClass in init. foo class added"); - el.dialog( "option", "dialogClass", "foobar" ); - equal( el.dialog("widget").is(".foo"), false, "dialogClass changed, previous one was removed" ); - equal( el.dialog("widget").is(".foobar"), true, "dialogClass changed, new one was added" ); - el.remove(); - - el = $("<div></div>").dialog({ dialogClass: "foo bar" }); - equal(el.dialog("widget").is(".foo"), true, "dialogClass in init, two classes. foo class added"); - equal(el.dialog("widget").is(".bar"), true, "dialogClass in init, two classes. bar class added"); - el.remove(); + var element = $("<div></div>").dialog(); + equal(element.dialog("widget").is(".foo"), false, "dialogClass not specified. foo class added"); + element.remove(); + + element = $("<div></div>").dialog({ dialogClass: "foo" }); + equal(element.dialog("widget").is(".foo"), true, "dialogClass in init. foo class added"); + element.dialog( "option", "dialogClass", "foobar" ); + equal( element.dialog("widget").is(".foo"), false, "dialogClass changed, previous one was removed" ); + equal( element.dialog("widget").is(".foobar"), true, "dialogClass changed, new one was added" ); + element.remove(); + + element = $("<div></div>").dialog({ dialogClass: "foo bar" }); + equal(element.dialog("widget").is(".foo"), true, "dialogClass in init, two classes. foo class added"); + equal(element.dialog("widget").is(".bar"), true, "dialogClass in init, two classes. bar class added"); + element.remove(); }); test("draggable", function() { expect(4); - var el = $("<div></div>").dialog({ draggable: false }); + var element = $("<div></div>").dialog({ draggable: false }); - TestHelpers.dialog.testDrag(el, 50, -50, 0, 0); - el.dialog("option", "draggable", true); - TestHelpers.dialog.testDrag(el, 50, -50, 50, -50); - el.remove(); + TestHelpers.dialog.testDrag(element, 50, -50, 0, 0); + element.dialog("option", "draggable", true); + TestHelpers.dialog.testDrag(element, 50, -50, 50, -50); + element.remove(); - el = $("<div></div>").dialog({ draggable: true }); - TestHelpers.dialog.testDrag(el, 50, -50, 50, -50); - el.dialog("option", "draggable", false); - TestHelpers.dialog.testDrag(el, 50, -50, 0, 0); - el.remove(); + element = $("<div></div>").dialog({ draggable: true }); + TestHelpers.dialog.testDrag(element, 50, -50, 50, -50); + element.dialog("option", "draggable", false); + TestHelpers.dialog.testDrag(element, 50, -50, 0, 0); + element.remove(); }); test("height", function() { expect(4); - var el = $("<div></div>").dialog(); - equal(el.dialog("widget").outerHeight(), 150, "default height"); - el.remove(); + var element = $("<div></div>").dialog(); + equal(element.dialog("widget").outerHeight(), 150, "default height"); + element.remove(); - el = $("<div></div>").dialog({ height: 237 }); - equal(el.dialog("widget").outerHeight(), 237, "explicit height"); - el.remove(); + element = $("<div></div>").dialog({ height: 237 }); + equal(element.dialog("widget").outerHeight(), 237, "explicit height"); + element.remove(); - el = $("<div></div>").dialog(); - el.dialog("option", "height", 238); - equal(el.dialog("widget").outerHeight(), 238, "explicit height set after init"); - el.remove(); + element = $("<div></div>").dialog(); + element.dialog("option", "height", 238); + equal(element.dialog("widget").outerHeight(), 238, "explicit height set after init"); + element.remove(); - el = $("<div></div>").css("padding", "20px") + element = $("<div></div>").css("padding", "20px") .dialog({ height: 240 }); - equal(el.dialog("widget").outerHeight(), 240, "explicit height with padding"); - el.remove(); + equal(element.dialog("widget").outerHeight(), 240, "explicit height with padding"); + element.remove(); }); asyncTest( "hide, #5860 - don't leave effects wrapper behind", function() { @@ -285,77 +295,77 @@ asyncTest( "hide, #5860 - don't leave effects wrapper behind", function() { test("maxHeight", function() { expect(3); - var el = $("<div></div>").dialog({ maxHeight: 200 }); - TestHelpers.dialog.drag(el, ".ui-resizable-s", 1000, 1000); - closeEnough(el.dialog("widget").height(), 200, 1, "maxHeight"); - el.remove(); + var element = $("<div></div>").dialog({ maxHeight: 200 }); + TestHelpers.dialog.drag(element, ".ui-resizable-s", 1000, 1000); + closeEnough(element.dialog("widget").height(), 200, 1, "maxHeight"); + element.remove(); - el = $("<div></div>").dialog({ maxHeight: 200 }); - TestHelpers.dialog.drag(el, ".ui-resizable-n", -1000, -1000); - closeEnough(el.dialog("widget").height(), 200, 1, "maxHeight"); - el.remove(); + element = $("<div></div>").dialog({ maxHeight: 200 }); + TestHelpers.dialog.drag(element, ".ui-resizable-n", -1000, -1000); + closeEnough(element.dialog("widget").height(), 200, 1, "maxHeight"); + element.remove(); - el = $("<div></div>").dialog({ maxHeight: 200 }).dialog("option", "maxHeight", 300); - TestHelpers.dialog.drag(el, ".ui-resizable-s", 1000, 1000); - closeEnough(el.dialog("widget").height(), 300, 1, "maxHeight"); - el.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"); + element.remove(); }); test("maxWidth", function() { expect(3); - var el = $("<div></div>").dialog({ maxWidth: 200 }); - TestHelpers.dialog.drag(el, ".ui-resizable-e", 1000, 1000); - closeEnough(el.dialog("widget").width(), 200, 1, "maxWidth"); - el.remove(); + var element = $("<div></div>").dialog({ maxWidth: 200 }); + TestHelpers.dialog.drag(element, ".ui-resizable-e", 1000, 1000); + closeEnough(element.dialog("widget").width(), 200, 1, "maxWidth"); + element.remove(); - el = $("<div></div>").dialog({ maxWidth: 200 }); - TestHelpers.dialog.drag(el, ".ui-resizable-w", -1000, -1000); - closeEnough(el.dialog("widget").width(), 200, 1, "maxWidth"); - el.remove(); + element = $("<div></div>").dialog({ maxWidth: 200 }); + TestHelpers.dialog.drag(element, ".ui-resizable-w", -1000, -1000); + closeEnough(element.dialog("widget").width(), 200, 1, "maxWidth"); + element.remove(); - el = $("<div></div>").dialog({ maxWidth: 200 }).dialog("option", "maxWidth", 300); - TestHelpers.dialog.drag(el, ".ui-resizable-w", -1000, -1000); - closeEnough(el.dialog("widget").width(), 300, 1, "maxWidth"); - el.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"); + element.remove(); }); test("minHeight", function() { expect(3); - var el = $("<div></div>").dialog({ minHeight: 10 }); - TestHelpers.dialog.drag(el, ".ui-resizable-s", -1000, -1000); - closeEnough(el.dialog("widget").height(), 10, 1, "minHeight"); - el.remove(); + var element = $("<div></div>").dialog({ minHeight: 10 }); + TestHelpers.dialog.drag(element, ".ui-resizable-s", -1000, -1000); + closeEnough(element.dialog("widget").height(), 10, 1, "minHeight"); + element.remove(); - el = $("<div></div>").dialog({ minHeight: 10 }); - TestHelpers.dialog.drag(el, ".ui-resizable-n", 1000, 1000); - closeEnough(el.dialog("widget").height(), 10, 1, "minHeight"); - el.remove(); + element = $("<div></div>").dialog({ minHeight: 10 }); + TestHelpers.dialog.drag(element, ".ui-resizable-n", 1000, 1000); + closeEnough(element.dialog("widget").height(), 10, 1, "minHeight"); + element.remove(); - el = $("<div></div>").dialog({ minHeight: 10 }).dialog("option", "minHeight", 30); - TestHelpers.dialog.drag(el, ".ui-resizable-n", 1000, 1000); - closeEnough(el.dialog("widget").height(), 30, 1, "minHeight"); - el.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"); + element.remove(); }); test("minWidth", function() { expect(3); - var el = $("<div></div>").dialog({ minWidth: 10 }); - TestHelpers.dialog.drag(el, ".ui-resizable-e", -1000, -1000); - closeEnough(el.dialog("widget").width(), 10, 1, "minWidth"); - el.remove(); + var element = $("<div></div>").dialog({ minWidth: 10 }); + TestHelpers.dialog.drag(element, ".ui-resizable-e", -1000, -1000); + closeEnough(element.dialog("widget").width(), 10, 1, "minWidth"); + element.remove(); - el = $("<div></div>").dialog({ minWidth: 10 }); - TestHelpers.dialog.drag(el, ".ui-resizable-w", 1000, 1000); - closeEnough(el.dialog("widget").width(), 10, 1, "minWidth"); - el.remove(); + element = $("<div></div>").dialog({ minWidth: 10 }); + TestHelpers.dialog.drag(element, ".ui-resizable-w", 1000, 1000); + closeEnough(element.dialog("widget").width(), 10, 1, "minWidth"); + element.remove(); - el = $("<div></div>").dialog({ minWidth: 30 }).dialog("option", "minWidth", 30); - TestHelpers.dialog.drag(el, ".ui-resizable-w", 1000, 1000); - closeEnough(el.dialog("widget").width(), 30, 1, "minWidth"); - el.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"); + element.remove(); }); test( "position, default center on window", function() { @@ -366,12 +376,12 @@ test( "position, default center on window", function() { // Support: FF, IE7 var winWidth = $( window ).width(), winHeight = $( window ).height(), - el = $("<div></div>").dialog(), - dialog = el.dialog("widget"), + 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" ); - el.remove(); + element.remove(); }); test( "position, right bottom at right bottom via ui.position args", function() { @@ -382,18 +392,18 @@ test( "position, right bottom at right bottom via ui.position args", function() // Support: FF, IE7 var winWidth = $( window ).width(), winHeight = $( window ).height(), - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ position: { my: "right bottom", at: "right bottom" } }), - dialog = el.dialog("widget"), + 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" ); - el.remove(); + element.remove(); }); test( "position, at another element", function() { @@ -406,7 +416,7 @@ test( "position, at another element", function() { width: 10 }).appendTo("body"), - el = $("<div></div>").dialog({ + element = $("<div></div>").dialog({ position: { my: "left top", at: "left top", @@ -415,13 +425,13 @@ test( "position, at another element", function() { } }), - dialog = el.dialog("widget"), + 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" ); - el.dialog("option", "position", { + element.dialog("option", "position", { my: "left top", at: "right bottom", of: parent, @@ -433,102 +443,142 @@ test( "position, at another element", function() { 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" ); - el.remove(); + element.remove(); parent.remove(); }); test("resizable", function() { expect(4); - var el = $("<div></div>").dialog(); - TestHelpers.dialog.shouldResize(el, 50, 50, "[default]"); - el.dialog("option", "resizable", false); - TestHelpers.dialog.shouldResize(el, 0, 0, "disabled after init"); - el.remove(); - - el = $("<div></div>").dialog({ resizable: false }); - TestHelpers.dialog.shouldResize(el, 0, 0, "disabled in init options"); - el.dialog("option", "resizable", true); - TestHelpers.dialog.shouldResize(el, 50, 50, "enabled after init"); - el.remove(); + var element = $("<div></div>").dialog(); + TestHelpers.dialog.shouldResize(element, 50, 50, "[default]"); + element.dialog("option", "resizable", false); + TestHelpers.dialog.shouldResize(element, 0, 0, "disabled after init"); + element.remove(); + + element = $("<div></div>").dialog({ resizable: false }); + TestHelpers.dialog.shouldResize(element, 0, 0, "disabled in init options"); + element.dialog("option", "resizable", true); + TestHelpers.dialog.shouldResize(element, 50, 50, "enabled after init"); + element.remove(); }); test( "title", function() { expect( 11 ); function titleText() { - return el.dialog("widget").find( ".ui-dialog-title" ).html(); + return element.dialog("widget").find( ".ui-dialog-title" ).html(); } - var el = $( "<div></div>" ).dialog(); + var element = $( "<div></div>" ).dialog(); // some browsers return a non-breaking space and some return " " // so we generate a non-breaking space for comparison equal( titleText(), $( "<span> </span>" ).html(), "[default]" ); - equal( el.dialog( "option", "title" ), null, "option not changed" ); - el.remove(); + equal( element.dialog( "option", "title" ), null, "option not changed" ); + element.remove(); - el = $( "<div title='foo'>" ).dialog(); + element = $( "<div title='foo'>" ).dialog(); equal( titleText(), "foo", "title in element attribute" ); - equal( el.dialog( "option", "title"), "foo", "option updated from attribute" ); - el.remove(); + equal( element.dialog( "option", "title"), "foo", "option updated from attribute" ); + element.remove(); - el = $( "<div></div>" ).dialog({ title: "foo" }); + element = $( "<div></div>" ).dialog({ title: "foo" }); equal( titleText(), "foo", "title in init options" ); - equal( el.dialog("option", "title"), "foo", "opiton set from options hash" ); - el.remove(); + equal( element.dialog("option", "title"), "foo", "opiton set from options hash" ); + element.remove(); - el = $( "<div title='foo'>" ).dialog({ title: "bar" }); + element = $( "<div title='foo'>" ).dialog({ title: "bar" }); equal( titleText(), "bar", "title in init options should override title in element attribute" ); - equal( el.dialog("option", "title"), "bar", "opiton set from options hash" ); - el.remove(); + equal( element.dialog("option", "title"), "bar", "opiton set from options hash" ); + element.remove(); - el = $( "<div></div>" ).dialog().dialog( "option", "title", "foo" ); + element = $( "<div></div>" ).dialog().dialog( "option", "title", "foo" ); equal( titleText(), "foo", "title after init" ); - el.remove(); + element.remove(); // make sure attroperties are properly ignored - #5742 - .attr() might return a DOMElement - el = $( "<form><input name='title'></form>" ).dialog(); + element = $( "<form><input name='title'></form>" ).dialog(); // some browsers return a non-breaking space and some return " " // so we get the text to normalize to the actual non-breaking space equal( titleText(), $( "<span> </span>" ).html(), "[default]" ); - equal( el.dialog( "option", "title" ), null, "option not changed" ); - el.remove(); + equal( element.dialog( "option", "title" ), null, "option not changed" ); + element.remove(); }); test("width", function() { expect(3); - var el = $("<div></div>").dialog(); - closeEnough(el.dialog("widget").width(), 300, 1, "default width"); - el.remove(); + var element = $("<div></div>").dialog(); + closeEnough(element.dialog("widget").width(), 300, 1, "default width"); + element.remove(); - el = $("<div></div>").dialog({width: 437 }); - closeEnough(el.dialog("widget").width(), 437, 1, "explicit width"); - el.dialog("option", "width", 438); - closeEnough(el.dialog("widget").width(), 438, 1, "explicit width after init"); - el.remove(); + element = $("<div></div>").dialog({width: 437 }); + closeEnough(element.dialog("widget").width(), 437, 1, "explicit width"); + element.dialog("option", "width", 438); + closeEnough(element.dialog("widget").width(), 438, 1, "explicit width after init"); + element.remove(); }); test("#4826: setting resizable false toggles resizable on dialog", function() { expect(6); var i, - el = $("<div></div>").dialog({ resizable: false }); + element = $("<div></div>").dialog({ resizable: false }); - TestHelpers.dialog.shouldResize(el, 0, 0, "[default]"); + TestHelpers.dialog.shouldResize(element, 0, 0, "[default]"); for (i=0; i<2; i++) { - el.dialog("close").dialog("open"); - TestHelpers.dialog.shouldResize(el, 0, 0, "initialized with resizable false toggle ("+ (i+1) +")"); + element.dialog("close").dialog("open"); + TestHelpers.dialog.shouldResize(element, 0, 0, "initialized with resizable false toggle ("+ (i+1) +")"); } - el.remove(); + element.remove(); - el = $("<div></div>").dialog({ resizable: true }); - TestHelpers.dialog.shouldResize(el, 50, 50, "[default]"); + element = $("<div></div>").dialog({ resizable: true }); + TestHelpers.dialog.shouldResize(element, 50, 50, "[default]"); for (i=0; i<2; i++) { - el.dialog("close").dialog("option", "resizable", false).dialog("open"); - TestHelpers.dialog.shouldResize(el, 0, 0, "set option resizable false toggle ("+ (i+1) +")"); + element.dialog("close").dialog("option", "resizable", false).dialog("open"); + TestHelpers.dialog.shouldResize(element, 0, 0, "set option resizable false toggle ("+ (i+1) +")"); } - el.remove(); + element.remove(); + +}); + +asyncTest( "#8051 - 'Explode' dialog animation causes crash in IE 6, 7 and 8", function() { + expect( 1 ); + var element = $( "<div></div>" ).dialog({ + show: "explode", + focus: function() { + ok( true, "dialog opened with animation" ); + element.remove(); + start(); + } + }); +}); + +asyncTest( "#4421 - Focus lost from dialog which uses show-effect", function() { + expect( 1 ); + var element = $( "<div></div>" ).dialog({ + show: "blind", + focus: function() { + equal( element.dialog( "widget" ).find( ":focus" ).length, 1, "dialog maintains focus" ); + element.remove(); + start(); + } + }); +}); + +asyncTest( "Open followed by close during show effect", function() { + expect( 1 ); + var element = $( "<div></div>" ).dialog({ + show: "blind", + close: function() { + ok( true, "dialog closed properly during animation" ); + element.remove(); + start(); + } + }); + setTimeout( function() { + element.dialog("close"); + }, 100 ); }); })(jQuery); diff --git a/tests/unit/dialog/dialog_test_helpers.js b/tests/unit/dialog/dialog_test_helpers.js index 4ecaf0c0f..64e8dbf6f 100644 --- a/tests/unit/dialog/dialog_test_helpers.js +++ b/tests/unit/dialog/dialog_test_helpers.js @@ -1,6 +1,6 @@ TestHelpers.dialog = { - drag: function(el, handle, dx, dy) { - var d = el.dialog("widget"); + drag: function(element, handle, dx, dy) { + var d = element.dialog("widget"); //this mouseover is to work around a limitation in resizable //TODO: fix resizable so handle doesn't require mouseover in order to be used $( handle, d ).simulate("mouseover").simulate( "drag", { @@ -8,13 +8,13 @@ TestHelpers.dialog = { dy: dy }); }, - testDrag: function(el, dx, dy, expectedDX, expectedDY, msg) { + testDrag: function(element, dx, dy, expectedDX, expectedDY, msg) { var actualDX, actualDY, offsetAfter, - d = el.dialog("widget"), + d = element.dialog("widget"), handle = $(".ui-dialog-titlebar", d), offsetBefore = d.offset(); - TestHelpers.dialog.drag(el, handle, dx, dy); + TestHelpers.dialog.drag(element, handle, dx, dy); offsetAfter = d.offset(); @@ -24,14 +24,14 @@ TestHelpers.dialog = { actualDY = offsetAfter.top - offsetBefore.top; ok( expectedDX - actualDX <= 1 && expectedDY - actualDY <= 1, "dragged[" + expectedDX + ", " + expectedDY + "] " + msg); }, - shouldResize: function(el, dw, dh, msg) { + shouldResize: function(element, dw, dh, msg) { var heightAfter, widthAfter, actual, expected, - d = el.dialog("widget"), + d = element.dialog("widget"), handle = $(".ui-resizable-se", d), heightBefore = d.height(), widthBefore = d.width(); - TestHelpers.dialog.drag(el, handle, 50, 50); + TestHelpers.dialog.drag(element, handle, 50, 50); heightAfter = d.height(); widthAfter = d.width(); @@ -41,4 +41,4 @@ TestHelpers.dialog = { expected = { width: widthBefore + dw, height: heightBefore + dh }; deepEqual(actual, expected, "resized[" + 50 + ", " + 50 + "] " + msg); } -};
\ No newline at end of file +}; diff --git a/tests/unit/draggable/all.html b/tests/unit/draggable/all.html index 97c83a72f..e096c88bd 100644 --- a/tests/unit/draggable/all.html +++ b/tests/unit/draggable/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Draggable Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/droppable/all.html b/tests/unit/droppable/all.html index 058175c53..890e88a83 100644 --- a/tests/unit/droppable/all.html +++ b/tests/unit/droppable/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Droppable Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/effects/all.html b/tests/unit/effects/all.html index 06df2f3a6..36d74ce9c 100644 --- a/tests/unit/effects/all.html +++ b/tests/unit/effects/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Effects Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/index.html b/tests/unit/index.html index dc53a3ce2..6244fe1b6 100644 --- a/tests/unit/index.html +++ b/tests/unit/index.html @@ -7,7 +7,7 @@ <link rel="stylesheet" href="../../themes/base/jquery.ui.core.css"> <link rel="stylesheet" href="../../themes/base/jquery.ui.theme.css"> <link rel="stylesheet" href="../index.css"> - <script src="../jquery-1.9.0.js"></script> + <script src="../jquery-1.9.1.js"></script> <script src="../index.js"></script> </head> <body> diff --git a/tests/unit/menu/all.html b/tests/unit/menu/all.html index 34adad864..b34fa5e64 100644 --- a/tests/unit/menu/all.html +++ b/tests/unit/menu/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Menu Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/position/all.html b/tests/unit/position/all.html index 84553ee7a..7dfcaac81 100644 --- a/tests/unit/position/all.html +++ b/tests/unit/position/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Position Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/progressbar/all.html b/tests/unit/progressbar/all.html index 9c4951761..18ec34c86 100644 --- a/tests/unit/progressbar/all.html +++ b/tests/unit/progressbar/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Progressbar Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/qunit-composite.css b/tests/unit/qunit-composite.css index df47362db..c530436da 100644 --- a/tests/unit/qunit-composite.css +++ b/tests/unit/qunit-composite.css @@ -1,13 +1,13 @@ -iframe.qunit-subsuite{ - position: fixed; - bottom: 0; - left: 0; - - margin: 0; - padding: 0; - border-width: 1px 0 0; - height: 45%; - width: 100%; +iframe.qunit-subsuite { + position: fixed; + bottom: 0; + left: 0; - background: #fff; -}
\ No newline at end of file + margin: 0; + padding: 0; + border-width: 1px 0 0; + height: 45%; + width: 100%; + + background: #fff; +} diff --git a/tests/unit/qunit-composite.js b/tests/unit/qunit-composite.js index b3df04217..2e5454056 100644 --- a/tests/unit/qunit-composite.js +++ b/tests/unit/qunit-composite.js @@ -16,8 +16,15 @@ QUnit.extend( QUnit, { }, runSuite: function( suite ) { + var path = suite; + + if ( QUnit.is( "object", suite ) ) { + path = suite.path; + suite = suite.name; + } + asyncTest( suite, function() { - QUnit.iframe.setAttribute( "src", suite ); + QUnit.iframe.setAttribute( "src", path ); }); }, @@ -33,6 +40,9 @@ QUnit.extend( QUnit, { var module, test, count = 0; + if (iframe.src === "") { + return; + } iframeWin.QUnit.moduleStart(function( data ) { // capture module name for messages diff --git a/tests/unit/resizable/all.html b/tests/unit/resizable/all.html index 03999f27b..74b723625 100644 --- a/tests/unit/resizable/all.html +++ b/tests/unit/resizable/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Resizable Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/selectable/all.html b/tests/unit/selectable/all.html index e8f0d7c84..e517ef33d 100644 --- a/tests/unit/selectable/all.html +++ b/tests/unit/selectable/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Selectable Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/slider/all.html b/tests/unit/slider/all.html index 1f4a68e18..039966ec3 100644 --- a/tests/unit/slider/all.html +++ b/tests/unit/slider/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Slider Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/slider/slider_core.js b/tests/unit/slider/slider_core.js index 7195147cc..19c9abb8e 100644 --- a/tests/unit/slider/slider_core.js +++ b/tests/unit/slider/slider_core.js @@ -1,300 +1,300 @@ /* * slider unit tests */ -(function($) { +(function( $ ) { // // Slider Test Helper Functions // -var el, options; +var element, options; function handle() { - return el.find(".ui-slider-handle"); + return element.find( ".ui-slider-handle" ); } // Slider Tests -module("slider: core"); +module( "slider: core" ); -test("keydown HOME on handle sets value to min", function() { +test( "keydown HOME on handle sets value to min", function() { expect( 2 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 0); + element.slider( "value", 0 ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.HOME }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.HOME } ); + equal(element.slider( "value" ), options.min ); - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 0); + element.slider( "value", 0 ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.HOME }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.HOME } ); + equal(element.slider( "value" ), options.min) ; - el.slider("destroy"); + element.slider( "destroy" ); }); -test("keydown END on handle sets value to max", function() { +test( "keydown END on handle sets value to max", function() { expect( 2 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 0); + element.slider( "value", 0 ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.END }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.END } ); + equal(element.slider( "value" ), options.max) ; - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 0); + element.slider( "value", 0 ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.END }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.END } ); + equal(element.slider( "value" ), options.max ); - el.slider("destroy"); + element.slider( "destroy" ); }); -test("keydown PAGE_UP on handle increases value by 1/5 range, not greater than max", function() { +test( "keydown PAGE_UP on handle increases value by 1/5 range, not greater than max", function() { expect( 4 ); - $.each(["horizontal", "vertical"], function(i, orientation) { - el = $("<div></div>"); + $.each( [ "horizontal", "vertical" ], function( i, orientation ) { + element = $( "<div></div>" ); options = { max: 100, min: 0, orientation: orientation, step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 70); + element.slider( "value", 70); - handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_UP }); - equal(el.slider("value"), 90); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } ); + equal(element.slider( "value" ), 90); - handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_UP }); - equal(el.slider("value"), 100); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } ); + equal(element.slider( "value" ), 100); - el.slider("destroy"); + element.slider( "destroy" ); }); }); -test("keydown PAGE_DOWN on handle decreases value by 1/5 range, not less than min", function() { +test( "keydown PAGE_DOWN on handle decreases value by 1/5 range, not less than min", function() { expect( 4 ); - $.each(["horizontal", "vertical"], function(i, orientation) { - el = $("<div></div>"); + $.each( [ "horizontal", "vertical" ], function( i, orientation ) { + element = $( "<div></div>" ); options = { max: 100, min: 0, orientation: orientation, step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", 30); + element.slider( "value", 30); - handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_DOWN }); - equal(el.slider("value"), 10); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } ); + equal(element.slider( "value" ), 10); - handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_DOWN }); - equal(el.slider("value"), 0); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } ); + equal(element.slider( "value" ), 0 ); - el.slider("destroy"); + element.slider( "destroy" ); }); }); -test("keydown UP on handle increases value by step, not greater than max", function() { +test( "keydown UP on handle increases value by step, not greater than max", function() { expect( 4 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider(options); - el.slider("value", options.max - options.step); + element.slider( "value", options.max - options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.UP }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.UP } ); + equal(element.slider( "value" ), options.max ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.UP }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.UP } ); + equal(element.slider( "value" ), options.max ); - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", options.max - options.step); + element.slider( "value", options.max - options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.UP }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.UP } ); + equal(element.slider( "value" ), options.max ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.UP }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.UP } ); + equal(element.slider( "value" ), options.max ); - el.slider("destroy"); + element.slider( "destroy" ); }); -test("keydown RIGHT on handle increases value by step, not greater than max", function() { +test( "keydown RIGHT on handle increases value by step, not greater than max", function() { expect( 4 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider(options); - el.slider("value", options.max - options.step); + element.slider( "value", options.max - options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.RIGHT }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal(element.slider( "value" ), options.max); - handle().simulate("keydown", { keyCode: $.ui.keyCode.RIGHT }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal(element.slider( "value" ), options.max ); - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", options.max - options.step); + element.slider( "value", options.max - options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.RIGHT }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal(element.slider( "value" ), options.max ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.RIGHT }); - equal(el.slider("value"), options.max); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal(element.slider( "value" ), options.max ); - el.slider("destroy"); + element.slider( "destroy" ); }); -test("keydown DOWN on handle decreases value by step, not less than min", function() { +test( "keydown DOWN on handle decreases value by step, not less than min", function() { expect( 4 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", options.min + options.step); + element.slider( "value", options.min + options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.DOWN }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + equal(element.slider( "value" ), options.min); - handle().simulate("keydown", { keyCode: $.ui.keyCode.DOWN }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + equal(element.slider( "value" ), options.min ); - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", options.min + options.step); + element.slider( "value", options.min + options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.DOWN }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + equal(element.slider( "value" ), options.min); - handle().simulate("keydown", { keyCode: $.ui.keyCode.DOWN }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + equal(element.slider( "value" ), options.min ); - el.slider("destroy"); + element.slider( "destroy" ); }); -test("keydown LEFT on handle decreases value by step, not less than min", function() { +test( "keydown LEFT on handle decreases value by step, not less than min", function() { expect( 4 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "horizontal", step: 1 }; - el.slider(options); + element.slider(options); - el.slider("value", options.min + options.step); + element.slider( "value", options.min + options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.LEFT }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ); + equal(element.slider( "value" ), options.min ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.LEFT }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ); + equal(element.slider( "value" ), options.min ); - el.slider("destroy"); + element.slider( "destroy" ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 5, min: -5, orientation: "vertical", step: 1 }; - el.slider(options); + element.slider( options ); - el.slider("value", options.min + options.step); + element.slider( "value", options.min + options.step ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.LEFT }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ); + equal(element.slider( "value" ), options.min ); - handle().simulate("keydown", { keyCode: $.ui.keyCode.LEFT }); - equal(el.slider("value"), options.min); + handle().simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ); + equal(element.slider( "value" ), options.min ); - el.slider("destroy"); + element.slider( "destroy" ); }); -})(jQuery); +})( jQuery ); diff --git a/tests/unit/slider/slider_events.js b/tests/unit/slider/slider_events.js index d5e7dff45..92b0bdedd 100644 --- a/tests/unit/slider/slider_events.js +++ b/tests/unit/slider/slider_events.js @@ -1,7 +1,7 @@ /* * slider_events.js */ -(function($) { +(function( $ ) { module( "slider: events" ); @@ -10,9 +10,9 @@ module( "slider: events" ); // value (even if same as previous value), via mouse(mouseup) or keyboard(keyup) // or value method/option" test( "mouse based interaction", function() { - expect(4); + expect( 4 ); - var el = $( "#slider1" ) + var element = $( "#slider1" ) .slider({ start: function( event ) { equal( event.originalEvent.type, "mousedown", "start triggered by mousedown" ); @@ -28,15 +28,15 @@ test( "mouse based interaction", function() { } }); - el.find( ".ui-slider-handle" ).eq( 0 ) + element.find( ".ui-slider-handle" ).eq( 0 ) .simulate( "drag", { dx: 10, dy: 10 } ); }); test( "keyboard based interaction", function() { - expect(3); + expect( 3 ); // Test keyup at end of handle slide (keyboard) - var el = $( "#slider1" ) + var element = $( "#slider1" ) .slider({ start: function( event ) { equal( event.originalEvent.type, "keydown", "start triggered by keydown" ); @@ -52,17 +52,17 @@ test( "keyboard based interaction", function() { } }); - el.find( ".ui-slider-handle" ).eq( 0 ) + element.find( ".ui-slider-handle" ).eq( 0 ) .simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } ) .simulate( "keypress", { keyCode: $.ui.keyCode.LEFT } ) .simulate( "keyup", { keyCode: $.ui.keyCode.LEFT } ); }); test( "programmatic event triggers", function() { - expect(6); + expect( 6 ); // Test value method - var el = $( "<div></div>" ) + var element = $( "<div></div>" ) .slider({ change: function() { ok( true, "change triggered by value method" ); @@ -71,17 +71,17 @@ test( "programmatic event triggers", function() { .slider( "value", 0 ); // Test values method - el = $( "<div></div>" ) + element = $( "<div></div>" ) .slider({ values: [ 10, 20 ], change: function() { ok( true, "change triggered by values method" ); } }) - .slider( "values", [80, 90] ); + .slider( "values", [ 80, 90 ] ); // Test value option - el = $( "<div></div>" ) + element = $( "<div></div>" ) .slider({ change: function() { ok( true, "change triggered by value option" ); @@ -90,66 +90,66 @@ test( "programmatic event triggers", function() { .slider( "option", "value", 0 ); // Test values option - el = $( "<div></div>" ) + element = $( "<div></div>" ) .slider({ values: [ 10, 20 ], change: function() { ok( true, "change triggered by values option" ); } }) - .slider( "option", "values", [80, 90] ); + .slider( "option", "values", [ 80, 90 ] ); }); test( "mouse based interaction part two: when handles overlap", function() { - expect(4); + expect( 4 ); - var el = $( "#slider1" ) + var element = $( "#slider1" ) .slider({ values: [ 0, 0, 0 ], start: function( event, ui ) { - equal(handles.index(ui.handle), 2, "rightmost handle activated when overlapping at minimum (#3736)"); + equal( handles.index( ui.handle ), 2, "rightmost handle activated when overlapping at minimum (#3736)" ); } }), - handles = el.find( ".ui-slider-handle" ); - handles.eq(0).simulate( "drag", { dx: 10 } ); - el.slider( "destroy" ); + handles = element.find( ".ui-slider-handle" ); + handles.eq( 0 ).simulate( "drag", { dx: 10 } ); + element.slider( "destroy" ); - el = $( "#slider1" ) + element = $( "#slider1" ) .slider({ values: [ 10, 10, 10 ], max: 10, start: function( event, ui ) { - equal(handles.index(ui.handle), 0, "leftmost handle activated when overlapping at maximum"); + equal( handles.index( ui.handle ), 0, "leftmost handle activated when overlapping at maximum" ); } }), - handles = el.find( ".ui-slider-handle" ); - handles.eq(0).simulate( "drag", { dx: -10 } ); - el.slider( "destroy" ); + handles = element.find( ".ui-slider-handle" ); + handles.eq( 0 ).simulate( "drag", { dx: -10 } ); + element.slider( "destroy" ); - el = $( "#slider1" ) + element = $( "#slider1" ) .slider({ values: [ 19, 20 ] }), - handles = el.find( ".ui-slider-handle" ); - handles.eq(0).simulate( "drag", { dx: 10 } ); - el.one("slidestart", function(event, ui) { - equal(handles.index(ui.handle), 0, "left handle activated if left was moved last"); + handles = element.find( ".ui-slider-handle" ); + handles.eq( 0 ).simulate( "drag", { dx: 10 } ); + element.one( "slidestart", function( event, ui ) { + equal( handles.index( ui.handle ), 0, "left handle activated if left was moved last" ); }); - handles.eq(0).simulate( "drag", { dx: 10 } ); - el.slider( "destroy" ); + handles.eq( 0 ).simulate( "drag", { dx: 10 } ); + element.slider( "destroy" ); - el = $( "#slider1" ) + element = $( "#slider1" ) .slider({ values: [ 19, 20 ] }), - handles = el.find( ".ui-slider-handle" ); - handles.eq(1).simulate( "drag", { dx: -10 } ); - el.one("slidestart", function(event, ui) { - equal(handles.index(ui.handle), 1, "right handle activated if right was moved last (#3467)"); + handles = element.find( ".ui-slider-handle" ); + handles.eq( 1 ).simulate( "drag", { dx: -10 } ); + element.one( "slidestart", function( event, ui ) { + equal( handles.index( ui.handle ), 1, "right handle activated if right was moved last (#3467)" ); }); - handles.eq(0).simulate( "drag", { dx: 10 } ); + handles.eq( 0 ).simulate( "drag", { dx: 10 } ); }); -}( jQuery ) ); +})( jQuery ); diff --git a/tests/unit/slider/slider_methods.js b/tests/unit/slider/slider_methods.js index 73b8eb739..75df230a6 100644 --- a/tests/unit/slider/slider_methods.js +++ b/tests/unit/slider/slider_methods.js @@ -1,99 +1,99 @@ /* * slider_methods.js */ -(function($) { +(function( $ ) { -module("slider: methods"); +module( "slider: methods" ); -test("init", function() { +test( "init", function() { expect(5); - $("<div></div>").appendTo("body").slider().remove(); - ok(true, ".slider() called on element"); + $( "<div></div>" ).appendTo( "body" ).slider().remove(); + ok( true, ".slider() called on element" ); - $([]).slider().remove(); - ok(true, ".slider() called on empty collection"); + $( [] ).slider().remove(); + ok( true, ".slider() called on empty collection" ); - $("<div></div>").slider().remove(); - ok(true, ".slider() called on disconnected DOMElement"); + $( "<div></div>" ).slider().remove(); + ok( true, ".slider() called on disconnected DOMElement" ); - var el = $("<div></div>").slider(); - el.slider("option", "foo"); - el.remove(); - ok(true, "arbitrary option getter after init"); + var element = $( "<div></div>" ).slider(); + element.slider( "option", "foo" ); + element.remove(); + ok( true, "arbitrary option getter after init" ); - $("<div></div>").slider().slider("option", "foo", "bar").remove(); - ok(true, "arbitrary option setter after init"); + $( "<div></div>" ).slider().slider( "option", "foo", "bar" ).remove(); + ok( true, "arbitrary option setter after init" ); }); -test("destroy", function() { +test( "destroy", function() { expect( 1 ); domEqual( "#slider1", function() { $( "#slider1" ).slider().slider( "destroy" ); }); }); -test("enable", function() { +test( "enable", function() { expect( 5 ); - var el, - expected = $("<div></div>").slider(), - actual = expected.slider("enable"); - equal(actual, expected, "enable is chainable"); + var element, + expected = $( "<div></div>" ).slider(), + actual = expected.slider( "enable" ); + equal(actual, expected, "enable is chainable" ); - el = $("<div></div>").slider({ disabled: true }); - ok(el.hasClass("ui-state-disabled"), "slider has ui-state-disabled class before enable method call"); - ok(el.hasClass("ui-slider-disabled"), "slider has ui-slider-disabled class before enable method call"); - el.slider("enable"); - ok(!el.hasClass("ui-state-disabled"), "slider does not have ui-state-disabled class after enable method call"); - ok(!el.hasClass("ui-slider-disabled"), "slider does not have ui-slider-disabled class after enable method call"); + element = $( "<div></div>" ).slider({ disabled: true }); + ok( element.hasClass( "ui-state-disabled" ), "slider has ui-state-disabled class before enable method call" ); + ok( element.hasClass( "ui-slider-disabled" ), "slider has ui-slider-disabled class before enable method call" ); + element.slider( "enable" ); + ok( !element.hasClass( "ui-state-disabled" ), "slider does not have ui-state-disabled class after enable method call" ); + ok( !element.hasClass( "ui-slider-disabled" ), "slider does not have ui-slider-disabled class after enable method call" ); }); -test("disable", function() { +test( "disable", function() { expect( 5 ); - var el, - expected = $("<div></div>").slider(), - actual = expected.slider("disable"); - equal(actual, expected, "disable is chainable"); + var element, + expected = $( "<div></div>" ).slider(), + actual = expected.slider( "disable" ); + equal(actual, expected, "disable is chainable" ); - el = $("<div></div>").slider({ disabled: false }); - ok(!el.hasClass("ui-state-disabled"), "slider does not have ui-state-disabled class before disabled method call"); - ok(!el.hasClass("ui-slider-disabled"), "slider does not have ui-slider-disabled class before disable method call"); - el.slider("disable"); - ok(el.hasClass("ui-state-disabled"), "slider has ui-state-disabled class after disable method call"); - ok(el.hasClass("ui-slider-disabled"), "slider has ui-slider-disabled class after disable method call"); + element = $( "<div></div>" ).slider({ disabled: false }); + ok( !element.hasClass( "ui-state-disabled" ), "slider does not have ui-state-disabled class before disabled method call" ); + ok( !element.hasClass( "ui-slider-disabled" ), "slider does not have ui-slider-disabled class before disable method call" ); + element.slider( "disable" ); + ok( element.hasClass( "ui-state-disabled" ), "slider has ui-state-disabled class after disable method call" ); + ok( element.hasClass( "ui-slider-disabled" ), "slider has ui-slider-disabled class after disable method call" ); }); -test("value", function() { +test( "value", function() { expect( 17 ); - $([false, "min", "max"]).each(function() { - var el = $("<div></div>").slider({ + $( [ false, "min", "max" ] ).each(function() { + var element = $( "<div></div>" ).slider({ range: this, value: 5 }); - equal(el.slider("value"), 5, "range: " + this + " slider method get"); - equal(el.slider("value", 10), el, "value method is chainable"); - equal(el.slider("value"), 10, "range: " + this + " slider method set"); - el.remove(); + equal( element.slider( "value" ), 5, "range: " + this + " slider method get" ); + equal( element.slider( "value", 10), element, "value method is chainable" ); + equal( element.slider( "value" ), 10, "range: " + this + " slider method set" ); + element.remove(); }); - var el = $("<div></div>").slider({ + var element = $( "<div></div>" ).slider({ min: -1, value: 0, max: 1 }); // min with value option vs value method - el.slider("option", "value", -2); - equal(el.slider("option", "value"), -2, "value option does not respect min"); - equal(el.slider("value"), -1, "value method get respects min"); - equal(el.slider("value", -2), el, "value method is chainable"); - equal(el.slider("option", "value"), -1, "value method set respects min"); + element.slider( "option", "value", -2 ); + equal( element.slider( "option", "value" ), -2, "value option does not respect min" ); + equal( element.slider( "value" ), -1, "value method get respects min" ); + equal( element.slider( "value", -2 ), element, "value method is chainable" ); + equal( element.slider( "option", "value" ), -1, "value method set respects min" ); // max with value option vs value method - el.slider("option", "value", 2); - equal(el.slider("option", "value"), 2, "value option does not respect max"); - equal(el.slider("value"), 1, "value method get respects max"); - equal(el.slider("value", 2), el, "value method is chainable"); - equal(el.slider("option", "value"), 1, "value method set respects max"); + element.slider( "option", "value", 2); + equal( element.slider( "option", "value" ), 2, "value option does not respect max" ); + equal( element.slider( "value" ), 1, "value method get respects max" ); + equal( element.slider( "value", 2 ), element, "value method is chainable" ); + equal( element.slider( "option", "value" ), 1, "value method set respects max" ); }); -//test("values", function() { -// ok(false, "missing test - untested code is broken code."); +//test( "values", function() { +// ok(false, "missing test - untested code is broken code." ); //}); -})(jQuery); +})( jQuery ); diff --git a/tests/unit/slider/slider_options.js b/tests/unit/slider/slider_options.js index d354ef91c..dfa94696a 100644 --- a/tests/unit/slider/slider_options.js +++ b/tests/unit/slider/slider_options.js @@ -1,19 +1,50 @@ /* * slider_options.js */ -(function($) { +(function( $ ) { -var el, options; +var element, options; function handle() { - return el.find(".ui-slider-handle"); + return element.find( ".ui-slider-handle" ); } -module("slider: options"); +module( "slider: options" ); -test("max", function() { +test( "disabled", function(){ + expect( 8 ); + var count = 0; + + element = $( "#slider1" ).slider(); + element.on( "slidestart", function() { + count++; + }); + + // enabled + ok( !element.hasClass( "ui-slider-disabled" ), "no disabled class" ); + equal( element.slider( "option", "disabled" ), false , "is not disabled" ); + + handle().simulate( "drag", { dx: 10 } ); + equal( count, 1, "slider moved" ); + + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal( count, 2, "slider moved" ); + + // disabled + element.slider( "option", "disabled", true ); + ok( element.hasClass( "ui-slider-disabled" ), "has disabled class" ); + equal( element.slider( "option", "disabled" ), true, "is disabled" ); + + handle().simulate( "drag", { dx: 10 } ); + equal( count, 2, "slider did not move" ); + + handle().simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + equal( count, 2, "slider did not move" ); +}); + +test( "max", function() { expect( 2 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 37, @@ -23,16 +54,16 @@ test("max", function() { value: 50 }; - el.slider(options); - ok(el.slider("option", "value") === options.value, "value option is not contained by max"); - ok(el.slider("value") === options.max, "value method is contained by max"); - el.slider("destroy"); + element.slider( options ); + ok(element.slider( "option", "value" ) === options.value, "value option is not contained by max" ); + ok(element.slider( "value" ) === options.max, "value method is contained by max" ); + element.slider( "destroy" ); }); -test("min", function() { +test( "min", function() { expect( 2 ); - el = $("<div></div>"); + element = $( "<div></div>" ); options = { max: 37, @@ -42,16 +73,16 @@ test("min", function() { value: 2 }; - el.slider(options); - ok(el.slider("option", "value") === options.value, "value option is not contained by min"); - ok(el.slider("value") === options.min, "value method is contained by min"); - el.slider("destroy"); + element.slider( options ); + ok( element.slider( "option", "value" ) === options.value, "value option is not contained by min" ); + ok( element.slider( "value" ) === options.min, "value method is contained by min" ); + element.slider( "destroy" ); }); -test("orientation", function() { +test( "orientation", function() { expect( 6 ); - el = $("#slider1"); + element = $( "#slider1" ); options = { max: 2, @@ -60,14 +91,14 @@ test("orientation", function() { value: 1 }; - var percentVal = (options.value - options.min) / (options.max - options.min) * 100; + var percentVal = ( options.value - options.min ) / ( options.max - options.min ) * 100; - el.slider(options).slider("option", "orientation", "horizontal"); - ok(el.is(".ui-slider-horizontal"), "horizontal slider has class .ui-slider-horizontal"); - ok(!el.is(".ui-slider-vertical"), "horizontal slider does not have class .ui-slider-vertical"); - equal(handle()[0].style.left, percentVal + "%", "horizontal slider handle is positioned with left: %"); + element.slider( options ).slider( "option", "orientation", "horizontal" ); + ok( element.is( ".ui-slider-horizontal" ), "horizontal slider has class .ui-slider-horizontal" ); + ok( !element.is( ".ui-slider-vertical" ), "horizontal slider does not have class .ui-slider-vertical" ); + equal( handle()[0].style.left, percentVal + "%", "horizontal slider handle is positioned with left: %" ); - el.slider("destroy"); + element.slider( "destroy" ) ; options = { max: 2, @@ -76,100 +107,199 @@ test("orientation", function() { value: -1 }; - percentVal = (options.value - options.min) / (options.max - options.min) * 100; + percentVal = ( options.value - options.min ) / ( options.max - options.min ) * 100; - el.slider(options).slider("option", "orientation", "vertical"); - ok(el.is(".ui-slider-vertical"), "vertical slider has class .ui-slider-vertical"); - ok(!el.is(".ui-slider-horizontal"), "vertical slider does not have class .ui-slider-horizontal"); - equal(handle()[0].style.bottom, percentVal + "%", "vertical slider handle is positioned with bottom: %"); + element.slider( options ).slider( "option", "orientation", "vertical" ); + ok( element.is( ".ui-slider-vertical" ), "vertical slider has class .ui-slider-vertical" ); + ok( !element.is( ".ui-slider-horizontal" ), "vertical slider does not have class .ui-slider-horizontal" ); + equal( handle()[0].style.bottom, percentVal + "%", "vertical slider handle is positioned with bottom: %" ); - el.slider("destroy"); + element.slider( "destroy" ); }); -//test("range", function() { -// ok(false, "missing test - untested code is broken code."); -//}); - //spec: http://wiki.jqueryui.com/Slider#specs // value option/method: the value option is not restricted by min/max/step. // What is returned by the value method is restricted by min (>=), max (<=), and step (even multiple) -test("step", function() { +test( "step", function() { expect( 9 ); - var el = $("<div></div>").slider({ + element = $( "<div></div>" ).slider({ min: 0, value: 0, step: 10, max: 100 }); - equal( el.slider("value"), 0 ); + equal( element.slider( "value" ), 0 ); - el.slider("value", 1); - equal( el.slider("value"), 0 ); + element.slider( "value", 1 ); + equal( element.slider( "value" ), 0 ); - el.slider("value", 9); - equal( el.slider("value"), 10 ); + element.slider( "value", 9 ); + equal( element.slider( "value" ), 10 ); - el.slider("value", 11); - equal( el.slider("value"), 10 ); + element.slider( "value", 11 ); + equal( element.slider( "value" ), 10 ); - el.slider("value", 19); - equal( el.slider("value"), 20 ); + element.slider( "value", 19 ); + equal( element.slider( "value" ), 20 ); - el = $("<div></div>").slider({ + element = $( "<div></div>" ).slider({ min: 0, value: 0, step: 20, max: 100 }); - el.slider("value", 0); + element.slider( "value", 0 ); - el.slider("option", "value", 1); - equal( el.slider("value"), 0 ); + element.slider( "option", "value", 1 ); + equal( element.slider( "value" ), 0 ); - el.slider("option", "value", 9); - equal( el.slider("value"), 0 ); + element.slider( "option", "value", 9 ); + equal( element.slider( "value" ), 0 ); - el.slider("option", "value", 11); - equal( el.slider("value"), 20 ); + element.slider( "option", "value", 11 ); + equal( element.slider( "value" ), 20 ); - el.slider("option", "value", 19); - equal( el.slider("value"), 20 ); + element.slider( "option", "value", 19 ); + equal( element.slider( "value" ), 20 ); - el.slider("destroy"); + element.slider( "destroy" ); }); -//test("value", function() { -// ok(false, "missing test - untested code is broken code."); +//test( "value", function() { +// ok(false, "missing test - untested code is broken code." ); //}); -test("values", function() { +test( "values", function() { expect( 2 ); // testing multiple ranges on the same page, the object reference to the values // property is preserved via multiple range elements, so updating options.values // of 1 slider updates options.values of all the others var ranges = $([ - document.createElement("div"), - document.createElement("div") + document.createElement( "div" ), + document.createElement( "div" ) ]).slider({ range: true, values: [ 25, 75 ] }); notStrictEqual( - ranges.eq(0).data("uiSlider").options.values, - ranges.eq(1).data("uiSlider").options.values, + ranges.eq( 0 ).data( "uiSlider" ).options.values, + ranges.eq( 1 ).data( "uiSlider" ).options.values, "multiple range sliders should not have a reference to the same options.values array" ); - ranges.eq(0).slider("values", 0, 10); + ranges.eq( 0 ).slider( "values", 0, 10 ); notEqual( - ranges.eq(0).slider("values", 0), - ranges.eq(1).slider("values", 0), + ranges.eq( 0 ).slider( "values", 0 ), + ranges.eq( 1 ).slider( "values", 0 ), "the values for multiple sliders should be different" ); }); -})(jQuery); +test( "range", function() { + expect( 27 ); + var range; + + // min + element = $( "<div></div>" ).slider({ + range: "min", + min: 1, + max: 10, + step: 1 + }); + + equal( element.find( ".ui-slider-handle" ).length, 1, "range min, one handle" ); + equal( element.find( ".ui-slider-range-min" ).length, 1, "range min" ); + element.slider( "destroy" ); + + // max + element = $( "<div></div>" ).slider({ + range: "max", + min: 1, + max: 10, + step: 1 + }); + + equal( element.find( ".ui-slider-handle" ).length, 1, "range max, one handle" ); + equal( element.find( ".ui-slider-range-max" ).length, 1, "range max" ); + element.slider( "destroy" ); + + // true + element = $( "<div></div>" ).slider({ + range: true, + min: 1, + max: 10, + step: 1 + }); + + range = element.find( ".ui-slider-range" ); + equal( element.find( ".ui-slider-handle" ).length, 2, "range true, two handles" ); + ok( !range.is( ".ui-slider-range-min" ), "range true" ); + ok( !range.is( ".ui-slider-range-max" ), "range true" ); + element.slider( "destroy" ); + + // Change range from min to max + element = $( "<div></div>" ).slider({ + range: "min", + min: 1, + max: 10, + step: 1 + }).slider( "option", "range", "max" ); + + equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from min to max, one handle" ); + equal( element.find( ".ui-slider-range-min" ).length, 0, "range switch from min to max" ); + equal( element.find( ".ui-slider-range-max" ).length, 1, "range switch from min to max" ); + element.slider( "destroy" ); + + // Change range from max to min + element = $( "<div></div>" ).slider({ + range: "max", + min: 1, + max: 10, + step: 1 + }).slider( "option", "range", "min" ); + + equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from max to min, one handle" ); + equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from max to min" ); + equal( element.find( ".ui-slider-range-min" ).length, 1, "range switch from max to min" ); + element.slider( "destroy" ); + + // Change range from max to true + element = $( "<div></div>" ).slider({ + range: "max", + min: 1, + max: 10, + step: 1 + }).slider( "option", "range", true ); + + equal( element.find( ".ui-slider-handle" ).length, 2, "range switch from max to true, two handles" ); + equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from max to true" ); + equal( element.find( ".ui-slider-range-min" ).length, 0, "range switch from max to true" ); + equal( element.slider( "option", "value" ), 0 , "option value" ); + equal( element.slider( "value" ), 1 , "value" ); + deepEqual( element.slider( "option", "values" ), [1, 1], "option values" ); + deepEqual( element.slider( "values" ), [1, 1], "values" ); + element.slider( "destroy" ); + + // Change range from true to min + element = $( "<div></div>" ).slider({ + range: true, + min: 1, + max: 10, + step: 1 + }).slider( "option", "range", "min" ); + + equal( element.find( ".ui-slider-handle" ).length, 1, "range switch from true to min, one handle" ); + equal( element.find( ".ui-slider-range-max" ).length, 0, "range switch from true to min" ); + equal( element.find( ".ui-slider-range-min" ).length, 1, "range switch from true to min" ); + equal( element.slider( "option", "value" ), 1, "value" ); + equal( element.slider( "value" ), 1 , "value" ); + equal( element.slider( "option", "values" ), null, "values" ); + deepEqual( element.slider( "values" ), [] , "values" ); + element.slider( "destroy" ); +}); + +})( jQuery ); diff --git a/tests/unit/sortable/all.html b/tests/unit/sortable/all.html index 799a323c5..060883ef6 100644 --- a/tests/unit/sortable/all.html +++ b/tests/unit/sortable/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Sortable Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/spinner/all.html b/tests/unit/spinner/all.html index bb648ea1f..b6df4d460 100644 --- a/tests/unit/spinner/all.html +++ b/tests/unit/spinner/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Spinner Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/subsuite.js b/tests/unit/subsuite.js index 7708696a3..1efb2f834 100644 --- a/tests/unit/subsuite.js +++ b/tests/unit/subsuite.js @@ -4,7 +4,7 @@ var versions = [ "1.6", "1.6.1", "1.6.2", "1.6.3", "1.6.4", "1.7", "1.7.1", "1.7.2", "1.8.0", "1.8.1", "1.8.2", "1.8.3", - "1.9.0", + "1.9.0", "1.9.1", "git" ], additionalTests = { diff --git a/tests/unit/tabs/all.html b/tests/unit/tabs/all.html index f7a01d968..ab96cc3aa 100644 --- a/tests/unit/tabs/all.html +++ b/tests/unit/tabs/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Tabs Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/tooltip/all.html b/tests/unit/tooltip/all.html index f0654586e..2b1ce5008 100644 --- a/tests/unit/tooltip/all.html +++ b/tests/unit/tooltip/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Tooltip Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> diff --git a/tests/unit/widget/all.html b/tests/unit/widget/all.html index d840a17ba..eeec4d0d9 100644 --- a/tests/unit/widget/all.html +++ b/tests/unit/widget/all.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <title>jQuery UI Widget Test Suite</title> - <script src="../../../jquery-1.9.0.js"></script> + <script src="../../../jquery-1.9.1.js"></script> <link rel="stylesheet" href="../../../external/qunit.css"> <link rel="stylesheet" href="../qunit-composite.css"> |