Commit Graph

230 Commits

Author SHA1 Message Date
Matt Simerson
75cb416b62 added diagnostics for failed spool_dir test
likely due to config caching
2014-09-16 00:03:28 -07:00
Matt Simerson
ebdb25a4bd extracted config*() from Qpsmtpd.pm -> Config.pm
* includes full test converage for Qpsmtpd::Config
    * folded t/config.t into t/qpsmtpd-config.t
* includes additional tests for Qpsmtpd
    * folded t/tempstuff into t/qpsmtpd.t
* PBP adjustments here and there
* other tweaks to handle test warnings
2014-09-15 23:41:31 -07:00
Matt Simerson
f8e2fdb966 more tests for Qpsmtpd.pm 2014-09-15 18:54:10 -07:00
Matt Simerson
b60c14a7c1 t/q-base, s/utils/base/ 2014-09-15 18:53:30 -07:00
Matt Simerson
710894cd49 moved Qpsmtpd::Utils -> Base.pm 2014-09-15 18:53:30 -07:00
Matt Simerson
851e1b54ee META updates, tidy, PBP tweaks
* update manifest
* perltidy
* replace postfix if/unless with brackets
* reduce useless indention by exiting sooner
2014-09-15 15:57:12 -07:00
Jared Johnson
f052543154 Correct number of user_config tests 2014-09-15 17:06:47 -05:00
Jared Johnson
de742dc95e Add tests for user_config plugin 2014-09-15 17:06:47 -05:00
Jared Johnson
23ce6002cf Qpsmtpd::config() tests 2014-09-15 17:06:47 -05:00
Jared Johnson
cda40f970b Remove an unintentionally commited subroutine 2014-09-15 17:03:52 -05:00
Jared Johnson
fb8f582055 Use a loop to make test data clearer 2014-09-15 17:03:52 -05:00
Jared Johnson
41a71f5d79 Move test sub definition to the bottom 2014-09-15 17:03:52 -05:00
Jared Johnson
18bfc45d0b Fall back correctly between config methods
hook_user_config no falls back to global hook_config followed by
file-based config followed by %defaults
2014-09-15 17:01:39 -05:00
Jared Johnson
eb482aad0a Tests for Qpsmtpd::Address::config()
Tests for the new Qpsmtpd::Address::config() which should call hook_user_config plugins
2014-09-15 17:01:39 -05:00
Matt Simerson
7396dbbf5f more tests for Qpsmtpd.pm 2014-09-15 11:53:28 -07:00
Matt Simerson
a53c692c7b earlytalker: check connection note for wait length
Issue #58
reputation databases can set $connection->notes(earlytalker_wait)
2014-09-12 13:32:08 -07:00
Matt Simerson
2cc57f6db3 Merge pull request #95 from msimerson/helo
helo: make NXDOMAIN time out faster
2014-09-12 01:06:21 -07:00
Jared Johnson
cc25532593 Replace warning with slightly better testing
Testing LOGWARN was generating a real warning that polluted test output.
Instead, let's catch the warning and test that it actually happens.
2014-09-12 01:23:09 -05:00
Matt Simerson
ca96ddf4eb added Utils->is_valid_ip, IPv6 ready
resolves Issue #82
2014-09-11 13:34:32 -07:00
Matt Simerson
5960cb4d87 helo: make NXDOMAIN time out faster 2014-09-11 11:37:46 -07:00
Jared Johnson
bf2cfcf4e3 Merge pull request #92 from msimerson/master
tests for Qpsmtpd/SMTP
2014-09-11 13:18:03 -05:00
Jared Johnson
f15a38dfe3 Merge pull request #94 from msimerson/rpm-version
add test to assure RPM VERSION is up-to-date (#80)
2014-09-11 13:00:25 -05:00
Matt Simerson
847db53e0d updated fault test in qpsmtpd-smtp.t 2014-09-11 10:53:09 -07:00
Matt Simerson
e7a4ca2b08 update MANIFEST and suppress helo test error 2014-09-11 10:46:29 -07:00
Matt Simerson
fabbdae960 tests for Qpsmtpd/SMTP
* order the ‘use’  pragmas
* compact the new() method
* move fault() tests into t/qpsmtpd-smtp.t
2014-09-11 10:46:29 -07:00
Matt Simerson
bcacb2778c add test to assure RPM VERSION is up-to-date (#80) 2014-09-11 10:37:56 -07:00
Jonathan Hall
8b1ff67604 Update fault()'s output to inidcate the possibly meaninglessness of the reported system error. 2014-09-11 11:58:31 -05:00
Matt Simerson
8f8463e91e Merge pull request #87 from flimzy/misc-tests
Silence misc.t STDOUT by testing for it.
2014-09-11 09:09:48 -07:00
Matt Simerson
04a984bbab helo: improved invalid_localhost detection 2014-09-10 15:12:52 -07:00
Matt Simerson
60877da4ed added Utils::is_localhost and t/qpsmtpd-utils.t
resolves Issue #89
2014-09-10 13:52:56 -07:00
Matt Simerson
39c454c95e helo: added IPv6 support to invalid_localhost
and also suppress a test warning
2014-09-10 13:52:56 -07:00
Jonathan Hall
7b3018c660 Remove reference to 'No such file or directory', as there's no guarantee
this is what $!  will return when this code is called during testing.
2014-09-10 10:15:43 -05:00
Jonathan Hall
11f47cb2ab Silence misc.t STDOUT by testing for it. 2014-09-10 08:55:17 -05:00
Matt Simerson
c9a780576f added tests for lib/Qpsmtpd.pm (Issue #67) 2014-09-08 22:58:27 -07:00
Priyadi Iman Nurcahyo
bef79d3b7d Fix test for munge_subject_threshold 2014-05-15 14:45:33 +00:00
Matt Simerson
a19b7de787 updated DMARC plugin tests
disabled for now, b/c they tested methods which no longer exist in new plugin
2013-12-18 00:09:10 -05:00
Matt Simerson
c652d4c9e4 dmarc test: comments in the public list was
allowing certain org domain searches to fail (plus.google.com, b/c a google.com email address was in the public list). Now I anchor the searches to the start of the line. This test also catches edge cases like co.uk, which isn't listed, but a wildcard *.uk is.
2013-08-05 15:05:37 -07:00
Matt Simerson
9c96ae78e4 find . -name '*.t' -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
5b06929e95 find . -name '*.pm' -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
fc3117fe60 fix dmarc plugin tests 2013-08-05 15:05:14 -07:00
Matt Simerson
db8ec50c3a new plugin: dmarc 2013-08-05 15:05:14 -07:00
Matt Simerson
b64bb2f9e4 a collection of DKIM enhancements
* disable Mail::DKIM::TextWrap (causes mangled messages for some clients)
* pod improvements
* don't log the entire DKIM signature when signing
* add dkim_pass_domains connection note with DKIM signer domains that pass
* enable dkim tests
2013-08-05 15:05:14 -07:00
Matt Simerson
8b548e392d test fixes for badmailfrom,headers plugins 2013-08-05 15:05:13 -07:00
Matt Simerson
50973aebf3 moved author tests from t/ to xt/ 2013-08-05 15:05:13 -07:00
Matt Simerson
a2bba68af6 several adjustments for tests 2013-08-05 15:05:10 -07:00
Matt Simerson
85cead39f8 SPF: removed test for removed is_in_relayclients() 2013-08-05 15:05:09 -07:00
Matt Simerson
b70f29c008 fixed test for commit 78cab52582 2013-08-05 15:05:09 -07:00
Matt Simerson
af55a8d6dd SPF: use $conn->relay_client instead of duplicated
is_in_relayclients method. Expects relay plugin to have set relay_client, a reasonable assumption.
2013-08-05 15:05:09 -07:00
Matt Simerson
1a7615ca7e dnsbl test: don't cry about test failures that
depend on working network & DNS.
2013-08-05 15:05:09 -07:00
Matt Simerson
8d52a3f548 dnsbl: fixed plugin test failure 2013-08-05 15:05:09 -07:00
Matt Simerson
21ce00cc90 fix relayclient test after commit b8baa4b91b
which added example IPv6 IPs to the config file
2013-08-05 15:05:09 -07:00
Matt Simerson
b1c2fa16b5 drop the check_ prefix from the last 3 plugins 2013-08-05 15:01:52 -07:00
Matt Simerson
47151f165b resolveable_fromhost: updated tests 2013-08-05 15:01:51 -07:00
Matt Simerson
208dfc3a21 rename require_resolvable_fromhost to resolvable_fromhost 2013-08-05 15:01:51 -07:00
Matt Simerson
e4d50a27d9 dnsbl test: remove hook_disconnect test 2013-08-05 15:01:50 -07:00
Matt Simerson
cf9b10a52f badmailfromto: fixed tests (rename cleanups) 2013-08-05 15:01:50 -07:00
Matt Simerson
f7c5f49946 rcpt_ok: shorten test messages 2013-08-05 15:01:50 -07:00
Matt Simerson
14767f9b18 updated SPF tests 2013-08-05 15:01:50 -07:00
Matt Simerson
b245d30e9e dnsbl: process DNS queries immediately
rather than deferring until RCPT. This greatly improves efficiency, since most connections will get marked naughty much sooner, having run fewer tests.
2013-08-05 15:01:49 -07:00
Matt Simerson
a259fec536 badrcptto: dropped check_ prefix from name 2013-08-05 15:01:49 -07:00
Matt Simerson
5ea1eb0f4c badrcptto: log tweaks, better regex detection 2013-08-05 15:01:49 -07:00
Matt Simerson
35b9b32895 relay: logging tweak 2013-08-05 15:01:49 -07:00
Matt Simerson
4a3452f486 p0f: POD & log message updates 2013-08-05 15:01:48 -07:00
Matt Simerson
964eab3b2b dspam: changed to only train on error
per suggestions by the dspam author
2013-08-05 15:01:48 -07:00
Matt Simerson
08256232a8 clamdscan: make sure headers exist before operating on them 2013-08-05 15:01:48 -07:00
Matt Simerson
47488650b3 badmailfrom rename fixups 2013-08-05 15:01:48 -07:00
Matt Simerson
7c798e45e6 badmailfrom rename: update test config/plugins 2013-08-05 15:01:48 -07:00
Matt Simerson
1fff417405 rename check_badmailfrom -> badmailfrom 2013-08-05 15:01:48 -07:00
Matt Simerson
e4133127d5 badmailfrom: remove rcpt hook (uses naughty instead) 2013-08-05 15:01:48 -07:00
Matt Simerson
046bc43e8e t/config: add missing test config files 2013-08-05 15:01:48 -07:00
Matt Simerson
5a424e8940 t/config/plugins: update test plugin list 2013-08-05 15:01:48 -07:00
Matt Simerson
e2c84987f3 helo: refine plugin tests 2013-08-05 15:01:48 -07:00
Matt Simerson
97fda310ee headers: plugin tests, deprecate check_basicheaders 2013-08-05 15:01:48 -07:00
Matt Simerson
d460dc86e3 spamassassin: add explicit default reject_type
consolidate the two data_post methods into one (more linear, simpler)
more informative log message
add new headers to top of headers (not bottom (consistent MTA behavior))
2013-08-05 15:01:48 -07:00
Matt Simerson
eba0a10132 badmailfrom: removed tests for rcpt_handler
and shorten test response messages in badmailfromto
2013-08-05 15:01:48 -07:00
Matt Simerson
7ff2d050f3 initial import - based on my qpsmtpd fork
which will merge into the main branch fairly easily
2013-08-05 15:01:47 -07:00
Matt Simerson
7d19bc6d5e restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2013-08-05 12:38:39 -07:00
Matt Simerson
b7cb9eaf3d auth: adding tests (should have attached with a previous commit) 2013-08-05 12:38:38 -07:00
Matt Simerson
4e2ae484a2 Merge pull request #15 from msimerson/early
consolidated chunks of code duplicated 4x into log_and_deny and log_and_...
2013-08-05 12:33:42 -07:00
Matt Simerson
fd646b0d27 Merge pull request #29 from msimerson/helo
Helo
2013-08-05 12:30:59 -07:00
Matt Simerson
44db1fecf6 helo: loosen up matching DNS requirements
added X-HELO header to message
added timeout option
quieted down debug logging
2012-06-13 17:49:25 -04:00
Matt Simerson
74ae957936 helo: new plugin
helo - validate a HELO message delivered from a connecting host.

Includes the following tests:

	is_in_badhelo
	invalid_localhost
	is_plain_ip
	is_address_literal [N.N.N.N]
	is_forged_literal
	is_not_fqdn
	no_forward_dns
	no_reverse_dns
	no_matching_dns
2012-06-11 22:27:01 -04:00
Matt Simerson
9c1e62371b added new t/config directory, with developer tests
run when $ENV{QPSMTPD_DEVELOPER} is set

plugins file is same as in config.sample, but with more stuff enabled
2012-06-04 03:34:48 -04:00
Matt Simerson
85982d00f8 restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2012-06-04 03:34:47 -04:00
Matt Simerson
9e70da4951 auth: adding tests (should have attached with a previous commit) 2012-06-04 03:34:47 -04:00
Matt Simerson
55b5f34365 auth_vpopmail_sql test, eval 'use DBI' before testing 2012-06-04 03:34:47 -04:00
Matt Simerson
732202ae37 another test tweak, for switching from 192.168 to 192.0 2012-06-04 03:34:47 -04:00
Matt Simerson
8795d4fd6e relay: use IETF IP testing addresses 2012-06-04 03:34:47 -04:00
Matt Simerson
974f1a95e8 new relay plugin, with tests!
replaces functionality of previous 3 relay plugins
2012-06-04 03:34:47 -04:00
Matt Simerson
57a0e4ba7b updated plugins to use QP::Plugins::is_immune 2012-06-04 03:26:16 -04:00
Matt Simerson
2a371a2c6e consolidated chunks of code duplicated 4x into log_and_deny and log_and_pass
in apr_*_handler subs, return DECLINED when connection is not available to read (like during tests)

added 23 tests

deprecate action argument
	'action log' did nothing, better logging controls available with loglevel
	'action deny'  ->  reject 1
	'action denysoft' =>  reject 1 reject_type temp

POD
use head2 for config options (instead of over, item, back)
added loglevel section
updated for replacement of action with reject options
2012-06-04 03:23:14 -04:00
Ask Bjørn Hansen
0e2384cceb Make all plugins use $self->connection rather than $self->qp->connection
Merge remote-tracking branch 'msimerson/connect'

Conflicts:
	plugins/async/require_resolvable_fromhost
	plugins/require_resolvable_fromhost
2012-06-03 23:53:43 -07:00
Matt Simerson
0a16621f02 connection consistency
-  $self->qp->connection->notes
+  $self->connection->notes

and all tests pass.
2012-06-02 00:46:33 -04:00
Matt Simerson
2f49cafcd6 resolvable_fromhost: refactored, added: POD, tests, reject, reject_type 2012-05-23 23:39:43 -04:00
Ask Bjørn Hansen
9e239fd83d Merge pull request #16 from msimerson/geoip
Geoip plugin improvements
2012-05-23 15:39:10 -07:00
Matt Simerson
e07488d4f6 hrmm, why didn't Test::Qpsmtpd::Plugin::log work? 2012-05-22 17:41:40 -04:00
Matt Simerson
2dcd34467e geoip: eval loading of Geo::IP, tests, enabled in config
eval Geo::IP and log an error if missing
added 2 tests
enabled in config/plugins
2012-05-22 17:40:02 -04:00
Matt Simerson
521aa4919f basicheaders, add reject option, loglevel
added reject option
document the existence of the loglevel option
factored date validity tests into their own sub
added tests
improved POD
2012-05-21 21:30:02 -04:00
Matt Simerson
9d0c2f8469 dnsbl, POD tweaks, DENY type tests
consolidated POD at top of file
added example options to reject_type POD head
added an example loglevel entry

consolidated DENY[SOFT|DISCONNECT] logic into get_reject_type
added tests for get_reject_type
2012-05-21 17:07:37 -04:00
Matt Simerson
51486d0b04 SPF plugin: refactored, tests, new config option
added POD description of spfquery note

changed spf_deny -> reject  (and offered 4 more options, see POD for reject)
	backwards compatible with old config settings
	replicates qmail-smtpd SPF patch behavior

improved logging (again)

uses a stringy eval 'use Mail::SPF' in the register sub. If missing, warn and log the error, and don't register any hooks. This is much nicer error than the current, "*** Remote host closed connection unexpectedly." broken mail server that results from enabling the SPF plugin without Mail::SPF installed.

background: I noticed I was deferring valid emails with the SPF plugin at 'spf_deny 1', and without changing the code, there wasn't a way to change how ~all records were handled. This provides that flexibility.
2012-05-21 04:19:45 -04:00