From: <chr...@us...> - 2006-05-12 22:40:38
|
Revision: 859 Author: chromatic Date: 2006-05-12 15:40:28 -0700 (Fri, 12 May 2006) ViewCVS: http://svn.sourceforge.net/everydevel/?rev=859&view=rev Log Message: ----------- r16662@windwheel: chromatic | 2006-05-12 15:40:18 -0700 Ported nodelet tests to new system. Modified Paths: -------------- trunk/ebase/MANIFEST trunk/ebase/lib/Everything/Node/nodelet.pm trunk/ebase/t/Node/nodelet.t Added Paths: ----------- trunk/ebase/lib/Everything/Node/Test/nodelet.pm Property Changed: ---------------- trunk/ebase/ Property changes on: trunk/ebase ___________________________________________________________________ Name: svk:merge - a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:16660 + a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:16662 Modified: trunk/ebase/MANIFEST =================================================================== --- trunk/ebase/MANIFEST 2006-05-12 22:14:57 UTC (rev 858) +++ trunk/ebase/MANIFEST 2006-05-12 22:40:28 UTC (rev 859) @@ -91,6 +91,7 @@ lib/Everything/Node/Test/htmlcode.pm lib/Everything/Node/Test/location.pm lib/Everything/Node/Test/node.pm +lib/Everything/Node/Test/nodelet.pm lib/Everything/Node/Test/nodeball.pm lib/Everything/Node/Test/nodegroup.pm lib/Everything/Node/Test/nodetype.pm Added: trunk/ebase/lib/Everything/Node/Test/nodelet.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/nodelet.pm (rev 0) +++ trunk/ebase/lib/Everything/Node/Test/nodelet.pm 2006-05-12 22:40:28 UTC (rev 859) @@ -0,0 +1,87 @@ +package Everything::Node::Test::nodelet; + +use strict; +use warnings; + +use base 'Everything::Node::Test::node'; + +use SUPER; +use Test::More; + +*Everything::Node::nodelet::SUPER = \&UNIVERSAL::SUPER; + +sub test_dbtables :Test( 2 ) +{ + my $self = shift; + my $module = $self->node_class(); + can_ok( $module, 'dbtables' ); + my @tables = $module->dbtables(); + is_deeply( \@tables, [qw( nodelet node )], + 'dbtables() should return node tables' ); +} + +sub test_insert :Test( 4 ) +{ + my $self = shift; + my $node = $self->{node}; + my $db = $self->{mock_db}; + + $node->set_always( SUPER => 'super' ); + $db->set_series( getNode => { node_id => 1 }, undef ); + $node->{parent_container} = 8; + + is( $node->insert( 'user' ), 'super', + 'insert() should return result of SUPER() call' ); + + my ($method, $args) = $node->next_call(); + is( $args->[1], 'user', '... passing the user' ); + + is( $node->{parent_container}, 1, + '... setting node parent_container to GNC id if it exists' ); + + $node->insert( 'user' ); + is( $node->{parent_container}, 0, '... and to 0 if not' ); +} + +sub test_insert_access :Test( +0 ) +{ + my $self = shift; + my $db = $self->{mock_db}; + $db->set_false( -getNode ); + $self->SUPER(); +} + +sub test_insert_restrict_dupes :Test( +0 ) +{ + my $self = shift; + my $db = $self->{mock_db}; + $db->set_false( -getNode ); + $self->SUPER(); +} + +sub test_insert_restrictions :Test( +0 ) +{ + my $self = shift; + my $db = $self->{mock_db}; + $db->set_false( -getNode ); + $self->SUPER(); +} + +sub test_get_node_keys :Test( +2 ) +{ + my $self = shift; + my $node = $self->{node}; + + $self->SUPER(); + + $node->set_always( SUPER => { node_id => 10, nltext => 'nltext' } ); + + my $result = $node->getNodeKeys( 0 ); + is( $result->{nltext}, 'nltext', + 'getNodeKeys() should not remove nltext unlesss exporting' ); + + $result = $node->getNodeKeys( 1 ); + is( $result->{nltext}, undef, '... but should really remove it then' ); +} + +1; Property changes on: trunk/ebase/lib/Everything/Node/Test/nodelet.pm ___________________________________________________________________ Name: svn:mime-type + text/plain; charset=UTF-8 Name: svn:eol-style + native Modified: trunk/ebase/lib/Everything/Node/nodelet.pm =================================================================== --- trunk/ebase/lib/Everything/Node/nodelet.pm 2006-05-12 22:14:57 UTC (rev 858) +++ trunk/ebase/lib/Everything/Node/nodelet.pm 2006-05-12 22:40:28 UTC (rev 859) @@ -35,20 +35,12 @@ { my ( $this, $USER ) = @_; - my $GNC = $$this{DB}->getNode( "general nodelet container", "container" ); + my $GNC = $this->{DB}->getNode( "general nodelet container", "container" ); # If this gets set to something inappropriate, we can have some # infinite container loops. - if ($GNC) - { - $$this{parent_container} = $$GNC{node_id}; - } - else - { - $$this{parent_container} = 0; - } - - $this->SUPER(); + $this->{parent_container} = $GNC ? $GNC->{node_id} : 0; + $this->SUPER( $USER ); } =head2 C<getNodeKeys> @@ -61,13 +53,10 @@ sub getNodeKeys { my ( $this, $forExport ) = @_; + my $keys = $this->SUPER($forExport); + delete $keys->{nltext} if $forExport; - if ($forExport) - { - delete $$keys{nltext}; - } - return $keys; } Modified: trunk/ebase/t/Node/nodelet.t =================================================================== --- trunk/ebase/t/Node/nodelet.t 2006-05-12 22:14:57 UTC (rev 858) +++ trunk/ebase/t/Node/nodelet.t 2006-05-12 22:40:28 UTC (rev 859) @@ -1,43 +1,4 @@ -#!/usr/bin/perl +#! perl -use strict; -use warnings; - -BEGIN -{ - chdir 't' if -d 't'; - use lib 'lib'; -} - -use FakeNode; -use Test::More tests => 8; - -my $module = 'Everything::Node::nodelet'; -use_ok( $module ) or exit; - -ok( $module->isa( 'Everything::Node::node' ), 'nodelet should extend node' ); - -can_ok( $module, 'dbtables' ); -my @tables = $module->dbtables(); -is_deeply( \@tables, [qw( nodelet node )], - 'dbtables() should return node tables' ); - -my $node = FakeNode->new(); -$node->{_subs} = { - SUPER => [ ( 1 .. 5 ) ], - getNode => [ { node_id => 1 }, undef ], -}; -$node->{DB} = $node; -$node->{parent_container} = 8; - -is( Everything::Node::nodelet::insert($node), - 1, 'insert() should call SUPER() at end' ); -is( - join( ' ', @{ shift @{ $node->{_calls} } } ), - 'getNode general nodelet container container', - '... should get general nodelet container, if possible' -); -is( $node->{parent_container}, 1, '... setting parent_container to gnc if so' ); - -Everything::Node::nodelet::insert($node); -is( $node->{parent_container}, 0, '... and to 0 if not' ); +use Everything::Node::Test::nodelet; +Everything::Node::Test::nodelet->runtests(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |