#!/usr/bin/env perl # # Test mh-sequences # use strict; use warnings; use lib qw(. .. tests); use Tools; use Test::More tests => 11; use File::Spec; use Mail::Box::Manager; my $mhsrc = File::Spec->catfile('folders', 'mh.src'); my $seq = File::Spec->catfile($mhsrc, '.mh_sequences'); clean_dir $mhsrc; unpack_mbox2mh($src, $mhsrc); # Create a sequences file. open SEQ, ">$seq" or die "Cannot write to $seq: $!\n"; # Be warned that message number 13 has been skipped from the MH-box. print SEQ <<'MH_SEQUENCES'; unseen: 12-15 3 34 36 16 cur: 5 MH_SEQUENCES close SEQ; my $mgr = Mail::Box::Manager->new; my $folder = $mgr->open ( folder => $mhsrc , folderdir => 't' , lock_type => 'NONE' , extract => 'LAZY' , access => 'rw' , save_on_exit => 0 ); die "Couldn't read $mhsrc: $!\n" unless $folder; isa_ok($folder, 'Mail::Box::MH'); ok($folder->message(1)->label('seen')); ok(not $folder->message(2)->label('seen')); ok($folder->message(3)->label('seen')); ok($folder->message(4)->label('current')); is($folder->current->messageID, $folder->message(4)->messageID); ok(not $folder->message(1)->label('current')); $folder->current($folder->message(1)); ok(not $folder->message(0)->label('current')); ok($folder->message(1)->label('current')); $folder->modified(1); $folder->close(write => 'ALWAYS'); open SEQ, $seq or die "Cannot read from $seq: $!\n"; my @seq = ; close SEQ; my ($cur) = grep /^cur\: /, @seq; is($cur, "cur: 2\n"); my ($unseen) = grep /^unseen\: /, @seq; is($unseen, "unseen: 3 12-15 33 35\n"); clean_dir $mhsrc;