]>
gitweb.michael.orlitzky.com - mailshears.git/blob - test/test_rm.rb
1 # WARNING: Test output is dependent on the order these classes include
2 # certain modules; i.e. on the 'require' order.
3 require 'common/domain'
5 require 'mailshears_test'
6 require 'minitest/autorun'
7 require 'rm/plugins/agendav'
8 require 'rm/plugins/davical'
9 require 'rm/plugins/dovecot'
10 require 'rm/plugins/postfixadmin'
11 require 'rm/plugins/roundcube'
12 require 'rm/rm_runner'
15 class TestRm
< MailshearsTest
19 users
= [ User
.new("adam@example.net") ]
21 output_buffer
= StringIO
.new()
23 $stdout = output_buffer
24 RmPlugin
.run(cfg
, *users
)
27 actual
= output_buffer
.string()
30 "AgendavRm - Removed user adam@example.net.\n" +
31 "DavicalRm - User adam@example.net not found.\n" +
32 "DovecotRm - Removed user adam@example.net " +
33 "(#{cfg.dovecot_mail_root}/example.net/adam).\n" +
34 "PostfixadminRm - Removed user adam@example.net.\n" +
35 "RoundcubeRm - Removed user adam@example.net (User ID: 3).\n"
37 assert_equal(expected
, actual
)
39 # Now make sure the database has what we expect.
41 arm
= AgendavRm
.new(cfg
)
42 actual
= arm
.list_users()
43 expected
= [User
.new('booger@example.com')]
44 assert_equal(expected
, actual
)
46 drm
= DavicalRm
.new(cfg
)
47 actual
= drm
.list_users()
48 expected
= [User
.new('alice@example.com'), User
.new('booger@example.com')]
49 assert_equal(expected
, actual
)
51 pfarm
= PostfixadminRm
.new(cfg
)
52 actual
= pfarm
.list_users()
53 expected
= [User
.new('alice@example.com'),
54 User
.new('bob@example.com'),
55 User
.new('beth@example.net'),
56 User
.new('carol@example.net')]
57 assert_equal(expected
, actual
)
59 actual
= pfarm
.list_domains()
60 expected
= [Domain
.new('example.com'), Domain
.new('example.net')]
61 assert_equal(expected
, actual
)
63 actual
= pfarm
.list_aliases()
64 expected
= [{'address' => 'alice@example.com',
65 'goto' => 'alice@example.com'},
66 {'address' => 'bob@example.com',
67 'goto' => 'bob@example.com'},
68 {'address' => 'beth@example.net',
69 'goto' => 'beth@example.net'},
70 {'address' => 'carol@example.net',
71 'goto' => 'carol@example.net'}]
72 assert_equal(expected
, actual
)
74 rrm
= RoundcubeRm
.new(cfg
)
75 actual
= rrm
.list_users()
76 expected
= [User
.new('alice@example.com'), User
.new('booger@example.com')]
77 assert_equal(expected
, actual
)
79 # Check that adam's directory is gone but that the rest remain.
80 assert(maildir_exists('example.com/alice'))
81 assert(maildir_exists('example.com/booger'))
82 assert(maildir_exists('example.com/jeremy'))
83 assert(!
maildir_exists('example.net/adam'))
89 domains
= [Domain
.new("example.net")]
91 output_buffer
= StringIO
.new()
93 $stdout = output_buffer
94 RmPlugin
.run(cfg
, *domains
)
97 actual
= output_buffer
.string()
100 "AgendavRm - Removed domain example.net.\n" +
101 "DavicalRm - Domain example.net not found.\n" +
102 "DovecotRm - Removed domain example.net " +
103 "(#{cfg.dovecot_mail_root}/example.net).\n" +
104 "PostfixadminRm - Removed domain example.net.\n" +
105 "RoundcubeRm - Removed domain example.net.\n"
107 assert_equal(expected
, actual
)
109 # Now make sure the database has what we expect.
111 arm
= AgendavRm
.new(cfg
)
112 actual
= arm
.list_users()
113 expected
= [User
.new('booger@example.com')]
114 assert_equal(expected
, actual
)
116 drm
= DavicalRm
.new(cfg
)
117 actual
= drm
.list_users()
118 expected
= [User
.new('alice@example.com'), User
.new('booger@example.com')]
119 assert_equal(expected
, actual
)
121 pfarm
= PostfixadminRm
.new(cfg
)
122 actual
= pfarm
.list_users()
123 expected
= [User
.new('alice@example.com'),
124 User
.new('bob@example.com')]
125 assert_equal(expected
, actual
)
127 actual
= pfarm
.list_domains()
128 expected
= [Domain
.new('example.com')]
129 assert_equal(expected
, actual
)
131 actual
= pfarm
.list_aliases()
132 expected
= [{'address' => 'alice@example.com',
133 'goto' => 'alice@example.com'},
134 {'address' => 'bob@example.com',
135 'goto' => 'bob@example.com'}]
136 assert_equal(expected
, actual
)
138 rrm
= RoundcubeRm
.new(cfg
)
139 actual
= rrm
.list_users()
140 expected
= [User
.new('alice@example.com'), User
.new('booger@example.com')]
141 assert_equal(expected
, actual
)
143 # Check that example.net's directory is gone but that the rest remain.
144 assert(maildir_exists('example.com/alice'))
145 assert(maildir_exists('example.com/booger'))
146 assert(maildir_exists('example.com/jeremy'))
147 assert(!
maildir_exists('example.net'))