diff options
author | Vincent Richard <[email protected]> | 2013-06-20 09:02:39 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2013-06-20 09:02:39 +0000 |
commit | eee80fc81e007baacbce80afe55e69a52bcfd1f6 (patch) | |
tree | 4ed1aeecac70ef7ab614f2956e306bbc427fe837 /tests/testUtils.cpp | |
parent | Moved SMTP connection-related things to SMTPConnection object. (diff) | |
download | vmime-eee80fc81e007baacbce80afe55e69a52bcfd1f6.tar.gz vmime-eee80fc81e007baacbce80afe55e69a52bcfd1f6.zip |
Added support for CHUNKING SMTP extension (RFC-3030). More robust unit tests for SMTP.
Diffstat (limited to 'tests/testUtils.cpp')
-rw-r--r-- | tests/testUtils.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
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 <size_type>(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 |