]> sjero.net Git - wget/blob - tests/Test.pm
[svn] New OO Architecture for Wget Test Suite
[wget] / tests / Test.pm
1 #!/usr/bin/perl -w
2
3 package Test;
4 $VERSION = 0.01;
5
6 use strict;
7
8
9 {
10     my %_attr_data = ( # DEFAULT
11     );
12     
13         sub _default_for
14         {
15                 my ($self, $attr) = @_;
16                 $_attr_data{$attr};
17         }
18
19         sub _standard_keys 
20         {
21                 keys %_attr_data;
22         }
23 }
24
25 sub new {
26     my ($caller, %args) = @_;
27     my $caller_is_obj = ref($caller);
28     my $class = $caller_is_obj || $caller;
29     my $self = bless {}, $class;
30     foreach my $attrname ($self->_standard_keys()) {
31         my ($argname) = ($attrname =~ /^_(.*)/);
32         if (exists $args{$argname}) {
33             #printf STDERR "Setting up $attrname\n";
34             $self->{$attrname} = $args{$argname};
35         } elsif ($caller_is_obj) {
36             #printf STDERR "Copying $attrname\n";
37             $self->{$attrname} = $caller->{$argname};
38         } else {
39             #printf STDERR "Using default for $attrname\n";
40             $self->{$attrname} = $self->_default_for($argname);
41         }
42     }
43     return $self;
44 }
45
46 1;
47
48 # vim: et ts=4 sw=4
49