virt2/assets/vendor_components/jquery-steps-master/test/tests.js

247 lines
8.1 KiB
JavaScript
Executable File

/*jshint -W024 */
/*jshint -W117 */
module("general");
test("contentMode", 5, function ()
{
throws(function() { $("#contentModeWithEmptyStringArgument").steps(); }, /The enum key/, "Empty string argument");
throws(function() { $("#contentModeWithWrongNumberArgument").steps(); }, /Invalid enum value/, "Invalid number argument");
throws(function() { $("#contentModeWithWrongStringArgument").steps(); }, /The enum key/, "Invalid string argument");
var contentModeWithNumberArgument = $("#contentModeWithNumberArgument").steps();
equal(contentModeWithNumberArgument.steps("getCurrentStep").contentMode, 0, "Valid number argument");
var contentModeWithStringArgument = $("#contentModeWithStringArgument").steps();
equal(contentModeWithStringArgument.steps("getCurrentStep").contentMode, 0, "Valid string argument");
});
module("visualization", {
setup: function ()
{
$("#qunit-fixture").append($("<div id=\"vis\">" +
"<h1>First</h1>" +
"<div>Content 1</div>" +
"<h1>Second</h1>" +
"<div>Content 2</div>" +
"<h1>Third</h1>" +
"<div>Content 3</div>" +
"</div>"));
$("#vis").steps();
},
teardown: function ()
{
$("#vis").remove();
}
});
test("stepClassFirstAndLast", 12, function ()
{
function checkOnlyFirstItemHasClass()
{
var steps = $("#vis li[role=tab]");
for (var i = 0; i < steps.length; i++)
{
if (i > 0 && steps.eq(i).hasClass("first"))
{
return false;
}
}
return steps.first().hasClass("first");
}
function checkOnlyLastItemHasClass()
{
var steps = $("#vis li[role=tab]");
for (var i = 0; i < steps.length; i++)
{
if (i < (steps.length - 1) && steps.eq(i).hasClass("last"))
{
return false;
}
}
return steps.last().hasClass("last");
}
ok(checkOnlyFirstItemHasClass(), "Valid after init (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after init (last)!");
$("#vis").steps("next");
ok(checkOnlyFirstItemHasClass(), "Valid after next (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after next (last)!");
$("#vis").steps("insert", 0, {
title: "New First",
content: "New First Content"
});
ok(checkOnlyFirstItemHasClass(), "Valid after insert on first position (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after insert on first position (last)!");
$("#vis").steps("add", {
title: "New Last",
content: "New Last Content"
});
ok(checkOnlyFirstItemHasClass(), "Valid after add (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after add (last)!");
$("#vis").steps("remove", 0);
ok(checkOnlyFirstItemHasClass(), "Valid after remove first item (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after remove first item (last)!");
$("#vis").steps("previous");
ok(checkOnlyFirstItemHasClass(), "Valid after previous (first)!");
ok(checkOnlyLastItemHasClass(), "Valid after previous (last)!");
});
test("stepClassCurrent", 6, function ()
{
function checkOnlyItemOnPositionHasClass(index)
{
var steps = $("#vis li[role=tab]");
for (var i = 0; i < steps.length; i++)
{
if (i !== index && steps.eq(i).hasClass("current"))
{
return false;
}
}
return steps.eq(index).hasClass("current");
}
ok(checkOnlyItemOnPositionHasClass(0), "Valid after init!");
$("#vis").steps("next");
ok(checkOnlyItemOnPositionHasClass(1), "Valid after next!");
$("#vis").steps("insert", 0, {
title: "New First",
content: "New First Content"
});
ok(checkOnlyItemOnPositionHasClass(2), "Valid after insert on first position!");
$("#vis").steps("add", {
title: "New Last",
content: "New Last Content"
});
ok(checkOnlyItemOnPositionHasClass(2), "Valid after add!");
$("#vis").steps("remove", 0);
ok(checkOnlyItemOnPositionHasClass(1), "Valid after remove first item!");
$("#vis").steps("previous");
ok(checkOnlyItemOnPositionHasClass(0), "Valid after previous!");
});
test("stepClassDisabledAndDone", 12, function ()
{
function checkOnlyItemAfterPositionHasClass(index)
{
var steps = $("#vis li[role=tab]");
for (var i = 0; i < steps.length; i++)
{
if (i <= index && steps.eq(i).hasClass("disabled"))
{
return false;
}
}
return (index > (steps.length - 1)) ? $("#vis li[role=tab]:gt(" + index + ")").hasClass("disabled") : true;
}
function checkOnlyItemBeforePositionHasClass(index)
{
var steps = $("#vis li[role=tab]");
for (var i = 0; i < steps.length; i++)
{
if (i >= index && steps.eq(i).hasClass("done"))
{
return false;
}
}
return (index > 0) ? $("#vis li[role=tab]:lt(" + index + ")").hasClass("done") : true;
}
ok(checkOnlyItemAfterPositionHasClass(0), "Valid after init (disabled)!");
ok(checkOnlyItemBeforePositionHasClass(0), "Valid after init (done)!");
$("#vis").steps("next");
ok(checkOnlyItemAfterPositionHasClass(1), "Valid after next (disabled)!");
ok(checkOnlyItemBeforePositionHasClass(1), "Valid after next (done)!");
$("#vis").steps("insert", 0, {
title: "New First",
content: "New First Content"
});
ok(checkOnlyItemAfterPositionHasClass(2), "Valid after insert on first position (disabled)!");
ok(checkOnlyItemBeforePositionHasClass(2), "Valid after insert on first position (done)!");
$("#vis").steps("add", {
title: "New Last",
content: "New Last Content"
});
ok(checkOnlyItemAfterPositionHasClass(2), "Valid after add (disabled)!");
ok(checkOnlyItemBeforePositionHasClass(2), "Valid after add (done)!");
$("#vis").steps("remove", 0);
ok(checkOnlyItemAfterPositionHasClass(1), "Valid after remove first item (disabled)!");
ok(checkOnlyItemBeforePositionHasClass(1), "Valid after remove first item (done)!");
$("#vis").steps("previous");
ok(checkOnlyItemAfterPositionHasClass(0), "Valid after previous (disabled)!");
$("#vis").steps("next");
$("#vis").steps("next");
$("#vis").steps("next");
ok(checkOnlyItemBeforePositionHasClass(3), "Valid after 3 * next (done)!");
});
module("internal", {
setup: function ()
{
$("#qunit-fixture").append($("<div id=\"internal\"></div>"));
$("#internal").steps();
},
teardown: function ()
{
$("#internal").steps("destroy").remove();
}
});
test("stepCache", 4, function ()
{
var wizard = $("#internal"),
steps = getSteps(wizard);
addStepToCache(wizard, $.extend({}, stepModel, { title: "add" }));
equal(steps.length, 1, "Valid count after add step to cache!");
insertStepToCache(wizard, 0, $.extend({}, stepModel, { title: "insert" }));
equal(getStep(wizard, 0).title, "insert", "Valid position after insert step to cache!");
equal(steps.length, 2, "Valid count after insert step to cache!");
removeStepFromCache(wizard, 0);
equal(steps.length, 1, "Valid count after remove step to cache!");
});
test("uniqueId", 5, function ()
{
// Custom Id Test
var wizard = $("#internal");
var wizardId = getUniqueId(wizard);
equal(wizardId, "internal", "Valid id after initialization!");
wizard.steps("add", { title: "add" });
equal($("#" + wizardId + "-t-0").text(), "current step: 1. add", "Valid step id!");
equal($("#" + wizardId + "-h-0").text(), "add", "Valid title id!");
equal($("#" + wizardId + "-p-0").length, 1, "Valid panel id!");
// Auto Id Test
$("#qunit-fixture").append($("<div class=\"uniqueIdTest\"></div>"));
var wizard2 = $(".uniqueIdTest").steps();
var wizardId2 = getUniqueId(wizard2);
equal(wizardId2.substring(0, 10), "steps-uid-", "Valid auto id after initialization!");
wizard2.steps("destroy").remove();
});