blob: 38de619d947635261ae73c76b4278074b4119b91 [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.platform.helpers;
import androidx.test.uiautomator.Direction;
import androidx.test.uiautomator.UiObject2;
import java.util.List;
public interface IGmailHelper extends IAppHelper {
/**
* Setup expectations: Gmail is open and the navigation bar is visible.
*
* <p>This method will navigate to the Inbox or Primary, depending on the name.
*/
public void goToInbox();
/** Alias method for AbstractGmailHelper#goToInbox */
public void goToPrimary();
/**
* Setup expectations: Gmail is open on the Inbox or Primary page.
*
* <p>This method will open a new e-mail to compose and block until complete.
*/
public void goToComposeEmail();
/**
* Checks if the current view is the compose email view.
*
* @return true if the current view is the compose email view, false otherwise.
*/
public boolean isInComposeEmail();
/**
* Checks if the app is open on the Inbox or Primary page.
*
* @return true if the current view is the Inbox or Primary page, false otherwise.
*/
public boolean isInPrimaryOrInbox();
/**
* Setup expectations: Gmail is open and on the Inbox or Primary page.
*
* <p>This method will open the (index)'th visible e-mail in the list and block until the e-mail
* is visible in the foreground. The top-most visible e-mail will always be labeled 0. To get
* the number of visible e-mails, consult the getVisibleEmailCount() function.
*/
public void openEmailByIndex(int index);
/**
* Setup expectations: Gmail is open and on the Inbox or Primary page.
*
* <p>This method will return the number of visible e-mails for use with the #openEmailByIndex
* method.
*/
public int getVisibleEmailCount();
/**
* Setup expectations: Gmail is open and an e-mail is open in the foreground.
*
* <p>This method will press reply, send a reply e-mail with the given parameters, and block
* until the original message is in the foreground again.
*/
public void sendReplyEmail(String address, String body);
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method will set the e-mail's To address and block until complete.
*/
public void setEmailToAddress(String address);
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method will set the e-mail's subject and block until complete.
*/
public void setEmailSubject(String subject);
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method will set the e-mail's Body (doesn't use keyboard) and block until complete.
* Focus will remain on the e-mail body after completion.
*
* <p>* @param body The messages to input in the e-mail body.
*/
public void setEmailBody(String body);
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method inputs the e-mail body.
*
* @param body The messages to input in the e-mail body.
* @param useKeyboard Types out the e-mail body by keyboard or not.
*/
public default void setEmailBody(String body, boolean useKeyboard) {
throw new UnsupportedOperationException("Not yet implemented.");
}
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method will press send and block until the device is idle on the original e-mail.
*/
public void clickSendButton();
/**
* Setup expectations: Gmail is open and composing an e-mail.
*
* <p>This method will get the e-mail's composition's body and block until complete.
*
* @return {String} the text contained in the email composition's body.
*/
public String getComposeEmailBody();
/**
* Setup expectations: Gmail is open and the navigation drawer is visible.
*
* <p>This method will open the navigation drawer and block until complete.
*/
public void openNavigationDrawer();
/**
* Setup expectations: Gmail is open and the navigation drawer is open.
*
* <p>This method will close the navigation drawer and returns true otherwise false
*/
public boolean closeNavigationDrawer();
/**
* Setup expectations: Gmail is open and the navigation drawer is open.
*
* <p>This method will scroll the navigation drawer and block until idle. Only accepts UP and
* DOWN.
*/
public void scrollNavigationDrawer(Direction dir);
/**
* Setup expectations: Gmail is open and the navigation drawer is open.
*
* <p>This method will fling the navigation drawer and block until idle. Only accepts UP and
* DOWN.
*/
public void flingNavigationDrawer(Direction dir);
/**
* Setup expectations: Gmail is open and a mailbox is open.
*
* <p>This method will scroll the mailbox view.
*
* @param direction The direction to scroll, only accepts UP and DOWN.
* @param amount The amount to scroll
* @param scrollToEnd Whether or not to scroll to the end
*/
public void scrollMailbox(Direction direction, float amount, boolean scrollToEnd);
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method will scroll the current email.
*
* @param direction The direction to scroll, only accepts UP and DOWN.
* @param amount The amount to scroll
* @param scrollToEnd Whether or not to scroll to the end
*/
public void scrollEmail(Direction direction, float amount, boolean scrollToEnd);
/**
* Setup expectations: Gmail is open and the navigation drawer is open.
*
* <p>This method will open the mailbox with the given name and block until emails in that
* mailbox have loaded.
*
* @param mailboxName The case insensitive name of the mailbox to open
*/
public void openMailbox(String mailboxName);
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method will return to the mailbox the current email was opened from.
*/
public void returnToMailbox();
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method starts downloading the attachment at the specified index in the current email.
* The download happens in the background. This method returns immediately after starting the
* download and does not wait for the download to complete.
*
* @param index The index of the attachment to download
*/
public void downloadAttachment(int index);
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method gets every link target in an open email by traversing the UI tree of the body
* of the open message.
*
* @return an iterator over the links in the message
*/
public List<String> getEmailLinks();
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method clicks the link in the open email with the given target.
*
* @param target the target of the link to click
*/
public void openEmailLink(String target);
/**
* Setup expectations: Gmail is open on any page that has a search bar on top.
*
* @param searchString string to search for in all emails
*/
public void search(String searchString);
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method clicks the delete icon in an open email.
*/
public void deleteCurrentEmail();
/**
* Setup expectations: Gmail is open and an email is open.
*
* <p>This method swipes the current email.
*
* @param direction The direction to swipe, only accepts LEFT and RIGHT.
*/
public default void swipeEmail(Direction direction) {
throw new UnsupportedOperationException("Not yet implemented.");
}
/**
* Setup expectations: Gmail is open and a mailbox is open.
*
* <p>This method open account menu.
*/
public default void openAccountMenu() {
throw new UnsupportedOperationException("Not yet implemented.");
}
/**
* Setup expectations: Gmail mailbox is open.
*
* <p>The UiObject2 for Gmail to get mail contents container view.
*/
public UiObject2 getGmailContentsContainer();
/**
* Setup expectations: Gmail primary mail is open.
*
* <p>This method will check if the current view is the email contents page.
*/
public boolean isOnGmailContentsPage();
/**
* Setup expectation: Gmail is open.
*
* <p>Get the UiObject2 of mail button icon.
*/
public UiObject2 getMailButton();
/**
* Setup expectation: Gmail is open.
*
* <p>This method will click mail button and go to the top of the mail list.
*/
public void backToTopByMailButton();
/**
* Setup expectation: Gmail is open.
*
* <p>This method will switch mail label and go to the top of the mail list.
*/
public void backToTopBySwitchLabel();
/**
* Setup expectations: Gmail mailbox is open.
*
* <p>This method will get a UiObject2 object for Gmail list container.
*/
public UiObject2 getGmailListContainer();
/**
* Setup expectation: Gmail is open and emails are download completed.
*
* <p>This method will check if the current view is on Gmail list page.
*/
public boolean isOnGmailListPage();
}