]> git.donarmstrong.com Git - debbugs.git/blob - t/07_control_limit.t
abstract out create config in tests
[debbugs.git] / t / 07_control_limit.t
1 # -*- mode: cperl; -*-
2
3 use Test::More tests => 8;
4
5 use warnings;
6 use strict;
7
8 # Here, we're going to shoot messages through a set of things that can
9 # happen.
10
11 # First, we're going to send mesages to receive.
12 # To do so, we'll first send a message to submit,
13 # then send messages to the newly created bugnumber.
14
15 use IO::File;
16 use File::Temp qw(tempdir);
17 use Cwd qw(getcwd);
18 use Debbugs::MIME qw(create_mime_message);
19 use File::Basename qw(dirname basename);
20 # The test functions are placed here to make things easier
21 use lib qw(t/lib);
22 use DebbugsTest qw(:all);
23 use Data::Dumper;
24
25 # HTTP::Server:::Simple defines a SIG{CHLD} handler that breaks system; undef it here.
26 $SIG{CHLD} = sub {};
27 my %config;
28 eval {
29      %config = create_debbugs_configuration();
30 };
31 if ($@) {
32      BAIL_OUT($@);
33 }
34
35 my $sendmail_dir = $config{sendmail_dir};
36 my $spool_dir = $config{spool_dir};
37 my $config_dir = $config{config_dir};
38
39
40
41 # We're going to use create mime message to create these messages, and
42 # then just send them to receive.
43
44 send_message(to=>'submit@bugs.something',
45              headers => [To   => 'submit@bugs.something',
46                          From => 'foo@bugs.something',
47                          Subject => 'Submiting a bug',
48                         ],
49              body => <<EOF) or fail('Unable to send message');
50 Package: foo
51 Severity: normal
52
53 This is a silly bug
54 EOF
55
56 my $SD_SIZE = dirsize($sendmail_dir);
57 send_message(to => 'control@bugs.something',
58              headers => [To   => 'control@bugs.something',
59                          From => 'foo@bugs.something',
60                          Subject => "Munging a bug with limit_package_bar",
61                         ],
62              body => <<EOF) or fail 'message to control@bugs.something failed';
63 debug 10
64 limit package bar
65 severity 1 wishlist
66 thanks
67 EOF
68
69 $SD_SIZE =
70     num_messages_sent($SD_SIZE,1,
71                            $sendmail_dir,
72                       'control@bugs.something messages appear to have been sent out properly');
73
74 # make sure this fails
75 ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: Processed (with 1 error): Munging a bug with limit_package_bar")) == 0,
76    'control@bugs.something'. "limit message failed with 1 error");
77
78 send_message(to => 'control@bugs.something',
79              headers => [To   => 'control@bugs.something',
80                          From => 'foo@bugs.something',
81                          Subject => "Munging a bug with limit_package_foo",
82                         ],
83              body => <<EOF) or fail 'message to control@bugs.something failed';
84 debug 10
85 limit package foo
86 severity 1 wishlist
87 thanks
88 EOF
89
90 $SD_SIZE =
91     num_messages_sent($SD_SIZE,1,
92                            $sendmail_dir,
93                       'control@bugs.something messages appear to have been sent out properly');
94
95 # make sure this fails
96 ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: Processed: Munging a bug with limit_package_foo")) == 0,
97    'control@bugs.something'. "limit message succeeded with no errors");
98
99 send_message(to=>'submit@bugs.something',
100              headers => [To   => 'submit@bugs.something',
101                          From => 'foo@bugs.something',
102                          Subject => 'Submiting a bug',
103                         ],
104              body => <<EOF) or fail('Unable to send message');
105 Package: foo, bar
106 Severity: normal
107
108 This is a silly bug
109 EOF
110 $SD_SIZE = dirsize($sendmail_dir);
111
112
113 send_message(to => 'control@bugs.something',
114              headers => [To   => 'control@bugs.something',
115                          From => 'foo@bugs.something',
116                          Subject => "Munging a bug with limit_package_bar",
117                         ],
118              body => <<EOF) or fail 'message to control@bugs.something failed';
119 debug 10
120 limit package baz
121 severity 2 wishlist
122 thanks
123 EOF
124
125 $SD_SIZE =
126     num_messages_sent($SD_SIZE,1,
127                            $sendmail_dir,
128                       'control@bugs.something messages appear to have been sent out properly');
129
130 # make sure this fails
131 ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: Processed (with 1 error): Munging a bug with limit_package_bar")) == 0,
132    'control@bugs.something'. "limit message failed with 1 error");
133
134 send_message(to => 'control@bugs.something',
135              headers => [To   => 'control@bugs.something',
136                          From => 'foo@bugs.something',
137                          Subject => "Munging a bug with limit_package_foo",
138                         ],
139              body => <<EOF) or fail 'message to control@bugs.something failed';
140 debug 10
141 limit package foo
142 severity 2 wishlist
143 thanks
144 EOF
145
146 $SD_SIZE =
147     num_messages_sent($SD_SIZE,1,
148                            $sendmail_dir,
149                       'control@bugs.something messages appear to have been sent out properly');
150
151 # make sure this fails
152 ok(system('sh','-c','find '.$sendmail_dir.q( -type f | xargs grep -q "Subject: Processed: Munging a bug with limit_package_foo")) == 0,
153    'control@bugs.something'. "limit message succeeded with no errors");