public boolean hasAMessageWithFlags(String flags) throws IOException { imapClient.fetch("1:1", "ALL"); String replyString = imapClient.getReplyString(); return isCompletedWithFlags(flags, replyString); }
@Override public void afterEach(ExtensionContext extensionContext) { after(); }
@Override protected void after() { try { this.close(); } catch (IOException e) { //ignore exception during close } }
@Then("^the user does not have a IMAP message in mailbox \"([^\"]*)\"$") public void hasNoMessageInMailbox(String mailbox) throws Throwable { try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(userStepdefs.getConnectedUser(), userStepdefs.getUserPassword(userStepdefs.getConnectedUser())) .select(mailbox); assertThat(imapMessageReader.userDoesNotReceiveMessage()) .isTrue(); } }
try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST_IP, james.getJmapServer().getProbe(ImapGuiceProbe.class).getImapPort()) .login(ALICE, ALICE_PASSWORD) .select("Spam"); imapMessageReader.setFlagsForAllMessagesInMailbox("\\Deleted"); imapMessageReader.expunge();
public IMAPMessageReader awaitMessageCount(ConditionFactory conditionFactory, int messageCount) { conditionFactory.until(() -> { try { imapClient.fetch("1:*", "ALL"); return countFetchedEntries() == messageCount; } catch (Exception e) { throw new RuntimeException(e); } }); return this; }
@Then("^the message has IMAP flag \"([^\"]*)\" in mailbox \"([^\"]*)\" for \"([^\"]*)\"$") public void hasMessageWithFlagInMailbox(String flags, String mailbox, String username) throws Throwable { try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(userStepdefs.getConnectedUser(), userStepdefs.getUserPassword(username)) .select(mailbox); assertThat(imapMessageReader.hasAMessageWithFlags(flags)) .isTrue(); } }
@Then("^the user has a IMAP message in mailbox \"([^\"]*)\"$") public void hasMessageInMailbox(String mailbox) throws Throwable { try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(userStepdefs.getConnectedUser(), userStepdefs.getUserPassword(userStepdefs.getConnectedUser())) .select(mailbox); assertThat(imapMessageReader.hasAMessage()).isTrue(); } }
@Test public void userReceivedMessageWithFlagsInMailboxShouldReturnFalseWhenCompletedButNoFlag() throws Exception { String replyString = "* 1 FETCH (FLAGS (\\Seen) )\n" + "AAAC OK FETCH completed."; assertThat(testee.isCompletedWithFlags("\\Flagged", replyString)) .isFalse(); }
@When("^the user copy by IMAP first message of \"([^\"]*)\" to mailbox \"([^\"]*)\"$") public void copyAMessageByIMAP(String srcMailbox, String destMailbox) throws Throwable { String login = userStepdefs.getConnectedUser(); String password = userStepdefs.getUserPassword(login); try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(login, password) .select(srcMailbox); assertThat(imapMessageReader).isNotNull(); imapMessageReader.copyFirstMessage(destMailbox); mainStepdefs.awaitMethod.run(); } }
@Test public void userReceivedMessageWithFlagsInMailboxShouldReturnTrueWhenSeveralFlagsInAnyOrder() throws Exception { String replyString = "* 1 FETCH (FLAGS (\\Flagged \\Seen) )\n" + "AAAC OK FETCH completed."; assertThat(testee.isCompletedWithFlags("\\Seen \\Flagged", replyString)) .isTrue(); } }
@Then("^the user has a IMAP notification about (\\d+) new message when selecting mailbox \"([^\"]*)\"$") public void hasANotificationAboutNewMessagesInMailbox(int numOfNewMessage, String mailbox) throws Throwable { try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(userStepdefs.getConnectedUser(), userStepdefs.getUserPassword(userStepdefs.getConnectedUser())) .select(mailbox); assertThat( imapMessageReader.userGetNotifiedForNewMessagesWhenSelectingMailbox(numOfNewMessage)) .isTrue(); } }
@Test public void userReceivedMessageWithFlagsInMailboxShouldReturnTrueWhenSingleFlag() throws Exception { String replyString = "* 1 FETCH (FLAGS (\\Flagged) )\n" + "AAAC OK FETCH completed."; assertThat(testee.isCompletedWithFlags("\\Flagged", replyString)) .isTrue(); }
@SuppressWarnings("resource") @Given("^the user has an open IMAP connection with mailbox \"([^\"]*)\" selected") public void openImapConnectionAndSelectMailbox(String mailbox) throws Throwable { String login = userStepdefs.getConnectedUser(); String password = userStepdefs.getUserPassword(login); imapConnections.put(mailbox, new IMAPMessageReader() .connect(LOCALHOST, mainStepdefs.jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(login, password) .select(mailbox)); }
@Test public void userReceivedMessageWithFlagsInMailboxShouldReturnTrueWhenSeveralFlags() throws Exception { String replyString = "* 1 FETCH (FLAGS (\\Flagged \\Seen) )\n" + "AAAC OK FETCH completed."; assertThat(testee.isCompletedWithFlags("\\Flagged \\Seen", replyString)) .isTrue(); }
try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST_IP, jmapServer.getProbe(ImapGuiceProbe.class).getImapPort()) .login(USERNAME, PASSWORD) .select(MailboxConstants.INBOX); assertThat(imapMessageReader.readFirstMessage()) .contains("X-MY-MULTIVALUATED-HEADER: first value") .contains("X-MY-MULTIVALUATED-HEADER: second value");
.path(ARGUMENTS + ".messageIds"); try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST_IP, james.getJmapServer().getProbe(ImapGuiceProbe.class).getImapPort()) .login(ALICE, ALICE_PASSWORD) .select(IMAPMessageReader.INBOX); imapMessageReader.copyFirstMessage("Spam");
.path(ARGUMENTS + ".messageIds"); try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST_IP, james.getJmapServer().getProbe(ImapGuiceProbe.class).getImapPort()) .login(ALICE, ALICE_PASSWORD) .select(IMAPMessageReader.INBOX); imapMessageReader.moveFirstMessage("Spam");
try (IMAPMessageReader imapMessageReader = new IMAPMessageReader()) { imapMessageReader.connect(LOCALHOST_IP, james.getJmapServer().getProbe(ImapGuiceProbe.class).getImapPort()) .login(ALICE, ALICE_PASSWORD) .select("Spam"); imapMessageReader.moveFirstMessage(IMAPMessageReader.INBOX);