nilclass-maildir 0.4.1

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.
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+ class TestSerializers < Test::Unit::TestCase
3
+
4
+ serializers = [
5
+ [Maildir::Serializer::Mail, lambda {|data| Mail.new(data).to_s}],
6
+ [Maildir::Serializer::Marshal, lambda {|data| Marshal.dump(data)}],
7
+ [Maildir::Serializer::JSON, lambda {|data| JSON.dump(data)}],
8
+ [Maildir::Serializer::YAML, lambda {|data| YAML.dump(data)}]
9
+ ]
10
+
11
+ serializers.each do |klass, dumper|
12
+ context "A message serialized with #{klass}" do
13
+ setup do
14
+ FakeFS::FileSystem.clear
15
+ @data = case klass.new
16
+ when Maildir::Serializer::Mail
17
+ Mail.new
18
+ else
19
+ # Test a few common data structures
20
+ [1, nil, {"foo" => true}]
21
+ end
22
+
23
+ # Set the message serializer
24
+ Maildir::Message.serializer = klass.new
25
+ @message = temp_maildir.add(@data)
26
+ end
27
+
28
+ should "have the correct data" do
29
+ assert_equal @data, @message.data
30
+ end
31
+
32
+ should "have serialized data on disk" do
33
+ assert_equal dumper.call(@data), File.read(@message.path)
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+ require 'maildir/subdirs'
3
+ class TestSubdirs < Test::Unit::TestCase
4
+ context "A maildir" do
5
+ setup do
6
+ FakeFS::FileSystem.clear
7
+ @maildir = temp_maildir
8
+ setup_subdirs(@maildir)
9
+ end
10
+
11
+ should "have subdirs" do
12
+ assert @maildir.subdirs.any?
13
+ end
14
+
15
+ should "be called INBOX" do
16
+ assert @maildir.name == 'INBOX'
17
+ end
18
+
19
+ should "include direct subdirs" do
20
+ subdir_names = @maildir.subdirs.map(&:name)
21
+ assert subdir_names.include?('a') && subdir_names.include?('b')
22
+ end
23
+
24
+ should "not include deeper subdirs" do
25
+ subdir_names = @maildir.subdirs.map(&:name)
26
+ assert ! subdir_names.include?('x') && ! subdir_names.include?('a.x')
27
+ end
28
+
29
+ should "create more subdirs" do
30
+ @maildir.create_subdir("test")
31
+ assert @maildir.subdirs.map(&:name).include?("test")
32
+ end
33
+ end
34
+
35
+ context "A subdir" do
36
+ setup do
37
+ FakeFS::FileSystem.clear
38
+ @maildir = temp_maildir
39
+ setup_subdirs(@maildir)
40
+ end
41
+
42
+ should "include more subdirs" do
43
+ assert_not_empty @maildir.subdirs.select{ |sd| sd.name == 'a'}.first.subdirs
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,43 @@
1
+ require 'test_helper'
2
+ class TestUniqueName < Test::Unit::TestCase
3
+
4
+ context "A UniqueName" do
5
+ setup do
6
+ @raw_name = Maildir::UniqueName.new
7
+ @name = @raw_name.to_s
8
+ @now = @raw_name.send(:instance_variable_get, :@now)
9
+ end
10
+
11
+ should "be initialized" do
12
+ assert @raw_name
13
+ end
14
+
15
+ should "have a name" do
16
+ assert_not_empty @name
17
+ end
18
+
19
+ should "begin with timestamp" do
20
+ assert_match /^#{@now.to_i}/, @name
21
+ end
22
+
23
+ should "end with hostname" do
24
+ assert_match /#{Socket.gethostname}$/, @name
25
+ end
26
+
27
+ should "be unique when created in the same microsecond" do
28
+ @new_name = Maildir::UniqueName.new
29
+ # Set @now be identical in both UniqueName instances
30
+ @new_name.send(:instance_variable_set, :@now, @now)
31
+ assert_not_equal @name, @new_name.to_s
32
+ end
33
+
34
+ end
35
+
36
+ context "The UniqueName counter" do
37
+ should "increment when called" do
38
+ value1 = Maildir::UniqueName.counter
39
+ value2 = Maildir::UniqueName.counter
40
+ assert_equal value1+1, value2
41
+ end
42
+ end
43
+ end
metadata ADDED
@@ -0,0 +1,125 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: nilclass-maildir
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.1
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Suggs
8
+ - Niklas E. Cathor
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2010-01-24 00:00:00 +01:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: shoulda
18
+ type: :development
19
+ version_requirement:
20
+ version_requirements: !ruby/object:Gem::Requirement
21
+ requirements:
22
+ - - ">="
23
+ - !ruby/object:Gem::Version
24
+ version: "0"
25
+ version:
26
+ - !ruby/object:Gem::Dependency
27
+ name: mail
28
+ type: :development
29
+ version_requirement:
30
+ version_requirements: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ version:
36
+ - !ruby/object:Gem::Dependency
37
+ name: json
38
+ type: :development
39
+ version_requirement:
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ version:
46
+ - !ruby/object:Gem::Dependency
47
+ name: ktheory-fakefs
48
+ type: :development
49
+ version_requirement:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ description: A ruby library for reading and writing arbitrary messages in DJB's maildir format
57
+ email: aaron@ktheory.com
58
+ executables: []
59
+
60
+ extensions: []
61
+
62
+ extra_rdoc_files:
63
+ - LICENSE
64
+ - README.rdoc
65
+ files:
66
+ - .gitignore
67
+ - LICENSE
68
+ - README.rdoc
69
+ - Rakefile
70
+ - VERSION
71
+ - benchmarks/runner
72
+ - lib/maildir.rb
73
+ - lib/maildir/keywords.rb
74
+ - lib/maildir/message.rb
75
+ - lib/maildir/serializer/base.rb
76
+ - lib/maildir/serializer/json.rb
77
+ - lib/maildir/serializer/mail.rb
78
+ - lib/maildir/serializer/marshal.rb
79
+ - lib/maildir/serializer/yaml.rb
80
+ - lib/maildir/subdirs.rb
81
+ - lib/maildir/unique_name.rb
82
+ - maildir.gemspec
83
+ - test/test_helper.rb
84
+ - test/test_keywords.rb
85
+ - test/test_maildir.rb
86
+ - test/test_message.rb
87
+ - test/test_serializers.rb
88
+ - test/test_subdirs.rb
89
+ - test/test_unique_name.rb
90
+ has_rdoc: true
91
+ homepage: http://github.com/ktheory/maildir
92
+ licenses: []
93
+
94
+ post_install_message:
95
+ rdoc_options:
96
+ - --charset=UTF-8
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: "0"
104
+ version:
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: "0"
110
+ version:
111
+ requirements: []
112
+
113
+ rubyforge_project:
114
+ rubygems_version: 1.3.5
115
+ signing_key:
116
+ specification_version: 3
117
+ summary: Read & write messages in the maildir format
118
+ test_files:
119
+ - test/test_serializers.rb
120
+ - test/test_keywords.rb
121
+ - test/test_helper.rb
122
+ - test/test_subdirs.rb
123
+ - test/test_message.rb
124
+ - test/test_unique_name.rb
125
+ - test/test_maildir.rb