From eee80fc81e007baacbce80afe55e69a52bcfd1f6 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Thu, 20 Jun 2013 11:02:39 +0200 Subject: Added support for CHUNKING SMTP extension (RFC-3030). More robust unit tests for SMTP. --- tests/testUtils.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tests/testUtils.cpp') diff --git a/tests/testUtils.cpp b/tests/testUtils.cpp index cb6df133..93cb9e38 100644 --- a/tests/testUtils.cpp +++ b/tests/testUtils.cpp @@ -127,6 +127,42 @@ void testSocket::localReceive(vmime::string& buffer) } +bool testSocket::localReceiveLine(vmime::string& line) +{ + vmime::string::size_type eol; + + if ((eol = m_outBuffer.find('\n')) != vmime::string::npos) + { + line = vmime::string(m_outBuffer.begin(), m_outBuffer.begin() + eol); + + if (!line.empty() && line[line.length() - 1] == '\r') + line.erase(line.end() - 1, line.end()); + + m_outBuffer.erase(m_outBuffer.begin(), m_outBuffer.begin() + eol + 1); + + return true; + } + + return false; +} + + +testSocket::size_type testSocket::localReceiveRaw(char* buffer, const size_type count) +{ + const size_type received = std::min(count, static_cast (m_outBuffer.size())); + + if (received != 0) + { + if (buffer != NULL) + std::copy(m_outBuffer.begin(), m_outBuffer.begin() + received, buffer); + + m_outBuffer.erase(m_outBuffer.begin(), m_outBuffer.begin() + received); + } + + return received; +} + + void testSocket::onDataReceived() { // Override -- cgit v1.2.3