mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Fixed all DatePicker issues in both platforms and covered with tests.
This commit is contained in:
@@ -48,6 +48,7 @@ allTests["FORMATTEDSTRING"] = require("./text/formatted-string-tests");
|
||||
allTests["FILE-SYSTEM-ACCESS"] = require("./file-system-access-tests/file-system-access-tests");
|
||||
allTests["XML-DECLARATION"] = require("./xml-declaration/xml-declaration-tests");
|
||||
allTests["LIST-PICKER"] = require("./ui/list-picker/list-picker-tests");
|
||||
allTests["DATE-PICKER"] = require("./ui/date-picker/date-picker-tests");
|
||||
|
||||
var testsWithLongDelay = {
|
||||
testLocation: 10000,
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import datePickerModule = require("ui/date-picker");
|
||||
|
||||
export function getNativeYear(datePicker: datePickerModule.DatePicker): number {
|
||||
return datePicker.android.getYear();
|
||||
}
|
||||
|
||||
export function getNativeMonth(datePicker: datePickerModule.DatePicker): number {
|
||||
return datePicker.android.getMonth() + 1;
|
||||
}
|
||||
|
||||
export function getNativeDay(datePicker: datePickerModule.DatePicker): number {
|
||||
return datePicker.android.getDayOfMonth();
|
||||
}
|
||||
|
||||
export function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
datePicker.android.updateDate(value, datePicker.android.getMonth(), datePicker.android.getDayOfMonth());
|
||||
}
|
||||
|
||||
export function setNativeMonth(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
datePicker.android.updateDate(datePicker.android.getYear(), value - 1, datePicker.android.getDayOfMonth());
|
||||
}
|
||||
|
||||
export function setNativeDay(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
datePicker.android.updateDate(datePicker.android.getYear(), datePicker.android.getMonth(), value);
|
||||
}
|
||||
10
apps/tests/ui/date-picker/date-picker-tests-native.d.ts
vendored
Normal file
10
apps/tests/ui/date-picker/date-picker-tests-native.d.ts
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
//@private
|
||||
import datePickerModule = require("ui/date-picker");
|
||||
|
||||
export declare function getNativeYear(datePicker: datePickerModule.DatePicker): number;
|
||||
export declare function getNativeMonth(datePicker: datePickerModule.DatePicker): number;
|
||||
export declare function getNativeDay(datePicker: datePickerModule.DatePicker): number;
|
||||
|
||||
export declare function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void;
|
||||
export declare function setNativeMonth(datePicker: datePickerModule.DatePicker, value: number): void;
|
||||
export declare function setNativeDay(datePicker: datePickerModule.DatePicker, value: number): void;
|
||||
36
apps/tests/ui/date-picker/date-picker-tests-native.ios.ts
Normal file
36
apps/tests/ui/date-picker/date-picker-tests-native.ios.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import datePickerModule = require("ui/date-picker");
|
||||
|
||||
export function getNativeYear(datePicker: datePickerModule.DatePicker): number {
|
||||
return NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date).year;
|
||||
}
|
||||
|
||||
export function getNativeMonth(datePicker: datePickerModule.DatePicker): number {
|
||||
return NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date).month;
|
||||
}
|
||||
|
||||
export function getNativeDay(datePicker: datePickerModule.DatePicker): number {
|
||||
return NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date).day;
|
||||
}
|
||||
|
||||
export function setNativeYear(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
var comps = NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date);
|
||||
comps.year = value;
|
||||
datePicker.ios.setDateAnimated(NSCalendar.currentCalendar().dateFromComponents(comps), false);
|
||||
(<any>datePicker)._changeHandler.valueChanged(datePicker.ios);
|
||||
}
|
||||
|
||||
export function setNativeMonth(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
var comps = NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date);
|
||||
comps.month = value;
|
||||
datePicker.ios.setDateAnimated(NSCalendar.currentCalendar().dateFromComponents(comps), false);
|
||||
(<any>datePicker)._changeHandler.valueChanged(datePicker.ios);
|
||||
}
|
||||
|
||||
export function setNativeDay(datePicker: datePickerModule.DatePicker, value: number): void {
|
||||
var comps = NSCalendar.currentCalendar().componentsFromDate(NSCalendarUnit.NSCalendarUnitYear | NSCalendarUnit.NSCalendarUnitMonth | NSCalendarUnit.NSCalendarUnitDay, datePicker.ios.date);
|
||||
comps.day = value;
|
||||
datePicker.ios.setDateAnimated(NSCalendar.currentCalendar().dateFromComponents(comps), false);
|
||||
(<any>datePicker)._changeHandler.valueChanged(datePicker.ios);
|
||||
}
|
||||
|
||||
|
||||
109
apps/tests/ui/date-picker/date-picker-tests.ts
Normal file
109
apps/tests/ui/date-picker/date-picker-tests.ts
Normal file
@@ -0,0 +1,109 @@
|
||||
import TKUnit = require("../../TKUnit");
|
||||
import helper = require("../helper");
|
||||
import viewModule = require("ui/core/view");
|
||||
import datePickerTestsNative = require("./date-picker-tests-native");
|
||||
|
||||
// <snippet module="ui/date-picker" title="DatePicker">
|
||||
// # DatePicker
|
||||
|
||||
// Using a DatePicker requires the "ui/date-picker" module.
|
||||
// ``` JavaScript
|
||||
import datePickerModule = require("ui/date-picker");
|
||||
|
||||
function _createDatePicker(): datePickerModule.DatePicker {
|
||||
// <snippet module="ui/date-picker" title="DatePicker">
|
||||
// ## Creating a DatePicker
|
||||
// ``` JavaScript
|
||||
var datePicker = new datePickerModule.DatePicker();
|
||||
// ```
|
||||
// </snippet>
|
||||
datePicker.id = "DatePicker";
|
||||
return datePicker;
|
||||
}
|
||||
|
||||
export var test_WhenCreated_YearIsUndefined = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var actualValue = datePicker.year;
|
||||
var expectedValue = undefined;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var test_WhenCreated_MonthIsUndefined = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var actualValue = datePicker.month;
|
||||
var expectedValue = undefined;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var test_WhenCreated_DayIsUndefined = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var actualValue = datePicker.day;
|
||||
var expectedValue = undefined;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testYearFromLocalToNative = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 1980;
|
||||
datePicker.year = expectedValue;
|
||||
var actualValue = datePickerTestsNative.getNativeYear(datePicker);
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testMonthFromLocalToNative = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 5;
|
||||
datePicker.month = expectedValue;
|
||||
var actualValue = datePickerTestsNative.getNativeMonth(datePicker);
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testDayFromLocalToNative = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 19;
|
||||
datePicker.day = expectedValue;
|
||||
var actualValue = datePickerTestsNative.getNativeDay(datePicker);
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testYearFromNativeToLocal = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 1981;
|
||||
datePickerTestsNative.setNativeYear(datePicker, expectedValue);
|
||||
var actualValue = datePicker.year;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testMonthFromNativeToLocal = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 6;
|
||||
datePickerTestsNative.setNativeMonth(datePicker, expectedValue);
|
||||
var actualValue = datePicker.month;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
|
||||
export var testDayFromNativeToLocal = function () {
|
||||
helper.buildUIAndRunTest(_createDatePicker(), function (views: Array<viewModule.View>) {
|
||||
var datePicker = <datePickerModule.DatePicker>views[0];
|
||||
var expectedValue = 20;
|
||||
datePickerTestsNative.setNativeDay(datePicker, expectedValue);
|
||||
var actualValue = datePicker.day;
|
||||
TKUnit.assert(actualValue === expectedValue, "Actual: " + actualValue + "; Expected: " + expectedValue);
|
||||
});
|
||||
}
|
||||
@@ -167,7 +167,7 @@ export var testSettingSelectedIndexLargerThanCountShouldThrow = function () {
|
||||
listPicker.items = _createItems(10);
|
||||
TKUnit.assertThrows(function () {
|
||||
listPicker.selectedIndex = 10;
|
||||
}, "Setting selectedIndex to a negative number should throw.");
|
||||
}, "Setting selectedIndex to a number larger than item count should throw.");
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user