r1978 - trunk/tests/unit/accordion

r1978 - trunk/tests/unit/accordion


Author: rdworth
Date: Tue Feb 3 00:23:48 2009
New Revision: 1978
Removed:
trunk/tests/unit/accordion/accordion.js
Modified:
trunk/tests/unit/accordion/accordion.html
trunk/tests/unit/accordion/accordion_core.js
trunk/tests/unit/accordion/accordion_defaults.js
trunk/tests/unit/accordion/accordion_events.js
trunk/tests/unit/accordion/accordion_methods.js
trunk/tests/unit/accordion/accordion_options.js
trunk/tests/unit/accordion/accordion_tickets.js
Log:
accordion unit tests: split tests into individual files
Modified: trunk/tests/unit/accordion/accordion.html
==============================================================================
--- trunk/tests/unit/accordion/accordion.html    (original)
+++ trunk/tests/unit/accordion/accordion.html    Tue Feb 3 00:23:48 2009
@@ -12,7 +12,12 @@
    <script type="text/javascript"
src="../../../external/qunit/testrunner.js"></script>
    <script type="text/javascript"
src="../../../external/simulate/jquery.simulate.js"></script>
-    <script type="text/javascript" src="accordion.js"></script>
+    <script type="text/javascript" src="accordion_core.js"></script>
+    <script type="text/javascript" src="accordion_defaults.js"></script>
+    <script type="text/javascript" src="accordion_events.js"></script>
+    <script type="text/javascript" src="accordion_methods.js"></script>
+    <script type="text/javascript" src="accordion_options.js"></script>
+    <script type="text/javascript" src="accordion_tickets.js"></script>
</head>
<body>
Modified: trunk/tests/unit/accordion/accordion_core.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_core.js    (original)
+++ trunk/tests/unit/accordion/accordion_core.js    Tue Feb 3 00:23:48 2009
@@ -1,12 +1,52 @@
/*
* accordion_core.js
*/
+
+jQuery.ui.accordion.defaults.animated = false;
+
+function state(accordion) {
+    var args = $.makeArray(arguments).slice(1);
+    $.each(args, function(i, n) {
+        equals(accordion.find(".ui-accordion-content").eq(i).is(":visible"), n);
+    });
+}
+
+function state2(accordion) {
+    var args = $.makeArray(arguments).slice(1);
+    $.each(args, function(i, n) {
+        equals(accordion.find("div").eq(i).is(":visible"), n);
+    });
+}
+
+$.fn.triggerEvent = function(type, target) {
+    return this.triggerHandler(type, [jQuery.event.fix({ type: type, target:
target })]);
+};
+
(function($) {
module("accordion: core");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+test("handle click on header-descendant", function() {
+    var ac = $('#navigation').accordion({ autoHeight: false });
+    ac.triggerEvent("click", $('#navigation span:contains(Bass)')[0]);
+    state2(ac, 0, 1, 0);
+});
+
+test("accessibility", function () {
+    expect(9);
+    var ac = $('#list1').accordion().accordion("activate", 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("activate", 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);
Modified: trunk/tests/unit/accordion/accordion_defaults.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_defaults.js    (original)
+++ trunk/tests/unit/accordion/accordion_defaults.js    Tue Feb 3 00:23:48
2009
@@ -3,7 +3,20 @@
*/
var accordion_defaults = {
-    disabled: false
+    active: null,
+    animated: false,
+    autoHeight: true,
+    collapsible: false,
+    clearStyle: false,
+    disabled: false,
+    event: "click",
+    fillSpace: false,
+    header: "> li > :first-child,> :not(li):even",
+    icons:
{ "header": "ui-icon-triangle-1-e", "headerSelected": "ui-icon-triangle-1-s"
},
+    navigation: false,
+    navigationFilter: function() {
+ return this.href.toLowerCase() == location.href.toLowerCase();
+ }
};
commonWidgetTests('accordion', { defaults: accordion_defaults });
Modified: trunk/tests/unit/accordion/accordion_events.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_events.js    (original)
+++ trunk/tests/unit/accordion/accordion_events.js    Tue Feb 3 00:23:48 2009
@@ -5,8 +5,26 @@
module("accordion: events");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+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("activate", 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("activate", 0);
});
})(jQuery);
Modified: trunk/tests/unit/accordion/accordion_methods.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_methods.js    (original)
+++ trunk/tests/unit/accordion/accordion_methods.js    Tue Feb 3 00:23:48 2009
@@ -5,8 +5,73 @@
module("accordion: methods");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+test("init", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("destroy", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("enable", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("disable", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+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);
+    ac.accordion("activate", -1);
+    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", -1);
+    state(ac, 0, 0, 1);
+});
+
+test("activate, string expression", function() {
+    var ac = $('#list1').accordion({ active: "a: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 a:last") });
+    state(ac, 0, 0, 1);
+    ac.accordion("activate", $("#list1 a:first"));
+    state(ac, 1, 0, 0);
+    ac.accordion("activate", $("#list1 a")[1]);
+    state(ac, 0, 1, 0);
});
})(jQuery);
Modified: trunk/tests/unit/accordion/accordion_options.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_options.js    (original)
+++ trunk/tests/unit/accordion/accordion_options.js    Tue Feb 3 00:23:48 2009
@@ -5,8 +5,130 @@
module("accordion: options");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
+test("{ active: first child }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ active: Selector }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ active: Element }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ active: jQuery Object }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ active: true }", function() {
+    $("#list1").accordion({
+        active: true,
+        collapsible: false
+    });
+    equals( $("#list1 .ui-accordion-header.ui-state-active").size(), 1, "one
header selected" );
+});
+
+test("{ active: false }", function() {
+    $("#list1").accordion({
+        active: false,
+        collapsible: true
+    });
+    equals( $("#list1 .ui-accordion-header.ui-state-active").size(), 0, "no
headers selected" );
+});
+
+test("{ active: Number }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ animated: false }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ animated: true }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ animated: String }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ autoHeight: true }, default", function() {
+    $('#navigation').accordion({ autoHeight: true });
+    equals( $('#navigation > li:eq(0) > ul').height(), 112 );
+    equals( $('#navigation > li:eq(1) > ul').height(), 112 );
+    equals( $('#navigation > li:eq(2) > ul').height(), 112 );
+});
+
+test("{ autoHeight: false }", function() {
+    $('#navigation').accordion({ autoHeight: false });
+    equals( $('#navigation > li:eq(0) > ul').height(), 80 );
+    equals( $('#navigation > li:eq(1) > ul').height(), 112 );
+    equals( $('#navigation > li:eq(2) > ul').height(), 48 );
+});
+
+test("{ clearStyle: false }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ clearStyle: true }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ collapsible: false }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ collapsible: true }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ event: 'click' }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ event: 'mouseover' }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ fillSpace: false }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ fillSpace: true }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ header: '> li > :first-child,> :not(li):even' }, default",
function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ header: Selector }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ header: jQuery Object }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ icons:
{ 'header': 'ui-icon-triangle-1-e', 'headerSelected': 'ui-icon-triangle-1-s'
} }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ icons: { 'header': 'ui-icon-foo', 'headerSelected': 'ui-icon-bar'
} }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ navigation: false }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ navigation: true }", function() {
+    ok(false, 'missing test - untested code is broken code');
+});
+
+test("{ navigationFilter: Function }, default", function() {
+    ok(false, 'missing test - untested code is broken code');
});
})(jQuery);
Modified: trunk/tests/unit/accordion/accordion_tickets.js
==============================================================================
--- trunk/tests/unit/accordion/accordion_tickets.js    (original)
+++ trunk/tests/unit/accordion/accordion_tickets.js    Tue Feb 3 00:23:48 2009
@@ -5,8 +5,4 @@
module("accordion: tickets");
-test("testname", function() {
-    ok(false, "missing test - untested code is broken code.");
-});
-
})(jQuery);