calendar.html revision 76438e9b6959cc0bd7e35fb9cf5a11c87a37f744
0N/A<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
0N/A<html>
1068N/A<head>
0N/A<title>Calendar Tests</title>
0N/A<script type="text/javascript" src="/build/yui/yui.js"></script>
919N/A</head>
919N/A
919N/A<body class="yui3-skin-sam">
919N/A<h1>Calendar Tests</h1>
919N/A<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
919N/A<div id="container"></div>
919N/A<script type="text/javascript">
919N/A
919N/A(function() {
919N/A YUI({
919N/A base: "/build/",
919N/A logInclude:{"TestRunner":true},
919N/A useConsole: true,
919N/A allowRollup: false,
919N/A filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min'
919N/A }).use("console", "test", "dump", "calendar", "node-event-simulate", function(Y) {
919N/A
0N/A // Set up the page
0N/A var ASSERT = Y.Assert,
0N/A ARRAYASSERT = Y.ArrayAssert,
0N/A btnRun = Y.one("#btnRun"),
493N/A myConsole = new Y.Console().render();
810N/A
810N/A btnRun.set("disabled", false);
810N/A Y.on("click", function(){
810N/A Y.Test.Runner.run();
493N/A }, btnRun);
493N/A
0N/A
493N/A var BasicCalendar = new Y.Test.Case({
822N/A name: "Basic Calendar Tests",
822N/A
493N/A setUp : function () {
493N/A
493N/A var firstcontainer = "<div id='firstcontainer'></div>";
493N/A var secondcontainer = "<div id='secondcontainer'></div>";
493N/A Y.one('#container').appendChild(Y.Node.create(firstcontainer));
810N/A Y.one('#container').appendChild(Y.Node.create(secondcontainer));
810N/A this.firstcalendar = null;
810N/A this.secondcalendar = null;
1193N/A
970N/A },
1068N/A
1068N/A tearDown : function () {
1068N/A delete this.firstcalendar;
1068N/A delete this.secondcalendar;
822N/A Y.one('#firstcontainer').remove();
822N/A Y.one('#secondcontainer').remove();
1056N/A },
810N/A
851N/A
1068N/A testBasicCalendar : function() {
851N/A var cfg = {
493N/A contentBox: "#firstcontainer",
493N/A date: new Date(2011,11,5)
174N/A };
1193N/A
970N/A this.firstcalendar = new Y.Calendar(cfg);
967N/A this.firstcalendar.render();
8N/A
61N/A //calendar is visible
1068N/A Y.Assert.areEqual(this.firstcalendar.get('visible'), true);
493N/A
1010N/A //calendar date is normalized correctly
1010N/A var calendarDate = this.firstcalendar.get("date");
186N/A Y.Assert.areEqual(2011, calendarDate.getFullYear());
70N/A Y.Assert.areEqual(11, calendarDate.getMonth());
851N/A Y.Assert.areEqual(1, calendarDate.getDate());
822N/A
822N/A // Test that the first and last days of the month render correctly
970N/A
98N/A // Test that showPreviousMonth and showNextMonth are false by default
430N/A Y.Assert.areEqual(false, this.firstcalendar.get("showPrevMonth"));
214N/A Y.Assert.areEqual(false, this.firstcalendar.get("showNextMonth"));
98N/A },
0N/A
493N/A testPrevAndNextMonth : function () {
493N/A
0N/A var cfg = {
1056N/A contentBox: "#firstcontainer",
1056N/A date: new Date(2011,11,5),
1056N/A showPrevMonth: true,
1056N/A showNextMonth: true
493N/A };
967N/A
0N/A this.firstcalendar = new Y.Calendar(cfg);
493N/A this.firstcalendar.render();
493N/A
967N/A // Test that showPreviousMonth and showNextMonth are true
0N/A Y.Assert.areEqual(true, this.firstcalendar.get("showPrevMonth"));
1196N/A Y.Assert.areEqual(true, this.firstcalendar.get("showNextMonth"));
1196N/A
1196N/A // Test that previous and next months are showing
1196N/A Y.Assert.areEqual("27", Y.one("#firstcontainer").one(".calendar_col2.yui3-calendar-prevmonth-day").getContent());
1196N/A Y.Assert.areEqual("28", Y.one("#firstcontainer").one(".calendar_col3.yui3-calendar-prevmonth-day").getContent());
1196N/A Y.Assert.areEqual("29", Y.one("#firstcontainer").one(".calendar_col4.yui3-calendar-prevmonth-day").getContent());
1196N/A Y.Assert.areEqual("30", Y.one("#firstcontainer").one(".calendar_col5.yui3-calendar-prevmonth-day").getContent());
1196N/A
1196N/A Y.Assert.areEqual("1", Y.one("#firstcontainer").one(".calendar_col2.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("2", Y.one("#firstcontainer").one(".calendar_col3.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("3", Y.one("#firstcontainer").one(".calendar_col4.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("4", Y.one("#firstcontainer").one(".calendar_col5.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("5", Y.one("#firstcontainer").one(".calendar_col6.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("6", Y.one("#firstcontainer").one(".calendar_col7.yui3-calendar-nextmonth-day").getContent());
Y.Assert.areEqual("7", Y.one("#firstcontainer").one(".calendar_col8.yui3-calendar-nextmonth-day").getContent());
},
testTwoCalendars : function () {
var cfg1 = {
contentBox: "#firstcontainer",
date: new Date(2011,11,5),
showPrevMonth: true,
showNextMonth: true
};
var cfg2 = {
contentBox: "#secondcontainer",
date: new Date(2011,11,5),
showPrevMonth: true,
showNextMonth: true
};
this.firstcalendar = new Y.Calendar(cfg1);
this.firstcalendar.render();
this.secondcalendar = new Y.Calendar(cfg2);
this.secondcalendar.render();
Y.Assert.areNotEqual(this.firstcalendar.get("id"), this.secondcalendar.get("id"));
Y.Assert.areNotEqual(this.firstcalendar._calendarId, this.secondcalendar._calendarId);
},
testCalendarClick : function() {
var cfg = {
contentBox: "#firstcontainer",
date: new Date(2011,11,5)
};
this.firstcalendar = new Y.Calendar(cfg);
this.firstcalendar.render();
// Click on a specific calendar cell;
var calendarid = this.firstcalendar._calendarId;
Y.one("#" + calendarid + "_pane_0_6_15").simulate("click");
var currentDate = this.firstcalendar.get("selectedDates")[0];
Y.Assert.areEqual(currentDate.getFullYear(), 2011);
Y.Assert.areEqual(currentDate.getMonth(), 11);
Y.Assert.areEqual(currentDate.getDate(), 15);
// Click on a different calendar cell
Y.one("#" + calendarid + "_pane_0_8_31").simulate("click");
currentDate = this.firstcalendar.get("selectedDates")[0];
Y.Assert.areEqual(currentDate.getFullYear(), 2011);
Y.Assert.areEqual(currentDate.getMonth(), 11);
Y.Assert.areEqual(currentDate.getDate(), 31);
// Click to advance the month
Y.one(".yui3-calendarnav-nextmonth").simulate("click");
// Click on a date in the new month
Y.one("#" + calendarid + "_pane_0_8_17").simulate("click");
currentDate = this.firstcalendar.get("selectedDates")[0];
Y.Assert.areEqual(currentDate.getFullYear(), 2012);
Y.Assert.areEqual(currentDate.getMonth(), 0);
Y.Assert.areEqual(currentDate.getDate(), 17);
},
testCustomHeader : function() {
var cfg = {
contentBox: "#firstcontainer",
date: new Date(2011,11,5)
};
this.firstcalendar = new Y.Calendar(cfg);
this.firstcalendar.set("headerRenderer", function (curDate) {
var ydate = Y.DataType.Date,
output = ydate.format(curDate, {
format: "%m %Y"
});
return output;
});
this.firstcalendar.render();
var currentHeaderString = this.firstcalendar.get("contentBox").one(".yui3-calendar-header-label").get("text");
Y.Assert.areEqual("12 2011", currentHeaderString);
// Click to advance the month
Y.one(".yui3-calendarnav-nextmonth").simulate("click");
currentHeaderString = this.firstcalendar.get("contentBox").one(".yui3-calendar-header-label").get("text");
Y.Assert.areEqual("01 2012", currentHeaderString);
},
testMultiplePanes : function () {
var cfg = {
contentBox: "#firstcontainer",
date: new Date(2011,11,5),
selectionMode: "multiple"
};
// Set the content template to a two-pane template
Y.CalendarBase.CONTENT_TEMPLATE = Y.CalendarBase.TWO_PANE_TEMPLATE;
this.firstcalendar = new Y.Calendar(cfg);
this.firstcalendar.render();
// Click on a date
var calendarid = this.firstcalendar._calendarId;
Y.one("#" + calendarid + "_pane_0_6_29").simulate("click");
// Shift-click another date
Y.one("#" + calendarid + "_pane_1_7_2").simulate("click", {shiftKey: true});
var date0 = this.firstcalendar.get("selectedDates")[0];
var date1 = this.firstcalendar.get("selectedDates")[1];
var date2 = this.firstcalendar.get("selectedDates")[2];
var date3 = this.firstcalendar.get("selectedDates")[3];
var date4 = this.firstcalendar.get("selectedDates")[4];
Y.Assert.areEqual(date0.getFullYear(), 2011);
Y.Assert.areEqual(date0.getMonth(), 11);
Y.Assert.areEqual(date0.getDate(), 29);
Y.Assert.areEqual(date1.getFullYear(), 2011);
Y.Assert.areEqual(date1.getMonth(), 11);
Y.Assert.areEqual(date1.getDate(), 30);
Y.Assert.areEqual(date2.getFullYear(), 2011);
Y.Assert.areEqual(date2.getMonth(), 11);
Y.Assert.areEqual(date2.getDate(), 31);
Y.Assert.areEqual(date3.getFullYear(), 2012);
Y.Assert.areEqual(date3.getMonth(), 0);
Y.Assert.areEqual(date3.getDate(), 1);
Y.Assert.areEqual(date4.getFullYear(), 2012);
Y.Assert.areEqual(date4.getMonth(), 0);
Y.Assert.areEqual(date4.getDate(), 2);
}
});
var suite = new Y.Test.Suite({name:"Basic Calendar Test Suite"});
suite.add(BasicCalendar);
Y.Test.Runner.setName("Calendar Test Runner");
Y.Test.Runner.add(suite);
Y.Test.Runner.run();
});
})();
</script>
</body>
</html>