You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by do...@apache.org on 2006/07/20 01:57:13 UTC

svn commit: r423667 - in /spamassassin/trunk: MANIFEST t/get_headers.t

Author: dos
Date: Wed Jul 19 16:57:12 2006
New Revision: 423667

URL: http://svn.apache.org/viewvc?rev=423667&view=rev
Log:
bug 3979: add tests for correct :addr stripping

Added:
    spamassassin/trunk/t/get_headers.t   (with props)
Modified:
    spamassassin/trunk/MANIFEST

Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=423667&r1=423666&r2=423667&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Wed Jul 19 16:57:12 2006
@@ -331,6 +331,7 @@
 t/debug.t
 t/desc_wrap.t
 t/dnsbl.t
+t/get_headers.t
 t/gtube.t
 t/hashcash.t
 t/html_colors.t

Added: spamassassin/trunk/t/get_headers.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/get_headers.t?rev=423667&view=auto
==============================================================================
--- spamassassin/trunk/t/get_headers.t (added)
+++ spamassassin/trunk/t/get_headers.t Wed Jul 19 16:57:12 2006
@@ -0,0 +1,86 @@
+#!/usr/bin/perl -w
+
+BEGIN {
+  if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
+    chdir 't';
+  }
+
+  if (-e 'test_dir') {            # running from test directory, not ..
+    unshift(@INC, '../blib/lib');
+  }
+}
+
+my $prefix = '.';
+if (-e 'test_dir') {            # running from test directory, not ..
+  $prefix = '..';
+}
+
+use strict;
+use Test;
+use SATest; sa_t_init("get_headers");
+
+use Mail::SpamAssassin;
+
+plan tests => 10;
+
+##############################################
+
+# initialize SpamAssassin
+my $sa = create_saobj({'dont_copy_prefs' => 1});
+
+$sa->init(0); # parse rules
+
+my $raw_message = <<'EOF';
+To1: <jm...@foo>
+To2: jm@foo
+To3: jm@foo (Foo Blah)
+To4: jm@foo, jm@bar
+To5: display: jm@foo (Foo Blah), jm@bar ;
+To6: Foo Blah <jm...@foo>
+To7: "Foo Blah" <jm...@foo>
+To8: "'Foo Blah'" <jm...@foo>
+To9: "_$B!z8=6b$=$N>l$GEv$?$j!*!zEv_(B_$B$?$k!*!)$/$8!z7|>^%\%s%P!<!z_(B" <jm...@foo>
+To10: "Some User" <"Some User"@foo>
+To11: "Some User"@foo
+
+Blah!
+
+EOF
+
+my $mail = $sa->parse( $raw_message );
+my $msg = Mail::SpamAssassin::PerMsgStatus->new($sa, $mail);
+
+##############################################
+
+sub try {
+  my ($try, $expect) = @_;
+  my $result = $msg->get($try);
+
+  # undef might be valid in some situations, so deal with it...
+  if (!defined $expect) {
+    return !defined $result;
+  }
+  elsif (!defined $result) {
+    return 0;
+  }
+
+  if ($expect eq $result) {
+    return 1;
+  } else {
+    warn "try: '$try' failed! expect: '$expect' got: '$result'\n";
+    return 0;
+  }
+}
+
+ok(try('To1:addr', 'jm@foo'));
+ok(try('To2:addr', 'jm@foo'));
+ok(try('To3:addr', 'jm@foo'));
+ok(try('To4:addr', 'jm@foo'));
+ok(try('To5:addr', 'jm@foo'));
+ok(try('To6:addr', 'jm@foo'));
+ok(try('To7:addr', 'jm@foo'));
+ok(try('To8:addr', 'jm@foo'));
+#ok(try('To9:addr', 'jm@foo'));
+ok(try('To10:addr', '"Some User"@foo'));
+ok(try('To11:addr', '"Some User"@foo'));
+

Propchange: spamassassin/trunk/t/get_headers.t
------------------------------------------------------------------------------
    svn:executable = *