Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fafe3dc authored by shonramamurthy's avatar shonramamurthy Committed by cketti
Browse files

Issue#2210 : Unit Tests for SmtpDataStuffing.

parent d3b4809e
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
package com.fsck.k9.mail.filter;

import java.io.IOException;
import java.io.ByteArrayOutputStream;

import okio.ByteString;

import org.junit.Test;

import static junit.framework.Assert.assertEquals;

public class SmtpDataStuffingTest {
    @Test
    public void smtpDotStuffing_stuffingOnlyDotTest() throws IOException {
        String expectedMessageAfterStuffing = "Hello dot\r\n..";
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        SmtpDataStuffing smtpDataStuffingStream = new SmtpDataStuffing(byteArrayOutputStream);
        byte[] data = ByteString.encodeUtf8("Hello dot\r\n.").toByteArray();

        smtpDataStuffingStream.write(data);
        smtpDataStuffingStream.close();
        byteArrayOutputStream.close();
        String actualMessageAfterStuffing = ByteString.of(byteArrayOutputStream.toByteArray()).utf8();

        assertEquals(expectedMessageAfterStuffing, actualMessageAfterStuffing);
    }

    @Test
    public void smtpDotStuffing_noStuffingDotTest() throws IOException {
        String expectedMessageAfterStuffing = "...Hello .. dots.";
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        SmtpDataStuffing smtpDataStuffingStream = new SmtpDataStuffing(byteArrayOutputStream);
        byte[] data = ByteString.encodeUtf8("...Hello .. dots.").toByteArray();

        smtpDataStuffingStream.write(data);
        smtpDataStuffingStream.close();
        byteArrayOutputStream.close();
        String actualMessageAfterStuffing = ByteString.of(byteArrayOutputStream.toByteArray()).utf8();

        assertEquals(expectedMessageAfterStuffing, actualMessageAfterStuffing);
    }

    @Test
    public void smtpDotStuffing_stuffingAndNoStuffingDotTest() throws IOException {
        String expectedMessageAfterStuffing = "\r\n..Hello . dots.\r\n...\r\n..\r\n....";
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        SmtpDataStuffing smtpDataStuffingStream = new SmtpDataStuffing(byteArrayOutputStream);
        byte[] data = ByteString.encodeUtf8("\r\n.Hello . dots.\r\n..\r\n.\r\n...").toByteArray();

        smtpDataStuffingStream.write(data);
        smtpDataStuffingStream.close();
        byteArrayOutputStream.close();
        String actualMessageAfterStuffing = ByteString.of(byteArrayOutputStream.toByteArray()).utf8();

        assertEquals(expectedMessageAfterStuffing, actualMessageAfterStuffing);
    }
}