aboutsummaryrefslogtreecommitdiffstats
path: root/tests/utility
diff options
context:
space:
mode:
Diffstat (limited to 'tests/utility')
-rw-r--r--tests/utility/filteredStreamTest.cpp14
-rw-r--r--tests/utility/outputStreamByteArrayAdapterTest.cpp2
-rw-r--r--tests/utility/outputStreamSocketAdapterTest.cpp2
-rw-r--r--tests/utility/outputStreamStringAdapterTest.cpp10
-rw-r--r--tests/utility/seekableInputStreamRegionAdapterTest.cpp29
-rw-r--r--tests/utility/stringProxyTest.cpp32
-rw-r--r--tests/utility/stringUtilsTest.cpp43
7 files changed, 87 insertions, 45 deletions
diff --git a/tests/utility/filteredStreamTest.cpp b/tests/utility/filteredStreamTest.cpp
index 76cb149b..ec1fc66a 100644
--- a/tests/utility/filteredStreamTest.cpp
+++ b/tests/utility/filteredStreamTest.cpp
@@ -24,6 +24,7 @@
#include "tests/testUtils.hpp"
#include "vmime/utility/filteredStream.hpp"
+#include "vmime/utility/stringUtils.hpp"
VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
@@ -45,7 +46,7 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
private:
std::vector <std::string> m_chunks;
- std::vector <std::string>::size_type m_index;
+ size_t m_index;
public:
@@ -56,7 +57,7 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
bool eof() const { return (m_index >= m_chunks.size()); }
void reset() { m_index = 0; }
- size_type read(value_type* const data, const size_type /* count */)
+ vmime::size_t read(vmime::byte_t* const data, const vmime::size_t /* count */)
{
if (eof())
return 0;
@@ -72,7 +73,7 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
return chunk.length();
}
- size_type skip(const size_type /* count */)
+ vmime::size_t skip(const vmime::size_t /* count */)
{
// Not supported
return 0;
@@ -82,15 +83,14 @@ VMIME_TEST_SUITE_BEGIN(filteredStreamTest)
const std::string readWhole(vmime::utility::inputStream& is)
{
- vmime::utility::stream::value_type buffer[256];
+ vmime::byte_t buffer[256];
std::string whole;
while (!is.eof())
{
- const vmime::utility::stream::size_type read =
- is.read(buffer, sizeof(buffer));
+ const vmime::size_t read = is.read(buffer, sizeof(buffer));
- whole += std::string(buffer, read);
+ whole += vmime::utility::stringUtils::makeStringFromBytes(buffer, read);
}
return (whole);
diff --git a/tests/utility/outputStreamByteArrayAdapterTest.cpp b/tests/utility/outputStreamByteArrayAdapterTest.cpp
index 93e49fa1..b14d0a39 100644
--- a/tests/utility/outputStreamByteArrayAdapterTest.cpp
+++ b/tests/utility/outputStreamByteArrayAdapterTest.cpp
@@ -52,7 +52,7 @@ VMIME_TEST_SUITE_BEGIN(outputStreamByteArrayAdapterTest)
void testWriteBinary()
{
- const vmime::string::value_type binaryData[] =
+ const char binaryData[] =
"\xc5\x9a\xc3\xb8\xc9\xb1\xc9\x9b\x20\xc9\x93\xc9\xa8\xc9\xb2\xc9"
"\x91\xc5\x95\xc9\xa3\x20\xc9\x96\xc9\x90\xca\x88\xc9\x92";
diff --git a/tests/utility/outputStreamSocketAdapterTest.cpp b/tests/utility/outputStreamSocketAdapterTest.cpp
index 417eff8b..4920a75c 100644
--- a/tests/utility/outputStreamSocketAdapterTest.cpp
+++ b/tests/utility/outputStreamSocketAdapterTest.cpp
@@ -51,7 +51,7 @@ VMIME_TEST_SUITE_BEGIN(outputStreamSocketAdapterTest)
void testWriteBinary()
{
- const vmime::string::value_type binaryData[] =
+ const char binaryData[] =
"\xc5\x9a\xc3\xb8\xc9\xb1\xc9\x9b\x20\xc9\x93\xc9\xa8\xc9\xb2\xc9"
"\x91\xc5\x95\xc9\xa3\x20\xc9\x96\xc9\x90\xca\x88\xc9\x92";
diff --git a/tests/utility/outputStreamStringAdapterTest.cpp b/tests/utility/outputStreamStringAdapterTest.cpp
index 71ab9b38..1cd3b3a0 100644
--- a/tests/utility/outputStreamStringAdapterTest.cpp
+++ b/tests/utility/outputStreamStringAdapterTest.cpp
@@ -43,16 +43,18 @@ VMIME_TEST_SUITE_BEGIN(outputStreamStringAdapterTest)
stream << "additional data";
stream.flush();
- VASSERT_EQ("Write 1", "initial dataadditional data", str);
+ VASSERT_EQ("Write 1 len", 27, str.length());
+ VASSERT_EQ("Write 1 data", "initial dataadditional data", str);
- stream.write("more data", 9);
+ stream.write("more data");
- VASSERT_EQ("Write 2", "initial dataadditional datamore data", str);
+ VASSERT_EQ("Write 2 len", 36, str.length());
+ VASSERT_EQ("Write 2 data", "initial dataadditional datamore data", str);
}
void testWriteBinary()
{
- const vmime::string::value_type binaryData[] =
+ const vmime::byte_t binaryData[] =
"\xc5\x9a\xc3\xb8\xc9\xb1\xc9\x9b\x20\xc9\x93\xc9\xa8\xc9\xb2\xc9"
"\x91\xc5\x95\xc9\xa3\x20\xc9\x96\xc9\x90\xca\x88\xc9\x92";
diff --git a/tests/utility/seekableInputStreamRegionAdapterTest.cpp b/tests/utility/seekableInputStreamRegionAdapterTest.cpp
index 1c33c056..d62e062f 100644
--- a/tests/utility/seekableInputStreamRegionAdapterTest.cpp
+++ b/tests/utility/seekableInputStreamRegionAdapterTest.cpp
@@ -25,6 +25,7 @@
#include "vmime/utility/inputStreamStringAdapter.hpp"
#include "vmime/utility/seekableInputStreamRegionAdapter.hpp"
+#include "vmime/utility/stringUtils.hpp"
using namespace vmime::utility;
@@ -88,14 +89,15 @@ VMIME_TEST_SUITE_BEGIN(seekableInputStreamRegionAdapterTest)
stream->seek(5);
- stream::value_type buffer[100];
+ vmime::byte_t buffer[100];
std::fill(vmime::begin(buffer), vmime::end(buffer), 0);
- stream::size_type read = stream->read(buffer, 6);
+ vmime::size_t read = stream->read(buffer, 6);
VASSERT_EQ("Pos", 11, stream->getPosition());
VASSERT_EQ("Read", 6, read);
VASSERT_TRUE("EOF", stream->eof());
- VASSERT_EQ("Buffer", "BUFFER", vmime::string(buffer, 0, 6));
+ VASSERT_EQ("Buffer", "BUFFER",
+ vmime::utility::stringUtils::makeStringFromBytes(buffer, 6));
}
void testSkip()
@@ -107,14 +109,15 @@ VMIME_TEST_SUITE_BEGIN(seekableInputStreamRegionAdapterTest)
VASSERT_EQ("Pos 1", 5, stream->getPosition());
VASSERT_FALSE("EOF 1", stream->eof());
- stream::value_type buffer[100];
+ vmime::byte_t buffer[100];
std::fill(vmime::begin(buffer), vmime::end(buffer), 0);
- stream::size_type read = stream->read(buffer, 3);
+ vmime::size_t read = stream->read(buffer, 3);
VASSERT_EQ("Pos 2", 8, stream->getPosition());
VASSERT_EQ("Read", 3, read);
VASSERT_FALSE("EOF 2", stream->eof());
- VASSERT_EQ("Buffer", "BUF", vmime::string(buffer, 0, 3));
+ VASSERT_EQ("Buffer", "BUF",
+ vmime::utility::stringUtils::makeStringFromBytes(buffer, 3));
stream->skip(50);
@@ -143,16 +146,18 @@ VMIME_TEST_SUITE_BEGIN(seekableInputStreamRegionAdapterTest)
stream->seek(5);
- stream::value_type buffer1[100];
+ vmime::byte_t buffer1[100];
std::fill(vmime::begin(buffer1), vmime::end(buffer1), 0);
- stream::size_type read = ustream->read(buffer1, 7);
+ vmime::size_t read = ustream->read(buffer1, 7);
- stream::value_type buffer2[100];
+ vmime::byte_t buffer2[100];
std::fill(vmime::begin(buffer2), vmime::end(buffer2), 0);
- stream::size_type read2 = stream->read(buffer2, 6);
+ vmime::size_t read2 = stream->read(buffer2, 6);
- VASSERT_EQ("Buffer 1", "THIS IS", vmime::string(buffer1, 0, 7));
- VASSERT_EQ("Buffer 2", "BUFFER", vmime::string(buffer2, 0, 6));
+ VASSERT_EQ("Buffer 1", "THIS IS",
+ vmime::utility::stringUtils::makeStringFromBytes(buffer1, 7));
+ VASSERT_EQ("Buffer 2", "BUFFER",
+ vmime::utility::stringUtils::makeStringFromBytes(buffer2, 6));
// ...but the underlying stream position is affected by read operations
// from the region adapter (FIXME?)
diff --git a/tests/utility/stringProxyTest.cpp b/tests/utility/stringProxyTest.cpp
index 0d888f6a..d6513681 100644
--- a/tests/utility/stringProxyTest.cpp
+++ b/tests/utility/stringProxyTest.cpp
@@ -45,9 +45,9 @@ VMIME_TEST_SUITE_BEGIN(stringProxyTest)
{
vmime::utility::stringProxy s;
- VASSERT_EQ("1", static_cast <vmime::utility::stringProxy::size_type>(0), s.length());
- VASSERT_EQ("2", static_cast <vmime::utility::stringProxy::size_type>(0), s.start());
- VASSERT_EQ("3", static_cast <vmime::utility::stringProxy::size_type>(0), s.end());
+ VASSERT_EQ("1", static_cast <vmime::size_t>(0), s.length());
+ VASSERT_EQ("2", static_cast <vmime::size_t>(0), s.start());
+ VASSERT_EQ("3", static_cast <vmime::size_t>(0), s.end());
}
void testConstruct2()
@@ -57,20 +57,20 @@ VMIME_TEST_SUITE_BEGIN(stringProxyTest)
vmime::utility::stringProxy s1(str);
VASSERT_EQ("1", str.length(), s1.length());
- VASSERT_EQ("2", static_cast <vmime::utility::stringProxy::size_type>(0), s1.start());
+ VASSERT_EQ("2", static_cast <vmime::size_t>(0), s1.start());
VASSERT_EQ("3", str.length(), s1.end());
vmime::utility::stringProxy s2(str, 10);
VASSERT_EQ("4", str.length() - 10, s2.length());
- VASSERT_EQ("5", static_cast <vmime::utility::stringProxy::size_type>(10), s2.start());
+ VASSERT_EQ("5", static_cast <vmime::size_t>(10), s2.start());
VASSERT_EQ("6", str.length(), s2.end());
vmime::utility::stringProxy s3(str, 10, 14);
- VASSERT_EQ("7", static_cast <vmime::utility::stringProxy::size_type>(4), s3.length());
- VASSERT_EQ("8", static_cast <vmime::utility::stringProxy::size_type>(10), s3.start());
- VASSERT_EQ("9", static_cast <vmime::utility::stringProxy::size_type>(14), s3.end());
+ VASSERT_EQ("7", static_cast <vmime::size_t>(4), s3.length());
+ VASSERT_EQ("8", static_cast <vmime::size_t>(10), s3.start());
+ VASSERT_EQ("9", static_cast <vmime::size_t>(14), s3.end());
VASSERT_EQ("10", 't', *s3.it_begin());
VASSERT_EQ("11", 'e', *(s3.it_begin() + 1));
@@ -85,9 +85,9 @@ VMIME_TEST_SUITE_BEGIN(stringProxyTest)
s.detach();
- VASSERT_EQ("1", static_cast <vmime::utility::stringProxy::size_type>(0), s.length());
- VASSERT_EQ("2", static_cast <vmime::utility::stringProxy::size_type>(0), s.start());
- VASSERT_EQ("3", static_cast <vmime::utility::stringProxy::size_type>(0), s.end());
+ VASSERT_EQ("1", static_cast <vmime::size_t>(0), s.length());
+ VASSERT_EQ("2", static_cast <vmime::size_t>(0), s.start());
+ VASSERT_EQ("3", static_cast <vmime::size_t>(0), s.end());
}
void testSet()
@@ -98,22 +98,22 @@ VMIME_TEST_SUITE_BEGIN(stringProxyTest)
s1.set(str);
VASSERT_EQ("1", str.length(), s1.length());
- VASSERT_EQ("2", static_cast <vmime::utility::stringProxy::size_type>(0), s1.start());
+ VASSERT_EQ("2", static_cast <vmime::size_t>(0), s1.start());
VASSERT_EQ("3", str.length(), s1.end());
vmime::utility::stringProxy s2;
s2.set(str, 10);
VASSERT_EQ("4", str.length() - 10, s2.length());
- VASSERT_EQ("5", static_cast <vmime::utility::stringProxy::size_type>(10), s2.start());
+ VASSERT_EQ("5", static_cast <vmime::size_t>(10), s2.start());
VASSERT_EQ("6", str.length(), s2.end());
vmime::utility::stringProxy s3;
s3.set(str, 10, 14);
- VASSERT_EQ("7", static_cast <vmime::utility::stringProxy::size_type>(4), s3.length());
- VASSERT_EQ("8", static_cast <vmime::utility::stringProxy::size_type>(10), s3.start());
- VASSERT_EQ("9", static_cast <vmime::utility::stringProxy::size_type>(14), s3.end());
+ VASSERT_EQ("7", static_cast <vmime::size_t>(4), s3.length());
+ VASSERT_EQ("8", static_cast <vmime::size_t>(10), s3.start());
+ VASSERT_EQ("9", static_cast <vmime::size_t>(14), s3.end());
VASSERT_EQ("10", 't', *s3.it_begin());
VASSERT_EQ("11", 'e', *(s3.it_begin() + 1));
diff --git a/tests/utility/stringUtilsTest.cpp b/tests/utility/stringUtilsTest.cpp
index efd623db..a21c2742 100644
--- a/tests/utility/stringUtilsTest.cpp
+++ b/tests/utility/stringUtilsTest.cpp
@@ -29,6 +29,9 @@
VMIME_TEST_SUITE_BEGIN(stringUtilsTest)
VMIME_TEST_LIST_BEGIN
+ VMIME_TEST(testMakeStringFromBytes)
+ VMIME_TEST(testAppendBytesToString)
+
VMIME_TEST(testIsStringEqualNoCase1)
VMIME_TEST(testIsStringEqualNoCase2)
VMIME_TEST(testIsStringEqualNoCase3)
@@ -46,6 +49,38 @@ VMIME_TEST_SUITE_BEGIN(stringUtilsTest)
typedef vmime::utility::stringUtils stringUtils;
+ void testMakeStringFromBytes()
+ {
+ vmime::byte_t bytes[] = { 0x12, 0x34, 0x56, 0x78 };
+ vmime::string str = vmime::utility::stringUtils::makeStringFromBytes(bytes, 3);
+
+ VASSERT_EQ("length", 3, str.length());
+ VASSERT_EQ("byte1", '\x12', str[0]);
+ VASSERT_EQ("byte2", '\x34', str[1]);
+ VASSERT_EQ("byte3", '\x56', str[2]);
+ }
+
+ void testAppendBytesToString()
+ {
+ vmime::byte_t bytes[] = { 0x42, 0x56, 0x12, 0x00, 'f', 'o', 'o' };
+
+ vmime::string str = "test";
+ vmime::utility::stringUtils::appendBytesToString(str, bytes, 7);
+
+ VASSERT_EQ("length", 4 + 7, str.length());
+ VASSERT_EQ("byte1", 't', str[0]);
+ VASSERT_EQ("byte2", 'e', str[1]);
+ VASSERT_EQ("byte3", 's', str[2]);
+ VASSERT_EQ("byte4", 't', str[3]);
+ VASSERT_EQ("byte5", '\x42', str[4]);
+ VASSERT_EQ("byte6", '\x56', str[5]);
+ VASSERT_EQ("byte7", '\x12', str[6]);
+ VASSERT_EQ("byte8", '\0', str[7]);
+ VASSERT_EQ("byte9", 'f', str[8]);
+ VASSERT_EQ("byte10", 'o', str[9]);
+ VASSERT_EQ("byte11", 'o', str[10]);
+ }
+
void testIsStringEqualNoCase1()
{
VASSERT_EQ("1", true, stringUtils::isStringEqualNoCase(vmime::string("foo"), "foo", 3));
@@ -101,19 +136,19 @@ VMIME_TEST_SUITE_BEGIN(stringUtilsTest)
void testCountASCIIChars()
{
vmime::string str1("foo");
- VASSERT_EQ("1", static_cast <vmime::string::size_type>(3),
+ VASSERT_EQ("1", static_cast <vmime::size_t>(3),
stringUtils::countASCIIchars(str1.begin(), str1.end()));
vmime::string str2("f=?oo");
- VASSERT_EQ("2", static_cast <vmime::string::size_type>(3 + 1),
+ VASSERT_EQ("2", static_cast <vmime::size_t>(3 + 1),
stringUtils::countASCIIchars(str2.begin(), str2.end()));
vmime::string str3("foo\x7f");
- VASSERT_EQ("3", static_cast <vmime::string::size_type>(4),
+ VASSERT_EQ("3", static_cast <vmime::size_t>(4),
stringUtils::countASCIIchars(str3.begin(), str3.end()));
vmime::string str4("foo\x80");
- VASSERT_EQ("4", static_cast <vmime::string::size_type>(3),
+ VASSERT_EQ("4", static_cast <vmime::size_t>(3),
stringUtils::countASCIIchars(str4.begin(), str4.end()));
}