aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/testUtils.hpp2
-rw-r--r--tests/utility/filteredStreamTest.cpp40
2 files changed, 42 insertions, 0 deletions
diff --git a/tests/testUtils.hpp b/tests/testUtils.hpp
index 4fa6b457..1e138301 100644
--- a/tests/testUtils.hpp
+++ b/tests/testUtils.hpp
@@ -53,6 +53,8 @@
#define VASSERT_EQ(msg, expected, actual) \
CPPUNIT_ASSERT_EQUAL_MESSAGE(std::string(msg), expected, actual)
+#define VASSERT_NEQ(msg, expected, actual) \
+ CPPUNIT_ASSERT_MESSAGE(std::string(msg), (expected) != (actual))
#define VASSERT_THROW(msg, expression, exceptionType) \
CPPUNIT_ASSERT_THROW(expression, exceptionType)
diff --git a/tests/utility/filteredStreamTest.cpp b/tests/utility/filteredStreamTest.cpp
index 4a869c6e..76cb149b 100644
--- a/tests/utility/filteredStreamTest.cpp
+++ b/tests/utility/filteredStreamTest.cpp
@@ -35,6 +35,8 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
VMIME_TEST(testStopSequenceFilteredInputStream1)
VMIME_TEST(testStopSequenceFilteredInputStreamN_2)
VMIME_TEST(testStopSequenceFilteredInputStreamN_3)
+ VMIME_TEST(testLFToCRLFFilteredOutputStream_Global)
+ VMIME_TEST(testLFToCRLFFilteredOutputStream_Edge)
VMIME_TEST_LIST_END
@@ -276,5 +278,43 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
testStopSequenceFISHelper <3>("24", "xyz", "", "x", "y", "z");
}
+
+ // LFToCRLFFilteredOutputStream
+
+ void testLFToCRLFFilteredOutputStream_Global()
+ {
+ typedef vmime::utility::LFToCRLFFilteredOutputStream FILTER;
+
+ testFilteredOutputStreamHelper<FILTER>("1", "ABC\r\nDEF", "ABC\nDEF");
+ testFilteredOutputStreamHelper<FILTER>("2", "ABC\r\nDEF", "ABC\rDEF");
+ testFilteredOutputStreamHelper<FILTER>("3", "\r\n\r\nAB\r\n\r\nA\r\nB\r\n", "\n\nAB\n\nA\nB\n");
+ testFilteredOutputStreamHelper<FILTER>("4", "ABCDE\r\nF", "ABCDE\nF");
+ testFilteredOutputStreamHelper<FILTER>("5", "ABCDE\r\nF", "ABCDE\r\nF");
+ testFilteredOutputStreamHelper<FILTER>("6", "\r\n\r\n\r\n", "\n\n\n");
+ testFilteredOutputStreamHelper<FILTER>("7", "\r\n\r\n\r\n", "\r\r\n\n");
+ testFilteredOutputStreamHelper<FILTER>("8", "\r\n\r\n\r\n\r\n", "\r\r\r\r");
+ testFilteredOutputStreamHelper<FILTER>("9", "\r\n\r\n\r\n\r\n", "\n\n\n\n");
+ testFilteredOutputStreamHelper<FILTER>("10", "\r\n\r\n\r\n", "\r\n\n\n");
+ testFilteredOutputStreamHelper<FILTER>("11", "\r\n\r\n\r\n\r\n", "\n\n\n\r\n");
+ }
+
+ void testLFToCRLFFilteredOutputStream_Edge()
+ {
+ typedef vmime::utility::LFToCRLFFilteredOutputStream FILTER;
+
+ testFilteredOutputStreamHelper<FILTER>("1", "\r\n\r\n", "\r", "\r");
+ testFilteredOutputStreamHelper<FILTER>("2", "\r\n\r\n", "\r", "\n\r");
+ testFilteredOutputStreamHelper<FILTER>("3", "ABC\r\n\r\n", "ABC\r", "\n\r");
+ testFilteredOutputStreamHelper<FILTER>("4", "ABC\r\n\r\n\r\n", "ABC\r", "\n\r", "\n\n");
+ testFilteredOutputStreamHelper<FILTER>("5", "\r\n\r\n", "\n", "\n");
+ testFilteredOutputStreamHelper<FILTER>("6", "\r\n\r\n", "\r\n\r\n");
+ testFilteredOutputStreamHelper<FILTER>("7", "\r\n\r\n", "\r\n\r", "\n");
+
+ testFilteredOutputStreamHelper<FILTER>("8", "A\r\nB\r\nC\r\nD", "A\rB", "\nC\r\nD");
+ testFilteredOutputStreamHelper<FILTER>("9", "\r\nA\r\nB\r\nC\r\nD", "\rA\r", "B\nC\r\nD");
+ testFilteredOutputStreamHelper<FILTER>("10", "\r\nA\r\nB\r\nC\r\nD", "\nA\r", "B\nC\r\nD");
+ testFilteredOutputStreamHelper<FILTER>("11", "\r\nA\r\nB\r\nC\r\nD\r\n", "\nA\rB", "\nC\r\nD\r");
+ }
+
VMIME_TEST_SUITE_END