sup 0.22.1 → 0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -3
  3. data/.travis.yml +11 -6
  4. data/CONTRIBUTORS +13 -5
  5. data/Gemfile +2 -1
  6. data/History.txt +51 -0
  7. data/README.md +26 -5
  8. data/bin/sup +7 -5
  9. data/bin/sup-add +14 -14
  10. data/bin/sup-config +30 -44
  11. data/bin/sup-dump +2 -2
  12. data/bin/sup-import-dump +4 -4
  13. data/bin/sup-sync +3 -3
  14. data/bin/sup-sync-back-maildir +2 -2
  15. data/bin/sup-tweak-labels +5 -5
  16. data/ext/mkrf_conf_xapian.rb +1 -1
  17. data/lib/sup.rb +1 -0
  18. data/lib/sup/crypto.rb +17 -8
  19. data/lib/sup/hook.rb +8 -8
  20. data/lib/sup/index.rb +18 -5
  21. data/lib/sup/logger.rb +1 -1
  22. data/lib/sup/message.rb +20 -10
  23. data/lib/sup/message_chunks.rb +3 -2
  24. data/lib/sup/mode.rb +1 -0
  25. data/lib/sup/modes/contact_list_mode.rb +1 -0
  26. data/lib/sup/modes/reply_mode.rb +3 -1
  27. data/lib/sup/modes/thread_index_mode.rb +1 -1
  28. data/lib/sup/modes/thread_view_mode.rb +14 -11
  29. data/lib/sup/source.rb +1 -1
  30. data/lib/sup/util.rb +14 -19
  31. data/lib/sup/util/axe.rb +17 -0
  32. data/lib/sup/util/ncurses.rb +3 -3
  33. data/lib/sup/version.rb +10 -1
  34. data/sup.gemspec +7 -6
  35. data/test/fixtures/mailing-list-header.eml +80 -0
  36. data/test/fixtures/text-attachments-with-charset.eml +46 -0
  37. data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
  38. data/test/gnupg_test_home/gpg.conf +2 -1
  39. data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
  40. data/test/gnupg_test_home/pubring.gpg +0 -0
  41. data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
  42. data/test/gnupg_test_home/receiver_secring.gpg +0 -0
  43. data/test/gnupg_test_home/regen_keys.sh +69 -18
  44. data/test/gnupg_test_home/secring.gpg +0 -0
  45. data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -22
  46. data/test/test_crypto.rb +2 -0
  47. data/test/test_message.rb +74 -0
  48. data/test/unit/util/test_query.rb +10 -4
  49. data/test/unit/util/test_string.rb +6 -0
  50. metadata +52 -38
  51. data/test/gnupg_test_home/key1.gen +0 -15
  52. data/test/gnupg_test_home/key2.gen +0 -15
  53. data/test/gnupg_test_home/key_ecc.gen +0 -13
@@ -1,25 +1,23 @@
1
1
  -----BEGIN PGP PUBLIC KEY BLOCK-----
2
- Version: GnuPG v2
3
2
 
4
- mQGiBFP3VogRBADVBEkaZQXj728C1HUIaTRDCFoKzojwC79Z1BLsD72qQYE8z1ic
5
- 5P9CJpJU5wbhQFDTGBjw+i1nNTWy01z4q5bfFqok+KorT3XNp5IJRcRIEOkj+Twq
6
- 7ZaSODwXGsUmdzSoOVDYmtUpVzRQe0IM0rPQQV4vGzgw55FdJBe7a63nIwCg+WvR
7
- iQN09PlhpGG7SIEmx0psEqUEAL/t1c5oC9RC7L4a0GM+2AcgFRBMXvzpdnytrzgt
8
- 73Ud6CcUplQp6WODrUYhX0RLzSJPO4zWDsBmkBad/iQCwbCKpFPfAFdBMArJpknx
9
- rc6vRED4a9dLfCNTT1g86CkiElge9t36juZgOoFT3xt/XP7BxhU1fCFshZNR6VK6
10
- tN9eA/9G4fUX6XvEGIrNiBYKyU4QvM1nyMXCBujm7vYF6KfSlYyAvVXxG4h+mvUy
11
- ZXQ/WHMQJSbPTY3dd4hmo0p0GUMlSvXU8JLf7qienW1IccD9Pv88J1XjkbFd+wgw
12
- feoSx1sAfc36gH+aE17lvsU+PPAP4Bc9CSiScNo0iQv7v/KZjrQ+U3VwIFRlc3Qg
13
- UmVjZWl2ZXIgKFRlc3QgcmVjZWl2ZXIgZm9yIFN1cCkgPHN1cC10ZXN0LTJAZm9v
14
- LmJhcj6IaQQTEQIAKQUCU/dWiAIbIwUJAeEzgAcLCQgHAwIBBhUIAgkKCwQWAgMB
15
- Ah4BAheAAAoJEKfs+g8ACvQGPxIAnj1CSZCzjwyIFLgNEQnIhntU+b28AKDsMEVN
16
- gf9mHqwhabN+UKgBwX0U3LkBDQRT91aIEAQAjQZEnDK++SKp/l2Oiku6H9IuCsi4
17
- lv+MhLQP0bMuD4DrPk3mauZNc8BB+U0wgAMh/kZoCKySEdMK1mcf2iOsd5yOCrK+
18
- sJQAMsALAnrYjCE9QA2xIQs8gHF4PrKopycF55iRHQMDNa1QWfs+j4WJaXderlGQ
19
- S0dGfLyoqtZsFusAAwUEAIi0+aDZlAVVIdDO2cvR0lu6eDW2Mr2ExZzuwTfAI6dS
20
- tJLoPzoA2OAVW7cFVVpCOHcVLiF2GOHvtJPw1MgpxaNjzpNdJPTiP2sYZg253dfR
21
- v66Cw9IuWKgZcElWXmIy5vFWqWWbLyTBOuwEQxCsFnjN9UUZauSADOJSPFy1sekf
22
- iE8EGBECAA8FAlP3VogCGwwFCQHhM4AACgkQp+z6DwAK9Ab/swCg8LWNwfMwNk+H
23
- gLgnS1LVsesZ8D4An2Ie2P0/oYuSmPPFV44kbWySX9wW
24
- =Jo82
3
+ mQGNBF7leTkBDAC3auy8xodH6jxoISylFZTpVqy/0L2ul879YUb/QbC58+F/H36S
4
+ CjLfPxFlq0FAOXHelOvktxaybg+BG5UpSvTgBLbcArq5nctee+04TMXCzQzrG2V1
5
+ zb9gIRT665fX3+WYncSIXdr4LAp7r8Jw3RT3tTOZqbaencumCWaJblnvfFwPrMKf
6
+ AXWa/NVndNMAXmJ5uBf1MRr45KXaQ2tczPIeHqSOKhKNnKZPRqPs0fg4i3d0Vb6G
7
+ yItgtJapfBo50FV+PvtodMHo3LDlz/BBjdEJHSvghqEjb1S7xGo+hdXs+lfCMfa0
8
+ 3PAWoj+OeHNorbK0YbVKOtS0E0xYvScbyC7bfwtA9yb3LZYmy7VHsKJmQfygCNQ6
9
+ wIKQGAVN1NcQcJsvWyAwk9+WMN5oqB5lb76u40beoWlUjSJRlph2VvWvkGuh/huU
10
+ sVGqcN7EO4SFkwi2YQLoWfQRGur3mids/PQTBywpGE1SyziPZK76pT6SqP8b+OpI
11
+ CG1QbcTZzYpbv6kAEQEAAbQSc3VwLXRlc3QtMkBmb28uYmFyiQHOBBMBCgA4FiEE
12
+ e0oXvVeqMzUcfd1s2bF8xbTizW8FAl7leTkCGw8FCwkIBwIGFQoJCAsCBBYCAwEC
13
+ HgECF4AACgkQ2bF8xbTizW92TAv/WGlYfDTKNEmJ0K+kxt33T2ldmZXaJKL04Mft
14
+ h5s5KlRZWDNpkCC/L55uyaeEg+Uy+BEEQKLAEeJrrLMV8UMJwMPDOizSTT9uLyiz
15
+ b8RjnQw4iMT8wt9TQboXGaTMslwdXvFPii7w44KgCimE7VuPetJuLMLMbnl147G8
16
+ +QhkNUsrB51TuPS8xZJ4qjbH+K/Y2NlvwLtJrxNE3SRQuy2ApYJxKPZIj1KpUL8M
17
+ 7Jy/2hI8DaRm/0Fpu8HwRIVsd6/dgdkqdj1uVyLj+wyhgdzqV5WrPLFCRVhd3icd
18
+ lPNRIDjg8YKCh353LVHjKwefOW4SnkOPn4uVMdCP9gUFd9zpMP9lMFpjk0o0tcYO
19
+ NiFrOclS4q5qZ5jrj1MnBF0NaGhuC83DDgRfKV+p5noVeJxg0nXYZSlsSMfAT/K7
20
+ FbdNEg0XUsrLgWVzhvWv/ebMetFPSfGHIveZ7lhiq1qpA5hLBNfSSBb1JJsFmtQt
21
+ cEUluymdNe5W7Y6UGs1CpvcIvbj+
22
+ =Cy9S
25
23
  -----END PGP PUBLIC KEY BLOCK-----
@@ -61,6 +61,8 @@ class TestCryptoManager < Minitest::Test
61
61
  if CryptoManager.have_crypto? then
62
62
  signed = CryptoManager.sign @from_email,@to_email,"ABCDEFG"
63
63
  assert_instance_of RMail::Message, signed
64
+ assert_equal("multipart/signed; protocol=application/pgp-signature; micalg=pgp-sha256",
65
+ signed.header["Content-Type"])
64
66
  assert_equal "ABCDEFG", signed.body[0]
65
67
  assert signed.body[1].body.length > 0 , "signature length must be > 0"
66
68
  assert (signed.body[1].body.include? "-----BEGIN PGP SIGNATURE-----") , "Expecting PGP armored data"
@@ -181,6 +181,51 @@ class TestMessage < Minitest::Test
181
181
  # TODO: Add more asserts
182
182
  end
183
183
 
184
+ def test_text_attachment_decoding
185
+ message = fixture('text-attachments-with-charset.eml')
186
+
187
+ source = DummySource.new("sup-test://test_text_attachment_decoding")
188
+ source.messages = [ message ]
189
+ source_info = 0
190
+
191
+ sup_message = Message.build_from_source(source, source_info)
192
+ sup_message.load_from_source!
193
+
194
+ chunks = sup_message.load_from_source!
195
+ assert_equal(5, chunks.length)
196
+ assert(chunks[0].is_a? Redwood::Chunk::Text)
197
+ ## The first attachment declares charset=us-ascii
198
+ assert(chunks[1].is_a? Redwood::Chunk::Attachment)
199
+ assert_equal(["This is ASCII"], chunks[1].lines)
200
+ ## The second attachment declares charset=koi8-r and has some Cyrillic
201
+ assert(chunks[2].is_a? Redwood::Chunk::Attachment)
202
+ assert_equal(["\u041f\u0440\u0438\u0432\u0435\u0442"], chunks[2].lines)
203
+ ## The third attachment declares charset=utf-8 and has an emoji
204
+ assert(chunks[3].is_a? Redwood::Chunk::Attachment)
205
+ assert_equal(["\u{1f602}"], chunks[3].lines)
206
+ ## The fourth attachment declares no charset and has a non-ASCII byte,
207
+ ## which will be replaced with U+FFFD REPLACEMENT CHARACTER
208
+ assert(chunks[4].is_a? Redwood::Chunk::Attachment)
209
+ assert_equal(["Embedded\ufffdgarbage"], chunks[4].lines)
210
+ end
211
+
212
+ def test_mailing_list_header
213
+ message = fixture('mailing-list-header.eml')
214
+
215
+ source = DummySource.new("sup-test://test_mailing_list_header")
216
+ source.messages = [ message ]
217
+ source_info = 0
218
+
219
+ sup_message = Message.build_from_source(source, source_info)
220
+ sup_message.load_from_source!
221
+
222
+ assert(sup_message.list_subscribe.nil?)
223
+ assert_equal("<https://lists.openembedded.org/g/openembedded-devel/unsub>",
224
+ sup_message.list_unsubscribe)
225
+ assert_equal("openembedded-devel@lists.openembedded.org", sup_message.list_address.email)
226
+ assert_equal("openembedded-devel", sup_message.list_address.name)
227
+ end
228
+
184
229
  def test_blank_header_lines
185
230
  message = fixture('blank-header-fields.eml')
186
231
 
@@ -225,6 +270,35 @@ class TestMessage < Minitest::Test
225
270
  # TODO: test different quoting styles, see that they are all divided
226
271
  # to chunks properly
227
272
 
273
+ def test_zimbra_quote_with_bottom_post
274
+ # Zimbra does an Outlook-style "Original Message" delimiter and then *also*
275
+ # prefixes each quoted line with a > marker. That's okay until the sender
276
+ # tries to do the right thing and reply after the quote.
277
+ # In this case we want to just look at the > markers when determining where
278
+ # the quoted chunk ends.
279
+ message = fixture('zimbra-quote-with-bottom-post.eml')
280
+
281
+ source = DummySource.new("sup-test://test_zimbra_quote_with_bottom_post")
282
+ source.messages = [ message ]
283
+ source_info = 0
284
+
285
+ sup_message = Message.build_from_source(source, source_info)
286
+ chunks = sup_message.load_from_source!
287
+
288
+ assert_equal(3, chunks.length)
289
+
290
+ # TODO this chunk should ideally be part of the quote chunk after it.
291
+ assert(chunks[0].is_a? Redwood::Chunk::Text)
292
+ assert_equal(1, chunks[0].lines.length)
293
+ assert_equal("----- Original Message -----", chunks[0].lines.first)
294
+
295
+ assert(chunks[1].is_a? Redwood::Chunk::Quote)
296
+
297
+ assert(chunks[2].is_a? Redwood::Chunk::Text)
298
+ assert_equal(3, chunks[2].lines.length)
299
+ assert_equal("This is the reply from the Zimbra user.",
300
+ chunks[2].lines[2])
301
+ end
228
302
  end
229
303
 
230
304
  end
@@ -24,9 +24,14 @@ describe Redwood::Util::Query do
24
24
  query = Xapian::Query.new msg
25
25
  life = 'hæi'
26
26
 
27
- # this is now possibly UTF-8 string with possibly invalid chars
28
- assert_raises Redwood::Util::Query::QueryDescriptionError do
29
- desc = Redwood::Util::Query.describe (query)
27
+ if query.description.force_encoding("UTF-8").valid_encoding?
28
+ # xapian 1.4 internally handles this bad input
29
+ assert true
30
+ else
31
+ # xapian 1.2 doesn't handle this bad input, so we do
32
+ assert_raises Redwood::Util::Query::QueryDescriptionError do
33
+ desc = Redwood::Util::Query.describe (query)
34
+ end
30
35
  end
31
36
 
32
37
  assert_raises Encoding::CompatibilityError do
@@ -40,7 +45,8 @@ describe Redwood::Util::Query do
40
45
 
41
46
  desc = Redwood::Util::Query.describe(query, "invalid query")
42
47
 
43
- assert_equal("invalid query", desc)
48
+ assert desc.force_encoding("UTF-8").valid_encoding?
49
+
44
50
  end
45
51
  end
46
52
  end
@@ -11,6 +11,8 @@ describe "Sup's String extension" do
11
11
  ['some words', 10,],
12
12
  ['中文', 4,],
13
13
  ['ä', 1,],
14
+ ['😱', 2],
15
+ #['🏳️‍🌈', 2], # Emoji ZWJ sequence not yet supported (see PR #563)
14
16
  ]
15
17
  end
16
18
 
@@ -27,6 +29,8 @@ describe "Sup's String extension" do
27
29
  ['some words', 6, 'some w'],
28
30
  ['中文', 2, '中'],
29
31
  ['älpha', 3, 'älp'],
32
+ ['😱😱', 2, '😱'],
33
+ #['🏳️‍🌈', 2, '🏳️‍🌈'], # Emoji ZWJ sequence not yet supported (see PR #563)
30
34
  ]
31
35
  end
32
36
 
@@ -45,6 +49,8 @@ describe "Sup's String extension" do
45
49
  ['中文', 2, ['中', '文']],
46
50
  ['中文', 5, ['中文']],
47
51
  ['älpha', 3, ['älp', 'ha']],
52
+ ['😱😱', 2, ['😱', '😱']],
53
+ #['🏳️‍🌈🏳️‍🌈', 2, ['🏳️‍🌈', '🏳️‍🌈']], # Emoji ZWJ sequence not yet supported (see PR #563)
48
54
  ]
49
55
  end
50
56
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.1
4
+ version: '0.23'
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Morgan
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-06-18 00:00:00.000000000 Z
14
+ date: 2020-07-10 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: ncursesw
@@ -28,19 +28,19 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: 1.4.0
30
30
  - !ruby/object:Gem::Dependency
31
- name: rmail-sup
31
+ name: rmail
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 1.0.1
36
+ version: '1.1'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 1.0.1
43
+ version: '1.1'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: highline
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -56,19 +56,19 @@ dependencies:
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  - !ruby/object:Gem::Dependency
59
- name: trollop
59
+ name: optimist
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - ">="
63
63
  - !ruby/object:Gem::Version
64
- version: '1.12'
64
+ version: '0'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: '1.12'
71
+ version: '0'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: lockfile
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -115,16 +115,16 @@ dependencies:
115
115
  name: chronic
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
- - - "~>"
118
+ - - ">="
119
119
  - !ruby/object:Gem::Version
120
- version: 0.9.1
120
+ version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
- - - "~>"
125
+ - - ">="
126
126
  - !ruby/object:Gem::Version
127
- version: 0.9.1
127
+ version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: unicode
130
130
  requirement: !ruby/object:Gem::Requirement
@@ -139,20 +139,40 @@ dependencies:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
141
  version: 0.4.4
142
+ - !ruby/object:Gem::Dependency
143
+ name: unicode-display_width
144
+ requirement: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
149
+ type: :runtime
150
+ prerelease: false
151
+ version_requirements: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
142
156
  - !ruby/object:Gem::Dependency
143
157
  name: bundler
144
158
  requirement: !ruby/object:Gem::Requirement
145
159
  requirements:
146
- - - "~>"
160
+ - - ">="
147
161
  - !ruby/object:Gem::Version
148
162
  version: '1.3'
163
+ - - "<"
164
+ - !ruby/object:Gem::Version
165
+ version: '3'
149
166
  type: :development
150
167
  prerelease: false
151
168
  version_requirements: !ruby/object:Gem::Requirement
152
169
  requirements:
153
- - - "~>"
170
+ - - ">="
154
171
  - !ruby/object:Gem::Version
155
172
  version: '1.3'
173
+ - - "<"
174
+ - !ruby/object:Gem::Version
175
+ version: '3'
156
176
  - !ruby/object:Gem::Dependency
157
177
  name: rake
158
178
  requirement: !ruby/object:Gem::Requirement
@@ -247,15 +267,15 @@ executables:
247
267
  extensions:
248
268
  - ext/mkrf_conf_xapian.rb
249
269
  extra_rdoc_files:
250
- - man/sup-tweak-labels.1
251
- - man/sup-sync.1
252
- - man/sup-psych-ify-config-files.1
270
+ - man/sup-add.1
253
271
  - man/sup-config.1
254
- - man/sup-import-dump.1
255
272
  - man/sup-dump.1
256
- - man/sup-sync-back-maildir.1
257
- - man/sup-add.1
273
+ - man/sup-import-dump.1
274
+ - man/sup-psych-ify-config-files.1
258
275
  - man/sup-recover-sources.1
276
+ - man/sup-sync-back-maildir.1
277
+ - man/sup-sync.1
278
+ - man/sup-tweak-labels.1
259
279
  - man/sup.1
260
280
  files:
261
281
  - ".gitignore"
@@ -351,6 +371,7 @@ files:
351
371
  - lib/sup/undo.rb
352
372
  - lib/sup/update.rb
353
373
  - lib/sup/util.rb
374
+ - lib/sup/util/axe.rb
354
375
  - lib/sup/util/locale_fiddler.rb
355
376
  - lib/sup/util/ncurses.rb
356
377
  - lib/sup/util/path.rb
@@ -373,6 +394,7 @@ files:
373
394
  - test/fixtures/binary-content-transfer-encoding-2.eml
374
395
  - test/fixtures/blank-header-fields.eml
375
396
  - test/fixtures/contacts.txt
397
+ - test/fixtures/mailing-list-header.eml
376
398
  - test/fixtures/malicious-attachment-names.eml
377
399
  - test/fixtures/missing-from-to.eml
378
400
  - test/fixtures/missing-line.eml
@@ -380,15 +402,11 @@ files:
380
402
  - test/fixtures/multi-part.eml
381
403
  - test/fixtures/no-body.eml
382
404
  - test/fixtures/simple-message.eml
405
+ - test/fixtures/text-attachments-with-charset.eml
406
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
383
407
  - test/gnupg_test_home/.gpg-v21-migrated
384
408
  - test/gnupg_test_home/gpg.conf
385
- - test/gnupg_test_home/key1.gen
386
- - test/gnupg_test_home/key2.gen
387
- - test/gnupg_test_home/key_ecc.gen
388
- - test/gnupg_test_home/private-keys-v1.d/719C7455A7169C6EE8819C6E91002E4F9DD00A65.key
389
- - test/gnupg_test_home/private-keys-v1.d/8A130806A754AA29D59487D76BD355040D9F26C0.key
390
- - test/gnupg_test_home/private-keys-v1.d/B7AA46B22BD8A6AD1B4F266C19A3B124A32DDD71.key
391
- - test/gnupg_test_home/private-keys-v1.d/FA64ACD7CC871371BDF57285A6CDF0E618827783.key
409
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
392
410
  - test/gnupg_test_home/pubring.gpg
393
411
  - test/gnupg_test_home/receiver_pubring.gpg
394
412
  - test/gnupg_test_home/receiver_secring.gpg
@@ -413,9 +431,9 @@ files:
413
431
  - test/unit/util/test_query.rb
414
432
  - test/unit/util/test_string.rb
415
433
  - test/unit/util/test_uri.rb
416
- homepage: http://supmua.org
434
+ homepage: https://sup-heliotrope.github.io/
417
435
  licenses:
418
- - GPL-2
436
+ - GPL-2.0
419
437
  metadata: {}
420
438
  post_install_message: |
421
439
  SUP: please note that our old mailing lists have been shut down,
@@ -440,8 +458,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
440
458
  - !ruby/object:Gem::Version
441
459
  version: '0'
442
460
  requirements: []
443
- rubyforge_project:
444
- rubygems_version: 2.4.6
461
+ rubygems_version: 3.1.2
445
462
  signing_key:
446
463
  specification_version: 4
447
464
  summary: A console-based email client with the best features of GMail, mutt and Emacs
@@ -451,6 +468,7 @@ test_files:
451
468
  - test/fixtures/binary-content-transfer-encoding-2.eml
452
469
  - test/fixtures/blank-header-fields.eml
453
470
  - test/fixtures/contacts.txt
471
+ - test/fixtures/mailing-list-header.eml
454
472
  - test/fixtures/malicious-attachment-names.eml
455
473
  - test/fixtures/missing-from-to.eml
456
474
  - test/fixtures/missing-line.eml
@@ -458,15 +476,11 @@ test_files:
458
476
  - test/fixtures/multi-part.eml
459
477
  - test/fixtures/no-body.eml
460
478
  - test/fixtures/simple-message.eml
479
+ - test/fixtures/text-attachments-with-charset.eml
480
+ - test/fixtures/zimbra-quote-with-bottom-post.eml
461
481
  - test/gnupg_test_home/.gpg-v21-migrated
462
482
  - test/gnupg_test_home/gpg.conf
463
- - test/gnupg_test_home/key1.gen
464
- - test/gnupg_test_home/key2.gen
465
- - test/gnupg_test_home/key_ecc.gen
466
- - test/gnupg_test_home/private-keys-v1.d/719C7455A7169C6EE8819C6E91002E4F9DD00A65.key
467
- - test/gnupg_test_home/private-keys-v1.d/8A130806A754AA29D59487D76BD355040D9F26C0.key
468
- - test/gnupg_test_home/private-keys-v1.d/B7AA46B22BD8A6AD1B4F266C19A3B124A32DDD71.key
469
- - test/gnupg_test_home/private-keys-v1.d/FA64ACD7CC871371BDF57285A6CDF0E618827783.key
483
+ - test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
470
484
  - test/gnupg_test_home/pubring.gpg
471
485
  - test/gnupg_test_home/receiver_pubring.gpg
472
486
  - test/gnupg_test_home/receiver_secring.gpg
@@ -1,15 +0,0 @@
1
- %echo Generating a standard key
2
- Key-Type: DSA
3
- Key-Length: 1024
4
- Subkey-Type: ELG-E
5
- Subkey-Length: 1024
6
- Name-Real: Sup Test Sender 1
7
- Name-Comment: Test sender key
8
- Name-Email: sup-test-1@foo.bar
9
- Expire-Date: 1y
10
- %no-protection
11
- %pubring pubring.gpg
12
- %secring secring.gpg
13
- # Do a commit here, so that we can later print "done" :-)
14
- %commit
15
- %echo done
@@ -1,15 +0,0 @@
1
- %echo Generating a standard key
2
- Key-Type: DSA
3
- Key-Length: 1024
4
- Subkey-Type: ELG-E
5
- Subkey-Length: 1024
6
- Name-Real: Sup Test Receiver
7
- Name-Comment: Test receiver for Sup
8
- Name-Email: sup-test-2@foo.bar
9
- Expire-Date: 1y
10
- %no-protection
11
- %pubring pubring.gpg
12
- %secring secring.gpg
13
- # Do a commit here, so that we can later print "done" :-)
14
- %commit
15
- %echo done