File: 10copyto.t

package info (click to toggle)
libmail-box-perl 2.117-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 3,828 kB
  • ctags: 1,564
  • sloc: perl: 23,381; makefile: 2
file content (112 lines) | stat: -rw-r--r-- 3,139 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env perl
#
# Test folder-to-folder copy
#

use strict;
use warnings;

use lib qw(. .. tests);
use Tools;

use Test::More tests => 28;
use File::Copy;
use IO::Scalar;

use Mail::Box::Manager;

copy $src, $cpy or die "Copy failed";

#
# Build a complex system with MH folders and sub-folders.
#

my $mgr    = Mail::Box::Manager->new;

my $folder = $mgr->open($cpy, lock_type => 'NONE');
ok(defined $folder);

unlink qw/a b c d e/;

my $A = $mgr->open('a', type => 'mh', create => 1, access => 'w'
  , lock_type => 'NONE');
ok(defined $A);

$mgr->copyMessage($A, $folder->message($_)) for 0..9;

my $b = $A->openSubFolder('b', create => 1, access => 'w');
ok(defined $b);
$mgr->copyMessage($b, $folder->message($_)) for 10..19;
cmp_ok($b->messages, "==", 10);
$b->close;

my $c = $A->openSubFolder('c', create => 1, access => 'w');
ok(defined $c);
$mgr->copyMessage($c, $folder->message($_)) for 20..29;

my $d = $c->openSubFolder('d', create => 1, access => 'w');
ok(defined $c);
$mgr->copyMessage($d, $folder->message($_)) for 30..39;

$d->close;
$c->close;
$A->close;

$folder->close;
cmp_ok($mgr->openFolders , "==",  0, 'all folders closed');

#
# Convert the built MH structure into MBOX
#

$A = $mgr->open('a', access => 'rw', lock_type => 'NONE');
ok($A, 'Open MH folder a');

my @sub = sort $A->listSubFolders;
cmp_ok(@sub, "==", 2,                      "a has two subfolders");
is($sub[0], 'b',                           "   named b");
is($sub[1], 'c',                           "   and c");

my $e = $mgr->open('e', type => 'mbox', create => 1, access => 'rw',
   lock_type => 'NONE');
cmp_ok($A->messages, "==", 10,              "e has 10 messages");

$A->message($_)->delete for 3,4,8;
ok(defined $A->copyTo($e, select => 'ALL', subfolders => 0));
cmp_ok($e->messages, "==", 10);
$e->delete;

$e = $mgr->open('e', type => 'mbox', create => 1, access => 'rw',
   lock_type => 'NONE');
ok(defined $A->copyTo($e, select => 'DELETED', subfolders => 0));
cmp_ok($e->messages, "==", 3);
$e->delete;

$e = $mgr->open('e', type => 'mbox', create => 1, access => 'rw',
   lock_type => 'NONE');
ok(defined $A->copyTo($e, select => 'ACTIVE', subfolders => 'FLATTEN'));
cmp_ok($e->messages, "==", 37);
$e->delete;

$e = $mgr->open('e', type => 'mbox', create => 1, access => 'rw',
   lock_type => 'NONE');
ok(defined $e,                          "e is opened again");

ok(defined $A->copyTo($e, select => 'ACTIVE', subfolders => 'RECURSE'),
                                        "copyTo reports success");
cmp_ok($e->messages, "==", 7,           "e contains 7 messages");

my @subs = sort $e->listSubFolders;
cmp_ok(@subs, "==", 2,                  "e still has two subfolders");
is($subs[0], 'b',                       "   named b");
is($subs[1], 'c',                       "   and c");

$b = $e->openSubFolder('b');
ok(defined $b,                          "opened subfolder b of e");
isa_ok($b, 'Mail::Box::Mbox',           "   which is a MBOX");
cmp_ok($b->messages , "==",  10,        "   and contains 10 messages");

ok($b->close,                           "b is closed");                         

$e->delete;
$A->delete;