File Coverage

blib/lib/HTTP/WebTest/Plugin/Loader.pm
Criterion Covered Total %
statement 20 20 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 1 2 50.0
total 28 29 96.5


line stmt bran cond sub pod time code
1             # $Id: Loader.pm,v 1.7 2003/03/02 11:52:09 m_ilya Exp $
2              
3             package HTTP::WebTest::Plugin::Loader;
4              
5             =head1 NAME
6              
7             HTTP::WebTest::Plugin::Loader - Loads external plugins
8              
9             =head1 SYNOPSIS
10              
11             Not Applicable
12              
13             =head1 DESCRIPTION
14              
15             This plugin lets you to load external L
16             plugins.
17              
18             =cut
19              
20 10     10   66 use strict;
  10         24  
  10         498  
21              
22 10     10   70 use base qw(HTTP::WebTest::Plugin);
  10         16  
  10         2422  
23              
24 10     10   69 use HTTP::WebTest::Utils qw(load_package);
  10         20  
  10         3261  
25              
26             =head1 TEST PARAMETERS
27              
28             =for pod_merge copy params
29              
30             =head2 plugins
31              
32             I
33              
34             A list of module names. Loads these modules and registers them as
35             L plugins. If the name of the plugin starts with
36             C<::>, it is prepended with C. So
37              
38             plugins = ( ::Click )
39              
40             is equal to
41              
42             plugins = ( HTTP::WebTest::Plugin::Click )
43              
44             =cut
45              
46             sub param_types {
47 82     82 1 1110 return q(plugins list);
48             }
49              
50             sub start_tests {
51 82     82 0 251 my $self = shift;
52              
53 82         550 $self->global_validate_params(qw(plugins));
54              
55 82         330 my $plugins = $self->global_test_param('plugins');
56              
57 82         435 for my $plugin (@$plugins) {
58 27         51 my $name = $plugin;
59              
60 27 100       729526 if($name =~ /^::/) {
61 22         66 $name = 'HTTP::WebTest::Plugin' . $name;
62             }
63              
64 27         124 load_package($name);
65              
66 27         61 push @{$self->webtest->plugins}, $name->new($self->webtest);
  27         105  
67             }
68             }
69              
70             =head1 COPYRIGHT
71              
72             Copyright (c) 2001-2003 Ilya Martynov. All rights reserved.
73              
74             This program is free software; you can redistribute it and/or modify
75             it under the same terms as Perl itself.
76              
77             =head1 SEE ALSO
78              
79             L
80              
81             L
82              
83             L
84              
85             L
86              
87             =cut
88              
89             1;