aboutsummaryrefslogtreecommitdiff
path: root/test/crypto
diff options
context:
space:
mode:
authorJameson Graef Rollins <jrollins@finestructure.net>2011-05-27 03:27:37 -0700
committerCarl Worth <cworth@cworth.org>2011-05-27 16:22:00 -0700
commit82daf29187f84076d55df9ea35da692d200128ec (patch)
treeace549215d0068807c1adb2d5aa1f36469413225 /test/crypto
parent54045197498f540b4ba96344073994bac13a3039 (diff)
Render all parts of multipart/encrypted when decrypting.
The primary goal here is to keep the decrypted output as similarly structured as undecrypted output as possible. Now, when decrypting parts, only the original encrypted part is replaced by the it's decrypted content. If this part isn't itself a multipart, then all part numbering should remain consistent during decryption. The only draw back here is that the useless application/pgp-encrypted sub-part of the multipart/encrypted part is also emitted. But this part can be easily ignored by clients.
Diffstat (limited to 'test/crypto')
-rwxr-xr-xtest/crypto39
1 files changed, 27 insertions, 12 deletions
diff --git a/test/crypto b/test/crypto
index 0251643..8e92016 100755
--- a/test/crypto
+++ b/test/crypto
@@ -160,15 +160,20 @@ To: test_suite@notmuchmail.org
Date: 01 Jan 2000 12:00:00 -0000
header}
body{
- part{ ID: 1, Content-type: multipart/mixed
- part{ ID: 2, Content-type: text/plain
+ part{ ID: 1, Content-type: multipart/encrypted
+ part{ ID: 2, Content-type: application/pgp-encrypted
+Non-text part: application/pgp-encrypted
+ part}
+ part{ ID: 3, Content-type: multipart/mixed
+ part{ ID: 4, Content-type: text/plain
This is a test encrypted message.
part}
- attachment{ ID: 3, Content-type: application/octet-stream
+ attachment{ ID: 5, Content-type: application/octet-stream
Attachment: TESTATTACHMENT (application/octet-stream)
Non-text part: application/octet-stream
attachment}
part}
+ part}
body}
message}'
test_expect_equal \
@@ -194,33 +199,37 @@ expected='[[[{"id": "XXXXX",
"body": [{"id": 1,
"encstatus": [{"status": "good"}],
"sigstatus": [],
- "content-type": "multipart/mixed",
+ "content-type": "multipart/encrypted",
"content": [{"id": 2,
+ "content-type": "application/pgp-encrypted"},
+ {"id": 3,
+ "content-type": "multipart/mixed",
+ "content": [{"id": 4,
"content-type": "text/plain",
"content": "This is a test encrypted message.\n"},
- {"id": 3,
+ {"id": 5,
"content-type": "application/octet-stream",
- "filename": "TESTATTACHMENT"}]}]},
+ "filename": "TESTATTACHMENT"}]}]}]},
[]]]]'
test_expect_equal \
"$output" \
"$expected"
-test_begin_subtest "decryption, --format=json, --part=2"
-output=$(notmuch show --format=json --part=2 --decrypt subject:"test encrypted message 001" \
+test_begin_subtest "decryption, --format=json, --part=4"
+output=$(notmuch show --format=json --part=4 --decrypt subject:"test encrypted message 001" \
| notmuch_json_show_sanitize \
| sed -e 's|"created": [1234567890]*|"created": 946728000|')
-expected='{"id": 2,
+expected='{"id": 4,
"content-type": "text/plain",
"content": "This is a test encrypted message.\n"}'
test_expect_equal \
"$output" \
"$expected"
-test_begin_subtest "decrypt attachment (--part=3 --format=raw)"
+test_begin_subtest "decrypt attachment (--part=5 --format=raw)"
notmuch show \
--format=raw \
- --part=3 \
+ --part=5 \
--decrypt \
subject:"test encrypted message 001" >OUTPUT
test_expect_equal_file OUTPUT TESTATTACHMENT
@@ -283,8 +292,12 @@ expected='[[[{"id": "XXXXX",
"fingerprint": "'$FINGERPRINT'",
"created": 946728000,
"userid": " Notmuch Test Suite <test_suite@notmuchmail.org> (INSECURE!)"}],
+ "content-type": "multipart/encrypted",
+ "content": [{"id": 2,
+ "content-type": "application/pgp-encrypted"},
+ {"id": 3,
"content-type": "text/plain",
- "content": "This is another test encrypted message.\n"}]},
+ "content": "This is another test encrypted message.\n"}]}]},
[]]]]'
test_expect_equal \
"$output" \
@@ -297,6 +310,8 @@ expected='From: Notmuch Test Suite <test_suite@notmuchmail.org>
Subject: Re: test encrypted message 002
On 01 Jan 2000 12:00:00 -0000, Notmuch Test Suite <test_suite@notmuchmail.org> wrote:
+Non-text part: multipart/encrypted
+Non-text part: application/pgp-encrypted
> This is another test encrypted message.'
test_expect_equal \
"$output" \