File indexing completed on 2024-04-28 09:12:06

0001 /*
0002     SPDX-FileCopyrightText: 2009 Constantin Berzan <exit3219@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "headerfactorytest.h"
0008 
0009 //#include <typeinfo>
0010 
0011 #include <QTest>
0012 
0013 #include <kmime_headerfactory_p.h>
0014 #include <kmime_headers.h>
0015 
0016 using namespace KMime;
0017 using namespace KMime::Headers;
0018 //using namespace KMime::Headers::Generics;
0019 
0020 QTEST_MAIN(HeaderFactoryTest)
0021 
0022 template <typename T>
0023 bool isHeaderRegistered()
0024 {
0025     T dummy;
0026     Base *h = Headers::createHeader(dummy.type());
0027     if (h) {
0028         delete h;
0029         return true;
0030     }
0031     return false;
0032 }
0033 
0034 void HeaderFactoryTest::testBuiltInHeaders()
0035 {
0036     // Abstract headers have pure virtual methods.
0037     // Generic headers have an empty type().
0038     // All other built-in headers are supposed to be registered.
0039 
0040     //QVERIFY( isHeaderRegistered<Base>() ); // Abstract.
0041     //QVERIFY( isHeaderRegistered<Unstructured>() ); // Abstract.
0042     //QVERIFY( isHeaderRegistered<Structured>() ); // Abstract.
0043     //QVERIFY( isHeaderRegistered<Address>() ); // Abstract.
0044     //QVERIFY( isHeaderRegistered<MailboxList>() ); // Generic.
0045     //QVERIFY( isHeaderRegistered<SingleMailbox>() ); // Generic.
0046     //QVERIFY( isHeaderRegistered<AddressList>() ); // Generic.
0047     //QVERIFY( isHeaderRegistered<Ident>() ); // Generic.
0048     //QVERIFY( isHeaderRegistered<SingleIdent>() ); // Generic.
0049     //QVERIFY( isHeaderRegistered<Token>() ); // Generic.
0050     //QVERIFY( isHeaderRegistered<PhraseList>() ); // Generic.
0051     //QVERIFY( isHeaderRegistered<DotAtom>() ); // Generic.
0052     //QVERIFY( isHeaderRegistered<Parametrized>() ); // Generic.
0053     QVERIFY(isHeaderRegistered<ReturnPath>());
0054     QVERIFY(isHeaderRegistered<From>());
0055     QVERIFY(isHeaderRegistered<Sender>());
0056     QVERIFY(isHeaderRegistered<To>());
0057     QVERIFY(isHeaderRegistered<Cc>());
0058     QVERIFY(isHeaderRegistered<Bcc>());
0059     QVERIFY(isHeaderRegistered<ReplyTo>());
0060     QVERIFY(isHeaderRegistered<MailCopiesTo>());
0061     QVERIFY(isHeaderRegistered<ContentTransferEncoding>());
0062     QVERIFY(isHeaderRegistered<Keywords>());
0063     QVERIFY(isHeaderRegistered<MIMEVersion>());
0064     QVERIFY(isHeaderRegistered<MessageID>());
0065     QVERIFY(isHeaderRegistered<ContentID>());
0066     QVERIFY(isHeaderRegistered<Supersedes>());
0067     QVERIFY(isHeaderRegistered<InReplyTo>());
0068     QVERIFY(isHeaderRegistered<References>());
0069     QVERIFY(isHeaderRegistered<ContentType>());
0070     QVERIFY(isHeaderRegistered<ContentDisposition>());
0071     //QVERIFY( isHeaderRegistered<Generic>() ); // Changeable type().
0072     QVERIFY(isHeaderRegistered<Subject>());
0073     QVERIFY(isHeaderRegistered<Organization>());
0074     QVERIFY(isHeaderRegistered<ContentDescription>());
0075     QVERIFY(isHeaderRegistered<ContentLocation>());
0076     QVERIFY(isHeaderRegistered<Control>());
0077     QVERIFY(isHeaderRegistered<Date>());
0078     QVERIFY(isHeaderRegistered<Newsgroups>());
0079     QVERIFY(isHeaderRegistered<FollowUpTo>());
0080     QVERIFY(isHeaderRegistered<Lines>());
0081     QVERIFY(isHeaderRegistered<UserAgent>());
0082 }
0083 
0084 #include "moc_headerfactorytest.cpp"