From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 2F9EE20803 for ; Thu, 22 Jun 2017 22:02:11 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 2/2] test for PublicInbox::Filter::RubyLang Date: Thu, 22 Jun 2017 22:02:11 +0000 Message-Id: <20170622220211.8956-2-e@80x24.org> In-Reply-To: <20170622220211.8956-1-e@80x24.org> References: <20170622071136.GA8242@dcvr> <20170622220211.8956-1-e@80x24.org> List-Id: This will make it easier to prevent breakage in the future. --- MANIFEST | 1 + t/filter_rubylang.t | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 t/filter_rubylang.t diff --git a/MANIFEST b/MANIFEST index c7c4a92..43ac991 100644 --- a/MANIFEST +++ b/MANIFEST @@ -130,6 +130,7 @@ t/fail-bin/spamc t/feed.t t/filter_base.t t/filter_mirror.t +t/filter_rubylang.t t/filter_subjecttag.t t/filter_vger.t t/git-http-backend.psgi diff --git a/t/filter_rubylang.t b/t/filter_rubylang.t new file mode 100644 index 0000000..bfccc35 --- /dev/null +++ b/t/filter_rubylang.t @@ -0,0 +1,58 @@ +# Copyright (C) 2017 all contributors +# License: AGPL-3.0+ +use strict; +use warnings; +use Test::More; +use Email::MIME; +use File::Temp qw/tempdir/; +use_ok 'PublicInbox::Filter::RubyLang'; + +my $f = PublicInbox::Filter::RubyLang->new; +ok($f, 'created PublicInbox::Filter::RubyLang object'); +my $msg = <<'EOF'; +Subject: test + +keep this + +Unsubscribe: + +EOF +my $mime = Email::MIME->new($msg); +my $ret = $f->delivery($mime); +is($ret, $mime, "delivery successful"); +is($mime->body, "keep this\n", 'normal message filtered OK'); + +SKIP: { + eval 'require DBD::SQLite'; + skip 'DBD::SQLite missing for altid mapping', 4 if $@; + use_ok 'PublicInbox::Inbox'; + my $git_dir = tempdir('pi-filter_rubylang-XXXXXX', + TMPDIR => 1, CLEANUP => 1); + is(mkdir("$git_dir/public-inbox"), 1, "created public-inbox dir"); + my $altid = [ "serial:ruby-core:file=msgmap.sqlite3" ]; + my $ibx = PublicInbox::Inbox->new({ mainrepo => $git_dir, + altid => $altid }); + $f = PublicInbox::Filter::RubyLang->new(-inbox => $ibx); + $msg = <<'EOF'; +X-Mail-Count: 12 +Message-ID: + +EOF + $mime = Email::MIME->new($msg); + $ret = $f->delivery($mime); + is($ret, $mime, "delivery successful"); + my $mm = PublicInbox::Msgmap->new($git_dir); + is($mm->num_for('a@b'), 12, 'MM entry created based on X-ML-Count'); + + $msg = <<'EOF'; +X-Mail-Cout: 12 +Message-ID: + +EOF + + $mime = Email::MIME->new($msg); + $ret = $f->delivery($mime); + is($ret, 100, "delivery rejected without X-Mail-Count"); +} + +done_testing(); -- EW