Skip to content
Permalink
Browse files

accordion unit tests: split tests into individual files

  • Loading branch information
rdworth committed Feb 3, 2009
1 parent 08a75c4 commit 7c17ab9b1e02a2911b4964dd04154501159037a4
@@ -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>

This file was deleted.

@@ -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);
@@ -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 });
@@ -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);
@@ -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);

0 comments on commit 7c17ab9

Please sign in to comment.
You can’t perform that action at this time.