From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
To: Notmuch Mail <notmuch@notmuchmail.org>
Subject: [PATCH v3 14/16] test indexing cleartext version of delivered messages.
Date: Sun, 31 Jan 2016 15:39:59 -0500 [thread overview]
Message-ID: <1454272801-23623-15-git-send-email-dkg@fifthhorseman.net> (raw)
In-Reply-To: <1454272801-23623-1-git-send-email-dkg@fifthhorseman.net>
This requires a bit of reorganization:
* add_gnupg_home gets moved to test-lib.sh, and
* we allow passing --long-arguments to "notmuch new" via
emacs_fcc_message
---
test/T350-crypto.sh | 15 ---------------
test/T357-index-decryption.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
test/test-lib.sh | 26 +++++++++++++++++++++++++-
3 files changed, 67 insertions(+), 16 deletions(-)
create mode 100755 test/T357-index-decryption.sh
diff --git a/test/T350-crypto.sh b/test/T350-crypto.sh
index 4bc15bc..50cc526 100755
--- a/test/T350-crypto.sh
+++ b/test/T350-crypto.sh
@@ -7,21 +7,6 @@
test_description='PGP/MIME signature verification and decryption'
. ./test-lib.sh || exit 1
-add_gnupg_home ()
-{
- local output
- [ -d ${GNUPGHOME} ] && return
- mkdir -m 0700 "$GNUPGHOME"
- $GPG --no-tty --import <$TEST_DIRECTORY/gnupg-secret-key.asc >"$GNUPGHOME"/import.log 2>&1
- test_debug "cat $GNUPGHOME/import.log"
- if ($GPG --quick-random --version >/dev/null 2>&1) ; then
- echo quick-random >> "$GNUPGHOME"/gpg.conf
- elif ($GPG --debug-quick-random --version >/dev/null 2>&1) ; then
- echo debug-quick-random >> "$GNUPGHOME"/gpg.conf
- fi
- echo no-emit-version >> "$GNUPGHOME"/gpg.conf
-}
-
##################################################
add_gnupg_home
diff --git a/test/T357-index-decryption.sh b/test/T357-index-decryption.sh
new file mode 100755
index 0000000..03e49cc
--- /dev/null
+++ b/test/T357-index-decryption.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+
+# TODO: test index-decryption-failed
+
+test_description='indexing decrypted mail'
+. ./test-lib.sh || exit 1
+
+##################################################
+
+add_gnupg_home
+# get key fingerprint
+FINGERPRINT=$($GPG --no-tty --list-secret-keys --with-colons --fingerprint | grep '^fpr:' | cut -d: -f10)
+
+# create a test encrypted message
+test_expect_success 'emacs delivery of encrypted message' \
+'emacs_fcc_message \
+ "test encrypted message for cleartext index 001" \
+ "This is a test encrypted message with a wumpus.\n" \
+ "(mml-secure-message-encrypt)"'
+
+test_begin_subtest "search for unindexed cleartext"
+output=$(notmuch search wumpus)
+expected=''
+test_expect_equal \
+ "$output" \
+ "$expected"
+
+# create a test encrypted message that is indexed in the clear
+test_expect_success 'emacs delivery of encrypted message' \
+'emacs_fcc_message --try-decrypt \
+ "test encrypted message for cleartext index 002" \
+ "This is a test encrypted message with a wumpus.\n" \
+ "(mml-secure-message-encrypt)"'
+
+test_begin_subtest "emacs delivery of encrypted message, indexed cleartext"
+output=$(notmuch search wumpus)
+expected='thread:0000000000000002 2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 002 (encrypted inbox index-decrypted)'
+test_expect_equal \
+ "$output" \
+ "$expected"
+
+test_done
diff --git a/test/test-lib.sh b/test/test-lib.sh
index 8c1f3c6..1fea6c7 100644
--- a/test/test-lib.sh
+++ b/test/test-lib.sh
@@ -92,6 +92,21 @@ else
GPG=gpg
fi
+add_gnupg_home ()
+{
+ local output
+ [ -d ${GNUPGHOME} ] && return
+ mkdir -m 0700 "$GNUPGHOME"
+ $GPG --no-tty --import <$TEST_DIRECTORY/gnupg-secret-key.asc >"$GNUPGHOME"/import.log 2>&1
+ test_debug "cat $GNUPGHOME/import.log"
+ if ($GPG --quick-random --version >/dev/null 2>&1) ; then
+ echo quick-random >> "$GNUPGHOME"/gpg.conf
+ elif ($GPG --debug-quick-random --version >/dev/null 2>&1) ; then
+ echo debug-quick-random >> "$GNUPGHOME"/gpg.conf
+ fi
+ echo no-emit-version >> "$GNUPGHOME"/gpg.conf
+}
+
# Convenience
#
# A regexp to match 5 and 40 hexdigits
@@ -514,8 +529,17 @@ emacs_deliver_message ()
# Accepts arbitrary extra emacs/elisp functions to modify the message
# before sending, which is useful to doing things like attaching files
# to the message and encrypting/signing.
+#
+# If any GNU-style long-arguments (like --quiet or --try-decrypt) are
+# at the head of the argument list, they are sent directly to "notmuch
+# new" after message delivery
emacs_fcc_message ()
{
+ local nmn_args=''
+ while [[ "$1" =~ ^-- ]]; do
+ nmn_args="$nmn_args $1"
+ shift
+ done
local subject="$1"
local body="$2"
shift 2
@@ -534,7 +558,7 @@ emacs_fcc_message ()
(insert \"${body}\")
$@
(notmuch-mua-send-and-exit))" || return 1
- notmuch new >/dev/null
+ notmuch new $nmn_args >/dev/null
}
# Generate a corpus of email and add it to the database.
--
2.7.0.rc3
next prev parent reply other threads:[~2016-01-31 20:40 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-31 20:39 Allow indexing cleartext of encrypted messages (v3) Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 01/16] add util/search-path.{c, h} to test for executables in $PATH Daniel Kahn Gillmor
2016-02-09 12:57 ` David Bremner
2016-02-09 21:52 ` [PATCH v4] " Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 02/16] Move crypto.c into libutil Daniel Kahn Gillmor
2016-02-10 2:21 ` David Bremner
2016-02-10 14:34 ` Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 03/16] make shared crypto code behave library-like Daniel Kahn Gillmor
2016-02-10 2:37 ` David Bremner
2016-02-10 16:18 ` Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 04/16] Provide _notmuch_crypto_{set,get}_gpg_path Daniel Kahn Gillmor
2016-02-10 11:45 ` David Bremner
2016-02-10 16:31 ` Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 05/16] Use a blank _notmuch_crypto to choose the default gpg_path Daniel Kahn Gillmor
2016-02-10 11:49 ` David Bremner
2016-02-10 16:37 ` Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 06/16] Prefer gpg2 in the test suite if available Daniel Kahn Gillmor
2016-02-10 11:54 ` David Bremner
2016-02-10 16:39 ` Daniel Kahn Gillmor
2016-02-10 20:28 ` David Bremner
2016-02-11 7:16 ` Tomi Ollila
2016-01-31 20:39 ` [PATCH v3 07/16] create a notmuch_indexopts_t index options object Daniel Kahn Gillmor
2016-02-27 13:06 ` David Bremner
2016-01-31 20:39 ` [PATCH v3 08/16] reorganize indexing of multipart/signed and multipart/encrypted Daniel Kahn Gillmor
2016-02-27 13:14 ` David Bremner
2016-01-31 20:39 ` [PATCH v3 09/16] index encrypted parts when asked Daniel Kahn Gillmor
2016-02-27 15:49 ` David Bremner
2016-01-31 20:39 ` [PATCH v3 10/16] Add n_d_add_message_with_indexopts (extension of n_d_add_message) Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 11/16] add --try-decrypt to notmuch insert Daniel Kahn Gillmor
2016-02-27 15:55 ` David Bremner
2016-01-31 20:39 ` [PATCH v3 12/16] add --try-decrypt to notmuch new Daniel Kahn Gillmor
2016-01-31 20:39 ` [PATCH v3 13/16] add indexopts to notmuch python bindings Daniel Kahn Gillmor
2016-02-28 14:22 ` David Bremner
2016-01-31 20:39 ` Daniel Kahn Gillmor [this message]
2016-01-31 20:40 ` [PATCH v3 15/16] added notmuch_message_reindex Daniel Kahn Gillmor
2016-02-10 0:41 ` Jameson Graef Rollins
2016-02-10 1:01 ` Daniel Kahn Gillmor
2016-02-10 17:21 ` Daniel Kahn Gillmor
2016-02-13 18:13 ` David Bremner
2016-02-28 14:52 ` David Bremner
2016-01-31 20:40 ` [PATCH v3 16/16] add "notmuch reindex" subcommand Daniel Kahn Gillmor
2016-02-28 15:05 ` David Bremner
2016-02-06 20:48 ` Allow indexing cleartext of encrypted messages (v3) Tomi Ollila
2016-02-09 8:08 ` Jameson Graef Rollins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1454272801-23623-15-git-send-email-dkg@fifthhorseman.net \
--to=dkg@fifthhorseman.net \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).