]> sjero.net Git - wget/blob - tests/FTPTest.pm
Updated config.guess, config.sub, install.sh.
[wget] / tests / FTPTest.pm
1 package FTPTest;
2
3 use strict;
4 use warnings;
5
6 use FTPServer;
7 use WgetTest;
8
9 our @ISA = qw(WgetTest);
10 my $VERSION = 0.01;
11
12
13 {
14     my %_attr_data = ( # DEFAULT
15     );
16
17     sub _default_for
18     {
19         my ($self, $attr) = @_;
20         return $_attr_data{$attr} if exists $_attr_data{$attr};
21         return $self->SUPER::_default_for($attr);
22     }
23
24     sub _standard_keys 
25     {
26         my ($self) = @_;
27         ($self->SUPER::_standard_keys(), keys %_attr_data);
28     }
29 }
30
31
32 sub _setup_server {
33     my $self = shift;
34
35     foreach my $url (keys %{$self->{_input}}) {
36         my $filename = $url;
37         $filename =~ s/^\///;
38         open (FILE, ">$filename")
39             or return "Test failed: cannot open input file $filename\n";
40
41         print FILE $self->{_input}->{$url}->{content}
42             or return "Test failed: cannot write input file $filename\n";
43
44         close (FILE);
45     }
46
47     $self->{_server} = FTPServer->new (LocalAddr => 'localhost',
48                                        ReuseAddr => 1,
49                                        rootDir => "$self->{_workdir}/$self->{_name}/input") or die "Cannot create server!!!";
50 }
51
52
53 sub _launch_server {
54     my $self = shift;
55     my $synch_func = shift;
56     $self->{_server}->run ($synch_func);
57 }
58
59 sub _substitute_port {
60     my $self = shift;
61     my $ret = shift;
62     $ret =~ s/{{port}}/$self->{_server}->sockport/eg;
63     return $ret;
64 }
65
66 1;
67
68 # vim: et ts=4 sw=4
69