From: <pau...@us...> - 2006-12-11 09:40:35
|
Revision: 927 http://svn.sourceforge.net/everydevel/?rev=927&view=rev Author: paul_the_nomad Date: 2006-12-11 01:40:32 -0800 (Mon, 11 Dec 2006) Log Message: ----------- Moving globals in Everything to export on request only. Consequent modifications in packages and tests as follows: Everything::CacheQueue Remove use Everything - doesn't actually use Everything.pm lib/Everything/Node/nodeball.pm Remove 'use Everything' - doesn't actually use Everything.pm lib/Everything/Node/user.pm Remove 'use Everything' - doesn't use Everything; lib/Everything/Node/node.pm Added test code lib/Everything/Node/nodegroup.pm 'use Everything' removed. nodegroup.pm does not use anythng from Everything.pm lib/Everything/Nodeball.pm Added explicit ':all'. There are no tests for this module which is used only by nbmasta. No tests for nbmasta either. lib/Everything/Mail.pm Add test code and explicit import lib/Everything/Auth/GuestOnly.pm Removed 'use Everything'. Doesn't use everything lib/Everything/HTML/FormObject.pm lib/Everything/HTML/FormObject/PasswdField.pm lib/Everything/HTML/FormObject/SubsetSelector.pm lib/Everything/HTML/FormObject/TypeMenu.pm lib/Everything/HTML/FormObject/RadioGroup.pm lib/Everything/HTML/FormObject/NodetypeMenu.pm lib/Everything/HTML/FormObject/TextArea.pm lib/Everything/HTML/FormObject/RemoveVarCheckbox.pm lib/Everything/HTML/FormObject/PermissionMenu.pm lib/Everything/HTML/FormObject/VarsTextField.pm lib/Everything/HTML/FormObject/Checkbox.pm lib/Everything/HTML/FormObject/AuthorMenu.pm lib/Everything/HTML/FormObject/TextField.pm lib/Everything/HTML/FormObject/PopupMenu.pm lib/Everything/HTML/FormObject/FormMenu.pm lib/Everything/HTML/FormObject/Datetime.pm lib/Everything/HTML/FormObject/HiddenField.pm lib/Everything/HTML/FormObject/ListMenu.pm lib/Everything/HTML/FormObject/GroupEditor.pm To all the above classes added explicit import of $DB and getParamArray. Also tests added. lib/Everything/XML.pm Added test code and explicit 'getNode' Modified Paths: -------------- trunk/ebase/lib/Everything/Auth/GuestOnly.pm trunk/ebase/lib/Everything/Auth.pm trunk/ebase/lib/Everything/CacheQueue.pm trunk/ebase/lib/Everything/HTML/FormObject/AuthorMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/Checkbox.pm trunk/ebase/lib/Everything/HTML/FormObject/Datetime.pm trunk/ebase/lib/Everything/HTML/FormObject/FormMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/GroupEditor.pm trunk/ebase/lib/Everything/HTML/FormObject/HiddenField.pm trunk/ebase/lib/Everything/HTML/FormObject/ListMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/NodetypeMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/PasswdField.pm trunk/ebase/lib/Everything/HTML/FormObject/PermissionMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/PopupMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/RadioGroup.pm trunk/ebase/lib/Everything/HTML/FormObject/RemoveVarCheckbox.pm trunk/ebase/lib/Everything/HTML/FormObject/SubsetSelector.pm trunk/ebase/lib/Everything/HTML/FormObject/TextArea.pm trunk/ebase/lib/Everything/HTML/FormObject/TextField.pm trunk/ebase/lib/Everything/HTML/FormObject/TypeMenu.pm trunk/ebase/lib/Everything/HTML/FormObject/VarsTextField.pm trunk/ebase/lib/Everything/HTML/FormObject.pm trunk/ebase/lib/Everything/HTML/Test/FormObject.pm trunk/ebase/lib/Everything/HTML.pm trunk/ebase/lib/Everything/Mail.pm trunk/ebase/lib/Everything/Node/Test/extendednode.pm trunk/ebase/lib/Everything/Node/Test/node.pm trunk/ebase/lib/Everything/Node/Test/nodeball.pm trunk/ebase/lib/Everything/Node/Test/nodegroup.pm trunk/ebase/lib/Everything/Node/Test/setting.pm trunk/ebase/lib/Everything/Node/node.pm trunk/ebase/lib/Everything/Node/nodeball.pm trunk/ebase/lib/Everything/Node/nodegroup.pm trunk/ebase/lib/Everything/Node/user.pm trunk/ebase/lib/Everything/Nodeball.pm trunk/ebase/lib/Everything/Test/Auth.pm trunk/ebase/lib/Everything/Test/CacheQueue.pm trunk/ebase/lib/Everything/Test/Mail.pm trunk/ebase/lib/Everything/Test/XML.pm trunk/ebase/lib/Everything/XML.pm trunk/ebase/lib/Everything.pm trunk/ebase/t/HTML.t Modified: trunk/ebase/lib/Everything/Auth/GuestOnly.pm =================================================================== --- trunk/ebase/lib/Everything/Auth/GuestOnly.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Auth/GuestOnly.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,6 @@ ############################################################################# use strict; -use Everything; sub new { Modified: trunk/ebase/lib/Everything/Auth.pm =================================================================== --- trunk/ebase/lib/Everything/Auth.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Auth.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -19,7 +19,7 @@ package Everything::Auth; use strict; -use Everything; +use Everything qw/$DB/; =cut Modified: trunk/ebase/lib/Everything/CacheQueue.pm =================================================================== --- trunk/ebase/lib/Everything/CacheQueue.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/CacheQueue.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -14,7 +14,6 @@ package Everything::CacheQueue; use strict; -use Everything; =cut Modified: trunk/ebase/lib/Everything/HTML/FormObject/AuthorMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/AuthorMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/AuthorMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::AuthorMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/Checkbox.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/Checkbox.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/Checkbox.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::Checkbox; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/Datetime.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/Datetime.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/Datetime.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::Datetime; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/FormMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/FormMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/FormMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -22,7 +22,7 @@ package Everything::HTML::FormObject::FormMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/GroupEditor.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/GroupEditor.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/GroupEditor.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::GroupEditor; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/HiddenField.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/HiddenField.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/HiddenField.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::HiddenField; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/ListMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/ListMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/ListMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::ListMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/NodetypeMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/NodetypeMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/NodetypeMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::NodetypeMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::TypeMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/PasswdField.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/PasswdField.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/PasswdField.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,8 +10,8 @@ package Everything::HTML::FormObject::PasswdField; use strict; -use Everything; +use Everything qw/getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); @ISA = ("Everything::HTML::FormObject"); Modified: trunk/ebase/lib/Everything/HTML/FormObject/PermissionMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/PermissionMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/PermissionMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::PermissionMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/PopupMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/PopupMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/PopupMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::PopupMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/RadioGroup.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/RadioGroup.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/RadioGroup.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::RadioGroup; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/RemoveVarCheckbox.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/RemoveVarCheckbox.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/RemoveVarCheckbox.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::RemoveVarCheckbox; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::Checkbox; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/SubsetSelector.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/SubsetSelector.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/SubsetSelector.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::SubsetSelector; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/TextArea.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/TextArea.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/TextArea.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::TextArea; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/TextField.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/TextField.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/TextField.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::TextField; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/TypeMenu.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/TypeMenu.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/TypeMenu.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::TypeMenu; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject/VarsTextField.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject/VarsTextField.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject/VarsTextField.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject::VarsTextField; use strict; -use Everything; +use Everything qw/$DB getParamArray/; use Everything::HTML::FormObject::FormMenu; use vars qw(@ISA); Modified: trunk/ebase/lib/Everything/HTML/FormObject.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/FormObject.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/FormObject.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::HTML::FormObject; use strict; -use Everything; +use Everything qw/$DB getParamArray/; =cut Modified: trunk/ebase/lib/Everything/HTML/Test/FormObject.pm =================================================================== --- trunk/ebase/lib/Everything/HTML/Test/FormObject.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML/Test/FormObject.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -11,27 +11,59 @@ use strict; use warnings; -sub startup : Test(startup => +0) { +sub startup : Test(startup => 1) { my $self = shift; # Unfortunately this imports stuff from Everything.pm. my $mock = Test::MockObject->new; $self->{mock} = $mock; - $self->setup_globals; - $self->setup_mocks; my $module = $self->module_class(); - use_ok($module) or exit; $self->{class} = $module; + $self->setup_mocks; + $self->setup_globals; + + use_ok($module); +} +sub test_imports :Test(startup => 1) { + + my $self = shift; + is_deeply( + $self->{import}->{Everything}, + { '$DB' => 1, 'getParamArray' => 1}, + '...imports $DB and getParamArray from Everything' + ); + } sub setup_mocks { my $self = shift; - $self->{mock}->fake_module('Everything'); + my $mock = Test::MockObject->new; + # test imports + my %import; + my $mockimport = sub { + + # this little stanza is required to test the imports of + # sublasses to FormObject.pm. Otherwise we keep rechecking the + # imports only of FormObject + my $caller = caller(); + $caller =~ s{/}{::}g; + $caller =~ s{\.pm$}{}; + return unless $caller eq $self->{class}; + + $import{ +shift } = { map { $_ => 1 } @_[ 1 .. $#_ ] }; + + }; + + for my $mod ( 'Everything' ) { + $mock->fake_module( $mod, import => $mockimport ); + } + $self->{import} = \%import; } + sub setup_globals { my $self = shift; no strict 'refs'; Modified: trunk/ebase/lib/Everything/HTML.pm =================================================================== --- trunk/ebase/lib/Everything/HTML.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/HTML.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -11,7 +11,7 @@ package Everything::HTML; use strict; -use Everything; +use Everything ':all'; use Everything::Mail qw/node2mail mail2node/; use Everything::Auth; use CGI; Modified: trunk/ebase/lib/Everything/Mail.pm =================================================================== --- trunk/ebase/lib/Everything/Mail.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Mail.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -6,7 +6,7 @@ package Everything::Mail; use strict; -use Everything; +use Everything qw/getNode/; use IO::File; use Mail::Sender; use Mail::Address; Modified: trunk/ebase/lib/Everything/Node/Test/extendednode.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/extendednode.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/Test/extendednode.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -36,6 +36,10 @@ } +sub test_imports :Test(startup => 0) { + return "Doesn't import symbols"; +} + sub make_fixture :Test(setup => 6) { my $self = shift; Modified: trunk/ebase/lib/Everything/Node/Test/node.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/node.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/Test/node.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -18,46 +18,69 @@ use Everything::NodeBase; use Everything::DB::sqlite; -sub node_class -{ - my $self = shift; - my $name = blessed( $self ); - $name =~ s/Test:://; - return $name; +sub node_class { + my $self = shift; + my $name = blessed($self); + $name =~ s/Test:://; + return $name; } -sub startup :Test( startup => 3 ) -{ - my $self = shift; - $self->{errors} = []; +sub startup : Test( startup => 3 ) { + my $self = shift; + $self->{errors} = []; - $self->make_base_test_db(); + $self->make_base_test_db(); - my $mock = Test::MockObject->new(); - $mock->fake_module( 'Everything', logErrors => sub - { - push @{ $self->{errors} }, [@_] - } - ); - *Everything::Node::node::DB = \$mock; + my $mock = Test::MockObject->new(); + $mock->fake_module( + 'Everything', + logErrors => sub { + push @{ $self->{errors} }, [@_]; + } + ); + *Everything::Node::node::DB = \$mock; - my $module = $self->node_class(); - my %import; + my $module = $self->node_class(); + my %import; - my $mockimport = sub { $import{ +shift }++ }; + my $mockimport = sub { + $import{ +shift } = { map { $_ => 1 } @_[ 1 .. $#_ ] }; + }; - for my $mod (qw( DBI Everything Everything::XML)) - { - $mock->fake_module( $mod, import => $mockimport ); - } + for my $mod ( $self->setup_imports ) { + $mock->fake_module( $mod, import => $mockimport ); + } - use_ok( $module ) or exit; + use_ok($module) or exit; - # now test that C<new()> works - can_ok( $module, 'new' ); - isa_ok( $module->new(), $module ); + $self->{imports} = \%import; + + # now test that C<new()> works + can_ok( $module, 'new' ); + isa_ok( $module->new(), $module ); } +sub setup_imports { + + return qw( DBI Everything Everything::XML); +} + +sub test_imports :Test(startup => 2) { + my ( $self) = @_; + my $imports = $self->{imports}; + is_deeply( + $$imports{Everything}, + { '$DB' => 1}, + '...imports $DB from Everything' + ); + is_deeply( + $$imports{'Everything::XML'}, + { xml2node => 1, genBasicTag => 1, parseBasicTag => 1 }, + '...imports xml2node, genBasicTag, parseBasicTag from Everything::XML' + ); + +} + sub make_base_test_db { my $self = shift; Modified: trunk/ebase/lib/Everything/Node/Test/nodeball.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/nodeball.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/Test/nodeball.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -7,6 +7,16 @@ use Test::More; + +sub setup_imports { + + return (); +} + +sub test_imports :Test(startup => 0) { + return "Doesn't import symbols"; +} + sub test_dbtables :Test( 2 ) { my $self = shift; Modified: trunk/ebase/lib/Everything/Node/Test/nodegroup.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/nodegroup.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/Test/nodegroup.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -7,6 +7,25 @@ use Test::More; + +sub setup_imports { + + return qw( Everything::XML); +} + +sub test_imports :Test(startup => 1) { + my ( $self) = @_; + my $imports = $self->{imports}; + + is_deeply( + $$imports{'Everything::XML'}, + { genBasicTag => 1 }, + '...imports genBasicTag from Everything::XML' + ); + +} + + sub test_construct :Test( 1 ) { my $self = shift; Modified: trunk/ebase/lib/Everything/Node/Test/setting.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/setting.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/Test/setting.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -7,6 +7,23 @@ use Test::More; + +sub setup_imports { + + return ('Everything::XML'); +} + +sub test_imports :Test(startup => 1) { + my ( $self) = @_; + my $imports = $self->{imports}; + is_deeply( + $$imports{'Everything::XML'}, + { genBasicTag => 1, parseBasicTag => 1}, + '...imports genBasicTag and parseBasicTag from Everything::XML' + ); +} + + sub test_extends :Test( +1 ) { my $self = shift; Modified: trunk/ebase/lib/Everything/Node/node.pm =================================================================== --- trunk/ebase/lib/Everything/Node/node.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/node.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -14,8 +14,8 @@ use base 'Everything::Node'; use DBI; -use Everything; -use Everything::XML (qw/xml2node genBasicTag parseBasicTag/); +use Everything qw/$DB/; +use Everything::XML qw/xml2node genBasicTag parseBasicTag/; use Everything::NodeBase; use Scalar::Util 'reftype'; Modified: trunk/ebase/lib/Everything/Node/nodeball.pm =================================================================== --- trunk/ebase/lib/Everything/Node/nodeball.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/nodeball.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -13,7 +13,6 @@ use base 'Everything::Node::nodegroup'; -use Everything; use Everything::Node::setting; =head2 C<dbtables()> Modified: trunk/ebase/lib/Everything/Node/nodegroup.pm =================================================================== --- trunk/ebase/lib/Everything/Node/nodegroup.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/nodegroup.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -13,7 +13,6 @@ use base 'Everything::Node::node'; -use Everything; use Everything::XML (qw/genBasicTag/); use XML::DOM; Modified: trunk/ebase/lib/Everything/Node/user.pm =================================================================== --- trunk/ebase/lib/Everything/Node/user.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Node/user.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -11,7 +11,6 @@ use strict; use warnings; -use Everything; use base 'Everything::Node::setting'; =head2 C<dbtables()> Modified: trunk/ebase/lib/Everything/Nodeball.pm =================================================================== --- trunk/ebase/lib/Everything/Nodeball.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Nodeball.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -8,8 +8,8 @@ package Everything::Nodeball; use strict; -use Everything; -use Everything::XML (qw/xmlfile2node fixNodes/); +use Everything qw/:all/; +use Everything::XML qw/xmlfile2node fixNodes/; our %OPTIONS; Modified: trunk/ebase/lib/Everything/Test/Auth.pm =================================================================== --- trunk/ebase/lib/Everything/Test/Auth.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Test/Auth.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -9,14 +9,26 @@ use SUPER; use strict; -sub startup : Test( startup => +5 ) { +sub startup : Test( startup => +6 ) { my $self = shift; - $self->SUPER; - can_ok( $self->{class}, 'new' ); my $db = Test::MockObject->new(); local *Everything::Auth::DB; + my @imports; *Everything::Auth::DB = \$db; + + $db->fake_module( + 'Everything', + import => sub { + @imports = @_; + *Everything::Auth::DB = \$db; + } + ); + + $self->SUPER; + is( $imports[1], '$DB', '...should import $DB from Everything.pm' ); + can_ok( $self->{class}, 'new' ); + $db->set_always( getNode => { node_id => 88 } ); $self->{db} = $db; my $instance = $self->{class}->new(); Modified: trunk/ebase/lib/Everything/Test/CacheQueue.pm =================================================================== --- trunk/ebase/lib/Everything/Test/CacheQueue.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Test/CacheQueue.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -6,12 +6,11 @@ use strict; use warnings; -sub startup : Test(startup => +1) { +sub startup : Test(startup => +0) { my $self = shift; my $mock = Test::MockObject->new; my $import; - $mock->fake_module( 'Everything', import => sub { $import = caller } ); $self->SUPER; my $class = $self->{class}; @@ -23,9 +22,6 @@ require $file; $class->import; - is( $import, 'Everything::CacheQueue', - 'Everything::CacheQueue should use() Everything' ); - } sub setup : Test(setup) { Modified: trunk/ebase/lib/Everything/Test/Mail.pm =================================================================== --- trunk/ebase/lib/Everything/Test/Mail.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Test/Mail.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ use strict; use warnings; -sub startup : Test(startup => +0) { +sub startup : Test(startup => +1) { my $self = shift; # We'll need a few MockObjects here @@ -78,6 +78,17 @@ } ); + # test imports + my %import; + + my $mockimport = sub { + $import{ +shift } = { map { $_ => 1 } @_[ 1 .. $#_ ] }; + }; + + for my $mod ('Everything') { + $mock->fake_module( $mod, import => $mockimport ); + } + # We want to test whether or not someone closes this object # like they should. This just trips a flag for it. @@ -93,6 +104,11 @@ $self->{SETTINGS} = $SETTINGS; $self->SUPER; + is_deeply( + $import{Everything}, + { 'getNode' => 1 }, + '...imports getNode from Everything' + ); } sub test_node2mail : Test(29) { Modified: trunk/ebase/lib/Everything/Test/XML.pm =================================================================== --- trunk/ebase/lib/Everything/Test/XML.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/Test/XML.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -7,7 +7,7 @@ use base 'Everything::Test::Abstract'; -sub startup : Test(startup => +0) { +sub startup : Test(startup => +1) { my $self = shift; my $mock = Test::MockObject->new; @@ -16,9 +16,25 @@ logErrors => sub { push @{ $self->{le} }, [@_] } ); $mock->fake_module('XML::DOM'); + # test imports + my %import; + + my $mockimport = sub { + $import{ +shift } = { map { $_ => 1 } @_[ 1 .. $#_ ] }; + }; + + for my $mod ( 'Everything' ) { + $mock->fake_module( $mod, import => $mockimport ); + } $self->SUPER; + $self->{mock} = $mock; + is_deeply( + $import{Everything}, + { 'getNode' => 1}, + '...imports getNode from Everything' + ); } sub test_readtag : Test(1) { Modified: trunk/ebase/lib/Everything/XML.pm =================================================================== --- trunk/ebase/lib/Everything/XML.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything/XML.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -10,7 +10,7 @@ package Everything::XML; use strict; -use Everything; +use Everything qw/getNode/; use XML::DOM; Modified: trunk/ebase/lib/Everything.pm =================================================================== --- trunk/ebase/lib/Everything.pm 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/lib/Everything.pm 2006-12-11 09:40:32 UTC (rev 927) @@ -36,12 +36,9 @@ # Are we being run from the command line? use vars qw($commandLine); -sub BEGIN -{ - use Exporter (); - use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); - @ISA = qw(Exporter); - @EXPORT = qw( +use base 'Exporter'; + +our @EXPORT_OK = qw( $DB getParamArray getRef @@ -74,10 +71,11 @@ @bsErrors ); +our %EXPORT_TAGS = ( all => \@EXPORT_OK ); + # This will be true if we are being run from a command line, in which # case all errors should be printed to STDOUT $commandLine = ( -t STDIN && -t STDOUT ) ? 1 : 0; -} ############################################################################# # Modified: trunk/ebase/t/HTML.t =================================================================== --- trunk/ebase/t/HTML.t 2006-12-10 13:42:14 UTC (rev 926) +++ trunk/ebase/t/HTML.t 2006-12-11 09:40:32 UTC (rev 927) @@ -16,6 +16,7 @@ use File::Path; use Test::More tests => 96; use Test::MockObject; +require Everything; # temporarily avoid sub redefined warnings my $mock = Test::MockObject->new(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |