Package com.atlassian.jira.webtests
Class EmailBaseFuncTestCase
java.lang.Object
com.atlassian.jira.functest.framework.BaseJiraFuncTest
com.atlassian.jira.webtests.EmailBaseFuncTestCase
- All Implemented Interfaces:
FunctTestConstants
- Direct Known Subclasses:
AbstractSubscriptionEmailTest
,BaseInProductDiagnosticsTest
,TestAddUser
,TestBulkDeleteIssuesNotifications
,TestBulkHeaders
,TestBulkMoveIssuesNotifications
,TestBulkWorkflowTransitionNotification
,TestCommentNotifications
,TestCommentOperations
,TestCommentResourceSafeguards
,TestCommentResourceSafeguardsLdap
,TestContactAdministrators
,TestCurrentAssigneeNotifications
,TestHandlers
,TestHistoryMetadataNotifications
,TestIssueDeleteNotifications
,TestIssueNotifications
,TestIssueResourceNotify
,TestMailImageAttachments
,TestMentions
,TestMoveIssueNotifications
,TestMoveSubTaskEnterprise
,TestNonEnglishNotifications
,TestNotificationEmails
,TestOutgoingMailSettings
,TestSendBulkMail
,TestSendTestEmail
,TestShareResource
,TestXsrfOptionsAndSettings
This class extends FuncTestCase by adding methods to test emails being sent from JIRA.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
static final String
protected MailService
static final String
Fields inherited from class com.atlassian.jira.functest.framework.BaseJiraFuncTest
assertions, backdoor, environmentData, initClass, navigation, tester, testRule
Fields inherited from interface com.atlassian.jira.functest.framework.FunctTestConstants
ADMIN_EMAIL, ADMIN_FULLNAME, ADMIN_PASSWORD, ADMIN_USERKEY, ADMIN_USERNAME, ADMINISTER, ADMINS_CAN_EDIT_PRIVATE_FILTERS_AND_DASHBOARDS, ADMINS_CAN_SHARE_FILTERS_AND_DASHBOARDS_WITH_ALL_GROUPS_AND_ROLES, AFFECTS_VERSIONS_FIELD_ID, AFFECTS_VERSIONS_FIELD_NAME, ANYONE, APPLINKS_BASE_ENDPOINT, APPLINKS_ENDPOINT, ASSIGN_FIELD_SCREEN, ASSIGN_FIELD_SCREEN_NAME, ASSIGN_ISSUE, ASSIGN_ISSUES_PERMISSION, ASSIGNABLE_USER, ASSIGNEE_FIELD_ID, ASSIGNEE_FIELD_NAME, ATTACHMENT_FIELD_ID, ATTACHMENT_FIELD_NAME, AUTHENTICATION_OAUTH, AUTHENTICATION_OAUTH_IMPERSONATION, AUTOMATIC_ERROR_MESSAGE, BOB_EMAIL, BOB_FULLNAME, BOB_PASSWORD, BOB_USERNAME, BRAZIL_LOCALE_ID, BROWSE, BROWSE_PROJECT_PERMISSION, BUILT_IN_CUSTOM_FIELD_KEY, BULK_CHANGE, BUTTON_CANCEL, BUTTON_CLONE_ISSUE_ID, BUTTON_CONFIRM, BUTTON_NAME_NEXT, BUTTON_NEXT, CHANGE_HISTORY, CHINA_LOCALE_ID, CLONERS_INWARD_LINK_NAME, CLONERS_LINK_TYPE_NAME, CLONERS_OUTWARD_LINK_NAME, CLOSE_ISSUE, COMMENT_DELETE_ALL, COMMENT_DELETE_OWN, COMMENT_EDIT_ALL, COMMENT_EDIT_OWN, COMMENT_ISSUE, COMMENT_REACTIONS, COMPONENT_NAME_FOUR, COMPONENT_NAME_ONE, COMPONENT_NAME_THREE, COMPONENT_NAME_TWO, COMPONENTS_FIELD_ID, COMPONENTS_FIELD_NAME, CREATE_ATTACHMENT, CREATE_ISSUE, CREATE_ISSUE_OPERATION_SCREEN, CREATE_SHARED_OBJECTS, CURRENT_USER, CUSTOM_FIELD_CASCADING_SELECT_SEARCHER, CUSTOM_FIELD_CHECKBOX_SEARCHER, CUSTOM_FIELD_CONFIGURATION, CUSTOM_FIELD_DATE_RANGE, CUSTOM_FIELD_EXACT_NUMBER, CUSTOM_FIELD_EXACT_TEXT_SEARCHER, CUSTOM_FIELD_GROUP_PICKER_SEARCHER, CUSTOM_FIELD_LABEL_SEARCHER, CUSTOM_FIELD_MULTI_SELECT_SEARCHER, CUSTOM_FIELD_NUMBER_RANGE, CUSTOM_FIELD_PREFIX, CUSTOM_FIELD_PROJECT_SEARCHER, CUSTOM_FIELD_RADIO_SEARCHER, CUSTOM_FIELD_SELECT_SEARCHER, CUSTOM_FIELD_TEXT_SEARCHER, CUSTOM_FIELD_TYPE_CASCADINGSELECT, CUSTOM_FIELD_TYPE_CHECKBOX, CUSTOM_FIELD_TYPE_DATEPICKER, CUSTOM_FIELD_TYPE_DATETIME, CUSTOM_FIELD_TYPE_FLOAT, CUSTOM_FIELD_TYPE_FREETEXT, CUSTOM_FIELD_TYPE_GROUPPICKER, CUSTOM_FIELD_TYPE_LABELS, CUSTOM_FIELD_TYPE_MULTICHECKBOXES, CUSTOM_FIELD_TYPE_MULTIGROUPPICKER, CUSTOM_FIELD_TYPE_MULTISELECT, CUSTOM_FIELD_TYPE_MULTIUSERPICKER, CUSTOM_FIELD_TYPE_PROJECT, CUSTOM_FIELD_TYPE_RADIO, CUSTOM_FIELD_TYPE_READONLYTEXT, CUSTOM_FIELD_TYPE_SELECT, CUSTOM_FIELD_TYPE_TEXTFIELD, CUSTOM_FIELD_TYPE_URL, CUSTOM_FIELD_TYPE_USERPICKER, CUSTOM_FIELD_TYPE_VERSION, CUSTOM_FIELD_USER_PICKER_GROUP_SEARCHER, CUSTOM_FIELD_USER_PICKER_SEARCHER, CUSTOM_FIELD_VERSION_SEARCHER, CUSTOM_SUB_TASK_SUMMARY, CUSTOM_SUB_TASK_TYPE_DESCRIPTION, CUSTOM_SUB_TASK_TYPE_NAME, CZECH_LOCALE_ID, DARK_FEATURE_DISABLE_LANDING_PAGE_REDIRECT_FLAG, DEFAULT_ASSIGNEE_ERROR_MESSAGE, DEFAULT_FIELD_CONFIGURATION, DEFAULT_FIELD_CONFIGURATION_ID, DEFAULT_FIELD_SCREEN_NAME, DEFAULT_ISSUE_TYPE_SCHEME, DEFAULT_ISSUE_TYPE_SCREEN_SCHEME, DEFAULT_OPERATION_SCREEN, DEFAULT_PERM_SCHEME, DEFAULT_PERM_SCHEME_ID, DEFAULT_SCREEN_SCHEME, DEFAULT_TEXT_RENDERER, DELETE_ISSUE, DENMARK_LOCALE_ID, DISABLE_LAZY_LOAD_ACTIVITY_TABS_FLAG, DUE_DATE_FIELD_ID, DUE_DATE_FIELD_NAME, EDIT_ISSUE, EDIT_ISSUE_OPERATION_SCREEN, ENABLE_LEGACY_MODE_SYSTEM_PROPERTY, EVENT_TYPE_ACTIVE_STATUS, EVENT_TYPE_INACTIVE_STATUS, FIELD_ASSIGNEE, FIELD_COMMENT, FIELD_COMPONENTS, FIELD_FIX_VERSIONS, FIELD_OPERATION, FIELD_PRIORITY, FIELD_SCHEME_DESC, FIELD_SCHEME_NAME, FIELD_TABLE_ID, FIELD_VERSIONS, FIELD_WORKFLOW, FIX_VERSIONS_FIELD_ID, FIX_VERSIONS_FIELD_NAME, FORMAT_DAYS, FORMAT_HOURS, FORMAT_PRETTY, FRANCE_LOCALE_ID, FRED_EMAIL, FRED_FULLNAME, FRED_PASSWORD, FRED_USERKEY, FRED_USERNAME, FRENCH_LOCALISED, FS, FUNC_TEST_PLUGIN_KEY, FUNC_TEST_PLUGIN_REST_PATH, FUNCTEST_CUSTOM_FIELD_KEY, FUNCTEST_CUSTOM_FIELD_TYPE_TEXTAREA, GERMAN_LOCALISED, GERMANY_LOCALE_ID, GLOBAL_ADMIN, GROUP_LABEL_ADMIN, GROUP_LABEL_FUNC_TEST, GROUP_LABEL_JIRA_CORE, GROUP_LABEL_MULTI, HSP_ADMIN_PASSWORD, HSP_ADMIN_USERKEY, HSP_ADMIN_USERNAME, HSP_EMAIL, HSP_FULLNAME, HTM, HUNGARY_LOCALE_ID, ISSUE_ALL, ISSUE_BUG, ISSUE_IMAGE_BUG, ISSUE_IMAGE_GENERIC, ISSUE_IMAGE_IMPROVEMENT, ISSUE_IMAGE_NEWFEATURE, ISSUE_IMAGE_SUB_TASK, ISSUE_IMAGE_TASK, ISSUE_IMPROVEMENT, ISSUE_MKY_ONE_KEY, ISSUE_MKY_THREE_KEY, ISSUE_MKY_TWO_KEY, ISSUE_NEWFEATURE, ISSUE_STATUS_CLOSED_ID, ISSUE_STATUS_IN_PROGRESS_ID, ISSUE_STATUS_OPEN_ID, ISSUE_STATUS_REOPENED_ID, ISSUE_STATUS_RESOLVED_ID, ISSUE_TAB_ALL, ISSUE_TAB_CHANGE_HISTORY, ISSUE_TAB_COMMENTS, ISSUE_TAB_WORK_LOG, ISSUE_TASK, ISSUE_TYPE_ALL, ISSUE_TYPE_ALL_SUB_TASK, ISSUE_TYPE_ANY, ISSUE_TYPE_BUG, ISSUE_TYPE_IMPROVEMENT, ISSUE_TYPE_NEWFEATURE, ISSUE_TYPE_SUB_TASK, ISSUE_TYPE_TASK, ISSUETABLE_EDIT_ROW, ISSUETABLE_HEADER_ROW, ISSUETABLE_ID, ITALY_LOCALE_ID, JAPAN_LOCALE_ID, JIRA_ADMIN_GROUP, JIRA_ADMIN_ROLE, JIRA_ADMIN_ROLE_ID, JIRA_DEV_GROUP, JIRA_DEV_ROLE, JIRA_DEV_ROLE_ID, JIRA_FORM_NAME, JIRA_USERS_GROUP, JIRA_USERS_ROLE, JIRA_USERS_ROLE_ID, JIRADEV_EMAIL, JIRADEV_FULLNAME, JIRADEV_PASSWORD, JIRADEV_USERKEY, JIRADEV_USERNAME, KOREA_LOCALE_ID, LABEL_ISSUE_NAVIGATOR, LINK_ASSIGN_ISSUE, LINK_BULK_CHANGE_ALL, LINK_BULK_CHANGE_CURR_PG, LINK_CLONE_ISSUE, LINK_DELETE_ISSUE, LINK_EDIT_ISSUE, LINK_ISSUE, LINK_NEXT_PG, MANAGE_GROUP_FILTER_SUBSCRIPTIONS, MANAGE_WATCHER_LIST, minorPriority, MODIFY_REPORTER, MOON_LOCALE, MOVE_DOWN, MOVE_ISSUE, MOVE_TO_FIRST, MOVE_TO_LAST, MOVE_UP, NETHERLANDS_LOCALE_ID, NORWAY_LOCALE_ID, PERM_SCHEME_DESC, PERM_SCHEME_ID, PERM_SCHEME_NAME, POLAND_LOCALE_ID, PRIORITY_BLOCKER, PRIORITY_CRITICAL, PRIORITY_FIELD_ID, PRIORITY_FIELD_NAME, PRIORITY_IMAGE_BLOCKER, PRIORITY_IMAGE_CRITICAL, PRIORITY_IMAGE_MAJOR, PRIORITY_IMAGE_MINOR, PRIORITY_IMAGE_TRIVIAL, PRIORITY_MAJOR, PRIORITY_MINOR, PRIORITY_TRIVIAL, PROJECT_ADMIN, PROJECT_HOMOSAP, PROJECT_HOMOSAP_ID, PROJECT_HOMOSAP_KEY, PROJECT_MKY_DESCRIPTION_MESSAGE, PROJECT_MKY_KEY_MESSAGE, PROJECT_MKY_TYPE_MESSAGE, PROJECT_MONKEY, PROJECT_MONKEY_ID, PROJECT_MONKEY_KEY, PROJECT_NEO, PROJECT_NEO_KEY, PROJECT_TAB_CHANGE_LOG, PROJECT_TAB_COMPONENTS, PROJECT_TAB_OPEN_ISSUES, PROJECT_TAB_ROAD_MAP, PROJECT_TAB_VERSIONS, PROJECT_TEMPLATE_KEY_PROCESS_MANAGEMENT, PROJECT_TEMPLATE_KEY_PROJECT_MANAGEMENT, PROJECT_TEMPLATE_KEY_TASK_MANAGEMENT, PROJECT_TYPE_BUSINESS, PROJECT_TYPE_SOFTWARE, RADIO_OPERATION_DELETE, RADIO_OPERATION_EDIT, RADIO_OPERATION_MOVE, RADIO_OPERATION_WORKFLOW, REPORTER_FIELD_ID, REPORTER_FIELD_NAME, RESOLUTION_FIELD_ID, RESOLUTION_FIELD_NAME, RESOLVE_FIELD_SCREEN_NAME, RESOLVE_ISSUE, RUSSIA_LOCALE_ID, SCHEDULE_ISSUE, SCREEN_TABLE_NAME_COLUMN_INDEX, SECURITY_LEVEL_FIELD_ID, SECURITY_LEVEL_FIELD_NAME, SECURITY_LEVEL_ONE_DESC, SECURITY_LEVEL_ONE_NAME, SECURITY_LEVEL_THREE_DESC, SECURITY_LEVEL_THREE_NAME, SECURITY_LEVEL_TWO_DESC, SECURITY_LEVEL_TWO_NAME, SECURITY_SCHEME_DESC, SECURITY_SCHEME_NAME, SER_ALLOW_SHARE_WITH_NON_MEMBER, SET_ISSUE_SECURITY, SLOVAKIA_LOCALE_ID, SPAIN_LOCALE_ID, STATUS_IN_PROGRESS, STATUS_NAME, STATUS_OPEN, STATUS_RESOLVED, STEP_CHOOSE_ISSUES, STEP_CHOOSE_OPERATION, STEP_CONFIRMATION, STEP_NAME, STEP_OPERATION_DETAILS, STEP_PREFIX, SUB_TASK_DEFAULT_TYPE, SUB_TASK_SUMMARY, Summary, SWEDEN_LOCALE_ID, SYS_ADMIN_FULLNAME, SYS_ADMIN_PASSWORD, SYS_ADMIN_USERNAME, SYSTEM_ADMINISTER, TEST_FIELD_SCREEN, THEME_SWITCHER, TIME_TRACKING_FIELD_ID, TRANSIION_NAME_APPROVE, TRANSIION_NAME_CLOSE, TRANSIION_NAME_REOPEN, TRANSIION_NAME_RESOLVE, TRANSIION_NAME_START_PROGRESS, TRANSIION_NAME_STOP_PROGRESS, TRANSITION_ID_STATUS_APPROVED_ACTION_REOPEN, TRANSITION_ID_STATUS_CLOSED_ACTION_REOPEN, TRANSITION_ID_STATUS_IN_PROGRESS_ACTION_STOP_PROGRESS, TRANSITION_ID_STATUS_OPEN_ACTION_CLOSE, TRANSITION_ID_STATUS_OPEN_ACTION_RESOLVE, TRANSITION_ID_STATUS_OPEN_ACTION_START_PROGRESS, TRANSITION_ID_STATUS_RESOLVED_ACTION_APPROVE, TRANSITION_ISSUES_PERMISSION, UK_LOCALE_ID, UNKNOWN, UNKNOWN_ID, US_LOCALE_ID, USE, USER_PICKER, VERSION_NAME_FIVE, VERSION_NAME_FOUR, VERSION_NAME_ONE, VERSION_NAME_THREE, VERSION_NAME_TWO, VERSIONS_FIELD_NAME, VIEW_ISSUE_OPERATION_SCREEN, VIEW_VERSION_CONTROL, VIEW_VOTERS_AND_WATCHERS, WIKI_STYLE_RENDERER, WORK_ISSUE, WORKFLOW_ADDED, WORKFLOW_COPIED, WORKFLOW_SCHEME, XSRF_NO_CHECK_VALUE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
assertCorrectNumberEmailsSent
(int numOfMessages) protected void
assertEmailBodyContains
(jakarta.mail.internet.MimeMessage email, String bodySubString) Asserts that the given email's body contains the bodySubString using indexOf.protected void
assertEmailBodyContains
(String emailBody, String bodySubString) Assert that the String emailBody contains bodySubStringprotected void
assertEmailBodyContainsLine
(jakarta.mail.internet.MimeMessage email, String... linePattern) Asserts that the given email's body contains a line which matches the given string or pattern.protected void
assertEmailBodyDoesntContain
(jakarta.mail.internet.MimeMessage email, String bodySubString) Asserts that the given email's body does not contain the bodySubString using indexOf.protected void
assertEmailCcEquals
(jakarta.mail.internet.MimeMessage email, Collection<?> expectedCcAddresses) protected void
assertEmailFromEquals
(jakarta.mail.internet.MimeMessage email, String expectedTo) protected void
assertEmailHasNumberOfParts
(jakarta.mail.internet.MimeMessage email, int expectedNumOfParts) protected void
assertEmailReceivedWithBodyContainingLine
(int expectedMatchingEmailsCount, Collection<jakarta.mail.internet.MimeMessage> emails, String... linePattern) protected void
assertEmailSent
(String recipient, String subject, String issueComment) protected void
assertEmailSubjectEquals
(jakarta.mail.internet.MimeMessage email, String subject) protected void
assertEmailToEquals
(jakarta.mail.internet.MimeMessage email, String expectedTo) Assert that the email was addressed to the expectedToprotected void
assertEmailToEquals
(jakarta.mail.internet.MimeMessage email, Collection<?> expectedToAddresses) Assert that the email was addressed to each and everyone of the expectedAddressesprotected final void
assertMessageAndType
(jakarta.mail.internet.MimeMessage message, String expectedComment, boolean html) protected final void
assertNotMessageAndType
(jakarta.mail.internet.MimeMessage message, String expectedComment, boolean html) protected void
assertRecipientsHaveMessages
(Collection<String> recipients) protected void
protected void
protected void
configureAndStartMailServers
(String from, String prefix, JIRAServerSetup... jiraServerSetups) protected void
Use this method to start aSmtpServer
.protected void
configureAndStartSmtpServer
(String from, String prefix) protected void
void
protected void
protected void
flushMailQueueAndWait
(int emailCount) This is useful for writing func tests that test that the correct notifications are being sent.protected void
flushMailQueueAndWait
(int emailCount, int waitPeriodMillis) Does the same asflushMailQueueAndWait(int)
but allows the user to specify the wait period in case a lot of e-mails are being sent.protected void
flushMailQueueAndWaitForRecipients
(int waitPeriodMillis, String... recipientAddresses) Flushes the mail queue and waits for emails to arrive for specified recipients instead of a set number of emails.protected final EmailBaseFuncTestCase.MailBox
getMailBox
(String email) protected List
<jakarta.mail.internet.MimeMessage> getMessagesForRecipient
(String recipient) static org.hamcrest.TypeSafeMatcher
<jakarta.mail.internet.MimeMessage> protected Collection
<String> parseEmailAddresses
(String emails) Given a comma seperated list of email addresses, returns a collection of the email addresses.protected void
protected void
setupImapService
(boolean markAsSeen) protected void
setupImapService
(String handlerParameters, boolean markAsSeen) protected void
protected void
setupPopService
(String handlerParameters) protected void
startMailService
(JIRAServerSetup... jiraServerSetups) void
protected void
waitForMail
(int emailCount) Methods inherited from class com.atlassian.jira.functest.framework.BaseJiraFuncTest
getAssertions, getBackdoor, getEnvironmentData, getTester
-
Field Details
-
DEFAULT_FROM_ADDRESS
- See Also:
-
DEFAULT_SUBJECT_PREFIX
- See Also:
-
newline
- See Also:
-
HTML_FORMAT_REGEX
- See Also:
-
mailService
-
-
Constructor Details
-
EmailBaseFuncTestCase
public EmailBaseFuncTestCase()
-
-
Method Details
-
createMailService
public void createMailService() -
stopMailService
public void stopMailService() -
configureAndStartSmtpServer
protected void configureAndStartSmtpServer()Use this method to start aSmtpServer
.This will also configure JIRA to use this SMTP server in the admin section. You should call this after your data import. This will override any existing mail servers setup already.
A simple SMTP server proxy is started by first attempting to start on a default port number. If this port is already used we try that port number plus one and so on for 10 attempts. this allows for multiple tests running in Bamboo concurrently, and also for a particular test machine maybe using that port already.
The tearDown() method will close the TCP socket.
-
configureAndStartImapServer
protected void configureAndStartImapServer() -
configureAndStartSmtpServer
-
configureAndStartMailServers
protected void configureAndStartMailServers(String from, String prefix, JIRAServerSetup... jiraServerSetups) -
configureAndStartSmtpServerWithNotify
protected void configureAndStartSmtpServerWithNotify() -
startMailService
-
parseEmailAddresses
Given a comma seperated list of email addresses, returns a collection of the email addresses.- Parameters:
emails
- comma seperated list of email addresses- Returns:
- collection of individual email address
-
assertRecipientsHaveMessages
protected void assertRecipientsHaveMessages(Collection<String> recipients) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
getMessagesForRecipient
protected List<jakarta.mail.internet.MimeMessage> getMessagesForRecipient(String recipient) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
assertSendingMailIsEnabled
protected void assertSendingMailIsEnabled() -
setupPopService
protected void setupPopService() -
setupPopService
-
setupImapService
protected void setupImapService() -
setupImapService
protected void setupImapService(boolean markAsSeen) -
setupImapService
-
flushMailQueueAndWait
This is useful for writing func tests that test that the correct notifications are being sent. It goest to the admin section mail-queue and flushes the queue and waits till it recieves emailCount number of emails before timeout. If the timeout is reached before the expected number of emails arrives will fail.- Parameters:
emailCount
- number of expected emails to wait to receive- Throws:
InterruptedException
- if interrupted
-
flushMailQueueAndWait
protected void flushMailQueueAndWait(int emailCount, int waitPeriodMillis) throws InterruptedException Does the same asflushMailQueueAndWait(int)
but allows the user to specify the wait period in case a lot of e-mails are being sent.- Parameters:
emailCount
- number of expected emails to wait to receivewaitPeriodMillis
- The amount of time to wait in millis until the e-mails should have arrived.- Throws:
InterruptedException
- if interrupted
-
flushMailQueueAndWaitForRecipients
protected void flushMailQueueAndWaitForRecipients(int waitPeriodMillis, String... recipientAddresses) throws InterruptedException, jakarta.mail.MessagingException Flushes the mail queue and waits for emails to arrive for specified recipients instead of a set number of emails.- Parameters:
waitPeriodMillis
- The amount of time to wait in millis until the e-mails should have arrived.recipientAddresses
- the addresses to wait for or fail- Throws:
InterruptedException
- if interruptedjakarta.mail.MessagingException
- if there is a problem extracting the sent messages
-
flushMailQueue
protected void flushMailQueue() -
waitForMail
- Throws:
InterruptedException
-
assertEmailBodyContains
protected void assertEmailBodyContains(jakarta.mail.internet.MimeMessage email, String bodySubString) throws jakarta.mail.MessagingException, IOException Asserts that the given email's body contains the bodySubString using indexOf.- Parameters:
email
- email to extract the content body frombodySubString
- expected substring of the email body- Throws:
jakarta.mail.MessagingException
- Message errorIOException
- IO error- See Also:
-
assertEmailBodyContainsLine
protected void assertEmailBodyContainsLine(jakarta.mail.internet.MimeMessage email, String... linePattern) Asserts that the given email's body contains a line which matches the given string or pattern. If multiple lines are specified, they must appear in the given order.- Parameters:
email
- email to extract the content body fromlinePattern
- expected line or line pattern- Throws:
jakarta.mail.MessagingException
- Message errorIOException
- IO error- See Also:
-
assertEmailReceivedWithBodyContainingLine
protected void assertEmailReceivedWithBodyContainingLine(int expectedMatchingEmailsCount, Collection<jakarta.mail.internet.MimeMessage> emails, String... linePattern) -
assertEmailBodyDoesntContain
protected void assertEmailBodyDoesntContain(jakarta.mail.internet.MimeMessage email, String bodySubString) throws jakarta.mail.MessagingException, IOException Asserts that the given email's body does not contain the bodySubString using indexOf.- Parameters:
email
- email to extract the content body frombodySubString
- string to not occur in body- Throws:
jakarta.mail.MessagingException
- Message errorIOException
- IO error- See Also:
-
assertEmailBodyContains
protected void assertEmailBodyContains(String emailBody, String bodySubString) throws jakarta.mail.MessagingException, IOException Assert that the String emailBody contains bodySubString- Parameters:
emailBody
- bodybodySubString
- expected substring- Throws:
jakarta.mail.MessagingException
- message errorIOException
- IO error
-
assertEmailHasNumberOfParts
protected void assertEmailHasNumberOfParts(jakarta.mail.internet.MimeMessage email, int expectedNumOfParts) throws jakarta.mail.MessagingException, IOException - Throws:
jakarta.mail.MessagingException
IOException
-
assertEmailToEquals
protected void assertEmailToEquals(jakarta.mail.internet.MimeMessage email, String expectedTo) throws jakarta.mail.MessagingException Assert that the email was addressed to the expectedTo- Parameters:
email
- email to assert the value of the to headerexpectedTo
- the single or comma seperated list of expected email addresses- Throws:
jakarta.mail.MessagingException
- message error- See Also:
-
assertEmailToEquals
protected void assertEmailToEquals(jakarta.mail.internet.MimeMessage email, Collection<?> expectedToAddresses) throws jakarta.mail.MessagingException Assert that the email was addressed to each and everyone of the expectedAddresses- Parameters:
email
- email to assert the value of the to headerexpectedToAddresses
- collection of expected email addresses- Throws:
jakarta.mail.MessagingException
- meesage error
-
assertEmailCcEquals
protected void assertEmailCcEquals(jakarta.mail.internet.MimeMessage email, Collection<?> expectedCcAddresses) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
assertEmailFromEquals
protected void assertEmailFromEquals(jakarta.mail.internet.MimeMessage email, String expectedTo) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
assertEmailSubjectEquals
protected void assertEmailSubjectEquals(jakarta.mail.internet.MimeMessage email, String subject) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
assertEmailSent
protected void assertEmailSent(String recipient, String subject, String issueComment) throws jakarta.mail.MessagingException, IOException - Throws:
jakarta.mail.MessagingException
IOException
-
assertCorrectNumberEmailsSent
protected void assertCorrectNumberEmailsSent(int numOfMessages) throws jakarta.mail.MessagingException - Throws:
jakarta.mail.MessagingException
-
getMailBox
protected final EmailBaseFuncTestCase.MailBox getMailBox(String email) throws com.icegreen.greenmail.store.FolderException - Throws:
com.icegreen.greenmail.store.FolderException
-
assertMessageAndType
protected final void assertMessageAndType(jakarta.mail.internet.MimeMessage message, String expectedComment, boolean html) -
assertNotMessageAndType
protected final void assertNotMessageAndType(jakarta.mail.internet.MimeMessage message, String expectedComment, boolean html) -
hasBody
public static org.hamcrest.TypeSafeMatcher<jakarta.mail.internet.MimeMessage> hasBody(org.hamcrest.Matcher<String> bodyMatcher)
-