~ubuntu-branches/ubuntu/vivid/gscan2pdf/vivid

« back to all changes in this revision

Viewing changes to t/37_user_defined.t

  • Committer: Package Import Robot
  • Author(s): Jeffrey Ratcliffe
  • Date: 2015-01-30 21:49:19 UTC
  • mfrom: (1.1.23) (4.2.24 sid)
  • Revision ID: package-import@ubuntu.com-20150130214919-yhligsglhd84gsdo
Tags: 1.3.0-1
New upstream release
Closes: #774099
(avoid leading and trailing blanks in expanded filename template)
Closes: #774103 (fixes for date offset calculation)
Closes: #710428
(Add "Found ocropus" to log information on application start)
Closes: #774093 (various consistency updates for dialogs)
Closes: #774094 (misc. improvements for OCR'ed texts)
Closes: #774097 (when saving as DjVU, use MetaData)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
use warnings;
2
 
use strict;
3
 
use File::Basename;    # Split filename into dir, file, ext
4
 
use Test::More tests => 5;
5
 
 
6
 
BEGIN {
7
 
    use Gscan2pdf::Document;
8
 
    use Gtk2 -init;    # Could just call init separately
9
 
}
10
 
 
11
 
use Log::Log4perl qw(:easy);
12
 
Log::Log4perl->easy_init($WARN);
13
 
Gscan2pdf::Document->setup(Log::Log4perl::get_logger);
14
 
 
15
 
my %paper_sizes = (
16
 
    A4 => {
17
 
        x => 210,
18
 
        y => 297,
19
 
        l => 0,
20
 
        t => 0,
21
 
    },
22
 
    'US Letter' => {
23
 
        x => 216,
24
 
        y => 279,
25
 
        l => 0,
26
 
        t => 0,
27
 
    },
28
 
    'US Legal' => {
29
 
        x => 216,
30
 
        y => 356,
31
 
        l => 0,
32
 
        t => 0,
33
 
    },
34
 
);
35
 
 
36
 
# Create test image
37
 
system('convert -size 210x297 xc:white white.pnm');
38
 
 
39
 
my $slist = Gscan2pdf::Document->new;
40
 
 
41
 
# dir for temporary files
42
 
my $dir = File::Temp->newdir;
43
 
$slist->set_dir($dir);
44
 
$slist->set_paper_sizes( \%paper_sizes );
45
 
 
46
 
$slist->get_file_info(
47
 
    path              => 'white.pnm',
48
 
    finished_callback => sub {
49
 
        my ($info) = @_;
50
 
        $slist->import_file(
51
 
            info              => $info,
52
 
            first             => 1,
53
 
            last              => 1,
54
 
            finished_callback => sub {
55
 
                is( int( abs( $slist->{data}[0][2]{resolution} - 25.4 ) ),
56
 
                    0, 'Resolution of imported image' );
57
 
                $slist->user_defined(
58
 
                    page              => $slist->{data}[0][2],
59
 
                    command           => 'convert %i -negate %o',
60
 
                    finished_callback => sub {
61
 
                        $slist->analyse(
62
 
                            page              => $slist->{data}[0][2],
63
 
                            finished_callback => sub {
64
 
                                is( $slist->{data}[0][2]{mean},
65
 
                                    0, 'User-defined with %i and %o' );
66
 
                                is(
67
 
                                    int(
68
 
                                        abs(
69
 
                                            $slist->{data}[0][2]{resolution} -
70
 
                                              25.4
71
 
                                        )
72
 
                                    ),
73
 
                                    0,
74
 
                                    'Resolution of converted image'
75
 
                                );
76
 
                                is( dirname("$slist->{data}[0][2]{filename}"),
77
 
                                    "$dir", 'using session directory' );
78
 
                                $slist->save_pdf(
79
 
                                    path          => 'test.pdf',
80
 
                                    list_of_pages => [ $slist->{data}[0][2] ],
81
 
                                    finished_callback => sub { Gtk2->main_quit }
82
 
                                );
83
 
                            }
84
 
                        );
85
 
                    }
86
 
                );
87
 
            }
88
 
        );
89
 
    }
90
 
);
91
 
Gtk2->main;
92
 
 
93
 
like( `pdfinfo test.pdf`, qr/A4/, 'PDF is A4' );
94
 
 
95
 
#########################
96
 
 
97
 
unlink 'white.pnm', 'test.pdf', <$dir/*>;
98
 
rmdir $dir;
99
 
Gscan2pdf::Document->quit();