Skip to content

Commit 03945ef

Browse files
Dimitar TodorovDimitar Todorov
authored andcommitted
Finish UI test for demo-angular
1 parent 8b13788 commit 03945ef

File tree

7 files changed

+27
-29
lines changed

7 files changed

+27
-29
lines changed

demo-angular/demo.zip

-37.6 MB
Binary file not shown.

demo-angular/e2e/helper.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import { AppiumDriver, SearchOptions,createDriver, Direction, UIElement } from "nativescript-dev-appium";
22
import { runType } from "nativescript-dev-appium/lib/parser";
33

4-
const isAndroid: boolean = runType.includes("android");
54
const optionsText = "Options";
65
const moreOptionsID = "More options";
76
let driver: AppiumDriver;
87

98
export async function getPickerTime(driver: AppiumDriver, format: number) {
10-
let selector = isAndroid ? "android.widget.EditText" : "XCUIElementTypePickerWheel";
9+
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypePickerWheel";
1110
const pickerWheels = await driver.findElementsByClassName(selector);
1211
let hourWheel = await (await pickerWheels[0]).text();
1312
let minutesWheel = await (await pickerWheels[1]).text();
14-
if(!isAndroid){
13+
if(!driver.isAndroid){
1514
hourWheel = hourWheel.slice(0, hourWheel.indexOf(" "));
1615
minutesWheel = minutesWheel.slice(0, minutesWheel.indexOf(" "));
1716
}
@@ -24,12 +23,12 @@ let driver: AppiumDriver;
2423
}
2524

2625
export async function getPickerDate(driver: AppiumDriver) {
27-
let selector = isAndroid ? "android.widget.EditText" : "XCUIElementTypePickerWheel";
26+
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypePickerWheel";
2827
const pickerWheels = await driver.findElementsByClassName(selector);
2928
let monthWheel = await (await pickerWheels[0]).text()
3029
let month = monthWheel.toString().substring(0, 3);
3130
let dayWheel = await (await pickerWheels[1]).text();
32-
if(parseInt(dayWheel) < 10){
31+
if(parseInt(dayWheel) < 10 && driver.isAndroid){
3332
dayWheel = dayWheel.substring(1,2);
3433
}
3534
const yearWheel = await (await pickerWheels[2]).text();
@@ -43,8 +42,8 @@ export async function clickOkBtn(driver: AppiumDriver){
4342
}
4443

4544
export async function scrollToElement(driver: AppiumDriver, element: string, direction: Direction = Direction.down) {
46-
let listView;
47-
if (isAndroid) {
45+
let listView: UIElement;
46+
if (driver.isAndroid) {
4847
listView = await driver.findElementByClassName("android.widget.FrameLayout");
4948
}
5049
else {
546 KB
Loading
400 KB
Loading

demo-angular/e2e/tests.e2e.ts

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import { AppiumDriver, createDriver, SearchOptions, Direction} from "nativescript-dev-appium";
1+
import { AppiumDriver, createDriver, SearchOptions, Direction } from "nativescript-dev-appium";
22
import { isSauceLab, runType } from "nativescript-dev-appium/lib/parser";
33
import { expect } from "chai";
44
import { ok } from "assert";
5-
import { getPickerTime, clickOkBtn, scrollToElement, getPickerDate} from "./helper";
5+
import { getPickerTime, clickOkBtn, scrollToElement, getPickerDate } from "./helper";
66
const fs = require('fs');
77
const addContext = require('mochawesome/addContext');
88
const rimraf = require('rimraf');
99
const isSauceRun = isSauceLab;
10-
const isAndroid: boolean = runType.includes("android");
1110

1211
describe("DateTimePicker", () => {
1312
const defaultWaitTime = 5000;
@@ -74,6 +73,7 @@ describe("DateTimePicker", () => {
7473
await minMaxDatePicker.click();
7574
const date = await getPickerDate(driver);
7675
await clickOkBtn(driver);
76+
console.log(date);
7777
const dateSelected = await driver.findElementByText(date);
7878
expect(dateSelected).to.exist;
7979
});
@@ -95,7 +95,7 @@ describe("DateTimePicker", () => {
9595
});
9696

9797
it("Should verify modified texts field for date picker", async () => {
98-
await scrollToElement(driver, "modified picker texts", Direction.down);
98+
await scrollToElement(driver, "preferred locale: en_US", Direction.down);
9999
const pickers = await driver.findElementsByText("tap to choose");
100100
const datePicker = pickers[0];
101101
await datePicker.click();
@@ -133,10 +133,10 @@ describe("DateTimePicker", () => {
133133
const datePicker = await driver.findElementByText("datum auswählen", SearchOptions.contains);
134134
await datePicker.click();
135135
const date = await getPickerDate(driver);
136-
let selector = isAndroid ? "android.widget.Button" : "Bestätigen";
136+
let selector = driver.isAndroid ? "android.widget.Button" : "Bestätigen";
137137
let acceptBtn;
138138
let rejectBtn;
139-
if(isAndroid){
139+
if(driver.isAndroid){
140140
let buttons = await driver.findElementsByClassName(selector);
141141
acceptBtn = buttons[7];
142142
rejectBtn = buttons[6];
@@ -162,13 +162,13 @@ describe("DateTimePicker", () => {
162162
it("Should select time from de_DE locale picker and verify format", async () => {
163163
const timePicker = await driver.findElementByText("zeit wählen", SearchOptions.contains);
164164
await timePicker.click();
165-
const time = await getPickerTime(driver, 12);
165+
const time = await getPickerTime(driver, 24);
166166
let acceptBtn;
167167
let rejectBtn;
168-
if(isAndroid){
168+
if(driver.isAndroid){
169169
let buttons = await driver.findElementsByClassName("android.widget.Button");
170-
acceptBtn = buttons[6];
171-
rejectBtn = buttons[5];
170+
acceptBtn = buttons[5];
171+
rejectBtn = buttons[4];
172172
}
173173
else{
174174
acceptBtn = await driver.findElementByText("Bestätigen", SearchOptions.exact);
@@ -179,11 +179,8 @@ describe("DateTimePicker", () => {
179179
expect(rejectBtn).to.exist;
180180
expect(title).to.exist;
181181
await acceptBtn.click();
182-
let timeString = time.substr(0, time.indexOf(" "));
183-
timeString = timeString + " nachm.";
184-
console.log(timeString);
185-
const dateField = await driver.findElementByText(timeString);
186-
expect(timeString).to.exist;
182+
const dateField = await driver.findElementByText(time);
183+
expect(time).to.exist;
187184
});
188185

189186
it("Should scroll to custom format and verify values", async () => {
@@ -200,11 +197,11 @@ describe("DateTimePicker", () => {
200197
await scrollToElement(driver, "css applied", Direction.down);
201198
const bindingLabel = await driver.findElementByText("binding", SearchOptions.exact);
202199
expect(bindingLabel).to.exist;
203-
let selector = isAndroid ? "android.widget.EditText" : "XCUIElementTypeTextField"
200+
let selector = driver.isAndroid ? "android.widget.EditText" : "XCUIElementTypeTextField"
204201
let fields = await driver.findElementsByClassName(selector);
205202
let timeField;
206203
let dateField;
207-
if(isAndroid){
204+
if(driver.isAndroid){
208205
timeField = fields[2];
209206
dateField = fields[1];
210207
}
@@ -226,16 +223,16 @@ describe("DateTimePicker", () => {
226223

227224
it("Should scroll to css styled DatePicker and verify picker style", async () => {
228225
await scrollToElement(driver, "tap to select time", Direction.down);
229-
const cssPicker = await driver.findElementByText("Feb 24, 2019", SearchOptions.exact);
230-
await cssPicker.click();
226+
let cssPickers = await driver.findElementsByText("Feb 24, 2019", SearchOptions.exact);
227+
await cssPickers[cssPickers.length - 1].click();
231228
await getPickerDate(driver);
232229
await driver.compareScreen("cssDatePicker");
233230
await clickOkBtn(driver);
234231
});
235232

236233
it("Should scroll to css styled TimePicker and verify picker style", async () => {
237-
const cssPicker = await driver.findElementByText("1:00 AM", SearchOptions.exact);
238-
await cssPicker.click();
234+
const cssPickers = await driver.findElementsByText("1:00 AM", SearchOptions.exact);
235+
await cssPickers[cssPickers.length - 1].click();
239236
await getPickerTime(driver, 12);
240237
await driver.compareScreen("cssTimePicker");
241238
await clickOkBtn(driver);
@@ -251,6 +248,7 @@ describe("DateTimePicker", () => {
251248
month: '2-digit',
252249
day: 'numeric'
253250
});
251+
console.log(dateString);
254252
const dateField = await driver.findElementByText(dateString);
255253
expect(dateString).to.exist;
256254
})

demo-angular/e2e/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
"experimentalDecorators": true,
66
"emitDecoratorMetadata": true,
77
"importHelpers": false,
8+
"sourceMap": true,
89
"types": [
910
"mocha",
1011
"chai"

demo-angular/src/app/home/home.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
<DatePickerField locale="de_DE" hint="datum auswählen" pickerOkText="Bestätigen"
4545
pickerCancelText="Stornieren" pickerTitle="Datum auswählen"></DatePickerField>
4646
<TimePickerField locale="de_DE" hint="zeit wählen" pickerOkText="Bestätigen"
47-
pickerCancelText="Stornieren" pickerTitle="Zeit wählen"></TimePickerField>
47+
timeFormat="HH:mm" pickerCancelText="Stornieren" pickerTitle="Zeit wählen"></TimePickerField>
4848
<StackLayout class="hr-light m-10" android:visibility="collapse"></StackLayout>
4949

5050
<Label text="custom format" class="content"></Label>

0 commit comments

Comments
 (0)