aboutsummaryrefslogtreecommitdiffstats
path: root/tests/parser/parameterTest.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2018-09-05 21:54:48 +0000
committerVincent Richard <[email protected]>2018-09-05 21:54:48 +0000
commitb55bdc9c0bb68236aa2de0a8eaec9f4c80cc2769 (patch)
treeefa18d623d3bc67c41d643aae145c16aa8f1006d /tests/parser/parameterTest.cpp
parentMerge pull request #198 from xguerin/master (diff)
downloadvmime-b55bdc9c0bb68236aa2de0a8eaec9f4c80cc2769.tar.gz
vmime-b55bdc9c0bb68236aa2de0a8eaec9f4c80cc2769.zip
Code style and clarity.
Diffstat (limited to 'tests/parser/parameterTest.cpp')
-rw-r--r--tests/parser/parameterTest.cpp335
1 files changed, 215 insertions, 120 deletions
diff --git a/tests/parser/parameterTest.cpp b/tests/parser/parameterTest.cpp
index 0cf2099f..464c3059 100644
--- a/tests/parser/parameterTest.cpp
+++ b/tests/parser/parameterTest.cpp
@@ -1,6 +1,6 @@
//
// VMime library (http://www.vmime.org)
-// Copyright (C) 2002-2013 Vincent Richard <[email protected]>
+// Copyright (C) 2002 Vincent Richard <[email protected]>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
@@ -45,12 +45,12 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
// HACK: parameterizedHeaderField constructor is private
- class parameterizedHeaderField : public vmime::parameterizedHeaderField
- {
+ class parameterizedHeaderField : public vmime::parameterizedHeaderField {
+
public:
- parameterizedHeaderField()
- {
+ parameterizedHeaderField() {
+
setName("F");
setValue(vmime::headerFieldFactory::getInstance()->createValue(getName()));
setValue(vmime::word("X"));
@@ -58,15 +58,17 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
using vmime::parameterizedHeaderField::generate;
- const vmime::string generate
- (const vmime::generationContext::EncodedParameterValueModes genMode,
- const vmime::size_t maxLineLength = 0) const
- {
+ const vmime::string generate(
+ const vmime::generationContext::EncodedParameterValueModes genMode,
+ const vmime::size_t maxLineLength = 0
+ ) const {
+
vmime::generationContext ctx(vmime::generationContext::getDefaultContext());
ctx.setEncodedParameterValueMode(genMode);
- if (maxLineLength != 0)
+ if (maxLineLength != 0) {
ctx.setMaxLineLength(maxLineLength);
+ }
std::ostringstream oss;
vmime::utility::outputStreamAdapter adapter(oss);
@@ -78,15 +80,17 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
};
- const vmime::string generateParameter
- (const vmime::parameter& param,
- const vmime::generationContext& ctx,
- const vmime::size_t maxLineLength = 0) const
- {
+ const vmime::string generateParameter(
+ const vmime::parameter& param,
+ const vmime::generationContext& ctx,
+ const vmime::size_t maxLineLength = 0
+ ) const {
+
vmime::generationContext ctx2(ctx);
- if (maxLineLength != 0)
+ if (maxLineLength != 0) {
ctx2.setMaxLineLength(maxLineLength);
+ }
std::ostringstream oss;
vmime::utility::outputStreamAdapter adapter(oss);
@@ -108,29 +112,26 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
(p.getParameterAt(n)->getValue().getBuffer())
- void setUp()
- {
+ void setUp() {
+
// Set the global C and C++ locale to the user-configured locale.
// The locale should use UTF-8 encoding for these tests to run successfully.
- try
- {
+ try {
std::locale::global(std::locale(""));
- }
- catch (std::exception &)
- {
+ } catch (std::exception &) {
std::setlocale(LC_ALL, "");
}
}
- void tearDown()
- {
+ void tearDown() {
+
// Restore default locale
std::locale::global(std::locale("C"));
}
- void testParse()
- {
+ void testParse() {
+
// Simple parameter
parameterizedHeaderField p1;
p1.parse("X; param1=value1;\r\n");
@@ -141,9 +142,11 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
// Multi-section parameters (1/2)
parameterizedHeaderField p2a;
- p2a.parse("X; param1=value1;\r\n"
- " param2*0=\"val\";\r\n"
- " param2*1=\"ue2\";");
+ p2a.parse(
+ "X; param1=value1;\r\n"
+ " param2*0=\"val\";\r\n"
+ " param2*1=\"ue2\";"
+ );
VASSERT_EQ("2a.1", 2, p2a.getParameterCount());
VASSERT_EQ("2a.2", "param1", PARAM_NAME(p2a, 0));
@@ -153,10 +156,12 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
// Multi-section parameters (2/2)
parameterizedHeaderField p2b;
- p2b.parse("X; param1=value1;\r\n"
- " param2=\"should be ignored\";\r\n"
- " param2*0=\"val\";\r\n"
- " param2*1=\"ue2\";");
+ p2b.parse(
+ "X; param1=value1;\r\n"
+ " param2=\"should be ignored\";\r\n"
+ " param2*0=\"val\";\r\n"
+ " param2*1=\"ue2\";"
+ );
VASSERT_EQ("2b.1", 2, p2b.getParameterCount());
VASSERT_EQ("2b.2", "param1", PARAM_NAME(p2b, 0));
@@ -206,13 +211,15 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
VASSERT_EQ("7.3", "this is a slash: \"\\\"", PARAM_VALUE(p7, 0));
}
- void testParseRFC2231()
- {
+ void testParseRFC2231() {
+
// Extended parameter with charset specified in more than one
// section (this is forbidden by RFC, but is should not fail)
parameterizedHeaderField p1;
- p1.parse("X; param1*0*=charset1'language1'value1;\r\n"
- " param1*1*=charset2'language2'value2;");
+ p1.parse(
+ "X; param1*0*=charset1'language1'value1;\r\n"
+ " param1*1*=charset2'language2'value2;"
+ );
VASSERT_EQ("1.1", 1, p1.getParameterCount());
VASSERT_EQ("1.2", "param1", PARAM_NAME(p1, 0));
@@ -222,8 +229,10 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
// Charset not specified in the first section (that is not encoded),
// but specified in the second one (legal)
parameterizedHeaderField p2;
- p2.parse("X; param1*0=value1;\r\n"
- " param1*1*=charset'language'value2;");
+ p2.parse(
+ "X; param1*0=value1;\r\n"
+ " param1*1*=charset'language'value2;"
+ );
VASSERT_EQ("2.1", 1, p2.getParameterCount());
VASSERT_EQ("2.2", "param1", PARAM_NAME(p2, 0));
@@ -241,9 +250,11 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
// Multiple sections + charset specified and encoding
parameterizedHeaderField p4;
- p4.parse("X; param1*0*=charset'language'value1a%20;"
- " param1*1*=value1b%20;"
- " param1*2=value1c");
+ p4.parse(
+ "X; param1*0*=charset'language'value1a%20;"
+ " param1*1*=value1b%20;"
+ " param1*2=value1c"
+ );
VASSERT_EQ("4.1", 1, p4.getParameterCount());
VASSERT_EQ("4.2", "param1", PARAM_NAME(p4, 0));
@@ -270,8 +281,8 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
VASSERT_EQ("6.5", "This is ***fun***", PARAM_BUFFER(p6, 0));
}
- void testGenerate()
- {
+ void testGenerate() {
+
// Simple parameter/value
parameterizedHeaderField p1;
p1.appendParameter(vmime::make_shared <vmime::parameter>("param1", "value1"));
@@ -291,8 +302,8 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
VASSERT_EQ("2b", "F: X; param1=\"va\\\\lue\\\"1\"", p2b.generate());
}
- void testGetGeneratedSize()
- {
+ void testGetGeneratedSize() {
+
vmime::generationContext ctx(vmime::generationContext::getDefaultContext());
vmime::parameter p1("param1", "value1");
@@ -305,40 +316,70 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
VASSERT("1", p2b.getGeneratedSize(ctx) >= generateParameter(p2b, ctx).length());
}
- void testGenerateRFC2231()
- {
+ void testGenerateRFC2231() {
+
// Extended parameter with charset specifier
parameterizedHeaderField p1;
- p1.appendParameter(vmime::make_shared <vmime::parameter>("param1",
- vmime::word("value 1\xe9", vmime::charset("charset"))));
+ p1.appendParameter(
+ vmime::make_shared <vmime::parameter>(
+ "param1",
+ vmime::word("value 1\xe9", vmime::charset("charset"))
+ )
+ );
- VASSERT_EQ("1.no-encoding", "F: X; param1=\"value 1\"",
- p1.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING));
+ VASSERT_EQ(
+ "1.no-encoding",
+ "F: X; param1=\"value 1\"",
+ p1.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING)
+ );
- VASSERT_EQ("1.rfc2047", "F: X; param1=\"=?charset?Q?value_1=E9?=\"",
- p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY));
+ VASSERT_EQ(
+ "1.rfc2047",
+ "F: X; param1=\"=?charset?Q?value_1=E9?=\"",
+ p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY)
+ );
- VASSERT_EQ("1.rfc2231", "F: X; param1*=charset''value%201%E9",
- p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY));
+ VASSERT_EQ(
+ "1.rfc2231",
+ "F: X; param1*=charset''value%201%E9",
+ p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY)
+ );
- VASSERT_EQ("1.both", "F: X; param1=\"=?charset?Q?value_1=E9?=\";param1*=charset''value%201%E9",
- p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047));
+ VASSERT_EQ(
+ "1.both",
+ "F: X; param1=\"=?charset?Q?value_1=E9?=\";param1*=charset''value%201%E9",
+ p1.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047)
+ );
// Value that spans on multiple lines
parameterizedHeaderField p2;
- p2.appendParameter(vmime::make_shared <vmime::parameter>("param1",
- vmime::word("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
- vmime::charset("charset"))));
+ p2.appendParameter(
+ vmime::make_shared <vmime::parameter>(
+ "param1",
+ vmime::word(
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
+ vmime::charset("charset")
+ )
+ )
+ );
- VASSERT_EQ("2.no-encoding", "F: X; \r\n "
+ VASSERT_EQ(
+ "2.no-encoding",
+ "F: X; \r\n "
"param1=abcdefghijkl",
- p2.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING, 25)); // max line length = 25
+ p2.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING, 25) // max line length = 25
+ );
- VASSERT_EQ("2.rfc2047", "F: X; \r\n "
+ VASSERT_EQ(
+ "2.rfc2047",
+ "F: X; \r\n "
"param1=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
- p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY, 25)); // max line length = 25
+ p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY, 25) // max line length = 25
+ );
- VASSERT_EQ("2.rfc2231", "F: X; \r\n "
+ VASSERT_EQ(
+ "2.rfc2231",
+ "F: X; \r\n "
"param1*0*=charset''abc;\r\n "
"param1*1*=defghijkl;\r\n "
"param1*2*=mnopqrstu;\r\n "
@@ -346,9 +387,12 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
"param1*4*=EFGHIJKLM;\r\n "
"param1*5*=NOPQRSTUV;\r\n "
"param1*6*=WXYZ",
- p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY, 25)); // max line length = 25
+ p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY, 25) // max line length = 25
+ );
- VASSERT_EQ("2.both", "F: X; \r\n "
+ VASSERT_EQ(
+ "2.both",
+ "F: X; \r\n "
"param1=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;\r\n "
"param1*0*=charset''abc;\r\n "
"param1*1*=defghijkl;\r\n "
@@ -357,26 +401,41 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
"param1*4*=EFGHIJKLM;\r\n "
"param1*5*=NOPQRSTUV;\r\n "
"param1*6*=WXYZ",
- p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047, 25)); // max line length = 25
+ p2.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047, 25) // max line length = 25
+ );
// Non-ASCII parameter value
parameterizedHeaderField p3;
- p3.appendParameter(vmime::make_shared <vmime::parameter>("param1",
- vmime::word("δσσσσσσσσσσσσσσσσσσσσδσδα δσαδσδσαδσαδασδασ δσαδασδσα δσαδασδσα δασδασδασ δασαχφδδσα 2008.doc",
- vmime::charset("utf-8"))));
+ p3.appendParameter(
+ vmime::make_shared <vmime::parameter>(
+ "param1",
+ vmime::word(
+ "δσσσσσσσσσσσσσσσσσσσσδσδα δσαδσδσαδσαδασδασ δσαδασδσα δσαδασδσα δασδασδασ δασαχφδδσα 2008.doc",
+ vmime::charset("utf-8")
+ )
+ )
+ );
- VASSERT_EQ("3.no-encoding", "F: X; \r\n "
+ VASSERT_EQ(
+ "3.no-encoding",
+ "F: X; \r\n "
"param1=\" 2008.doc\"",
- p3.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING, 80)); // max line length = 80
+ p3.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING, 80) // max line length = 80
+ );
- VASSERT_EQ("3.7bit-only", "F: X; \r\n "
+ VASSERT_EQ(
+ "3.7bit-only",
+ "F: X; \r\n "
"param1=\"=?utf-8?B?zrTPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+DzrTPg860?=\r\n "
"=?utf-8?B?zrEgzrTPg86xzrTPg860z4POsc60z4POsc60zrHPg860zrHPgyDOtM+DzrHOtM6x?=\r\n "
"=?utf-8?B?z4POtM+DzrEgzrTPg86xzrTOsc+DzrTPg86xIM60zrHPg860zrHPg860zrHPgyDOtA==?=\r\n "
"=?utf-8?B?zrHPg86xz4fPhs60zrTPg86xIDIwMDguZG9j?=\"",
- p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY, 80)); // max line length = 80
+ p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY, 80) // max line length = 80
+ );
- VASSERT_EQ("3.both", "F: X; \r\n "
+ VASSERT_EQ(
+ "3.both",
+ "F: X; \r\n "
"param1=\"=?utf-8?B?zrTPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+Dz4PPg8+DzrTPg860?=\r\n "
"=?utf-8?B?zrEgzrTPg86xzrTPg860z4POsc60z4POsc60zrHPg860zrHPgyDOtM+DzrHOtM6x?=\r\n "
"=?utf-8?B?z4POtM+DzrEgzrTPg86xzrTOsc+DzrTPg86xIM60zrHPg860zrHPg860zrHPgyDOtA==?=\r\n "
@@ -389,9 +448,12 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
"param1*5*=%83%CE%B1%CE%B4%CE%B1%CF%83%CE%B4%CF%83%CE%B1%20%CE%B4%CE%B1%CF%83;\r\n "
"param1*6*=%CE%B4%CE%B1%CF%83%CE%B4%CE%B1%CF%83%20%CE%B4%CE%B1%CF%83%CE%B1%CF;\r\n "
"param1*7*=%87%CF%86%CE%B4%CE%B4%CF%83%CE%B1%202008.doc",
- p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047, 80)); // max line length = 80
+ p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047, 80) // max line length = 80
+ );
- VASSERT_EQ("3.either", "F: X; param1*0*=utf-8''%CE%B4%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83;\r\n "
+ VASSERT_EQ(
+ "3.either",
+ "F: X; param1*0*=utf-8''%CE%B4%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83;\r\n "
"param1*1*=%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83%CF%83;\r\n "
"param1*2*=%CE%B4%CF%83%CE%B4%CE%B1%20%CE%B4%CF%83%CE%B1%CE%B4%CF%83%CE%B4%CF;\r\n "
"param1*3*=%83%CE%B1%CE%B4%CF%83%CE%B1%CE%B4%CE%B1%CF%83%CE%B4%CE%B1%CF%83%20;\r\n "
@@ -399,47 +461,77 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
"param1*5*=%83%CE%B1%CE%B4%CE%B1%CF%83%CE%B4%CF%83%CE%B1%20%CE%B4%CE%B1%CF%83;\r\n "
"param1*6*=%CE%B4%CE%B1%CF%83%CE%B4%CE%B1%CF%83%20%CE%B4%CE%B1%CF%83%CE%B1%CF;\r\n "
"param1*7*=%87%CF%86%CE%B4%CE%B4%CF%83%CE%B1%202008.doc",
- p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY, 80)); // max line length = 80
+ p3.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY, 80) // max line length = 80
+ );
// No encoding needed
parameterizedHeaderField p4;
- p4.appendParameter(vmime::make_shared <vmime::parameter>("param1",
- vmime::word("va lue", vmime::charset("charset"))));
+ p4.appendParameter(
+ vmime::make_shared <vmime::parameter>(
+ "param1",
+ vmime::word("va lue", vmime::charset("charset"))
+ )
+ );
- VASSERT_EQ("4.no-encoding", "F: X; param1=\"va lue\"",
- p4.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING));
+ VASSERT_EQ(
+ "4.no-encoding",
+ "F: X; param1=\"va lue\"",
+ p4.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING)
+ );
- VASSERT_EQ("4.rfc2047", "F: X; param1=\"va lue\"",
- p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY));
+ VASSERT_EQ(
+ "4.rfc2047",
+ "F: X; param1=\"va lue\"",
+ p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY)
+ );
- VASSERT_EQ("4.rfc2231", "F: X; param1=\"va lue\"",
- p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY));
+ VASSERT_EQ(
+ "4.rfc2231",
+ "F: X; param1=\"va lue\"",
+ p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY)
+ );
- VASSERT_EQ("4.both", "F: X; param1=\"va lue\"",
- p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047));
+ VASSERT_EQ(
+ "4.both",
+ "F: X; param1=\"va lue\"",
+ p4.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047)
+ );
// Language specification
parameterizedHeaderField p5;
- p5.appendParameter(vmime::make_shared <vmime::parameter>("param1",
- vmime::word("This is ***fun***", vmime::charset("us-ascii"), "en-us")));
+ p5.appendParameter(
+ vmime::make_shared <vmime::parameter>("param1",
+ vmime::word("This is ***fun***", vmime::charset("us-ascii"), "en-us"))
+ );
- VASSERT_EQ("5.no-encoding", "F: X; param1=\"This is ***fun***\"",
- p5.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING));
+ VASSERT_EQ(
+ "5.no-encoding",
+ "F: X; param1=\"This is ***fun***\"",
+ p5.generate(vmime::generationContext::PARAMETER_VALUE_NO_ENCODING)
+ );
- VASSERT_EQ("5.rfc2047", "F: X; param1=\"=?us-ascii*en-us?Q?This_is_***fun***?=\"",
- p5.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY));
+ VASSERT_EQ(
+ "5.rfc2047",
+ "F: X; param1=\"=?us-ascii*en-us?Q?This_is_***fun***?=\"",
+ p5.generate(vmime::generationContext::PARAMETER_VALUE_RFC2047_ONLY)
+ );
- VASSERT_EQ("5.rfc2231", "F: X; param1*=us-ascii''This%20is%20***fun***",
- p5.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY));
+ VASSERT_EQ(
+ "5.rfc2231",
+ "F: X; param1*=us-ascii''This%20is%20***fun***",
+ p5.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_ONLY)
+ );
- VASSERT_EQ("5.both", "F: X; "
- "param1=\"=?us-ascii*en-us?Q?This_is_***fun***?=\";\r\n "
- "param1*=us-ascii''This%20is%20***fun***",
+ VASSERT_EQ(
+ "5.both",
+ "F: X; "
+ "param1=\"=?us-ascii*en-us?Q?This_is_***fun***?=\";\r\n "
+ "param1*=us-ascii''This%20is%20***fun***",
p5.generate(vmime::generationContext::PARAMETER_VALUE_RFC2231_AND_RFC2047));
}
- void testGetGeneratedSizeRFC2231()
- {
+ void testGetGeneratedSizeRFC2231() {
+
vmime::generationContext ctx(vmime::generationContext::getDefaultContext());
// Extended parameter with charset specifier
@@ -543,12 +635,12 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
VASSERT("5.both", p5.getGeneratedSize(ctx) >= generateParameter(p5, ctx).length());
}
- void testNonStandardEncodedParam()
- {
+ void testNonStandardEncodedParam() {
+
// This syntax is non-standard (expressly prohibited
// by RFC-2047), but is used by Mozilla:
//
- // Content-Type: image/png;
+ // Content-Type: image/png;
// name="=?us-ascii?Q?Logo_VMime=2Epng?="
parameterizedHeaderField p1;
@@ -567,8 +659,8 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
}
// Parse parameters with non-significant whitespaces
- void testParseNonSignificantWS()
- {
+ void testParseNonSignificantWS() {
+
parameterizedHeaderField p1;
p1.parse(" \t X \r\n");
@@ -584,8 +676,8 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
}
// Encode "tspecials"
- void testEncodeTSpecials()
- {
+ void testEncodeTSpecials() {
+
VASSERT_EQ(" 1", "p=\"val(ue\"", vmime::make_shared <vmime::parameter>("p", "val(ue")->generate());
VASSERT_EQ(" 2", "p=\"val)ue\"", vmime::make_shared <vmime::parameter>("p", "val)ue")->generate());
VASSERT_EQ(" 3", "p=\"val<ue\"", vmime::make_shared <vmime::parameter>("p", "val<ue")->generate());
@@ -604,16 +696,20 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
}
// http://sourceforge.net/projects/vmime/forums/forum/237356/topic/3812278
- void testEncodeTSpecialsInRFC2231()
- {
- VASSERT_EQ("1", "filename*=UTF-8''my_file_name_%C3%B6%C3%A4%C3%BC_%281%29.txt",
- vmime::make_shared <vmime::parameter>
- ("filename",
- vmime::word("my_file_name_\xc3\xb6\xc3\xa4\xc3\xbc_(1).txt", "UTF-8"))->generate());
+ void testEncodeTSpecialsInRFC2231() {
+
+ VASSERT_EQ(
+ "1",
+ "filename*=UTF-8''my_file_name_%C3%B6%C3%A4%C3%BC_%281%29.txt",
+ vmime::make_shared <vmime::parameter>(
+ "filename",
+ vmime::word("my_file_name_\xc3\xb6\xc3\xa4\xc3\xbc_(1).txt", "UTF-8")
+ )->generate()
+ );
}
- void testWhitespaceBreaksTheValue()
- {
+ void testWhitespaceBreaksTheValue() {
+
parameterizedHeaderField p;
p.parse("xxx yyy; param1=value1 \r\n");
@@ -624,4 +720,3 @@ VMIME_TEST_SUITE_BEGIN(parameterTest)
}
VMIME_TEST_SUITE_END
-