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