annotate 3rdparty/vmime/tests/parser/dispositionTest.cpp @ 0:a4671277546c tip

created the repository for the thymian project
author ferencd
date Tue, 17 Aug 2021 11:19:54 +0200
parents
children
rev   line source
ferencd@0 1 //
ferencd@0 2 // VMime library (http://www.vmime.org)
ferencd@0 3 // Copyright (C) 2002-2013 Vincent Richard <vincent@vmime.org>
ferencd@0 4 //
ferencd@0 5 // This program is free software; you can redistribute it and/or
ferencd@0 6 // modify it under the terms of the GNU General Public License as
ferencd@0 7 // published by the Free Software Foundation; either version 3 of
ferencd@0 8 // the License, or (at your option) any later version.
ferencd@0 9 //
ferencd@0 10 // This program is distributed in the hope that it will be useful,
ferencd@0 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
ferencd@0 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ferencd@0 13 // General Public License for more details.
ferencd@0 14 //
ferencd@0 15 // You should have received a copy of the GNU General Public License along
ferencd@0 16 // with this program; if not, write to the Free Software Foundation, Inc.,
ferencd@0 17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ferencd@0 18 //
ferencd@0 19 // Linking this library statically or dynamically with other modules is making
ferencd@0 20 // a combined work based on this library. Thus, the terms and conditions of
ferencd@0 21 // the GNU General Public License cover the whole combination.
ferencd@0 22 //
ferencd@0 23
ferencd@0 24 #include "tests/testUtils.hpp"
ferencd@0 25
ferencd@0 26
ferencd@0 27 VMIME_TEST_SUITE_BEGIN(dispositionTest)
ferencd@0 28
ferencd@0 29 VMIME_TEST_LIST_BEGIN
ferencd@0 30 VMIME_TEST(testParse)
ferencd@0 31 VMIME_TEST(testGenerate)
ferencd@0 32 VMIME_TEST(testModifiers)
ferencd@0 33 VMIME_TEST_LIST_END
ferencd@0 34
ferencd@0 35
ferencd@0 36 void testParse()
ferencd@0 37 {
ferencd@0 38 // disposition-mode ";" disposition-type
ferencd@0 39 // [ "/" disposition-modifier *( "," disposition-modifier ) ]
ferencd@0 40 //
ferencd@0 41 // disposition-mode = action-mode "/" sending-mode
ferencd@0 42
ferencd@0 43 vmime::disposition disp1;
ferencd@0 44 disp1.parse("mode");
ferencd@0 45
ferencd@0 46 VASSERT_EQ("1.1", "mode", disp1.getActionMode());
ferencd@0 47 VASSERT_EQ("1.2", "", disp1.getSendingMode());
ferencd@0 48 VASSERT_EQ("1.3", "", disp1.getType());
ferencd@0 49 VASSERT_EQ("1.4", 0, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 50
ferencd@0 51 vmime::disposition disp2;
ferencd@0 52 disp2.parse("amode/smode");
ferencd@0 53
ferencd@0 54 VASSERT_EQ("2.1", "amode", disp2.getActionMode());
ferencd@0 55 VASSERT_EQ("2.2", "smode", disp2.getSendingMode());
ferencd@0 56 VASSERT_EQ("2.3", "", disp2.getType());
ferencd@0 57 VASSERT_EQ("2.4", 0, static_cast <int>(disp2.getModifierList().size()));
ferencd@0 58
ferencd@0 59 vmime::disposition disp3;
ferencd@0 60 disp3.parse("amode/smode;type");
ferencd@0 61
ferencd@0 62 VASSERT_EQ("3.1", "amode", disp3.getActionMode());
ferencd@0 63 VASSERT_EQ("3.2", "smode", disp3.getSendingMode());
ferencd@0 64 VASSERT_EQ("3.3", "type", disp3.getType());
ferencd@0 65 VASSERT_EQ("3.4", 0, static_cast <int>(disp3.getModifierList().size()));
ferencd@0 66
ferencd@0 67 vmime::disposition disp4;
ferencd@0 68 disp4.parse("amode/smode;type/modif");
ferencd@0 69
ferencd@0 70 VASSERT_EQ("4.1", "amode", disp4.getActionMode());
ferencd@0 71 VASSERT_EQ("4.2", "smode", disp4.getSendingMode());
ferencd@0 72 VASSERT_EQ("4.3", "type", disp4.getType());
ferencd@0 73 VASSERT_EQ("4.4", 1, static_cast <int>(disp4.getModifierList().size()));
ferencd@0 74 VASSERT_EQ("4.5", "modif", disp4.getModifierList()[0]);
ferencd@0 75
ferencd@0 76 vmime::disposition disp5;
ferencd@0 77 disp5.parse("amode/smode;type/modif1,modif2");
ferencd@0 78
ferencd@0 79 VASSERT_EQ("5.1", "amode", disp5.getActionMode());
ferencd@0 80 VASSERT_EQ("5.2", "smode", disp5.getSendingMode());
ferencd@0 81 VASSERT_EQ("5.3", "type", disp5.getType());
ferencd@0 82 VASSERT_EQ("5.4", 2, static_cast <int>(disp5.getModifierList().size()));
ferencd@0 83 VASSERT_EQ("5.5", "modif1", disp5.getModifierList()[0]);
ferencd@0 84 VASSERT_EQ("5.6", "modif2", disp5.getModifierList()[1]);
ferencd@0 85 }
ferencd@0 86
ferencd@0 87 void testGenerate()
ferencd@0 88 {
ferencd@0 89 vmime::disposition disp;
ferencd@0 90
ferencd@0 91 VASSERT_EQ("1", "automatic-action/MDN-sent-automatically;displayed", disp.generate());
ferencd@0 92
ferencd@0 93 disp.setActionMode("amode");
ferencd@0 94
ferencd@0 95 VASSERT_EQ("2", "amode/MDN-sent-automatically;displayed", disp.generate());
ferencd@0 96
ferencd@0 97 disp.setActionMode("amode");
ferencd@0 98 disp.setSendingMode("smode");
ferencd@0 99
ferencd@0 100 VASSERT_EQ("3", "amode/smode;displayed", disp.generate());
ferencd@0 101
ferencd@0 102 disp.setType("type");
ferencd@0 103
ferencd@0 104 VASSERT_EQ("4", "amode/smode;type", disp.generate());
ferencd@0 105
ferencd@0 106 disp.addModifier("modif1");
ferencd@0 107
ferencd@0 108 VASSERT_EQ("5", "amode/smode;type/modif1", disp.generate());
ferencd@0 109
ferencd@0 110 disp.addModifier("modif2");
ferencd@0 111
ferencd@0 112 VASSERT_EQ("6", "amode/smode;type/modif1,modif2", disp.generate());
ferencd@0 113 }
ferencd@0 114
ferencd@0 115 void testModifiers()
ferencd@0 116 {
ferencd@0 117 vmime::disposition disp1;
ferencd@0 118
ferencd@0 119 VASSERT_EQ("1", false, disp1.hasModifier("foo"));
ferencd@0 120 VASSERT_EQ("2", 0, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 121
ferencd@0 122 disp1.addModifier("bar");
ferencd@0 123
ferencd@0 124 VASSERT_EQ("3", false, disp1.hasModifier("foo"));
ferencd@0 125 VASSERT_EQ("4", true, disp1.hasModifier("bar"));
ferencd@0 126 VASSERT_EQ("5", 1, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 127
ferencd@0 128 disp1.addModifier("plop");
ferencd@0 129
ferencd@0 130 VASSERT_EQ("6", false, disp1.hasModifier("foo"));
ferencd@0 131 VASSERT_EQ("7", true, disp1.hasModifier("bar"));
ferencd@0 132 VASSERT_EQ("8", true, disp1.hasModifier("plop"));
ferencd@0 133 VASSERT_EQ("9", 2, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 134
ferencd@0 135 disp1.removeModifier("bar");
ferencd@0 136
ferencd@0 137 VASSERT_EQ("10", false, disp1.hasModifier("foo"));
ferencd@0 138 VASSERT_EQ("11", false, disp1.hasModifier("bar"));
ferencd@0 139 VASSERT_EQ("12", true, disp1.hasModifier("plop"));
ferencd@0 140 VASSERT_EQ("13", 1, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 141
ferencd@0 142 disp1.removeModifier("PlOp");
ferencd@0 143
ferencd@0 144 VASSERT_EQ("14", false, disp1.hasModifier("foo"));
ferencd@0 145 VASSERT_EQ("15", false, disp1.hasModifier("bar"));
ferencd@0 146 VASSERT_EQ("16", false, disp1.hasModifier("plop"));
ferencd@0 147 VASSERT_EQ("17", 0, static_cast <int>(disp1.getModifierList().size()));
ferencd@0 148 }
ferencd@0 149
ferencd@0 150 VMIME_TEST_SUITE_END
ferencd@0 151