-define( [
- "lib/common",
- "ui/calendar",
- "globalize-locales"
-], function( common ) {
-
-common.testWidget( "calendar", {
+TestHelpers.commonWidgetTests( "calendar", {
defaults: {
buttons: [],
- classes: {},
- dateFormat: { date: "short" },
disabled: false,
eachDay: $.noop,
+ labels: {
+ "datePickerRole": "date picker",
+ "nextText": "Next",
+ "prevText": "Prev",
+ "weekHeader": "Wk"
+ },
+ locale: "en",
max: null,
min: null,
numberOfMonths: 1,
select: null
}
});
-
-} );
test( "Localization", function() {
expect( 10 );
- var defaultLocale = Globalize.locale(),
- element = $( "#calendar" ),
+ var element = $( "#calendar" ),
date = new Date( 2014, 0, 1 ),
- initCalendar = function() {
+ optionsDe = {
+ locale: "de",
+ labels: {
+ "nextText": "Vor",
+ "prevText": "Zurück"
+ }
+ },
+ initCalendar = function( options ) {
element
- .calendar()
+ .calendar( options )
.calendar( "valueAsDate", date );
},
testLocalization = function( message ) {
);
equal(
element.find( ".ui-calendar-prev" ).text(),
- "<Zurück", message + "header prev"
+ "Zurück", message + "header prev"
);
equal(
element.find( ".ui-calendar-next" ).text(),
- "Vor>", message + "header next"
+ "Vor", message + "header next"
);
};
- Globalize.locale( "de" );
- initCalendar();
+ initCalendar( optionsDe );
testLocalization( "Init: " );
element.calendar( "destroy" );
- Globalize.locale( defaultLocale.locale );
- initCalendar();
- Globalize.locale( "de" );
- element.calendar( "refresh" );
+ initCalendar( {} );
+ element
+ .calendar( "option", optionsDe )
+ .calendar( "refresh" );
testLocalization( "After init: " );
-
- Globalize.locale( defaultLocale.locale );
});
asyncTest( "keyboard handling", function() {
-define( [
- "lib/common",
- "ui/datepicker",
- "globalize-locales"
-], function( common ) {
-
-common.testWidget( "datepicker", {
+TestHelpers.commonWidgetTests( "datepicker", {
defaults: {
appendTo: null,
buttons: [],
- classes: {},
- dateFormat: { date: "short" },
disabled: false,
eachDay: $.noop,
+ labels: {
+ "datePickerRole": "date picker",
+ "nextText": "Next",
+ "prevText": "Prev",
+ "weekHeader": "Wk"
+ },
+ locale: "en",
max: null,
min: null,
numberOfMonths: 1,
select: null
}
});
-
-} );
var globalize = new Globalize( locale ),
weekdayShortFormatter = globalize.dateFormatter({ pattern: "EEEEEE" }),
weekdayNarrowFormatter = globalize.dateFormatter({ pattern: "EEEEE" });
+
this._format = globalize.dateFormatter({ date: "short" });
this._parse = globalize.dateParser({ date: "short" });
this._calendarDateOptions = {
- firstDay: globalize.cldr.supplemental.weekData.firstDay(),
- formatWeekdayShort: function( date ) {
+ firstDay: globalize.cldr.supplemental.weekData.firstDay(),
+ formatWeekdayShort: function( date ) {
- // Return the short weekday if its length is < 3. Otherwise, its narrow form.
+ // Return the short weekday if its length is < 3. Otherwise, its narrow form.
var shortWeekday = weekdayShortFormatter( date );
+
return shortWeekday.length > 3 ? weekdayNarrowFormatter( date ) : shortWeekday;
- },
+ },
formatWeekdayFull: globalize.dateFormatter({ pattern: "EEEE" }),
formatMonth: globalize.dateFormatter({ pattern: "MMMM" }),
formatWeekOfYear: globalize.dateFormatter({ pattern: "w" }),
if ( this.options.showWeek ) {
cells += "<th class='ui-calendar-week-col'>" + this._getTranslation( "weekHeader" ) + "</th>";
}
- for ( i; i < weekDayLength; i++ ) {
+ for ( ; i < weekDayLength; i++ ) {
cells += this._buildGridHeaderCell( weekdays[ i ] );
}
// with the prev and next links would cause loss of focus issues because the links being
// interacted with will disappear while focused.
refresh: function() {
+ this.labels = this.options.labels;
// Determine which day gridcell to focus after refresh
// TODO: Prevent disabled cells from being focused
value: function( value ) {
if ( arguments.length ) {
- this.valueAsDate( locale.parse( value ) );
+ this.valueAsDate( this._parse( value ) );
} else {
return this._format( this.option( "value" ) );
}
version: "@VERSION",
options: {
appendTo: null,
- locale: "en",
position: {
my: "left top",
at: "left bottom"
select: null
},
- calendarOptions: [ "buttons", "dateFormat", "disabled", "eachDay", "max",
- "min", "numberOfMonths", "showWeek" ],
+ calendarOptions: [ "buttons", "disabled", "eachDay", "labels", "locale",
+ "max", "min", "numberOfMonths", "showWeek" ],
_create: function() {
this.suppressExpandOnFocus = false;
_setLocale: function( locale ) {
var globalize = new Globalize( locale );
+
this._format = globalize.dateFormatter({ date: "short" });
this._parse = globalize.dateParser({ date: "short" });
this._parseYMD = globalize.dateParser({ pattern: "yyyy-MM-dd" });