diff options
Diffstat (limited to 'tests')
23 files changed, 383 insertions, 209 deletions
diff --git a/tests/unit/accordion/accordion_deprecated.js b/tests/unit/accordion/accordion_deprecated.js index 7f033a340..2068fef95 100644 --- a/tests/unit/accordion/accordion_deprecated.js +++ b/tests/unit/accordion/accordion_deprecated.js @@ -1,6 +1,6 @@ (function( $ ) { -var equalHeights = TestHelpers.accordion.equalHeights, +var equalHeight = TestHelpers.accordion.equalHeight, setupTeardown = TestHelpers.accordion.setupTeardown, state = TestHelpers.accordion.state; @@ -109,7 +109,7 @@ module( "accordion (deprecated) - height options", setupTeardown() ); test( "{ autoHeight: true }, default", function() { expect( 3 ); - equalHeights( $( "#navigation" ).accordion({ autoHeight: true }), 95, 130 ); + equalHeight( $( "#navigation" ).accordion({ autoHeight: true }), 105 ); }); test( "{ autoHeight: false }", function() { @@ -128,7 +128,7 @@ test( "{ fillSpace: true }", function() { expect( 3 ); $( "#navigationWrapper" ).height( 500 ); var element = $( "#navigation" ).accordion({ fillSpace: true }); - equalHeights( element, 446, 458 ); + equalHeight( element, 455 ); }); test( "{ fillSapce: true } with sibling", function() { @@ -142,7 +142,7 @@ test( "{ fillSapce: true } with sibling", function() { }) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion({ fillSpace: true }); - equalHeights( element , 346, 358); + equalHeight( element , 355 ); }); test( "{ fillSpace: true } with multiple siblings", function() { @@ -171,7 +171,7 @@ test( "{ fillSpace: true } with multiple siblings", function() { }) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion({ fillSpace: true }); - equalHeights( element, 296, 308 ); + equalHeight( element, 305 ); }); @@ -206,11 +206,11 @@ test( "resize", function() { .accordion({ heightStyle: "fill" }); - equalHeights( element, 246, 258 ); + equalHeight( element, 255 ); element.parent().height( 500 ); element.accordion( "resize" ); - equalHeights( element, 446, 458 ); + equalHeight( element, 455 ); }); diff --git a/tests/unit/accordion/accordion_events.js b/tests/unit/accordion/accordion_events.js index 079c71a62..b67f2b26d 100644 --- a/tests/unit/accordion/accordion_events.js +++ b/tests/unit/accordion/accordion_events.js @@ -56,11 +56,11 @@ test( "beforeActivate", function() { element.one( "accordionbeforeactivate", function( event, ui ) { ok( !( "originalEvent" in event ) ); equal( ui.oldHeader.length, 0 ); - equal( ui.oldContent.length, 0 ); + equal( ui.oldPanel.length, 0 ); equal( ui.newHeader.length, 1 ); strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); - equal( ui.newContent.length, 1 ); - strictEqual( ui.newContent[ 0 ], content[ 0 ] ); + equal( ui.newPanel.length, 1 ); + strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); state( element, 0, 0, 0 ); }); element.accordion( "option", "active", 0 ); @@ -70,12 +70,12 @@ test( "beforeActivate", function() { equal( event.originalEvent.type, "click" ); equal( ui.oldHeader.length, 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); - equal( ui.oldContent.length, 1 ); - strictEqual( ui.oldContent[ 0 ], content[ 0 ] ); + equal( ui.oldPanel.length, 1 ); + strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); equal( ui.newHeader.length, 1 ); strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); - equal( ui.newContent.length, 1 ); - strictEqual( ui.newContent[ 0 ], content[ 1 ] ); + equal( ui.newPanel.length, 1 ); + strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); state( element, 1, 0, 0 ); }); headers.eq( 1 ).click(); @@ -85,10 +85,10 @@ test( "beforeActivate", function() { ok( !( "originalEvent" in event ) ); equal( ui.oldHeader.length, 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); - equal( ui.oldContent.length, 1 ); - strictEqual( ui.oldContent[ 0 ], content[ 1 ] ); + equal( ui.oldPanel.length, 1 ); + strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); equal( ui.newHeader.length, 0 ); - equal( ui.newContent.length, 0 ); + equal( ui.newPanel.length, 0 ); state( element, 0, 1, 0 ); }); element.accordion( "option", "active", false ); @@ -97,11 +97,11 @@ test( "beforeActivate", function() { element.one( "accordionbeforeactivate", function( event, ui ) { ok( !( "originalEvent" in event ) ); equal( ui.oldHeader.length, 0 ); - equal( ui.oldContent.length, 0 ); + equal( ui.oldPanel.length, 0 ); equal( ui.newHeader.length, 1 ); strictEqual( ui.newHeader[ 0 ], headers[ 2 ] ); - equal( ui.newContent.length, 1 ); - strictEqual( ui.newContent[ 0 ], content[ 2 ] ); + equal( ui.newPanel.length, 1 ); + strictEqual( ui.newPanel[ 0 ], content[ 2 ] ); event.preventDefault(); state( element, 0, 0, 0 ); }); @@ -120,33 +120,33 @@ test( "activate", function() { element.one( "accordionactivate", function( event, ui ) { equal( ui.oldHeader.length, 0 ); - equal( ui.oldContent.length, 0 ); + equal( ui.oldPanel.length, 0 ); equal( ui.newHeader.length, 1 ); strictEqual( ui.newHeader[ 0 ], headers[ 0 ] ); - equal( ui.newContent.length, 1 ); - strictEqual( ui.newContent[ 0 ], content[ 0 ] ); + equal( ui.newPanel.length, 1 ); + strictEqual( ui.newPanel[ 0 ], content[ 0 ] ); }); element.accordion( "option", "active", 0 ); element.one( "accordionactivate", function( event, ui ) { equal( ui.oldHeader.length, 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 0 ] ); - equal( ui.oldContent.length, 1 ); - strictEqual( ui.oldContent[ 0 ], content[ 0 ] ); + equal( ui.oldPanel.length, 1 ); + strictEqual( ui.oldPanel[ 0 ], content[ 0 ] ); equal( ui.newHeader.length, 1 ); strictEqual( ui.newHeader[ 0 ], headers[ 1 ] ); - equal( ui.newContent.length, 1 ); - strictEqual( ui.newContent[ 0 ], content[ 1 ] ); + equal( ui.newPanel.length, 1 ); + strictEqual( ui.newPanel[ 0 ], content[ 1 ] ); }); headers.eq( 1 ).click(); element.one( "accordionactivate", function( event, ui ) { equal( ui.oldHeader.length, 1 ); strictEqual( ui.oldHeader[ 0 ], headers[ 1 ] ); - equal( ui.oldContent.length, 1 ); - strictEqual( ui.oldContent[ 0 ], content[ 1 ] ); + equal( ui.oldPanel.length, 1 ); + strictEqual( ui.oldPanel[ 0 ], content[ 1 ] ); equal( ui.newHeader.length, 0 ); - equal( ui.newContent.length, 0 ); + equal( ui.newPanel.length, 0 ); }); element.accordion( "option", "active", false ); diff --git a/tests/unit/accordion/accordion_methods.js b/tests/unit/accordion/accordion_methods.js index 2c5b36632..8723bcbb7 100644 --- a/tests/unit/accordion/accordion_methods.js +++ b/tests/unit/accordion/accordion_methods.js @@ -1,6 +1,6 @@ (function( $ ) { -var equalHeights = TestHelpers.accordion.equalHeights, +var equalHeight = TestHelpers.accordion.equalHeight, setupTeardown = TestHelpers.accordion.setupTeardown, state = TestHelpers.accordion.state; @@ -38,11 +38,11 @@ test( "refresh", function() { .accordion({ heightStyle: "fill" }); - equalHeights( element, 246, 258 ); + equalHeight( element, 255 ); element.parent().height( 500 ); element.accordion( "refresh" ); - equalHeights( element, 446, 458 ); + equalHeight( element, 455 ); }); }( jQuery ) ); diff --git a/tests/unit/accordion/accordion_options.js b/tests/unit/accordion/accordion_options.js index 3c7863520..2b8222f5c 100644 --- a/tests/unit/accordion/accordion_options.js +++ b/tests/unit/accordion/accordion_options.js @@ -1,6 +1,6 @@ (function( $ ) { -var equalHeights = TestHelpers.accordion.equalHeights, +var equalHeight = TestHelpers.accordion.equalHeight, setupTeardown = TestHelpers.accordion.setupTeardown, state = TestHelpers.accordion.state; @@ -359,7 +359,7 @@ test( "{ header: custom }", function() { test( "{ heightStyle: 'auto' }", function() { expect( 3 ); var element = $( "#navigation" ).accordion({ heightStyle: "auto" }); - equalHeights( element, 95, 130 ); + equalHeight( element, 105 ); }); test( "{ heightStyle: 'content' }", function() { @@ -368,16 +368,16 @@ test( "{ heightStyle: 'content' }", function() { sizes = element.find( ".ui-accordion-content" ).map(function() { return $( this ).height(); }).get(); - ok( sizes[ 0 ] >= 70 && sizes[ 0 ] <= 105, "was " + sizes[ 0 ] ); - ok( sizes[ 1 ] >= 98 && sizes[ 1 ] <= 126, "was " + sizes[ 1 ] ); - ok( sizes[ 2 ] >= 42 && sizes[ 2 ] <= 54, "was " + sizes[ 2 ] ); + equal( sizes[ 0 ], 75 ); + equal( sizes[ 1 ], 105 ); + equal( sizes[ 2 ], 45 ); }); test( "{ heightStyle: 'fill' }", function() { expect( 3 ); $( "#navigationWrapper" ).height( 500 ); var element = $( "#navigation" ).accordion({ heightStyle: "fill" }); - equalHeights( element, 446, 458 ); + equalHeight( element, 455 ); }); test( "{ heightStyle: 'fill' } with sibling", function() { @@ -391,7 +391,7 @@ test( "{ heightStyle: 'fill' } with sibling", function() { }) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion({ heightStyle: "fill" }); - equalHeights( element , 346, 358); + equalHeight( element , 355 ); }); test( "{ heightStyle: 'fill' } with multiple siblings", function() { @@ -420,7 +420,7 @@ test( "{ heightStyle: 'fill' } with multiple siblings", function() { }) .prependTo( "#navigationWrapper" ); var element = $( "#navigation" ).accordion({ heightStyle: "fill" }); - equalHeights( element, 296, 308 ); + equalHeight( element, 305 ); }); test( "{ icons: false }", function() { diff --git a/tests/unit/accordion/accordion_test_helpers.js b/tests/unit/accordion/accordion_test_helpers.js index 56967793d..643f8e283 100644 --- a/tests/unit/accordion/accordion_test_helpers.js +++ b/tests/unit/accordion/accordion_test_helpers.js @@ -1,13 +1,8 @@ TestHelpers.accordion = { - equalHeights: function( accordion, min, max ) { - var sizes = []; + equalHeight: function( accordion, height ) { accordion.find( ".ui-accordion-content" ).each(function() { - sizes.push( $( this ).outerHeight() ); + equal( $( this ).outerHeight(), height ); }); - ok( sizes[ 0 ] >= min && sizes[ 0 ] <= max, - "must be within " + min + " and " + max + ", was " + sizes[ 0 ] ); - deepEqual( sizes[ 0 ], sizes[ 1 ] ); - deepEqual( sizes[ 0 ], sizes[ 2 ] ); }, setupTeardown: function() { diff --git a/tests/unit/core/core.js b/tests/unit/core/core.js index 7a78ae34d..1026c5b0b 100644 --- a/tests/unit/core/core.js +++ b/tests/unit/core/core.js @@ -153,4 +153,14 @@ test( "outerHeight(true) - setter", function() { equal( el.height(), 32, "height set properly when hidden" ); }); +test( "uniqueId / removeUniqueId", function() { + var el = $( "img" ).eq( 0 ); + + equal( el.attr( "id" ), undefined, "element has no initial id" ); + el.uniqueId(); + ok( /ui-id-\d+$/.test( el.attr( "id" ) ), "element has generated id" ); + el.removeUniqueId(); + equal( el.attr( "id" ), undefined, "unique id has been removed from element" ); +}); + })( jQuery ); diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js index 5d7beb99b..636b957e8 100644 --- a/tests/unit/dialog/dialog_core.js +++ b/tests/unit/dialog/dialog_core.js @@ -89,26 +89,11 @@ function margin(el, side) { module("dialog: core"); test("title id", function() { - expect(3); - - var titleId; - - // reset the uuid so we know what values to expect - $.ui.dialog.uuid = 0; + expect(1); el = $('<div></div>').dialog(); - titleId = dlg().find('.ui-dialog-title').attr('id'); - equal(titleId, 'ui-dialog-title-1', 'auto-numbered title id'); - el.remove(); - - el = $('<div></div>').dialog(); - titleId = dlg().find('.ui-dialog-title').attr('id'); - equal(titleId, 'ui-dialog-title-2', 'auto-numbered title id'); - el.remove(); - - el = $('<div id="foo">').dialog(); - titleId = dlg().find('.ui-dialog-title').attr('id'); - equal(titleId, 'ui-dialog-title-foo', 'carried over title id'); + var titleId = dlg().find('.ui-dialog-title').attr('id'); + ok( /ui-id-\d+$/.test( titleId ), 'auto-numbered title id'); el.remove(); }); diff --git a/tests/unit/menu/menu.html b/tests/unit/menu/menu.html index 62585d863..31c29a924 100644 --- a/tests/unit/menu/menu.html +++ b/tests/unit/menu/menu.html @@ -55,7 +55,7 @@ <li class="foo"><a class="foo" href="#">Aberdeen</a></li> <li class="foo"><a class="foo" href="#">Ada</a></li> <li class="foo"><a class="foo" href="#">Adamsville</a></li> - <li class="foo"><a class="foo" href="#">Addyston</a></li> + <li class="foo"><a id="testID1" class="foo" href="#">Addyston</a></li> <li class="foo"><a class="foo" href="#">Adelphi</a></li> </ul> @@ -88,8 +88,11 @@ <a href="#">Delphi</a> <ul> <li class="foo"><a class="foo" href="#">Ada</a></li> + <li> - </li> <li class="foo"><a class="foo" href="#">Saarland</a></li> + <li></li> <li class="foo"><a class="foo" href="#">Salzburg</a></li> + <li>–</li> </ul> </li> <li class="foo"><a class="foo" href="#">Perch</a></li> @@ -232,7 +235,7 @@ <a href="#">Delphi</a> <div> <blockquote><a href="#">Ada</a></blockquote> - <blockquote><a href="#">Saarland</a></blockquote> + <blockquote><a id="testID2" href="#">Saarland</a></blockquote> <blockquote><a href="#">Salzburg</a></blockquote> </div> </blockquote> @@ -255,7 +258,7 @@ <li class="foo"><a class="foo" href="#">Adamsville</a></li> <li class="foo"><a class="foo" href="#">Addyston</a></li> <li class="ui-state-disabled"> - <a href="#">Delphi</a> + <a id="testID3" href="#">Delphi</a> <ul> <li class="foo"><a class="foo" href="#">Ada</a></li> <li class="foo"><a class="foo" href="#">Saarland</a></li> diff --git a/tests/unit/menu/menu_core.js b/tests/unit/menu/menu_core.js index 68b625687..7732fd7b7 100644 --- a/tests/unit/menu/menu_core.js +++ b/tests/unit/menu/menu_core.js @@ -23,7 +23,7 @@ test("accessibility", function () { item = menu.find( "li:last" ); menu.menu( "focus", $.Event(), item ); - equal( menu.attr("aria-activedescendant"), "menu1-4", "aria attribute, generated id"); + ok( /^ui-id-\d+$/.test( menu.attr( "aria-activedescendant" ) ), "aria attribute, generated id"); }); })(jQuery); diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js index ec3e7d3c4..2132ff764 100644 --- a/tests/unit/menu/menu_events.js +++ b/tests/unit/menu/menu_events.js @@ -315,16 +315,27 @@ asyncTest("handle keyboard navigation on menu without scroll and with submenus", equal( $("#log").html(), "4,keydown,", "Keydown ESCAPE (close submenu)"); log("keydown",true); - element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); - setTimeout( menukeyboard5, 50 ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + setTimeout( function() { + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.RIGHT } ); + setTimeout( function() { + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } ); + equal( $("#log").html(), "0,4,2,0,1,0,6,5,keydown,", "Keydown skip dividers and items without anchors"); + + log("keydown",true); + element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); + setTimeout( menukeyboard6, 50 ); + }, 50 ); + }, 50 ); } - function menukeyboard5() { - equal( $("#log").html(), "0,keydown,", "Keydown ENTER (open submenu)"); - - log("keydown",true); - element.simulate( "keydown", { keyCode: $.ui.keyCode.ENTER } ); - equal( $("#log").html(), "Ada,keydown,", "Keydown ENTER (select item)"); + function menukeyboard6() { + equal( $("#log").html(), "Ada,keydown,", "Keydown ENTER (open submenu)"); start(); } diff --git a/tests/unit/menu/menu_methods.js b/tests/unit/menu/menu_methods.js index fc4fce4f1..c17986816 100644 --- a/tests/unit/menu/menu_methods.js +++ b/tests/unit/menu/menu_methods.js @@ -29,13 +29,17 @@ test( "enable/disable", function() { }); test( "refresh", function() { - expect( 3 ); + expect( 5 ); var menu = $( "#menu1" ).menu(); equal(menu.find(".ui-menu-item").length,5,"Incorrect number of menu items"); menu.append("<li><a href='#'>test item</a></li>").menu("refresh"); equal(menu.find(".ui-menu-item").length,6,"Incorrect number of menu items"); menu.find(".ui-menu-item:last").remove().end().menu("refresh"); equal(menu.find(".ui-menu-item").length,5,"Incorrect number of menu items"); + menu.append("<li>---</li>").menu("refresh"); + equal(menu.find(".ui-menu-item").length,5,"Incorrect number of menu items"); + menu.children(":last").remove().end().menu("refresh"); + equal(menu.find(".ui-menu-item").length,5,"Incorrect number of menu items"); }); test("destroy", function() { diff --git a/tests/unit/progressbar/progressbar_core.js b/tests/unit/progressbar/progressbar_core.js index a0ea6c48f..0a2ef895b 100644 --- a/tests/unit/progressbar/progressbar_core.js +++ b/tests/unit/progressbar/progressbar_core.js @@ -1,28 +1,20 @@ -/* - * progressbar_core.js - */ +module( "progressbar: core" ); -var el; +test( "accessibility", function() { + expect( 7 ); + var element = $( "#progressbar" ).progressbar(); -(function($) { + equal( element.attr( "role" ), "progressbar", "aria role" ); + equal( element.attr( "aria-valuemin" ), 0, "aria-valuemin" ); + equal( element.attr( "aria-valuemax" ), 100, "aria-valuemax" ); + equal( element.attr( "aria-valuenow" ), 0, "aria-valuenow initially" ); -module("progressbar: core"); + element.progressbar( "value", 77 ); + equal( element.attr( "aria-valuenow" ), 77, "aria-valuenow" ); -test("accessibility", function() { - expect(7); - el = $("#progressbar").progressbar(); + element.progressbar( "disable" ); + equal( element.attr( "aria-disabled" ), "true", "aria-disabled on" ); - equal(el.attr("role"), "progressbar", "aria role"); - equal(el.attr("aria-valuemin"), 0, "aria-valuemin"); - equal(el.attr("aria-valuemax"), 100, "aria-valuemax"); - equal(el.attr("aria-valuenow"), 0, "aria-valuenow initially"); - el.progressbar("value", 77); - equal(el.attr("aria-valuenow"), 77, "aria-valuenow"); - el.progressbar("disable"); - equal(el.attr("aria-disabled"), "true", "aria-disabled on"); - el.progressbar("enable"); - // FAIL: for some reason IE6 and 7 return a boolean false instead of the string - equal(el.attr("aria-disabled"), "false", "aria-disabled off"); + element.progressbar( "enable" ); + equal( element.attr( "aria-disabled" ), "false", "aria-disabled off" ); }); - -})(jQuery); diff --git a/tests/unit/progressbar/progressbar_events.js b/tests/unit/progressbar/progressbar_events.js index f3713171b..bb0d3ca5c 100644 --- a/tests/unit/progressbar/progressbar_events.js +++ b/tests/unit/progressbar/progressbar_events.js @@ -1,51 +1,43 @@ -/* - * progressbar_events.js - */ -(function($) { +module( "progressbar: events" ); -module("progressbar: events"); - -test("create", function() { - expect(1); - $("#progressbar").progressbar({ +test( "create", function() { + expect( 1 ); + $( "#progressbar" ).progressbar({ value: 5, create: function() { - deepEqual(5, $(this).progressbar("value") ); + deepEqual( 5, $( this ).progressbar( "value" ) ); }, change: function() { - ok(false, 'create() has triggered change()'); + ok( false, "create() has triggered change()" ); } }); }); -test("change", function() { - expect(1); - $("#progressbar").progressbar({ +test( "change", function() { + expect( 1 ); + $( "#progressbar" ).progressbar({ change: function() { - deepEqual( 5, $(this).progressbar("value") ); + deepEqual( 5, $( this ).progressbar( "value" ) ); } - }).progressbar("value", 5); + }).progressbar( "value", 5 ); }); test( "complete", function() { expect( 3 ); - var changes = 0, - value; - - $( "#progressbar" ).progressbar({ - change: function() { - changes++; - deepEqual( $( this ).progressbar( "value" ), value, "change at " + value ); - }, - complete: function() { - equal( changes, 2, "complete triggered after change" ); - } - }); + var value, + changes = 0, + element = $( "#progressbar" ).progressbar({ + change: function() { + changes++; + deepEqual( element.progressbar( "value" ), value, "change at " + value ); + }, + complete: function() { + equal( changes, 2, "complete triggered after change" ); + } + }); value = 5; - $( "#progressbar" ).progressbar( "value", value ); + element.progressbar( "value", value ); value = 100; - $( "#progressbar" ).progressbar( "value", value ); + element.progressbar( "value", value ); }); - -})(jQuery); diff --git a/tests/unit/progressbar/progressbar_methods.js b/tests/unit/progressbar/progressbar_methods.js index 966c0c55a..89478b9b1 100644 --- a/tests/unit/progressbar/progressbar_methods.js +++ b/tests/unit/progressbar/progressbar_methods.js @@ -1,36 +1,17 @@ -/* - * progressbar_methods.js - */ -(function($) { +module( "progressbar: methods" ); -module("progressbar: methods"); - -test("init", function() { - expect(1); - - $("<div></div>").appendTo('body').progressbar().remove(); - ok(true, '.progressbar() called on element'); - -}); - -test("destroy", function() { - expect(2); - - $("<div></div>").appendTo('body').progressbar().progressbar("destroy").remove(); - ok(true, '.progressbar("destroy") called on element'); - - var expected = $('<div></div>').progressbar(), - actual = expected.progressbar('destroy'); - equal(actual, expected, 'destroy is chainable'); +test( "destroy", function() { + expect( 1 ); + domEqual( "#progressbar", function() { + $( "#progressbar" ).progressbar().progressbar( "destroy" ); + }); }); -test('value', function() { - expect(3); +test( "value", function() { + expect( 3 ); - var el = $('<div></div>').progressbar({ value: 20 }); - equal(el.progressbar('value'), 20, 'correct value as getter'); - equal(el.progressbar('value', 30), el, 'chainable as setter'); - equal(el.progressbar('option', 'value'), 30, 'correct value after setter'); + var element = $( "<div>" ).progressbar({ value: 20 }); + equal( element.progressbar( "value" ), 20, "correct value as getter" ); + equal( element.progressbar( "value", 30), element, "chainable as setter" ); + equal( element.progressbar( "option", "value" ), 30, "correct value after setter" ); }); - -})(jQuery); diff --git a/tests/unit/progressbar/progressbar_options.js b/tests/unit/progressbar/progressbar_options.js index 815606ec6..f050fc5da 100644 --- a/tests/unit/progressbar/progressbar_options.js +++ b/tests/unit/progressbar/progressbar_options.js @@ -1,13 +1,8 @@ -/* - * progressbar_options.js - */ -(function($) { +module( "progressbar: options" ); -module("progressbar: options"); - -test("{ value : 0 }, default", function() { - $("#progressbar").progressbar(); - deepEqual( 0, $("#progressbar").progressbar("value") ); +test( "{ value : 0 }, default", function() { + $( "#progressbar" ).progressbar(); + equal( 0, $( "#progressbar" ).progressbar( "value" ) ); }); // Ticket #7231 - valueDiv should be hidden when value is at 0% @@ -16,44 +11,47 @@ test( "value: visibility of valueDiv", function() { var element = $( "#progressbar" ).progressbar({ value: 0 }); - ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), "valueDiv hidden when value is initialized at 0" ); + ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), + "valueDiv hidden when value is initialized at 0" ); element.progressbar( "value", 1 ); - ok( element.children( ".ui-progressbar-value" ).is( ":visible" ), "valueDiv visible when value is set to 1" ); + ok( element.children( ".ui-progressbar-value" ).is( ":visible" ), + "valueDiv visible when value is set to 1" ); element.progressbar( "value", 100 ); - ok( element.children( ".ui-progressbar-value" ).is( ":visible" ), "valueDiv visible when value is set to 100" ); + ok( element.children( ".ui-progressbar-value" ).is( ":visible" ), + "valueDiv visible when value is set to 100" ); element.progressbar( "value", 0 ); - ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), "valueDiv hidden when value is set to 0" ); + ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), + "valueDiv hidden when value is set to 0" ); element.progressbar( "value", -1 ); - ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), "valueDiv hidden when value set to -1 (normalizes to 0)" ); + ok( element.children( ".ui-progressbar-value" ).is( ":hidden" ), + "valueDiv hidden when value set to -1 (normalizes to 0)" ); }); -test("{ value : 5 }", function() { - $("#progressbar").progressbar({ +test( "{ value : 5 }", function() { + $( "#progressbar" ).progressbar({ value: 5 }); - deepEqual( 5, $("#progressbar").progressbar("value") ); + equal( 5, $( "#progressbar" ).progressbar( "value" ) ); }); -test("{ value : -5 }", function() { - $("#progressbar").progressbar({ +test( "{ value : -5 }", function() { + $( "#progressbar" ).progressbar({ value: -5 }); - deepEqual( 0, $("#progressbar").progressbar("value") ); + deepEqual( 0, $( "#progressbar" ).progressbar( "value" ) ); }); -test("{ value : 105 }", function() { - $("#progressbar").progressbar({ +test( "{ value : 105 }", function() { + $( "#progressbar" ).progressbar({ value: 105 }); - deepEqual( 100, $("#progressbar").progressbar("value") ); + deepEqual( 100, $( "#progressbar" ).progressbar( "value" ) ); }); -test("{ max : 5, value : 10 }", function() { +test( "{ max : 5, value : 10 }", function() { $("#progressbar").progressbar({ max: 5, value: 10 }); - deepEqual( 5, $("#progressbar").progressbar("value") ); + deepEqual( 5, $( "#progressbar" ).progressbar( "value" ) ); }); - -})(jQuery); diff --git a/tests/unit/tabs/tabs.html b/tests/unit/tabs/tabs.html index b9fa507d8..3a55f3b79 100644 --- a/tests/unit/tabs/tabs.html +++ b/tests/unit/tabs/tabs.html @@ -31,6 +31,14 @@ <script src="tabs_options.js"></script> <script src="../swarminject.js"></script> + <style> + #tabs8, #tabs8 * { + margin: 0; + padding: 0; + font-size: 12px; + line-height: 15px; + } + </style> </head> <body> @@ -120,6 +128,23 @@ <div id="tabs7-1"></div> </div> +<div id="tabs8Wrapper"> + <div id="tabs8"> + <ul id="tabs8-list"> + <li><a href="#tabs8-1">1</a></li> + <li><a href="#tabs8-2">2</a></li> + </ul> + <div id="tabs8-1"> + <p>Lorem ipsum</p> + <p>Lorem ipsum</p> + <p>Lorem ipsum</p> + </div> + <div id="tabs8-2"> + <p>Lorem ipsum</p> + </div> + </div> +</div> + </div> </body> </html> diff --git a/tests/unit/tabs/tabs_common.js b/tests/unit/tabs/tabs_common.js index b98ff3575..a589515f8 100644 --- a/tests/unit/tabs/tabs_common.js +++ b/tests/unit/tabs/tabs_common.js @@ -4,6 +4,7 @@ TestHelpers.commonWidgetTests( "tabs", { collapsible: false, disabled: false, event: "click", + heightStyle: "content", hide: null, show: null, diff --git a/tests/unit/tabs/tabs_common_deprecated.js b/tests/unit/tabs/tabs_common_deprecated.js index 718ae8272..5b41014da 100644 --- a/tests/unit/tabs/tabs_common_deprecated.js +++ b/tests/unit/tabs/tabs_common_deprecated.js @@ -7,6 +7,7 @@ TestHelpers.commonWidgetTests( "tabs", { cookie: null, disabled: false, event: "click", + heightStyle: "content", hide: null, fx: null, idPrefix: "ui-tabs-", diff --git a/tests/unit/tabs/tabs_deprecated.html b/tests/unit/tabs/tabs_deprecated.html index e58382efb..bb4088350 100644 --- a/tests/unit/tabs/tabs_deprecated.html +++ b/tests/unit/tabs/tabs_deprecated.html @@ -30,6 +30,14 @@ <script src="tabs_deprecated.js"></script> <script src="../swarminject.js"></script> + <style> + #tabs8, #tabs8 * { + margin: 0; + padding: 0; + font-size: 12px; + line-height: 15px; + } + </style> </head> <body> @@ -119,6 +127,23 @@ <div id="tabs7-1"></div> </div> +<div id="tabs8Wrapper"> + <div id="tabs8"> + <ul id="tabs8-list"> + <li><a href="#tabs8-1">1</a></li> + <li><a href="#tabs8-2">2</a></li> + </ul> + <div id="tabs8-1"> + <p>Lorem ipsum</p> + <p>Lorem ipsum</p> + <p>Lorem ipsum</p> + </div> + <div id="tabs8-2"> + <p>Lorem ipsum</p> + </div> + </div> +</div> + </div> </body> </html> diff --git a/tests/unit/tabs/tabs_options.js b/tests/unit/tabs/tabs_options.js index df6827c57..8365a42d7 100644 --- a/tests/unit/tabs/tabs_options.js +++ b/tests/unit/tabs/tabs_options.js @@ -1,6 +1,7 @@ (function( $ ) { var disabled = TestHelpers.tabs.disabled, + equalHeight = TestHelpers.tabs.equalHeight, state = TestHelpers.tabs.state; module( "tabs: options" ); @@ -211,6 +212,72 @@ test( "{ event: custom }", function() { state( element, 0, 1, 0 ); }); +test( "{ heightStyle: 'auto' }", function() { + expect( 2 ); + var element = $( "#tabs8" ).tabs({ heightStyle: "auto" }); + equalHeight( element, 45 ); +}); + +test( "{ heightStyle: 'content' }", function() { + expect( 2 ); + var element = $( "#tabs8" ).tabs({ heightStyle: "content" }), + sizes = element.find( ".ui-tabs-panel" ).map(function() { + return $( this ).height(); + }).get(); + equal( sizes[ 0 ], 45 ); + equal( sizes[ 1 ], 15 ); +}); + +test( "{ heightStyle: 'fill' }", function() { + expect( 2 ); + $( "#tabs8Wrapper" ).height( 500 ); + var element = $( "#tabs8" ).tabs({ heightStyle: "fill" }); + equalHeight( element, 485 ); +}); + +test( "{ heightStyle: 'fill' } with sibling", function() { + expect( 2 ); + $( "#tabs8Wrapper" ).height( 500 ); + $( "<p>Lorem Ipsum</p>" ) + .css({ + height: 50, + marginTop: 20, + marginBottom: 30 + }) + .prependTo( "#tabs8Wrapper" ); + var element = $( "#tabs8" ).tabs({ heightStyle: "fill" }); + equalHeight( element, 385 ); +}); + +test( "{ heightStyle: 'fill' } with multiple siblings", function() { + expect( 2 ); + $( "#tabs8Wrapper" ).height( 500 ); + $( "<p>Lorem Ipsum</p>" ) + .css({ + height: 50, + marginTop: 20, + marginBottom: 30 + }) + .prependTo( "#tabs8Wrapper" ); + $( "<p>Lorem Ipsum</p>" ) + .css({ + height: 50, + marginTop: 20, + marginBottom: 30, + position: "absolute" + }) + .prependTo( "#tabs8Wrapper" ); + $( "<p>Lorem Ipsum</p>" ) + .css({ + height: 25, + marginTop: 10, + marginBottom: 15 + }) + .prependTo( "#tabs8Wrapper" ); + var element = $( "#tabs8" ).tabs({ heightStyle: "fill" }); + equalHeight( element, 335 ); +}); + // TODO: add animation tests }( jQuery ) ); diff --git a/tests/unit/tabs/tabs_test_helpers.js b/tests/unit/tabs/tabs_test_helpers.js index 508043943..0c9309186 100644 --- a/tests/unit/tabs/tabs_test_helpers.js +++ b/tests/unit/tabs/tabs_test_helpers.js @@ -38,6 +38,12 @@ TestHelpers.tabs = { deepEqual( actual, expected ); }, + equalHeight: function( tabs, height ) { + tabs.find( ".ui-tabs-panel" ).each(function() { + equal( $( this ).outerHeight(), height ); + }); + }, + state: function( tabs ) { var expected = $.makeArray( arguments ).slice( 1 ), actual = tabs.find( ".ui-tabs-nav li" ).map(function() { diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js index 33a9a2c99..3c8ec04c4 100644 --- a/tests/unit/testsuite.js +++ b/tests/unit/testsuite.js @@ -138,32 +138,63 @@ TestHelpers.commonWidgetTests = function( widget, settings ) { /* * Experimental assertion for comparing DOM objects. * - * Serializes an element and some attributes and it's children if any, otherwise the text. + * Serializes an element and some properties and attributes and it's children if any, otherwise the text. * Then compares the result using deepEqual. */ window.domEqual = function( selector, modifier, message ) { var expected, actual, - attributes = ["class", "role", "id", "tabIndex", "aria-activedescendant"]; - - function extract(value) { - if (!value || !value.length) { - QUnit.push( false, actual, expected, "domEqual failed, can't extract " + selector + ", message was: " + message ); + properties = [ + "disabled", + "readOnly" + ], + attributes = [ + "autocomplete", + "aria-activedescendant", + "aria-controls", + "aria-describedby", + "aria-disabled", + "aria-expanded", + "aria-haspopup", + "aria-hidden", + "aria-labelledby", + "aria-pressed", + "aria-selected", + "aria-valuemax", + "aria-valuemin", + "aria-valuenow", + "class", + "href", + "id", + "nodeName", + "role", + "tabIndex", + "title" + ]; + + function extract( elem ) { + if ( !elem || !elem.length ) { + QUnit.push( false, actual, expected, + "domEqual failed, can't extract " + selector + ", message was: " + message ); return; } + var children, result = {}; - result.nodeName = value[0].nodeName; - $.each(attributes, function(index, attr) { - result[attr] = value.prop(attr); + $.each( properties, function( index, attr ) { + var value = elem.prop( attr ); + result[ attr ] = value !== undefined ? value : ""; }); - result.children = []; - children = value.children(); - if (children.length) { - children.each(function() { - result.children.push(extract($(this))); - }); + $.each( attributes, function( index, attr ) { + var value = elem.attr( attr ); + result[ attr ] = value !== undefined ? value : ""; + }); + children = elem.children(); + if ( children.length ) { + result.children = elem.children().map(function( ind ) { + return extract( $( this ) ); + }).get(); } else { - result.text = value.text(); + result.text = elem.text(); } return result; } diff --git a/tests/visual/menu/menu.html b/tests/visual/menu/menu.html index f92de61db..5bda32eae 100644 --- a/tests/visual/menu/menu.html +++ b/tests/visual/menu/menu.html @@ -15,7 +15,7 @@ $( "<p>" ).text( "Selected: " + ui.item.text() ).appendTo( "#log" ); } - $( "#menu1, #menu2, #menu3, .menu4" ).menu({ + $( "#menu1, #menu2, #menu3, .menu4, #menu7" ).menu({ select: logger }); @@ -58,7 +58,6 @@ <li><a href="#">Ada</a></li> <li><a href="#">Adamsville</a></li> <li><a href="#">Addyston</a></li> - <li></li> <li> <a href="#">Delphi</a> <ul> @@ -257,6 +256,54 @@ </div> </div> +<h2>Inline with dividers and elements without anchors</h2> +<ul id="menu7"> + <li><strong>Group 1</strong></li> + <li><a href="#">Aberdeen</a></li> + <li><a href="#">Ada</a></li> + <li><a href="#">Adamsville</a></li> + <li><a href="#">Addyston</a></li> + <li></li> + <li><strong>Group 2</strong></li> + <li> + <a href="#">Delphi</a> + <ul> + <li><a href="#">Ada</a></li> + <li><a href="#">Saarland</a></li> + <li><a href="#">Salzburg</a></li> + </ul> + </li> + <li><a href="#">Saarland</a></li> + <li>---</li> + <li><strong>Group 3</strong></li> + <li> + <a href="#">Salzburg</a> + <ul> + <li> + <a href="#">Delphi</a> + <ul> + <li><a href="#">Ada</a></li> + <li> - </li> + <li><a href="#">Saarland</a></li> + <li>—</li> + <li><a href="#">Salzburg</a></li> + <li>–</li> + </ul> + </li> + <li> + <a href="#">Delphi</a> + <ul> + <li><a href="#">Ada</a></li> + <li><a href="#">Saarland</a></li> + <li><a href="#">Salzburg</a></li> + </ul> + </li> + <li><a href="#">Perch</a></li> + </ul> + </li> + <li><a href="#">Amesville</a></li> +</ul> + <div style="position: absolute; top: 1em; right: 1em;"> Log: <div id="log" style="height: 400px; width: 300px; overflow: auto; border: 1px solid #000;"></div> |