From eeda4eadb7e20b0ddb77c6e2538b7cab7a7c65ff Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Mon, 22 Mar 2010 03:39:32 +0100 Subject: Updated AUTHORS.txt with URLs to website and Github, thanks Ralph --- AUTHORS.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AUTHORS.txt b/AUTHORS.txt index 637175b76..b2168655e 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,8 +1,8 @@ -jQuery UI Authors (http://ui.jquery.com/about) +jQuery UI Authors (http://jqueryui.com/about) This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history -and logs, available at http://jquery-ui.googlecode.com/svn/ +and logs, available at http://github.com/jquery/jquery-ui Brandon Aaron Paul Bakaus (paulbakaus.com) -- cgit v1.2.3 From 596d1ef581379d35104e2eb466797b5d89cc6f1a Mon Sep 17 00:00:00 2001 From: Scott González Date: Mon, 22 Mar 2010 07:53:34 -0400 Subject: Dialog: Use .height(0) instead of .hide(0) when determining the size of the non-content area of a dialog. Partial fix for #5392 - Dialog explicit height doesn't match given value from set option. --- ui/jquery.ui.dialog.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index 0291c3da0..4e164dbe8 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -623,7 +623,7 @@ $.widget("ui.dialog", { // reset content sizing // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350) this.element.css('width', 'auto') - .hide(); + .height(0); // reset wrapper sizing // determine the height of all the non-content elements -- cgit v1.2.3 From e7c2eb42d08c5ee7b444c3c0274758df46202dfb Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Mon, 22 Mar 2010 21:44:32 +0100 Subject: Remove width:100%; from menu-item styles (was there for icon-support, which was dropped); also fixed the nested-menu visual test to position properly in IE6 --- tests/visual/menu/nested.html | 15 ++++++++++----- themes/base/jquery.ui.autocomplete.css | 1 - 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/visual/menu/nested.html b/tests/visual/menu/nested.html index a332e2440..96a0379d3 100644 --- a/tests/visual/menu/nested.html +++ b/tests/visual/menu/nested.html @@ -106,11 +106,16 @@ $("button").click(function(event) { // TODO required to prevent the click handler below from handling this event event.stopPropagation(); - nestedmenu.nestedmenu("show").position({ - my: "left top", - at: "right top", - of: event.pageX > 0 ? event : this - }); + nestedmenu.nestedmenu("show") + .css({ + top: 0, + left: 0 + }) + .position({ + my: "left top", + at: "right top", + of: this + }); $(document).one("click", function() { nestedmenu.nestedmenu("hide"); }) diff --git a/themes/base/jquery.ui.autocomplete.css b/themes/base/jquery.ui.autocomplete.css index bdd41e1b7..1263f935d 100644 --- a/themes/base/jquery.ui.autocomplete.css +++ b/themes/base/jquery.ui.autocomplete.css @@ -20,7 +20,6 @@ .ui-menu .ui-menu-item { margin:0; padding: 0; - width: 100%; } .ui-menu .ui-menu-item a { text-decoration:none; -- cgit v1.2.3 From 7443cb8e40925bea435a32613c4ff40d1d9c7f5f Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Tue, 23 Mar 2010 05:10:54 +0100 Subject: Menu: Testing nested menus without the DOM restructuring, just need to fix display issue in IE6 --- tests/visual/menu/nested2.html | 103 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 tests/visual/menu/nested2.html diff --git a/tests/visual/menu/nested2.html b/tests/visual/menu/nested2.html new file mode 100644 index 000000000..837fb7568 --- /dev/null +++ b/tests/visual/menu/nested2.html @@ -0,0 +1,103 @@ + + + + Menu Visual Test: Default + + + + + + + + + + + + + + +
+ + + + +
+ Log: +
+
+ + + -- cgit v1.2.3 From 467b6f9bb606003d61aae9e77fc85f39d264d7de Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Tue, 23 Mar 2010 20:23:15 +0100 Subject: Update testswarm url for new server --- tests/unit/testsuite.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index 67b980d18..9a16e9d0c 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -45,5 +45,5 @@ function commonWidgetTests(widget, settings) { if ( !url || url.indexOf("http") !== 0 ) { return; } - document.write(""); + document.write(""); })(); -- cgit v1.2.3 From f2873b6ebf427edd013eaef37adf5cbd4c06a1cf Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 24 Mar 2010 07:15:30 -0700 Subject: Menu: Ignore clicks that don't occur on the anchor tag within a valid menu item. Fixes #5376 - Menu plugin fires select when border is clicked. --- ui/jquery.ui.autocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index fab7a6287..83a8cf7a4 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -335,7 +335,7 @@ $.widget("ui.menu", { "aria-activedescendant": "ui-active-menuitem" }) .click(function( event ) { - if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { + if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { return; } // temporary -- cgit v1.2.3 From b4729e55127a63c5830c7e65c36c560786fd973f Mon Sep 17 00:00:00 2001 From: Scott González Date: Wed, 24 Mar 2010 13:24:19 -0400 Subject: Autocomplete demo: Removed todo (already captured in trac). --- demos/autocomplete/remote.html | 1 - 1 file changed, 1 deletion(-) diff --git a/demos/autocomplete/remote.html b/demos/autocomplete/remote.html index 3b0d7096d..9414102e6 100644 --- a/demos/autocomplete/remote.html +++ b/demos/autocomplete/remote.html @@ -18,7 +18,6 @@ } $("#birds").autocomplete({ - // TODO doesn't work when loaded from /demos/#autocomplete|remote source: "search.php", minLength: 2, select: function(event, ui) { -- cgit v1.2.3 From b7ad981e6965ecf92882b98ca99bb3108748ffe7 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Wed, 24 Mar 2010 17:01:30 -0400 Subject: Fixing styles for menu to work properly in IEs, even with nested menus (updated the nested-menu protoype nested2.html with themeroller) - kills the hover-border in IE6, but we have to live with that --- tests/visual/menu/nested2.html | 7 +++++++ themes/base/jquery.ui.autocomplete.css | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/tests/visual/menu/nested2.html b/tests/visual/menu/nested2.html index 837fb7568..7bd494647 100644 --- a/tests/visual/menu/nested2.html +++ b/tests/visual/menu/nested2.html @@ -10,8 +10,15 @@ + @@ -45,7 +172,6 @@ body { font-size:62.5%; } .ui-menu { width: 200px; position: absolute; } .ui-menu .ui-icon { float: right; } - ul, li {margin: 0; padding: 0} -- cgit v1.2.3 From 27c5debb599b40dc9bd4d0c2267fa2afd48cbfc2 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Wed, 24 Mar 2010 18:01:43 -0400 Subject: Improved drilldown keyboard handling --- tests/visual/menu/drilldown.html | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html index 78b8cf9f2..a97d8322c 100644 --- a/tests/visual/menu/drilldown.html +++ b/tests/visual/menu/drilldown.html @@ -14,7 +14,7 @@ $.widget("ui.drilldown", { _init: function() { var self = this; - this.active = this.element; + this.active = this.element.find(">ul").attr("tabindex", 0); // hide submenus and create indicator icons this.element.find("ul").hide().prev("a").prepend('').end().filter(":first").show(); @@ -84,17 +84,21 @@ parent.parent().removeData("submenu"); submenu = submenu.data("submenu"); }; + }, + + widget: function() { + return this.element.find(">ul"); } }); - var nestedmenu = $("#drilldown").drilldown({ + var drilldown = $("#drilldown").drilldown({ selected: function(event, ui) { $("#log").append("
Selected " + ui.item.text() + "
"); } }); - $().keydown(function(event) { - var menu = nestedmenu.data("drilldown").active.data("menu"); + drilldown.drilldown("widget").keydown(function(event) { + var menu = drilldown.data("drilldown").active.data("menu"); if (menu.widget().is(":hidden")) return; event.stopPropagation(); @@ -109,10 +113,10 @@ menu.previous(); break; case $.ui.keyCode.LEFT: - nestedmenu.nestedmenu("up"); + drilldown.drilldown("up"); break; case $.ui.keyCode.RIGHT: - nestedmenu.nestedmenu("down"); + drilldown.drilldown("down"); break; case $.ui.keyCode.DOWN: menu.next(); @@ -121,11 +125,11 @@ case $.ui.keyCode.ENTER: case $.ui.keyCode.TAB: menu.select(); - nestedmenu.nestedmenu("hide"); + drilldown.drilldown("hide"); event.preventDefault(); break; case $.ui.keyCode.ESCAPE: - nestedmenu.nestedmenu("hide"); + drilldown.drilldown("hide"); break; default: clearTimeout(menu.filterTimer); -- cgit v1.2.3 From 37774bb516b448d337062ad7431afda0966476b8 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Wed, 24 Mar 2010 23:32:37 -0400 Subject: Menu: new prototype for drilldown menu with keyboard handling --- tests/visual/menu/drilldown2.html | 235 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 tests/visual/menu/drilldown2.html diff --git a/tests/visual/menu/drilldown2.html b/tests/visual/menu/drilldown2.html new file mode 100644 index 000000000..be50fc085 --- /dev/null +++ b/tests/visual/menu/drilldown2.html @@ -0,0 +1,235 @@ + + + + Menu Visual Test: Default + + + + + + + + + + + + + +
+

Make a selection...

+ + Go back +
+ +
+ Log: +
+
+ + + -- cgit v1.2.3 From 0752719de17d02556cc28359ac1adf451e773a74 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Thu, 25 Mar 2010 11:27:08 -0400 Subject: Drilldown menu: Fixing type-to-search, missing event argument to menu-activate method --- tests/visual/menu/drilldown2.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/visual/menu/drilldown2.html b/tests/visual/menu/drilldown2.html index be50fc085..0c18c3679 100644 --- a/tests/visual/menu/drilldown2.html +++ b/tests/visual/menu/drilldown2.html @@ -152,7 +152,7 @@ }); } if (match.length) { - menu.activate(match); + menu.activate(event, match); if (match.length > 1) { menu.previousFilter = character; menu.filterTimer = setTimeout(function() { -- cgit v1.2.3 From 04115422b53e30caf76a923234d69c0122b0dcb6 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Thu, 25 Mar 2010 16:17:52 -0400 Subject: Updating to latest QUnit --- external/qunit.js | 46 +++++++++++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/external/qunit.js b/external/qunit.js index f2704148e..41e6c82f5 100644 --- a/external/qunit.js +++ b/external/qunit.js @@ -18,6 +18,7 @@ var QUnit = { stats: { all: 0, bad: 0 }, moduleStats: { all: 0, bad: 0 }, started: +new Date, + updateRate: 1000, blocking: false, autorun: false, assertions: [], @@ -590,8 +591,16 @@ function synchronize( callback ) { } function process() { + var start = (new Date()).getTime(); + while ( config.queue.length && !config.blocking ) { - config.queue.shift()(); + if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) { + config.queue.shift()(); + + } else { + setTimeout( process, 13 ); + break; + } } } @@ -679,6 +688,7 @@ QUnit.equiv = function () { var innerEquiv; // the real equiv function var callers = []; // stack to decide between skip/abort functions + var parents = []; // stack to avoiding loops from circular referencing // Determine what is o. @@ -788,28 +798,39 @@ QUnit.equiv = function () { }, "array": function (b, a) { - var i; + var i, j, loop; var len; // b could be an object literal here if ( ! (hoozit(b) === "array")) { return false; - } - + } + len = a.length; if (len !== b.length) { // safe and faster return false; } + + //track reference to avoid circular references + parents.push(a); for (i = 0; i < len; i++) { - if ( ! innerEquiv(a[i], b[i])) { + loop = false; + for(j=0;j Date: Thu, 25 Mar 2010 16:40:43 -0400 Subject: Core unit tests: Include testsuite.js for the testswarm include --- tests/unit/core/core.html | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/unit/core/core.html b/tests/unit/core/core.html index eb0d2f930..843344ca7 100644 --- a/tests/unit/core/core.html +++ b/tests/unit/core/core.html @@ -11,6 +11,7 @@ + -- cgit v1.2.3 From b297b3fa6a1e4b6cba735a10ca03a6175f8eda3a Mon Sep 17 00:00:00 2001 From: Scott González Date: Thu, 25 Mar 2010 21:58:08 -0400 Subject: Fixed size calculations for dialogs. Fixes #5392 - Dialog explicit height doesn't match given value from set option. --- ui/jquery.ui.dialog.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js index 4e164dbe8..6e538b6e5 100644 --- a/ui/jquery.ui.dialog.js +++ b/ui/jquery.ui.dialog.js @@ -622,8 +622,11 @@ $.widget("ui.dialog", { // reset content sizing // hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350) - this.element.css('width', 'auto') - .height(0); + this.element.css({ + width: 'auto', + minHeight: 0, + height: 0 + }); // reset wrapper sizing // determine the height of all the non-content elements -- cgit v1.2.3 From 56a3d4cbff390dcca57d33a9e23325d76f7300f2 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 10:59:34 -0400 Subject: Autocomplete: Use $.ui.autocomplete.escapeRegex in combobox demo; Fixes #5436 Autocomplete: use $.ui.autocomplete.escapeRegex in combox demo --- demos/autocomplete/combobox.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/autocomplete/combobox.html b/demos/autocomplete/combobox.html index e5dc6c92b..4c6b656a1 100644 --- a/demos/autocomplete/combobox.html +++ b/demos/autocomplete/combobox.html @@ -33,7 +33,7 @@ if (!request.term || matcher.test(text)) return { id: $(this).val(), - label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"), + label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"), value: text }; })); -- cgit v1.2.3 From 40e36371173ba2304623fac3ab81ee2d63187649 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 12:40:46 -0400 Subject: Added $.ui.keyCode.ALT to complete list of metakeys, used in autocomplete --- ui/jquery.ui.autocomplete.js | 2 +- ui/jquery.ui.core.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index 83a8cf7a4..eb07b4a4e 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -70,7 +70,7 @@ $.widget( "ui.autocomplete", { case keyCode.RIGHT: case keyCode.SHIFT: case keyCode.CONTROL: - case 18: + case keyCode.ALT: // ignore metakeys (shift, ctrl, alt) break; default: diff --git a/ui/jquery.ui.core.js b/ui/jquery.ui.core.js index e0e1727ee..197a1aba9 100644 --- a/ui/jquery.ui.core.js +++ b/ui/jquery.ui.core.js @@ -70,6 +70,7 @@ $.ui = { }, keyCode: { + ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, -- cgit v1.2.3 From 6d9caf1e230b7b9a4291a8e3525eefad2f08b6f8 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 12:42:03 -0400 Subject: Autocomplete: Only remove classes actually added by the widget, ui-widget etc. aren't added, so don't remove them --- ui/jquery.ui.autocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index eb07b4a4e..a1d798c59 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -140,7 +140,7 @@ $.widget( "ui.autocomplete", { destroy: function() { this.element - .removeClass( "ui-autocomplete-input ui-widget ui-widget-content" ) + .removeClass( "ui-autocomplete-input" ) .removeAttr( "autocomplete" ) .removeAttr( "role" ) .removeAttr( "aria-autocomplete" ) -- cgit v1.2.3 From 9541bd0bf2ca72795e8f2b2c1d3accc32afcac96 Mon Sep 17 00:00:00 2001 From: Scott González Date: Fri, 26 Mar 2010 19:53:43 -0400 Subject: Position: Use parseInt() to prevent fractional pixel values. Fixes #5280 - ui.position generates different position in static context. --- tests/unit/position/position.html | 4 ++++ tests/unit/position/position_core.js | 18 ++++++++++++++++++ ui/jquery.ui.position.js | 4 ++++ 3 files changed, 26 insertions(+) diff --git a/tests/unit/position/position.html b/tests/unit/position/position.html index 5a54e44c9..ca5f2585d 100644 --- a/tests/unit/position/position.html +++ b/tests/unit/position/position.html @@ -43,5 +43,9 @@
+
+
+
+ diff --git a/tests/unit/position/position_core.js b/tests/unit/position/position_core.js index 4d2716ced..57e02da0a 100644 --- a/tests/unit/position/position_core.js +++ b/tests/unit/position/position_core.js @@ -330,4 +330,22 @@ test("collision: none, with offset", function() { }, { top: -13, left: -12 }, "left top, negative offset"); }); +//test('bug #5280: consistent results (avoid fractional values)', function() { +// var wrapper = $('#bug-5280'), +// elem = wrapper.children(), +// offset1 = elem.position({ +// my: 'center', +// at: 'center', +// of: wrapper, +// collision: 'none' +// }).offset(), +// offset2 = elem.position({ +// my: 'center', +// at: 'center', +// of: wrapper, +// collision: 'none' +// }).offset(); +// same(offset1, offset2); +//}); + })(jQuery); diff --git a/ui/jquery.ui.position.js b/ui/jquery.ui.position.js index f01640e18..11f8baa06 100644 --- a/ui/jquery.ui.position.js +++ b/ui/jquery.ui.position.js @@ -113,6 +113,10 @@ $.fn.position = function( options ) { position.top -= elemHeight / 2; } + // prevent fractions (see #5280) + position.left = parseInt( position.left ); + position.top = parseInt( position.top ); + $.each( [ "left", "top" ], function( i, dir ) { if ( $.ui.position[ collision[i] ] ) { $.ui.position[ collision[i] ][ dir ]( position, { -- cgit v1.2.3 From cd32b3fc5a8eca0096594a8e9946223529b815c9 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 19:59:17 -0400 Subject: Menu prototypes: Remove early nested and drilldown prototypes, to be replaced with nested2/drilldown2 --- tests/visual/menu/drilldown.html | 234 ----------------------------------- tests/visual/menu/nested.html | 255 --------------------------------------- 2 files changed, 489 deletions(-) delete mode 100644 tests/visual/menu/drilldown.html delete mode 100644 tests/visual/menu/nested.html diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html deleted file mode 100644 index a97d8322c..000000000 --- a/tests/visual/menu/drilldown.html +++ /dev/null @@ -1,234 +0,0 @@ - - - - Menu Visual Test: Default - - - - - - - - - - - - -
-

Make a selection...

- -
- -
- Log: -
-
- - - diff --git a/tests/visual/menu/nested.html b/tests/visual/menu/nested.html deleted file mode 100644 index 96a0379d3..000000000 --- a/tests/visual/menu/nested.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - Menu Visual Test: Default - - - - - - - - - - - - - - - - -
- Log: -
-
- - - -- cgit v1.2.3 From e49af16c5a4b00a99e0be940022c2313eaf7c7b3 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 20:00:54 -0400 Subject: Menu prototypes: Renamed newer ones to old names --- tests/visual/menu/drilldown.html | 235 +++++++++++++++++++++++++++++++++++++ tests/visual/menu/drilldown2.html | 235 ------------------------------------- tests/visual/menu/nested.html | 236 ++++++++++++++++++++++++++++++++++++++ tests/visual/menu/nested2.html | 236 -------------------------------------- 4 files changed, 471 insertions(+), 471 deletions(-) create mode 100644 tests/visual/menu/drilldown.html delete mode 100644 tests/visual/menu/drilldown2.html create mode 100644 tests/visual/menu/nested.html delete mode 100644 tests/visual/menu/nested2.html diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html new file mode 100644 index 000000000..0c18c3679 --- /dev/null +++ b/tests/visual/menu/drilldown.html @@ -0,0 +1,235 @@ + + + + Menu Visual Test: Default + + + + + + + + + + + + + +
+

Make a selection...

+ + Go back +
+ +
+ Log: +
+
+ + + diff --git a/tests/visual/menu/drilldown2.html b/tests/visual/menu/drilldown2.html deleted file mode 100644 index 0c18c3679..000000000 --- a/tests/visual/menu/drilldown2.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - Menu Visual Test: Default - - - - - - - - - - - - - -
-

Make a selection...

- - Go back -
- -
- Log: -
-
- - - diff --git a/tests/visual/menu/nested.html b/tests/visual/menu/nested.html new file mode 100644 index 000000000..063b946c7 --- /dev/null +++ b/tests/visual/menu/nested.html @@ -0,0 +1,236 @@ + + + + Menu Visual Test: Default + + + + + + + + + + + + + + + +
+ + + + +
+ Log: +
+
+ + + diff --git a/tests/visual/menu/nested2.html b/tests/visual/menu/nested2.html deleted file mode 100644 index 063b946c7..000000000 --- a/tests/visual/menu/nested2.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - Menu Visual Test: Default - - - - - - - - - - - - - - - -
- - - - -
- Log: -
-
- - - -- cgit v1.2.3 From 885fea1f3d458ee884be0b20af03f2fbe362cc8b Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Fri, 26 Mar 2010 20:13:50 -0400 Subject: Drilldown menu: First attempt at drilldown animations --- tests/visual/menu/drilldown.html | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html index 0c18c3679..1539045f0 100644 --- a/tests/visual/menu/drilldown.html +++ b/tests/visual/menu/drilldown.html @@ -51,11 +51,23 @@ _open: function(submenu) { this.active = submenu.show().css({ top: 0, - left: 0 + left: 0, + opacity: 0 }).position({ my: "left top", - at: "left top", + at: "right top", of: this.widget() + }).position({ + my: "left top", + at: "left top", + of: this.widget(), + using: function(to) { + $(this).animate({ + left: to.left, + top: to.top, + opacity: 1 + }); + } }); this.back.show(); }, @@ -64,8 +76,20 @@ if (this.active.parent()[0] == this.element[0]) { return; } - this.active.hide(); + this.active.position({ + my: "left top", + at: "right top", + of: this.widget(), + using: function(to) { + $(this).animate({ + left: to.left, + top: to.top, + opacity: 0 + }); + } + }); this.active = this.active.parent().parent().show(); + this.activeItem = this.active.data("menu").active; if (!this.active.parent().parent().is(":ui-menu")) { this.back.hide(); } -- cgit v1.2.3 From 3eee15fca88215446f5036e8fc2c965f5345a3c2 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 01:44:14 +0100 Subject: Slider tests: Split three different change-event tests into three tests, adding start, slide and stop assertions to each, removing placeholders for those other events --- tests/unit/slider/slider_events.js | 58 ++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/tests/unit/slider/slider_events.js b/tests/unit/slider/slider_events.js index fb9af8155..d7c146d84 100644 --- a/tests/unit/slider/slider_events.js +++ b/tests/unit/slider/slider_events.js @@ -3,45 +3,54 @@ */ (function($) { -var el; - module( "slider: events" ); -test( "start", function() { - ok( false, "missing test - untested code is broken code." ); -}); - -test( "slide", function() { - ok( false, "missing test - untested code is broken code." ); -}); - //Specs from http://wiki.jqueryui.com/Slider#specs //"change callback: triggers when the slider has stopped moving and has a new // value (even if same as previous value), via mouse(mouseup) or keyboard(keyup) // or value method/option" -test( "change", function() { - expect(8); +test( "mouse based interaction", function() { + expect(4); - var handle; - // Test mouseup at end of handle slide (mouse) - el = $( "
" ) + var el = $( "
" ) .appendTo( "body" ) .slider({ + start: function(event, ui) { + equals( event.originalEvent.type, "mousedown", "start triggered by mousedown" ); + }, + slide: function(event, ui) { + equals( event.originalEvent.type, "mousemove", "slider triggered by mousemove" ); + }, + stop: function(event, ui) { + equals( event.originalEvent.type, "mouseup", "stop triggered by mouseup" ); + }, change: function(event, ui) { - ok( true, "change triggered by mouseup at end of handle slide (mouse)" ); + equals( event.originalEvent.type, "mouseup", "change triggered by mouseup" ); } }); el.find( ".ui-slider-handle" ).eq( 0 ) .simulate( "drag", { dx: 10, dy: 10 } ); - reset(); +}); +test( "keyboard based interaction", function() { + expect(3); + // Test keyup at end of handle slide (keyboard) - el = $( "
" ) + var el = $( "
" ) .appendTo( "body" ) .slider({ + start: function(event, ui) { + equals( event.originalEvent.type, "keydown", "start triggered by keydown" ); + }, + slide: function(event, ui) { + ok( false, "Slider never triggered by keys" ); + }, + stop: function(event, ui) { + equals( event.originalEvent.type, "keyup", "stop triggered by keyup" ); + }, change: function(event, ui) { - ok( true, "change triggered by keyup at end of handle slide (keyboard)" ); + equals( event.originalEvent.type, "keyup", "change triggered by keyup" ); } }); @@ -50,9 +59,12 @@ test( "change", function() { .simulate( "keypress", { keyCode: $.ui.keyCode.LEFT } ) .simulate( "keyup", { keyCode: $.ui.keyCode.LEFT } ); - reset(); +}); +test( "programmatic event triggers", function() { + expect(6); + // Test value method - el = $( "
" ) + var el = $( "
" ) .slider({ change: function(event, ui) { ok( true, "change triggered by value method" ); @@ -94,8 +106,4 @@ test( "change", function() { }); -test( "stop", function() { - ok( false, "missing test - untested code is broken code." ); -}); - }( jQuery ) ); -- cgit v1.2.3 From 39229962316ddeeaa19b2c725ee32d46c38e687c Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 01:47:42 +0100 Subject: Slider: Inlining _step method, was used only once --- ui/jquery.ui.slider.js | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/ui/jquery.ui.slider.js b/ui/jquery.ui.slider.js index c392facd7..f0cc2ace1 100644 --- a/ui/jquery.ui.slider.js +++ b/ui/jquery.ui.slider.js @@ -152,7 +152,7 @@ $.widget("ui.slider", $.ui.mouse, { break; } - var curVal, newVal, step = self._step(); + var curVal, newVal, step = self.options.step; if (self.options.values && self.options.values.length) { curVal = newVal = self.values(index); } else { @@ -526,11 +526,6 @@ $.widget("ui.slider", $.ui.mouse, { }, - _step: function() { - var step = this.options.step; - return step; - }, - _value: function() { //internal value getter // _value() returns value trimmed by min and max -- cgit v1.2.3 From b96ff11e3b30c93f5707d1299096b27a743974f8 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 01:49:56 +0100 Subject: Slider: Refactoring _valueMin and _valueMax methods, removing useless temporary variables --- ui/jquery.ui.slider.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ui/jquery.ui.slider.js b/ui/jquery.ui.slider.js index f0cc2ace1..bed4185e7 100644 --- a/ui/jquery.ui.slider.js +++ b/ui/jquery.ui.slider.js @@ -566,13 +566,11 @@ $.widget("ui.slider", $.ui.mouse, { }, _valueMin: function() { - var valueMin = this.options.min; - return valueMin; + return this.options.min; }, _valueMax: function() { - var valueMax = this.options.max; - return valueMax; + return this.options.max; }, _refreshValue: function() { -- cgit v1.2.3 From 49411982c2ade2f678965b395a56e740a12d049e Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 01:52:44 +0100 Subject: Slider: Refactoring _trimValue method to use more sane programming logic --- ui/jquery.ui.slider.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ui/jquery.ui.slider.js b/ui/jquery.ui.slider.js index bed4185e7..185fe809c 100644 --- a/ui/jquery.ui.slider.js +++ b/ui/jquery.ui.slider.js @@ -559,9 +559,12 @@ $.widget("ui.slider", $.ui.mouse, { }, _trimValue: function(val) { - if (val < this._valueMin()) val = this._valueMin(); - if (val > this._valueMax()) val = this._valueMax(); - + if (val < this._valueMin()) { + return this._valueMin(); + } + if (val > this._valueMax()) { + return this._valueMax(); + } return val; }, -- cgit v1.2.3 From d969e661643f001837ca07d34f471231886aa2ca Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 02:00:59 +0100 Subject: Slider: Test for test-option, setting the value with the value-method; either test is wrong or the implementation ignores the step-option when set programmatically --- tests/unit/slider/slider_options.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/unit/slider/slider_options.js b/tests/unit/slider/slider_options.js index 88eb26a8f..65d308e26 100644 --- a/tests/unit/slider/slider_options.js +++ b/tests/unit/slider/slider_options.js @@ -93,7 +93,17 @@ test("range", function() { }); test("step", function() { - ok(false, "missing test - untested code is broken code."); + var el = $('
').slider({ + step: 10 + }); + equals( el.slider("value"), 0 ) + el.slider("value", 1); + equals( el.slider("value"), 10 ); + el.slider("value", 10); + equals( el.slider("value"), 10 ); + el.slider("value", 11); + equals( el.slider("value"), 20 ); + el.slider('destroy'); }); test("value", function() { -- cgit v1.2.3 From ccf85fd3b92a9586f54cc715e031ea51a7a2af64 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 02:01:56 +0100 Subject: Slider: Removing the placeholder for the animate-option, as we generally don't try to unit-test any animations --- tests/unit/slider/slider_options.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/unit/slider/slider_options.js b/tests/unit/slider/slider_options.js index 65d308e26..cc36923b3 100644 --- a/tests/unit/slider/slider_options.js +++ b/tests/unit/slider/slider_options.js @@ -11,10 +11,6 @@ function handle() { module("slider: options"); -test("animate", function() { - ok(false, "missing test - untested code is broken code."); -}); - test("max", function() { el = $('
'); -- cgit v1.2.3 From 8d57aa18478c1b7e6ac0f7f3f87895000514ddfa Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 07:34:42 +0100 Subject: Updating to latest QUnit (sometime soon it'll get versioned...), fixes test output issues --- external/qunit.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/external/qunit.js b/external/qunit.js index 41e6c82f5..0dd315530 100644 --- a/external/qunit.js +++ b/external/qunit.js @@ -579,7 +579,7 @@ function validTest( name ) { function push(result, actual, expected, message) { message = message || (result ? "okay" : "failed"); - QUnit.ok( result, result ? message + ": " + expected : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) ); + QUnit.ok( result, result ? message + ": " + QUnit.jsDump.parse(expected) : message + ", expected: " + QUnit.jsDump.parse(expected) + " result: " + QUnit.jsDump.parse(actual) ); } function synchronize( callback ) { @@ -1060,9 +1060,9 @@ QUnit.jsDump = (function() { name:'name', 'class':'className' }, - HTML:true,//if true, entities are escaped ( <, >, \t, space and \n ) + HTML:false,//if true, entities are escaped ( <, >, \t, space and \n ) indentChar:' ',//indentation unit - multiline:true //if true, items in a collection, are separated by a \n, else just a space. + multiline:false //if true, items in a collection, are separated by a \n, else just a space. }; return jsDump; -- cgit v1.2.3 From b012de18a47607119fc47a49b22ff2376efa8972 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 07:42:43 +0100 Subject: Accordion unit tests: Further normalization of styles to get consistent results across browsers --- tests/unit/accordion/accordion.html | 3 +-- tests/unit/accordion/accordion_options.js | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/unit/accordion/accordion.html b/tests/unit/accordion/accordion.html index a7142250e..4173ed9f1 100644 --- a/tests/unit/accordion/accordion.html +++ b/tests/unit/accordion/accordion.html @@ -25,8 +25,7 @@ diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js index 0782b4bb7..cc7fc0369 100644 --- a/tests/unit/accordion/accordion_options.js +++ b/tests/unit/accordion/accordion_options.js @@ -116,9 +116,9 @@ test("{ fillSpace: false }, default", function() { test("{ fillSpace: true }", function() { $("#navigationWrapper").height(500); $('#navigation').accordion({ fillSpace: true }); - equals( $('#navigation > li:eq(0) > ul').height(), 362 ); - equals( $('#navigation > li:eq(1) > ul').height(), 362 ); - equals( $('#navigation > li:eq(2) > ul').height(), 362 ); + equals( $('#navigation > li:eq(0) > ul').height(), 446 ); + equals( $('#navigation > li:eq(1) > ul').height(), 446 ); + equals( $('#navigation > li:eq(2) > ul').height(), 446 ); }); test("{ header: '> li > :first-child,> :not(li):even' }, default", function() { -- cgit v1.2.3 From 11e719f8f84468b7eac44fd19521ddf8eaa360f5 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 08:00:03 +0100 Subject: Updating autocomplete and button unit tests: use equal instead of ok to compare markup, works fine in latest QUnit (escapes all messages correctly) --- tests/unit/autocomplete/autocomplete_methods.js | 3 +-- tests/unit/button/button_methods.js | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/unit/autocomplete/autocomplete_methods.js b/tests/unit/autocomplete/autocomplete_methods.js index 5c20a6c95..76a600fe6 100644 --- a/tests/unit/autocomplete/autocomplete_methods.js +++ b/tests/unit/autocomplete/autocomplete_methods.js @@ -13,8 +13,7 @@ module("autocomplete: methods", { test("destroy", function() { var beforeHtml = $("#autocomplete").parent().html(); var afterHtml = $("#autocomplete").autocomplete().autocomplete("destroy").parent().html(); - // TODO can't use same, as that would insert the markup unescaped into the test results, screwing up other tests - ok( beforeHtml == afterHtml ); + equal( afterHtml, beforeHtml, "before/after html should be the same" ); }) var data = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"]; diff --git a/tests/unit/button/button_methods.js b/tests/unit/button/button_methods.js index 1fcd836b8..43c02d8cc 100644 --- a/tests/unit/button/button_methods.js +++ b/tests/unit/button/button_methods.js @@ -9,7 +9,7 @@ module("button: methods"); test("destroy", function() { var beforeHtml = $("#button").parent().html(); var afterHtml = $("#button").button().button("destroy").parent().html(); - same( beforeHtml, afterHtml ); + equal( afterHtml, beforeHtml ); }); })(jQuery); -- cgit v1.2.3 From d5a6b334669c8024573b8aa52014c83f3823f0c2 Mon Sep 17 00:00:00 2001 From: jzaefferer Date: Sat, 27 Mar 2010 08:01:41 +0100 Subject: Accordion unit tets: Replacing destory method test with autocomplete/button approach, comparing before/after html - had to add some classes and empty style attributes to ignore class='' and style='', harmless enough --- tests/unit/accordion/accordion.html | 64 ++++++++++++++++--------------- tests/unit/accordion/accordion_methods.js | 18 ++------- 2 files changed, 36 insertions(+), 46 deletions(-) diff --git a/tests/unit/accordion/accordion.html b/tests/unit/accordion/accordion.html index 4173ed9f1..df0979803 100644 --- a/tests/unit/accordion/accordion.html +++ b/tests/unit/accordion/accordion.html @@ -38,37 +38,39 @@
-
- There is one obvious advantage: -
-

- You've seen it coming! -
- Buy now and get nothing for free! -
- Well, at least no free beer. Perhaps a bear, if you can afford it. -

-
- Now that you've got... -
-

- your bear, you have to admit it! -
- No, we aren't selling bears. -

-

- We could talk about renting one. -

-
- Rent one bear, ... -
-

- get two for three beer. -

-

- And now, for something completely different. -

-
+
+
+ There is one obvious advantage: +
+

+ You've seen it coming! +
+ Buy now and get nothing for free! +
+ Well, at least no free beer. Perhaps a bear, if you can afford it. +

+
+ Now that you've got... +
+

+ your bear, you have to admit it! +
+ No, we aren't selling bears. +

+

+ We could talk about renting one. +

+
+ Rent one bear, ... +
+

+ get two for three beer. +

+

+ And now, for something completely different. +

+
+