From: <chr...@us...> - 2006-05-15 21:43:48
|
Revision: 863 Author: chromatic Date: 2006-05-15 14:43:37 -0700 (Mon, 15 May 2006) ViewCVS: http://svn.sourceforge.net/everydevel/?rev=863&view=rev Log Message: ----------- r16715@windwheel: chromatic | 2006-05-15 14:43:25 -0700 Ported htmlpage tests to new style. Modified Paths: -------------- trunk/ebase/MANIFEST trunk/ebase/lib/Everything/Node/htmlpage.pm trunk/ebase/t/Node/htmlpage.t Added Paths: ----------- trunk/ebase/lib/Everything/Node/Test/htmlpage.pm Property Changed: ---------------- trunk/ebase/ Property changes on: trunk/ebase ___________________________________________________________________ Name: svk:merge - a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:16712 + a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:16715 Modified: trunk/ebase/MANIFEST =================================================================== --- trunk/ebase/MANIFEST 2006-05-15 21:24:46 UTC (rev 862) +++ trunk/ebase/MANIFEST 2006-05-15 21:43:37 UTC (rev 863) @@ -90,6 +90,7 @@ lib/Everything/Node/Test/dbtable.pm lib/Everything/Node/Test/document.pm lib/Everything/Node/Test/htmlcode.pm +lib/Everything/Node/Test/htmlpage.pm lib/Everything/Node/Test/location.pm lib/Everything/Node/Test/mail.pm lib/Everything/Node/Test/node.pm Added: trunk/ebase/lib/Everything/Node/Test/htmlpage.pm =================================================================== --- trunk/ebase/lib/Everything/Node/Test/htmlpage.pm (rev 0) +++ trunk/ebase/lib/Everything/Node/Test/htmlpage.pm 2006-05-15 21:43:37 UTC (rev 863) @@ -0,0 +1,85 @@ +package Everything::Node::Test::htmlpage; + +use strict; +use warnings; + +use base 'Everything::Node::Test::node'; +use Test::More; + +use SUPER; +*Everything::Node::htmlpage::SUPER = \&UNIVERSAL::SUPER; + +sub test_dbtables +{ + my $self = shift; + my $class = $self->node_class(); + + can_ok( $class, 'dbtables' ); + + my @tables = $class->dbtables(); + is_deeply( \@tables, [qw( htmlpage node )], + 'dbtables() should return node tables' ); +} + +sub test_insert :Test( +5 ) +{ + my $self = shift; + my $node = $self->{node}; + my $db = $self->{mock_db}; + + $node->{parent_container} = 'npc'; + $self->SUPER(); + + $node->{DB} = $db; + delete $node->{parent_container}; + $node->set_true( 'SUPER' ); + $db->set_series( -getNode => undef, 'gnc' ); + + $node->insert( 'user' ); + is( $node->{parent_container}, 0, + 'insert() should set node parent container to 0 without it and a GNC' ); + + $node->insert( 'user' ); + is( $node->{parent_container}, 'gnc', + '... but should set it to GNC if that exists' ); + + $node->{parent_container} = 'npc'; + $node->insert( 'user' ); + is( $node->{parent_container}, 'npc', + '... but should not override an existing parent container' ); + + my ($method, $args) = $node->next_call(); + is( $method, 'SUPER', '... and should call SUPER()' ); + is( $args->[1], 'user', '... passing user' ); + + $node->clear(); +} + +sub test_insert_access :Test( +0 ) +{ + my $self = shift; + my $node = $self->{node}; + + $node->{parent_container} = 'npc'; + $self->SUPER(); +} + +sub test_insert_restrictions :Test( +0 ) +{ + my $self = shift; + my $node = $self->{node}; + + $node->{parent_container} = 'npc'; + $self->SUPER(); +} + +sub test_insert_restrict_dupes :Test( +0 ) +{ + my $self = shift; + my $node = $self->{node}; + + $node->{parent_container} = 'npc'; + $self->SUPER(); +} + +1; Property changes on: trunk/ebase/lib/Everything/Node/Test/htmlpage.pm ___________________________________________________________________ Name: svn:mime-type + text/plain; charset=UTF-8 Name: svn:eol-style + native Modified: trunk/ebase/lib/Everything/Node/htmlpage.pm =================================================================== --- trunk/ebase/lib/Everything/Node/htmlpage.pm 2006-05-15 21:24:46 UTC (rev 862) +++ trunk/ebase/lib/Everything/Node/htmlpage.pm 2006-05-15 21:43:37 UTC (rev 863) @@ -36,14 +36,14 @@ my ( $this, $USER ) = @_; # If there is no parent container set, we need a default - unless ( $$this{parent_container} ) + unless ( $this->{parent_container} ) { my $GNC = - $$this{DB}->getNode( "general nodelet container", "container" ); - $$this{parent_container} = $GNC ? $GNC : 0; + $this->{DB}->getNode( "general nodelet container", "container" ); + $this->{parent_container} = $GNC ? $GNC : 0; } - $this->SUPER(); + $this->SUPER( $USER ); } 1; Modified: trunk/ebase/t/Node/htmlpage.t =================================================================== --- trunk/ebase/t/Node/htmlpage.t 2006-05-15 21:24:46 UTC (rev 862) +++ trunk/ebase/t/Node/htmlpage.t 2006-05-15 21:43:37 UTC (rev 863) @@ -1,52 +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 => 9; - -my $module = 'Everything::Node::htmlpage'; -use_ok( $module ) or exit; -ok( $module->isa( 'Everything::Node::node' ), 'htmlpage should extend node' ); - -can_ok( $module, 'dbtables' ); -my @tables = $module->dbtables(); -is_deeply( \@tables, [qw( htmlpage node )], - 'dbtables() should return node tables' ); - -my $node = FakeNode->new(); - -$node->{_subs}{SUPER} = [ ( 1 .. 5 ) ]; -$node->{parent_container} = 1; - -ok( - Everything::Node::htmlpage::insert( $node, 'user' ), - 'insert() should call SUPER() when finished' -); - -$node->{parent_container} = 0; -$node->{DB} = $node; -$node->{_subs}{getNode} = [ undef, 'general' ]; -$node->{_calls} = []; - -ok( - Everything::Node::htmlpage::insert( $node, 'user2' ), - '... should work without a parent container' -); - -is( - join( ' ', @{ shift @{ $node->{_calls} } } ), - 'getNode general nodelet container container', - '... should look for general nodelet container lacking parent container' -); -is( $node->{parent_container}, 0, '... using 0 as parent if no gnc found' ); - -Everything::Node::htmlpage::insert($node); -is( $node->{parent_container}, 'general', '... using gnc, if found' ); +use Everything::Node::Test::htmlpage; +Everything::Node::Test::htmlpage->runtests(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |