summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-05-23 20:46:55 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-05-23 20:46:55 +0200
commitf49110087067a011b698afa90bfcfd43232bee1f (patch)
treef17870d0dbaf5bcb5ec0b45188a2fdede50de959
parent7739ec0878746ad78330c117eb3cf49cb1b337a7 (diff)
downloadkube-f49110087067a011b698afa90bfcfd43232bee1f.tar.gz
kube-f49110087067a011b698afa90bfcfd43232bee1f.zip
Imported tests
-rw-r--r--framework/src/domain/mimetreeparser/otp/CMakeLists.txt3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/CMakeLists.txt47
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/attachmenttest.cpp68
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.cpp144
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.h42
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox22
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.html17
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.tree2
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.html17
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.tree2
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/forward-openpgp-signed-encrypted.mbox.html84
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encoded.mbox.html38
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted+signed.mbox.html55
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html80
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment.mbox.html69
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-non-encrypted-attachment.mbox.html72
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-partially-signed-attachments.mbox.html102
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-charset-encrypted.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-signed.mbox.html38
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-base64-mailman-footer.mbox.html81
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted-two-attachments.mbox.html91
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist+old.mbox.html97
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist.mbox.html68
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-two-attachments.mbox.html74
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/signed-forward-openpgp-signed-encrypted.mbox.html111
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-enc+sign.mbox.html60
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-sign.mbox.html43
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-signed-encrypted.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox53
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.html51
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.tree10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox69
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.html81
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.tree9
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html84
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-two-attachments.mbox.html34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html52
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-no-protocol.mbox.html28
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-two-attachments.mbox.html41
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/smime-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/encapsulated-with-attachment.mbox.html43
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-noData.mbox.html10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html61
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html84
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-two-attachments.mbox.html34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-encrypted-two-attachments.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-mailinglist+additional-children.mbox.html44
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-no-protocol.mbox.html28
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-two-attachments.mbox.html41
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/hidden/smime-signed-apple.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox31
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.html17
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.tree2
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox21
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.html12
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.tree2
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/htmlonlyexternal.mbox21
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html92
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-two-attachments.mbox.html50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-encrypted-two-attachments.mbox.html74
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-two-attachments.mbox.html57
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/encapsulated-with-attachment.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html90
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment.mbox.html74
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html74
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-apple.mbox.html63
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-mailinglist+additional-children.mbox.html67
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlined/smime-signed-apple.mbox.html63
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox33
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.html36
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox55
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.html24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox29
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.html26
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/mailheader.css512
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox7
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.html14
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox33
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.html35
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox46
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.html52
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox52
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.html39
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.tree7
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox115
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html77
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree11
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox57
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.html66
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.tree8
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox48
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.html34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox17
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.html19
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox114
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.html69
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.tree9
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox91
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.html99
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.tree12
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox42
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.html64
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.tree9
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox36
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.html31
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox40
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.html47
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed-broken.mbox26
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox26
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.html35
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.inProgress.html22
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.html47
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox129
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.inProgress.html49
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox117
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.html78
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.tree7
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox52
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.html88
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.tree10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox47
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.html55
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox126
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.html60
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.tree10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox67
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.html94
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.tree13
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox121
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.html65
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.inProgress.html56
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.tree7
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox35
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.html36
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox54
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.html71
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.tree9
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox92
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.html105
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.tree10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.html10
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.tree2
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox23
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.html31
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox22
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.html31
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.inProgress.html24
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox37
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.html57
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox25
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.html40
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.inProgress.html22
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.tree4
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-signed-encrypted-attachment.mbox50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox197
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.html58
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.inProgress.html49
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.tree3
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox38
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.html55
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox163
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.html38
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.tree5
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/kdepim_add_gpg_crypto_test.cmake61
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/kdepim_generate_crypto_test_wrapper.cmake45
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.cpp275
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.h45
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/setupenv.cpp34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/setupenv.h175
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.cpp106
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.h50
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/util.cpp34
-rw-r--r--framework/src/domain/mimetreeparser/otp/autotests/util.h43
208 files changed, 10117 insertions, 1 deletions
diff --git a/framework/src/domain/mimetreeparser/otp/CMakeLists.txt b/framework/src/domain/mimetreeparser/otp/CMakeLists.txt
index baa6decd..f480fa21 100644
--- a/framework/src/domain/mimetreeparser/otp/CMakeLists.txt
+++ b/framework/src/domain/mimetreeparser/otp/CMakeLists.txt
@@ -54,7 +54,6 @@ set(libmimetreeparser_SRCS
54 attachmentstrategy.cpp 54 attachmentstrategy.cpp
55 #HTML Writer 55 #HTML Writer
56 queuehtmlwriter.cpp 56 queuehtmlwriter.cpp
57 # htmlwriter/filehtmlwriter.cpp
58 attachmenttemporaryfilesdirs.cpp 57 attachmenttemporaryfilesdirs.cpp
59 ) 58 )
60 59
@@ -69,3 +68,5 @@ target_link_libraries(kube_otp
69 Qt5::Gui 68 Qt5::Gui
70) 69)
71install(TARGETS kube_otp DESTINATION ${LIB_INSTALL_DIR}) 70install(TARGETS kube_otp DESTINATION ${LIB_INSTALL_DIR})
71
72add_subdirectory(autotests)
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/CMakeLists.txt b/framework/src/domain/mimetreeparser/otp/autotests/CMakeLists.txt
new file mode 100644
index 00000000..3f344c82
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/CMakeLists.txt
@@ -0,0 +1,47 @@
1include_directories(../)
2include_directories(${CMAKE_CURRENT_BINARY_DIR})
3
4set(AUTOMOC ON)
5
6set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
7add_definitions( -DMAIL_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/data" )
8
9include(${CMAKE_CURRENT_SOURCE_DIR}/kdepim_add_gpg_crypto_test.cmake)
10
11# convenience macro to add qtest unit tests
12macro(add_mimetreeparser_unittest _source)
13 get_filename_component(_name ${_source} NAME_WE)
14 ecm_add_test(${_source} util.cpp setupenv.cpp
15 TEST_NAME ${_name}
16 NAME_PREFIX "mimetreeparser-"
17 LINK_LIBRARIES kube_otp Qt5::Test KF5::Mime Gpgmepp
18 )
19endmacro ()
20
21macro(add_mimetreeparser_class_unittest _source _additionalSource)
22 get_filename_component(_name ${_source} NAME_WE)
23 ecm_add_test(${_source} ${_additionalSource}
24 TEST_NAME ${_name}
25 NAME_PREFIX "mimetreeparser-"
26 LINK_LIBRARIES kube_otp Qt5::Test KF5::Mime Gpgmepp
27 )
28endmacro ()
29
30macro(add_mimetreeparser_crypto_unittest _source)
31 set(_test ${_source} util.cpp)
32 get_filename_component(_name ${_source} NAME_WE)
33 add_executable( ${_name} ${_test} setupenv.cpp)
34 ecm_mark_as_test(mimetreeparser-${_name})
35 target_link_libraries( ${_name}
36 kube_otp
37 Qt5::Test
38 KF5::Mime
39 Gpgmepp
40 )
41 add_gpg_crypto_test(${_name} mimetreeparser-${_name})
42endmacro ()
43
44#FIXME
45add_mimetreeparser_crypto_unittest(attachmenttest.cpp)
46add_mimetreeparser_unittest(nodehelpertest.cpp)
47#add_mimetreeparser_class_unittest( cryptohelpertest.cpp "../src/viewer/cryptohelper.cpp")
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/attachmenttest.cpp b/framework/src/domain/mimetreeparser/otp/autotests/attachmenttest.cpp
new file mode 100644
index 00000000..44e40a45
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/attachmenttest.cpp
@@ -0,0 +1,68 @@
1/*
2 Copyright (c) 2015 Volker Krause <vkrause@kde.org>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19#include "objecttreeparser.h"
20#include "util.h"
21
22#include "setupenv.h"
23
24#include <qtest.h>
25
26using namespace MimeTreeParser;
27
28class AttachmentTest : public QObject
29{
30 Q_OBJECT
31private Q_SLOTS:
32 void initTestCase();
33 void testEncryptedAttachment_data();
34 void testEncryptedAttachment();
35};
36
37QTEST_MAIN(AttachmentTest)
38
39void AttachmentTest::initTestCase()
40{
41 MimeTreeParser::Test::setupEnv();
42}
43
44void AttachmentTest::testEncryptedAttachment_data()
45{
46 QTest::addColumn<QString>("mbox");
47 QTest::newRow("encrypted") << "openpgp-encrypted-two-attachments.mbox";
48 QTest::newRow("signed") << "openpgp-signed-two-attachments.mbox";
49 QTest::newRow("signed+encrypted") << "openpgp-signed-encrypted-two-attachments.mbox";
50 QTest::newRow("encrypted+partial signed") << "openpgp-encrypted-partially-signed-attachments.mbox";
51}
52
53void AttachmentTest::testEncryptedAttachment()
54{
55 QFETCH(QString, mbox);
56 auto msg = readAndParseMail(mbox);
57 NodeHelper nodeHelper;
58 Test::TestObjectTreeSource testSource(nullptr);
59 testSource.setAllowDecryption(true);
60 ObjectTreeParser otp(&testSource, &nodeHelper);
61 otp.parseObjectTree(msg.data());
62
63 auto attachments = msg->attachments();
64 auto encAtts = nodeHelper.attachmentsOfExtraContents();
65 QCOMPARE(attachments.size() + encAtts.size(), 2);
66}
67
68#include "attachmenttest.moc"
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.cpp b/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.cpp
new file mode 100644
index 00000000..251e657d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.cpp
@@ -0,0 +1,144 @@
1/* Copyright 2015 Sandro Knauß <knauss@kolabsys.com>
2
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public License as
5 published by the Free Software Foundation; either version 2 of
6 the License or (at your option) version 3 or any later version
7 accepted by the membership of KDE e.V. (or its successor approved
8 by the membership of KDE e.V.), which shall act as a proxy
9 defined in Section 14 of version 3 of the license.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19#include "cryptohelpertest.h"
20
21#include "cryptohelper.h"
22
23#include <QTest>
24
25using namespace MimeTreeParser;
26
27void CryptoHelperTest::testPMFDEmpty()
28{
29 QCOMPARE(prepareMessageForDecryption("").count(), 0);
30}
31
32void CryptoHelperTest::testPMFDWithNoPGPBlock()
33{
34 const QByteArray text = "testblabla";
35 const QList<Block> blocks = prepareMessageForDecryption(text);
36 QCOMPARE(blocks.count(), 1);
37 QCOMPARE(blocks[0].text(), text);
38 QCOMPARE(blocks[0].type(), NoPgpBlock);
39}
40
41void CryptoHelperTest::testPGPBlockType()
42{
43 const QString blockText = QStringLiteral("text");
44 const QString preString = QStringLiteral("before\n");
45 for (int i = 1; i <= PrivateKeyBlock; ++i) {
46 QString name;
47 switch (i) {
48 case PgpMessageBlock:
49 name = QStringLiteral("MESSAGE");
50 break;
51 case MultiPgpMessageBlock:
52 name = QStringLiteral("MESSAGE PART");
53 break;
54 case SignatureBlock:
55 name = QStringLiteral("SIGNATURE");
56 break;
57 case ClearsignedBlock:
58 name = QStringLiteral("SIGNED MESSAGE");
59 break;
60 case PublicKeyBlock:
61 name = QStringLiteral("PUBLIC KEY BLOCK");
62 break;
63 case PrivateKeyBlock:
64 name = QStringLiteral("PRIVATE KEY BLOCK");
65 break;
66 }
67 QString text = QLatin1String("-----BEGIN PGP ") + name + QLatin1String("\n") + blockText;
68 QList<Block> blocks = prepareMessageForDecryption(preString.toLatin1() + text.toLatin1());
69 QCOMPARE(blocks.count(), 1);
70 QCOMPARE(blocks[0].type(), UnknownBlock);
71
72 text += QLatin1String("\n-----END PGP ") + name + QLatin1String("\n");
73 blocks = prepareMessageForDecryption(preString.toLatin1() + text.toLatin1());
74 QCOMPARE(blocks.count(), 2);
75 QCOMPARE(blocks[1].text(), text.toLatin1());
76 QCOMPARE(blocks[1].type(), static_cast<PGPBlockType>(i));
77 }
78}
79
80void CryptoHelperTest::testDeterminePGPBlockType()
81{
82 const QString blockText = QStringLiteral("text");
83 for (int i = 1; i <= PrivateKeyBlock; ++i) {
84 QString name;
85 switch (i) {
86
87 case PgpMessageBlock:
88 name = QStringLiteral("MESSAGE");
89 break;
90 case MultiPgpMessageBlock:
91 name = QStringLiteral("MESSAGE PART");
92 break;
93 case SignatureBlock:
94 name = QStringLiteral("SIGNATURE");
95 break;
96 case ClearsignedBlock:
97 name = QStringLiteral("SIGNED MESSAGE");
98 break;
99 case PublicKeyBlock:
100 name = QStringLiteral("PUBLIC KEY BLOCK");
101 break;
102 case PrivateKeyBlock:
103 name = QStringLiteral("PRIVATE KEY BLOCK");
104 break;
105 }
106 const QString text = QLatin1String("-----BEGIN PGP ") + name + QLatin1String("\n") + blockText + QLatin1String("\n");
107 const Block block = Block(text.toLatin1());
108 QCOMPARE(block.text(), text.toLatin1());
109 QCOMPARE(block.type(), static_cast<PGPBlockType>(i));
110 }
111}
112
113void CryptoHelperTest::testEmbededPGPBlock()
114{
115 const QByteArray text = QByteArray("before\n-----BEGIN PGP MESSAGE-----\ncrypted - you see :)\n-----END PGP MESSAGE-----\nafter");
116 const QList<Block> blocks = prepareMessageForDecryption(text);
117 QCOMPARE(blocks.count(), 3);
118 QCOMPARE(blocks[0].text(), QByteArray("before\n"));
119 QCOMPARE(blocks[1].text(), QByteArray("-----BEGIN PGP MESSAGE-----\ncrypted - you see :)\n-----END PGP MESSAGE-----\n"));
120 QCOMPARE(blocks[2].text(), QByteArray("after"));
121}
122
123void CryptoHelperTest::testClearSignedMessage()
124{
125 const QByteArray text = QByteArray("before\n-----BEGIN PGP SIGNED MESSAGE-----\nsigned content\n-----BEGIN PGP SIGNATURE-----\nfancy signature\n-----END PGP SIGNATURE-----\nafter");
126 const QList<Block> blocks = prepareMessageForDecryption(text);
127 QCOMPARE(blocks.count(), 3);
128 QCOMPARE(blocks[0].text(), QByteArray("before\n"));
129 QCOMPARE(blocks[1].text(), QByteArray("-----BEGIN PGP SIGNED MESSAGE-----\nsigned content\n-----BEGIN PGP SIGNATURE-----\nfancy signature\n-----END PGP SIGNATURE-----\n"));
130 QCOMPARE(blocks[2].text(), QByteArray("after"));
131}
132
133void CryptoHelperTest::testMultipleBlockMessage()
134{
135 const QByteArray text = QByteArray("before\n-----BEGIN PGP SIGNED MESSAGE-----\nsigned content\n-----BEGIN PGP SIGNATURE-----\nfancy signature\n-----END PGP SIGNATURE-----\nafter\n-----BEGIN PGP MESSAGE-----\ncrypted - you see :)\n-----END PGP MESSAGE-----\n");
136 const QList<Block> blocks = prepareMessageForDecryption(text);
137 QCOMPARE(blocks.count(), 4);
138 QCOMPARE(blocks[0].text(), QByteArray("before\n"));
139 QCOMPARE(blocks[1].text(), QByteArray("-----BEGIN PGP SIGNED MESSAGE-----\nsigned content\n-----BEGIN PGP SIGNATURE-----\nfancy signature\n-----END PGP SIGNATURE-----\n"));
140 QCOMPARE(blocks[2].text(), QByteArray("after\n"));
141 QCOMPARE(blocks[3].text(), QByteArray("-----BEGIN PGP MESSAGE-----\ncrypted - you see :)\n-----END PGP MESSAGE-----\n"));
142}
143
144QTEST_APPLESS_MAIN(CryptoHelperTest)
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.h b/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.h
new file mode 100644
index 00000000..71ae086f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/cryptohelpertest.h
@@ -0,0 +1,42 @@
1/* Copyright 2009 Thomas McGuire <mcguire@kde.org>
2
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public License as
5 published by the Free Software Foundation; either version 2 of
6 the License or (at your option) version 3 or any later version
7 accepted by the membership of KDE e.V. (or its successor approved
8 by the membership of KDE e.V.), which shall act as a proxy
9 defined in Section 14 of version 3 of the license.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef CRYPTOHELPERTEST_H
20#define CRYPTOHELPERTEST_H
21
22#include <QObject>
23
24namespace MimeTreeParser
25{
26
27class CryptoHelperTest : public QObject
28{
29 Q_OBJECT
30
31private Q_SLOTS:
32 void testPMFDEmpty();
33 void testPMFDWithNoPGPBlock();
34 void testPGPBlockType();
35 void testDeterminePGPBlockType();
36 void testEmbededPGPBlock();
37 void testClearSignedMessage();
38 void testMultipleBlockMessage();
39};
40
41}
42#endif
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox
new file mode 100644
index 00000000..86026437
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox
@@ -0,0 +1,22 @@
1Return-Path: <konqi@example.org>
2Date: Wed, 8 Jun 2016 20:34:44 -0700
3From: Konqi <konqi@example.org>
4To: konqi@kde.org
5Subject: A random subject with a empty text alternative contenttype
6MIME-Version: 1.0
7Content-Type: multipart/alternative;
8 boundary="----=_Part_12345678_12345678"
9
10
11------=_Part_12345678_12345678
12Content-Transfer-Encoding: 7Bit
13Content-Type: text/html; charset="windows-1252"
14
15<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
16<html><head><meta name="qrichtext" content="1" /><style type="text/css">
17p, li { white-space: pre-wrap; }
18</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
19<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p></body></html>
20
21
22------=_Part_12345678_12345678--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.html
new file mode 100644
index 00000000..41db4eab
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative-notext.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox
new file mode 100644
index 00000000..a2c58591
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox
@@ -0,0 +1,34 @@
1Return-Path: <konqi@example.org>
2Date: Wed, 8 Jun 2016 20:34:44 -0700
3From: Konqi <konqi@example.org>
4To: konqi@kde.org
5Subject: A random subject with alternative contenttype
6MIME-Version: 1.0
7Content-Type: multipart/alternative;
8 boundary="----=_Part_12345678_12345678"
9
10
11------=_Part_12345678_12345678
12Content-Type: text/plain; charset=utf-8
13Content-Transfer-Encoding: quoted-printable
14
15If you can see this text it means that your email client couldn't display o=
16ur newsletter properly.
17Please visit this link to view the newsletter on our website: http://www.go=
18g.com/newsletter/
19
20=2D GOG.com Team
21
22
23------=_Part_12345678_12345678
24Content-Transfer-Encoding: 7Bit
25Content-Type: text/html; charset="windows-1252"
26
27<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
28<html><head><meta name="qrichtext" content="1" /><style type="text/css">
29p, li { white-space: pre-wrap; }
30</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
31<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p></body></html>
32
33
34------=_Part_12345678_12345678--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.html
new file mode 100644
index 00000000..2fe886f1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att2"/>
9 <div id="attachmentDiv2">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/alternative.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..9a81f103
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">bla bla bla</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <table cellspacing="1" cellpadding="1" class="encr">
27 <tr class="encrH">
28 <td dir="ltr">Encrypted message</td>
29 </tr>
30 <tr class="encrB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">
38 <table cellspacing="0" cellpadding="0" width="100%">
39 <tr>
40 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
41 <td align="right" valign="top" nowrap="nowrap">
42 <a href="kmail:hideSignatureDetails">Hide Details</a>
43 </td>
44 </tr>
45 <tr>
46 <td align="right" valign="bottom" nowrap="nowrap"/>
47 </tr>
48 </table>
49 </td>
50 </tr>
51 <tr class="signOkKeyOkB">
52 <td>
53 <a name="att1"/>
54 <div id="attachmentDiv1">
55 <div class="noquote">
56 <div dir="ltr">encrypted message text</div>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="signOkKeyOkH">
62 <td dir="ltr">End of signed message</td>
63 </tr>
64 </table>
65 </div>
66 </div>
67 </td>
68 </tr>
69 <tr class="encrH">
70 <td dir="ltr">End of encrypted message</td>
71 </tr>
72 </table>
73 </div>
74 </td>
75 </tr>
76 <tr class="rfc822H">
77 <td dir="ltr">End of encapsulated message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encoded.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encoded.mbox.html
new file mode 100644
index 00000000..65d5f95e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encoded.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed on 12/21/15 3:46 PM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### E68031D299A6527C">0xE68031D299A6527C</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signWarnB">
25 <td>
26 <div class="noquote">
27 <div dir="ltr">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</div>
28 </div>
29 </td>
30 </tr>
31 <tr class="signWarnH">
32 <td dir="ltr">End of signed message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted+signed.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted+signed.mbox.html
new file mode 100644
index 00000000..96361c30
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted+signed.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
20 <td align="right" valign="top" nowrap="nowrap">
21 <a href="kmail:hideSignatureDetails">Hide Details</a>
22 </td>
23 </tr>
24 <tr>
25 <td align="right" valign="bottom" nowrap="nowrap"/>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <div class="noquote">
36 <div dir="ltr">encrypted message text</div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signOkKeyOkH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..cc6bf03e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,80 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">test text</div>
43 </div>
44 </div>
45 <a name="att1.2"/>
46 <div id="attachmentDiv1.2">
47 <hr/>
48 <div>
49 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
50 </div>
51 <div/>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signOkKeyOkH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="encrH">
65 <td dir="ltr">End of encrypted message</td>
66 </tr>
67 </table>
68 </div>
69 <a name="att2"/>
70 <div id="attachmentDiv2">
71 <hr/>
72 <div>
73 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
74 </div>
75 <div/>
76 </div>
77 </div>
78 </div>
79 </body>
80</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..61bf5d28
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <a name="att1.1"/>
38 <div id="attachmentDiv1.1">
39 <div class="noquote">
40 <div dir="ltr">test text</div>
41 </div>
42 </div>
43 <a name="att1.2"/>
44 <div id="attachmentDiv1.2">
45 <hr/>
46 <div>
47 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
48 </div>
49 <div/>
50 </div>
51 </div>
52 </td>
53 </tr>
54 <tr class="signOkKeyOkH">
55 <td dir="ltr">End of signed message</td>
56 </tr>
57 </table>
58 </div>
59 </div>
60 </td>
61 </tr>
62 <tr class="encrH">
63 <td dir="ltr">End of encrypted message</td>
64 </tr>
65 </table>
66 </div>
67 </div>
68 </body>
69</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..8d8bde0d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,72 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">test text</div>
43 </div>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="signOkKeyOkH">
49 <td dir="ltr">End of signed message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="encrH">
57 <td dir="ltr">End of encrypted message</td>
58 </tr>
59 </table>
60 </div>
61 <a name="att2"/>
62 <div id="attachmentDiv2">
63 <hr/>
64 <div>
65 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
66 </div>
67 <div/>
68 </div>
69 </div>
70 </div>
71 </body>
72</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..1716b841
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,102 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
25 <td align="right" valign="top" nowrap="nowrap">
26 <a href="kmail:hideSignatureDetails">Hide Details</a>
27 </td>
28 </tr>
29 <tr>
30 <td align="right" valign="bottom" nowrap="nowrap"/>
31 </tr>
32 </table>
33 </td>
34 </tr>
35 <tr class="signOkKeyOkB">
36 <td>
37 <a name="att1"/>
38 <div id="attachmentDiv1">
39 <a name="att1.1"/>
40 <div id="attachmentDiv1.1">
41 <div class="noquote">
42 <div dir="ltr">This is the main body.</div>
43 </div>
44 </div>
45 <a name="att1.2"/>
46 <div id="attachmentDiv1.2">
47 <table cellspacing="1" class="textAtm">
48 <tr class="textAtmH">
49 <td dir="ltr">attachment1.txt</td>
50 </tr>
51 <tr class="textAtmB">
52 <td>
53 <div class="noquote">
54 <div dir="ltr">This is a signed attachment.</div>
55 </div>
56 </td>
57 </tr>
58 </table>
59 </div>
60 </div>
61 </td>
62 </tr>
63 <tr class="signOkKeyOkH">
64 <td dir="ltr">End of signed message</td>
65 </tr>
66 </table>
67 </div>
68 </div>
69 </td>
70 </tr>
71 <tr class="encrH">
72 <td dir="ltr">End of encrypted message</td>
73 </tr>
74 </table>
75 </div>
76 <a name="att2"/>
77 <div id="attachmentDiv2">
78 <table cellspacing="1" cellpadding="1" class="encr">
79 <tr class="encrH">
80 <td dir="ltr">Encrypted message</td>
81 </tr>
82 <tr class="encrB">
83 <td>
84 <div style="position: relative; word-wrap: break-word">
85 <a name="att"/>
86 <div id="attachmentDiv">
87 <div class="noquote">
88 <div dir="ltr">This is an unsigned attachment.</div>
89 </div>
90 </div>
91 </div>
92 </td>
93 </tr>
94 <tr class="encrH">
95 <td dir="ltr">End of encrypted message</td>
96 </tr>
97 </table>
98 </div>
99 </div>
100 </div>
101 </body>
102</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-charset-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-charset-encrypted.mbox.html
new file mode 100644
index 00000000..c2fa2fee
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-charset-encrypted.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
20 <td align="right" valign="top" nowrap="nowrap">
21 <a href="kmail:hideSignatureDetails">Hide Details</a>
22 </td>
23 </tr>
24 <tr>
25 <td align="right" valign="bottom" nowrap="nowrap"/>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div class="noquote">
33 <div dir="ltr">asdasd asd asd asdf sadf sdaf sadf öäü</div>
34 </div>
35 </td>
36 </tr>
37 <tr class="signOkKeyOkH">
38 <td dir="ltr">End of signed message</td>
39 </tr>
40 </table>
41 </td>
42 </tr>
43 <tr class="encrH">
44 <td dir="ltr">End of encrypted message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-signed.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-signed.mbox.html
new file mode 100644
index 00000000..00a9dc5b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-inline-signed.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <div class="noquote">
27 <div dir="ltr">ohno öäü</div>
28 </div>
29 </td>
30 </tr>
31 <tr class="signOkKeyOkH">
32 <td dir="ltr">End of signed message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-base64-mailman-footer.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-base64-mailman-footer.mbox.html
new file mode 100644
index 00000000..c10cecd8
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-base64-mailman-footer.mbox.html
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td rowspan="2">Message was signed on 8/22/15 9:31 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### 7F96CCD64D12D247">0x7F96CCD64D12D247</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
16 <td align="right" valign="top" nowrap="nowrap">
17 <a href="kmail:hideSignatureDetails">Hide Details</a>
18 </td>
19 </tr>
20 <tr>
21 <td align="right" valign="bottom" nowrap="nowrap"/>
22 </tr>
23 </table>
24 </td>
25 </tr>
26 <tr class="signWarnB">
27 <td>
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">Hi,</div>
32 <br/>
33 <div dir="ltr">I've talked to Ben, the current Phabricator test setup would actually be&nbsp;</div>
34 <div dir="ltr">usable for "production" use for task/project management for us, without&nbsp;</div>
35 <div dir="ltr">causing the sysadmins unreasonable trouble when migrating to the full&nbsp;</div>
36 <div dir="ltr">production deployment of Phabricator eventually.</div>
37 <br/>
38 <div dir="ltr">Phabricator project layout it orthogonal to repo layout, so we can structure&nbsp;</div>
39 <div dir="ltr">this however we want. Among other teams I see at least the following layouts:</div>
40 <div dir="ltr">- single project for everything</div>
41 <div dir="ltr">- a project per release</div>
42 <div dir="ltr">- a project per component/module (ie. close to the repo layout)</div>
43 <br/>
44 <div dir="ltr">How do we want to structure this?</div>
45 <br/>
46 <div dir="ltr">I would start with a single project to not fragment this too much, as we have&nbsp;</div>
47 <div dir="ltr">a relatively small team actually looking into this, so everyone is looking at&nbsp;</div>
48 <div dir="ltr">most sub-projects anyway. And should we eventually hit scaling limits, we can&nbsp;</div>
49 <div dir="ltr">always expand this I think.</div>
50 <br/>
51 <div dir="ltr">We of course should also talk about what we actually want to put in there. My&nbsp;</div>
52 <div dir="ltr">current motivation is having a place to collect the tasks for getting more of&nbsp;</div>
53 <div dir="ltr">the former pimlibs into KF5, and anything else I run into on the way there&nbsp;</div>
54 <div dir="ltr">that we eventually should clean up/improve.</div>
55 <br/>
56 <div dir="ltr">regards,</div>
57 <div dir="ltr">Volker</div>
58 </div>
59 </div>
60 </td>
61 </tr>
62 <tr class="signWarnH">
63 <td dir="ltr">End of signed message</td>
64 </tr>
65 </table>
66 </div>
67 <a name="att2"/>
68 <div id="attachmentDiv2">
69 <div class="noquote">
70 <div dir="ltr">_______________________________________________</div>
71 <div dir="ltr">KDE PIM mailing list <a href="mailto:kde-pim@kde.org">kde-pim@kde.org</a></div>
72 <div dir="ltr">
73 <a href="https://mail.kde.org/mailman/listinfo/kde-pim">https://mail.kde.org/mailman/listinfo/kde-pim</a>
74 </div>
75 <div dir="ltr">KDE PIM home page at <a href="http://pim.kde.org/">http://pim.kde.org/</a></div>
76 </div>
77 </div>
78 </div>
79 </div>
80 </body>
81</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..2c02a22c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,91 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <a name="att1.1"/>
38 <div id="attachmentDiv1.1">
39 <div class="noquote">
40 <div dir="ltr">this is the main body</div>
41 </div>
42 </div>
43 <a name="att1.2"/>
44 <div id="attachmentDiv1.2">
45 <table cellspacing="1" class="textAtm">
46 <tr class="textAtmH">
47 <td dir="ltr">attachment1.txt</td>
48 </tr>
49 <tr class="textAtmB">
50 <td>
51 <div class="noquote">
52 <div dir="ltr">this is one attachment</div>
53 </div>
54 </td>
55 </tr>
56 </table>
57 </div>
58 <a name="att1.3"/>
59 <div id="attachmentDiv1.3">
60 <table cellspacing="1" class="textAtm">
61 <tr class="textAtmH">
62 <td dir="ltr">attachment2.txt</td>
63 </tr>
64 <tr class="textAtmB">
65 <td>
66 <div class="noquote">
67 <div dir="ltr">this is the second attachment</div>
68 </div>
69 </td>
70 </tr>
71 </table>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="signOkKeyOkH">
77 <td dir="ltr">End of signed message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </td>
83 </tr>
84 <tr class="encrH">
85 <td dir="ltr">End of encrypted message</td>
86 </tr>
87 </table>
88 </div>
89 </div>
90 </body>
91</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..d3a7a0ce
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <div class="noquote">
38 <div dir="ltr">encrypted message text</div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist+old.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist+old.mbox.html
new file mode 100644
index 00000000..e7da94db
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist+old.mbox.html
@@ -0,0 +1,97 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative; word-wrap: break-word">
9 <a name="att"/>
10 <div id="attachmentDiv">
11 <div class="noquote">
12 <div dir="ltr">Oh man a header :)</div>
13 <br/>
14 </div>
15 </div>
16 </div>
17 <div style="position: relative; word-wrap: break-word">
18 <a name="att"/>
19 <div id="attachmentDiv">
20 <table cellspacing="1" cellpadding="1" class="rfc822">
21 <tr class="rfc822H">
22 <td dir="ltr">
23 <a href="attachment:e1:1?place=body">Encapsulated message</a>
24 </td>
25 </tr>
26 <tr class="rfc822B">
27 <td>
28 <a name="att1"/>
29 <div id="attachmentDiv1">
30 <table cellspacing="1" cellpadding="1" class="signWarn">
31 <tr class="signWarnH">
32 <td dir="ltr">
33 <table cellspacing="0" cellpadding="0" width="100%">
34 <tr>
35 <td rowspan="2">Message was signed on 4/8/13 9:51 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### D6B72EB1A7F1DB43">0xD6B72EB1A7F1DB43</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
36 <td align="right" valign="top" nowrap="nowrap">
37 <a href="kmail:hideSignatureDetails">Hide Details</a>
38 </td>
39 </tr>
40 <tr>
41 <td align="right" valign="bottom" nowrap="nowrap"/>
42 </tr>
43 </table>
44 </td>
45 </tr>
46 <tr class="signWarnB">
47 <td>
48 <a name="att1.1"/>
49 <div id="attachmentDiv1.1">
50 <div class="noquote">
51 <div dir="ltr">hi..</div>
52 <br/>
53 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
54 <div dir="ltr">activities_optional</div>
55 <br/>
56 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
57 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
58 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
59 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
60 <br/>
61 <div dir="ltr">--&nbsp;</div>
62 <div dir="ltr">Aaron J. Seigo</div>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="signWarnH">
68 <td dir="ltr">End of signed message</td>
69 </tr>
70 </table>
71 </div>
72 </td>
73 </tr>
74 <tr class="rfc822H">
75 <td dir="ltr">End of encapsulated message</td>
76 </tr>
77 </table>
78 </div>
79 </div>
80 <div style="position: relative; word-wrap: break-word">
81 <a name="att"/>
82 <div id="attachmentDiv">
83 <div class="noquote">
84 <div dir="ltr">Plasma-devel mailing list</div>
85 <div dir="ltr">
86 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
87 </div>
88 <div dir="ltr">
89 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
90 </div>
91 </div>
92 </div>
93 </div>
94 </div>
95 </div>
96 </body>
97</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist.mbox.html
new file mode 100644
index 00000000..f5b20b6d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-mailinglist.mbox.html
@@ -0,0 +1,68 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td rowspan="2">Message was signed on 4/8/13 9:51 AM with unknown key <a href="kmail:showCertificate#gpg ### OpenPGP ### D6B72EB1A7F1DB43">0xD6B72EB1A7F1DB43</a>.<br/>The validity of the signature cannot be verified.<br/>Status:<i>No public key to verify the signature</i></td>
16 <td align="right" valign="top" nowrap="nowrap">
17 <a href="kmail:hideSignatureDetails">Hide Details</a>
18 </td>
19 </tr>
20 <tr>
21 <td align="right" valign="bottom" nowrap="nowrap"/>
22 </tr>
23 </table>
24 </td>
25 </tr>
26 <tr class="signWarnB">
27 <td>
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">hi..</div>
32 <br/>
33 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
34 <div dir="ltr">activities_optional</div>
35 <br/>
36 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
37 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
38 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
39 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
40 <br/>
41 <div dir="ltr">--&nbsp;</div>
42 <div dir="ltr">Aaron J. Seigo</div>
43 </div>
44 </div>
45 </td>
46 </tr>
47 <tr class="signWarnH">
48 <td dir="ltr">End of signed message</td>
49 </tr>
50 </table>
51 </div>
52 <a name="att2"/>
53 <div id="attachmentDiv2">
54 <div class="noquote">
55 <div dir="ltr">_______________________________________________</div>
56 <div dir="ltr">Plasma-devel mailing list</div>
57 <div dir="ltr">
58 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
59 </div>
60 <div dir="ltr">
61 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
62 </div>
63 </div>
64 </div>
65 </div>
66 </div>
67 </body>
68</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..1432aa44
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <a name="att1"/>
27 <div id="attachmentDiv1">
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">this is the main body text</div>
32 </div>
33 </div>
34 <a name="att1.2"/>
35 <div id="attachmentDiv1.2">
36 <table cellspacing="1" class="textAtm">
37 <tr class="textAtmH">
38 <td dir="ltr">attachment1.txt</td>
39 </tr>
40 <tr class="textAtmB">
41 <td>
42 <div class="noquote">
43 <div dir="ltr">this is attachment one</div>
44 </div>
45 </td>
46 </tr>
47 </table>
48 </div>
49 <a name="att1.3"/>
50 <div id="attachmentDiv1.3">
51 <table cellspacing="1" class="textAtm">
52 <tr class="textAtmH">
53 <td dir="ltr">attachment2.txt</td>
54 </tr>
55 <tr class="textAtmB">
56 <td>
57 <div class="noquote">
58 <div dir="ltr">this is attachment two</div>
59 </div>
60 </td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="signOkKeyOkH">
68 <td dir="ltr">End of signed message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/signed-forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/signed-forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..b960f318
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/signed-forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,111 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <a name="att1"/>
27 <div id="attachmentDiv1">
28 <a name="att1.1"/>
29 <div id="attachmentDiv1.1">
30 <div class="noquote">
31 <div dir="ltr">bla bla bla</div>
32 </div>
33 </div>
34 <a name="att1.2"/>
35 <div id="attachmentDiv1.2">
36 <table cellspacing="1" cellpadding="1" class="rfc822">
37 <tr class="rfc822H">
38 <td dir="ltr">
39 <a href="attachment:1.2.1?place=body">Encapsulated message</a>
40 </td>
41 </tr>
42 <tr class="rfc822B">
43 <td>
44 <a name="att1.2.1"/>
45 <div id="attachmentDiv1.2.1">
46 <table cellspacing="1" cellpadding="1" class="encr">
47 <tr class="encrH">
48 <td dir="ltr">Encrypted message</td>
49 </tr>
50 <tr class="encrB">
51 <td>
52 <div style="position: relative; word-wrap: break-word">
53 <a name="att"/>
54 <div id="attachmentDiv">
55 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
56 <tr class="signOkKeyOkH">
57 <td dir="ltr">
58 <table cellspacing="0" cellpadding="0" width="100%">
59 <tr>
60 <td rowspan="2">Message was signed by <a href="mailto:test@kolab.org">test@kolab.org</a> (Key ID: <a href="kmail:showCertificate#gpg ### OpenPGP ### 8D9860C58F246DE6">0x8D9860C58F246DE6</a>).<br/>The signature is valid and the key is fully trusted.</td>
61 <td align="right" valign="top" nowrap="nowrap">
62 <a href="kmail:hideSignatureDetails">Hide Details</a>
63 </td>
64 </tr>
65 <tr>
66 <td align="right" valign="bottom" nowrap="nowrap"/>
67 </tr>
68 </table>
69 </td>
70 </tr>
71 <tr class="signOkKeyOkB">
72 <td>
73 <a name="att1"/>
74 <div id="attachmentDiv1">
75 <div class="noquote">
76 <div dir="ltr">encrypted message text</div>
77 </div>
78 </div>
79 </td>
80 </tr>
81 <tr class="signOkKeyOkH">
82 <td dir="ltr">End of signed message</td>
83 </tr>
84 </table>
85 </div>
86 </div>
87 </td>
88 </tr>
89 <tr class="encrH">
90 <td dir="ltr">End of encrypted message</td>
91 </tr>
92 </table>
93 </div>
94 </td>
95 </tr>
96 <tr class="rfc822H">
97 <td dir="ltr">End of encapsulated message</td>
98 </tr>
99 </table>
100 </div>
101 </div>
102 </td>
103 </tr>
104 <tr class="signOkKeyOkH">
105 <td dir="ltr">End of signed message</td>
106 </tr>
107 </table>
108 </div>
109 </div>
110 </body>
111</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-enc+sign.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-enc+sign.mbox.html
new file mode 100644
index 00000000..d6345a7c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-enc+sign.mbox.html
@@ -0,0 +1,60 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 1/10/13 3:48 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i><br/>&nbsp;<br/><u>Warning:</u> Sender's mail address is not stored in the <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">certificate</a> used for signing.<br/>sender: <br/>stored: test@example.com</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <div style="position: relative; word-wrap: break-word">
36 <a name="att"/>
37 <div id="attachmentDiv">
38 <div class="noquote">
39 <div dir="ltr">Encrypted and signed mail.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </body>
60</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-sign.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-sign.mbox.html
new file mode 100644
index 00000000..248b93ff
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-opaque-sign.mbox.html
@@ -0,0 +1,43 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 1/10/13 3:48 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i></td>
14 <td align="right" valign="top" nowrap="nowrap">
15 <a href="kmail:hideSignatureDetails">Hide Details</a>
16 </td>
17 </tr>
18 <tr>
19 <td align="right" valign="bottom" nowrap="nowrap"/>
20 </tr>
21 </table>
22 </td>
23 </tr>
24 <tr class="signOkKeyOkB">
25 <td>
26 <div style="position: relative; word-wrap: break-word">
27 <a name="att"/>
28 <div id="attachmentDiv">
29 <div class="noquote">
30 <div dir="ltr">A simple signed only test.</div>
31 </div>
32 </div>
33 </div>
34 </td>
35 </tr>
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">End of signed message</td>
38 </tr>
39 </table>
40 </div>
41 </div>
42 </body>
43</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-signed-encrypted.mbox.html
new file mode 100644
index 00000000..6e811632
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/details/smime-signed-encrypted.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td rowspan="2">Message was signed by <a href="mailto:test%40example.com">test@example.com</a> on 9/8/10 3:51 PM with key <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">0x4CC658E3212B49DC</a><br/>&nbsp;<br/>Status:<i>Good signature.</i><br/>&nbsp;<br/><u>Warning:</u> Sender's mail address is not stored in the <a href="kmail:showCertificate#gpgsm ### SMIME ### 4CC658E3212B49DC">certificate</a> used for signing.<br/>sender: <br/>stored: test@example.com</td>
23 <td align="right" valign="top" nowrap="nowrap">
24 <a href="kmail:hideSignatureDetails">Hide Details</a>
25 </td>
26 </tr>
27 <tr>
28 <td align="right" valign="bottom" nowrap="nowrap"/>
29 </tr>
30 </table>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkB">
34 <td>
35 <a name="att1"/>
36 <div id="attachmentDiv1">
37 <div class="noquote">
38 <div dir="ltr">encrypted message text</div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox
new file mode 100644
index 00000000..885b9d1b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox
@@ -0,0 +1,53 @@
1From: Thomas McGuire <dontspamme@gmx.net>
2Subject: Fwd: Test with attachment
3Date: Wed, 5 Aug 2009 10:58:27 +0200
4MIME-Version: 1.0
5Content-Type: Multipart/Mixed;
6 boundary="Boundary-00=_zmUeKB+A8hGfCVZ"
7
8
9--Boundary-00=_zmUeKB+A8hGfCVZ
10Content-Type: text/plain;
11 charset="iso-8859-15"
12Content-Transfer-Encoding: 7bit
13Content-Disposition: inline
14
15This is the first encapsulating message.
16
17--Boundary-00=_zmUeKB+A8hGfCVZ
18Content-Type: message/rfc822;
19 name="forwarded message"
20Content-Transfer-Encoding: 7bit
21Content-Description: Thomas McGuire <dontspamme@gmx.net>: Test with attachment
22Content-Disposition: inline
23
24From: Thomas McGuire <dontspamme@gmx.net>
25Subject: Test with attachment
26Date: Wed, 5 Aug 2009 10:57:58 +0200
27MIME-Version: 1.0
28Content-Type: Multipart/Mixed;
29 boundary="Boundary-00=_WmUeKQpGb0DHyx1"
30
31--Boundary-00=_WmUeKQpGb0DHyx1
32Content-Type: text/plain;
33 charset="us-ascii"
34Content-Transfer-Encoding: 7bit
35Content-Disposition: inline
36
37
38
39
40This is the second encapsulated message.
41
42--Boundary-00=_WmUeKQpGb0DHyx1
43Content-Type: text/plain;
44 name="attachment.txt"
45Content-Transfer-Encoding: 7bit
46Content-Disposition: attachment;
47 filename="attachment.txt"
48
49This is an attachment.
50
51--Boundary-00=_WmUeKQpGb0DHyx1--
52
53--Boundary-00=_zmUeKB+A8hGfCVZ--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..aa3d1090
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,51 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 <a name="att2.1.2"/>
33 <div id="attachmentDiv2.1.2">
34 <hr/>
35 <div>
36 <a href="attachment:2.1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment.txt</a>
37 </div>
38 <div/>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="rfc822H">
44 <td dir="ltr">End of encapsulated message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </div>
50 </body>
51</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.tree
new file mode 100644
index 00000000..050414a2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/encapsulated-with-attachment.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::EncapsulatedRfc822MessagePart
6 * MimeTreeParser::MimeMessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..1c166940
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox
@@ -0,0 +1,69 @@
1From test@kolab.org Wed, 08 Sep 2010 17:52:37 +0200
2From: OpenPGP Test <test@kolab.org>
3Subject: Fwd: OpenPGP signed and encrypted
4Date: Wed, 08 Sep 2010 17:52:37 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/mixed; boundary="nextPart2148910.9CGjQOYhYJ"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart2148910.9CGjQOYhYJ
12Content-Transfer-Encoding: 7Bit
13Content-Type: text/plain; charset="us-ascii"
14
15bla bla bla
16--nextPart2148910.9CGjQOYhYJ
17Content-Type: message/rfc822
18Content-Disposition: inline; filename="forwarded message"
19Content-Description: OpenPGP Test <test@kolab.org>: OpenPGP signed and encrypted
20
21From: OpenPGP Test <test@kolab.org>
22To: test@kolab.org
23Subject: OpenPGP signed and encrypted
24Date: Tue, 07 Sep 2010 18:08:44 +0200
25User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
26MIME-Version: 1.0
27Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
28Content-Transfer-Encoding: 7Bit
29
30
31--nextPart25203163.0xtB501Z4V
32Content-Type: application/pgp-encrypted
33Content-Disposition: attachment
34
35Version: 1
36--nextPart25203163.0xtB501Z4V
37Content-Type: application/octet-stream
38Content-Disposition: inline; filename="msg.asc"
39
40-----BEGIN PGP MESSAGE-----
41Version: GnuPG v2.0.15 (GNU/Linux)
42
43hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
44y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
45KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
46kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
47mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
48XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
49OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
50QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
51SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
52oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
533S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
54enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
55gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
56pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
57NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
58qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
59wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
60+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
61rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
62rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
63N7+wk9pwIuvcrEBQj567
64=GV0c
65-----END PGP MESSAGE-----
66
67--nextPart25203163.0xtB501Z4V--
68
69--nextPart2148910.9CGjQOYhYJ--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..7632ec39
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,81 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">bla bla bla</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <table cellspacing="1" cellpadding="1" class="encr">
27 <tr class="encrH">
28 <td dir="ltr">Encrypted message</td>
29 </tr>
30 <tr class="encrB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
36 <tr class="signOkKeyOkH">
37 <td dir="ltr">
38 <table cellspacing="0" cellpadding="0" width="100%">
39 <tr>
40 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
41 <td align="right">
42 <a href="kmail:showSignatureDetails">Show Details</a>
43 </td>
44 </tr>
45 </table>
46 </td>
47 </tr>
48 <tr class="signOkKeyOkB">
49 <td>
50 <a name="att1"/>
51 <div id="attachmentDiv1">
52 <div class="noquote">
53 <div dir="ltr">encrypted message text</div>
54 </div>
55 </div>
56 </td>
57 </tr>
58 <tr class="signOkKeyOkH">
59 <td dir="ltr">End of signed message</td>
60 </tr>
61 </table>
62 </div>
63 </div>
64 </td>
65 </tr>
66 <tr class="encrH">
67 <td dir="ltr">End of encrypted message</td>
68 </tr>
69 </table>
70 </div>
71 </td>
72 </tr>
73 <tr class="rfc822H">
74 <td dir="ltr">End of encapsulated message</td>
75 </tr>
76 </table>
77 </div>
78 </div>
79 </div>
80 </body>
81</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..324156db
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/forward-openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::EncapsulatedRfc822MessagePart
6 * MimeTreeParser::EncryptedMessagePart
7 * MimeTreeParser::SignedMessagePart
8 * MimeTreeParser::TextMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..d5e4550e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..ebad7354
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <table cellspacing="1" cellpadding="1" class="encr">
61 <tr class="encrH">
62 <td dir="ltr">Encrypted message</td>
63 </tr>
64 <tr class="encrB">
65 <td>
66 <div style="position: relative; word-wrap: break-word">
67 <a name="att"/>
68 <div id="attachmentDiv">
69 <div class="noquote">
70 <div dir="ltr">This is an unsigned attachment.</div>
71 </div>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="encrH">
77 <td dir="ltr">End of encrypted message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..4cdeaa63
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..330b02a1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.3"/>
34 <div id="attachmentDiv1.2.3">
35 <div style="position: relative">
36 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signWarnH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..83b7a66c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..25b1ad04
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 </div>
36 <a name="att2"/>
37 <div id="attachmentDiv2">
38 <div class="noquote">
39 <div dir="ltr">_______________________________________________</div>
40 <div dir="ltr">Plasma-devel mailing list</div>
41 <div dir="ltr">
42 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
43 </div>
44 <div dir="ltr">
45 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
46 </div>
47 </div>
48 </div>
49 </div>
50 </div>
51 </body>
52</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..bdac52b6
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 </div>
26 </div>
27 </body>
28</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..027097f7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </div>
39 </div>
40 </body>
41</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/smime-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..9554bb39
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/headeronly/smime-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.3"/>
32 <div id="attachmentDiv1.2.3">
33 <div style="position: relative">
34 <blockquote type="cite" class="">
35 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
36 </blockquote>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signErrH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/encapsulated-with-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..42f5ecd7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,43 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 </div>
33 </td>
34 </tr>
35 <tr class="rfc822H">
36 <td dir="ltr">End of encapsulated message</td>
37 </tr>
38 </table>
39 </div>
40 </div>
41 </div>
42 </body>
43</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..d5e4550e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-noData.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-noData.mbox.html
new file mode 100644
index 00000000..166812fe
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-noData.mbox.html
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv"/>
8 </div>
9 </body>
10</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..73c4d2d7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </div>
60 </body>
61</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..ebad7354
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,84 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <table cellspacing="1" cellpadding="1" class="encr">
61 <tr class="encrH">
62 <td dir="ltr">Encrypted message</td>
63 </tr>
64 <tr class="encrB">
65 <td>
66 <div style="position: relative; word-wrap: break-word">
67 <a name="att"/>
68 <div id="attachmentDiv">
69 <div class="noquote">
70 <div dir="ltr">This is an unsigned attachment.</div>
71 </div>
72 </div>
73 </div>
74 </td>
75 </tr>
76 <tr class="encrH">
77 <td dir="ltr">End of encrypted message</td>
78 </tr>
79 </table>
80 </div>
81 </div>
82 </div>
83 </body>
84</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..4cdeaa63
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..330b02a1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.3"/>
34 <div id="attachmentDiv1.2.3">
35 <div style="position: relative">
36 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signWarnH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..83b7a66c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signOkKeyOkH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="encrH">
52 <td dir="ltr">End of encrypted message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..1f0da385
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,44 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 </div>
28 <a name="att2"/>
29 <div id="attachmentDiv2">
30 <div class="noquote">
31 <div dir="ltr">_______________________________________________</div>
32 <div dir="ltr">Plasma-devel mailing list</div>
33 <div dir="ltr">
34 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
35 </div>
36 <div dir="ltr">
37 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
38 </div>
39 </div>
40 </div>
41 </div>
42 </div>
43 </body>
44</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..bdac52b6
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,28 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 </div>
26 </div>
27 </body>
28</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..027097f7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </div>
39 </div>
40 </body>
41</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/smime-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..9554bb39
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/hidden/smime-signed-apple.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.3"/>
32 <div id="attachmentDiv1.2.3">
33 <div style="position: relative">
34 <blockquote type="cite" class="">
35 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
36 </blockquote>
37 </div>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="signErrH">
44 <td dir="ltr">End of signed message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox
new file mode 100644
index 00000000..eebd4283
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox
@@ -0,0 +1,31 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Type: multipart/alternative; boundary="nextPart8606278.tpV19BTJKu"
13Content-Transfer-Encoding: 7Bit
14
15
16--nextPart8606278.tpV19BTJKu
17Content-Transfer-Encoding: 7Bit
18Content-Type: text/plain; charset="windows-1252"
19
20Some HTML text
21--nextPart8606278.tpV19BTJKu
22Content-Transfer-Encoding: 7Bit
23Content-Type: text/html; charset="windows-1252"
24
25<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
26<html><head><meta name="qrichtext" content="1" /><style type="text/css">
27p, li { white-space: pre-wrap; }
28</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
29<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p></body></html>
30--nextPart8606278.tpV19BTJKu--
31
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.html
new file mode 100644
index 00000000..2fe886f1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.html
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att2"/>
9 <div id="attachmentDiv2">
10 <div style="position: relative">
11 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
12 </div>
13 </div>
14 </div>
15 </div>
16 </body>
17</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.tree
new file mode 100644
index 00000000..0de07281
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/html.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox
new file mode 100644
index 00000000..e45b1c4d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox
@@ -0,0 +1,21 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Type: text/html
13Content-Transfer-Encoding: 7Bit
14
15<html>
16<head>
17</head>
18<body>
19<b>SOME</b> HTML text.
20</body>
21</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.html
new file mode 100644
index 00000000..1143f2cf
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.html
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative"><b>SOME</b> HTML text.</div>
9 </div>
10 </div>
11 </body>
12</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.tree
new file mode 100644
index 00000000..a4c3191b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonly.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::HtmlMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonlyexternal.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonlyexternal.mbox
new file mode 100644
index 00000000..4eb3e2c3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/htmlonlyexternal.mbox
@@ -0,0 +1,21 @@
1From foo@example.com Thu, 26 May 2011 01:16:54 +0100
2From: Thomas McGuire <foo@example.com>
3Subject: HTML test
4Date: Thu, 26 May 2011 01:16:54 +0100
5Message-ID: <1501334.pROlBb7MZF@herrwackelpudding.localhost>
6X-KMail-Transport: GMX
7X-KMail-Fcc: 28
8X-KMail-Drafts: 7
9X-KMail-Templates: 9
10User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
11MIME-Version: 1.0
12Content-Type: text/html
13Content-Transfer-Encoding: 7Bit
14
15<html>
16<head>
17</head>
18<body>
19<b>SOME</b> HTML text. <img src="http://example.org/test.img" >
20</body>
21</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..b6f734c2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,92 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <hr/>
45 <div>
46 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
47 </div>
48 <div/>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">End of signed message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="encrH">
62 <td dir="ltr">End of encrypted message</td>
63 </tr>
64 </table>
65 </div>
66 <a name="att2"/>
67 <div id="attachmentDiv2">
68 <table cellspacing="1" cellpadding="1" class="encr">
69 <tr class="encrH">
70 <td dir="ltr">Encrypted message</td>
71 </tr>
72 <tr class="encrB">
73 <td>
74 <div style="position: relative; word-wrap: break-word">
75 <a name="att"/>
76 <div id="attachmentDiv">
77 <div class="noquote">
78 <div dir="ltr">This is an unsigned attachment.</div>
79 </div>
80 </div>
81 </div>
82 </td>
83 </tr>
84 <tr class="encrH">
85 <td dir="ltr">End of encrypted message</td>
86 </tr>
87 </table>
88 </div>
89 </div>
90 </div>
91 </body>
92</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..7f0b7abd
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,50 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 <a name="att2"/>
24 <div id="attachmentDiv2">
25 <hr/>
26 <div>
27 <a href="attachment:e0:2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
28 </div>
29 <div/>
30 </div>
31 <a name="att3"/>
32 <div id="attachmentDiv3">
33 <hr/>
34 <div>
35 <a href="attachment:e0:3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
36 </div>
37 <div/>
38 </div>
39 </div>
40 </div>
41 </td>
42 </tr>
43 <tr class="encrH">
44 <td dir="ltr">End of encrypted message</td>
45 </tr>
46 </table>
47 </div>
48 </div>
49 </body>
50</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..8d6b5814
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <hr/>
43 <div>
44 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
45 </div>
46 <div/>
47 </div>
48 <a name="att1.3"/>
49 <div id="attachmentDiv1.3">
50 <hr/>
51 <div>
52 <a href="attachment:e0:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
53 </div>
54 <div/>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signOkKeyOkH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="encrH">
68 <td dir="ltr">End of encrypted message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..73dbc5f4
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/iconic/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,57 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment1.txt</a>
36 </div>
37 <div/>
38 </div>
39 <a name="att1.3"/>
40 <div id="attachmentDiv1.3">
41 <hr/>
42 <div>
43 <a href="attachment:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>attachment2.txt</a>
44 </div>
45 <div/>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="signOkKeyOkH">
51 <td dir="ltr">End of signed message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </body>
57</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/encapsulated-with-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/encapsulated-with-attachment.mbox.html
new file mode 100644
index 00000000..26d3dd60
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/encapsulated-with-attachment.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">This is the first encapsulating message.</div>
12 </div>
13 </div>
14 <a name="att2"/>
15 <div id="attachmentDiv2">
16 <table cellspacing="1" cellpadding="1" class="rfc822">
17 <tr class="rfc822H">
18 <td dir="ltr">
19 <a href="attachment:2.1?place=body">Encapsulated message</a>
20 </td>
21 </tr>
22 <tr class="rfc822B">
23 <td>
24 <a name="att2.1"/>
25 <div id="attachmentDiv2.1">
26 <a name="att2.1.1"/>
27 <div id="attachmentDiv2.1.1">
28 <div class="noquote">
29 <div dir="ltr">This is the second encapsulated message.</div>
30 </div>
31 </div>
32 <a name="att2.1.2"/>
33 <div id="attachmentDiv2.1.2">
34 <table cellspacing="1" class="textAtm">
35 <tr class="textAtmH">
36 <td dir="ltr">attachment.txt</td>
37 </tr>
38 <tr class="textAtmB">
39 <td>
40 <div class="noquote">
41 <div dir="ltr">This is an attachment.</div>
42 </div>
43 </td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="rfc822H">
51 <td dir="ltr">End of encapsulated message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..49e503f1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,90 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <table cellspacing="1" class="textAtm">
45 <tr class="textAtmH">
46 <td dir="ltr">file.txt</td>
47 </tr>
48 <tr class="textAtmB">
49 <td>
50 <div class="noquote">
51 <div dir="ltr">some plain ascii text...</div>
52 <br/>
53 </div>
54 </td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="signOkKeyOkH">
62 <td dir="ltr">End of signed message</td>
63 </tr>
64 </table>
65 </div>
66 </div>
67 </td>
68 </tr>
69 <tr class="encrH">
70 <td dir="ltr">End of encrypted message</td>
71 </tr>
72 </table>
73 </div>
74 <a name="att2"/>
75 <div id="attachmentDiv2">
76 <hr/>
77 <div>
78 <a href="attachment:2?place=body">
79 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
80 </a>
81 </div>
82 <div>
83 <a href="attachment:2?place=body">image.png</a>
84 </div>
85 <div/>
86 </div>
87 </div>
88 </div>
89 </body>
90</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..67897491
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <table cellspacing="1" class="textAtm">
43 <tr class="textAtmH">
44 <td dir="ltr">file.txt</td>
45 </tr>
46 <tr class="textAtmB">
47 <td>
48 <div class="noquote">
49 <div dir="ltr">some plain ascii text...</div>
50 <br/>
51 </div>
52 </td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signOkKeyOkH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </td>
66 </tr>
67 <tr class="encrH">
68 <td dir="ltr">End of encrypted message</td>
69 </tr>
70 </table>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..6091ee5a
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,74 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <hr/>
61 <div>
62 <a href="attachment:2?place=body">
63 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
64 </a>
65 </div>
66 <div>
67 <a href="attachment:2?place=body">image.png</a>
68 </div>
69 <div/>
70 </div>
71 </div>
72 </div>
73 </body>
74</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..092d5e1c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-apple.mbox.html
@@ -0,0 +1,63 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.2"/>
34 <div id="attachmentDiv1.2.2">
35 <hr/>
36 <div>
37 <a href="attachment:1.2.2?place=body">
38 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
39 </a>
40 </div>
41 <div>
42 <a href="attachment:1.2.2?place=body">image.png</a>
43 </div>
44 <div/>
45 </div>
46 <a name="att1.2.3"/>
47 <div id="attachmentDiv1.2.3">
48 <div style="position: relative">
49 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
50 </div>
51 </div>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signWarnH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </body>
63</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..cc49cbcc
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,67 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 <a name="att1.3"/>
36 <div id="attachmentDiv1.3">
37 <table cellspacing="1" class="textAtm">
38 <tr class="textAtmH">
39 <td dir="ltr">broken.attachment</td>
40 </tr>
41 <tr class="textAtmB">
42 <td>
43 <div class="noquote">
44 <div dir="ltr">Let's break a signed message - This messageblock should not be here :D</div>
45 </div>
46 </td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 <a name="att2"/>
52 <div id="attachmentDiv2">
53 <div class="noquote">
54 <div dir="ltr">_______________________________________________</div>
55 <div dir="ltr">Plasma-devel mailing list</div>
56 <div dir="ltr">
57 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
58 </div>
59 <div dir="ltr">
60 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
61 </div>
62 </div>
63 </div>
64 </div>
65 </div>
66 </body>
67</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/smime-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..d3f3eeb3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlined/smime-signed-apple.mbox.html
@@ -0,0 +1,63 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.2"/>
32 <div id="attachmentDiv1.2.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2.2?place=body">
36 <img align="center" src="file:image.png" border="0" style="max-width: 100%"/>
37 </a>
38 </div>
39 <div>
40 <a href="attachment:1.2.2?place=body">image.png</a>
41 </div>
42 <div/>
43 </div>
44 <a name="att1.2.3"/>
45 <div id="attachmentDiv1.2.3">
46 <div style="position: relative">
47 <blockquote type="cite" class="">
48 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
49 </blockquote>
50 </div>
51 </div>
52 </div>
53 </div>
54 </td>
55 </tr>
56 <tr class="signErrH">
57 <td dir="ltr">End of signed message</td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </body>
63</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox
new file mode 100644
index 00000000..c05a7e69
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox
@@ -0,0 +1,33 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2.0.15 (GNU/Linux)
18
19hQEMAwzOQ1qnzNo7AQf/a3aNTLpQBfcUr+4AKsZQLj4h6z7e7a5AaCW8AG0wrbxN
20kBYB7E5jdZh45DX/99gvoZslthWryUCX2kKZ3LtIllxKVjqNuK5hSt+SAuKkwiMR
21Xcbf1KFKENKupgGSO9B2NJRbjoExdJ+fC3mGXnO3dT7xJJAo3oLE8Nivu+Bj1peY
22E1wCf+vcTwVHFrA7SV8eMRb9Z9wBXmU8Q8e9ekJ7ZsRX3tMeBs6jvscVvfMf6DYY
23N14snZBZuGNKT9a3DPny7IC1S0lHcaam34ogWwMi3FxPGJt/Lg52kARlkF5TDhcP
24N6H0EB/iqDRjOOUoEVm8um5XOSR1FpEiAdD0DON3y9JPATnrYq7sgYZz3BVImYY+
25N/jV8fEiN0a34pcOq8NQedMuOsJHNBS5MtbQH/kJLq0MXBpXekGlHo4MKw0trISc
26Rw3pW6/BFfhPJLni29g9tw==
27=fRFW
28-----END PGP MESSAGE-----
29
30_______________________________________________
31test mailing list
32test@lists.kde.org
33http://kde.org
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.html
new file mode 100644
index 00000000..8af2b1c6
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.html
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div class="noquote">
15 <div dir="ltr">some random text</div>
16 </div>
17 </td>
18 </tr>
19 <tr class="encrH">
20 <td dir="ltr">End of encrypted message</td>
21 </tr>
22 </table>
23 <div class="noquote">
24 <div dir="ltr">_______________________________________________</div>
25 <div dir="ltr">test mailing list</div>
26 <div dir="ltr">
27 <a href="mailto:test@lists.kde.org">test@lists.kde.org</a>
28 </div>
29 <div dir="ltr">
30 <a href="http://kde.org">http://kde.org</a>
31 </div>
32 </div>
33 </div>
34 </div>
35 </body>
36</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.tree
new file mode 100644
index 00000000..018f5c33
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-appendix.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox
new file mode 100644
index 00000000..529b4d3b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox
@@ -0,0 +1,55 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted - no seckey
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2
18
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
533Qu241eOBdb6
54=J3lb
55-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.html
new file mode 100644
index 00000000..a4427e01
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message (decryption not possible)<br/>Reason: Crypto plug-in "OpenPGP" could not decrypt the data.<br/>Error: Decryption failed</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;">No secret key found to encrypt the message. It is encrypted for following keys:<br/><a href="kmail:showCertificate#gpg ### OpenPGP ### 553D4262DA4BADF2">0x553D4262DA4BADF2</a><br/><a href="kmail:showCertificate#gpg ### OpenPGP ### F6E6A3D126C630E0">0xF6E6A3D126C630E0</a></div>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.tree
new file mode 100644
index 00000000..6680b8bc
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted-error.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox
new file mode 100644
index 00000000..b581602c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox
@@ -0,0 +1,29 @@
1From test@kolab.org Wed, 25 May 2011 23:49:40 +0100
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: inlinepgpencrypted
5Date: Wed, 25 May 2011 23:49:40 +0100
6Message-ID: <1786696.yKXrOjjflF@herrwackelpudding.localhost>
7X-KMail-Transport: GMX
8X-KMail-Fcc: 28
9X-KMail-Drafts: 7
10X-KMail-Templates: 9
11User-Agent: KMail/4.6 beta5 (Linux/2.6.34.7-0.7-desktop; KDE/4.6.41; x86_64; git-0269848; 2011-04-19)
12MIME-Version: 1.0
13Content-Transfer-Encoding: 7Bit
14Content-Type: text/plain; charset="us-ascii"
15
16-----BEGIN PGP MESSAGE-----
17Version: GnuPG v2.0.15 (GNU/Linux)
18
19hQEMAwzOQ1qnzNo7AQf/a3aNTLpQBfcUr+4AKsZQLj4h6z7e7a5AaCW8AG0wrbxN
20kBYB7E5jdZh45DX/99gvoZslthWryUCX2kKZ3LtIllxKVjqNuK5hSt+SAuKkwiMR
21Xcbf1KFKENKupgGSO9B2NJRbjoExdJ+fC3mGXnO3dT7xJJAo3oLE8Nivu+Bj1peY
22E1wCf+vcTwVHFrA7SV8eMRb9Z9wBXmU8Q8e9ekJ7ZsRX3tMeBs6jvscVvfMf6DYY
23N14snZBZuGNKT9a3DPny7IC1S0lHcaam34ogWwMi3FxPGJt/Lg52kARlkF5TDhcP
24N6H0EB/iqDRjOOUoEVm8um5XOSR1FpEiAdD0DON3y9JPATnrYq7sgYZz3BVImYY+
25N/jV8fEiN0a34pcOq8NQedMuOsJHNBS5MtbQH/kJLq0MXBpXekGlHo4MKw0trISc
26Rw3pW6/BFfhPJLni29g9tw==
27=fRFW
28-----END PGP MESSAGE-----
29
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.html
new file mode 100644
index 00000000..1f695bdf
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.html
@@ -0,0 +1,26 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div class="noquote">
15 <div dir="ltr">some random text</div>
16 </div>
17 </td>
18 </tr>
19 <tr class="encrH">
20 <td dir="ltr">End of encrypted message</td>
21 </tr>
22 </table>
23 </div>
24 </div>
25 </body>
26</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.tree
new file mode 100644
index 00000000..6680b8bc
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/inlinepgpencrypted.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/mailheader.css b/framework/src/domain/mimetreeparser/otp/autotests/data/mailheader.css
new file mode 100644
index 00000000..10181957
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/mailheader.css
@@ -0,0 +1,512 @@
1div.header {
2 margin-bottom: 10pt ! important;
3}
4
5table.textAtm {
6 margin-top: 10pt ! important;
7 margin-bottom: 10pt ! important;
8}
9
10tr.textAtmH,
11tr.textAtmB,
12tr.rfc822B {
13 font-weight: normal ! important;
14}
15
16tr.signInProgressH,
17tr.rfc822H,
18tr.encrH,
19tr.signOkKeyOkH,
20tr.signOkKeyBadH,
21tr.signWarnH,
22tr.signErrH {
23 font-weight: bold ! important;
24}
25
26tr.textAtmH td,
27tr.textAtmB td {
28 padding: 3px ! important;
29}
30
31table.rfc822 {
32 width: 100% ! important;
33 border: solid 1px black ! important;
34 margin-top: 10pt ! important;
35 margin-bottom: 10pt ! important;
36}
37
38table.textAtm,
39table.encr,
40table.signWarn,
41table.signErr,
42table.signOkKeyBad,
43table.signOkKeyOk,
44table.signInProgress,
45div.fancy.header table {
46 width: 100% ! important;
47 border-width: 0px ! important;
48 line-height: normal;
49}
50
51div.htmlWarn {
52 margin: 0px 5% ! important;
53 padding: 10px ! important;
54 text-align: left ! important;
55 line-height: normal;
56}
57
58div.fancy.header > div {
59 font-weight: bold ! important;
60 padding: 4px ! important;
61 line-height: normal;
62}
63
64div.fancy.header table {
65 padding: 2px ! important;
66 text-align: left ! important;
67 border-collapse: separate ! important;
68}
69
70div.fancy.header table th {
71 font-family: "Sans Serif" ! important;
72 font-size: 0px ! important;
73
74 padding: 0px ! important;
75 white-space: nowrap ! important;
76 border-spacing: 0px ! important;
77 text-align: left ! important;
78 vertical-align: top ! important;
79 background-color: #d6d2d0 ! important;
80 color: #221f1e ! important;
81 border: 1px ! important;
82}
83
84div.fancy.header table td {
85 font-family: "Sans Serif" ! important;
86 font-size: 0px ! important;
87
88 padding: 0px ! important;
89 border-spacing: 0px ! important;
90 text-align: left ! important;
91 vertical-align: top ! important;
92 width: 100% ! important;
93 background-color: #d6d2d0 ! important;
94 color: #221f1e ! important;
95 border: 1px ! important;
96}
97
98div.fancy.header table a:hover {
99 background-color: transparent ! important;
100}
101
102span.pimsmileytext {
103 position: absolute;
104 top: 0px;
105 left: 0px;
106 visibility: hidden;
107}
108
109img.pimsmileyimg {
110}
111
112div.quotelevelmark {
113 position: absolute;
114 margin-left:-10px;
115}
116
117@media screen {
118
119body {
120 font-family: "Sans Serif" ! important;
121 font-size: 0px ! important;
122 color: #1f1c1b ! important;
123 background-color: #ffffff ! important;
124}
125
126a {
127 color: #0057ae ! important;
128 text-decoration: none ! important;
129}
130
131a.white {
132 color: white ! important;
133}
134
135a.black {
136 color: black ! important;
137}
138
139table.textAtm { background-color: #1f1c1b ! important; }
140
141tr.textAtmH {
142 background-color: #ffffff ! important;
143 font-family: "Sans Serif" ! important;
144 font-size: 0px ! important;
145}
146
147tr.textAtmB {
148 background-color: #ffffff ! important;
149}
150
151table.signInProgress,
152table.rfc822 {
153 background-color: #ffffff ! important;
154}
155
156tr.signInProgressH,
157tr.rfc822H {
158 font-family: "Sans Serif" ! important;
159 font-size: 0px ! important;
160}
161
162table.encr {
163 background-color: #0069cc ! important;
164}
165
166tr.encrH {
167 background-color: #0080ff ! important;
168 color: #ffffff ! important;
169 font-family: "Sans Serif" ! important;
170 font-size: 0px ! important;
171}
172
173tr.encrB { background-color: #e0f0ff ! important; }
174
175table.signOkKeyOk {
176 background-color: #33cc33 ! important;
177}
178
179tr.signOkKeyOkH {
180 background-color: #40ff40 ! important;
181 color: #27ae60 ! important;
182 font-family: "Sans Serif" ! important;
183 font-size: 0px ! important;
184}
185
186tr.signOkKeyOkB { background-color: #e8ffe8 ! important; }
187
188table.signOkKeyBad {
189 background-color: #cccc33 ! important;
190}
191
192tr.signOkKeyBadH {
193 background-color: #ffff40 ! important;
194 color: #f67400 ! important;
195 font-family: "Sans Serif" ! important;
196 font-size: 0px ! important;
197}
198
199tr.signOkKeyBadB { background-color: #ffffe8 ! important; }
200
201table.signWarn {
202 background-color: #cccc33 ! important;
203}
204
205tr.signWarnH {
206 background-color: #ffff40 ! important;
207 color: #f67400 ! important;
208 font-family: "Sans Serif" ! important;
209 font-size: 0px ! important;
210}
211
212tr.signWarnB { background-color: #ffffe8 ! important; }
213
214table.signErr {
215 background-color: #cc0000 ! important;
216}
217
218tr.signErrH {
219 background-color: #ff0000 ! important;
220 color: #da4453 ! important;
221 font-family: "Sans Serif" ! important;
222 font-size: 0px ! important;
223}
224
225tr.signErrB { background-color: #ffe0e0 ! important; }
226
227div.htmlWarn {
228 border: 2px solid #ff4040 ! important;
229 line-height: normal;
230}
231
232div.header {
233 font-family: "Sans Serif" ! important;
234 font-size: 0px ! important;
235}
236
237div.fancy.header > div {
238 background-color: #43ace8 ! important;
239 color: #ffffff ! important;
240 border: solid #221f1e 1px ! important;
241 line-height: normal;
242}
243
244div.fancy.header > div a[href] { color: #ffffff ! important; }
245
246div.fancy.header > div a[href]:hover { text-decoration: underline ! important; }
247
248div.fancy.header > div.spamheader {
249 background-color: #cdcdcd ! important;
250 border-top: 0px ! important;
251 padding: 3px ! important;
252 color: black ! important;
253 font-weight: bold ! important;
254 font-size: smaller ! important;
255}
256
257div.fancy.header > table.outer {
258 background-color: #d6d2d0 ! important;
259 color: #221f1e ! important;
260 border-bottom: solid #221f1e 1px ! important;
261 border-left: solid #221f1e 1px ! important;
262 border-right: solid #221f1e 1px ! important;
263}
264
265div.senderpic{
266 padding: 0px ! important;
267 font-size:0.8em ! important;
268 border:1px solid #b3aba7 ! important;
269 background-color:#d6d2d0 ! important;
270}
271
272div.senderstatus{
273 text-align:center ! important;
274}
275
276div.quotelevel1 {
277 color: #008000 ! important;
278 font-style: italic ! important;
279}
280
281div.quotelevel2 {
282 color: #007000 ! important;
283 font-style: italic ! important;
284}
285
286div.quotelevel3 {
287 color: #006000 ! important;
288 font-style: italic ! important;
289}
290
291div.deepquotelevel1 {
292 color: #008000 ! important;
293 font-style: italic ! important;
294}
295
296div.deepquotelevel2 {
297 color: #007000 ! important;
298 font-style: italic ! important;
299}
300
301div.deepquotelevel3 {
302 color: #006000 ! important;
303 font-style: italic ! important;
304}
305
306blockquote {
307 margin: 4pt 0 4pt 0;
308 padding: 0 0 0 1em;
309 border-left: 2px solid #008000;
310 unicode-bidi: -webkit-plaintext
311}
312
313blockquote blockquote {
314 margin: 4pt 0 4pt 0;
315 padding: 0 0 0 1em;
316 border-left: 2px solid #007000;
317 unicode-bidi: -webkit-plaintext
318}
319
320blockquote blockquote blockquote {
321 margin: 4pt 0 4pt 0;
322 padding: 0 0 0 1em;
323 border-left: 2px solid #006000;
324 unicode-bidi: -webkit-plaintext
325}
326
327blockquote blockquote blockquote blockquote {
328 margin: 4pt 0 4pt 0;
329 padding: 0 0 0 1em;
330 border-left: 2px solid #008000;
331 unicode-bidi: -webkit-plaintext
332}
333
334blockquote blockquote blockquote blockquote blockquote {
335 margin: 4pt 0 4pt 0;
336 padding: 0 0 0 1em;
337 border-left: 2px solid #007000;
338 unicode-bidi: -webkit-plaintext
339}
340
341blockquote blockquote blockquote blockquote blockquote blockquote {
342 margin: 4pt 0 4pt 0;
343 padding: 0 0 0 1em;
344 border-left: 2px solid #006000;
345 unicode-bidi: -webkit-plaintext
346}
347
348blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
349 margin: 4pt 0 4pt 0;
350 padding: 0 0 0 1em;
351 border-left: 2px solid #008000;
352 unicode-bidi: -webkit-plaintext
353}
354
355blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
356 margin: 4pt 0 4pt 0;
357 padding: 0 0 0 1em;
358 border-left: 2px solid #007000;
359 unicode-bidi: -webkit-plaintext
360}
361
362blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
363 margin: 4pt 0 4pt 0;
364 padding: 0 0 0 1em;
365 border-left: 2px solid #006000;
366 unicode-bidi: -webkit-plaintext
367}
368
369.quotemarks{
370 color:transparent;
371 font-size:0px;
372}
373
374}
375@media print {
376
377body {
378 font-family: "Sans Serif" ! important;
379 font-size: 9pt ! important;
380 color: #000000 ! important;
381 background-color: #ffffff ! important
382}
383
384tr.textAtmH,
385tr.signInProgressH,
386tr.rfc822H,
387tr.encrH,
388tr.signOkKeyOkH,
389tr.signOkKeyBadH,
390tr.signWarnH,
391tr.signErrH,
392div.header {
393 font-family: "Sans Serif" ! important;
394 font-size: 9pt ! important;
395}
396
397div.fancy.header > div {
398 background-color: #d6d2d0 ! important;
399 color: #221f1e ! important;
400 padding: 4px ! important;
401 border: solid #221f1e 1px ! important;
402 line-height: normal;
403}
404
405div.fancy.header > div a[href] { color: #221f1e ! important; }
406
407div.fancy.header > table.outer{
408 background-color: #d6d2d0 ! important;
409 color: #221f1e ! important;
410 border-bottom: solid #221f1e 1px ! important;
411 border-left: solid #221f1e 1px ! important;
412 border-right: solid #221f1e 1px ! important;
413}
414
415div.spamheader {
416 display:none ! important;
417}
418
419div.htmlWarn {
420 border: 2px solid #ffffff ! important;
421 line-height: normal;
422}
423
424div.senderpic{
425 font-size:0.8em ! important;
426 border:1px solid black ! important;
427 background-color:#d6d2d0 ! important;
428}
429
430div.senderstatus{
431 text-align:center ! important;
432}
433
434div.noprint {
435 display:none ! important;
436}
437
438blockquote {
439 margin: 4pt 0 4pt 0;
440 padding: 0 0 0 1em;
441 border-left: 2px solid #008000;
442 unicode-bidi: -webkit-plaintext
443}
444
445blockquote blockquote {
446 margin: 4pt 0 4pt 0;
447 padding: 0 0 0 1em;
448 border-left: 2px solid #007000;
449 unicode-bidi: -webkit-plaintext
450}
451
452blockquote blockquote blockquote {
453 margin: 4pt 0 4pt 0;
454 padding: 0 0 0 1em;
455 border-left: 2px solid #006000;
456 unicode-bidi: -webkit-plaintext
457}
458
459blockquote blockquote blockquote blockquote {
460 margin: 4pt 0 4pt 0;
461 padding: 0 0 0 1em;
462 border-left: 2px solid #008000;
463 unicode-bidi: -webkit-plaintext
464}
465
466blockquote blockquote blockquote blockquote blockquote {
467 margin: 4pt 0 4pt 0;
468 padding: 0 0 0 1em;
469 border-left: 2px solid #007000;
470 unicode-bidi: -webkit-plaintext
471}
472
473blockquote blockquote blockquote blockquote blockquote blockquote {
474 margin: 4pt 0 4pt 0;
475 padding: 0 0 0 1em;
476 border-left: 2px solid #006000;
477 unicode-bidi: -webkit-plaintext
478}
479
480blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
481 margin: 4pt 0 4pt 0;
482 padding: 0 0 0 1em;
483 border-left: 2px solid #008000;
484 unicode-bidi: -webkit-plaintext
485}
486
487blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
488 margin: 4pt 0 4pt 0;
489 padding: 0 0 0 1em;
490 border-left: 2px solid #007000;
491 unicode-bidi: -webkit-plaintext
492}
493
494blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote blockquote {
495 margin: 4pt 0 4pt 0;
496 padding: 0 0 0 1em;
497 border-left: 2px solid #006000;
498 unicode-bidi: -webkit-plaintext
499}
500
501.quotemarks{
502 color:transparent;
503 font-size:0px;
504}
505
506.quotemarksemptyline{
507 color:transparent;
508 font-size:0px;
509 line-height: 12pt;
510}
511
512}
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox
new file mode 100644
index 00000000..ad050d8c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox
@@ -0,0 +1,7 @@
1From: hans@example.com
2To: karl@example.com
3Subject: Simple Mail Without Content-Type Header
4Date: Sat, 15 May 2010 10:52:24 +0200
5MIME-Version: 1.0
6
7asdfasdf \ No newline at end of file
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.html
new file mode 100644
index 00000000..9e3eb752
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.html
@@ -0,0 +1,14 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div class="noquote">
9 <div dir="ltr">asdfasdf</div>
10 </div>
11 </div>
12 </div>
13 </body>
14</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.tree
new file mode 100644
index 00000000..c003ec97
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/no-content-type.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox
new file mode 100644
index 00000000..168c8dc4
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox
@@ -0,0 +1,33 @@
1Content-Type: text/plain; charset="us-ascii"
2Content-Transfer-Encoding: 7bit
3
4-----BEGIN PGP MESSAGE-----
5Version: GnuPG v2
6
7owGdk31MlVUcx5G3jClvI1JH7GiOil0uYJATBW8FK6HkDtBJI93heQ6Xk8/L9Tnn
8XExALDfJQaJutl4UzUoCIxDwos0XTLktqJaJkJE5QAU3yMKpkRqdc+GC/dsfz/bs
9ec7v+/v+Pr/v2TnbxytgxvUt8T99cCirZEa9zw/5fopuIHX1xsjjr4gXgO2EqUDW
10+WdAMAVQRdQEJF0jSKKIMgNAGdsxkbBmA0jB1AxSdQ1JAAIZQxUo/BgjZpCN5Kn6
11SVEVMgPzX69CJCENEqFqYwgo2MYUCKAENjCu4MAOZBgQCNH/9NUoAoVIkw1kTLfl
126qquKJhMeDYDqwERQRoVf9yOkI2/KTgfGbp4J5R3ViGlvGTKoANTiABk3I4ZrORF
13FGsSlhmXmTSJNKyaAKPArhsUAjc1oECOAcOHbXp8samehJOAhsSAAxViSUzKFGpg
14CSPCoWm6BiiXFNb/9waeRxqCmuhpM6ADy5P+zGAVBbyAHwYF/CQxATtTHFiDXIP7
15Uu3IEPZMDytieYokUhQOEpENTLCRuEegYYLFERXatMm5+dIoINCGBVIzeJEZMB8L
16mzK043xG3OimUQvHwF4IDUT5kqc5FyBmw1yJd1AAFtZkjKh7BN7GAd07nkSK+ayG
175gEpOEoSUwnUPPQFc13GfOGGTjwfPcFSMQ8aF3OnbRoIDxJUEGGQ43PvyyjUNYm5
18R+L+dQnzGg1SXeCw8wDTiemoG4YIIH/s0OCjY5E/VRfsTLyESO61GVgW++c1qlBd
19oQGDUYNre9xPB0NcEnFZJoPppi4o83gU8MxxFCK9Ewvk94bz4Lk2B2z3jvD1mhHg
205e/nLW60V8CjwZ7LTpKCxjNIzhNRXcER/6RVXUzaGdocqGY3vd+5LO7+qSV3pdFP
21+s6tv3Jp8EZg+V9qza9zKhf4b3xn4MfVSYOW+qaihPsHrc3O5hpzXCV77sROqxWw
22vbfaOrpClvTszr8+8pVc/ELc0aeOm+856kqfDYNZmUXt33+Y1nLT4nvH0tomz47f
23tfzP+dlpQW8vRj3v+qcXyXpef3Hvldy2gfECZ3LMGdMomlsR8fQm42zMcLh3eW1N
24Xszwqt5dLXimuVk6vb+/etNN8xgeuhoWeb79myzXg9jUv11xbQ8OR9/wnXP7QGzj
25kWN+v+RpX58qa2dbTr2VeMn/aPJrOZ3ZYS0dW7s6dhcu/3lzT1DdhS8zGgIrynIH
26tjkf21tmXtZ8pOjj/a7xsahsEGKxLG4h+St9Oj9ace1kn1+vdWl06+nEvhPlOWnh
275OVrw1nzTv6+pjo3K9Vr3YFZeZmu6K1jA2OW7M96Bs85ChL23ck95Cx5/bfuHeX3
28wktCXYN1/fvWpxxIfyk2/pm0N4bCRyrfS8z13VPNMr6rckbuP1YS2rp0z27X/FEy
29FPHm4OHHv7iXsuaPg5dpg6XWN9B/SG/81Bq8tv5WwMjFRVUZId6Rn+sL68uudls3
30z+vMvLwwrdw5t+Pb5ISuppDUVkvmme4nTahhwYX7setmpdxt29ZeO5MFPFK6Pep2
31+nlHdfFa78ZFpSMV/Q1n/wU=
32=zzr4
33-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.html
new file mode 100644
index 00000000..585bb4f0
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.html
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <div class="noquote">
24 <div dir="ltr">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est.</div>
25 </div>
26 </td>
27 </tr>
28 <tr class="signWarnH">
29 <td dir="ltr">End of signed message</td>
30 </tr>
31 </table>
32 </div>
33 </div>
34 </body>
35</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encoded.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox
new file mode 100644
index 00000000..fbe5ce7f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox
@@ -0,0 +1,46 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11
12--nextPart1357031.ppLHckZtsp
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15
16Version: 1
17--nextPart1357031.ppLHckZtsp
18Content-Type: application/octet-stream
19Content-Disposition: inline; filename="msg.asc"
20
21-----BEGIN PGP MESSAGE-----
22Version: GnuPG v2
23
24hQEMAwzOQ1qnzNo7AQgAkQI925mOOybpzcGcjUE7jmfMVoUvJW6Br9Zx9UEtko5H
25fdmnrrUhFDyhBdwcg2E6AChipNcJjZhdX17lNAO0kI2IoPJAEkX9lyhjoiVEH/M8
26xmJEKFRejYzefx0S8esKyqqtfAmMKfsA5HmKRY8iDmQnI5d/FKhkcqLTJYo7fQyL
27rEEycdr5PU5OJbMtE5+8+kbmG8PywjiCCad68FXakXIEFyWX1A99W/0ScWtqrqDB
28kuQSdxJs4aAZWopxGKxDobt/qVyG6W6+PUnLx3eg80KytcWNxLJRV7WEJMj4OYCU
29JdHrh4J1DTTRbuRmqx9de3fBDFHNNZpJP43UJYJWtoSMAxiZbYU0+6KtAQQAnRxD
30XNwzBSmPk9NG3HYf/RleTAS8/fMp3D973Y3VF5JV72ljWqZO/1o/3RIpD0pl5nSE
31nI0wPyncmPvAgQl5EAKTdYonKLuMCTbQ4eT7vkOdfA/HUxgaoE8ppH/OYXDDiqz/
322GlNCCHcaQcVWwkHbWWgyhd/VvB7Mt9PVqPgTsHSwQ4BZf/JDwWe3MDAg21Raryf
33dN4ZmWUzd3osDIRyy8H2hZL9vgZ3r0auIP6DMyYrPf3yTj9ApZeBiIpgBvqMwvR/
348si6r1JaXr48KRCxAkn9fIXe2jMwQE2bk5tYDrTXY868V3DA5iKq1dgXUSn0tzG3
350x9pjaOFkwxm0wtlpwnhZREJ9/ieIY7hy6p7CDpq4ZGRh8jQta4tWrjxN0wly+Dh
36a9TjzHzgTh9BTh7vjcDLitOQFL5NcCQtK717FQ5Z1DRnkHDVLPoyPnW+5sllOVr9
37UcqNXwrPbrtElFjHULL5Y1pem1+AE6nCAtlvCAc7cil6QDsU508sOXW7BhTWATIU
38tGHg/nIC0qVs24LR3MyYrwvfXL2JOkN/IK/g+0bbs6DMYVYaEOjcjqtidxWuLsE5
39aFEwlUFzcTcSauW+AOKwH+YFihRnlh9+4taaZxGZeutb12D5u8eEk+3nyVcsdogY
40k/nT6ElN8i/Z2vgcxL6ABvB+g/bZmp/eCJphDNYc00lP8NMC4EEJvTZL438ThJ3j
41wz0Qo4PlV0/OMXYxP2iZup2/rCe+pkmc9Gyz3Mkal4/9bBtIgP9cWBR7JZLMrK50
42KO4+NtrZYEY4JXRJlAo=
43=1lYB
44-----END PGP MESSAGE-----
45
46--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.html
new file mode 100644
index 00000000..54c58b85
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.html
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div style="position: relative; word-wrap: break-word">
30 <a name="att"/>
31 <div id="attachmentDiv">
32 <div class="noquote">
33 <div dir="ltr">encrypted message text</div>
34 </div>
35 </div>
36 </div>
37 </td>
38 </tr>
39 <tr class="signOkKeyOkH">
40 <td dir="ltr">End of signed message</td>
41 </tr>
42 </table>
43 </td>
44 </tr>
45 <tr class="encrH">
46 <td dir="ltr">End of encrypted message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </body>
52</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted+signed.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox
new file mode 100644
index 00000000..f5d083ff
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox
@@ -0,0 +1,52 @@
1Received: from konqi
2From: "Konqui" <konqi@example.org>
3To: "Bird" <bird@example.org>
4Subject: gpg problem 1/2
5Date: Tue, 22 Mar 2016 17:09:18 +0100
6Message-ID: <123456@example.org>
7Accept-Language: de-DE, en-US
8Content-Language: en-US
9Content-Type: multipart/mixed;
10 boundary="_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_"
11MIME-Version: 1.0
12
13
14--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
15Content-Type: text/plain; charset="us-ascii"
16
17
18--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
19Content-Type: application/pgp-encrypted;
20 name="PGPMIME Versions Identification"
21Content-Description: PGP/MIME Versions Identification
22Content-Disposition: attachment; filename="PGPMIME Versions Identification";
23 size=77; creation-date="Tue, 22 Mar 2016 16:09:18 GMT";
24 modification-date="Tue, 22 Mar 2016 16:09:18 GMT"
25Content-ID: <D82BB3DF89947646AD6C4C24C8C54BAC@example.org>
26Content-Transfer-Encoding: base64
27
28VmVyc2lvbjogMQ0NCg==
29
30--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_
31Content-Type: application/octet-stream; name="encrypted.asc"
32Content-Description: OpenPGP encrypted message.asc
33Content-Disposition: attachment; filename="encrypted.asc"; size=872;
34 creation-date="Tue, 22 Mar 2016 16:09:18 GMT";
35 modification-date="Tue, 22 Mar 2016 16:09:18 GMT"
36Content-ID: <58A712E65AB1824AB726904A6449178F@example.org>
37Content-Transfer-Encoding: base64
38
39LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tClZlcnNpb246IEdudVBHIHYxCkNvbW1lbnQ6IFVz
40aW5nIEdudVBHIHdpdGggSWNlZG92ZSAtIGh0dHA6Ly93d3cuZW5pZ21haWwubmV0LwoKaEl3REdK
41bHRoVFQ3b3EwQkEvOU50TExYYmlJSlZTNnBPeW53RWVTem5yUUs3a1lWbGE4Uk00My8vSkVDQ2tH
42SgphekVhU0J6bmFiQnY2ZXBhRm1RdFZITE1YbENiWm5NbVc5bG95cVBCZk1vQW1zNmtLS0JkRy9q
43cWh1czg5aVhFCitzZVhuZ0MyMzNWYS9nWk1iMkR4T3FJb2tWTmZqOXRwUjd4UTh3Uy9qSFREaUxO
44YzFHT1FDN2t1NDJ6MmJOTEEKSVFGUkQvcWJCRno4OWhVNHdQNGNZb0F5c09uRURvakZyc3JuQ2lk
45VEhKT0pybmRNNlBQVXRIL2pRQ3lmci9FRwoydFNwSndZS3ZtVDZseTN5cWFHTEJ0UlBJeGl2K2RN
46ZSs3eXcwdDQwcWJqdnZhVEdhdkVyRUJKRUtYNWVXYlROCi9zamFqSHBVSHFzNlNJaU1oZUg5ZHIr
47V2Z6Rk9OdFZiUEVnR1JtT0VSaGxnVGwvbkxvODZBWnBqSnJvSUdLSkoKdFRIQ2NvUUdBV0crTjd3
48ckNFMVJ4UjBra01zNG5Sb3pqMFRMdTZaeVhNcytIMDYzTWV3VFBOeE5BaVFUMU5iaQp1ZEtXbWZM
49Qmx4bjA2cCtKRHpVS3hqOFBGd09iZGJ4VHZBQ3piQXZCWTFhSE1RPT0KPW1MbDMKLS0tLS1FTkQg
50UEdQIE1FU1NBR0UtLS0tLQoK
51
52--_003_55514CDCA78D430384C5F0810DF10C7Adsmpgde_--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.html
new file mode 100644
index 00000000..ca8d7fbb
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.html
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1"/>
10 <a name="att2"/>
11 <div id="attachmentDiv2">
12 <table cellspacing="1" cellpadding="1" class="encr">
13 <tr class="encrH">
14 <td dir="ltr">Encrypted message</td>
15 </tr>
16 <tr class="encrB">
17 <td>
18 <div style="position: relative; word-wrap: break-word">
19 <a name="att"/>
20 <div id="attachmentDiv">
21 <a name="att1"/>
22 <div id="attachmentDiv1">
23 <div class="noquote">
24 <div dir="ltr">test</div>
25 </div>
26 </div>
27 </div>
28 </div>
29 </td>
30 </tr>
31 <tr class="encrH">
32 <td dir="ltr">End of encrypted message</td>
33 </tr>
34 </table>
35 </div>
36 </div>
37 </div>
38 </body>
39</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.tree
new file mode 100644
index 00000000..8ef3df2d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-applemail.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::EncryptedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox
new file mode 100644
index 00000000..2d9726ea
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox
@@ -0,0 +1,115 @@
1From test@kolab.org Fri May 01 15:12:47 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: enc & non enc attachment
5Date: Fri, 01 May 2015 17:12:47 +0200
6Message-ID: <13897561.XENKdJMSlR@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart1939768.sIoLGH0PD8"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart1939768.sIoLGH0PD8
16Content-Type: multipart/encrypted; boundary="nextPart2814166.CHKktCGlQ3"; protocol="application/pgp-encrypted"
17
18
19--nextPart2814166.CHKktCGlQ3
20Content-Type: application/pgp-encrypted
21Content-Disposition: attachment
22Content-Transfer-Encoding: 7Bit
23
24Version: 1
25--nextPart2814166.CHKktCGlQ3
26Content-Type: application/octet-stream
27Content-Disposition: inline; filename="msg.asc"
28Content-Transfer-Encoding: 7Bit
29
30-----BEGIN PGP MESSAGE-----
31Version: GnuPG v2
32
33hIwDGJlthTT7oq0BA/9cXFQ6mN9Vxnc2B9M10odS3/6z1tsIY9oJdsiOjpfxqapX
34P7nOzR/jNWdFQanXoG1SjAcY2FeZEN0c3SkxEM6R5QVF1vMh/Xsni1clI+peZyVT
35Z4OSU74YCfYLg+cgDnPCF3kyNPVe6Z1pnfWOCZNCG3rpApw6UVLN63ScWC6eQIUB
36DAMMzkNap8zaOwEIANKHn1svvj+hBOIZYf8R+q2Bw7cd4xEChiJ7uQLnD98j0Fh1
3785v7/8JbZx6rEDDenPp1mCciDodb0aCmi0XLuzJz2ANGTVflfq+ZA+v1pwLksWCs
380YcHLEjOJzjr3KKmvu6wqnun5J2yV69K3OW3qTTGhNvcYZulqQ617pPa48+sFCgh
39nM8TMAD0ElVEwmMtrS3AWoJz52Af+R3YzpAnX8NzV317/JG+b6e2ksl3tR7TWp1q
402FOqC1sXAxuv+DIz4GgRfaK1+xYr2ckkg+H/3HJqa5LmJ7rGCyv+Epfp9u+OvdBG
41PBvuCtO3tm0crmnttMw57Gy35BKutRf/8MpBj/nS6QFX0t7XOLeL4Me7/a2H20wz
42HZsuRGDXMCh0lL0FYCBAwdbbYvvy0gz/5iaNvoADtaIu+VtbFNrTUN0SwuL+AIFS
43+WIiaSbFt4Ng3t9YmqL6pqB7fjxI10S+PK0s7ABqe4pgbzUWWt1yzBcxfk8l/47Q
44JrlvcE7HuDOhNOHfZIgUP2Dbeu+pVvHIJbmLsNWpl4s+nHhoxc9HrVhYG/MTZtQ3
45kkUWviegO6mwEZjQvgBxjWib7090sCxkO847b8A93mfQNHnuy2ZEEJ+9xyk7nIWs
464RsiNR8pYc/SMvdocyAvQMH/qSvmn/IFJ+jHhtT8UJlXJ0bHvXTHjHMqBp6fP69z
47Jh1ERadWQdMaTkzQ+asl+kl/x3p6RZP8MEVbZIl/3pcV+xiFCYcFu2TETKMtbW+b
48NYOlrltFxFDvyu3WeNNp0g9k0nFpD/T1OXHRBRcbUDWE4QF6NWTm6NO9wy2UYHCi
497QTSecBWgMaw7cUdwvnW6chIVoov1pm69BI9D0PoV76zCI7KzpiDsTFxdilKwbQf
50K/PDnv9Adx3ERh0/F8llBHrj2UGsRs4aHSEBDBJIHDCp8+lqtsRcINQBKEU3qIjt
51wf5vizdaVIgQnsD2z8QmBQ7QCCipI0ur6GKl+YWDDOSDLDUs9dK4A6xo/4Q0bsnI
52rH63ti5HslGq6uArfFkewH2MWff/8Li3uGEqzpK5NhP5UpbArelK+QaQQP5SdsmW
53XFwUqDS4QTCKNJXw/5SQMl8UE10l2Xaav3TkiOYTcBcvPNDovYgnMyRff/tTeFa8
5483STkvpGtkULkCntp22fydv5rg6DZ7eJrYfC2oZXdM87hHhUALUO6Y/VtVmNdNYw
55F3Uim4PDuLIKt+mFqRtFqnWm+5X/AslC31qLkjH+Fbb83TY+mC9gbIn7CZGJRCjn
56zzzMX2h15V/VHzNUgx9V/h28T0/z25FxoozZiJxpmhOtqoxMHp+y6nXXfMoIAD1D
57963Pc7u1HS0ny54A7bqc6KKd4W9IF7HkXn3SoBwCyn0IOPoKQTDD8mW3lbBI6+h9
58vP+MAQpfD8s+3VZ9r7OKYCVmUv47ViTRlf428Co6WT7rTHjGM09tqz826fTOXA==
59=6Eu9
60-----END PGP MESSAGE-----
61
62--nextPart2814166.CHKktCGlQ3--
63
64--nextPart1939768.sIoLGH0PD8
65Content-Disposition: attachment; filename="image.png"
66Content-Transfer-Encoding: base64
67Content-Type: image/png; name="image.png"
68
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
112o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
113
114--nextPart1939768.sIoLGH0PD8--
115
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..092a3440
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.html
@@ -0,0 +1,77 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <hr/>
45 <div>
46 <a href="attachment:1:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
47 </div>
48 <div/>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">End of signed message</td>
55 </tr>
56 </table>
57 </div>
58 </div>
59 </td>
60 </tr>
61 <tr class="encrH">
62 <td dir="ltr">End of encrypted message</td>
63 </tr>
64 </table>
65 </div>
66 <a name="att2"/>
67 <div id="attachmentDiv2">
68 <hr/>
69 <div>
70 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
71 </div>
72 <div/>
73 </div>
74 </div>
75 </div>
76 </body>
77</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..473f0b10
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment-and-non-encrypted-attachment.mbox.tree
@@ -0,0 +1,11 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
10 * MimeTreeParser::AttachmentMessagePart
11 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox
new file mode 100644
index 00000000..4204fb0b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox
@@ -0,0 +1,57 @@
1From test@kolab.org Fri May 01 15:13:18 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: enc attachment
5Date: Fri, 01 May 2015 17:13:18 +0200
6Message-ID: <2401407.XhOc2XYoOt@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart4793536.cjk9hKXLQ5"; protocol="application/pgp-encrypted"
11
12
13--nextPart4793536.cjk9hKXLQ5
14Content-Type: application/pgp-encrypted
15Content-Disposition: attachment
16Content-Transfer-Encoding: 7Bit
17
18Version: 1
19--nextPart4793536.cjk9hKXLQ5
20Content-Type: application/octet-stream
21Content-Disposition: inline; filename="msg.asc"
22Content-Transfer-Encoding: 7Bit
23
24-----BEGIN PGP MESSAGE-----
25Version: GnuPG v2
26
27hIwDGJlthTT7oq0BBACLMnR5Mln6JGCccvqZCgM3qUkFWZ7a33b7Nl2g5lSOLX6q
28dlGOr/0jAuqdkRwCDTom3hsrH2vf1kARTSST+5cewngS2CgBTAwwc8JymEagTkKf
29VK/tTnM6G7puMVkwuafpuRggyJAUYvjktgUKOUaXtuxX71g0NagAFQGqlvGuq4UB
30DAMMzkNap8zaOwEH+wWSs5xdV1x37T11EnUvkhoOMu+uId2U7NEx2JdQ/FGJZdti
31mtqfM9GKTtQlGVcn3ISH7Wmrw3x0bsOLuW7oxkU4xIS3tVvibxaaWdmponN5TUai
32Dr4LCTEmG7+jLNopF6V4zPmpQ9YxMwQOm8ITml+auNOg9EtHxavwr3Xd1hOYA92N
331bkOiHzmb9hQtUy1GfRRk91tRqtRPoaamczLxWV9yROFDRNuSSbZ8oBU/K4YgSTL
34D+/FhCt6MxV0DQzp+UCSL7ZsMx+ldPnZK44Udd17+U3xQDDUffo6cSg6FAF425Rh
35v3ZQP0j7LtSIwDh2Rxc+Is4DuSmfZksL5nLPH5nS6QGJnsVEqVcZgQPktl1Zaeil
36x/6WaWruuJm92G2fd9x2/giTLZnk918BVi/n00xR/n4bnSQmmFhXVqAVjGlG6Tr9
37dxej8dSiFdxO8ZjFe5tguQw76xlCu/9MxmSXTP7Mfvm4jqdcjUOINwHOzR/h2T62
38ZlrmqoxMHm4RN0PQ334tSzQXD4gcoUHL+xq62ATt7/jx0p0pIXPmPVUFopCk8k1E
39m2ErPLnyfGLd4LNZRL03oP0jCjX6Q/LFWLTjCIdU6+aM6nT26CZy98yZV0SRGyhu
40qYxN0aVW+RatmDRWWtouOJllQouQ7ZaqmjHLgyOj32/oT8cYUWWdFswSsnMhJjxb
41r6iajUeAZgiN+zqwgf6j1Z8/mMvb+yirP+Rn9ME1fq3XSYHlnIOxKNBa+St8DdaP
42/ZvrkwNTpVp1GmaZLBXdqdeLmflJ4U/X7wphZGR3sgjOwj0oYotX1Zb8OrtlP5WC
43VXhhrt40e7Ilt2B0x7Xe9DWKByDCqrQUhwxwTS3miiKH9G1VEcHko70O98RjKJQ3
44I4VW6e/Gqv2zAMiiOu1MBTeGfPQItca4bUrVzhKjm27twtZD4wLSQDTQECxrCWHC
45BFAdzvsIry0FIXoO6Vh16Hojq+YZ8tpmknGfpg0pnuRvAdDWU+0uuECXDE0UZFWC
462g3Bs2Dn2BYYyrI6X92swHz8qP3JvdxN0dpsYMkMdHN4yWXJogNSfXzy2udf0A4P
47NNZMOonhlwH+DBRfcWS0A/j0/fdDCDzR5Ca5dbX7lL4EscbBeoCP1JJyVoOp6DUc
48ICuHJGGrnpNdG9DMa97tqpyGRHTAwI3lJXPKTDEHN9v9XobIyndFgi/tcPLZ7QWz
499mN94NKLmeYWjrMiRbNQk8BYXR9K17SHb4BkIMdBxRsJjgMEC8qniUH64Nnf8/x4
50yaRCuUo0bkHDE3AqCzZE1R0he66dDkfOIz+mLwcpG8jZWjFm7sXAflBe3jvIc0lm
51NyWQ1WnMkP83fWm/+YqrLLf+tTQtievRPeS1Dd/7v9yqUWEmQ0pUOj3MNf9Ej2KI
52vu5ap7fHIevcBn42BPwQgSnp4YmXEY0ir5Ccwogusnt7QliNSRmkN6Jap4AF
53=AVJ4
54-----END PGP MESSAGE-----
55
56--nextPart4793536.cjk9hKXLQ5--
57
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..2b266b02
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.html
@@ -0,0 +1,66 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">test text</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <hr/>
43 <div>
44 <a href="attachment:e0:1.2?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>file.txt</a>
45 </div>
46 <div/>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signOkKeyOkH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="encrH">
60 <td dir="ltr">End of encrypted message</td>
61 </tr>
62 </table>
63 </div>
64 </div>
65 </body>
66</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..f433fd45
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-attachment.mbox.tree
@@ -0,0 +1,8 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::MimeMessagePart
5 * MimeTreeParser::TextMessagePart
6 * MimeTreeParser::MessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox
new file mode 100644
index 00000000..9afd17e3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox
@@ -0,0 +1,48 @@
1From you@you.com Sat, 29 Mar 2014 15:04:21 +0100
2FCC: imap://hefee%40netzguerilla.net@mail.netzguerilla.net/Sent
3X-Identity-Key: id1
4X-Account-Key: account4
5Message-ID: <5336D2E5.6010602@you.com>
6Date: Sat, 29 Mar 2014 15:04:21 +0100
7From: you <you@you.com>
8X-Mozilla-Draft-Info: internal/draft; vcard=0; receipt=0; DSN=0; uuencode=0
9User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Icedove/24.4.0
10MIME-Version: 1.0
11To: test@kolab.com
12Subject: test
13X-Enigmail-Version: 1.6
14X-Enigmail-Draft-Status: 515
15X-Enigmail-Draft-Status: 739
16Content-Type: multipart/encrypted;
17 protocol="application/pgp-encrypted";
18 boundary="23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5"
19
20This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156)
21--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5
22Content-Type: application/pgp-encrypted
23Content-Description: PGP/MIME version identification
24
25Version: 1
26
27--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5
28Content-Type: application/octet-stream; name="encrypted.asc"
29Content-Description: OpenPGP encrypted message
30Content-Disposition: inline; filename="encrypted.asc"
31
32-----BEGIN PGP MESSAGE-----
33Version: GnuPG v1
34Comment: Using GnuPG with Icedove - http://www.enigmail.net/
35
36hIwDGJlthTT7oq0BA/9NtLLXbiIJVS6pOynwEeSznrQK7kYVla8RM43//JECCkGJ
37azEaSBznabBv6epaFmQtVHLMXlCbZnMmW9loyqPBfMoAms6kKKBdG/jqhus89iXE
38+seXngC233Va/gZMb2DxOqIokVNfj9tpR7xQ8wS/jHTDiLNc1GOQC7ku42z2bNLA
39IQFRD/qbBFz89hU4wP4cYoAysOnEDojFrsrnCidTHJOJrndM6PPUtH/jQCyfr/EG
402tSpJwYKvmT6ly3yqaGLBtRPIxiv+dMe+7yw0t40qbjvvaTGavErEBJEKX5eWbTN
41/sjajHpUHqs6SIiMheH9dr+WfzFONtVbPEgGRmOERhlgTl/nLo86AZpjJroIGKJJ
42tTHCcoQGAWG+N7wrCE1RxR0kkMs4nRozj0TLu6ZyXMs+H063MewTPNxNAiQT1Nbi
43udKWmfLBlxn06p+JDzUKxj8PFwObdbxTvACzbAvBY1aHMQ==
44=mLl3
45-----END PGP MESSAGE-----
46
47--23VWJ4jAoB40SD17lh6TOBXK3fQSEGNu5--
48
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.html
new file mode 100644
index 00000000..09d904bb
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.html
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">test</div>
21 </div>
22 </div>
23 </div>
24 </div>
25 </td>
26 </tr>
27 <tr class="encrH">
28 <td dir="ltr">End of encrypted message</td>
29 </tr>
30 </table>
31 </div>
32 </div>
33 </body>
34</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.tree
new file mode 100644
index 00000000..009ba99a
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-enigmail1.6.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox
new file mode 100644
index 00000000..c4f14226
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox
@@ -0,0 +1,17 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11--nextPart1357031.ppLHckZtsp
12Content-Type: application/pgp-encrypted
13Content-Disposition: attachment
14
15Version: 1
16
17--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.html
new file mode 100644
index 00000000..52196784
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.html
@@ -0,0 +1,19 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <hr/>
11 <div>
12 <a href="attachment:1?place=body"><img align="center" height="48" width="48" src="file:application-pgp-encrypted.svg" border="0" style="max-width: 100%" alt=""/>Unnamed</a>
13 </div>
14 <div/>
15 </div>
16 </div>
17 </div>
18 </body>
19</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.tree
new file mode 100644
index 00000000..79a20c8d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-noData.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::AttachmentMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox
new file mode 100644
index 00000000..2957bf3c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox
@@ -0,0 +1,114 @@
1From test@kolab.org Fri May 01 15:13:51 2015
2From: testkey <test@kolab.org>
3To: you@you.com
4Subject: non enc attachment
5Date: Fri, 01 May 2015 17:13:51 +0200
6Message-ID: <20157069.RcaNBhWVXx@tabin.local>
7X-KMail-Identity: 1197256126
8User-Agent: KMail/4.13.0.1 (Linux/3.19.1-towo.1-siduction-amd64; KDE/4.14.2; x86_64; git-cd33034; 2015-04-11)
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart1612969.Xqz3IcFXZ3"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart1612969.Xqz3IcFXZ3
16Content-Type: multipart/encrypted; boundary="nextPart2213427.hvfAsaxZ1O"; protocol="application/pgp-encrypted"
17
18
19--nextPart2213427.hvfAsaxZ1O
20Content-Type: application/pgp-encrypted
21Content-Disposition: attachment
22Content-Transfer-Encoding: 7Bit
23
24Version: 1
25--nextPart2213427.hvfAsaxZ1O
26Content-Type: application/octet-stream
27Content-Disposition: inline; filename="msg.asc"
28Content-Transfer-Encoding: 7Bit
29
30-----BEGIN PGP MESSAGE-----
31Version: GnuPG v2
32
33hIwDGJlthTT7oq0BBACdvp3PFrRx6vxZhxt06LqyaO7+SWBbVUr7GOa3QaYCCBm+
34/KTUZEfhPuGVcsVpJKZbPsUKVhYfvYpDAsZu3TehmKflobWAV/cCIK2BkQB744pd
35oaCtTj7pmCO05Zt5Uo/tXbrgceuW+/huwn2DO2fk4MUBsluH3fMbvccZJnR3yoUB
36DAMMzkNap8zaOwEIAOTKI8Bh3NhfuJdWDsjv+UT6E4kf/zg3D95mJ+3gK8kHFXdd
37YyEKaMsYx64kSwm1KcjsJ4gWykJlB34YDDfcIrnbgO2QRss9GhgOcUtLr0KNcY+0
38OJ4sbNmI8I3XssMb4rHtDrcXc0ODd0v/C/Lw2VfUdN+bBY4EetG096OPiZ4R41kF
39Rj95nhO8tpoJx9VltegCdZI2AxtykOYvUaLFyYqCoKMmQwqGjdaUv1CeMnxUIPsn
40A/x6TQ0AjpZ5IfMqO7QmOv3ACFo5/Ur93NauOK6szg/zdih9OxUL0Qid3nZQQwqA
41J9ZChTcUgdjQo8EjpWLy0oXR9uLSHcLwRo3OdRzS6QEz7Dus6hmpEal3zTZFj2NR
42mK38tpp+eWhzSAFAx8tyImz8SU2N2o7xQHlEdlWYGeIQg0embMnmMv6WJVWhYahb
43x5OTfHCGwHFsLhZDmtaNhAVMlYdqxKXoR45H9cmGNPpU5kN5Ckjr6I+I51cfgAOE
441vF54jYHXd1btfGrwAyKWBfFVQFPWjuIUdsEl8zDjNTmcCCbA77tEGohSqDi+WWL
45LyYw5g/uwwZ+5OzeRdjAJ+9xtJ+WXhnDUffG8GgGgZWBQD+S2Ix4lZ2NcAeyLPt/
46cXeDHkPUXj7cjm0hl7SvBKzR6X4EEWO/hh19mxngd4+e19q6Qm4K2QMfTwQQyNED
47whBkRXhcXcRxWlb/ICwFDIgxKLJko5HVTknBJDllNdm6l2C4Y9/IY2imqXni8xZX
48zQfAkDOBlfouUrHbPuBCRdCLmp7BgbanCaJDvgYGBvXEgjMKpV3bezTfm4Ugwiyk
49dJfMu/4XftZy7XqoFuDheNXuQ5JobpvVDaiTQ0EWHpHeX3TZ0xa8i1FO6ANLakUp
50aVFWzYl91bxbNHIcPh278neyi+LNWWT6TvkCwcbUYUfuIySOwfSUJAHDIJOx50Ha
51If0fNQDtF4o9mDFwXDwVf8e2zx5NjheqgYX/qIWjFE2cCCkUM4UkNrkYBOiwnh9F
52RJz4M6wKPhZT34MBlTKgwDbypDp+XYnM2HunzIDXCAigYsD/AuLNeFwsIPiXWJ47
53oXamEJxyqS9G0t/iy7+1mbNiFct7pvHt6QUKZ9aXSXj3MkQuWjjVNvMz6KocTSyL
54AeWQNYuvA5NkyZOA5+VU1ma3wn7IAXYkgw+OMvcz9VNevXNg956ZnGbb47Fqppp+
55MjK2ptM1UzIEnHxXtq3KFrXG1AzzhyFnKIjsiDpFTlMGTT9pRGnK8zyYXYPEgpwW
56874A5auLFOvhwPSNMhMai+XSoE3P+zZDqhXMYU8c49O+SeOtISg3Iy5tXuIPlIps
577k0KA60hPulMYBQLtZ/yDO/gXhkeWaw=
58=EJZ6
59-----END PGP MESSAGE-----
60
61--nextPart2213427.hvfAsaxZ1O--
62
63--nextPart1612969.Xqz3IcFXZ3
64Content-Disposition: attachment; filename="image.png"
65Content-Transfer-Encoding: base64
66Content-Type: image/png; name="image.png"
67
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
111o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
112
113--nextPart1612969.Xqz3IcFXZ3--
114
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.html
new file mode 100644
index 00000000..e20a9568
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.html
@@ -0,0 +1,69 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">test text</div>
40 </div>
41 </div>
42 </div>
43 </td>
44 </tr>
45 <tr class="signOkKeyOkH">
46 <td dir="ltr">End of signed message</td>
47 </tr>
48 </table>
49 </div>
50 </div>
51 </td>
52 </tr>
53 <tr class="encrH">
54 <td dir="ltr">End of encrypted message</td>
55 </tr>
56 </table>
57 </div>
58 <a name="att2"/>
59 <div id="attachmentDiv2">
60 <hr/>
61 <div>
62 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
63 </div>
64 <div/>
65 </div>
66 </div>
67 </div>
68 </body>
69</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.tree
new file mode 100644
index 00000000..c2a6ad01
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-non-encrypted-attachment.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox
new file mode 100644
index 00000000..222b5936
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox
@@ -0,0 +1,91 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP encrypted one signed and one unsigned attachment
4Date: Sun, 30 Aug 2015 12:08:40 +0200
5Message-ID: <1737262.ESByPkoaL9@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/mixed; boundary="nextPart2760349.k2GQmrcl5a"
11Content-Transfer-Encoding: 7Bit
12
13This is a multi-part message in MIME format.
14
15--nextPart2760349.k2GQmrcl5a
16Content-Type: multipart/encrypted; boundary="nextPart2260160.XvshVD34ka"; protocol="application/pgp-encrypted"
17
18--nextPart2260160.XvshVD34ka
19Content-Type: application/pgp-encrypted
20Content-Disposition: attachment
21Content-Transfer-Encoding: 7Bit
22
23Version: 1
24--nextPart2260160.XvshVD34ka
25Content-Type: application/octet-stream
26Content-Disposition: inline; filename="msg.asc"
27Content-Transfer-Encoding: 7Bit
28
29-----BEGIN PGP MESSAGE-----
30Version: GnuPG v2
31
32hQEMAwzOQ1qnzNo7AQgAooa+Peu1t5aiX4WvssEnRlapkr62/49/Dbz5assvshdr
33o9zOC+89Qr5P/ea+tC1MO7ek/DfyL9C4EzOMp/r08GeInLqWMc9qLZO//YaT2JUp
340IZFbpUQ4C2zjXMRuy/PMrltHuCfsvhvHX1YAHp/xjRsKpQoE3mSDzz5sc8/Hj9n
352eoKoCEW1rgt2qHtV4DD6lvUPo42LMZclJ9GqfoD7WLoEH9ebRLhXr3D00j6xBfy
36//nooAhzQSW8b7GZth4Qc7DKAZMhuEly/kp07nhuPd1fMJDEAB/zh9EYlgnn3STb
37MCdtFs6kMC24uA2eDCH330Bn9OzzWnsVU9ae4XiKnNLpAeactSFRKKvGytBQaloq
38Gvn1+D0Xmw6OsSmRJ84DzKqG4E6bzE+XhMEMnLlqDvZDsOtU/sCGvMK0MM3y5B7M
39ONqWLN3ng3zrGPec5gqfvnWgKpANUrbJkzS8LNjv4hwoKh0tFpghWQiefG0Z9Hw1
40UaYbFwvaFgXcm72oBkynDCleWjQ2vnDE4P38PldqZbAW/Pw1q6Yq8m9MhS1VpbI5
41WBjuRQhgQvMG0LY0gR/3Qor5tX9ASllWnPfWYVuOiSOAe5Hsp7BmELXkWftHii7k
42YW0Qim7jleDaY1MGfFr0vrO/PiYxGTb+4IUyUgEBYEpxa9ozUoeftF6JbHPuEZI0
43ENX8aIVJ9FnpssrR5HlpXieF12ec9ZFeV7mAwcucJ3RXuDcQHQTHgEbfnzTsaEpL
44Hxs+6euOCJXhKOYVrsAlB4IxK0OQm4XHiZ7WBp5Jp7rlSHltdxFpSnHIfqngyCA4
45L+c/gsUEVbNI++iOOhOKVT47XIf+s/xa1Y4XghGbHIA3/pQphYo4U5dTeLoX0OWI
4664tPxliQTKuJ+NAv9Km2bDgvlvn83jsc94THi5u+fIdDEGp7pgoQNXR69Lkz1bsA
47Hh9xqKzVloHu4SsT3OGX+bfTO3jUh8ieU/4tflZMrJ9RkEfE08PzTnopT08FppFx
48QWpHv/fwyJf6Cw1IevM5pVLAShg0sbCPF/xsYTjSyWNib1wFtxkmv5MToCFwkxi5
49b1yT23BNlV5RV6wcjmrum7p2fMwPjbt8X6z+pgUtkD7zImBWeYddMjgSjOFuFEjF
50gpfVoV3OIvMPZMe2jqWsjnjujHJr2z5IZn3A7WI0b4SIDP0sGwsTBiogKqcBNWpn
51O4MKUq9JwC0K/MY7yS1MCLoHfwU18z19Es/flaAgwtXk8IWIcjkkumAwNl+y8Q+I
52+8AFGdiXTKld9QVwCKnMS3QivHPuFNL8rfcWKsr1nOhOEhaO+zD94eOOiCbwiXGr
53E6WsewNCVQUN4bxAXl2vRi+9WRctLy7bsuIL5dgUz0CMYkQ+dDmrBflD0nyC
54=TGNA
55-----END PGP MESSAGE-----
56
57--nextPart2260160.XvshVD34ka--
58
59--nextPart2760349.k2GQmrcl5a
60Content-Type: multipart/encrypted; boundary="nextPart22530242.iRl14SoP0Q"; protocol="application/pgp-encrypted"
61
62--nextPart22530242.iRl14SoP0Q
63Content-Type: application/pgp-encrypted
64Content-Disposition: attachment
65Content-Transfer-Encoding: 7Bit
66
67Version: 1
68--nextPart22530242.iRl14SoP0Q
69Content-Type: application/octet-stream
70Content-Disposition: inline; filename="msg.asc"
71Content-Transfer-Encoding: 7Bit
72
73-----BEGIN PGP MESSAGE-----
74Version: GnuPG v2
75
76hQEMAwzOQ1qnzNo7AQgAtA94bBRwgpo64zcyh+4dzt0Pr2pmNjiS4ZX+a/xzYCmD
77oS1a26s/LVZH+aJYC13l1kEu+6YjKn+ruQvMfhihOxglHBLjmUO17TPFC05AReSn
78amMqPbgS6mOwhlBJHrBa/SVwkxmbMaNBUJ/KxRXFtTW/V4pPWImRvI9mnmpo8fHy
79ZLvVAI3hGe7vPG5Vbdi5/Iu/JzqwlglVsP82gYpLlx7HhWGF4gmTGc6YBwFtzEvS
80eqFtKRDqN60bo4HnNLOEnMaWlYPTpt3QibLWWIbtpA1Gb0Q/1NvDnn3Lyj8H+0WV
818H6Ks9/cvAuoAMOad6y4gDJb+K/AS7Ha+08/3lMYG9LAAgGe8Qocxg1W3ha1o0Ph
82YSfV2ooebsLiHjwspjYpsX5ijnRj6uNGp5Dt28EIo1ANF+oDiSKEwAMGPBtcnqaO
83FWXy39dP3VXE73nsO+dyTidaATFBlYg+IpPTDSFTgsk7XDV973EpdXvOkBEp/vBv
84EZknuZFOkS0v5QHk9Y/hhlSLACTIEWQpBiFGOwUVSZFXLEY5zQNTbQdRbz3ZYcE9
85mIFzD9Ujw6tIJIOFazhwr9SxxyeaAygWeg4ifmmdhAsmFYum
86=WsAv
87-----END PGP MESSAGE-----
88
89--nextPart22530242.iRl14SoP0Q--
90
91--nextPart2760349.k2GQmrcl5a--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.html
new file mode 100644
index 00000000..c0b9d79e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.html
@@ -0,0 +1,99 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="encr">
11 <tr class="encrH">
12 <td dir="ltr">Encrypted message</td>
13 </tr>
14 <tr class="encrB">
15 <td>
16 <div style="position: relative; word-wrap: break-word">
17 <a name="att"/>
18 <div id="attachmentDiv">
19 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
20 <tr class="signOkKeyOkH">
21 <td dir="ltr">
22 <table cellspacing="0" cellpadding="0" width="100%">
23 <tr>
24 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
25 <td align="right">
26 <a href="kmail:showSignatureDetails">Show Details</a>
27 </td>
28 </tr>
29 </table>
30 </td>
31 </tr>
32 <tr class="signOkKeyOkB">
33 <td>
34 <a name="att1"/>
35 <div id="attachmentDiv1">
36 <a name="att1.1"/>
37 <div id="attachmentDiv1.1">
38 <div class="noquote">
39 <div dir="ltr">This is the main body.</div>
40 </div>
41 </div>
42 <a name="att1.2"/>
43 <div id="attachmentDiv1.2">
44 <table cellspacing="1" class="textAtm">
45 <tr class="textAtmH">
46 <td dir="ltr">attachment1.txt</td>
47 </tr>
48 <tr class="textAtmB">
49 <td>
50 <div class="noquote">
51 <div dir="ltr">This is a signed attachment.</div>
52 </div>
53 </td>
54 </tr>
55 </table>
56 </div>
57 </div>
58 </td>
59 </tr>
60 <tr class="signOkKeyOkH">
61 <td dir="ltr">End of signed message</td>
62 </tr>
63 </table>
64 </div>
65 </div>
66 </td>
67 </tr>
68 <tr class="encrH">
69 <td dir="ltr">End of encrypted message</td>
70 </tr>
71 </table>
72 </div>
73 <a name="att2"/>
74 <div id="attachmentDiv2">
75 <table cellspacing="1" cellpadding="1" class="encr">
76 <tr class="encrH">
77 <td dir="ltr">Encrypted message</td>
78 </tr>
79 <tr class="encrB">
80 <td>
81 <div style="position: relative; word-wrap: break-word">
82 <a name="att"/>
83 <div id="attachmentDiv">
84 <div class="noquote">
85 <div dir="ltr">This is an unsigned attachment.</div>
86 </div>
87 </div>
88 </div>
89 </td>
90 </tr>
91 <tr class="encrH">
92 <td dir="ltr">End of encrypted message</td>
93 </tr>
94 </table>
95 </div>
96 </div>
97 </div>
98 </body>
99</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.tree
new file mode 100644
index 00000000..5cb83749
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-partially-signed-attachments.mbox.tree
@@ -0,0 +1,12 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
5 * MimeTreeParser::MimeMessagePart
6 * MimeTreeParser::TextMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
10 * MimeTreeParser::EncryptedMessagePart
11 * MimeTreeParser::TextMessagePart
12 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox
new file mode 100644
index 00000000..c53e0916
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox
@@ -0,0 +1,42 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP encrypted with 2 text attachments
4Date: Sun, 30 Aug 2015 12:05:17 +0200
5Message-ID: <1505824.VT0nqpAGu0@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart3335835.KxmPgziKxd"; protocol="application/pgp-encrypted"
11
12--nextPart3335835.KxmPgziKxd
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15Content-Transfer-Encoding: 7Bit
16
17Version: 1
18--nextPart3335835.KxmPgziKxd
19Content-Type: application/octet-stream
20Content-Disposition: inline; filename="msg.asc"
21Content-Transfer-Encoding: 7Bit
22
23-----BEGIN PGP MESSAGE-----
24Version: GnuPG v2
25
26hQEMAwzOQ1qnzNo7AQgA6tTJs017mI+xuhjcSTr3F5X/rJghq0oaXbjk1K0W33p+
27jsEyPTbuUIvI2a+5xHJ3BV+gnnO0Xosz57tGTF/eVAySnGiMse5cu2RQR9b/9EkC
28uzt3tIChyub3GUODG3yzXqkhSiwIImvedWgnJYTJ7eeBkWdizVT0b0byiG2d7Hjq
29hzYzyPJRwuoE36hryDsFycAhPfSsQAirxDJXk4HTsfBCmz7tzJhtt4wKc7z5m8fq
30y+jddnDADq5+tykJS6zemJOzgU3AOQyVJbmsx2vTV1CJdpKPHvTTgghpAaSuVbg0
31tR9BX1nPnA/bgX/V7C+3PwuCvB0ZKmv5d8kaGaTwO9LAhQGaWTfhG1cyy+MJhXdR
32rH63PMkZh/lrvj7qJYofI5iVoe1CiMaX44BiwKVclGf7bEFdzc2NSRvvTSzisN3T
33nSzydEttuEY5jGagQQNT1l1l4I8HAtUgwGtkKZVTAUL6iKHYAqzB77sRs33UJy4k
34ZSIWFnSY8l+HLG+MYKsYCGsvJHkxEHnMiS1EZcmpUFhxOGQpiF2rJ4qnL2jbFWbA
359N1O5N1N/DJ/YKjwgy/jVVj6AOCrBZrxvKKt2mtG/wVX0F/KSKiEd8mgrLIx1udw
36tibiDAJmDxUk8K0lAdOHBrzBChvysiT/QxCJFcSY6FE99Rral+BWjeyAIQQWvc2B
37cEceZCtzjCOrwvoJwl2uEX+51nmMp+z1EoeyyhmUZZ4y65yOg4P6KGXGcLmIjSbH
38IhsSls1jRkSrypf/wcEd6o7KZdeYbfA=
39=Sud3
40-----END PGP MESSAGE-----
41
42--nextPart3335835.KxmPgziKxd--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..cca4c455
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.html
@@ -0,0 +1,64 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <a name="att1"/>
18 <div id="attachmentDiv1">
19 <div class="noquote">
20 <div dir="ltr">this is the main body part</div>
21 </div>
22 </div>
23 <a name="att2"/>
24 <div id="attachmentDiv2">
25 <table cellspacing="1" class="textAtm">
26 <tr class="textAtmH">
27 <td dir="ltr">attachment1.txt</td>
28 </tr>
29 <tr class="textAtmB">
30 <td>
31 <div class="noquote">
32 <div dir="ltr">this is the first attachment</div>
33 </div>
34 </td>
35 </tr>
36 </table>
37 </div>
38 <a name="att3"/>
39 <div id="attachmentDiv3">
40 <table cellspacing="1" class="textAtm">
41 <tr class="textAtmH">
42 <td dir="ltr">attachment2.txt</td>
43 </tr>
44 <tr class="textAtmB">
45 <td>
46 <div class="noquote">
47 <div dir="ltr">this is the second attachment</div>
48 </div>
49 </td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </div>
55 </td>
56 </tr>
57 <tr class="encrH">
58 <td dir="ltr">End of encrypted message</td>
59 </tr>
60 </table>
61 </div>
62 </div>
63 </body>
64</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.tree
new file mode 100644
index 00000000..71a67b58
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted-two-attachments.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox
new file mode 100644
index 00000000..5102fa78
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox
@@ -0,0 +1,36 @@
1From test@kolab.org Wed, 08 Sep 2010 17:02:52 +0200
2From: OpenPGP Test <test@kolab.org>
3To: test@kolab.org
4Subject: OpenPGP encrypted
5Date: Wed, 08 Sep 2010 17:02:52 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: multipart/encrypted; boundary="nextPart1357031.ppLHckZtsp"; protocol="application/pgp-encrypted"
9Content-Transfer-Encoding: 7Bit
10
11
12--nextPart1357031.ppLHckZtsp
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15
16Version: 1
17--nextPart1357031.ppLHckZtsp
18Content-Type: application/octet-stream
19Content-Disposition: inline; filename="msg.asc"
20
21-----BEGIN PGP MESSAGE-----
22Version: GnuPG v2.0.15 (GNU/Linux)
23
24hQEMAwzOQ1qnzNo7AQgAtWfDWWI2JUGuptpackiIxpWViEEpGAeruETubiIPwxNb
25DNmXrMDhbm/zIbPntIGWJDgUMfABZCUgmlJLWhsceDTt+tXnWGha2VYrN2/WsF6/
26Pqs/TavTvMIJQHDaIH5yDDCaMoq/mGSbcu7go2H8Sw7aBEYlM8jGlqc1HziXnZ1q
273vDiA+4qWfvbNoSRo1kb9Pcq997yg6WqZXH2hJ7cp+hIQ4uTP1/+qgYHMvfPlzQk
28XcDguGbIer88ELhuR5622unGBAB4dqp+5w6n9c6rrCH81qhV4W0nqSEvj1tBj78S
29ZTi6VBAo5eS0e3iOJqMpwUZz6hQUpJw2wnNRGvLgI9KZAag0HkgPdMeANowg7vpE
30L4nU7B0ybhswA2Y7QT/wwCDZu9N1JGeBmy0dgy4sA38Ki27rn2/lIaP0j14JycwM
31RTJ1uwI+ZuQiwXlyYtdFZJWe8nraWARch0oKqhaR7aSsxGWo63eiGEQhkQCBFBb3
32Vg0nNCZRBauEqIESEW5EV2zrJqdfNYcz+f9IP125dnQEKgLZ6FxTt3+v
33=mhNl
34-----END PGP MESSAGE-----
35
36--nextPart1357031.ppLHckZtsp--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.html
new file mode 100644
index 00000000..ba0976cd
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">encrypted message text</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox
new file mode 100644
index 00000000..8bd06910
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox
@@ -0,0 +1,40 @@
1From test@example.com Thu, 17 Oct 2013 02:13:03 +0200
2Return-Path: <test@example.com>
3Delivered-To: you@you.com
4Received: from localhost (localhost [127.0.0.1])
5 by test@example.com (Postfix) with ESMTP id B30D8120030
6 for <you@you.com>; Thu, 17 Oct 2013 02:13:05 +0200 (CEST)
7From: test <test@example.com>
8To: you@you.com
9Subject: charset
10Date: Thu, 17 Oct 2013 02:13:03 +0200
11Message-ID: <4081645.yGjUJ4o4Se@example.local>
12User-Agent: KMail/4.12 pre (Linux/3.11-4.towo-siduction-amd64; KDE/4.11.2; x86_64; git-f7f14e3; 2013-10-15)
13MIME-Version: 1.0
14Content-Transfer-Encoding: 7Bit
15Content-Type: text/plain; charset="ISO-8859-15"
16
17-----BEGIN PGP MESSAGE-----
18Version: GnuPG v2.0.22 (GNU/Linux)
19
20hIwDGJlthTT7oq0BBACbaRZudMigMTetPZNRgkfEXv4QQowR1jborw0dcgKKqMQ1
216o67NkpxvmXKGJTfTVCLBX3nk6FKYo6NwlPCyU7X9X0DDk8hvaBdR9wGfrdm5YWX
22GKOzcqJY1EypiMsspXeZvjzEW7O8I956c3vBb/2pM3xqYEK1kh8+d9bVH+cjf4UB
23DAMMzkNap8zaOwEH/1rPShyYL8meJN+/GGgS8+Nf1BW5pSHdAPCg0dnX4QCLEx7u
24GkBU6N4JGYayaCBofibOLacQPhYZdnR5Xb/Pvrx03GrzyzyDp0WyeI9nGNfkani7
25sCRWbzlMPsEvGEvJVnMLNRSk4xhPIWumL4APkw+Mgi6mf+Br8z0RhfnGwyMA53Mr
26pG9VQKlq3v7/aaN40pMjAsxiytcHS515jXrb3Ko4pWbTlAr/eytOEfkLRJgSOpQT
27BY7lWs+UQJqiG8Yn65vS9LMDNJgX9EOGx77Z4u9wvv4ZieOxzgbHGg5kYCoae7ba
28hxZeNjYKscH+E6epbOxM/wlTdr4UTiiW9dMsH0zSwMUB891gToeXq+LDGEPTKVSX
29tsJm4HS/kISJBwrCI4EUqWZML6xQ427NkZGmF2z/sD3kmL66GjspIKnb4zHmXacp
3084n2KrI9s7p6AnKnQjsxvB/4/lpXPCIY5GH7KjySEJiMsHECzeN1dJSL6keykBsx
31DtmYDA+dhZ6UWbwzx/78+mjNREhyp/UiSAmLzlJh89OH/xelAPvKcIosYwz4cY9N
32wjralTmL+Y0aHKeZJOeqPLaXADcPFiZrCNPCH65Ey5GEtDpjLpEbjVbykPV9+YkK
337JKW6bwMraOl5zmAoR77PWMo3IoYb9q4GuqDr1V2ZGlb7eMH1gj1nfgfVintKC1X
343jFfy7aK6LIQDVKEwbi0SxVXTKStuliVUy5oX4woDOxmTEotJf1QlKZpn5oF20UP
35tumYrp0SPoP8Bo4EVRVaLupduI5cYce1q/kFj9Iho/wk56MoG9PxMMfsH7oKg3AA
36CqQ6/kM4oJNdN5xIf1EH5HeaNFkDy1jlLznnhwVAZKPo/9ffpg==
37=bPqu
38-----END PGP MESSAGE-----
39
40
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.html
new file mode 100644
index 00000000..344dc237
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.html
@@ -0,0 +1,47 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div class="noquote">
30 <div dir="ltr">asdasd asd asd asdf sadf sdaf sadf öäü</div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </td>
39 </tr>
40 <tr class="encrH">
41 <td dir="ltr">End of encrypted message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </body>
47</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-charset-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed-broken.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed-broken.mbox
new file mode 100644
index 00000000..fc0d2df9
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed-broken.mbox
@@ -0,0 +1,26 @@
1From: test <test@kolab.org>
2To: you@you.de
3Subject: test
4Date: Tue, 25 Aug 2015 16:47:10 +0200
5Message-ID: <1662097.O9NVKTC5pT@11b508545ba2>
6X-KMail-Identity: 1428848833
7User-Agent: KMail/4.13.0.3 (Linux/4.1.0-rc5-siduction-amd64; KDE/4.14.3; x86_64; git-7c86098; 2015-08-23)
8MIME-Version: 1.0
9Content-Transfer-Encoding: quoted-printable
10Content-Type: text/plain; charset="iso-8859-1"
11
12-----BEGIN PGP SIGNED MESSAGE-----
13Hash: SHA256
14
15ohno break it =F6=E4=FC
16-----BEGIN PGP SIGNATURE-----
17Version: GnuPG v2
18
19iQEcBAEBCAAGBQJV3H/vAAoJEI2YYMWPJG3mEZQH/2mbCDa60risTUsomEecasc7
20kIc8Ch+OjZwlEQWKEiFbpLCMVjMwf0oGFcpc/dqnIyIqeVvF6Em+v7iqKuyAaihu
217ZxxC816tDDI7UIpmyWu39McqGB/2hoA/q+QAMgBiaIuMwYJK9Aw08hXzoCds6O7
22Uor2Y6kMSwEiRnTSYvQHdoaZY3F9SFTLPgjvwfSu7scvp7xvH7bAVIqGGfkLjXpP
23OFkDhEqUI7ORwD5cvvzEu57XmbGB7Nj5LRCGcTq6IlaGeN6Pw5+hOdd6MQ4iISwy
24870msP9NvktURnfXYC3fYnJaK/eUln7LYCBl/k04Z/3Um6dMYyQGh63oGv/2qxQ=3D
25=3D4ctb
26-----END PGP SIGNATURE-----
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox
new file mode 100644
index 00000000..6099a51f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox
@@ -0,0 +1,26 @@
1From: test <test@kolab.org>
2To: you@you.de
3Subject: test
4Date: Tue, 25 Aug 2015 16:47:10 +0200
5Message-ID: <1662097.O9NVKTC5pT@11b508545ba2>
6X-KMail-Identity: 1428848833
7User-Agent: KMail/4.13.0.3 (Linux/4.1.0-rc5-siduction-amd64; KDE/4.14.3; x86_64; git-7c86098; 2015-08-23)
8MIME-Version: 1.0
9Content-Transfer-Encoding: quoted-printable
10Content-Type: text/plain; charset="iso-8859-1"
11
12-----BEGIN PGP SIGNED MESSAGE-----
13Hash: SHA256
14
15ohno =F6=E4=FC
16-----BEGIN PGP SIGNATURE-----
17Version: GnuPG v2
18
19iQEcBAEBCAAGBQJV3H/vAAoJEI2YYMWPJG3mEZQH/2mbCDa60risTUsomEecasc7
20kIc8Ch+OjZwlEQWKEiFbpLCMVjMwf0oGFcpc/dqnIyIqeVvF6Em+v7iqKuyAaihu
217ZxxC816tDDI7UIpmyWu39McqGB/2hoA/q+QAMgBiaIuMwYJK9Aw08hXzoCds6O7
22Uor2Y6kMSwEiRnTSYvQHdoaZY3F9SFTLPgjvwfSu7scvp7xvH7bAVIqGGfkLjXpP
23OFkDhEqUI7ORwD5cvvzEu57XmbGB7Nj5LRCGcTq6IlaGeN6Pw5+hOdd6MQ4iISwy
24870msP9NvktURnfXYC3fYnJaK/eUln7LYCBl/k04Z/3Um6dMYyQGh63oGv/2qxQ=3D
25=3D4ctb
26-----END PGP SIGNATURE-----
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.html
new file mode 100644
index 00000000..d32d0235
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.html
@@ -0,0 +1,35 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <div class="noquote">
24 <div dir="ltr">ohno öäü</div>
25 </div>
26 </td>
27 </tr>
28 <tr class="signOkKeyOkH">
29 <td dir="ltr">End of signed message</td>
30 </tr>
31 </table>
32 </div>
33 </div>
34 </body>
35</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.inProgress.html
new file mode 100644
index 00000000..45a999d3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.inProgress.html
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td/>
14 </tr>
15 <tr class="signInProgressH">
16 <td dir="ltr">End of signed message</td>
17 </tr>
18 </table>
19 </div>
20 </div>
21 </body>
22</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.tree
new file mode 100644
index 00000000..23e99880
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-signed.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox
new file mode 100644
index 00000000..5ecfc612
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox
@@ -0,0 +1,34 @@
1From t.glaser@tarent.de Mon Aug 18 10:59:01 2014
2Return-Path: <t.glaser@tarent.de>
3Received: from tgwrk.ig42.org (tgwrk.ig42.org.
4 [2a01:238:4200:4342:321e:80ff:fe12:4223]) by mx.google.com with ESMTPSA id
5 pe6sm40660135wjb.38.2014.08.18.01.59.01 for <t.glaser@tarent.de>
6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18
7 Aug 2014 01:59:01 -0700 (PDT)
8Date: Mon, 18 Aug 2014 10:59:00 +0200 (CEST)
9From: Thorsten Glaser <t.glaser@tarent.de>
10X-X-Sender: tglase@tglase.lan.tarent.de
11To: Thorsten Glaser <t.glaser@tarent.de>
12Subject: Test for Mozilla bug#1054187
13Message-ID: <alpine.DEB.2.11.1408181058220.30583@tglase.lan.tarent.de>
14User-Agent: Alpine 2.11 (DEB 23 2013-08-11)
15MIME-Version: 1.0
16Content-Type: TEXT/PLAIN; charset=US-ASCII
17
18-----BEGIN PGP MESSAGE-----
19Version: GnuPG v2
20
21hIwDTFSKP3rBSXcBBAClcHW9/6kw8i+XkMes47vcmGBCjIC0UysqkVYyNqT2Y6tb
22s7pdfZFQPVWbdYoxP0WLzGgNFEWttlojWJmaTNiDVLOP22hFuJL3LUxesC1cWE+6
23foCkENDI2YnkAw4o5HTrmHoBlG7N/Nzzu3+1kfUVANSoAhgWd5WJDsXyvPMoD9LA
247gHZZmq4bK5OwTHvAvdUOstCGd6Wqj5zkVXT59WOfYxYLcrGZ8I62lBS1/90TlJe
25iEolBoaufZT7K2YW7k/+DPYgRIzvWISTccPWpcS7OOyifvK4zOFJeGsVq/DowP52
26Zt1xQj1En5CVUT/MkpvS1rB4BfSuhJETZdtUGveUe0HhcAzbnbIJULdK0p1XAo4O
27q84vmOVD0BtKJVy/+rIW7h4aOr8C66HNDKLiUzWtdEaG97GQwhpQZ05JNsulG9tV
28wyP6UWmDMY/5YuRoVHOYx8NXORHX4E5P151Tr5Fted9TpXI/gOTHHyPK5AiiDG6U
29ja4fgkO6hYnjHxqqooxfGj+pg5atynnbMTALfWoXxmqyKrIB+SKqnsw+sCL3ro2x
30j54EGZZ9wM6AYDQ48lJV5beWgQ55r28HxlhPNl/driNkMZHUazAdsubWo5NqJPXl
31HrHQ4lv53ZUohbpVvdkmsldWhA5me7yRhQHytTQMMfadmSiYZVsy53siQ/5gEhUv
32DQ4ggpUjf8twqR+5TLue5/r/fRXkGfKr5U1w4qcMcFcGwEIbwE+qtIDY0Cw/+xU=
33=Ecl0
34-----END PGP MESSAGE-----
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.html
new file mode 100644
index 00000000..3ed4e0fb
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.html
@@ -0,0 +1,47 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
15 <tr class="signOkKeyOkH">
16 <td dir="ltr">
17 <table cellspacing="0" cellpadding="0" width="100%">
18 <tr>
19 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
20 <td align="right">
21 <a href="kmail:showSignatureDetails">Show Details</a>
22 </td>
23 </tr>
24 </table>
25 </td>
26 </tr>
27 <tr class="signOkKeyOkB">
28 <td>
29 <div class="noquote">
30 <div dir="ltr">This is a utf-8 message you see - öäüß@ł€¶ŧ←↓→øþ</div>
31 </div>
32 </td>
33 </tr>
34 <tr class="signOkKeyOkH">
35 <td dir="ltr">End of signed message</td>
36 </tr>
37 </table>
38 </td>
39 </tr>
40 <tr class="encrH">
41 <td dir="ltr">End of encrypted message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </body>
47</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.tree
new file mode 100644
index 00000000..ea8223fd
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-inline-wrong-charset-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::TextMessagePart
3 * MimeTreeParser::EncryptedMessagePart
4 * MimeTreeParser::SignedMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox
new file mode 100644
index 00000000..ba85df86
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox
@@ -0,0 +1,129 @@
1Return-Path: <sender@example.org>
2Sender: sender@example.org
3From: Quonk <sender@example.org>
4X-Pgp-Agent: GPGMail
5Content-Type: multipart/signed; boundary="Apple-Mail=_12345678-1234-1234-1234-12345678"; protocol="application/pgp-signature"; micalg=pgp-sha512
6Subject: PDF
7Date: Mon, 16 Jan 2017 15:14:51 +0100
8Message-Id: <199E2891-3080-42B6-ABCD-1230B78EBABC@example.org>
9To: Konqi <konqui@example.org>
10Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
11
12
13--Apple-Mail=_12345678-1234-1234-1234-12345678
14Content-Type: multipart/alternative;
15 boundary="Apple-Mail=_23456789-1234-1234-1234-12345678"
16
17
18--Apple-Mail=_23456789-1234-1234-1234-12345678
19Content-Transfer-Encoding: quoted-printable
20Content-Type: text/plain;
21 charset=utf-8
22
23
24
25=E2=80=A6
26Quonk
27Klar=C3=A4lvdalens Datakonsult AB, a KDAB Group company
28Sweden (HQ) +46-563-540090, Germany +49-30-521325470
29KDAB - The Qt, C++ and OpenGL Experts | www.kdab.com
30
31
32--Apple-Mail=_23456789-1234-1234-1234-12345678
33Content-Type: multipart/mixed;
34 boundary="Apple-Mail=_34567890-1234-1234-1234-12345678"
35
36
37--Apple-Mail=_34567890-1234-1234-1234-12345678
38Content-Transfer-Encoding: 7bit
39Content-Type: text/html;
40 charset=us-ascii
41
42<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">pre attachment</div></body></html>
43--Apple-Mail=_34567890-1234-1234-1234-12345678
44Content-Disposition: attachment; filename="image.png"
45Content-Transfer-Encoding: base64
46Content-Type: image/png; name="image.png"
47
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
91o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
92--Apple-Mail=_34567890-1234-1234-1234-12345678
93Content-Transfer-Encoding: quoted-printable
94Content-Type: text/html;
95 charset=utf-8
96
97<html><head><meta name="qrichtext" content="1" /><style type="text/css">
98p, li { white-space: pre-wrap; }
99</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
100<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
101</body></html>
102
103--Apple-Mail=_34567890-1234-1234-1234-12345678--
104
105--Apple-Mail=_23456789-1234-1234-1234-12345678--
106
107--Apple-Mail=_12345678-1234-1234-1234-12345678
108Content-Transfer-Encoding: 7bit
109Content-Disposition: attachment;
110 filename=signature.asc
111Content-Type: application/pgp-signature;
112 name=signature.asc
113Content-Description: Message signed with OpenPGP using GPGMail
114
115-----BEGIN PGP SIGNATURE-----
116
117iQEzBAEBCAAdFiEEG6Mjkys/qoJhMseejZhgxY8kbeYFAlh/rcwACgkQjZhgxY8k
118beYaoQf+Miuj4cnVumYXMopVMHJs6AK6D+uKO4jXHl/XUK3TOg17kFUZDEN/9JFd
119SCN9oD5emzpBl4GSmYBbjvLvXTHTLHviVD6In35+wgMlQL+xfAv91Dx56QslCQMo
120UhDYGgFPiEAfCY2UozQD/R3KWOHFB9bNdtOM0hdT84D35W2PZhzTlz2q3hpq3bYw
121lNhFVebqURh9OEAZglB3Q9oDE13PJDtRLflKquC5ZU8N4Bj23TCOgxv4FzSyyAn/
122XalEKdwYrkZ8p4rRtd0YvAVevDUC4pQNGTgfsXgldoPEGUBXsdlczLPEj2sjLvNu
123HX1GMDrZL/+7DZsURYV5DjhsqWzExQ==
124=q0F6
125-----END PGP SIGNATURE-----
126
127--Apple-Mail=_12345678-1234-1234-1234-12345678--
128
129
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.html
new file mode 100644
index 00000000..234eaae4
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signWarn">
9 <tr class="signWarnH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Not enough information to check signature validity.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signWarnB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">
30 <div class="">pre attachment</div>
31 </div>
32 </div>
33 <a name="att1.2.2"/>
34 <div id="attachmentDiv1.2.2">
35 <hr/>
36 <div>
37 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
38 </div>
39 <div/>
40 </div>
41 <a name="att1.2.3"/>
42 <div id="attachmentDiv1.2.3">
43 <div style="position: relative">
44 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
45 </div>
46 </div>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signWarnH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.inProgress.html
new file mode 100644
index 00000000..b5236fe4
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.inProgress.html
@@ -0,0 +1,49 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td>
14 <a name="att1"/>
15 <div id="attachmentDiv1">
16 <a name="att1.2"/>
17 <div id="attachmentDiv1.2">
18 <a name="att1.2.1"/>
19 <div id="attachmentDiv1.2.1">
20 <div style="position: relative">
21 <div class="">pre attachment</div>
22 </div>
23 </div>
24 <a name="att1.2.2"/>
25 <div id="attachmentDiv1.2.2">
26 <hr/>
27 <div>
28 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
29 </div>
30 <div/>
31 </div>
32 <a name="att1.2.3"/>
33 <div id="attachmentDiv1.2.3">
34 <div style="position: relative">
35 <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;">Some <span style=" font-weight:600;">HTML</span> text</p>
36 </div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signInProgressH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </body>
49</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.tree
new file mode 100644
index 00000000..3ade4efe
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-apple.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox
new file mode 100644
index 00000000..70bf4ef8
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox
@@ -0,0 +1,117 @@
1Return-Path: <kde-pim-bounces@kde.org>
2X-Sieve: CMU Sieve 2.3
3X-Virus-Scanned: amavisd-new at site
4Authentication-Results: linux.site (amavisd-new); dkim=pass (1024-bit key)
5 header.d=kde.org
6Received: from postbox.kde.org (localhost.localdomain [127.0.0.1])
7 by postbox.kde.org (Postfix) with ESMTP id 867B8BF274;
8 Sat, 22 Aug 2015 09:32:21 +0000 (UTC)
9DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
10 t=1440235945; bh=WhGhdxvdvRs04JdzjAkPcBVPmx7putlUE3ka9dvMIoc=;
11 h=From:To:Date:Subject:Reply-To:List-Id:List-Unsubscribe:List-Post:
12 List-Help:List-Subscribe:From;
13 b=mvxeMMGebkZKq7hekRypkPvt6S8lidA/8vQ3AC5Kft8HDmj8lDUpvOo0VXwCF0OG+
14 iAOPKxYtxclf8PgYvgK8NIzr56CwcdlNm3/PpoSe20P3I1DGFpDDMFtW5tOD05SSHz
15 5L6PCQyb+KFW1GrXgcm+eHshzJh3U8nHcyd8Vw2E=
16X-Original-To: kde-pim@kde.org
17Delivered-To: kde-pim@localhost.kde.org
18X-Virus-Scanned: amavisd-new at site
19From: Volker Krause <vkrause@kde.org>
20To: KDEPIM <kde-pim@kde.org>
21Date: Sat, 22 Aug 2015 11:31:38 +0200
22Message-ID: <11737387.KAAPH2KlE3@vkpc5>
23Organization: KDE
24User-Agent: KMail/4.14.3 (Linux/3.16.6-2-desktop; KDE/4.14.7; x86_64;
25 git-c97b13e; 2014-12-30)
26MIME-Version: 1.0
27Subject: [Kde-pim] Phabricator Project Setup
28X-BeenThere: kde-pim@kde.org
29X-Mailman-Version: 2.1.16
30Precedence: list
31Reply-To: KDE PIM <kde-pim@kde.org>
32List-Id: KDE PIM <kde-pim.kde.org>
33List-Unsubscribe: <https://mail.kde.org/mailman/options/kde-pim>,
34 <mailto:kde-pim-request@kde.org?subject=unsubscribe>
35List-Post: <mailto:kde-pim@kde.org>
36List-Help: <mailto:kde-pim-request@kde.org?subject=help>
37List-Subscribe: <https://mail.kde.org/mailman/listinfo/kde-pim>,
38 <mailto:kde-pim-request@kde.org?subject=subscribe>
39Content-Type: multipart/mixed; boundary="===============1910646461178264940=="
40Errors-To: kde-pim-bounces@kde.org
41Sender: "kde-pim" <kde-pim-bounces@kde.org>
42
43
44--===============1910646461178264940==
45Content-Type: multipart/signed; boundary="nextPart2440608.7aDuJBW7cK"; micalg="pgp-sha1"; protocol="application/pgp-signature"
46
47--nextPart2440608.7aDuJBW7cK
48Content-Transfer-Encoding: quoted-printable
49Content-Type: text/plain; charset="us-ascii"
50
51Hi,
52
53I've talked to Ben, the current Phabricator test setup would actually b=
54e=20
55usable for "production" use for task/project management for us, without=
56=20
57causing the sysadmins unreasonable trouble when migrating to the full=20=
58
59production deployment of Phabricator eventually.
60
61Phabricator project layout it orthogonal to repo layout, so we can stru=
62cture=20
63this however we want. Among other teams I see at least the following la=
64youts:
65- single project for everything
66- a project per release
67- a project per component/module (ie. close to the repo layout)
68
69How do we want to structure this?
70
71I would start with a single project to not fragment this too much, as w=
72e have=20
73a relatively small team actually looking into this, so everyone is look=
74ing at=20
75most sub-projects anyway. And should we eventually hit scaling limits, =
76we can=20
77always expand this I think.
78
79We of course should also talk about what we actually want to put in the=
80re. My=20
81current motivation is having a place to collect the tasks for getting m=
82ore of=20
83the former pimlibs into KF5, and anything else I run into on the way th=
84ere=20
85that we eventually should clean up/improve.
86
87regards,
88Volker
89
90--nextPart2440608.7aDuJBW7cK
91Content-Type: application/pgp-signature; name="signature.asc"
92Content-Description: This is a digitally signed message part.
93Content-Transfer-Encoding: 7Bit
94
95-----BEGIN PGP SIGNATURE-----
96Version: GnuPG v2
97
98iD8DBQBV2EF9f5bM1k0S0kcRAk9cAJ4vHEh9JkT3Jy3EfxII7nP9HPmxrQCgjeLF
99eYXCyN9NRAyC6CHeNnWZN10=
100=Y8W4
101-----END PGP SIGNATURE-----
102
103--nextPart2440608.7aDuJBW7cK--
104
105
106--===============1910646461178264940==
107Content-Type: text/plain; charset="utf-8"
108MIME-Version: 1.0
109Content-Transfer-Encoding: base64
110Content-Disposition: inline
111
112X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KS0RFIFBJTSBt
113YWlsaW5nIGxpc3Qga2RlLXBpbUBrZGUub3JnCmh0dHBzOi8vbWFpbC5rZGUub3JnL21haWxtYW4v
114bGlzdGluZm8va2RlLXBpbQpLREUgUElNIGhvbWUgcGFnZSBhdCBodHRwOi8vcGltLmtkZS5vcmcv
115
116--===============1910646461178264940==--
117
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.html
new file mode 100644
index 00000000..50eddaa6
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.html
@@ -0,0 +1,78 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td>Not enough information to check signature validity.</td>
16 <td align="right">
17 <a href="kmail:showSignatureDetails">Show Details</a>
18 </td>
19 </tr>
20 </table>
21 </td>
22 </tr>
23 <tr class="signWarnB">
24 <td>
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">Hi,</div>
29 <br/>
30 <div dir="ltr">I've talked to Ben, the current Phabricator test setup would actually be&nbsp;</div>
31 <div dir="ltr">usable for "production" use for task/project management for us, without&nbsp;</div>
32 <div dir="ltr">causing the sysadmins unreasonable trouble when migrating to the full&nbsp;</div>
33 <div dir="ltr">production deployment of Phabricator eventually.</div>
34 <br/>
35 <div dir="ltr">Phabricator project layout it orthogonal to repo layout, so we can structure&nbsp;</div>
36 <div dir="ltr">this however we want. Among other teams I see at least the following layouts:</div>
37 <div dir="ltr">- single project for everything</div>
38 <div dir="ltr">- a project per release</div>
39 <div dir="ltr">- a project per component/module (ie. close to the repo layout)</div>
40 <br/>
41 <div dir="ltr">How do we want to structure this?</div>
42 <br/>
43 <div dir="ltr">I would start with a single project to not fragment this too much, as we have&nbsp;</div>
44 <div dir="ltr">a relatively small team actually looking into this, so everyone is looking at&nbsp;</div>
45 <div dir="ltr">most sub-projects anyway. And should we eventually hit scaling limits, we can&nbsp;</div>
46 <div dir="ltr">always expand this I think.</div>
47 <br/>
48 <div dir="ltr">We of course should also talk about what we actually want to put in there. My&nbsp;</div>
49 <div dir="ltr">current motivation is having a place to collect the tasks for getting more of&nbsp;</div>
50 <div dir="ltr">the former pimlibs into KF5, and anything else I run into on the way there&nbsp;</div>
51 <div dir="ltr">that we eventually should clean up/improve.</div>
52 <br/>
53 <div dir="ltr">regards,</div>
54 <div dir="ltr">Volker</div>
55 </div>
56 </div>
57 </td>
58 </tr>
59 <tr class="signWarnH">
60 <td dir="ltr">End of signed message</td>
61 </tr>
62 </table>
63 </div>
64 <a name="att2"/>
65 <div id="attachmentDiv2">
66 <div class="noquote">
67 <div dir="ltr">_______________________________________________</div>
68 <div dir="ltr">KDE PIM mailing list <a href="mailto:kde-pim@kde.org">kde-pim@kde.org</a></div>
69 <div dir="ltr">
70 <a href="https://mail.kde.org/mailman/listinfo/kde-pim">https://mail.kde.org/mailman/listinfo/kde-pim</a>
71 </div>
72 <div dir="ltr">KDE PIM home page at <a href="http://pim.kde.org/">http://pim.kde.org/</a></div>
73 </div>
74 </div>
75 </div>
76 </div>
77 </body>
78</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.tree
new file mode 100644
index 00000000..2753978c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-base64-mailman-footer.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox
new file mode 100644
index 00000000..7939af83
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox
@@ -0,0 +1,52 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP signed+encrypted with 2 text attachments
4Date: Sun, 30 Aug 2015 12:01:20 +0200
5Message-ID: <4368981.7YjI8cQ7Br@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/encrypted; boundary="nextPart3246504.5GAivIUY6Q"; protocol="application/pgp-encrypted"
11
12--nextPart3246504.5GAivIUY6Q
13Content-Type: application/pgp-encrypted
14Content-Disposition: attachment
15Content-Transfer-Encoding: 7Bit
16
17Version: 1
18--nextPart3246504.5GAivIUY6Q
19Content-Type: application/octet-stream
20Content-Disposition: inline; filename="msg.asc"
21Content-Transfer-Encoding: 7Bit
22
23-----BEGIN PGP MESSAGE-----
24Version: GnuPG v2
25
26hQEMAwzOQ1qnzNo7AQf9Ge9nFjtqLOKSQNhobS+0iCB2GUdLP7LCIWu6gBo9pWa+
279wCNLxwmhqWOYv37RAk6v5VXjCYUX3/7UF7e7epSqo7YjS7VsUOow0gszQjJqocK
28Gd1T1oyNknza6oaRGgVeWPOZVAPb+Gj+3yS8VZa33Aq2ay7F7eI8dvRUN7Z3TuAh
29BOVV+itwHHzanfNG8RoCvokcE1vkANfvI3u7R4Q93U8Q+Qmjh1L5ypPe37N5BtAF
30UCPCiD9XySHjm5PyXx8ImrJDeUgFs1YhYox4B6NKsCcmm7R8NdYZYGNo1kzR4yKV
31FzMu1NUU/bwtvrpRXLe4dBL1pEkO2PpuMYDUR9+WVNLpAafTDbeIHPi/Z8v48seQ
32JxscRehfOB3DG1xrvQTMFJc3UJEBqNMkM9gOxLKOQcCcZp79FMsfWB7EjjlPR1Oh
33gyA5NR+4HxNw75Q5FpZ7qziWvIrb1Kzwfbsb9Dimx+MmiNMX9kUEPqkPo4pspwZ9
34pLCfjYUnikcnYyQ0b2ojsjQmLotYlz8mK0GH9L40zfFb1+oYfuu4Y9FPzHdPzNjx
35aFRY8cJQy1CNkCITsz53kni5rk3zVsapq0+NeBDEBYoUqX815fo0W+HVF7/j/uhT
36lPkJhRnJZPwOr5XgzPk3Yk9GlSRLJiqKF4/G8ya/nKyiNIebKM7DTcldWCmZM95B
37BIftaRN4hvVBhl0ElFnZg0xLP1AePFuuplRQTDuW8gpaNKrxwXiF3d4XJdVmjh/p
38YmnieIhbogUHFXugc3g9rE8c3oHA8b514ajSHUm9DXc0cXqw/DrsxXZtKXb+IDpF
39uv9AiM7bSU7I0h/AlaAL5uU0mL58XhkXXFQtaTbMS+u4Rv/Ie1IsnlWR4QSc4m7x
4091rfC1fIf/U43wwwnR+UjIRyr2vWcgTTpwnsZFDD8eSoJ8WqinazJRlMud6Sv+L6
41gI2wiCYyEYHrFEHy0WuS2nUSMNl5AWm31zB+erfKSLZr4EIFBIy4dJWZKwYhi46Q
42pDbw1Svf7xVdHix+5UkkYy3AY70ipf5bxA7FTJ1geJa86VKShDkqVpU6EtT+YQIJ
437geWCyskT0DTaPp6qc8QpjajmRYssDcjiTke5WiqLQAjm8BIuny0fNm6kNC8KMS7
44eGmaBI2nB92bgrqlAW+LhvW95YB0dfO8beg3jKk8s6OJ4gicGFEFp6hXFfEsEZiv
45gi7Q2QCVFvCV11884H8rtZYmMRFGmuVUvm6xh/z1xicmfSy0YUowgkA3jpi7o913
46fqmYOHAwzCxv8Zp7xBf9hLT8DxMXdxqYUnJ+FaEMRcFkJ1MAFBpQ9uDbbqAz5bd5
47F3d6o0JSleOOTDlNH7wpN15HYtaCx9v3mXLN9FY4Y1g4mE8wdU0JZn7sFEmgmAkV
48/vj9khHS6eB01GPiCA6sy/u2tSdCQQ==
49=1GHi
50-----END PGP MESSAGE-----
51
52--nextPart3246504.5GAivIUY6Q--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.html
new file mode 100644
index 00000000..53856e74
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.html
@@ -0,0 +1,88 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <a name="att1.1"/>
35 <div id="attachmentDiv1.1">
36 <div class="noquote">
37 <div dir="ltr">this is the main body</div>
38 </div>
39 </div>
40 <a name="att1.2"/>
41 <div id="attachmentDiv1.2">
42 <table cellspacing="1" class="textAtm">
43 <tr class="textAtmH">
44 <td dir="ltr">attachment1.txt</td>
45 </tr>
46 <tr class="textAtmB">
47 <td>
48 <div class="noquote">
49 <div dir="ltr">this is one attachment</div>
50 </div>
51 </td>
52 </tr>
53 </table>
54 </div>
55 <a name="att1.3"/>
56 <div id="attachmentDiv1.3">
57 <table cellspacing="1" class="textAtm">
58 <tr class="textAtmH">
59 <td dir="ltr">attachment2.txt</td>
60 </tr>
61 <tr class="textAtmB">
62 <td>
63 <div class="noquote">
64 <div dir="ltr">this is the second attachment</div>
65 </div>
66 </td>
67 </tr>
68 </table>
69 </div>
70 </div>
71 </td>
72 </tr>
73 <tr class="signOkKeyOkH">
74 <td dir="ltr">End of signed message</td>
75 </tr>
76 </table>
77 </div>
78 </div>
79 </td>
80 </tr>
81 <tr class="encrH">
82 <td dir="ltr">End of encrypted message</td>
83 </tr>
84 </table>
85 </div>
86 </div>
87 </body>
88</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.tree
new file mode 100644
index 00000000..6705a4d7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted-two-attachments.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::MimeMessagePart
5 * MimeTreeParser::TextMessagePart
6 * MimeTreeParser::MessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..6d723d52
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox
@@ -0,0 +1,47 @@
1From: OpenPGP Test <test@kolab.org>
2To: test@kolab.org
3Subject: OpenPGP signed and encrypted
4Date: Tue, 07 Sep 2010 18:08:44 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart25203163.0xtB501Z4V
12Content-Type: application/pgp-encrypted
13Content-Disposition: attachment
14
15Version: 1
16--nextPart25203163.0xtB501Z4V
17Content-Type: application/octet-stream
18Content-Disposition: inline; filename="msg.asc"
19
20-----BEGIN PGP MESSAGE-----
21Version: GnuPG v2.0.15 (GNU/Linux)
22
23hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
24y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
25KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
26kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
27mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
28XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
29OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
30QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
31SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
32oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
333S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
34enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
35gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
36pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
37NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
38qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
39wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
40+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
41rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
42rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
43N7+wk9pwIuvcrEBQj567
44=GV0c
45-----END PGP MESSAGE-----
46
47--nextPart25203163.0xtB501Z4V--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..86a964b8
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <div class="noquote">
35 <div dir="ltr">encrypted message text</div>
36 </div>
37 </div>
38 </td>
39 </tr>
40 <tr class="signOkKeyOkH">
41 <td dir="ltr">End of signed message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox
new file mode 100644
index 00000000..dbca8d45
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox
@@ -0,0 +1,126 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Received: from localhost (localhost.localdomain [127.0.0.1])
4 by akihabara.dennogumi.org (Postfix) with ESMTP id 15AB75CD846
5 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:15:03 +0200 (CEST)
6Authentication-Results: akihabara.dennogumi.org; dkim=pass
7 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
8 dkim-adsp=pass
9X-Virus-Scanned: Debian amavisd-new at akihabara.dennogumi.org
10X-Spam-Flag: NO
11X-Spam-Score: -3.818
12X-Spam-Level:
13X-Spam-Status: No, score=-3.818 required=5 tests=[BAYES_50=0.8,
14 RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.328, T_DKIM_INVALID=0.01]
15 autolearn=unavailable
16Received: from akihabara.dennogumi.org ([127.0.0.1])
17 by localhost (akihabara.dennogumi.org [127.0.0.1]) (amavisd-new, port 10024)
18 with ESMTP id RMAq-XNJ040f for <einar@heavensinferno.net>;
19 Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
20Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
21 by akihabara.dennogumi.org (Postfix) with ESMTP id 321675CD845
22 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
23Authentication-Results: akihabara.dennogumi.org; dkim=pass
24 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
25 dkim-adsp=pass
26Received: from postbox.kde.org (localhost [IPv6:::1])
27 by postbox.kde.org (Postfix) with ESMTP id 9F5E1B37F95;
28 Mon, 8 Apr 2013 10:13:32 +0000 (UTC)
29DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
30 t=1365416012; bh=ZJtmtbDLoGFwSyJUINdTk4UpuX+xzxcjGp7LSPrKNUs=;
31 h=From:To:Subject:Date:Message-ID:MIME-Version:Reply-To:List-Id:
32 List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
33 Content-Type:Sender; b=vQ0NnJ9gjeyPLhPbQx6o9UxmILkS9KrhaKG6luAS/GR
34 6iR3HKXR3HE0BCkTMD5xmKL5ztFMGcU5e79fz0ch0sd2pnZ0y1WVw7KjCxsv/YtO9HM
35 OplAHmhwRI5zH8KKQbyvdPULvssI/ISdViAXmHw04hNPsBjsIGkTPgvNbPFuk=
36X-Original-To: plasma-devel@kde.org
37Delivered-To: plasma-devel@localhost.kde.org
38Received: from mail.bddf.ca (unknown [64.141.113.219])
39 by postbox.kde.org (Postfix) with ESMTP id 782C6B37BE6
40 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 09:51:17 +0000 (UTC)
41Received: from freedom.localnet (242.13.24.31.ftth.as8758.net [31.24.13.242])
42 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
43 (No client certificate requested)
44 by mail.bddf.ca (Postfix) with ESMTPSA id 0CB712DC040
45 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 03:51:16 -0600 (MDT)
46From: "Aaron J. Seigo" <aseigo@kde.org>
47To: plasma-devel@kde.org
48Subject: activities_optional branch in kde-workspace
49Date: Mon, 08 Apr 2013 11:51:11 +0200
50Message-ID: <4143483.eqrJjo7JEn@freedom>
51User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
52 git-da50be0; 2013-03-12)
53MIME-Version: 1.0
54X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
55X-BeenThere: plasma-devel@kde.org
56X-Mailman-Version: 2.1.14
57Precedence: list
58Reply-To: plasma-devel@kde.org
59List-Id: <plasma-devel.kde.org>
60List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
61 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
62List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
63List-Post: <mailto:plasma-devel@kde.org>
64List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
65List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
66 <mailto:plasma-devel-request@kde.org?subject=subscribe>
67Content-Type: multipart/mixed; boundary="===============6664737512143839854=="
68Errors-To: plasma-devel-bounces@kde.org
69Sender: plasma-devel-bounces@kde.org
70
71
72--===============6664737512143839854==
73Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
74
75
76--nextPart1996263.NlFDv9GTkA
77Content-Transfer-Encoding: 7Bit
78Content-Type: text/plain; charset="us-ascii"
79
80hi..
81
82i noticed a new branch when i pulled kde-workspace today (finally!):
83activities_optional
84
85the lone commit in it was pushed on april 1, so maybe it's an april fools
86joke, but if it isn't, it looks like someone is trying to do something that
87makes no sense (and has no chance of being merged into master). so if this is
88a "for reals" branch, perhaps the motivation behind it can be shared?
89
90--
91Aaron J. Seigo
92--nextPart1996263.NlFDv9GTkA
93Content-Type: application/pgp-signature; name="signature.asc"
94Content-Description: This is a digitally signed message part.
95Content-Transfer-Encoding: 7Bit
96
97-----BEGIN PGP SIGNATURE-----
98Version: GnuPG v2.0.19 (GNU/Linux)
99
100iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
101t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
102=BQPF
103-----END PGP SIGNATURE-----
104--nextPart1996263.NlFDv9GTkA
105Content-Type: text/plain; name="broken.attachment"
106Content-Transfer-Encoding: 7Bit
107
108Let's break a signed message - This messageblock should not be here :D
109
110--nextPart1996263.NlFDv9GTkA--
111
112
113--===============6664737512143839854==
114Content-Type: text/plain; charset="us-ascii"
115MIME-Version: 1.0
116Content-Transfer-Encoding: 7bit
117Content-Disposition: inline
118
119_______________________________________________
120Plasma-devel mailing list
121Plasma-devel@kde.org
122https://mail.kde.org/mailman/listinfo/plasma-devel
123
124--===============6664737512143839854==--
125
126
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.html
new file mode 100644
index 00000000..a95252e4
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.html
@@ -0,0 +1,60 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.1"/>
11 <div id="attachmentDiv1.1">
12 <div class="noquote">
13 <div dir="ltr">hi..</div>
14 <br/>
15 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
16 <div dir="ltr">activities_optional</div>
17 <br/>
18 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
19 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
20 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
21 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
22 <br/>
23 <div dir="ltr">--&nbsp;</div>
24 <div dir="ltr">Aaron J. Seigo</div>
25 </div>
26 </div>
27 <a name="att1.2"/>
28 <div id="attachmentDiv1.2">
29 <hr/>
30 <div>
31 <a href="attachment:1.2?place=body"><img align="center" height="48" width="48" src="file:application-pgp-signature.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
32 </div>
33 <div>This is a digitally signed message part.</div>
34 </div>
35 <a name="att1.3"/>
36 <div id="attachmentDiv1.3">
37 <hr/>
38 <div>
39 <a href="attachment:1.3?place=body"><img align="center" height="48" width="48" src="file:text-plain.svg" border="0" style="max-width: 100%" alt=""/>broken.attachment</a>
40 </div>
41 <div/>
42 </div>
43 </div>
44 <a name="att2"/>
45 <div id="attachmentDiv2">
46 <div class="noquote">
47 <div dir="ltr">_______________________________________________</div>
48 <div dir="ltr">Plasma-devel mailing list</div>
49 <div dir="ltr">
50 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
51 </div>
52 <div dir="ltr">
53 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
54 </div>
55 </div>
56 </div>
57 </div>
58 </div>
59 </body>
60</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.tree
new file mode 100644
index 00000000..906e6274
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+additional-children.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::AttachmentMessagePart
8 * MimeTreeParser::MessagePart
9 * MimeTreeParser::AttachmentMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox
new file mode 100644
index 00000000..362dff3e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox
@@ -0,0 +1,67 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3From: "Aaron J. Seigo" <aseigo@kde.org>
4To: plasma-devel@kde.org
5Subject: activities_optional branch in kde-workspace
6Date: Mon, 08 Apr 2013 11:51:11 +0200
7Message-ID: <4143483.eqrJjo7JEn@freedom>
8User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
9 git-da50be0; 2013-03-12)
10X-Mailman-Version: 2.1.14
11Precedence: list
12Reply-To: plasma-devel@kde.org
13List-Id: <plasma-devel.kde.org>
14List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
15 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
16List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
17List-Post: <mailto:plasma-devel@kde.org>
18List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
19List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
20 <mailto:plasma-devel-request@kde.org?subject=subscribe>
21Errors-To: plasma-devel-bounces@kde.org
22Sender: plasma-devel-bounces@kde.org
23
24Oh man a header :)
25
26--__--__--
27
28Message:
29MIME-Version: 1.0
30Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
31
32
33--nextPart1996263.NlFDv9GTkA
34Content-Transfer-Encoding: 7Bit
35Content-Type: text/plain; charset="us-ascii"
36
37hi..
38
39i noticed a new branch when i pulled kde-workspace today (finally!):
40activities_optional
41
42the lone commit in it was pushed on april 1, so maybe it's an april fools
43joke, but if it isn't, it looks like someone is trying to do something that
44makes no sense (and has no chance of being merged into master). so if this is
45a "for reals" branch, perhaps the motivation behind it can be shared?
46
47--
48Aaron J. Seigo
49--nextPart1996263.NlFDv9GTkA
50Content-Type: application/pgp-signature; name="signature.asc"
51Content-Description: This is a digitally signed message part.
52Content-Transfer-Encoding: 7Bit
53
54-----BEGIN PGP SIGNATURE-----
55Version: GnuPG v2.0.19 (GNU/Linux)
56
57iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
58t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
59=BQPF
60-----END PGP SIGNATURE-----
61
62--__--__--
63
64_______________________________________________
65Plasma-devel mailing list
66Plasma-devel@kde.org
67https://mail.kde.org/mailman/listinfo/plasma-devel \ No newline at end of file
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.html
new file mode 100644
index 00000000..59c6d690
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.html
@@ -0,0 +1,94 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <div style="position: relative; word-wrap: break-word">
9 <a name="att"/>
10 <div id="attachmentDiv">
11 <div class="noquote">
12 <div dir="ltr">Oh man a header :)</div>
13 <br/>
14 </div>
15 </div>
16 </div>
17 <div style="position: relative; word-wrap: break-word">
18 <a name="att"/>
19 <div id="attachmentDiv">
20 <table cellspacing="1" cellpadding="1" class="rfc822">
21 <tr class="rfc822H">
22 <td dir="ltr">
23 <a href="attachment:e1:1?place=body">Encapsulated message</a>
24 </td>
25 </tr>
26 <tr class="rfc822B">
27 <td>
28 <a name="att1"/>
29 <div id="attachmentDiv1">
30 <table cellspacing="1" cellpadding="1" class="signWarn">
31 <tr class="signWarnH">
32 <td dir="ltr">
33 <table cellspacing="0" cellpadding="0" width="100%">
34 <tr>
35 <td>Not enough information to check signature validity.</td>
36 <td align="right">
37 <a href="kmail:showSignatureDetails">Show Details</a>
38 </td>
39 </tr>
40 </table>
41 </td>
42 </tr>
43 <tr class="signWarnB">
44 <td>
45 <a name="att1.1"/>
46 <div id="attachmentDiv1.1">
47 <div class="noquote">
48 <div dir="ltr">hi..</div>
49 <br/>
50 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
51 <div dir="ltr">activities_optional</div>
52 <br/>
53 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
54 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
55 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
56 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
57 <br/>
58 <div dir="ltr">--&nbsp;</div>
59 <div dir="ltr">Aaron J. Seigo</div>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="signWarnH">
65 <td dir="ltr">End of signed message</td>
66 </tr>
67 </table>
68 </div>
69 </td>
70 </tr>
71 <tr class="rfc822H">
72 <td dir="ltr">End of encapsulated message</td>
73 </tr>
74 </table>
75 </div>
76 </div>
77 <div style="position: relative; word-wrap: break-word">
78 <a name="att"/>
79 <div id="attachmentDiv">
80 <div class="noquote">
81 <div dir="ltr">Plasma-devel mailing list</div>
82 <div dir="ltr">
83 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
84 </div>
85 <div dir="ltr">
86 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
87 </div>
88 </div>
89 </div>
90 </div>
91 </div>
92 </div>
93 </body>
94</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.tree
new file mode 100644
index 00000000..c8310bc1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist+old.mbox.tree
@@ -0,0 +1,13 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MessagePartList
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::MimeMessagePart
7 * MimeTreeParser::EncapsulatedRfc822MessagePart
8 * MimeTreeParser::SignedMessagePart
9 * MimeTreeParser::TextMessagePart
10 * MimeTreeParser::MessagePart
11 * MimeTreeParser::MimeMessagePart
12 * MimeTreeParser::TextMessagePart
13 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox
new file mode 100644
index 00000000..8adb9f4c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox
@@ -0,0 +1,121 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Received: from localhost (localhost.localdomain [127.0.0.1])
4 by akihabara.dennogumi.org (Postfix) with ESMTP id 15AB75CD846
5 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:15:03 +0200 (CEST)
6Authentication-Results: akihabara.dennogumi.org; dkim=pass
7 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
8 dkim-adsp=pass
9X-Virus-Scanned: Debian amavisd-new at akihabara.dennogumi.org
10X-Spam-Flag: NO
11X-Spam-Score: -3.818
12X-Spam-Level:
13X-Spam-Status: No, score=-3.818 required=5 tests=[BAYES_50=0.8,
14 RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.328, T_DKIM_INVALID=0.01]
15 autolearn=unavailable
16Received: from akihabara.dennogumi.org ([127.0.0.1])
17 by localhost (akihabara.dennogumi.org [127.0.0.1]) (amavisd-new, port 10024)
18 with ESMTP id RMAq-XNJ040f for <einar@heavensinferno.net>;
19 Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
20Received: from postbox.kde.org (postbox.kde.org [46.4.96.248])
21 by akihabara.dennogumi.org (Postfix) with ESMTP id 321675CD845
22 for <einar@heavensinferno.net>; Mon, 8 Apr 2013 12:14:44 +0200 (CEST)
23Authentication-Results: akihabara.dennogumi.org; dkim=pass
24 (1024-bit key; insecure key) header.i=@kde.org header.b=vQ0NnJ9g;
25 dkim-adsp=pass
26Received: from postbox.kde.org (localhost [IPv6:::1])
27 by postbox.kde.org (Postfix) with ESMTP id 9F5E1B37F95;
28 Mon, 8 Apr 2013 10:13:32 +0000 (UTC)
29DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kde.org; s=default;
30 t=1365416012; bh=ZJtmtbDLoGFwSyJUINdTk4UpuX+xzxcjGp7LSPrKNUs=;
31 h=From:To:Subject:Date:Message-ID:MIME-Version:Reply-To:List-Id:
32 List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:
33 Content-Type:Sender; b=vQ0NnJ9gjeyPLhPbQx6o9UxmILkS9KrhaKG6luAS/GR
34 6iR3HKXR3HE0BCkTMD5xmKL5ztFMGcU5e79fz0ch0sd2pnZ0y1WVw7KjCxsv/YtO9HM
35 OplAHmhwRI5zH8KKQbyvdPULvssI/ISdViAXmHw04hNPsBjsIGkTPgvNbPFuk=
36X-Original-To: plasma-devel@kde.org
37Delivered-To: plasma-devel@localhost.kde.org
38Received: from mail.bddf.ca (unknown [64.141.113.219])
39 by postbox.kde.org (Postfix) with ESMTP id 782C6B37BE6
40 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 09:51:17 +0000 (UTC)
41Received: from freedom.localnet (242.13.24.31.ftth.as8758.net [31.24.13.242])
42 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
43 (No client certificate requested)
44 by mail.bddf.ca (Postfix) with ESMTPSA id 0CB712DC040
45 for <plasma-devel@kde.org>; Mon, 8 Apr 2013 03:51:16 -0600 (MDT)
46From: "Aaron J. Seigo" <aseigo@kde.org>
47To: plasma-devel@kde.org
48Subject: activities_optional branch in kde-workspace
49Date: Mon, 08 Apr 2013 11:51:11 +0200
50Message-ID: <4143483.eqrJjo7JEn@freedom>
51User-Agent: KMail/4.11 pre (Linux/3.6.3-1-desktop; KDE/4.10.60; i686;
52 git-da50be0; 2013-03-12)
53MIME-Version: 1.0
54X-Scanned-By: MIMEDefang 2.71 on 46.4.96.248
55X-BeenThere: plasma-devel@kde.org
56X-Mailman-Version: 2.1.14
57Precedence: list
58Reply-To: plasma-devel@kde.org
59List-Id: <plasma-devel.kde.org>
60List-Unsubscribe: <https://mail.kde.org/mailman/options/plasma-devel>,
61 <mailto:plasma-devel-request@kde.org?subject=unsubscribe>
62List-Archive: <http://mail.kde.org/pipermail/plasma-devel>
63List-Post: <mailto:plasma-devel@kde.org>
64List-Help: <mailto:plasma-devel-request@kde.org?subject=help>
65List-Subscribe: <https://mail.kde.org/mailman/listinfo/plasma-devel>,
66 <mailto:plasma-devel-request@kde.org?subject=subscribe>
67Content-Type: multipart/mixed; boundary="===============6664737512143839854=="
68Errors-To: plasma-devel-bounces@kde.org
69Sender: plasma-devel-bounces@kde.org
70
71
72--===============6664737512143839854==
73Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/pgp-signature"
74
75
76--nextPart1996263.NlFDv9GTkA
77Content-Transfer-Encoding: 7Bit
78Content-Type: text/plain; charset="us-ascii"
79
80hi..
81
82i noticed a new branch when i pulled kde-workspace today (finally!):
83activities_optional
84
85the lone commit in it was pushed on april 1, so maybe it's an april fools
86joke, but if it isn't, it looks like someone is trying to do something that
87makes no sense (and has no chance of being merged into master). so if this is
88a "for reals" branch, perhaps the motivation behind it can be shared?
89
90--
91Aaron J. Seigo
92--nextPart1996263.NlFDv9GTkA
93Content-Type: application/pgp-signature; name="signature.asc"
94Content-Description: This is a digitally signed message part.
95Content-Transfer-Encoding: 7Bit
96
97-----BEGIN PGP SIGNATURE-----
98Version: GnuPG v2.0.19 (GNU/Linux)
99
100iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
101t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
102=BQPF
103-----END PGP SIGNATURE-----
104
105--nextPart1996263.NlFDv9GTkA--
106
107
108--===============6664737512143839854==
109Content-Type: text/plain; charset="us-ascii"
110MIME-Version: 1.0
111Content-Transfer-Encoding: 7bit
112Content-Disposition: inline
113
114_______________________________________________
115Plasma-devel mailing list
116Plasma-devel@kde.org
117https://mail.kde.org/mailman/listinfo/plasma-devel
118
119--===============6664737512143839854==--
120
121
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.html
new file mode 100644
index 00000000..7acb6fbf
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.html
@@ -0,0 +1,65 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signWarn">
11 <tr class="signWarnH">
12 <td dir="ltr">
13 <table cellspacing="0" cellpadding="0" width="100%">
14 <tr>
15 <td>Not enough information to check signature validity.</td>
16 <td align="right">
17 <a href="kmail:showSignatureDetails">Show Details</a>
18 </td>
19 </tr>
20 </table>
21 </td>
22 </tr>
23 <tr class="signWarnB">
24 <td>
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">hi..</div>
29 <br/>
30 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
31 <div dir="ltr">activities_optional</div>
32 <br/>
33 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
34 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
35 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
36 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
37 <br/>
38 <div dir="ltr">--&nbsp;</div>
39 <div dir="ltr">Aaron J. Seigo</div>
40 </div>
41 </div>
42 </td>
43 </tr>
44 <tr class="signWarnH">
45 <td dir="ltr">End of signed message</td>
46 </tr>
47 </table>
48 </div>
49 <a name="att2"/>
50 <div id="attachmentDiv2">
51 <div class="noquote">
52 <div dir="ltr">_______________________________________________</div>
53 <div dir="ltr">Plasma-devel mailing list</div>
54 <div dir="ltr">
55 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
56 </div>
57 <div dir="ltr">
58 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
59 </div>
60 </div>
61 </div>
62 </div>
63 </div>
64 </body>
65</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.inProgress.html
new file mode 100644
index 00000000..77c6b29b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.inProgress.html
@@ -0,0 +1,56 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <table cellspacing="1" cellpadding="1" class="signInProgress">
11 <tr class="signInProgressH">
12 <td dir="ltr">Please wait while the signature is being verified...</td>
13 </tr>
14 <tr class="signInProgressB">
15 <td>
16 <a name="att1.1"/>
17 <div id="attachmentDiv1.1">
18 <div class="noquote">
19 <div dir="ltr">hi..</div>
20 <br/>
21 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
22 <div dir="ltr">activities_optional</div>
23 <br/>
24 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
25 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
26 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
27 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
28 <br/>
29 <div dir="ltr">--&nbsp;</div>
30 <div dir="ltr">Aaron J. Seigo</div>
31 </div>
32 </div>
33 </td>
34 </tr>
35 <tr class="signInProgressH">
36 <td dir="ltr">End of signed message</td>
37 </tr>
38 </table>
39 </div>
40 <a name="att2"/>
41 <div id="attachmentDiv2">
42 <div class="noquote">
43 <div dir="ltr">_______________________________________________</div>
44 <div dir="ltr">Plasma-devel mailing list</div>
45 <div dir="ltr">
46 <a href="mailto:Plasma-devel@kde.org">Plasma-devel@kde.org</a>
47 </div>
48 <div dir="ltr">
49 <a href="https://mail.kde.org/mailman/listinfo/plasma-devel">https://mail.kde.org/mailman/listinfo/plasma-devel</a>
50 </div>
51 </div>
52 </div>
53 </div>
54 </div>
55 </body>
56</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.tree
new file mode 100644
index 00000000..2753978c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-mailinglist.mbox.tree
@@ -0,0 +1,7 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox
new file mode 100644
index 00000000..e50879b9
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox
@@ -0,0 +1,35 @@
1Return-Path: <plasma-devel-bounces@kde.org>
2Delivered-To: einar@heavensinferno.net
3Content-Type: multipart/signed; boundary="nextPart1996263.NlFDv9GTkA"; micalg="pgp-sha1"; protocol="application/broken-signature"
4
5
6--nextPart1996263.NlFDv9GTkA
7Content-Transfer-Encoding: 7Bit
8Content-Type: text/plain; charset="us-ascii"
9
10hi..
11
12i noticed a new branch when i pulled kde-workspace today (finally!):
13activities_optional
14
15the lone commit in it was pushed on april 1, so maybe it's an april fools
16joke, but if it isn't, it looks like someone is trying to do something that
17makes no sense (and has no chance of being merged into master). so if this is
18a "for reals" branch, perhaps the motivation behind it can be shared?
19
20--
21Aaron J. Seigo
22--nextPart1996263.NlFDv9GTkA
23Content-Type: application/broken-signature; name="signature.asc"
24Content-Description: This is a digitally signed message part.
25Content-Transfer-Encoding: 7Bit
26
27-----BEGIN PGP SIGNATURE-----
28Version: GnuPG v2.0.19 (GNU/Linux)
29
30iEUEABECAAYFAlFikxAACgkQ1rcusafx20MHbwCfeXOgTDwtR81XJwAdcQB40Lt7
31t2IAmJpIZxdU+SSruySeEfbQs3VXq/8=
32=BQPF
33-----END PGP SIGNATURE-----
34
35--nextPart1996263.NlFDv9GTkA--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.html
new file mode 100644
index 00000000..4a5f337b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.html
@@ -0,0 +1,36 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <div class="noquote">
11 <div dir="ltr">hi..</div>
12 <br/>
13 <div dir="ltr">i noticed a new branch when i pulled kde-workspace today (finally!):&nbsp;</div>
14 <div dir="ltr">activities_optional</div>
15 <br/>
16 <div dir="ltr">the lone commit in it was pushed on april 1, so maybe it's an april fools&nbsp;</div>
17 <div dir="ltr">joke, but if it isn't, it looks like someone is trying to do something that&nbsp;</div>
18 <div dir="ltr">makes no sense (and has no chance of being merged into master). so if this is&nbsp;</div>
19 <div dir="ltr">a "for reals" branch, perhaps the motivation behind it can be shared?</div>
20 <br/>
21 <div dir="ltr">--&nbsp;</div>
22 <div dir="ltr">Aaron J. Seigo</div>
23 </div>
24 </div>
25 <a name="att2"/>
26 <div id="attachmentDiv2">
27 <hr/>
28 <div>
29 <a href="attachment:2?place=body"><img align="center" height="48" width="48" src="file:unknown.svg" border="0" style="max-width: 100%" alt=""/>signature.asc</a>
30 </div>
31 <div>This is a digitally signed message part.</div>
32 </div>
33 </div>
34 </div>
35 </body>
36</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.tree
new file mode 100644
index 00000000..d824a11b
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-no-protocol.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
5 * MimeTreeParser::AttachmentMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox
new file mode 100644
index 00000000..462f62a3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox
@@ -0,0 +1,54 @@
1From: firstname.lastname@example.com
2To: test@kolab.org
3Subject: OpenPGP signed with 2 text attachments
4Date: Sun, 30 Aug 2015 12:02:56 +0200
5Message-ID: <2033829.IGepAdxqt9@vkpc5>
6X-KMail-Identity: 402312391
7X-KMail-Dictionary: en_US
8User-Agent: KMail/5.0.42 pre (Linux/3.16.6-2-desktop; KDE/5.14.0; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: multipart/signed; boundary="nextPart3682207.KLrp2sxpbf"; micalg="pgp-sha1"; protocol="application/pgp-signature"
11
12--nextPart3682207.KLrp2sxpbf
13Content-Type: multipart/mixed; boundary="nextPart2397422.QDHKUNdbyg"
14Content-Transfer-Encoding: 7Bit
15
16This is a multi-part message in MIME format.
17
18--nextPart2397422.QDHKUNdbyg
19Content-Transfer-Encoding: 7Bit
20Content-Type: text/plain; charset="us-ascii"
21
22this is the main body text
23--nextPart2397422.QDHKUNdbyg
24Content-Disposition: inline; filename="attachment1.txt"
25Content-Transfer-Encoding: 7Bit
26Content-Type: text/plain; charset="utf-8"; name="attachment1.txt"
27
28this is attachment one
29--nextPart2397422.QDHKUNdbyg
30Content-Disposition: inline; filename="attachment2.txt"
31Content-Transfer-Encoding: 7Bit
32Content-Type: text/plain; charset="utf-8"; name="attachment2.txt"
33
34this is attachment two
35--nextPart2397422.QDHKUNdbyg--
36
37--nextPart3682207.KLrp2sxpbf
38Content-Type: application/pgp-signature; name="signature.asc"
39Content-Description: This is a digitally signed message part.
40Content-Transfer-Encoding: 7Bit
41
42-----BEGIN PGP SIGNATURE-----
43Version: GnuPG v2
44
45iQEVAwUAVeLU0I2YYMWPJG3mAQL/fgf+LXmO7bKafdd4g5OOVHHyXRprVmX/6hBq
46mZoor29KLIHkvAH9OJi4qBy/ZKwqqKLfttLzHb2UaAfl5kn4f0ckmnwUhU7u32Sm
47JZ0Q50SxrRVFRyvTvPG22ho9IwQUO1YSZrL4wO9v8ZBQ3vkfpmAiUQVxPQMINc8L
48i68xQEm4y1Dtoc+DTUkoIMeOOPnEl6PTMPrwn906K0r30hI4788fEGRn6uOXb+vD
49G/ISlXu+JHIxxf/J5/jVjKNbra+trrfSPzB3piJIjBLEPO5FvLx8SgQFJcJHt/kw
50ps8D5YULj/MVMLlsPtXDdZmbOi/G9pN0tr05MKcXsO5Ywe7n2BhASw==
51=2Nzb
52-----END PGP SIGNATURE-----
53
54--nextPart3682207.KLrp2sxpbf--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.html
new file mode 100644
index 00000000..06718641
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.html
@@ -0,0 +1,71 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">this is the main body text</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <table cellspacing="1" class="textAtm">
34 <tr class="textAtmH">
35 <td dir="ltr">attachment1.txt</td>
36 </tr>
37 <tr class="textAtmB">
38 <td>
39 <div class="noquote">
40 <div dir="ltr">this is attachment one</div>
41 </div>
42 </td>
43 </tr>
44 </table>
45 </div>
46 <a name="att1.3"/>
47 <div id="attachmentDiv1.3">
48 <table cellspacing="1" class="textAtm">
49 <tr class="textAtmH">
50 <td dir="ltr">attachment2.txt</td>
51 </tr>
52 <tr class="textAtmB">
53 <td>
54 <div class="noquote">
55 <div dir="ltr">this is attachment two</div>
56 </div>
57 </td>
58 </tr>
59 </table>
60 </div>
61 </div>
62 </td>
63 </tr>
64 <tr class="signOkKeyOkH">
65 <td dir="ltr">End of signed message</td>
66 </tr>
67 </table>
68 </div>
69 </div>
70 </body>
71</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.tree
new file mode 100644
index 00000000..7133f4be
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/openpgp-signed-two-attachments.mbox.tree
@@ -0,0 +1,9 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::AttachmentMessagePart
7 * MimeTreeParser::MessagePart
8 * MimeTreeParser::AttachmentMessagePart
9 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox
new file mode 100644
index 00000000..9b715161
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox
@@ -0,0 +1,92 @@
1From test@kolab.org Wed, 08 Sep 2010 17:53:29 +0200
2From: OpenPGP Test <test@kolab.org>
3Subject: Signed Fwd: OpenPGP signed and encrypted
4Date: Wed, 08 Sep 2010 17:53:29 +0200
5User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
6MIME-Version: 1.0
7Content-Type: multipart/signed; boundary="nextPart4350242.cT7m6ulPOV"; micalg="pgp-sha1"; protocol="application/pgp-signature"
8Content-Transfer-Encoding: 7Bit
9
10
11--nextPart4350242.cT7m6ulPOV
12Content-Type: multipart/mixed; boundary="nextPart1512490.WQBKYaOrt8"
13Content-Transfer-Encoding: 7Bit
14
15
16--nextPart1512490.WQBKYaOrt8
17Content-Transfer-Encoding: 7Bit
18Content-Type: text/plain; charset="us-ascii"
19
20bla bla bla
21--nextPart1512490.WQBKYaOrt8
22Content-Type: message/rfc822
23Content-Disposition: inline; filename="forwarded message"
24Content-Description: OpenPGP Test <test@kolab.org>: OpenPGP signed and encrypted
25
26From: OpenPGP Test <test@kolab.org>
27To: test@kolab.org
28Subject: OpenPGP signed and encrypted
29Date: Tue, 07 Sep 2010 18:08:44 +0200
30User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
31MIME-Version: 1.0
32Content-Type: multipart/encrypted; boundary="nextPart25203163.0xtB501Z4V"; protocol="application/pgp-encrypted"
33Content-Transfer-Encoding: 7Bit
34
35
36--nextPart25203163.0xtB501Z4V
37Content-Type: application/pgp-encrypted
38Content-Disposition: attachment
39
40Version: 1
41--nextPart25203163.0xtB501Z4V
42Content-Type: application/octet-stream
43Content-Disposition: inline; filename="msg.asc"
44
45-----BEGIN PGP MESSAGE-----
46Version: GnuPG v2.0.15 (GNU/Linux)
47
48hQEMAwzOQ1qnzNo7AQf7BFYWaGiCTGtXY59bSh3LCXNnWZejblYALxIUNXOFEXbm
49y/YA95FmQsy3U5HRCAJV/DY1PEaJz1RTm9bcdIpDC3Ab2YzSwmOwV5fcoUOB2df4
50KjX19Q+2F3JxpPQ0N1gHf4dKfIu19LH+CKeFzUN13aJs5J4A5wlj+NjJikxzmxDS
51kDtNYndynPmo9DJQcsUFw3gpvx5HaHvx1cT4mAB2M5cd2l+vN1jYbaWb0x5Zq41z
52mRNI89aPieC3rcM2289m68fGloNbYvi8mZJu5RrI4Tbi/D7Rjm1y63lHgVV6AN88
53XAzRiedOeF99LoTBulrJdtT8AAgCs8nCetcWpIffdtLpAZiZkzHmYOU7nqGxqpRk
54OVeUTrCn9DW2SMmHjaP4IiKnMvzEycu5F4a72+V1LeMIhMSjTRTq+ZE2PTaqH59z
55QsMn7Nb6GlOICbTptRKNNtyJKO7xXlpT7YtvNKnCyEOkH2XrYH7GvpYCiuQ0/o+7
56SxV436ZejiYIg6DQDXJCoa2DXimGp0C10Jh0HwX0BixpoNtwEjkGRYcX6P/JzkH0
57oBood4Ly+Tiu6iVDisrK3AVGYpIzCrKkE9qULTw4R/jFKR2tcCqGb7Fxtk2LV7Md
583S+DyOKrvKQ5GNwbp9OE97pwk+Lr1JS3UAvj5f6BR+1PVNcC0i0wWkgwDjPh1eGD
59enMQmorE6+N0uHtH2F4fOxo/TbbA3+zhI25kVW3bO03xyUl/cmQZeb52nvfOvtOo
60gSb2j6bPkzljDMPEzrtJjbFtGHJbPfUQYJgZv9OE2EQIqpg6goIw279alBq6GLIX
61pkO+dRmztzjcDyhcLxMuQ4cTizel/0J/bU7U6lvwHSyZVbT4Ev+opG5K70Hbqbwr
62NZcgdWXbSeesxGM/oQaMeSurOevxVl+/zrTVAek61aRRd1baAYqgi2pf2V7y4oK3
63qkdxzmoFpRdNlfrQW65NZWnHOi9rC9XxANIwnVn3kRcDf+t2K4PrFluI157lXM/o
64wX91j88fazysbJlQ6TjsApO9ETiPOFEBqouxCTtCZzlUgyVG8jpIjdHWFnagHeXH
65+lXNdYjxnTWTjTxMOZC9ySMpXkjWdFI1ecxVwu6Ik6RX51rvBJAAXWP75yUjPKJ4
66rRi5oQl/VLl0QznO7lvgMPtUwgDVNWO/r7Kn9B387h9fAJZ/kWFAEDW2yhAzABqO
67rCNKDzBPgfAwCnikCpMoCbOL7SU8BdbzQHD8/Lkv4m0pzliHQ/KkGF710koBzTmF
68N7+wk9pwIuvcrEBQj567
69=GV0c
70-----END PGP MESSAGE-----
71
72--nextPart25203163.0xtB501Z4V--
73
74--nextPart1512490.WQBKYaOrt8--
75
76--nextPart4350242.cT7m6ulPOV
77Content-Type: application/pgp-signature; name="signature.asc"
78Content-Description: This is a digitally signed message part.
79
80-----BEGIN PGP SIGNATURE-----
81Version: GnuPG v2.0.15 (GNU/Linux)
82
83iQEcBAABAgAGBQJMh7F5AAoJEI2YYMWPJG3mOB0IALeHfwg8u7wK0tDKtKqxQSqC
842Bbk4pTLuLw/VniQNauDG+kc1eUc5RJk/R31aB1ysiQCV5Q8ucI8c9vCDDMbd+s4
85t2bZUEzMpXrw/aFiHgYGXFAY+tpqZqDGNVRNHWsPYJKtx8cci9E5DLnBJcVXVqib
863iiHlr9AQOok3PUmpPk1a61q2L0kk8wqRenC0yZXNw5qFn5WW/hFeCOfYB+t+s5N
87IuE6ihFCJIlvGborrvl6VgPJTCyUQ3XgI90vS6ABN8TFlCNr3grXOWUePc2a20or
88xFgh38cnSR64WJajU5K1nUL9/RgfIcs+PvyHuJaRf/iUFkj1jiMEuaSi9jVFco0=
89=bArV
90-----END PGP SIGNATURE-----
91
92--nextPart4350242.cT7m6ulPOV--
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.html
new file mode 100644
index 00000000..b91772b7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.html
@@ -0,0 +1,105 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.1"/>
26 <div id="attachmentDiv1.1">
27 <div class="noquote">
28 <div dir="ltr">bla bla bla</div>
29 </div>
30 </div>
31 <a name="att1.2"/>
32 <div id="attachmentDiv1.2">
33 <table cellspacing="1" cellpadding="1" class="rfc822">
34 <tr class="rfc822H">
35 <td dir="ltr">
36 <a href="attachment:1.2.1?place=body">Encapsulated message</a>
37 </td>
38 </tr>
39 <tr class="rfc822B">
40 <td>
41 <a name="att1.2.1"/>
42 <div id="attachmentDiv1.2.1">
43 <table cellspacing="1" cellpadding="1" class="encr">
44 <tr class="encrH">
45 <td dir="ltr">Encrypted message</td>
46 </tr>
47 <tr class="encrB">
48 <td>
49 <div style="position: relative; word-wrap: break-word">
50 <a name="att"/>
51 <div id="attachmentDiv">
52 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
53 <tr class="signOkKeyOkH">
54 <td dir="ltr">
55 <table cellspacing="0" cellpadding="0" width="100%">
56 <tr>
57 <td>Signed by <a href="mailto:test@kolab.org">test@kolab.org</a>.</td>
58 <td align="right">
59 <a href="kmail:showSignatureDetails">Show Details</a>
60 </td>
61 </tr>
62 </table>
63 </td>
64 </tr>
65 <tr class="signOkKeyOkB">
66 <td>
67 <a name="att1"/>
68 <div id="attachmentDiv1">
69 <div class="noquote">
70 <div dir="ltr">encrypted message text</div>
71 </div>
72 </div>
73 </td>
74 </tr>
75 <tr class="signOkKeyOkH">
76 <td dir="ltr">End of signed message</td>
77 </tr>
78 </table>
79 </div>
80 </div>
81 </td>
82 </tr>
83 <tr class="encrH">
84 <td dir="ltr">End of encrypted message</td>
85 </tr>
86 </table>
87 </div>
88 </td>
89 </tr>
90 <tr class="rfc822H">
91 <td dir="ltr">End of encapsulated message</td>
92 </tr>
93 </table>
94 </div>
95 </div>
96 </td>
97 </tr>
98 <tr class="signOkKeyOkH">
99 <td dir="ltr">End of signed message</td>
100 </tr>
101 </table>
102 </div>
103 </div>
104 </body>
105</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..818f894c
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/signed-forward-openpgp-signed-encrypted.mbox.tree
@@ -0,0 +1,10 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::MimeMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
6 * MimeTreeParser::EncapsulatedRfc822MessagePart
7 * MimeTreeParser::EncryptedMessagePart
8 * MimeTreeParser::SignedMessagePart
9 * MimeTreeParser::TextMessagePart
10 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox
new file mode 100644
index 00000000..b3c8a19e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox
@@ -0,0 +1,24 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.crt"; smime-type="certs-only"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.crt"
13
14asdfasdfasdfasdfasdfasdfasdfasdf
15asdfasdfadsfsadfasdf
16asdfasdf
17sadfas
18dfasdf
19sadf
20sadf
21adsf
22adsf
23asdf
24
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.html
new file mode 100644
index 00000000..1b86390f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.html
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">Sorry, certificate could not be imported.<br/>Reason: BER error</div>
8 </div>
9 </body>
10</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.tree
new file mode 100644
index 00000000..c34c2eca
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-cert.mbox.tree
@@ -0,0 +1,2 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::CertMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox
new file mode 100644
index 00000000..887fe358
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox
@@ -0,0 +1,23 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/octet-stream;
11 name="smime.p7m"
12Content-Transfer-Encoding: base64
13Content-Disposition: attachment; filename="smime.p7m"
14
15MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
16S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
17LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAJwmmaOeidXUHSQGOf2OBIsPYafVqdORe
18y54pEXbXiAfSVUWgI4a9CsiWwcDX8vlaX9ZLLr+L2VmOfr6Yc5214yxzausZVvnUFjy6LUXotuEX
19tSar4EW7XI9DjaZc1l985naMsTx9JUa5GyQ9J6PGqhosAKpKMGgKkFAHaOwE1/IwgAYJKoZIhvcN
20AQcBMBQGCCqGSIb3DQMHBAieDfmz3WGbN6CABHgEpsLrNn0PAZTDUfNomDypvSCl5bQH+9cKm80m
21upMV2r8RBiXS7OaP4SpCxq18afDTTPatvboHIoEX92taTbq8soiAgEs6raSGtEYZNvFL0IYqm7MA
22o5HCOmjiEcInyPf14lL3HnPk10FaP3hh58qTHUh4LPYtL7UECOZELYnUfUVhAAAAAAAAAAAAAA==
23
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.html
new file mode 100644
index 00000000..6b08c47e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">The quick brown fox jumped over the lazy dog.</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted-octet-stream.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox
new file mode 100644
index 00000000..6b6d6a0d
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox
@@ -0,0 +1,22 @@
1From test@example.com Sat, 13 Apr 2013 01:54:30 +0200
2From: test <test@example.com>
3To: you@you.com
4Subject: test
5Date: Sat, 13 Apr 2013 01:54:30 +0200
6Message-ID: <1576646.QQxzHWx8dA@tabin>
7X-KMail-Identity: 505942601
8User-Agent: KMail/4.10.2 (Linux/3.9.0-rc4-experimental-amd64; KDE/4.10.60; x86_64; git-fc9b82c; 2013-04-11)
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
15S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
16LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAJwmmaOeidXUHSQGOf2OBIsPYafVqdORe
17y54pEXbXiAfSVUWgI4a9CsiWwcDX8vlaX9ZLLr+L2VmOfr6Yc5214yxzausZVvnUFjy6LUXotuEX
18tSar4EW7XI9DjaZc1l985naMsTx9JUa5GyQ9J6PGqhosAKpKMGgKkFAHaOwE1/IwgAYJKoZIhvcN
19AQcBMBQGCCqGSIb3DQMHBAieDfmz3WGbN6CABHgEpsLrNn0PAZTDUfNomDypvSCl5bQH+9cKm80m
20upMV2r8RBiXS7OaP4SpCxq18afDTTPatvboHIoEX92taTbq8soiAgEs6raSGtEYZNvFL0IYqm7MA
21o5HCOmjiEcInyPf14lL3HnPk10FaP3hh58qTHUh4LPYtL7UECOZELYnUfUVhAAAAAAAAAAAAAA==
22
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.html
new file mode 100644
index 00000000..6b08c47e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.html
@@ -0,0 +1,31 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <div class="noquote">
18 <div dir="ltr">The quick brown fox jumped over the lazy dog.</div>
19 </div>
20 </div>
21 </div>
22 </td>
23 </tr>
24 <tr class="encrH">
25 <td dir="ltr">End of encrypted message</td>
26 </tr>
27 </table>
28 </div>
29 </div>
30 </body>
31</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.inProgress.html
new file mode 100644
index 00000000..e5eb55d0
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.inProgress.html
@@ -0,0 +1,24 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Please wait while the message is being decrypted...</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="font-size:x-large; text-align:center; padding:20pt;"/>
15 </td>
16 </tr>
17 <tr class="encrH">
18 <td dir="ltr">End of encrypted message</td>
19 </tr>
20 </table>
21 </div>
22 </div>
23 </body>
24</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.tree
new file mode 100644
index 00000000..82f705c2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-encrypted.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox
new file mode 100644
index 00000000..be75c1e2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox
@@ -0,0 +1,37 @@
1From test@example.com Fri Sep 11 10:18:48 2015
2From: test <test@example.com>
3To: you@you.com
4Subject: enc+sign
5Date: Fri, 11 Sep 2015 12:18:48 +0200
6Message-ID: <49743203.WFa6qKaG4S@tabin.local>
7X-KMail-Identity: 792434561
8User-Agent: KMail/4.13.0.1 (Linux/4.1.5-towo.1-siduction-amd64; KDE/4.14.2; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHA6CAMIACAQAxgfwwgfkCAQAwYjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwE
15S0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxl
16LmNvbQIJANNFIDoYY4XJMA0GCSqGSIb3DQEBAQUABIGAkttyRl8OyZkRGfs3CMfzYchrG4rRMfbE
17WIkAFIXf64yAzPZfo6cCn0Il/6q4793FeKUrsJUvzP21KBLp4u1t5qLL5iPAmAzBdLg0teoEzLZe
18CEZHinM+WSMdz2wEV8lgAt8x/3yhXmDMB09FEapUaBCK5NhbLAFkpI2mFg66zxcwgAYJKoZIhvcN
19AQcBMB0GCWCGSAFlAwQBAgQQ6DSjjkXJNm5cXQNek9eozqCABIIDsI7lufqw58g/uVM2gymkldmb
20BOgdimxshJkYznbbG5sfQPNM9ROhXKRUOc8hfzgmZ9dOZvtAyzepROMHrcL1mFFx7c1vgyT85fai
21PLEqRs8FRoztXJ0I3q57r+sPW4BtYJp9WCBSerdLSrBFK1zvKpVQtSCYbbDCc3462KnSsBrE4XTf
22BiiLWkpok4fNIdqYG1aWPLgRbp7wwLiXcq5RxYCail1tlyAty6dWBrYE1+ABZoqnKUqNqbghxJUd
23X9t3EziUnzw7c0Hq03sJEShzbXI9BxOTs8ZZ+1Ktx3rdh6RhZZ7XfJ7XIuN0yYhusBeOgC8AuILN
24lYojgmXMin52VPFmz9siI8jnKaqsr1uUqVfMLNc+mLhZEjuOu99eAHwdJUS95BKWm9J8DBe/lpz3
25s09Oz2oOoiQx0WxKmQZ4GXW/UI9OwykfNLqWfmDrbMbGW4Mvq615ucHZixFdp2vf3kU72wfk8hFK
26EIU/1Ov85glDj96ELdXErXn02BNvVBQIsRx3DbBGEgj9tz+WHbCR6RjEK4eV5lhInZplFGmYr4Uu
279ALS+MRGTYZnALNPrWu6b1aWprnlJCyKZeeyqUzpQVPoWOh7CfdvBxvQoil4Z9Neb9O0AGCZ0axc
28zZ4yYcS/LpHkLgYPC5BphNtpyciQh6ZFeexi8rsZuHRu+YUKnuM+DQyUxtUvDYhiX7CT49MMXIwt
29bdyA0IAbIXXb/Us9GGX11gAfz2EFI3QBDHtsyciEgCIlA32OiiJF0T5CnQsku2yu6c3TWC4k+feL
30jjTEhm/KPUL6SkksarFeEncJlVt7impW9FlHyBpISwlQF4RAxDYTRX475VTNu7wn3PQx376m8iBN
31K20MjdfIM162jcQh9IWnqTZ0nH/gT2kQPYe7GqjFi6XmU3bwdzW9SXR0G9A8juIXaaNR7aXcsB53
32/W4WHPcdJBwRELa0dT1/bPg8z3EV2vM7Flc/Q5ugTWHxk8GHNEPpotArpLq1sEAZu78mSCqzzEDA
33TwzEpj9LZYIv4rDYYLCAxUR9YGhiJ5Qm21YnklkE++4zfpsl/KJcwtNsp7SWdzeVuPoUYBNhsgp/
34PZgudzQoOhxcF4ChHMVSNk1f1tlvXZppeXwv9OwpSszz0zZUr46ievpkQwL0Sa1XAfKwAt7bFJwp
35i95ae7p58ZdizJVsz0QUhFDxIDL76qiPEYXC7nIf4ZPQ36dzLAfZ6OwWGffluxHpE6oqUoM3l320
367yQT66xfRKLGl5Cr1Q8UBBABC6aR2dt6RVbsxbR3mB0PAAAAAAAAAAAAAA==
37
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.html
new file mode 100644
index 00000000..7f60c04f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.html
@@ -0,0 +1,57 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <div style="position: relative; word-wrap: break-word">
33 <a name="att"/>
34 <div id="attachmentDiv">
35 <div class="noquote">
36 <div dir="ltr">Encrypted and signed mail.</div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signOkKeyOkH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </td>
49 </tr>
50 <tr class="encrH">
51 <td dir="ltr">End of encrypted message</td>
52 </tr>
53 </table>
54 </div>
55 </div>
56 </body>
57</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-enc+sign.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox
new file mode 100644
index 00000000..6e1739ac
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox
@@ -0,0 +1,25 @@
1From test@example.com Fri Sep 11 10:16:06 2015
2From: test <test@example.com>
3To: you@you.com
4Subject: sign only
5Date: Fri, 11 Sep 2015 12:16:06 +0200
6Message-ID: <3182420.pXWeMPZlAJ@tabin.local>
7X-KMail-Identity: 792434561
8User-Agent: KMail/4.13.0.1 (Linux/4.1.5-towo.1-siduction-amd64; KDE/4.14.2; x86_64; ; )
9MIME-Version: 1.0
10Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="signed-data"
11Content-Transfer-Encoding: base64
12Content-Disposition: attachment; filename="smime.p7m"
13
14MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAaCAJIAEZUNvbnRl
15bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFy
16c2V0PSJ1dGYtOCIKCkEgc2ltcGxlIHNpZ25lZCBvbmx5IHRlc3QuAAAAAAAAMYIBkjCCAY4CAQEw
17YjBVMQswCQYDVQQGEwJVUzENMAsGA1UECgwES0RBQjEWMBQGA1UEAwwNdW5pdHRlc3QgY2VydDEf
18MB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbQIJANNFIDoYY4XJMAkGBSsOAwIaBQCggYcw
19GAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwMTEwMTU0ODEyWjAj
20BgkqhkiG9w0BCQQxFgQUvJ5zI7oyv5fNx1H1wabIa6atsdcwKAYJKoZIhvcNAQkPMRswGTALBglg
21hkgBZQMEAQIwCgYIKoZIhvcNAwcwDQYJKoZIhvcNAQEBBQAEgYAHFCw88FPy1n2lu5ql5sD2J4Yi
222/N9gUQvNQF5F/kd48HncdihLPZRs7eEX7IzDZNeylTmyp2WIiGEwQrIHbxtqU32NRouc09Zv4bu
23iUwUoz1SM2s7qipikwayQMD3d5zWNhszNLBsw8z48uXAzjZAejBCfPP0/w3z7DZDJC2R2QAAAAAA
24AA==
25
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.html
new file mode 100644
index 00000000..6088bc72
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.html
@@ -0,0 +1,40 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
9 <tr class="signOkKeyOkH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signOkKeyOkB">
22 <td>
23 <div style="position: relative; word-wrap: break-word">
24 <a name="att"/>
25 <div id="attachmentDiv">
26 <div class="noquote">
27 <div dir="ltr">A simple signed only test.</div>
28 </div>
29 </div>
30 </div>
31 </td>
32 </tr>
33 <tr class="signOkKeyOkH">
34 <td dir="ltr">End of signed message</td>
35 </tr>
36 </table>
37 </div>
38 </div>
39 </body>
40</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.inProgress.html
new file mode 100644
index 00000000..45a999d3
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.inProgress.html
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td/>
14 </tr>
15 <tr class="signInProgressH">
16 <td dir="ltr">End of signed message</td>
17 </tr>
18 </table>
19 </div>
20 </div>
21 </body>
22</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.tree
new file mode 100644
index 00000000..a469bb76
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-sign.mbox.tree
@@ -0,0 +1,4 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::TextMessagePart
4 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-signed-encrypted-attachment.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-signed-encrypted-attachment.mbox
new file mode 100644
index 00000000..2b1a0761
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-opaque-signed-encrypted-attachment.mbox
@@ -0,0 +1,50 @@
1From test@example.com Thu Jun 09 12:52:44 2016
2From: test@example.com
3To: test@example.com
4Subject: Opaque S/MIME signed and encrypted message with attachment
5Date: Thu, 09 Jun 2016 14:52:44 +0200
6MIME-Version: 1.0
7Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
8Content-Transfer-Encoding: base64
9Content-Disposition: attachment; filename="smime.p7m"
10
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
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox
new file mode 100644
index 00000000..d5cd06f1
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox
@@ -0,0 +1,197 @@
1From: Quack <quack@example.org>
2Content-Type: multipart/signed; boundary="Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB"; protocol="application/pkcs7-signature"; micalg=sha1
3Message-Id: <468684BD-9CBD-48CF-B1BD-2824000F9541@example.org>
4Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
5Subject: Re: PDF bug - modified mail, signature is not valid!
6Date: Fri, 20 Jan 2017 11:51:41 +0100
7To: Konqui <Konqui@kdab.com>
8
9
10--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB
11Content-Type: multipart/alternative;
12 boundary="Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB"
13
14
15--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB
16Content-Transfer-Encoding: quoted-printable
17Content-Type: text/plain;
18 charset=utf-8
19
20Ol=C3=A1 Konqui,
21
22Here is the pdf you asked for!
23Cheers,
24
25Quaak
26
27=E2=80=A6
28Quack | UX/UI Designer
29Klar=C3=A4lvdalens Datakonsult AB, a KDAB Group company
30Sweden (HQ) +46-563-540090, Germany +49-30-521325470
31KDAB - The Qt, C++ and OpenGL Experts | www.kdab.com
32
33
34--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB
35Content-Type: multipart/mixed;
36 boundary="Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB"
37
38
39--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
40Content-Transfer-Encoding: quoted-printable
41Content-Type: text/html;
42 charset=utf-8
43
44<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
45charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
46-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
47class=3D"">Ol=C3=A1 Konqui,</div><div =
48class=3D"">Here is the pdf you asked for!</div><div =
49class=3D"">Cheers,</div><div =
50class=3D"">Quaack</div></body></html>=
51
52--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
53Content-Disposition: attachment; filename="image.png"
54Content-Transfer-Encoding: base64
55Content-Type: image/png; name="image.png"
56
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
100o/0d59+Lh3Y1HHcAAAAASUVORK5CYII=
101--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB
102Content-Transfer-Encoding: quoted-printable
103Content-Type: text/html;
104 charset=utf-8
105
106<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
107charset=3Dutf-8"></head><body>=
108<blockquote type=3D"cite" class=3D""><div =
109class=3D"">On 20 Jan 2017, at 10:35, Konqui &lt;<a =
110href=3D"mailto:Konqui@kdab.com">Konqui</a>=
111</div>
112</blockquote>=
113</body></html>=
114
115--Apple-Mail=_1C4D1EDB-36C5-40D7-9AB6-1234567890AB--
116
117--Apple-Mail=_C5F90221-8F52-4623-99DF-1234567890AB--
118
119--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB
120Content-Disposition: attachment;
121 filename=smime.p7s
122Content-Type: application/pkcs7-signature;
123 name=smime.p7s
124Content-Transfer-Encoding: base64
125
126MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIILdTCCBRow
127ggQCoAMCAQICEG0Z6qcZT2ozIuYiMnqqcd4wDQYJKoZIhvcNAQEFBQAwga4xCzAJBgNVBAYTAlVT
128MQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VS
129VFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMTYwNAYDVQQD
130Ey1VVE4tVVNFUkZpcnN0LUNsaWVudCBBdXRoZW50aWNhdGlvbiBhbmQgRW1haWwwHhcNMTEwNDI4
131MDAwMDAwWhcNMjAwNTMwMTA0ODM4WjCBkzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIg
132TWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQx
133OTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24gYW5kIFNlY3VyZSBFbWFpbCBD
134QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJKEhFtLV5jUXi+LpOFAyKNTWF9mZfEy
135TvefMn1V0HhMVbdClOD5J3EHxcZppLkyxPFAGpDMJ1Zifxe1cWmu5SAb5MtjXmDKokH2auGj/7jf
136H0htZUOMKi4rYzh337EXrMLaggLW1DJq1GdvIBOPXDX65VSAr9hxCh03CgJQU2yVHakQFLSZlVkS
137Mf8JotJM3FLb3uJAAVtIaN3FSrTg7SQfOq9xXwfjrL8UO7AlcWg99A/WF1hGFYE8aIuLgw9teiFX
1385jSw2zJ+40rhpVJyZCaRTqWSD//gsWD9Gm9oUZljjRqLpcxCm5t9ImPTqaD8zp6Q30QZ9FxbNboW
13986eb/8ECAwEAAaOCAUswggFHMB8GA1UdIwQYMBaAFImCZ33EnSZwAEu0UEh83j2uBG59MB0GA1Ud
140DgQWBBR6E04AdFvGeGNkJ8Ev4qBbvHnFezAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB
141/wIBADARBgNVHSAECjAIMAYGBFUdIAAwWAYDVR0fBFEwTzBNoEugSYZHaHR0cDovL2NybC51c2Vy
142dHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtQ2xpZW50QXV0aGVudGljYXRpb25hbmRFbWFpbC5jcmww
143dAYIKwYBBQUHAQEEaDBmMD0GCCsGAQUFBzAChjFodHRwOi8vY3J0LnVzZXJ0cnVzdC5jb20vVVRO
144QWRkVHJ1c3RDbGllbnRfQ0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3Qu
145Y29tMA0GCSqGSIb3DQEBBQUAA4IBAQCF1r54V1VtM39EUv5C1QaoAQOAivsNsv1Kv/avQUn1G1rF
1460q0bc24+6SZ85kyYwTAo38v7QjyhJT4KddbQPTmGZtGhm7VNm2+vKGwdr+XqdFqo2rHA8XV6L566
147k3nK/uKRHlZ0sviN0+BDchvtj/1gOSBH+4uvOmVIPJg9pSW/ve9g4EnlFsjrP0OD8ODuDcHTzTNf
148m9C9YGqzO/761Mk6PB/tm/+bSTO+Qik5g+4zaS6CnUVNqGnagBsePdIaXXxHmaWbCG0SmYbWXVcH
149G6cwvktJRLiQfsrReTjrtDP6oDpdJlieYVUYtCHVmdXgQ0BCML7qpeeU0rD+83X5f27nMIIGUzCC
150BTugAwIBAgIQMFPel8s+Gckd6L+iGIwbpTANBgkqhkiG9w0BAQUFADCBkzELMAkGA1UEBhMCR0Ix
151GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
152Q09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGljYXRpb24g
153YW5kIFNlY3VyZSBFbWFpbCBDQTAeFw0xNDA2MDIwMDAwMDBaFw0xNzA2MDEyMzU5NTlaMIIBXzEL
154MAkGA1UEBhMCU0UxDzANBgNVBBETBjY4MyAzMTESMBAGA1UECBMJVmFlcm1sYW5kMRAwDgYDVQQH
155EwdIYWdmb3JzMRgwFgYDVQQJEw9Ob3JyaW5ncyB2YWVnIDIxDzANBgNVBBITBkJveCAzMDEmMCQG
156A1UECgwdS2xhcsOkbHZkYWxlbnMgRGF0YWtvbnN1bHQgQUIxHTAbBgNVBAsTFEEgS0RBQiBHcm91
157cCBDb21wYW55MUMwQQYDVQQLDDpJc3N1ZWQgdGhyb3VnaCBLbGFyw6RsdmRhbGVucyBEYXRha29u
158c3VsdCBBQiBFLVBLSSBNYW5hZ2VyMR8wHQYDVQQLExZDb3Jwb3JhdGUgU2VjdXJlIEVtYWlsMRgw
159FgYDVQQDEw9EaWFuYSBHb25jYWx2ZXMxJzAlBgkqhkiG9w0BCQEWGGRpYW5hLmdvbmNhbHZlc0Br
160ZGFiLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALrHSvWD6MR2tvF9A+wayTDg
161PvK3DahuvHWHzGQsd1p8bEh6qqupqgph2xO73P+ibM6EmNbCtZ+eQtW7l7iIyiC4IGsyEb5RSAtV
162zGAyebsO7SPHokbGIV5SVobaRQiJ+1gOvWUbqHSQ0T9ZPvMX2nNGIKZpqAfocRreZr36AZWRo4AF
1630uf6wz5aLEtq912u2rTWVsM1F966lexaepo0cZB9fdnnD8/pQX3zroj+vBTFNAkZXxxVwGMO24Pz
16492d/B6K8o1SP1ArqV4sxVYIxyQTmfW4X3iV/6bcbLfEcpcUNt6MUsjFulqr6a+j51alpyT3vNuJ9
165V1UI9jz3t/daQr0CAwEAAaOCAdIwggHOMB8GA1UdIwQYMBaAFHoTTgB0W8Z4Y2QnwS/ioFu8ecV7
166MB0GA1UdDgQWBBRIYj+FxAEGllaHmLL+EMhopIEOQjAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/
167BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwRgYDVR0gBD8wPTA7BgwrBgEEAbIx
168AQIBAwUwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29tb2RvLm5ldC9DUFMwVwYDVR0f
169BFAwTjBMoEqgSIZGaHR0cDovL2NybC5jb21vZG9jYS5jb20vQ09NT0RPQ2xpZW50QXV0aGVudGlj
170YXRpb25hbmRTZWN1cmVFbWFpbENBLmNybDCBiAYIKwYBBQUHAQEEfDB6MFIGCCsGAQUFBzAChkZo
171dHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9DbGllbnRBdXRoZW50aWNhdGlvbmFuZFNlY3Vy
172ZUVtYWlsQ0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wIwYDVR0R
173BBwwGoEYZGlhbmEuZ29uY2FsdmVzQGtkYWIuY29tMA0GCSqGSIb3DQEBBQUAA4IBAQACzCCZ4ppg
174H7nXnCwisxjGLIgQMdwKPB6lnWk39YT0gEqvn85tDaXIZwGiRda7O1HWdWh7RoncolX3yHQ6p/BJ
1758RWkpxoc4es1wXSPmWMpspnglvtqYlfu7NZ/CqI6bvgqoy0w3KSv+GnVkiQ6SVKU4fV6itr5VG9q
176X0JYXAbKO8hOIP3NO3MVacPgzSIv83B9eLpfi/BlG6q6XKxVf4581lYbLL0F7cKQt1UYPiDsmPJG
177+5SEHT6ZOBiLgqQVhAw4Di+6wymUHONBRuH2bH3cjfFlkCCjiFF/cS7Oharro2RFnWQ6beZ3EzCG
178FJILmq/dVMGsBFWme23hLYwtLJSXMYIDqzCCA6cCAQEwgagwgZMxCzAJBgNVBAYTAkdCMRswGQYD
179VQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9E
180TyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01PRE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBT
181ZWN1cmUgRW1haWwgQ0ECEDBT3pfLPhnJHei/ohiMG6UwCQYFKw4DAhoFAKCCAdcwGAYJKoZIhvcN
182AQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTcwMTIwMTA1MTQxWjAjBgkqhkiG9w0B
183CQQxFgQU/AV0Tj17RqaDDCeGXWhe4epgX6gwgbkGCSsGAQQBgjcQBDGBqzCBqDCBkzELMAkGA1UE
184BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG
185A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxOTA3BgNVBAMTMENPTU9ETyBDbGllbnQgQXV0aGVudGlj
186YXRpb24gYW5kIFNlY3VyZSBFbWFpbCBDQQIQMFPel8s+Gckd6L+iGIwbpTCBuwYLKoZIhvcNAQkQ
187AgsxgauggagwgZMxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
188BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTkwNwYDVQQDEzBDT01P
189RE8gQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBTZWN1cmUgRW1haWwgQ0ECEDBT3pfLPhnJHei/
190ohiMG6UwDQYJKoZIhvcNAQEBBQAEggEAEIfTyPoqjyJwrpYmZWRF6OY5ZCFdpw1UUfSXYUU2IdbL
191ph8QkMCc9uv5wk2IeE/9UxxvUR44J67Bu8hv/PCaeyMSh1j2peOlFG487SwyTjf5wIL+GEs8zvHo
1924+Dd2IPhAExt1Bjhmt6O7caF9LVrGQ/wlI6ZGN8MgjSgdrK4F3Ig4LbMuyTTcy3hDTvb+qzaQ4YI
193E+F4tnwhXG8FGEBnlng6nB4iXhoWSvBsjc1qF6eHEHzsOIZeNL7K6Imn7oKHJg+THGwHxC1TZGFt
194G92u6zV7Sc/i4ENH2MNzXT75mp8Gq/k6gpRz9nw8UVuLN/rDIb6esnEgVH9ad3awD154HAAAAAAA
195AA==
196--Apple-Mail=_607FF8D2-30E0-4FC3-86D9-1234567890AB--
197
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.html
new file mode 100644
index 00000000..11652a14
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.html
@@ -0,0 +1,58 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signErr">
9 <tr class="signErrH">
10 <td dir="ltr">
11 <table cellspacing="0" cellpadding="0" width="100%">
12 <tr>
13 <td>Invalid signature.</td>
14 <td align="right">
15 <a href="kmail:showSignatureDetails">Show Details</a>
16 </td>
17 </tr>
18 </table>
19 </td>
20 </tr>
21 <tr class="signErrB">
22 <td>
23 <a name="att1"/>
24 <div id="attachmentDiv1">
25 <a name="att1.2"/>
26 <div id="attachmentDiv1.2">
27 <a name="att1.2.1"/>
28 <div id="attachmentDiv1.2.1">
29 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
30 </div>
31 <a name="att1.2.2"/>
32 <div id="attachmentDiv1.2.2">
33 <hr/>
34 <div>
35 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
36 </div>
37 <div/>
38 </div>
39 <a name="att1.2.3"/>
40 <div id="attachmentDiv1.2.3">
41 <div style="position: relative">
42 <blockquote type="cite" class="">
43 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
44 </blockquote>
45 </div>
46 </div>
47 </div>
48 </div>
49 </td>
50 </tr>
51 <tr class="signErrH">
52 <td dir="ltr">End of signed message</td>
53 </tr>
54 </table>
55 </div>
56 </div>
57 </body>
58</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.inProgress.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.inProgress.html
new file mode 100644
index 00000000..5b57b937
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.inProgress.html
@@ -0,0 +1,49 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="signInProgress">
9 <tr class="signInProgressH">
10 <td dir="ltr">Please wait while the signature is being verified...</td>
11 </tr>
12 <tr class="signInProgressB">
13 <td>
14 <a name="att1"/>
15 <div id="attachmentDiv1">
16 <a name="att1.2"/>
17 <div id="attachmentDiv1.2">
18 <a name="att1.2.1"/>
19 <div id="attachmentDiv1.2.1">
20 <div style="position: relative">Olá Konqui,<div class="">Here is the pdf you asked for!</div><div class="">Cheers,</div><div class="">Quaack</div></div>
21 </div>
22 <a name="att1.2.2"/>
23 <div id="attachmentDiv1.2.2">
24 <hr/>
25 <div>
26 <a href="attachment:1.2.2?place=body"><img align="center" height="48" width="48" src="file:image-png.svg" border="0" style="max-width: 100%" alt=""/>image.png</a>
27 </div>
28 <div/>
29 </div>
30 <a name="att1.2.3"/>
31 <div id="attachmentDiv1.2.3">
32 <div style="position: relative">
33 <blockquote type="cite" class="">
34 <div class="">On 20 Jan 2017, at 10:35, Konqui &lt;<a href="mailto:Konqui@kdab.com">Konqui</a></div>
35 </blockquote>
36 </div>
37 </div>
38 </div>
39 </div>
40 </td>
41 </tr>
42 <tr class="signInProgressH">
43 <td dir="ltr">End of signed message</td>
44 </tr>
45 </table>
46 </div>
47 </div>
48 </body>
49</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.tree
new file mode 100644
index 00000000..3ade4efe
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-apple.mbox.tree
@@ -0,0 +1,3 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::SignedMessagePart
3 * MimeTreeParser::AlternativeMessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox
new file mode 100644
index 00000000..49857e15
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox
@@ -0,0 +1,38 @@
1From test@example.com Wed, 08 Sep 2010 17:51:32 +0200
2From: S/MIME Test <test@example.com>
3To: test@example.com
4Subject: S/MIME signed and encrypted
5Date: Wed, 08 Sep 2010 17:51:32 +0200
6User-Agent: KMail/4.6 pre (Linux/2.6.34-rc2-2-default; KDE/4.5.60; x86_64; ; )
7MIME-Version: 1.0
8Content-Type: application/pkcs7-mime; name="smime.p7m"; smime-type="enveloped-data"
9Content-Disposition: attachment; filename="smime.p7m"
10Content-Transfer-Encoding: base64
11
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
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.html
new file mode 100644
index 00000000..e13d6841
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.html
@@ -0,0 +1,55 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <table cellspacing="1" cellpadding="1" class="encr">
9 <tr class="encrH">
10 <td dir="ltr">Encrypted message</td>
11 </tr>
12 <tr class="encrB">
13 <td>
14 <div style="position: relative; word-wrap: break-word">
15 <a name="att"/>
16 <div id="attachmentDiv">
17 <table cellspacing="1" cellpadding="1" class="signOkKeyOk">
18 <tr class="signOkKeyOkH">
19 <td dir="ltr">
20 <table cellspacing="0" cellpadding="0" width="100%">
21 <tr>
22 <td>Signed by <a href="mailto:test@example.com">test@example.com</a>.</td>
23 <td align="right">
24 <a href="kmail:showSignatureDetails">Show Details</a>
25 </td>
26 </tr>
27 </table>
28 </td>
29 </tr>
30 <tr class="signOkKeyOkB">
31 <td>
32 <a name="att1"/>
33 <div id="attachmentDiv1">
34 <div class="noquote">
35 <div dir="ltr">encrypted message text</div>
36 </div>
37 </div>
38 </td>
39 </tr>
40 <tr class="signOkKeyOkH">
41 <td dir="ltr">End of signed message</td>
42 </tr>
43 </table>
44 </div>
45 </div>
46 </td>
47 </tr>
48 <tr class="encrH">
49 <td dir="ltr">End of encrypted message</td>
50 </tr>
51 </table>
52 </div>
53 </div>
54 </body>
55</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.tree
new file mode 100644
index 00000000..7d5bbeb7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/smime-signed-encrypted.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::EncryptedMessagePart
3 * MimeTreeParser::SignedMessagePart
4 * MimeTreeParser::TextMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox
new file mode 100644
index 00000000..f9c6387f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox
@@ -0,0 +1,163 @@
1Return-Path: <bugzilla-bounces@lists.kolabsys.com>
2Received: from kolab01.kolabsys.com ([unix socket])
3 by kolab01.kolabsys.com (Cyrus v2.4.17-Kolab-2.4.17-1.el6.kolab_3.0) with LMTPA;
4 Thu, 11 Apr 2013 09:03:01 +0200
5X-Sieve: CMU Sieve 2.4
6Received: from ext-mx01.kolabsys.com (unknown [10.10.20.253])
7 by kolab01.kolabsys.com (Postfix) with ESMTP id 3D8A9C0AE3
8 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:03:01 +0200 (CEST)
9Received: from localhost (localhost [127.0.0.1])
10 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 89D4E10057E
11 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
12X-Virus-Scanned: amavisd-new at example.com
13X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version"
14Received: from ext-mx01.kolabsys.com ([127.0.0.1])
15 by localhost (fw01.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
16 with ESMTP id BJxrh9Yst1Ac
17 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>;
18 Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
19Received: from lists.kolabsys.com (static.253.32.46.78.clients.your-server.de [78.46.32.253])
20 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 609821004A7
21 for <shared+shared/lists/kolabsys.com/bugzilla@kolabsys.com>; Thu, 11 Apr 2013 09:02:38 +0200 (CEST)
22Received: from localhost (localhost [127.0.0.1])
23 by lists.kolabsys.com (Postfix) with ESMTP id BFA6941D4EAD;
24 Thu, 11 Apr 2013 09:03:00 +0200 (CEST)
25X-Virus-Scanned: Debian amavisd-new at lists.kolabsys.com
26X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "MIME-Version"
27Received: from lists.kolabsys.com ([127.0.0.1])
28 by localhost (lists.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
29 with ESMTP id TYU5eAMK5J6T; Thu, 11 Apr 2013 09:02:58 +0200 (CEST)
30Received: from lists.kolabsys.com (localhost [127.0.0.1])
31 by lists.kolabsys.com (Postfix) with ESMTP id 182FC41D2A3B;
32 Thu, 11 Apr 2013 09:02:58 +0200 (CEST)
33Received: from localhost (localhost [127.0.0.1])
34 by lists.kolabsys.com (Postfix) with ESMTP id A2B3641D4EC2
35 for <bugzilla@lists.kolabsys.com>;
36 Thu, 11 Apr 2013 09:02:56 +0200 (CEST)
37X-Virus-Scanned: Debian amavisd-new at lists.kolabsys.com
38Received: from lists.kolabsys.com ([127.0.0.1])
39 by localhost (lists.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
40 with ESMTP id cyO-CNB3vFwu for <bugzilla@lists.kolabsys.com>;
41 Thu, 11 Apr 2013 09:02:54 +0200 (CEST)
42Received: from ext-mx02.kolabsys.com (ext-mx02.kolabsys.com [94.230.208.222])
43 by lists.kolabsys.com (Postfix) with ESMTP id 1640E41D2A3B
44 for <bugzilla@lists.kolabsys.com>;
45 Thu, 11 Apr 2013 09:02:54 +0200 (CEST)
46Received: from localhost (localhost [127.0.0.1])
47 by ext-mx01.kolabsys.com (Postfix) with ESMTP id 58CBC160522
48 for <bugzilla@lists.kolabsys.com>;
49 Thu, 11 Apr 2013 10:02:44 +0200 (CEST)
50X-Virus-Scanned: amavisd-new at example.com
51Received: from ext-mx02.kolabsys.com ([127.0.0.1])
52 by localhost (fw02.kolabsys.com [127.0.0.1]) (amavisd-new, port 10024)
53 with ESMTP id 4VjnHg6Y6jo7 for <bugzilla@lists.kolabsys.com>;
54 Thu, 11 Apr 2013 10:02:42 +0200 (CEST)
55Received: from app04.kolabsys.com (unknown [10.10.20.16])
56 by ext-mx02.kolabsys.com (Postfix) with ESMTP id 062DF160521
57 for <bugzilla@lists.kolabsys.com>;
58 Thu, 11 Apr 2013 10:02:42 +0200 (CEST)
59Received: by app04.kolabsys.com (Postfix, from userid 48)
60 id 8E7524048C; Thu, 11 Apr 2013 09:02:51 +0200 (CEST)
61From: Kolab Bugzilla <noreply@kolab.org>
62To: bugzilla@lists.kolabsys.com
63Subject: [Bug 1741] Standard folder name configuration ignored on creating
64 new users
65Date: Thu, 11 Apr 2013 07:02:43 +0000
66X-Bugzilla-Reason: GlobalWatcher
67X-Bugzilla-Type: changed
68X-Bugzilla-Watch-Reason: None
69X-Bugzilla-Product: UCS
70X-Bugzilla-Component: roundcube
71X-Bugzilla-Keywords:
72X-Bugzilla-Severity: normal
73X-Bugzilla-Who: wickert@kolabsys.com
74X-Bugzilla-Status: NEW
75X-Bugzilla-Priority: P3
76X-Bugzilla-Assigned-To: machniak@kolabsys.com
77X-Bugzilla-Target-Milestone: 3.1-next
78X-Bugzilla-Changed-Fields:
79Message-ID: <bug-1741-12-HOSaBe3Z8l@http.issues.kolab.org/>
80In-Reply-To: <bug-1741-12@http.issues.kolab.org/>
81References: <bug-1741-12@http.issues.kolab.org/>
82X-Bugzilla-URL: http://issues.kolab.org/
83Auto-Submitted: auto-generated
84MIME-Version: 1.0
85X-BeenThere: bugzilla@lists.kolabsys.com
86X-Mailman-Version: 2.1.11
87Precedence: list
88Reply-To: server-team@lists.kolabsys.com
89List-Id: All Bugzilla email notifications <bugzilla.lists.kolabsys.com>
90List-Unsubscribe: <https://lists.kolabsys.com/mailman/options/bugzilla>,
91 <mailto:bugzilla-request@lists.kolabsys.com?subject=unsubscribe>
92List-Archive: <http://lists.kolabsys.com/pipermail/bugzilla>
93List-Post: <mailto:bugzilla@lists.kolabsys.com>
94List-Help: <mailto:bugzilla-request@lists.kolabsys.com?subject=help>
95List-Subscribe: <https://lists.kolabsys.com/mailman/listinfo/bugzilla>,
96 <mailto:bugzilla-request@lists.kolabsys.com?subject=subscribe>
97Content-Type: multipart/mixed; boundary="===============1778809852=="
98Mime-version: 1.0
99Sender: bugzilla-bounces@lists.kolabsys.com
100Errors-To: bugzilla-bounces@lists.kolabsys.com
101
102
103--===============1778809852==
104Content-Type: multipart/alternative; boundary="1365663771.ec4d382.10226"; charset="us-ascii"
105
106
107--1365663771.ec4d382.10226
108Date: Thu, 11 Apr 2013 09:02:51 +0200
109MIME-Version: 1.0
110Content-Type: text/plain; charset="UTF-8"
111
112https://issues.kolab.org/show_bug.cgi?id=1741
113
114--- Comment #4 from Christoph Wickert <wickert@kolabsys.com> ---
115You can get everything you need on test93-18.
116
117--
118You are receiving this mail because:
119You are watching all bug changes.
120
121--1365663771.ec4d382.10226
122Date: Thu, 11 Apr 2013 09:02:51 +0200
123MIME-Version: 1.0
124Content-Type: text/html; charset="UTF-8"
125
126<html>
127 <head>
128 <base href="https://issues.kolab.org/" />
129 </head>
130 <body>
131 <b><a class="bz_bug_link
132 bz_status_NEW "
133 title="NEW --- - Standard folder name configuration ignored on creating new users"
134 href="https://issues.kolab.org/show_bug.cgi?id=1741#c4">Comment # 4</a>
135 on <a class="bz_bug_link
136 bz_status_NEW "
137 title="NEW --- - Standard folder name configuration ignored on creating new users"
138 href="https://issues.kolab.org/show_bug.cgi?id=1741">bug 1741</a>
139 from <span class="vcard"><a class="email" href="mailto:wickert&#64;kolabsys.com" title="Christoph Wickert &lt;wickert&#64;kolabsys.com&gt;"> <span class="fn">Christoph Wickert</span></a>
140</span></b>
141 <pre>You can get everything you need on test93-18.</pre>
142 <span>You are receiving this mail because:</span>
143 <ul>
144 <li>You are watching all bug changes.</li>
145 </ul>
146 </body>
147</html>
148
149--1365663771.ec4d382.10226--
150
151--===============1778809852==
152Content-Type: text/plain; charset="us-ascii"
153MIME-Version: 1.0
154Content-Transfer-Encoding: 7bit
155Content-Disposition: inline
156
157_______________________________________________
158bugzilla mailing list
159bugzilla@lists.kolabsys.com
160https://lists.kolabsys.com/mailman/listinfo/bugzilla
161
162--===============1778809852==--
163
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.html b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.html
new file mode 100644
index 00000000..2b5af631
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.html
@@ -0,0 +1,38 @@
1<?xml version="1.0" encoding="UTF8"?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3<html>
4 <body>
5 <div style="position: relative; word-wrap: break-word">
6 <a name="att"/>
7 <div id="attachmentDiv">
8 <a name="att1"/>
9 <div id="attachmentDiv1">
10 <a name="att1.2"/>
11 <div id="attachmentDiv1.2">
12 <div style="position: relative">
13 <b><a class="bz_bug_link bz_status_NEW " title="NEW --- - Standard folder name configuration ignored on creating new users" href="https://issues.kolab.org/show_bug.cgi?id=1741#c4">Comment # 4</a>on <a class="bz_bug_link bz_status_NEW " title="NEW --- - Standard folder name configuration ignored on creating new users" href="https://issues.kolab.org/show_bug.cgi?id=1741">bug 1741</a>from <span class="vcard"><a class="email" href="mailto:wickert@kolabsys.com" title="Christoph Wickert &lt;wickert@kolabsys.com&gt;"><span class="fn">Christoph Wickert</span></a></span></b>
14 <pre>You can get everything you need on test93-18.</pre>
15 <span>You are receiving this mail because:</span>
16 <ul>
17 <li>You are watching all bug changes.</li>
18 </ul>
19 </div>
20 </div>
21 </div>
22 <a name="att2"/>
23 <div id="attachmentDiv2">
24 <div class="noquote">
25 <div dir="ltr">_______________________________________________</div>
26 <div dir="ltr">bugzilla mailing list</div>
27 <div dir="ltr">
28 <a href="mailto:bugzilla@lists.kolabsys.com">bugzilla@lists.kolabsys.com</a>
29 </div>
30 <div dir="ltr">
31 <a href="https://lists.kolabsys.com/mailman/listinfo/bugzilla">https://lists.kolabsys.com/mailman/listinfo/bugzilla</a>
32 </div>
33 </div>
34 </div>
35 </div>
36 </div>
37 </body>
38</html>
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.tree b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.tree
new file mode 100644
index 00000000..3738cb37
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/data/text+html-maillinglist.mbox.tree
@@ -0,0 +1,5 @@
1 * MimeTreeParser::MessagePartList
2 * MimeTreeParser::MimeMessagePart
3 * MimeTreeParser::AlternativeMessagePart
4 * MimeTreeParser::AttachmentMessagePart
5 * MimeTreeParser::MessagePart
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/kdepim_add_gpg_crypto_test.cmake b/framework/src/domain/mimetreeparser/otp/autotests/kdepim_add_gpg_crypto_test.cmake
new file mode 100644
index 00000000..ea0ab8d2
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/kdepim_add_gpg_crypto_test.cmake
@@ -0,0 +1,61 @@
1# Copyright (c) 2013 Sandro Knauß <mail@sandroknauss.de>
2#
3# Redistribution and use is allowed according to the terms of the BSD license.
4# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
5
6set( MIMETREEPARSERRELPATH framework/src/domain/mimetreeparser)
7set( GNUPGHOME ${CMAKE_BINARY_DIR}/${MIMETREEPARSERRELPATH}/tests/gnupg_home )
8add_definitions( -DGNUPGHOME="${GNUPGHOME}" )
9
10macro (ADD_GPG_CRYPTO_TEST _target _testname)
11 if (UNIX)
12 if (APPLE)
13 set(_library_path_variable "DYLD_LIBRARY_PATH")
14 elseif (CYGWIN)
15 set(_library_path_variable "PATH")
16 else (APPLE)
17 set(_library_path_variable "LD_LIBRARY_PATH")
18 endif (APPLE)
19
20 if (APPLE)
21 # DYLD_LIBRARY_PATH does not work like LD_LIBRARY_PATH
22 # OSX already has the RPATH in libraries and executables, putting runtime directories in
23 # DYLD_LIBRARY_PATH actually breaks things
24 set(_ld_library_path "${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/")
25 else (APPLE)
26 set(_ld_library_path "${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/:${LIB_INSTALL_DIR}:${QT_LIBRARY_DIR}")
27 endif (APPLE)
28 set(_executable "$<TARGET_FILE:${_target}>")
29
30 # use add_custom_target() to have the sh-wrapper generated during build time instead of cmake time
31 add_custom_command(TARGET ${_target} POST_BUILD
32 COMMAND ${CMAKE_COMMAND}
33 -D_filename=${_executable}.shell -D_library_path_variable=${_library_path_variable}
34 -D_ld_library_path="${_ld_library_path}" -D_executable=$<TARGET_FILE:${_target}>
35 -D_gnupghome="${GNUPGHOME}"
36 -P ${CMAKE_SOURCE_DIR}/${MIMETREEPARSERRELPATH}/tests/kdepim_generate_crypto_test_wrapper.cmake
37 )
38
39 set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${_executable}.shell" )
40 add_test(NAME ${_testname} COMMAND ${_executable}.shell)
41
42 else (UNIX)
43 # under windows, set the property WRAPPER_SCRIPT just to the name of the executable
44 # maybe later this will change to a generated batch file (for setting the PATH so that the Qt libs are found)
45 set(_ld_library_path "${LIBRARY_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}\;${LIB_INSTALL_DIR}\;${QT_LIBRARY_DIR}")
46 set(_executable "$<TARGET_FILE:${_target}>")
47
48 # use add_custom_target() to have the batch-file-wrapper generated during build time instead of cmake time
49 add_custom_command(TARGET ${_target} POST_BUILD
50 COMMAND ${CMAKE_COMMAND}
51 -D_filename="${_executable}.bat"
52 -D_ld_library_path="${_ld_library_path}" -D_executable="${_executable}"
53 -D_gnupghome="${GNUPGHOME}"
54 -P ${CMAKE_SOURCE_DIR}/${MIMETREEPARSERRELPATH}/tests/kdepim_generate_crypto_test_wrapper.cmake
55 )
56
57 add_test(NAME ${_testname} COMMAND ${_executable}.bat)
58
59 endif (UNIX)
60endmacro (ADD_GPG_CRYPTO_TEST)
61
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/kdepim_generate_crypto_test_wrapper.cmake b/framework/src/domain/mimetreeparser/otp/autotests/kdepim_generate_crypto_test_wrapper.cmake
new file mode 100644
index 00000000..e1412f37
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/kdepim_generate_crypto_test_wrapper.cmake
@@ -0,0 +1,45 @@
1# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
2# Copyright (c) 2013, Sandro Knauß <mail@sandroknauss.de>
3#
4# Redistribution and use is allowed according to the terms of the BSD license.
5# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
6
7
8if (UNIX)
9
10file(WRITE "${_filename}"
11"#!/bin/sh
12# created by cmake, don't edit, changes will be lost
13
14# don't mess with a gpg-agent already running on the system
15unset GPG_AGENT_INFO
16
17${_library_path_variable}=${_ld_library_path}\${${_library_path_variable}:+:\$${_library_path_variable}} GNUPGHOME=${_gnupghome} gpg-agent --daemon \"${_executable}\" \"$@\"
18_result=$?
19_pid=`echo GETINFO pid | GNUPGHOME=${_gnupghome} gpg-connect-agent | grep 'D' | cut -d' ' -f2`
20if [ ! -z \"\$_pid\" ]; then
21 echo \"Waiting for gpg-agent to terminate (PID: $_pid)...\"
22 while kill -0 \"\$_pid\"; do
23 sleep 1
24 done
25fi
26exit \$_result
27")
28
29# make it executable
30# since this is only executed on UNIX, it is safe to call chmod
31exec_program(chmod ARGS ug+x \"${_filename}\" OUTPUT_VARIABLE _dummy )
32
33else (UNIX)
34
35file(TO_NATIVE_PATH "${_ld_library_path}" win_path)
36file(TO_NATIVE_PATH "${_gnupghome}" win_gnupghome)
37
38file(WRITE "${_filename}"
39"
40set PATH=${win_path};$ENV{PATH}
41set GNUPGHOME=${win_gnupghome};$ENV{GNUPGHOME}
42gpg-agent --daemon \"${_executable}\" %*
43")
44
45endif (UNIX)
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.cpp b/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.cpp
new file mode 100644
index 00000000..d2a5d605
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.cpp
@@ -0,0 +1,275 @@
1/* Copyright 2015 Sandro Knauß <bugs@sandroknauss.de>
2
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public License as
5 published by the Free Software Foundation; either version 2 of
6 the License or (at your option) version 3 or any later version
7 accepted by the membership of KDE e.V. (or its successor approved
8 by the membership of KDE e.V.), which shall act as a proxy
9 defined in Section 14 of version 3 of the license.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19#include "nodehelpertest.h"
20
21#include "nodehelper.h"
22
23#include <qtest.h>
24
25using namespace MimeTreeParser;
26
27NodeHelperTest::NodeHelperTest()
28 : QObject()
29{
30
31}
32
33void NodeHelperTest::testPersistentIndex()
34{
35 NodeHelper helper;
36
37 KMime::Content *node = new KMime::Content();
38 KMime::Content *node2 = new KMime::Content();
39 KMime::Content *node2Extra = new KMime::Content();
40 KMime::Content *subNode = new KMime::Content();
41 KMime::Content *subsubNode = new KMime::Content(), *subsubNode2 = new KMime::Content();
42 KMime::Content *node2ExtraSubNode = new KMime::Content();
43 KMime::Content *node2ExtraSubsubNode = new KMime::Content();
44 KMime::Content *node2ExtraSubsubNode2 = new KMime::Content();
45 KMime::Content *extra = new KMime::Content(), *extra2 = new KMime::Content();
46 KMime::Content *subExtra = new KMime::Content();
47 KMime::Content *subsubExtra = new KMime::Content();
48 KMime::Content *subsubExtraNode = new KMime::Content();
49
50 subNode->addContent(subsubNode);
51 subNode->addContent(subsubNode2);
52 node->addContent(subNode);
53 subsubExtra->addContent(subsubExtraNode);
54 helper.attachExtraContent(node, extra);
55 helper.attachExtraContent(node, extra2);
56 helper.attachExtraContent(subNode, subExtra);
57 helper.attachExtraContent(subsubNode2, subsubExtra);
58
59 // This simulates Opaque S/MIME signed and encrypted message with attachment
60 // (attachment is node2SubsubNode2)
61 node2Extra->addContent(node2ExtraSubNode);
62 node2ExtraSubNode->addContent(node2ExtraSubsubNode);
63 node2ExtraSubNode->addContent(node2ExtraSubsubNode2);
64 helper.attachExtraContent(node2, node2Extra);
65
66 /* all content has a internal first child, so indexes starts at 2
67 * node ""
68 * -> subNode "2"
69 * -> subsubNode "2.2"
70 * -> subsubNode2 "2.3"
71 *
72 * node ""
73 * -> extra "e0"
74 * -> extra2 "e1"
75 *
76 * subNode "2"
77 * -> subExtra "2:e0"
78 *
79 * subsubNode2 "2.3"
80 * -> subsubExtra "2.3:e0"
81 * -> subsubExtraNode "2.3:e0:2"
82 *
83 * node2 ""
84 *
85 * node2 ""
86 * -> node2Extra "e0"
87 * -> node2ExtraSubNode "e0:2"
88 * -> node2ExtraSubsubNode "e0:2.2"
89 * -> node2ExtraSubsubNode2 "e0:2.3"
90 */
91
92 QCOMPARE(helper.persistentIndex(node), QStringLiteral(""));
93 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("")), node);
94
95 QCOMPARE(helper.persistentIndex(node->contents()[0]), QStringLiteral("1"));
96 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("1")), node->contents()[0]);
97
98 QCOMPARE(helper.persistentIndex(subNode), QStringLiteral("2"));
99 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2")), subNode);
100
101 QCOMPARE(helper.persistentIndex(subsubNode), QStringLiteral("2.2"));
102 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2.2")), subsubNode);
103
104 QCOMPARE(helper.persistentIndex(subsubNode2), QStringLiteral("2.3"));
105 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2.3")), subsubNode2);
106
107 QCOMPARE(helper.persistentIndex(extra), QStringLiteral("e0"));
108 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("e0")), extra);
109
110 QCOMPARE(helper.persistentIndex(extra2), QStringLiteral("e1"));
111 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("e1")), extra2);
112
113 QCOMPARE(helper.persistentIndex(subExtra), QStringLiteral("2:e0"));
114 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2:e0")), subExtra);
115
116 QCOMPARE(helper.persistentIndex(subsubExtra), QStringLiteral("2.3:e0"));
117 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2.3:e0")), subsubExtra);
118
119 QCOMPARE(helper.persistentIndex(subsubExtraNode), QStringLiteral("2.3:e0:2"));
120 QCOMPARE(helper.contentFromIndex(node, QStringLiteral("2.3:e0:2")), subsubExtraNode);
121
122 QCOMPARE(helper.persistentIndex(node2ExtraSubsubNode2), QStringLiteral("e0:2.3"));
123 QCOMPARE(helper.contentFromIndex(node2, QStringLiteral("e0:2.3")), node2ExtraSubsubNode2);
124
125 delete node;
126}
127
128void NodeHelperTest::testHREF()
129{
130 NodeHelper helper;
131 KMime::Message::Ptr msg(new KMime::Message);
132 QUrl url;
133
134 KMime::Content *node = msg->topLevel();
135 KMime::Content *subNode = new KMime::Content();
136 KMime::Content *subsubNode = new KMime::Content(), *subsubNode2 = new KMime::Content();
137 KMime::Content *extra = new KMime::Content(), *extra2 = new KMime::Content();
138 KMime::Content *subExtra = new KMime::Content();
139 KMime::Content *subsubExtra = new KMime::Content();
140 KMime::Content *subsubExtraNode = new KMime::Content();
141
142 subNode->addContent(subsubNode);
143 subNode->addContent(subsubNode2);
144 node->addContent(subNode);
145 subsubExtra->addContent(subsubExtraNode);
146 helper.attachExtraContent(node, extra);
147 helper.attachExtraContent(node, extra2);
148 helper.attachExtraContent(subNode, subExtra);
149 helper.attachExtraContent(subsubNode2, subsubExtra);
150
151 url = QUrl(QStringLiteral(""));
152 QCOMPARE(helper.fromHREF(msg, url), node);
153
154 url = QUrl(QStringLiteral("attachment:e0?place=body"));
155 QCOMPARE(helper.fromHREF(msg, url), extra);
156
157 url = QUrl(QStringLiteral("attachment:2.2?place=body"));
158 QCOMPARE(helper.fromHREF(msg, url), subsubNode);
159
160 url = QUrl(QStringLiteral("attachment:2.3:e0:2?place=body"));
161 QCOMPARE(helper.fromHREF(msg, url), subsubExtraNode);
162
163 QCOMPARE(helper.asHREF(node, QStringLiteral("body")), QStringLiteral("attachment:?place=body"));
164 QCOMPARE(helper.asHREF(extra, QStringLiteral("body")), QStringLiteral("attachment:e0?place=body"));
165 QCOMPARE(helper.asHREF(subsubNode, QStringLiteral("body")), QStringLiteral("attachment:2.2?place=body"));
166 QCOMPARE(helper.asHREF(subsubExtraNode, QStringLiteral("body")), QStringLiteral("attachment:2.3:e0:2?place=body"));
167}
168
169void NodeHelperTest::testLocalFiles()
170{
171 NodeHelper helper;
172 KMime::Message::Ptr msg(new KMime::Message);
173
174 KMime::Content *node = msg->topLevel();
175 KMime::Content *subNode = new KMime::Content();
176 KMime::Content *subsubNode = new KMime::Content(), *subsubNode2 = new KMime::Content();
177 KMime::Content *extra = new KMime::Content(), *extra2 = new KMime::Content();
178 KMime::Content *subExtra = new KMime::Content();
179 KMime::Content *subsubExtra = new KMime::Content();
180 KMime::Content *subsubExtraNode = new KMime::Content();
181
182 subNode->addContent(subsubNode);
183 subNode->addContent(subsubNode2);
184 node->addContent(subNode);
185 subsubExtra->addContent(subsubExtraNode);
186 helper.attachExtraContent(node, extra);
187 helper.attachExtraContent(node, extra2);
188 helper.attachExtraContent(subNode, subExtra);
189 helper.attachExtraContent(subsubNode2, subsubExtra);
190
191 helper.writeNodeToTempFile(node);
192 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(node)), node);
193 helper.writeNodeToTempFile(subNode);
194 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subNode)), subNode);
195 helper.writeNodeToTempFile(subsubNode);
196 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subsubNode)), subsubNode);
197 helper.writeNodeToTempFile(subsubNode2);
198 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subsubNode2)), subsubNode2);
199 helper.writeNodeToTempFile(extra);
200 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(extra)), extra);
201 helper.writeNodeToTempFile(subExtra);
202 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subExtra)), subExtra);
203 helper.writeNodeToTempFile(subsubExtra);
204 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subsubExtra)), subsubExtra);
205 helper.writeNodeToTempFile(subsubExtraNode);
206 QCOMPARE(helper.fromHREF(msg, helper.tempFileUrlFromNode(subsubExtraNode)), subsubExtraNode);
207}
208
209void NodeHelperTest::testCreateTempDir()
210{
211 QString path;
212 {
213 NodeHelper helper;
214 path = helper.createTempDir(QStringLiteral("foo"));
215
216 QVERIFY(path.endsWith(QStringLiteral(".index.foo")));
217 QVERIFY(QDir(path).exists());
218 QVERIFY(QFile(path).permissions() & QFileDevice::WriteUser);
219 QVERIFY(QFile(path).permissions() & QFileDevice::ExeUser);
220 QVERIFY(QFile(path).permissions() & QFileDevice::ReadUser);
221 }
222 QVERIFY(!QDir(path).exists());
223}
224
225void NodeHelperTest::testFromAsString()
226{
227 const QString tlSender = QStringLiteral("Foo <foo@example.com>");
228 const QString encSender = QStringLiteral("Bar <bar@example.com>");
229
230 NodeHelper helper;
231
232 // msg (KMime::Message)
233 // |- subNode
234 // |- encNode (KMime::Message)
235 // |- encSubNode
236 //
237 // subNode
238 // |- subExtra
239 //
240 // encSubNode
241 // |- encSubExtra
242
243 KMime::Message msg;
244 msg.from(true)->fromUnicodeString(tlSender, "UTF-8");
245 auto node = msg.topLevel();
246 auto subNode = new KMime::Content();
247 auto subExtra = new KMime::Content();
248
249 // Encapsulated message
250 KMime::Message *encMsg = new KMime::Message;
251 encMsg->from(true)->fromUnicodeString(encSender, "UTF-8");
252 auto encNode = encMsg->topLevel();
253 auto encSubNode = new KMime::Content();
254 auto encSubExtra = new KMime::Content();
255
256 node->addContent(subNode);
257 node->addContent(encMsg);
258 encNode->addContent(encSubNode);
259
260 helper.attachExtraContent(subNode, subExtra);
261 helper.attachExtraContent(encSubNode, encSubExtra);
262
263 QCOMPARE(helper.fromAsString(node), tlSender);
264 QCOMPARE(helper.fromAsString(subNode), tlSender);
265 QCOMPARE(helper.fromAsString(subExtra), tlSender);
266 QEXPECT_FAIL("", "Returning sender of encapsulated message is not yet implemented", Continue);
267 QCOMPARE(helper.fromAsString(encNode), encSender);
268 QEXPECT_FAIL("", "Returning sender of encapsulated message is not yet implemented", Continue);
269 QCOMPARE(helper.fromAsString(encSubNode), encSender);
270 QEXPECT_FAIL("", "Returning sender of encapsulated message is not yet implemented", Continue);
271 QCOMPARE(helper.fromAsString(encSubExtra), encSender);
272}
273
274QTEST_GUILESS_MAIN(NodeHelperTest)
275
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.h b/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.h
new file mode 100644
index 00000000..d2ed772a
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/nodehelpertest.h
@@ -0,0 +1,45 @@
1/* Copyright 2015 Sandro Knauß <bugs@sandroknauss.de>
2
3 This program is free software; you can redistribute it and/or
4 modify it under the terms of the GNU General Public License as
5 published by the Free Software Foundation; either version 2 of
6 the License or (at your option) version 3 or any later version
7 accepted by the membership of KDE e.V. (or its successor approved
8 by the membership of KDE e.V.), which shall act as a proxy
9 defined in Section 14 of version 3 of the license.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef NODEHELPERTEST_H
20#define NODEHELPERTEST_H
21
22#include <QObject>
23
24#include <KMime/Message>
25
26namespace MimeTreeParser
27{
28
29class NodeHelperTest : public QObject
30{
31 Q_OBJECT
32
33public:
34 NodeHelperTest();
35
36private Q_SLOTS:
37 void testPersistentIndex();
38 void testLocalFiles();
39 void testHREF();
40 void testCreateTempDir();
41 void testFromAsString();
42};
43
44}
45#endif
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/setupenv.cpp b/framework/src/domain/mimetreeparser/otp/autotests/setupenv.cpp
new file mode 100644
index 00000000..be7a8685
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/setupenv.cpp
@@ -0,0 +1,34 @@
1/*
2 Copyright (C) 2010 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com
3 Copyright (c) 2010 Leo Franchi <lfranchi@kde.org>
4
5 This library is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Library General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or (at your
8 option) any later version.
9
10 This library is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 02110-1301, USA.
19*/
20
21#include "setupenv.h"
22
23#include <QStandardPaths>
24
25#include <QFile>
26#include <QDir>
27
28void MimeTreeParser::Test::setupEnv()
29{
30 setenv("LC_ALL", "C", 1);
31 setenv("KDEHOME", QFile::encodeName(QDir::homePath() + QString::fromLatin1("/.qttest")).constData(), 1);
32 QStandardPaths::setTestModeEnabled(true);
33}
34
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/setupenv.h b/framework/src/domain/mimetreeparser/otp/autotests/setupenv.h
new file mode 100644
index 00000000..3582853e
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/setupenv.h
@@ -0,0 +1,175 @@
1/*
2 Copyright (C) 2010 Klaralvdalens Datakonsult AB, a KDAB Group company, info@kdab.com
3 Copyright (c) 2010 Leo Franchi <lfranchi@kde.org>
4
5 This library is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Library General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or (at your
8 option) any later version.
9
10 This library is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 02110-1301, USA.
19*/
20
21#ifndef MESSAGECORE_TESTS_UTIL_H
22#define MESSAGECORE_TESTS_UTIL_H
23
24#include <gpgme++/key.h>
25#include <attachmentstrategy.h>
26#include <bodypartformatter.h>
27#include <bodypartformatterbasefactory.h>
28#include <messagepartrenderer.h>
29#include <objecttreesource.h>
30
31namespace MimeTreeParser
32{
33
34namespace Test
35{
36
37/**
38* setup a environment variables for tests:
39* * set LC_ALL to C
40* * set KDEHOME
41*/
42void setupEnv();
43
44// We can't use EmptySource, since we need to control some emelnets of the source for tests to also test
45// loadExternal and htmlMail.
46class TestObjectTreeSource : public MimeTreeParser::Interface::ObjectTreeSource
47{
48public:
49 TestObjectTreeSource(MimeTreeParser::HtmlWriter *writer)
50 : mWriter(writer)
51 , mAttachmentStrategy(QStringLiteral("smart"))
52 , mPreferredMode(Util::Html)
53 , mHtmlLoadExternal(false)
54 , mDecryptMessage(false)
55 {
56 }
57
58 MimeTreeParser::HtmlWriter *htmlWriter() Q_DECL_OVERRIDE {
59 return mWriter;
60 }
61
62 bool htmlLoadExternal() const Q_DECL_OVERRIDE
63 {
64 return mHtmlLoadExternal;
65 }
66
67 void setHtmlLoadExternal(bool loadExternal)
68 {
69 mHtmlLoadExternal = loadExternal;
70 }
71
72 void setAttachmentStrategy(QString strategy)
73 {
74 mAttachmentStrategy = strategy;
75 }
76
77 const AttachmentStrategy *attachmentStrategy() Q_DECL_OVERRIDE {
78 return AttachmentStrategy::create(mAttachmentStrategy);
79 }
80
81 bool autoImportKeys() const Q_DECL_OVERRIDE
82 {
83 return true;
84 }
85
86 bool showEmoticons() const Q_DECL_OVERRIDE
87 {
88 return false;
89 }
90
91 bool showExpandQuotesMark() const Q_DECL_OVERRIDE
92 {
93 return false;
94 }
95
96 const BodyPartFormatterBaseFactory *bodyPartFormatterFactory() Q_DECL_OVERRIDE {
97 return &mBodyPartFormatterBaseFactory;
98 }
99
100 bool decryptMessage() const Q_DECL_OVERRIDE
101 {
102 return mDecryptMessage;
103 }
104
105 void setAllowDecryption(bool allowDecryption)
106 {
107 mDecryptMessage = allowDecryption;
108 }
109
110 void setShowSignatureDetails(bool showSignatureDetails)
111 {
112 mShowSignatureDetails = showSignatureDetails;
113 }
114
115 bool showSignatureDetails() const Q_DECL_OVERRIDE
116 {
117 return mShowSignatureDetails;
118 }
119
120 void setHtmlMode(MimeTreeParser::Util::HtmlMode mode, const QList<MimeTreeParser::Util::HtmlMode> &availableModes) Q_DECL_OVERRIDE {
121 Q_UNUSED(mode);
122 Q_UNUSED(availableModes);
123 }
124
125 MimeTreeParser::Util::HtmlMode preferredMode() const Q_DECL_OVERRIDE
126 {
127 return mPreferredMode;
128 }
129
130 void setPreferredMode(MimeTreeParser::Util::HtmlMode mode)
131 {
132 mPreferredMode = mode;
133 }
134
135 int levelQuote() const Q_DECL_OVERRIDE
136 {
137 return 1;
138 }
139
140 const QTextCodec *overrideCodec() Q_DECL_OVERRIDE {
141 return nullptr;
142 }
143
144 QString createMessageHeader(KMime::Message *message) Q_DECL_OVERRIDE {
145 Q_UNUSED(message);
146 return QString(); //do nothing
147 }
148
149 QObject *sourceObject() Q_DECL_OVERRIDE {
150 return nullptr;
151 }
152
153 Interface::MessagePartRenderer::Ptr messagePartTheme(Interface::MessagePart::Ptr msgPart) Q_DECL_OVERRIDE {
154 Q_UNUSED(msgPart);
155 return Interface::MessagePartRenderer::Ptr();
156 }
157 bool isPrinting() const Q_DECL_OVERRIDE
158 {
159 return false;
160 }
161private:
162 MimeTreeParser::HtmlWriter *mWriter;
163 QString mAttachmentStrategy;
164 BodyPartFormatterBaseFactory mBodyPartFormatterBaseFactory;
165 MimeTreeParser::Util::HtmlMode mPreferredMode;
166 bool mHtmlLoadExternal;
167 bool mDecryptMessage;
168 bool mShowSignatureDetails;
169};
170
171}
172
173}
174
175#endif
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.cpp b/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.cpp
new file mode 100644
index 00000000..0e411e8f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.cpp
@@ -0,0 +1,106 @@
1/*
2 testcsshelper.cpp
3
4 This file is part of KMail, the KDE mail client.
5 Copyright (c) 2013 Sandro Knauß <bugs@sandroknauss.de>
6
7 KMail is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License, version 2, as
9 published by the Free Software Foundation.
10
11 KMail is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
20 In addition, as a special exception, the copyright holders give
21 permission to link the code of this program with any edition of
22 the Qt library by Trolltech AS, Norway (or with modified versions
23 of Qt that use the same license as Qt), and distribute linked
24 combinations including the two. You must obey the GNU General
25 Public License in all respects for all of the code used other than
26 Qt. If you modify this file, you may extend this exception to
27 your version of the file, but you are not obligated to do so. If
28 you do not wish to do so, delete this exception statement from
29 your version.
30*/
31
32#include "testcsshelper.h"
33
34#include <QColor>
35#include <QFont>
36#include <QPalette>
37#include <QApplication>
38
39namespace MimeTreeParser
40{
41
42TestCSSHelper::TestCSSHelper(const QPaintDevice *pd) :
43 CSSHelperBase(pd)
44{
45 mRecycleQuoteColors = false;
46 mBackgroundColor = QColor(0xff, 0xff, 0xff);
47 mForegroundColor = QColor(0x1f, 0x1c, 0x1b);
48 mLinkColor = QColor(0x00, 0x57, 0xae);
49 cPgpEncrH = QColor(0x00, 0x80, 0xff);
50 cPgpOk1H = QColor(0x40, 0xff, 0x40);
51 cPgpOk0H = QColor(0xff, 0xff, 0x40);
52 cPgpWarnH = QColor(0xff, 0xff, 0x40);
53 cPgpErrH = QColor(0xff, 0x00, 0x00);
54
55 cPgpEncrHT = QColor(0xff, 0xff, 0xff);
56 cPgpOk1HT = QColor(0x27, 0xae, 0x60);
57 cPgpOk0HT = QColor(0xf6, 0x74, 0x00);
58 cPgpWarnHT = QColor(0xf6, 0x74, 0x00);
59 cPgpErrHT = QColor(0xda, 0x44, 0x53);
60
61 cHtmlWarning = QColor(0xff, 0x40, 0x40);
62 for (int i = 0; i < 3; ++i) {
63 mQuoteColor[i] = QColor(0x00, 0x80 - i * 0x10, 0x00);
64 }
65
66 QFont defaultFont = QFont(QStringLiteral("Sans Serif"), 9);
67 mBodyFont = defaultFont;
68 mPrintFont = defaultFont;
69 mFixedFont = defaultFont;
70 mFixedPrintFont = defaultFont;
71 defaultFont.setItalic(true);
72 for (int i = 0; i < 3; ++i) {
73 mQuoteFont[i] = defaultFont;
74 }
75
76 mShrinkQuotes = false;
77
78 QPalette pal;
79
80 pal.setColor(QPalette::Background, QColor(0xd6, 0xd2, 0xd0));
81 pal.setColor(QPalette::Foreground, QColor(0x22, 0x1f, 0x1e));
82 pal.setColor(QPalette::Highlight, QColor(0x43, 0xac, 0xe8));
83 pal.setColor(QPalette::HighlightedText, QColor(0xff, 0xff, 0xff));
84 pal.setColor(QPalette::Mid, QColor(0xb3, 0xab, 0xa7));
85
86 QApplication::setPalette(pal);
87
88 recalculatePGPColors();
89}
90
91TestCSSHelper::~TestCSSHelper()
92{
93
94}
95
96QString TestCSSHelper::htmlHead(bool fixed) const
97{
98 Q_UNUSED(fixed);
99 return
100 QStringLiteral("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n"
101 "<html>\n"
102 "<body>\n");
103}
104
105}
106
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.h b/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.h
new file mode 100644
index 00000000..c21935cf
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/testcsshelper.h
@@ -0,0 +1,50 @@
1/* -*- c++ -*-
2 testcsshelper.h
3
4 This file is part of KMail, the KDE mail client.
5 Copyright (c) 2013 Sandro Knauß <bugs@sandroknauss.de>
6
7 KMail is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License, version 2, as
9 published by the Free Software Foundation.
10
11 KMail is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
20 In addition, as a special exception, the copyright holders give
21 permission to link the code of this program with any edition of
22 the Qt library by Trolltech AS, Norway (or with modified versions
23 of Qt that use the same license as Qt), and distribute linked
24 combinations including the two. You must obey the GNU General
25 Public License in all respects for all of the code used other than
26 Qt. If you modify this file, you may extend this exception to
27 your version of the file, but you are not obligated to do so. If
28 you do not wish to do so, delete this exception statement from
29 your version.
30*/
31
32#ifndef __MIMETREEPARSER_TESTCSSHELPER_H__
33#define __MIMETREEPARSER_TESTCSSHELPER_H__
34
35#include "viewer/csshelperbase.h"
36
37namespace MimeTreeParser
38{
39
40class TestCSSHelper : public CSSHelperBase
41{
42public:
43 explicit TestCSSHelper(const QPaintDevice *pd);
44 virtual ~TestCSSHelper();
45 QString htmlHead(bool fixed) const Q_DECL_OVERRIDE;
46};
47
48}
49
50#endif // __MIMETREEPARSER_TESTCSSHELPER_H__
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/util.cpp b/framework/src/domain/mimetreeparser/otp/autotests/util.cpp
new file mode 100644
index 00000000..5ea415b7
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/util.cpp
@@ -0,0 +1,34 @@
1/*
2 Copyright (c) 2010 Thomas McGuire <thomas.mcguire@kdab.com>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19#include "util.h"
20
21#include <QFile>
22
23KMime::Message::Ptr readAndParseMail(const QString &mailFile)
24{
25 QFile file(QLatin1String(MAIL_DATA_DIR) + QLatin1Char('/') + mailFile);
26 file.open(QIODevice::ReadOnly);
27 Q_ASSERT(file.isOpen());
28 const QByteArray data = KMime::CRLFtoLF(file.readAll());
29 Q_ASSERT(!data.isEmpty());
30 KMime::Message::Ptr msg(new KMime::Message);
31 msg->setContent(data);
32 msg->parse();
33 return msg;
34}
diff --git a/framework/src/domain/mimetreeparser/otp/autotests/util.h b/framework/src/domain/mimetreeparser/otp/autotests/util.h
new file mode 100644
index 00000000..ac4aa54f
--- /dev/null
+++ b/framework/src/domain/mimetreeparser/otp/autotests/util.h
@@ -0,0 +1,43 @@
1/*
2 Copyright (c) 2010 Thomas McGuire <thomas.mcguire@kdab.com>
3
4 This library is free software; you can redistribute it and/or modify it
5 under the terms of the GNU Library General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or (at your
7 option) any later version.
8
9 This library is distributed in the hope that it will be useful, but WITHOUT
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12 License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to the
16 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 02110-1301, USA.
18*/
19#include "htmlwriter.h"
20
21#include <KMime/Message>
22
23class TestHtmlWriter : public MimeTreeParser::HtmlWriter
24{
25public:
26 explicit TestHtmlWriter() {}
27 virtual ~TestHtmlWriter() {}
28
29 void begin(const QString &) Q_DECL_OVERRIDE {}
30 void write(const QString &) Q_DECL_OVERRIDE {}
31 void end() Q_DECL_OVERRIDE {}
32 void reset() Q_DECL_OVERRIDE {}
33 void queue(const QString &str) Q_DECL_OVERRIDE {
34 html.append(str);
35 }
36 void flush() Q_DECL_OVERRIDE {}
37 void embedPart(const QByteArray &, const QString &) Q_DECL_OVERRIDE {}
38 void extraHead(const QString &) Q_DECL_OVERRIDE {}
39
40 QString html;
41};
42
43KMime::Message::Ptr readAndParseMail(const QString &mailFile);