diff options
-rw-r--r-- | lib/PublicInbox/WatchMaildir.pm | 7 | ||||
-rw-r--r-- | t/watch_maildir.t | 39 |
2 files changed, 45 insertions, 1 deletions
diff --git a/lib/PublicInbox/WatchMaildir.pm b/lib/PublicInbox/WatchMaildir.pm index 35363755..f1a21b9b 100644 --- a/lib/PublicInbox/WatchMaildir.pm +++ b/lib/PublicInbox/WatchMaildir.pm @@ -45,10 +45,14 @@ sub new { }, $class; } +sub _done_for_now { + $_->done foreach values %{$_[0]->{importers}}; +} + sub _try_fsn_paths { my ($self, $paths) = @_; _try_path($self, $_->{path}) foreach @$paths; - $_->done foreach values %{$self->{importers}}; + _done_for_now($self); } sub _try_path { @@ -133,6 +137,7 @@ sub scan { } closedir $dh; } + _done_for_now($self); } 1; diff --git a/t/watch_maildir.t b/t/watch_maildir.t new file mode 100644 index 00000000..6564a866 --- /dev/null +++ b/t/watch_maildir.t @@ -0,0 +1,39 @@ +# Copyright (C) 2016 all contributors <meta@public-inbox.org> +# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt> +use Test::More; +use File::Temp qw/tempdir/; +use Email::MIME; +use PublicInbox::Config; + +my $tmpdir = tempdir('watch_maildir-XXXXXX', TMPDIR => 1, CLEANUP => 1); +my $git_dir = "$tmpdir/test.git"; +my $maildir = "$tmpdir/md"; +use_ok 'PublicInbox::WatchMaildir'; +use_ok 'PublicInbox::Emergency'; +my $cfgpfx = "publicinbox.test"; +my $addr = 'test-public@example.com'; +is(system(qw(git init -q --bare), $git_dir), 0, 'initialized git dir'); + +my $msg = <<EOF; +From: user\@example.com +To: $addr +Subject: spam +Message-Id: <a\@b.com> +Date: Sat, 18 Jun 2016 00:00:00 +0000 + +msg +EOF +PublicInbox::Emergency->new($maildir)->prepare(\$msg); + +my $config = PublicInbox::Config->new({ + "$cfgpfx.address" => $addr, + "$cfgpfx.mainrepo" => $git_dir, + "$cfgpfx.watch" => "maildir:$maildir", +}); + +PublicInbox::WatchMaildir->new($config)->scan; +my $git = PublicInbox::Git->new($git_dir); +my @list = $git->qx(qw(rev-list refs/heads/master)); +is(scalar @list, 1, 'one revision in rev-list'); + +done_testing; |