diff options
Diffstat (limited to 'tests/FTPTest.pm')
-rw-r--r-- | tests/FTPTest.pm | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/FTPTest.pm b/tests/FTPTest.pm new file mode 100644 index 0000000..0a1c768 --- /dev/null +++ b/tests/FTPTest.pm @@ -0,0 +1,62 @@ +package FTPTest; + +use strict; +use warnings; + +use FTPServer; +use WgetTests; + +our @ISA = qw(WgetTest); +my $VERSION = 0.01; + +{ + my %_attr_data = ( # DEFAULT + ); + + sub _default_for + { + my ($self, $attr) = @_; + return $_attr_data{$attr} if exists $_attr_data{$attr}; + return $self->SUPER::_default_for($attr); + } + + sub _standard_keys + { + my ($self) = @_; + ($self->SUPER::_standard_keys(), keys %_attr_data); + } +} + +sub _setup_server +{ + my $self = shift; + + $self->{_server} = FTPServer->new( + input => $self->{_input}, + server_behavior => $self->{_server_behavior}, + LocalAddr => 'localhost', + ReuseAddr => 1, + rootDir => "$self->{_workdir}/$self->{_name}/input" + ) + or die "Cannot create server!!!"; +} + +sub _launch_server +{ + my $self = shift; + my $synch_func = shift; + + $self->{_server}->run($synch_func); +} + +sub _substitute_port +{ + my $self = shift; + my $ret = shift; + $ret =~ s/\Q{{port}}/$self->{_server}->sockport/eg; + return $ret; +} + +1; + +# vim: et ts=4 sw=4 |