unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
blob c60e15240e73c023c9e2f157f6f50449746c024a 3945 bytes (raw)
name: test/T357-index-decryption.sh 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
 
#!/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"

# add a tag to all messages to ensure that it stays after reindexing
test_expect_success 'tagging all messages' \
                    'notmuch tag +blarney "encrypted message"'
test_begin_subtest "verify that tags are all present"
output=$(notmuch search tag:blarney)
expected='thread:0000000000000001   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 001 (blarney encrypted inbox)
thread:0000000000000002   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 002 (blarney encrypted inbox index-decrypted)'
test_expect_equal \
    "$output" \
    "$expected"

# see if first message shows up after reindexing with --try-decrypt
test_expect_success 'reindex old messages' \
                    'notmuch reindex --try-decrypt tag:encrypted and not tag:index-decrypted'
test_begin_subtest "reindexed encrypted message, including cleartext"
output=$(notmuch search wumpus)
expected='thread:0000000000000002   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 002 (blarney encrypted inbox index-decrypted)
thread:0000000000000003   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 001 (blarney encrypted inbox index-decrypted)'
test_expect_equal \
    "$output" \
    "$expected"


# try to remove cleartext indexing
test_expect_success 'reindex without cleartext' \
                    'notmuch reindex tag:encrypted and tag:index-decrypted'
test_begin_subtest "reindexed encrypted messages, without cleartext"
output=$(notmuch search wumpus)
expected=''
test_expect_equal \
    "$output" \
    "$expected"

# ensure that the tags remain even when we are dropping the cleartext.
test_begin_subtest "verify that tags remain without cleartext"
output=$(notmuch search tag:blarney)
expected='thread:0000000000000004   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 002 (blarney encrypted inbox)
thread:0000000000000005   2000-01-01 [1/1] Notmuch Test Suite; test encrypted message for cleartext index 001 (blarney encrypted inbox)'
test_expect_equal \
    "$output" \
    "$expected"


# TODO: test removal of a message from the message store between
# indexing and reindexing.

# TODO: insert the same message into the message store twice, index,
# remove one of them from the message store, and then reindex.
# reindexing should return a failure but the message should still be
# present? -- or what should the semantics be if you ask to reindex a
# message whose underlying files have been renamed or moved or
# removed?

test_done

debug log:

solving c60e152 ...
found c60e152 in https://yhetil.org/notmuch/1454272801-23623-17-git-send-email-dkg@fifthhorseman.net/
found 03e49cc in https://yhetil.org/notmuch/1454272801-23623-15-git-send-email-dkg@fifthhorseman.net/

applying [1/2] https://yhetil.org/notmuch/1454272801-23623-15-git-send-email-dkg@fifthhorseman.net/
diff --git a/test/T357-index-decryption.sh b/test/T357-index-decryption.sh
new file mode 100755
index 0000000..03e49cc


applying [2/2] https://yhetil.org/notmuch/1454272801-23623-17-git-send-email-dkg@fifthhorseman.net/
diff --git a/test/T357-index-decryption.sh b/test/T357-index-decryption.sh
index 03e49cc..c60e152 100755

Checking patch test/T357-index-decryption.sh...
Applied patch test/T357-index-decryption.sh cleanly.
Checking patch test/T357-index-decryption.sh...
Applied patch test/T357-index-decryption.sh cleanly.

index at:
100755 c60e15240e73c023c9e2f157f6f50449746c024a	test/T357-index-decryption.sh

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

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).