Skip to content
Merged
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
8 changes: 2 additions & 6 deletions appium/tests/screenobjects/all-screens.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import SplashScreen from './splash.screen';
import SetupKeyScreen from './setup-key.screen';
import InboxScreen from './inbox.screen';
import MenuBarScreen from './menu-bar.screen';
import EmailScreen from './email.screen';
import NewMessageScreen from './new-message.screen';
Expand All @@ -10,13 +9,11 @@ import ContactScreen from './contacts.screen';
import ContactPublicKeyScreen from './contact-public-key.screen';
import PublicKeyScreen from './public-key.screen';
import AttachmentScreen from './attachment.screen';
import SentScreen from './sent.screen';
import TrashScreen from './trash.screen'
import MailFolderScreen from './mail-folder.screen'

export {
SplashScreen,
SetupKeyScreen,
InboxScreen,
MenuBarScreen,
EmailScreen,
NewMessageScreen,
Expand All @@ -26,6 +23,5 @@ export {
PublicKeyScreen,
ContactScreen,
ContactPublicKeyScreen,
SentScreen,
TrashScreen
MailFolderScreen
};
Original file line number Diff line number Diff line change
@@ -1,31 +1,63 @@
import BaseScreen from './base.screen';
import ElementHelper from "../helpers/ElementHelper";
import TouchHelper from "../helpers/TouchHelper";
import ElementHelper from "../helpers/ElementHelper";

const SELECTORS = {
ENTER_YOUR_PASS_PHRASE_FIELD: '-ios class chain:**/XCUIElementTypeSecureTextField[`value == "Enter your pass phrase"`]',
OK_BUTTON: '~Ok',
CONFIRM_PASS_PHRASE_FIELD: '~textField',
TRASH_HEADER: '-ios class chain:**/XCUIElementTypeNavigationBar[`name == "TRASH"`]',
SENT_HEADER: '-ios class chain:**/XCUIElementTypeNavigationBar[`name == "SENT"`]',
CREATE_EMAIL_BUTTON: '-ios class chain:**/XCUIElementTypeButton[`label == "+"`]',
INBOX_HEADER: '-ios class chain:**/XCUIElementTypeStaticText[`label == "INBOX"`]'
INBOX_HEADER: '-ios class chain:**/XCUIElementTypeStaticText[`label == "INBOX"`]',
SEARCH_ICON: '~search icn',
HELP_ICON: '~help icn'
};

class InboxScreen extends BaseScreen {
class MailFolderScreen extends BaseScreen {
constructor() {
super(SELECTORS.CONFIRM_PASS_PHRASE_FIELD);
super(SELECTORS.SEARCH_ICON);
}

get createEmailButton() {
return $(SELECTORS.CREATE_EMAIL_BUTTON);
get searchIcon() {
return $(SELECTORS.SEARCH_ICON);
}

get helpIcon() {
return $(SELECTORS.HELP_ICON);
}

get trashHeader() {
return $(SELECTORS.TRASH_HEADER)
}

get sentHeader() {
return $(SELECTORS.SENT_HEADER)
}

get inboxHeader() {
return $(SELECTORS.INBOX_HEADER)
}

clickOnUserEmail = async (email: string) => {
await (await this.createEmailButton).waitForDisplayed();
await $(`~${email}`).click();
get createEmailButton() {
return $(SELECTORS.CREATE_EMAIL_BUTTON);
}

checkTrashScreen = async () => {
await expect(await this.trashHeader).toBeDisplayed();
await expect(await this.searchIcon).toBeDisplayed();
await expect(await this.helpIcon).toBeDisplayed()
}

checkEmailIsNotDisplayed = async (subject: string) => {
await (await $(`~${subject}`)).waitForDisplayed({ reverse: true });
}

checkSentScreen = async () => {
await expect(await this.sentHeader).toBeDisplayed();
await expect(await this.searchIcon).toBeDisplayed();
await expect(await this.helpIcon).toBeDisplayed()
}

refreshMailList = async () => {
await TouchHelper.scrollUp();
}

clickOnEmailBySubject = async (subject: string) => {
Expand All @@ -45,6 +77,11 @@ class InboxScreen extends BaseScreen {
await ElementHelper.waitAndClick(await this.createEmailButton, 1000); // delay needed on M1
}

clickOnUserEmail = async (email: string) => {
await (await this.createEmailButton).waitForDisplayed();
await $(`~${email}`).click();
}

checkInboxScreen = async () => {
await (await this.inboxHeader).waitForDisplayed();
if (await (await this.createEmailButton).isDisplayed() !== true) {
Expand All @@ -54,4 +91,4 @@ class InboxScreen extends BaseScreen {
}
}

export default new InboxScreen();
export default new MailFolderScreen();
43 changes: 0 additions & 43 deletions appium/tests/screenobjects/sent.screen.ts

This file was deleted.

42 changes: 0 additions & 42 deletions appium/tests/screenobjects/trash.screen.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
SplashScreen,
SetupKeyScreen,
InboxScreen,
MailFolderScreen,
NewMessageScreen
} from '../../screenobjects/all-screens';

Expand All @@ -17,9 +17,9 @@ describe('COMPOSE EMAIL: ', () => {

await SplashScreen.login();
await SetupKeyScreen.setPassPhrase();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

await InboxScreen.clickCreateEmail();
await MailFolderScreen.clickCreateEmail();
await NewMessageScreen.composeEmail(recipientEmail, emailSubject, emailText);
await NewMessageScreen.checkFilledComposeEmailInfo(recipientEmail, emailSubject, emailText);

Expand Down
10 changes: 5 additions & 5 deletions appium/tests/specs/composeEmail/SelectRecipientByName.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
SplashScreen,
SetupKeyScreen,
InboxScreen,
MailFolderScreen,
NewMessageScreen,
ContactScreen,
ContactPublicKeyScreen,
Expand All @@ -25,7 +25,7 @@ describe('COMPOSE EMAIL: ', () => {

await SplashScreen.login();
await SetupKeyScreen.setPassPhrase();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

// Go to Contacts screen
await MenuBarScreen.clickMenuIcon();
Expand All @@ -41,16 +41,16 @@ describe('COMPOSE EMAIL: ', () => {

await MenuBarScreen.clickMenuIcon();
await MenuBarScreen.clickInboxButton();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

// Add first contact
await InboxScreen.clickCreateEmail();
await MailFolderScreen.clickCreateEmail();
await NewMessageScreen.setAddRecipientByName(firstContactName, firstContactEmail);
await NewMessageScreen.checkAddedRecipient(firstContactEmail);
await NewMessageScreen.clickBackButton();

// Add second contact
await InboxScreen.clickCreateEmail();
await MailFolderScreen.clickCreateEmail();
await NewMessageScreen.setAddRecipientByName(secondContactName, secondContactEmail);
await NewMessageScreen.checkAddedRecipient(secondContactEmail);
await NewMessageScreen.clickBackButton();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {
SplashScreen,
SetupKeyScreen,
InboxScreen,
MailFolderScreen,
NewMessageScreen
} from '../../screenobjects/all-screens';

Expand All @@ -18,9 +18,9 @@ describe('COMPOSE EMAIL: ', () => {

await SplashScreen.login();
await SetupKeyScreen.setPassPhrase();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

await InboxScreen.clickCreateEmail();
await MailFolderScreen.clickCreateEmail();
await NewMessageScreen.composeEmail(noPublicKeyRecipient, emailSubject, emailText);
await NewMessageScreen.checkFilledComposeEmailInfo(noPublicKeyRecipient, emailSubject, emailText);
await NewMessageScreen.clickSendButton();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import {
SplashScreen,
SetupKeyScreen,
InboxScreen,
MailFolderScreen,
NewMessageScreen,
EmailScreen,
MenuBarScreen,
SentScreen,
TrashScreen
} from '../../screenobjects/all-screens';

import { CommonData } from '../../data';
Expand All @@ -27,13 +25,13 @@ describe('COMPOSE EMAIL: ', () => {

await SplashScreen.login();
await SetupKeyScreen.setPassPhrase();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

//Restart app to reset pass phrase memory cache
await driver.terminateApp(bundleId);
await driver.activateApp(bundleId);

await InboxScreen.clickCreateEmail();
await MailFolderScreen.clickCreateEmail();
await NewMessageScreen.composeEmail(contactEmail, emailSubject, emailText);
await NewMessageScreen.checkFilledComposeEmailInfo(contactEmail, emailSubject, emailText);
//Set wrong pass phrase and check error
Expand All @@ -46,35 +44,35 @@ describe('COMPOSE EMAIL: ', () => {
await NewMessageScreen.clickSendButton();
await EmailScreen.enterPassPhrase(passPhrase);
await EmailScreen.clickOkButton();
await InboxScreen.checkInboxScreen();
await MailFolderScreen.checkInboxScreen();

await MenuBarScreen.clickMenuIcon();
await MenuBarScreen.clickSentButton();
await SentScreen.checkSentScreen();
await MailFolderScreen.checkSentScreen();

//Check sent email
await InboxScreen.clickOnEmailBySubject(emailSubject);
await MailFolderScreen.clickOnEmailBySubject(emailSubject);
await EmailScreen.checkOpenedEmail(senderEmail, emailSubject, emailText);
//Delete sent email
await EmailScreen.clickDeleteButton();
await SentScreen.checkSentScreen();
await SentScreen.checkEmailIsNotDisplayed(emailSubject);
await MailFolderScreen.checkSentScreen();
await MailFolderScreen.checkEmailIsNotDisplayed(emailSubject);
await browser.pause(2000); // give Google API time to process the deletion
await SentScreen.refreshSentList();
await SentScreen.checkSentScreen();
await SentScreen.checkEmailIsNotDisplayed(emailSubject);
await MailFolderScreen.refreshMailList();
await MailFolderScreen.checkSentScreen();
await MailFolderScreen.checkEmailIsNotDisplayed(emailSubject);
//Check email in Trash list
await MenuBarScreen.clickMenuIcon();
await MenuBarScreen.clickTrashButton();
await TrashScreen.checkTrashScreen();
await InboxScreen.clickOnEmailBySubject(emailSubject);
await MailFolderScreen.checkTrashScreen();
await MailFolderScreen.clickOnEmailBySubject(emailSubject);
//Remove from Trash
await EmailScreen.clickDeleteButton();
await EmailScreen.confirmDelete();
await TrashScreen.checkTrashScreen();
await MailFolderScreen.checkTrashScreen();
await browser.pause(2000); // give Google API time to process the deletion
await TrashScreen.refreshTrashList();
await TrashScreen.checkTrashScreen();
await TrashScreen.checkEmailIsNotDisplayed(emailSubject);
await MailFolderScreen.refreshMailList();
await MailFolderScreen.checkTrashScreen();
await MailFolderScreen.checkEmailIsNotDisplayed(emailSubject);
});
});
Loading