From 907751bc7b2af659584de6d4e73976bfd52b4409 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Fri, 13 May 2022 23:01:33 +0300 Subject: [PATCH] test: enable some more --- lib/message/test-mu-message.cc | 89 ++++++++++++++++++++++++++++++++++ mu/tests/meson.build | 10 ++-- mu/tests/test-mu-cmd.cc | 12 ++++- 3 files changed, 104 insertions(+), 7 deletions(-) diff --git a/lib/message/test-mu-message.cc b/lib/message/test-mu-message.cc index 474daaa1..4e6b75d0 100644 --- a/lib/message/test-mu-message.cc +++ b/lib/message/test-mu-message.cc @@ -472,6 +472,93 @@ Content-Type: message/rfc822 } +static void +test_message_detect_attachment(void) +{ + constexpr const char *msgtext = +R"(From: "DUCK, Donald" +Date: Tue, 3 May 2022 10:26:26 +0300 +Message-ID: +Subject: =?Windows-1252?Q?Purkuty=F6urakka?= +To: Hello +Content-Type: multipart/mixed; boundary="000000000000e687ed05de166d71" + +--000000000000e687ed05de166d71 +Content-Type: multipart/alternative; boundary="000000000000e687eb05de166d6f" + +--000000000000e687eb05de166d6f +Content-Type: text/plain; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + +fyi + +---------- Forwarded message --------- +From: Fooish Bar +Date: Tue, 3 May 2022 at 08:59 +Subject: Ty=C3=B6t +To: "DUCK, Donald" + +Moi, + +-- + +--000000000000e687eb05de166d6f +Content-Type: text/html; charset="UTF-8" +Content-Transfer-Encoding: quoted-printable + +abc + +--000000000000e687eb05de166d6f-- +--000000000000e687ed05de166d71 +Content-Type: application/pdf; + name="test1.pdf" +Content-Disposition: attachment; + filename="test2.pdf" +Content-Transfer-Encoding: base64 +Content-ID: <18088cfd4bc5517c6321> +X-Attachment-Id: 18088cfd4bc5517c6321 + +JVBERi0xLjcKJeLjz9MKNyAwIG9iago8PCAvVHlwZSAvUGFnZSAvUGFyZW50IDEgMCBSIC9MYXN0 +TW9kaWZpZWQgKEQ6MjAyMjA1MDMwODU3MzYrMDMnMDAnKSAvUmVzb3VyY2VzIDIgMCBSIC9NZWRp +cmVmCjM1NjE4CiUlRU9GCg== +--000000000000e687ed05de166d71-- +)"; + auto message{Message::make_from_text(msgtext)}; + g_assert_true(!!message); + + g_assert_true(message->path().empty()); + + g_assert_true(message->bcc().empty()); + assert_equal(message->subject(), "Purkutyƶurakka"); + assert_equal(message->body_html().value_or(""), "abc\n"); + assert_equal(message->body_text().value_or(""), + R"(fyi + +---------- Forwarded message --------- +From: Fooish Bar +Date: Tue, 3 May 2022 at 08:59 +Subject: Tyƶt +To: "DUCK, Donald" + +Moi, + +-- +)"); + + g_assert_true(message->cc().empty()); + g_assert_cmpuint(message->date(), ==, 1651562786); + g_assert_true(message->flags() == (Flags::HasAttachment)); + + g_assert_cmpuint(message->parts().size(), ==, 3); + + for (auto&& part: message->parts()) + g_info("%s %s", + part.is_attachment() ? "yes" : "no", + part.mime_type().value_or("boo").c_str()); + +} + + int main(int argc, char* argv[]) { @@ -487,6 +574,8 @@ main(int argc, char* argv[]) test_message_signed_encrypted); g_test_add_func("/message/message/multipart-mixed-rfc822", test_message_multipart_mixed_rfc822); + g_test_add_func("/message/message/detect-attachment", + test_message_detect_attachment); return g_test_run(); } diff --git a/mu/tests/meson.build b/mu/tests/meson.build index cfc1239c..0f63e794 100644 --- a/mu/tests/meson.build +++ b/mu/tests/meson.build @@ -19,11 +19,11 @@ # # BROKEN on ubuntu CI, but works elsewhere. Investigate -# test('test-cmd', -# executable('test-cmd', -# 'test-mu-cmd.cc', -# install: false, -# dependencies: [glib_dep, lib_test_mu_common_dep, config_h_dep, lib_mu_dep])) +test('test-cmd', + executable('test-cmd', + 'test-mu-cmd.cc', + install: false, + dependencies: [glib_dep, lib_test_mu_common_dep, config_h_dep, lib_mu_dep])) test('test-cmd-cfind', executable('test-cmd-cfind', diff --git a/mu/tests/test-mu-cmd.cc b/mu/tests/test-mu-cmd.cc index 6e4c6f91..c6990f7b 100644 --- a/mu/tests/test-mu-cmd.cc +++ b/mu/tests/test-mu-cmd.cc @@ -31,6 +31,7 @@ #include "test-mu-common.hh" #include "mu-store.hh" #include "mu-query.hh" +#include "utils/mu-result.hh" #include "utils/mu-utils.hh" using namespace Mu; @@ -120,8 +121,9 @@ search_func(const char* query, unsigned expected) static void test_mu_index(void) { - Mu::Store store{DBPATH + "/xapian", true}; - g_assert_cmpuint(store.size(), ==, 13); + auto store = Store::make(DBPATH + "/xapian"); + assert_valid_result(store); + g_assert_cmpuint(store->size(), ==, 13); } static void @@ -822,6 +824,12 @@ main(int argc, char* argv[]) { int rv; + /* currently, something is broken on Ubuntu CI (but not elsewhere); + * selectively turn this test off */ + if (!g_getenv("RUN_TEST_MU_CMD")) + return 0; + + g_test_init(&argc, &argv, NULL); if (!set_en_us_utf8_locale())