move the test app into the examples directory
[scpubgit/Test-Harness-Selenium.git] / examples / THSelenium-Test / inc / Module / Install / Base.pm
CommitLineData
4e138785 1#line 1
2package Module::Install::Base;
3
4use strict 'vars';
5use vars qw{$VERSION};
6BEGIN {
7 $VERSION = '1.00';
8}
9
10# Suspend handler for "redefined" warnings
11BEGIN {
12 my $w = $SIG{__WARN__};
13 $SIG{__WARN__} = sub { $w };
14}
15
16#line 42
17
18sub new {
19 my $class = shift;
20 unless ( defined &{"${class}::call"} ) {
21 *{"${class}::call"} = sub { shift->_top->call(@_) };
22 }
23 unless ( defined &{"${class}::load"} ) {
24 *{"${class}::load"} = sub { shift->_top->load(@_) };
25 }
26 bless { @_ }, $class;
27}
28
29#line 61
30
31sub AUTOLOAD {
32 local $@;
33 my $func = eval { shift->_top->autoload } or return;
34 goto &$func;
35}
36
37#line 75
38
39sub _top {
40 $_[0]->{_top};
41}
42
43#line 90
44
45sub admin {
46 $_[0]->_top->{admin}
47 or
48 Module::Install::Base::FakeAdmin->new;
49}
50
51#line 106
52
53sub is_admin {
54 ! $_[0]->admin->isa('Module::Install::Base::FakeAdmin');
55}
56
57sub DESTROY {}
58
59package Module::Install::Base::FakeAdmin;
60
61use vars qw{$VERSION};
62BEGIN {
63 $VERSION = $Module::Install::Base::VERSION;
64}
65
66my $fake;
67
68sub new {
69 $fake ||= bless(\@_, $_[0]);
70}
71
72sub AUTOLOAD {}
73
74sub DESTROY {}
75
76# Restore warning handler
77BEGIN {
78 $SIG{__WARN__} = $SIG{__WARN__}->();
79}
80
811;
82
83#line 159