]> source.dussan.org Git - jquery-ui.git/commitdiff
Accordion: Test cleanup.
authorScott González <scott.gonzalez@gmail.com>
Mon, 24 Jan 2011 20:45:29 +0000 (15:45 -0500)
committerScott González <scott.gonzalez@gmail.com>
Mon, 24 Jan 2011 20:45:29 +0000 (15:45 -0500)
tests/unit/accordion/accordion_core.js
tests/unit/accordion/accordion_defaults.js
tests/unit/accordion/accordion_defaults_deprecated.js [deleted file]
tests/unit/accordion/accordion_deprecated.html [deleted file]
tests/unit/accordion/accordion_deprecated.js [deleted file]
tests/unit/accordion/accordion_events.js
tests/unit/accordion/deprecated/accordion.html [new file with mode: 0644]
tests/unit/accordion/deprecated/accordion_defaults_deprecated.js [new file with mode: 0644]
tests/unit/accordion/deprecated/accordion_deprecated.js [new file with mode: 0644]
ui/jquery.ui.accordion.js

index 40a711abff14c2f7ed9ec8584611670a53cc5247..fa0facc80ffb74113f91261adc7bf59c94892ddb 100644 (file)
@@ -1,40 +1,35 @@
-/*
- * accordion_core.js
- */
+(function( $ ) {
 
+module( "accordion: core" );
 
-(function($) {
-
-module("accordion: core");
-
-test("handle click on header-descendant", function() {
-       var ac = $('#navigation').accordion({ autoHeight: false });
-       $('#navigation h2:eq(1) a').trigger("click");
-       state(ac, 0, 1, 0);
+test( "handle click on header-descendant", function() {
+       var ac = $( "#navigation" ).accordion();
+       $( "#navigation h2:eq(1) a" ).click();
+       state( ac, 0, 1, 0 );
 });
 
-test("ui-accordion-heading class added to headers anchor", function() {
-       expect(1);
-       var ac = $("#list1").accordion();
-       var anchors = $(".ui-accordion-heading");
-       equals( anchors.length, "3"); 
+test( "ui-accordion-heading class added to headers anchor", function() {
+       expect( 1 );
+       var ac = $( "#list1" ).accordion();
+       var anchors = $( ".ui-accordion-heading" );
+       equals( anchors.length, 3 );
 });
 
-test("accessibility", function () {
-       expect(9);
-       var ac = $('#list1').accordion().accordion("option", "active", 1);
-       var headers = $(".ui-accordion-header");
-
-       equals( headers.eq(1).attr("tabindex"), "0", "active header should have tabindex=0");
-       equals( headers.eq(0).attr("tabindex"), "-1", "inactive header should have tabindex=-1");
-       equals( ac.attr("role"), "tablist", "main role");
-       equals( headers.attr("role"), "tab", "tab roles");
-       equals( headers.next().attr("role"), "tabpanel", "tabpanel roles");
-       equals( headers.eq(1).attr("aria-expanded"), "true", "active tab has aria-expanded");
-       equals( headers.eq(0).attr("aria-expanded"), "false", "inactive tab has aria-expanded");
-       ac.accordion("option", "active", 0);
-       equals( headers.eq(0).attr("aria-expanded"), "true", "newly active tab has aria-expanded");
-       equals( headers.eq(1).attr("aria-expanded"), "false", "newly inactive tab has aria-expanded");
+test( "accessibility", function () {
+       expect( 9 );
+       var ac = $( "#list1" ).accordion().accordion( "option", "active", 1 );
+       var headers = $( ".ui-accordion-header" );
+
+       equals( headers.eq( 1 ).attr( "tabindex" ), 0, "active header should have tabindex=0" );
+       equals( headers.eq( 0 ).attr( "tabindex" ), -1, "inactive header should have tabindex=-1" );
+       equals( ac.attr( "role" ), "tablist", "main role" );
+       equals( headers.attr( "role" ), "tab", "tab roles" );
+       equals( headers.next().attr( "role" ), "tabpanel", "tabpanel roles" );
+       equals( headers.eq( 1 ).attr( "aria-expanded" ), "true", "active tab has aria-expanded" );
+       equals( headers.eq( 0 ).attr( "aria-expanded" ), "false", "inactive tab has aria-expanded" );
+       ac.accordion( "option", "active", 0 );
+       equals( headers.eq( 0 ).attr( "aria-expanded" ), "true", "newly active tab has aria-expanded" );
+       equals( headers.eq( 1 ).attr( "aria-expanded" ), "false", "newly inactive tab has aria-expanded" );
 });
 
-})(jQuery);
+}( jQuery ) );
index 78630adc7a248d67614e82c234fedd5114aa3b67..c2904d39ae14c78a892fbfa6a091bb9b165d66e6 100644 (file)
@@ -1,6 +1,3 @@
-/*
- * accordion_defaults.js
- */
 
 var accordion_defaults = {
        active: 0,
@@ -11,8 +8,8 @@ var accordion_defaults = {
        header: "> li > :first-child,> :not(li):even",
        heightStyle: "auto",
        icons: {
-               "header": "ui-icon-triangle-1-e",
-               "activeHeader": "ui-icon-triangle-1-s"
+               "activeHeader": "ui-icon-triangle-1-s",
+               "header": "ui-icon-triangle-1-e"
        }
 };
 
diff --git a/tests/unit/accordion/accordion_defaults_deprecated.js b/tests/unit/accordion/accordion_defaults_deprecated.js
deleted file mode 100644 (file)
index 41998ea..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * accordion_defaults.js
- */
-
-var accordion_defaults = {
-       active: 0,
-       animated: false,
-       autoHeight: true,
-       clearStyle: false,
-       collapsible: false,
-       disabled: false,
-       event: "click",
-       fillSpace: false,
-       header: "> li > :first-child,> :not(li):even",
-       heightStyle: null,
-       icons: {
-               "header": "ui-icon-triangle-1-e",
-               "activeHeader": null,
-               "headerSelected": "ui-icon-triangle-1-s"
-       },
-       navigation: false,
-       navigationFilter: function() {}
-};
-
-commonWidgetTests( "accordion", { defaults: accordion_defaults } );
diff --git a/tests/unit/accordion/accordion_deprecated.html b/tests/unit/accordion/accordion_deprecated.html
deleted file mode 100644 (file)
index c104df4..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-       <meta charset="utf-8">
-       <title>jQuery UI Accordion Test Suite</title>
-
-       <link rel="stylesheet" href="../../../themes/base/jquery.ui.accordion.css">
-
-       <script src="../../../jquery-1.4.4.js"></script>
-       <script src="../../../ui/jquery.ui.core.js"></script>
-       <script src="../../../ui/jquery.ui.widget.js"></script>
-       <script src="../../../ui/jquery.ui.accordion.js"></script>
-
-       <link rel="stylesheet" href="../../../external/qunit.css">
-       <script src="../../../external/qunit.js"></script>
-       <script src="../../jquery.simulate.js"></script>
-       <script src="../testsuite.js"></script>
-
-       <script>
-       $.ui.accordion.prototype.options.animated = false;
-
-       function state(accordion) {
-               var args = $.makeArray(arguments).slice(1);
-               var result = [];
-               $.each(args, function(i, n) {
-                       result.push( accordion.find(".ui-accordion-content").eq(i).filter(function() {
-                               return $(this).css("display") != "none"
-                       }).length ? 1 : 0 );
-               });
-               same(args, result)
-       }
-       function equalHeights(accordion, min, max) {
-               var sizes = [];
-               accordion.find(".ui-accordion-content").each(function() {
-                       sizes.push($(this).outerHeight());
-               });
-               ok( sizes[0] >= min && sizes[0] <= max, "must be within " + min + " and " + max + ", was " + sizes[0] );
-               same(sizes[0], sizes[1]);
-               same(sizes[0], sizes[2]);
-       }
-       </script>
-       <script src="accordion_core.js"></script>
-       <script src="accordion_defaults_deprecated.js"></script>
-       <script src="accordion_events.js"></script>
-       <script src="accordion_methods.js"></script>
-       <script src="accordion_options.js"></script>
-       <script src="accordion_tickets.js"></script>
-       <script src="accordion_deprecated.js"></script>
-
-       <script src="../swarminject.js"></script>
-       <style>
-       #main { font-size: 10pt; font-family: "trebuchet ms", verdana, arial; }
-       #list, #list1 *, #navigation, #navigation * { margin: 0; padding: 0; font-size: 12px; }
-       </style>
-</head>
-<body>
-
-<h1 id="qunit-header">jQuery UI Accordion Test Suite</h1>
-<h2 id="qunit-banner"></h2>
-<h2 id="qunit-userAgent"></h2>
-<ol id="qunit-tests">
-</ol>
-
-<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
-
-       <div>
-               <div id="list1" class="foo">
-               <h3 class="bar"><a class="anchor">There is one obvious advantage:</a></h3>
-               <div class="foo">
-                   <p>
-                       You've seen it coming!
-                       <br/>
-                       Buy now and get nothing for free!
-                       <br/>
-                       Well, at least no free beer. Perhaps a bear, if you can afford it.
-                   </p>
-               </div>
-               <h3 class="bar"><a class="anchor">Now that you've got...</a></h3>
-               <div class="foo">
-                   <p>
-                       your bear, you have to admit it!
-                       <br/>
-                       No, we aren't selling bears.
-                   </p>
-                   <p>
-                       We could talk about renting one.
-                   </p>
-               </div>
-               <h3 class="bar"><a class="anchor">Rent one bear, ...</a></h3>
-               <div class="foo">
-                   <p>
-                       get two for three beer.
-                   </p>
-                   <p>
-                       And now, for something completely different.
-                   </p>
-               </div>
-               </div>
-       </div>
-
-<div id="navigationWrapper">
-       <ul id="navigation">
-               <li>
-                       <h2><a href="?p=1.1.1">Guitar</a></h2>
-                       <ul>
-                               <li><a href="?p=1.1.1.1">Electric</a></li>
-                               <li><a href="?p=1.1.1.2">Acoustic</a></li>
-                               <li><a href="?p=1.1.1.3">Amps</a></li>
-                               <li><a href="?p=1.1.1.4">Effects</a></li>
-                               <li><a href="?p=1.1.1.5">Accessories</a></li>
-                       </ul> 
-               </li>
-               <li>
-                       <h2><a href="?p=1.1.2"><span>Bass</span></a></h2>
-                       <ul>
-                               <li><a href="?p=1.1.2.1">Electric</a></li>
-                               <li><a href="?p=1.1.2.2">Acoustic</a></li>
-                               <li><a href="?p=1.1.2.3">Amps</a></li>
-                               <li><a href="?p=1.1.2.4">Effects</a></li>
-                               <li><a href="?p=1.1.2.5">Accessories</a></li>
-                               <li><a href="?p=1.1.2.5">Accessories</a></li>
-                               <li><a href="?p=1.1.2.5">Accessories</a></li>
-                       </ul> 
-               </li>
-               <li>
-                       <h2><a href="?p=1.1.3">Drums</a></h2>
-                       <ul>
-                               <li><a href="?p=1.1.3.2">Acoustic Drums</a></li>
-                               <li><a href="?p=1.1.3.3">Electronic Drums</a></li>
-                               <li><a href="?p=1.1.3.6">Accessories</a></li>
-                       </ul> 
-               </li>
-       </ul>
-</div>
-
-</div>
-
-</body>
-</html>
diff --git a/tests/unit/accordion/accordion_deprecated.js b/tests/unit/accordion/accordion_deprecated.js
deleted file mode 100644 (file)
index b219cf8..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * accordion_core.js
- */
-
-
-(function($) {
-
-module("accordion (deprecated): expanded active option, activate method");
-
-test("activate", function() {
-       var expected = $('#list1').accordion(),
-               actual = expected.accordion('activate', 2);
-       equals(actual, expected, 'activate is chainable');
-});
-
-test("activate, numeric", function() {
-       var ac = $('#list1').accordion({ active: 1 });
-       state(ac, 0, 1, 0);
-       ac.accordion("activate", 2);
-       state(ac, 0, 0, 1);
-       ac.accordion("activate", 0);
-       state(ac, 1, 0, 0);
-       ac.accordion("activate", 1);
-       state(ac, 0, 1, 0);
-       ac.accordion("activate", 2);
-       state(ac, 0, 0, 1);
-});
-
-test("activate, boolean and numeric, collapsible:true", function() {
-       var ac = $('#list1').accordion({collapsible: true}).accordion("activate", 2);
-       state(ac, 0, 0, 1);
-       ok("x", "----");
-       ac.accordion("activate", 0);
-       state(ac, 1, 0, 0);
-       ok("x", "----");
-       ac.accordion("activate", -1);
-       state(ac, 0, 0, 0);
-});
-
-test("activate, boolean, collapsible: false", function() {
-       var ac = $('#list1').accordion().accordion("activate", 2);
-       state(ac, 0, 0, 1);
-       ac.accordion("activate", false);
-       state(ac, 0, 0, 1);
-});
-
-test("activate, string expression", function() {
-       var ac = $('#list1').accordion({ active: "h3:last" });
-       state(ac, 0, 0, 1);
-       ac.accordion("activate", ":first");
-       state(ac, 1, 0, 0);
-       ac.accordion("activate", ":eq(1)");
-       state(ac, 0, 1, 0);
-       ac.accordion("activate", ":last");
-       state(ac, 0, 0, 1);
-});
-
-test("activate, jQuery or DOM element", function() {
-       var ac = $('#list1').accordion({ active: $("#list1 h3:last") });
-       state(ac, 0, 0, 1);
-       ac.accordion("activate", $("#list1 h3:first"));
-       state(ac, 1, 0, 0);
-       ac.accordion("activate", $("#list1 h3")[1]);
-       state(ac, 0, 1, 0);
-});
-
-test("{ active: Selector }", function() {
-       var ac = $("#list1").accordion({
-               active: "h3:last"
-       });
-       state(ac, 0, 0, 1);
-       ac.accordion('option', 'active', "h3:eq(1)");
-       state(ac, 0, 1, 0);
-});
-
-test("{ active: Element }", function() {
-       var ac = $("#list1").accordion({
-               active: $("#list1 h3:last")[0]
-       });
-       state(ac, 0, 0, 1);
-       ac.accordion('option', 'active', $("#list1 h3:eq(1)")[0]);
-       state(ac, 0, 1, 0);
-});
-
-test("{ active: jQuery Object }", function() {
-       var ac = $("#list1").accordion({
-               active: $("#list1 h3:last")
-       });
-       state(ac, 0, 0, 1);
-       ac.accordion('option', 'active', $("#list1 h3:eq(1)"));
-       state(ac, 0, 1, 0);
-});
-
-
-
-
-
-
-module("accordion (deprecated) - height options");
-
-test("{ autoHeight: true }, default", function() {
-       equalHeights($('#navigation').accordion({ autoHeight: true }), 95, 130);
-});
-
-test("{ autoHeight: false }", function() {
-       var accordion = $('#navigation').accordion({ autoHeight: false });
-       var sizes = [];
-       accordion.find(".ui-accordion-content").each(function() {
-               sizes.push($(this).height());
-       });
-       ok( sizes[0] >= 70 && sizes[0] <= 90, "was " + sizes[0] );
-       ok( sizes[1] >= 98 && sizes[1] <= 126, "was " + sizes[1] );
-       ok( sizes[2] >= 42 && sizes[2] <= 54, "was " + sizes[2] );
-});
-
-// fillSpace: false == autoHeight: true, covered above
-test("{ fillSpace: true }", function() {
-       $("#navigationWrapper").height(500);
-       equalHeights($('#navigation').accordion({ fillSpace: true }), 446, 458);
-});
-
-test("{ fillSpace: true } with sibling", function() {
-       $("#navigationWrapper").height(500);
-       var sibling = $("<p>Lorem Ipsum</p>");
-       $("#navigationWrapper").prepend( sibling.height(100) );
-       //sibling.outerHeight(true) == 126
-       equalHeights($('#navigation').accordion({ fillSpace: true}), 320, 332);
-});
-
-test("{ fillSpace: true } with multiple siblings", function() {
-       $("#navigationWrapper").height(500);
-       var sibling = $("<p>Lorem Ipsum</p>");
-       $("#navigationWrapper")
-               .prepend( sibling.clone().height(100) )
-               .prepend( sibling.clone().height(100).css( "position", "absolute" ) )
-               .prepend( sibling.clone().height(50) );
-       //sibling.outerHeight(true) == 126
-       equalHeights($('#navigation').accordion({ fillSpace: true}), 244, 256);
-});
-
-
-
-
-module("accordion (deprecated) - icons");
-
-test("change headerSelected option after creation", function() {
-       var list = $("#list1");
-       list.accordion( { icons: { "activeHeader": "test" } } );
-       equals( $( "#list1 span.test" ).length, 1);
-       list.accordion( "option", "icons", { "headerSelected": "deprecated" } );
-       equals( $( "#list1 span.deprecated" ).length, 1);
-});
-
-})(jQuery);
index 4798f7404671c4998fe1c8449d83c1fbcb225c47..ff9590eacab82ef74ca8c3deb6a42027db0661da 100644 (file)
@@ -1,30 +1,32 @@
-/*
- * accordion_events.js
- */
-(function($) {
+(function( $ ) {
 
-module("accordion: events");
+module( "accordion: events" );
 
-test("accordionchange event, open closed and close again", function() {
-       expect(8);
-       $("#list1").accordion({
-               active: false,
-               collapsible: true
-       })
-       .one("accordionchange", function(event, ui) {
-               equals( ui.oldHeader.size(), 0 );
-               equals( ui.oldContent.size(), 0 );
-               equals( ui.newHeader.size(), 1 );
-               equals( ui.newContent.size(), 1 );
-       })
-       .accordion("option", "active", 0)
-       .one("accordionchange", function(event, ui) {
-               equals( ui.oldHeader.size(), 1 );
-               equals( ui.oldContent.size(), 1 );
-               equals( ui.newHeader.size(), 0 );
-               equals( ui.newContent.size(), 0 );
-       })
-       .accordion("option", "active", false);
+// TODO: verify correct elements in ui properties
+// TODO: add tests for switching between active panels (not collapsed)
+// TODO: add tests for changestart
+// TODO: move change/changestart to deprecated tests (add activate/beforeactivate)
+test( "accordionchange event, open closed and close again", function() {
+       expect( 8 );
+       $( "#list1" )
+               .accordion({
+                       active: false,
+                       collapsible: true
+               })
+               .one( "accordionchange", function( event, ui ) {
+                       equals( ui.oldHeader.size(), 0 );
+                       equals( ui.oldContent.size(), 0 );
+                       equals( ui.newHeader.size(), 1 );
+                       equals( ui.newContent.size(), 1 );
+               })
+               .accordion( "option", "active", 0 )
+               .one( "accordionchange", function( event, ui ) {
+                       equals( ui.oldHeader.size(), 1 );
+                       equals( ui.oldContent.size(), 1 );
+                       equals( ui.newHeader.size(), 0 );
+                       equals( ui.newContent.size(), 0 );
+               })
+               .accordion( "option", "active", false );
 });
 
-})(jQuery);
+}( jQuery ) );
diff --git a/tests/unit/accordion/deprecated/accordion.html b/tests/unit/accordion/deprecated/accordion.html
new file mode 100644 (file)
index 0000000..d5e55f2
--- /dev/null
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+       <meta charset="utf-8">
+       <title>jQuery UI Accordion Test Suite</title>
+
+       <link rel="stylesheet" href="../../../../themes/base/jquery.ui.accordion.css">
+
+       <script src="../../../../jquery-1.4.4.js"></script>
+       <script src="../../../../ui/jquery.ui.core.js"></script>
+       <script src="../../../../ui/jquery.ui.widget.js"></script>
+       <script src="../../../../ui/jquery.ui.accordion.js"></script>
+
+       <link rel="stylesheet" href="../../../../external/qunit.css">
+       <script src="../../../../external/qunit.js"></script>
+       <script src="../../../jquery.simulate.js"></script>
+       <script src="../../testsuite.js"></script>
+
+       <script>
+       $.ui.accordion.prototype.options.animated = false;
+
+       function state(accordion) {
+               var args = $.makeArray(arguments).slice(1);
+               var result = [];
+               $.each(args, function(i, n) {
+                       result.push( accordion.find(".ui-accordion-content").eq(i).filter(function() {
+                               return $(this).css("display") != "none"
+                       }).length ? 1 : 0 );
+               });
+               same(args, result)
+       }
+       function equalHeights(accordion, min, max) {
+               var sizes = [];
+               accordion.find(".ui-accordion-content").each(function() {
+                       sizes.push($(this).outerHeight());
+               });
+               ok( sizes[0] >= min && sizes[0] <= max, "must be within " + min + " and " + max + ", was " + sizes[0] );
+               same(sizes[0], sizes[1]);
+               same(sizes[0], sizes[2]);
+       }
+       </script>
+       <script src="../accordion_core.js"></script>
+       <script src="accordion_defaults_deprecated.js"></script>
+       <script src="../accordion_events.js"></script>
+       <script src="../accordion_methods.js"></script>
+       <script src="../accordion_options.js"></script>
+       <script src="../accordion_tickets.js"></script>
+       <script src="accordion_deprecated.js"></script>
+
+       <script src="../../swarminject.js"></script>
+       <style>
+       #main { font-size: 10pt; font-family: "trebuchet ms", verdana, arial; }
+       #list, #list1 *, #navigation, #navigation * { margin: 0; padding: 0; font-size: 12px; }
+       </style>
+</head>
+<body>
+
+<h1 id="qunit-header">jQuery UI Accordion Test Suite</h1>
+<h2 id="qunit-banner"></h2>
+<h2 id="qunit-userAgent"></h2>
+<ol id="qunit-tests">
+</ol>
+
+<div id="main" style="position: absolute; top: -10000px; left: -10000px;">
+
+       <div>
+               <div id="list1" class="foo">
+               <h3 class="bar"><a class="anchor">There is one obvious advantage:</a></h3>
+               <div class="foo">
+                   <p>
+                       You've seen it coming!
+                       <br/>
+                       Buy now and get nothing for free!
+                       <br/>
+                       Well, at least no free beer. Perhaps a bear, if you can afford it.
+                   </p>
+               </div>
+               <h3 class="bar"><a class="anchor">Now that you've got...</a></h3>
+               <div class="foo">
+                   <p>
+                       your bear, you have to admit it!
+                       <br/>
+                       No, we aren't selling bears.
+                   </p>
+                   <p>
+                       We could talk about renting one.
+                   </p>
+               </div>
+               <h3 class="bar"><a class="anchor">Rent one bear, ...</a></h3>
+               <div class="foo">
+                   <p>
+                       get two for three beer.
+                   </p>
+                   <p>
+                       And now, for something completely different.
+                   </p>
+               </div>
+               </div>
+       </div>
+
+<div id="navigationWrapper">
+       <ul id="navigation">
+               <li>
+                       <h2><a href="?p=1.1.1">Guitar</a></h2>
+                       <ul>
+                               <li><a href="?p=1.1.1.1">Electric</a></li>
+                               <li><a href="?p=1.1.1.2">Acoustic</a></li>
+                               <li><a href="?p=1.1.1.3">Amps</a></li>
+                               <li><a href="?p=1.1.1.4">Effects</a></li>
+                               <li><a href="?p=1.1.1.5">Accessories</a></li>
+                       </ul> 
+               </li>
+               <li>
+                       <h2><a href="?p=1.1.2"><span>Bass</span></a></h2>
+                       <ul>
+                               <li><a href="?p=1.1.2.1">Electric</a></li>
+                               <li><a href="?p=1.1.2.2">Acoustic</a></li>
+                               <li><a href="?p=1.1.2.3">Amps</a></li>
+                               <li><a href="?p=1.1.2.4">Effects</a></li>
+                               <li><a href="?p=1.1.2.5">Accessories</a></li>
+                               <li><a href="?p=1.1.2.5">Accessories</a></li>
+                               <li><a href="?p=1.1.2.5">Accessories</a></li>
+                       </ul> 
+               </li>
+               <li>
+                       <h2><a href="?p=1.1.3">Drums</a></h2>
+                       <ul>
+                               <li><a href="?p=1.1.3.2">Acoustic Drums</a></li>
+                               <li><a href="?p=1.1.3.3">Electronic Drums</a></li>
+                               <li><a href="?p=1.1.3.6">Accessories</a></li>
+                       </ul> 
+               </li>
+       </ul>
+</div>
+
+</div>
+
+</body>
+</html>
diff --git a/tests/unit/accordion/deprecated/accordion_defaults_deprecated.js b/tests/unit/accordion/deprecated/accordion_defaults_deprecated.js
new file mode 100644 (file)
index 0000000..386354e
--- /dev/null
@@ -0,0 +1,22 @@
+
+var accordion_defaults = {
+       active: 0,
+       animated: false,
+       autoHeight: true,
+       clearStyle: false,
+       collapsible: false,
+       disabled: false,
+       event: "click",
+       fillSpace: false,
+       header: "> li > :first-child,> :not(li):even",
+       heightStyle: null,
+       icons: {
+               "activeHeader": null,
+               "header": "ui-icon-triangle-1-e",
+               "headerSelected": "ui-icon-triangle-1-s"
+       },
+       navigation: false,
+       navigationFilter: function() {}
+};
+
+commonWidgetTests( "accordion", { defaults: accordion_defaults } );
diff --git a/tests/unit/accordion/deprecated/accordion_deprecated.js b/tests/unit/accordion/deprecated/accordion_deprecated.js
new file mode 100644 (file)
index 0000000..b219cf8
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ * accordion_core.js
+ */
+
+
+(function($) {
+
+module("accordion (deprecated): expanded active option, activate method");
+
+test("activate", function() {
+       var expected = $('#list1').accordion(),
+               actual = expected.accordion('activate', 2);
+       equals(actual, expected, 'activate is chainable');
+});
+
+test("activate, numeric", function() {
+       var ac = $('#list1').accordion({ active: 1 });
+       state(ac, 0, 1, 0);
+       ac.accordion("activate", 2);
+       state(ac, 0, 0, 1);
+       ac.accordion("activate", 0);
+       state(ac, 1, 0, 0);
+       ac.accordion("activate", 1);
+       state(ac, 0, 1, 0);
+       ac.accordion("activate", 2);
+       state(ac, 0, 0, 1);
+});
+
+test("activate, boolean and numeric, collapsible:true", function() {
+       var ac = $('#list1').accordion({collapsible: true}).accordion("activate", 2);
+       state(ac, 0, 0, 1);
+       ok("x", "----");
+       ac.accordion("activate", 0);
+       state(ac, 1, 0, 0);
+       ok("x", "----");
+       ac.accordion("activate", -1);
+       state(ac, 0, 0, 0);
+});
+
+test("activate, boolean, collapsible: false", function() {
+       var ac = $('#list1').accordion().accordion("activate", 2);
+       state(ac, 0, 0, 1);
+       ac.accordion("activate", false);
+       state(ac, 0, 0, 1);
+});
+
+test("activate, string expression", function() {
+       var ac = $('#list1').accordion({ active: "h3:last" });
+       state(ac, 0, 0, 1);
+       ac.accordion("activate", ":first");
+       state(ac, 1, 0, 0);
+       ac.accordion("activate", ":eq(1)");
+       state(ac, 0, 1, 0);
+       ac.accordion("activate", ":last");
+       state(ac, 0, 0, 1);
+});
+
+test("activate, jQuery or DOM element", function() {
+       var ac = $('#list1').accordion({ active: $("#list1 h3:last") });
+       state(ac, 0, 0, 1);
+       ac.accordion("activate", $("#list1 h3:first"));
+       state(ac, 1, 0, 0);
+       ac.accordion("activate", $("#list1 h3")[1]);
+       state(ac, 0, 1, 0);
+});
+
+test("{ active: Selector }", function() {
+       var ac = $("#list1").accordion({
+               active: "h3:last"
+       });
+       state(ac, 0, 0, 1);
+       ac.accordion('option', 'active', "h3:eq(1)");
+       state(ac, 0, 1, 0);
+});
+
+test("{ active: Element }", function() {
+       var ac = $("#list1").accordion({
+               active: $("#list1 h3:last")[0]
+       });
+       state(ac, 0, 0, 1);
+       ac.accordion('option', 'active', $("#list1 h3:eq(1)")[0]);
+       state(ac, 0, 1, 0);
+});
+
+test("{ active: jQuery Object }", function() {
+       var ac = $("#list1").accordion({
+               active: $("#list1 h3:last")
+       });
+       state(ac, 0, 0, 1);
+       ac.accordion('option', 'active', $("#list1 h3:eq(1)"));
+       state(ac, 0, 1, 0);
+});
+
+
+
+
+
+
+module("accordion (deprecated) - height options");
+
+test("{ autoHeight: true }, default", function() {
+       equalHeights($('#navigation').accordion({ autoHeight: true }), 95, 130);
+});
+
+test("{ autoHeight: false }", function() {
+       var accordion = $('#navigation').accordion({ autoHeight: false });
+       var sizes = [];
+       accordion.find(".ui-accordion-content").each(function() {
+               sizes.push($(this).height());
+       });
+       ok( sizes[0] >= 70 && sizes[0] <= 90, "was " + sizes[0] );
+       ok( sizes[1] >= 98 && sizes[1] <= 126, "was " + sizes[1] );
+       ok( sizes[2] >= 42 && sizes[2] <= 54, "was " + sizes[2] );
+});
+
+// fillSpace: false == autoHeight: true, covered above
+test("{ fillSpace: true }", function() {
+       $("#navigationWrapper").height(500);
+       equalHeights($('#navigation').accordion({ fillSpace: true }), 446, 458);
+});
+
+test("{ fillSpace: true } with sibling", function() {
+       $("#navigationWrapper").height(500);
+       var sibling = $("<p>Lorem Ipsum</p>");
+       $("#navigationWrapper").prepend( sibling.height(100) );
+       //sibling.outerHeight(true) == 126
+       equalHeights($('#navigation').accordion({ fillSpace: true}), 320, 332);
+});
+
+test("{ fillSpace: true } with multiple siblings", function() {
+       $("#navigationWrapper").height(500);
+       var sibling = $("<p>Lorem Ipsum</p>");
+       $("#navigationWrapper")
+               .prepend( sibling.clone().height(100) )
+               .prepend( sibling.clone().height(100).css( "position", "absolute" ) )
+               .prepend( sibling.clone().height(50) );
+       //sibling.outerHeight(true) == 126
+       equalHeights($('#navigation').accordion({ fillSpace: true}), 244, 256);
+});
+
+
+
+
+module("accordion (deprecated) - icons");
+
+test("change headerSelected option after creation", function() {
+       var list = $("#list1");
+       list.accordion( { icons: { "activeHeader": "test" } } );
+       equals( $( "#list1 span.test" ).length, 1);
+       list.accordion( "option", "icons", { "headerSelected": "deprecated" } );
+       equals( $( "#list1 span.deprecated" ).length, 1);
+});
+
+})(jQuery);
index a06cd2a2a6cfaa2d37145afb63afcfbe7e7afc3f..d855da5f3494d30a479a9be24b54f203e7b723e4 100644 (file)
@@ -22,8 +22,8 @@ $.widget( "ui.accordion", {
                header: "> li > :first-child,> :not(li):even",
                heightStyle: "auto",
                icons: {
-                       header: "ui-icon-triangle-1-e",
-                       activeHeader: "ui-icon-triangle-1-s"
+                       activeHeader: "ui-icon-triangle-1-s",
+                       header: "ui-icon-triangle-1-e"
                }
        },