sup 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +17 -0
  3. data/.travis.yml +12 -0
  4. data/Gemfile +3 -0
  5. data/HACKING +42 -0
  6. data/History.txt +8 -0
  7. data/Rakefile +12 -0
  8. data/ReleaseNotes +4 -0
  9. data/bin/sup-sync +1 -1
  10. data/bin/sup-tweak-labels +6 -1
  11. data/contrib/colorpicker.rb +100 -0
  12. data/contrib/completion/_sup.zsh +114 -0
  13. data/devel/console.sh +3 -0
  14. data/devel/count-loc.sh +3 -0
  15. data/devel/load-index.rb +9 -0
  16. data/devel/profile.rb +12 -0
  17. data/devel/start-console.rb +5 -0
  18. data/doc/FAQ.txt +119 -0
  19. data/doc/Hooks.txt +79 -0
  20. data/doc/Philosophy.txt +69 -0
  21. data/lib/sup/colormap.rb +6 -0
  22. data/lib/sup/modes/thread_index_mode.rb +12 -1
  23. data/lib/sup/modes/thread_view_mode.rb +20 -0
  24. data/lib/sup/version.rb +1 -1
  25. data/sup.gemspec +55 -0
  26. data/test/dummy_source.rb +61 -0
  27. data/test/gnupg_test_home/gpg.conf +1 -0
  28. data/test/gnupg_test_home/pubring.gpg +0 -0
  29. data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
  30. data/test/gnupg_test_home/receiver_secring.gpg +0 -0
  31. data/test/gnupg_test_home/receiver_trustdb.gpg +0 -0
  32. data/test/gnupg_test_home/secring.gpg +0 -0
  33. data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -0
  34. data/test/gnupg_test_home/trustdb.gpg +0 -0
  35. data/test/integration/test_label_service.rb +18 -0
  36. data/test/messages/bad-content-transfer-encoding-1.eml +8 -0
  37. data/test/messages/binary-content-transfer-encoding-2.eml +21 -0
  38. data/test/messages/missing-line.eml +9 -0
  39. data/test/test_crypto.rb +109 -0
  40. data/test/test_header_parsing.rb +168 -0
  41. data/test/test_helper.rb +7 -0
  42. data/test/test_message.rb +532 -0
  43. data/test/test_messages_dir.rb +147 -0
  44. data/test/test_yaml_migration.rb +85 -0
  45. data/test/test_yaml_regressions.rb +17 -0
  46. data/test/unit/service/test_label_service.rb +19 -0
  47. data/test/unit/test_horizontal_selector.rb +40 -0
  48. data/test/unit/util/test_query.rb +46 -0
  49. data/test/unit/util/test_string.rb +57 -0
  50. data/test/unit/util/test_uri.rb +19 -0
  51. metadata +81 -36
  52. checksums.yaml.gz.sig +0 -1
  53. data.tar.gz.sig +0 -0
  54. metadata.gz.sig +0 -0
@@ -0,0 +1,147 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'test_helper'
4
+ require 'sup'
5
+ require 'stringio'
6
+
7
+ require 'dummy_source'
8
+
9
+ # override File.exists? to make it work with StringIO for testing.
10
+ # FIXME: do aliasing to avoid breaking this when sup moves from
11
+ # File.exists? to File.exist?
12
+
13
+ class File
14
+
15
+ def File.exists? file
16
+ # puts "fake File::exists?"
17
+
18
+ if file.is_a?(StringIO)
19
+ return false
20
+ end
21
+ # use the different function
22
+ File.exist?(file)
23
+ end
24
+
25
+ end
26
+
27
+ module Redwood
28
+
29
+ class TestMessagesDir < ::Minitest::Unit::TestCase
30
+
31
+ def setup
32
+ @path = Dir.mktmpdir
33
+ Redwood::HookManager.init File.join(@path, 'hooks')
34
+ end
35
+
36
+ def teardown
37
+ Redwood::HookManager.deinstantiate!
38
+ FileUtils.rm_r @path
39
+ end
40
+
41
+ def test_binary_content_transfer_encoding
42
+ message = ''
43
+ File.open 'test/messages/binary-content-transfer-encoding-2.eml' do |f|
44
+ message = f.read
45
+ end
46
+
47
+ source = DummySource.new("sup-test://test_messages")
48
+ source.messages = [ message ]
49
+ source_info = 0
50
+
51
+ sup_message = Message.build_from_source(source, source_info)
52
+ sup_message.load_from_source!
53
+
54
+ from = sup_message.from
55
+ # "from" is just a simple person item
56
+
57
+ assert_equal("foo@example.org", from.email)
58
+ #assert_equal("Fake Sender", from.name)
59
+
60
+ subj = sup_message.subj
61
+ assert_equal("Important", subj)
62
+
63
+ chunks = sup_message.load_from_source!
64
+ indexable_chunks = sup_message.indexable_chunks
65
+
66
+ # there should be only one chunk
67
+ #assert_equal(1, chunks.length)
68
+
69
+ lines = chunks[0].lines
70
+
71
+ # lines should contain an error message
72
+ assert (lines.join.include? "An error occurred while loading this message."), "This message should not load successfully"
73
+ end
74
+
75
+ def test_bad_content_transfer_encoding
76
+ message = ''
77
+ File.open 'test/messages/bad-content-transfer-encoding-1.eml' do |f|
78
+ message = f.read
79
+ end
80
+
81
+ source = DummySource.new("sup-test://test_messages")
82
+ source.messages = [ message ]
83
+ source_info = 0
84
+
85
+ sup_message = Message.build_from_source(source, source_info)
86
+ sup_message.load_from_source!
87
+
88
+ from = sup_message.from
89
+ # "from" is just a simple person item
90
+
91
+ assert_equal("foo@example.org", from.email)
92
+ #assert_equal("Fake Sender", from.name)
93
+
94
+ subj = sup_message.subj
95
+ assert_equal("Content-Transfer-Encoding:-bug in sup", subj)
96
+
97
+ chunks = sup_message.load_from_source!
98
+ indexable_chunks = sup_message.indexable_chunks
99
+
100
+ # there should be only one chunk
101
+ #assert_equal(1, chunks.length)
102
+
103
+ lines = chunks[0].lines
104
+
105
+ # lines should contain an error message
106
+ assert (lines.join.include? "An error occurred while loading this message."), "This message should not load successfully"
107
+ end
108
+
109
+ def test_missing_line
110
+ message = ''
111
+ File.open 'test/messages/missing-line.eml' do |f|
112
+ message = f.read
113
+ end
114
+
115
+ source = DummySource.new("sup-test://test_messages")
116
+ source.messages = [ message ]
117
+ source_info = 0
118
+
119
+ sup_message = Message.build_from_source(source, source_info)
120
+ sup_message.load_from_source!
121
+
122
+ from = sup_message.from
123
+ # "from" is just a simple person item
124
+
125
+ assert_equal("foo@aol.com", from.email)
126
+ #assert_equal("Fake Sender", from.name)
127
+
128
+ subj = sup_message.subj
129
+ assert_equal("Encoding bug", subj)
130
+
131
+ chunks = sup_message.load_from_source!
132
+ indexable_chunks = sup_message.indexable_chunks
133
+
134
+ # there should be only one chunk
135
+ #assert_equal(1, chunks.length)
136
+
137
+ lines = chunks[0].lines
138
+
139
+ badline = lines[0]
140
+ assert (badline.display_length > 0), "The length of this line should greater than 0: #{badline}"
141
+
142
+ end
143
+ end
144
+
145
+ end
146
+
147
+ # vim:noai:ts=2:sw=2:
@@ -0,0 +1,85 @@
1
+ require "test_helper"
2
+
3
+ require "sup"
4
+ require "psych"
5
+
6
+ if RUBY_VERSION < "2.1"
7
+ describe "Sup's YAML util" do
8
+ describe "Module#yaml_properties" do
9
+ def build_class_with_name name, &b
10
+ Class.new do
11
+ meta_cls = class << self; self; end
12
+ meta_cls.send(:define_method, :name) { name }
13
+ class_exec(&b) unless b.nil?
14
+ end
15
+ end
16
+
17
+ after do
18
+ Psych.load_tags = {}
19
+ Psych.dump_tags = {}
20
+ end
21
+
22
+ it "defines YAML tag for class" do
23
+ cls = build_class_with_name 'Cls' do
24
+ yaml_properties
25
+ end
26
+
27
+ expected_yaml_tag = "!supmua.org,2006-10-01/Cls"
28
+
29
+ Psych.load_tags[expected_yaml_tag].must_equal cls
30
+ Psych.dump_tags[cls].must_equal expected_yaml_tag
31
+
32
+ end
33
+
34
+ it "Loads legacy YAML format as well" do
35
+ cls = build_class_with_name 'Cls' do
36
+ yaml_properties :id
37
+ attr_accessor :id
38
+ def initialize id
39
+ @id = id
40
+ end
41
+ end
42
+
43
+ Psych.load_tags["!masanjin.net,2006-10-01/Cls"].must_equal cls
44
+
45
+ yaml = <<EOF
46
+ --- !masanjin.net,2006-10-01/Cls
47
+ id: ID
48
+ EOF
49
+ loaded = YAML.load(yaml)
50
+
51
+ loaded.id.must_equal 'ID'
52
+ loaded.must_be_kind_of cls
53
+ end
54
+
55
+ it "Dumps & loads w/ state re-initialized" do
56
+ cls = build_class_with_name 'Cls' do
57
+ yaml_properties :id
58
+ attr_accessor :id
59
+ attr_reader :flag
60
+
61
+ def initialize id
62
+ @id = id
63
+ @flag = true
64
+ end
65
+ end
66
+
67
+ instance = cls.new 'ID'
68
+
69
+ dumped = YAML.dump(instance)
70
+ loaded = YAML.load(dumped)
71
+
72
+ dumped.must_equal <<-EOF
73
+ --- !supmua.org,2006-10-01/Cls
74
+ id: ID
75
+ EOF
76
+
77
+ loaded.id.must_equal 'ID'
78
+ assert loaded.flag
79
+ end
80
+ end
81
+ end
82
+
83
+ else
84
+ puts "Some YAML tests are skipped on Ruby 2.1.0 and newer."
85
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ # Requiring 'yaml' before 'sup' in 1.9.x would get Psych loaded first
4
+ # and becoming the default yamler.
5
+ require 'yaml'
6
+ require 'sup'
7
+
8
+ module Redwood
9
+ class TestYamlRegressions < ::Minitest::Unit::TestCase
10
+ def test_yamling_hash
11
+ hsh = {:foo => 42}
12
+ reloaded = YAML.load(hsh.to_yaml)
13
+
14
+ assert_equal reloaded, hsh
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ require "test_helper"
2
+
3
+ require "sup/service/label_service"
4
+
5
+ describe Redwood::LabelService do
6
+ describe "#add_labels" do
7
+ it "add labels to all messages matching the query" do
8
+ q = 'is:starred'
9
+ label = 'superstarred'
10
+ message = mock!.add_label(label).subject
11
+ index = mock!.find_messages(q){ [message] }.subject
12
+ mock(index).update_message_state(message)
13
+ mock(index).save_index
14
+
15
+ service = Redwood::LabelService.new(index)
16
+ service.add_labels q, label
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,40 @@
1
+ require "test_helper"
2
+
3
+ require "sup/horizontal_selector"
4
+
5
+ describe Redwood::HorizontalSelector do
6
+ let(:values) { %w[foo@example.com bar@example.com] }
7
+ let(:strange_value) { "strange@example.com" }
8
+
9
+ before do
10
+ @selector = Redwood::HorizontalSelector.new(
11
+ 'Acc:', values, [])
12
+ end
13
+
14
+ it "init w/ the first value selected" do
15
+ first_value = values.first
16
+ @selector.val.must_equal first_value
17
+ end
18
+
19
+ it "stores value for selection" do
20
+ second_value = values[1]
21
+ @selector.set_to second_value
22
+ @selector.val.must_equal second_value
23
+ end
24
+
25
+ describe "for unknown value" do
26
+ it "cannot select unknown value" do
27
+ @selector.wont_be :can_set_to?, strange_value
28
+ end
29
+
30
+ it "refuses selecting unknown value" do
31
+ old_value = @selector.val
32
+
33
+ assert_raises Redwood::HorizontalSelector::UnknownValue do
34
+ @selector.set_to strange_value
35
+ end
36
+
37
+ @selector.val.must_equal old_value
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,46 @@
1
+ # encoding: utf-8
2
+
3
+ require "test_helper"
4
+
5
+ require "sup/util/query"
6
+ require "xapian"
7
+
8
+ describe Redwood::Util::Query do
9
+ describe ".describe" do
10
+ it "returns a UTF-8 description of query" do
11
+ query = Xapian::Query.new "テスト"
12
+ life = "生活: "
13
+
14
+ assert_raises Encoding::CompatibilityError do
15
+ _ = life + query.description
16
+ end
17
+
18
+ desc = Redwood::Util::Query.describe(query)
19
+ _ = (life + desc) # No exception thrown
20
+ end
21
+
22
+ it "returns a valid UTF-8 description of bad input" do
23
+ msg = "asdfa \xc3\x28 åasdf"
24
+ query = Xapian::Query.new msg
25
+ life = 'hæi'
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)
30
+ end
31
+
32
+ assert_raises Encoding::CompatibilityError do
33
+ _ = life + query.description
34
+ end
35
+ end
36
+
37
+ it "returns a valid UTF-8 fallback description of bad input" do
38
+ msg = "asdfa \xc3\x28 åasdf"
39
+ query = Xapian::Query.new msg
40
+
41
+ desc = Redwood::Util::Query.describe(query, "invalid query")
42
+
43
+ assert_equal("invalid query", desc)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,57 @@
1
+ # encoding: utf-8
2
+
3
+ require "test_helper"
4
+
5
+ require "sup/util"
6
+
7
+ describe "Sup's String extension" do
8
+ describe "#display_length" do
9
+ let :data do
10
+ [
11
+ ['some words', 10,],
12
+ ['中文', 4,],
13
+ ['ä', 1,],
14
+ ]
15
+ end
16
+
17
+ it "calculates display length of a string" do
18
+ data.each do |(str, length)|
19
+ str.display_length.must_equal length
20
+ end
21
+ end
22
+ end
23
+
24
+ describe "#slice_by_display_length(len)" do
25
+ let :data do
26
+ [
27
+ ['some words', 6, 'some w'],
28
+ ['中文', 2, '中'],
29
+ ['älpha', 3, 'älp'],
30
+ ]
31
+ end
32
+
33
+ it "slices string by display length" do
34
+ data.each do |(str, length, sliced)|
35
+ str.slice_by_display_length(length).must_equal sliced
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "#wrap" do
41
+ let :data do
42
+ [
43
+ ['some words', 6, ['some', 'words']],
44
+ ['some words', 80, ['some words']],
45
+ ['中文', 2, ['中', '文']],
46
+ ['中文', 5, ['中文']],
47
+ ['älpha', 3, ['älp', 'ha']],
48
+ ]
49
+ end
50
+
51
+ it "wraps string by display length" do
52
+ data.each do |(str, length, wrapped)|
53
+ str.wrap(length).must_equal wrapped
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,19 @@
1
+ require "test_helper.rb"
2
+
3
+ require "sup/util/uri"
4
+
5
+ describe Redwood::Util::Uri do
6
+ describe ".build" do
7
+ it "builds uri from hash" do
8
+ components = {:path => "/var/mail/foo", :scheme => "mbox"}
9
+ uri = Redwood::Util::Uri.build(components)
10
+ uri.to_s.must_equal "mbox:/var/mail/foo"
11
+ end
12
+
13
+ it "expands ~ in path" do
14
+ components = {:path => "~/foo", :scheme => "maildir"}
15
+ uri = Redwood::Util::Uri.build(components)
16
+ uri.to_s.must_equal "maildir:#{ENV["HOME"]}/foo"
17
+ end
18
+ end
19
+ end
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.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Morgan
@@ -10,29 +10,8 @@ authors:
10
10
  - Matthieu Rakotojaona
11
11
  autorequire:
12
12
  bindir: bin
13
- cert_chain:
14
- - |
15
- -----BEGIN CERTIFICATE-----
16
- MIIDVDCCAjygAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQDDAJlZzEV
17
- MBMGCgmSJomT8ixkARkWBWdhdXRlMRUwEwYKCZImiZPyLGQBGRYFdmV0c2oxEzAR
18
- BgoJkiaJk/IsZAEZFgNjb20wHhcNMTMwNTA4MTAzODQ3WhcNMTQwNTA4MTAzODQ3
19
- WjBQMQswCQYDVQQDDAJlZzEVMBMGCgmSJomT8ixkARkWBWdhdXRlMRUwEwYKCZIm
20
- iZPyLGQBGRYFdmV0c2oxEzARBgoJkiaJk/IsZAEZFgNjb20wggEiMA0GCSqGSIb3
21
- DQEBAQUAA4IBDwAwggEKAoIBAQC7sNc5zY4MrYB7eywE/aK2IoDqpM9lq4ZFlHzt
22
- Pmq1LG6ah2lu/HfjqxiPoqwY7QkdSOGDLSk7G8YBqDA/tODhkPPSTqxBDzYyCO46
23
- haWTtoN5tJkxIDJKp1nVXHi0Mlb4GJVKd9P0q95BeBYBfs8vyPN+y4b4Gebgx9U3
24
- KqMDbe5h9MAPZGmtiRFMb3ugmiujDm7v8fACa5EtSvK/lxMkRDglecT/knE99NYI
25
- l35SO/Bune1bxYmkwW64mQ4wRlGVeAnX+19msALfS9rdJL26dfW2LgqWi5QoVTBH
26
- KNKTl/i3fxK0mzgtnoRCWdMJQFNNonFTnPUUawi1c9Kh4AdPAgMBAAGjOTA3MAkG
27
- A1UdEwQCMAAwHQYDVR0OBBYEFJNCOxL0SWcbW2M+DIEUzAMz1bZsMAsGA1UdDwQE
28
- AwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAr3QUayd0geBDExO+WwzaEPAuUZ3zWQYG
29
- G9vrplCkmJtjS/X/wVAef7Jn/V5MNkXKXsiOgXJXki+n7HulNZUf1rzr7Un96gVJ
30
- 1hq/ZTuapnPpstBqqdv60RB8HNGydHQeEz6us5z3nj+KchPqJ657Dz8oX/Nm6/24
31
- 7QSQpCh8xBYdSWEpoIE0zUSY77LtVTRVwIr9uDpWTTr9kCVBINBsOQNjWKruEWjV
32
- +JMuDs+iWefpF4R3BySoOc1Q4WoES3+oc0qo37MsAZyfnQIPTZkyLZCMxeL6Mha4
33
- hFc2yANBj8voaY5C74Cg2VqExtcnSaxUtW9wC4w5hOlg0AVfb1JWzg==
34
- -----END CERTIFICATE-----
35
- date: 2014-04-11 00:00:00.000000000 Z
13
+ cert_chain: []
14
+ date: 2014-05-19 00:00:00.000000000 Z
36
15
  dependencies:
37
16
  - !ruby/object:Gem::Dependency
38
17
  name: xapian-ruby
@@ -245,14 +224,14 @@ dependencies:
245
224
  - !ruby/object:Gem::Version
246
225
  version: 2.0.2
247
226
  description: |2
248
- Sup is a console-based email client for people with a lot of email.
227
+ Sup is a console-based email client for people with a lot of email.
249
228
 
250
- * GMail-like thread-centered archiving, tagging and muting
251
- * Handling mail from multiple mbox and Maildir sources
252
- * Blazing fast full-text search with a rich query language
253
- * Multiple accounts - pick the right one when sending mail
254
- * Ruby-programmable hooks
255
- * Automatically tracking recent contacts
229
+ * GMail-like thread-centered archiving, tagging and muting
230
+ * Handling mail from multiple mbox and Maildir sources
231
+ * Blazing fast full-text search with a rich query language
232
+ * Multiple accounts - pick the right one when sending mail
233
+ * Ruby-programmable hooks
234
+ * Automatically tracking recent contacts
256
235
  email: sup-talk@rubyforge.org
257
236
  executables:
258
237
  - sup
@@ -260,18 +239,23 @@ executables:
260
239
  - sup-config
261
240
  - sup-dump
262
241
  - sup-import-dump
242
+ - sup-psych-ify-config-files
263
243
  - sup-recover-sources
264
244
  - sup-sync
265
245
  - sup-sync-back-maildir
266
246
  - sup-tweak-labels
267
- - sup-psych-ify-config-files
268
247
  extensions: []
269
248
  extra_rdoc_files: []
270
249
  files:
250
+ - ".gitignore"
251
+ - ".travis.yml"
271
252
  - CONTRIBUTORS
253
+ - Gemfile
254
+ - HACKING
272
255
  - History.txt
273
256
  - LICENSE
274
257
  - README.md
258
+ - Rakefile
275
259
  - ReleaseNotes
276
260
  - bin/sup
277
261
  - bin/sup-add
@@ -283,6 +267,16 @@ files:
283
267
  - bin/sup-sync
284
268
  - bin/sup-sync-back-maildir
285
269
  - bin/sup-tweak-labels
270
+ - contrib/colorpicker.rb
271
+ - contrib/completion/_sup.zsh
272
+ - devel/console.sh
273
+ - devel/count-loc.sh
274
+ - devel/load-index.rb
275
+ - devel/profile.rb
276
+ - devel/start-console.rb
277
+ - doc/FAQ.txt
278
+ - doc/Hooks.txt
279
+ - doc/Philosophy.txt
286
280
  - lib/sup.rb
287
281
  - lib/sup/account.rb
288
282
  - lib/sup/buffer.rb
@@ -348,16 +342,42 @@ files:
348
342
  - lib/sup/util/query.rb
349
343
  - lib/sup/util/uri.rb
350
344
  - lib/sup/version.rb
345
+ - sup.gemspec
346
+ - test/dummy_source.rb
347
+ - test/gnupg_test_home/gpg.conf
348
+ - test/gnupg_test_home/pubring.gpg
349
+ - test/gnupg_test_home/receiver_pubring.gpg
350
+ - test/gnupg_test_home/receiver_secring.gpg
351
+ - test/gnupg_test_home/receiver_trustdb.gpg
352
+ - test/gnupg_test_home/secring.gpg
353
+ - test/gnupg_test_home/sup-test-2@foo.bar.asc
354
+ - test/gnupg_test_home/trustdb.gpg
355
+ - test/integration/test_label_service.rb
356
+ - test/messages/bad-content-transfer-encoding-1.eml
357
+ - test/messages/binary-content-transfer-encoding-2.eml
358
+ - test/messages/missing-line.eml
359
+ - test/test_crypto.rb
360
+ - test/test_header_parsing.rb
361
+ - test/test_helper.rb
362
+ - test/test_message.rb
363
+ - test/test_messages_dir.rb
364
+ - test/test_yaml_migration.rb
365
+ - test/test_yaml_regressions.rb
366
+ - test/unit/service/test_label_service.rb
367
+ - test/unit/test_horizontal_selector.rb
368
+ - test/unit/util/test_query.rb
369
+ - test/unit/util/test_string.rb
370
+ - test/unit/util/test_uri.rb
351
371
  homepage: http://supmua.org
352
372
  licenses:
353
373
  - GPL-2
354
374
  metadata: {}
355
375
  post_install_message: |
356
376
  SUP: If you are upgrading Sup from before version 0.14.0: Please
357
- run `sup-psych-ify-config-files` to migrate from 0.13.
377
+ run `sup-psych-ify-config-files` to migrate from 0.13.
358
378
 
359
- Check https://github.com/sup-heliotrope/sup/wiki/Migration-0.13-to-0.14
360
- for more detailed and up-to-date instructions.
379
+ Check https://github.com/sup-heliotrope/sup/wiki/Migration-0.13-to-0.14
380
+ for more detailed and up-to-date instructions.
361
381
  rdoc_options: []
362
382
  require_paths:
363
383
  - lib
@@ -377,4 +397,29 @@ rubygems_version: 2.2.2
377
397
  signing_key:
378
398
  specification_version: 4
379
399
  summary: A console-based email client with the best features of GMail, mutt and Emacs
380
- test_files: []
400
+ test_files:
401
+ - test/dummy_source.rb
402
+ - test/gnupg_test_home/gpg.conf
403
+ - test/gnupg_test_home/pubring.gpg
404
+ - test/gnupg_test_home/receiver_pubring.gpg
405
+ - test/gnupg_test_home/receiver_secring.gpg
406
+ - test/gnupg_test_home/receiver_trustdb.gpg
407
+ - test/gnupg_test_home/secring.gpg
408
+ - test/gnupg_test_home/sup-test-2@foo.bar.asc
409
+ - test/gnupg_test_home/trustdb.gpg
410
+ - test/integration/test_label_service.rb
411
+ - test/messages/bad-content-transfer-encoding-1.eml
412
+ - test/messages/binary-content-transfer-encoding-2.eml
413
+ - test/messages/missing-line.eml
414
+ - test/test_crypto.rb
415
+ - test/test_header_parsing.rb
416
+ - test/test_helper.rb
417
+ - test/test_message.rb
418
+ - test/test_messages_dir.rb
419
+ - test/test_yaml_migration.rb
420
+ - test/test_yaml_regressions.rb
421
+ - test/unit/service/test_label_service.rb
422
+ - test/unit/test_horizontal_selector.rb
423
+ - test/unit/util/test_query.rb
424
+ - test/unit/util/test_string.rb
425
+ - test/unit/util/test_uri.rb