Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/ui/date-picker-field.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ export class DatePickerFieldBase extends PickerFieldBase implements DatePickerFi
public pickerDefaultDate: Date;
public static datePickerOpenedEvent = "datePickerOpened";
public static datePickerClosedEvent = "datePickerClosed";
public static datePickerCancelledEvent = "datePickerCancelled";

private _nativeLocale: any;
private _nativeDateFormatter: any;
Expand Down Expand Up @@ -62,13 +63,16 @@ export class DatePickerFieldBase extends PickerFieldBase implements DatePickerFi
cancelButtonText: this.pickerCancelText
}, style)
.then((result: Date) => {
const args = <EventData>{
eventName: DatePickerFieldBase.datePickerCancelledEvent,
object: this
};

if (result) {
this.date = result;
args.eventName = DatePickerFieldBase.datePickerClosedEvent;
}
let args = <EventData>{
eventName: DatePickerFieldBase.datePickerClosedEvent,
object: this
};

this.notify(args);
})
.catch((err) => {
Expand Down
12 changes: 8 additions & 4 deletions src/ui/time-picker-field.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export class TimePickerFieldBase extends PickerFieldBase implements TimePickerFi
public pickerDefaultTime: Date;
public static timePickerOpenedEvent = "timePickerOpened";
public static timePickerClosedEvent = "timePickerClosed";
public static timePickerCancelledEvent = "timePickerCancelled";

private _nativeLocale: any;
private _nativeTimeFormatter: any;
Expand Down Expand Up @@ -47,13 +48,16 @@ export class TimePickerFieldBase extends PickerFieldBase implements TimePickerFi
is24Hours: this.is24Hours(this._nativeTimeFormatter)
}, style)
.then((result: Date) => {
const args = <EventData>{
eventName: TimePickerFieldBase.timePickerCancelledEvent,
object: this
};

if (result) {
this.time = result;
args.eventName = TimePickerFieldBase.timePickerClosedEvent;
}
let args = <EventData>{
eventName: TimePickerFieldBase.timePickerClosedEvent,
object: this
};

this.notify(args);
})
.catch((err) => {
Expand Down
14 changes: 7 additions & 7 deletions tests/e2e/helper.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AppiumDriver, SearchOptions,createDriver, Direction, UIElement } from "nativescript-dev-appium";
import { AppiumDriver, SearchOptions, createDriver, Direction, UIElement } from "nativescript-dev-appium";
import { runType } from "nativescript-dev-appium/lib/parser";

const optionsText = "Options";
Expand All @@ -10,12 +10,12 @@ let driver: AppiumDriver;
const pickerWheels = await driver.findElementsByClassName(selector);
let hourWheel = await (await pickerWheels[0]).text();
let minutesWheel = await (await pickerWheels[1]).text();
if(!driver.isAndroid){
if (!driver.isAndroid) {
hourWheel = hourWheel.slice(0, hourWheel.indexOf(" "));
minutesWheel = minutesWheel.slice(0, minutesWheel.indexOf(" "));
}
let timeString = hourWheel + ":" + minutesWheel;
if(format == 12){
if (format === 12) {
const amPmWheel = await (await pickerWheels[2]).text();
timeString += " " + amPmWheel;
}
Expand All @@ -25,18 +25,18 @@ let driver: AppiumDriver;
export async function getPickerDate(driver: AppiumDriver) {
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypePickerWheel";
const pickerWheels = await driver.findElementsByClassName(selector);
let monthWheel = await (await pickerWheels[0]).text()
let monthWheel = await (await pickerWheels[0]).text();
let month = monthWheel.toString().substring(0, 3);
let dayWheel = await (await pickerWheels[1]).text();
if(parseInt(dayWheel) < 10 && driver.isAndroid){
dayWheel = dayWheel.substring(1,2);
if (parseInt(dayWheel) < 10 && driver.isAndroid) {
dayWheel = dayWheel.substring(1, 2);
}
const yearWheel = await (await pickerWheels[2]).text();
const dateString = month + " " + dayWheel + ", " + yearWheel;
return dateString;
}

export async function clickOkBtn(driver: AppiumDriver){
export async function clickOkBtn(driver: AppiumDriver) {
const okBtn = await driver.findElementByText("OK", SearchOptions.exact);
await okBtn.click();
}
Expand Down
52 changes: 26 additions & 26 deletions tests/e2e/tests.e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@ const rimraf = require('rimraf');
const isSauceRun = isSauceLab;

const deMonths = {
"Jan":"01",
"Feb":"02",
"Jan": "01",
"Feb": "02",
"Mär": "03",
"Apr": "04",
"Mai":"05",
"Jun":"06",
"Jul":"07",
"Aug":"08",
"Sep":"09",
"Okt":"10",
"Nov":"11",
"Dez":"12"
}
"Mai": "05",
"Jun": "06",
"Jul": "07",
"Aug": "08",
"Sep": "09",
"Okt": "10",
"Nov": "11",
"Dez": "12"
};

describe("DateTimePicker", () => {
const defaultWaitTime = 5000;
Expand Down Expand Up @@ -117,12 +117,12 @@ describe("DateTimePicker", () => {
let selector = driver.isAndroid ? "android.widget.Button" : "Bestätigen";
let acceptBtn;
let rejectBtn;
if(driver.isAndroid){
if (driver.isAndroid) {
let buttons = await driver.findElementsByClassName(selector);
acceptBtn = buttons[7];
rejectBtn = buttons[6];
}
else{
else {
acceptBtn = await driver.findElementByText(selector, SearchOptions.contains);
rejectBtn = await driver.findElementByText("Stornieren", SearchOptions.exact);
}
Expand All @@ -131,10 +131,10 @@ describe("DateTimePicker", () => {
expect(rejectBtn).to.exist;
expect(title).to.exist;
await acceptBtn.click();
let index = driver.isAndroid ? " " : "."
let index = driver.isAndroid ? " " : ".";
let day = date.substring(0, date.indexOf(index));
let dayNum = parseInt(day);
if(!driver.isAndroid && dayNum < 10){
if (!driver.isAndroid && dayNum < 10) {
day = "0" + day;
}
let month = date.substring(date.indexOf(" ") + 1, date.indexOf(","));
Expand Down Expand Up @@ -167,13 +167,13 @@ describe("DateTimePicker", () => {
await scrollToElement(driver, "TimePickerField", Direction.down);
const bindingLabel = await driver.findElementByText("binding", SearchOptions.exact);
expect(bindingLabel).to.exist;
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypeTextField"
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypeTextField";
let fields = await driver.findElementsByClassName(selector);
let dateField;
if(driver.isAndroid){
if (driver.isAndroid) {
dateField = fields[3];
}
else{
}
else {
let index = fields.length;
console.log("index: " + index);
dateField = fields[index - 1];
Expand Down Expand Up @@ -242,12 +242,12 @@ describe("DateTimePicker", () => {
const time = await getPickerTime(driver, 24);
let acceptBtn;
let rejectBtn;
if(driver.isAndroid){
if (driver.isAndroid) {
let buttons = await driver.findElementsByClassName("android.widget.Button");
acceptBtn = buttons[buttons.length - 1];
rejectBtn = buttons[buttons.length - 2];
}
else{
else {
acceptBtn = await driver.findElementByText("Bestätigen", SearchOptions.exact);
rejectBtn = await driver.findElementByText("Stornieren", SearchOptions.exact);
}
Expand Down Expand Up @@ -283,7 +283,7 @@ describe("DateTimePicker", () => {
await customButtonsTitle.click();
});

if (process.env["Type"] === 'Angular'){
if (process.env["Type"] === 'Angular') {
it("Should tap button to select date and verify button text", async () => {
await scrollToElement(driver, "tap to select date and time", Direction.down);
let dateButton = await driver.findElementByText("tap to select date", SearchOptions.contains);
Expand All @@ -293,20 +293,20 @@ describe("DateTimePicker", () => {
const pickerDate = new Date(date);
let day = pickerDate.getDate();
let dayString = day.toString();
if(day < 10){
if (day < 10) {
dayString = "0" + day.toString();
}
let month = pickerDate.getMonth() + 1;
let monthString = month.toString();
if(month < 10){
if (month < 10) {
monthString = "0" + month.toString();
}
let year = pickerDate.getFullYear();
const dateString = dayString + "." + monthString+ "." + year;
const dateString = dayString + "." + monthString + "." + year;
console.log(dateString);
const dateField = await driver.findElementByText(dateString);
expect(dateField).to.exist;
})
});

it("Should tap button to select time and verify button text", async () => {
let timeButton = await driver.findElementByText("tap to select time", SearchOptions.contains);
Expand Down