Skip to content

Instantly share code, notes, and snippets.

@Ebazhanov
Created January 17, 2018 11:45
Show Gist options
  • Save Ebazhanov/ed94224a42b86c44bc754e3707d1ae7e to your computer and use it in GitHub Desktop.
Save Ebazhanov/ed94224a42b86c44bc754e3707d1ae7e to your computer and use it in GitHub Desktop.
Support for selenium tests Go to Gmail "Inbox" then read received letters
package de.base.utils.GmailReader
import ru.yandex.qatools.allure.annotations.Step
import javax.mail.*
import static com.codeborne.selenide.Selenide.sleep
import static de.base.utils.GmailReader.ConnectToEmailByImap.gmailProperties
/**
* Go to Gmail "Inbox" then read received letters
*
*/
class ReadGmailAccount {
@Step
static checkThatSubjectOfTheLetterIsPresent(String userEmail, String password, String subject) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder("Inbox")
emailFolder.open(Folder.READ_WRITE)
sleep(3000)
if (emailFolder.getMessageCount() != 0) {
assert emailFolder.getMessage(1).getSubject() == subject
} else if (emailFolder.getMessageCount() == 0) {
sleep(8000)
assert emailFolder.getMessage(1).getSubject() == subject
}
emailFolder.close(true)
store.close()
return this
}
@Step
static checkThatSubjectOfTheLetterIsPresent(String folderName, String userEmail, String password, String subject) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder(folderName)
emailFolder.open(Folder.READ_WRITE)
sleep(3000)
if (emailFolder.getMessageCount() != 0) {
assert emailFolder.getMessage(1).getSubject().contains(subject)
} else if (emailFolder.getMessageCount() == 0) {
sleep(8000)
assert emailFolder.getMessage(1).getSubject().contains(subject)
}
emailFolder.close(true)
store.close()
return this
}
@Step
static checkThatSubjectOfTheLetterIsPresentForMessageNumber(String userEmail, String password, String subject, int messageNumber) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder("Inbox")
emailFolder.open(Folder.READ_WRITE)
sleep(10000)
assert emailFolder.getMessage(messageNumber).getSubject() == subject
emailFolder.close(true)
store.close()
return this
}
@Step
static checkThatSubjectOfTheLetterIsNotPresent(String userEmail, String password, String subject) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder("Inbox")
emailFolder.open(Folder.READ_WRITE)
def messages = emailFolder.getMessages()
messages.reverse(true)
sleep(8000)
for (Message m in messages) {
assert m.getSubject() != subject
}
emailFolder.close(true)
store.close()
return this
}
@Step
static checkThatSubjectOfTheLetterIsNotPresent(String folderName, String userEmail, String password, String subject) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder(folderName)
emailFolder.open(Folder.READ_WRITE)
def messages = emailFolder.getMessages()
messages.reverse(true)
sleep(8000)
for (Message m in messages) {
assert m.getSubject() != subject
}
emailFolder.close(true)
store.close()
return this
}
@Step
static deleteLettersUnderEmailAccount(String userEmail, String password) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder("Inbox")
emailFolder.open(Folder.READ_WRITE)
def messages = emailFolder.getMessages().reverse(true)
for (Message m in messages) {
m.setFlag(Flags.Flag.DELETED, true)
}
emailFolder.close(true)
store.close()
return this
}
@Step
static deleteLettersUnderEmailAccount(String folderName, String userEmail, String password) {
Session emailSession = Session.getDefaultInstance(gmailProperties())
Store store = emailSession.getStore("imaps")
store.connect("imap.googlemail.com", userEmail, password)
Folder emailFolder = store.getFolder(folderName)
emailFolder.open(Folder.READ_WRITE)
def messages = emailFolder.getMessages().reverse(true)
for (Message m in messages) {
m.setFlag(Flags.Flag.DELETED, true)
}
emailFolder.close(true)
store.close()
return this
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment