X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=t%2Fmaypole.t;h=19418396367bc8ca3c18360b5192eefeed5e977f;hb=55f97a4ef2080f9fa90d5a85b703f23df76aa815;hp=f376697bddd0acc032b12a8f4bcdf69d1e20ec6f;hpb=436e67e2ddca8e590809acea95dd4d47b4726da6;p=maypole.git diff --git a/t/maypole.t b/t/maypole.t index f376697..1941839 100755 --- a/t/maypole.t +++ b/t/maypole.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use strict; use warnings; -use Test::More tests => 73; +use Test::More tests => 74; use Test::MockModule; # module compilation @@ -26,14 +26,17 @@ my $ERROR = Maypole::Constants::ERROR(); my @API = qw/ config init_done view_object params query objects model_class template_args output path args action template error document_encoding content_type table headers_in headers_out - is_applicable setup init handler handler_guts + is_model_applicable setup init handler handler_guts call_authenticate call_exception additional_data - authenticate exception parse_path get_template_root get_request + authenticate exception parse_path make_path + make_uri get_template_root get_request parse_location send_output /; can_ok(Maypole => @API); +ok( ! UNIVERSAL::can(Maypole => 'is_applicable'), 'no is_applicable() method' ); + ok(Maypole->config->isa('Maypole::Config'), 'config is a Maypole::Config object'); ok(! Maypole->init_done, '... which is false by default'); is(Maypole->view_object, undef, '... which is undefined'); @@ -183,7 +186,9 @@ my ($r, $req); # request objects my $mock_table = new Test::MockModule($table_class, no_auto => 1); $mock_driver->mock( - is_applicable => sub {push @{$called{applicable}},\@_; $applicable}, + #is_applicable => sub {push @{$called{applicable}},\@_; $applicable}, + is_model_applicable => + sub {push @{$called{applicable}},\@_; $applicable}, get_request => sub {($r, $req) = @_}, additional_data => sub {$called{additional_data}++}, ); @@ -202,7 +207,7 @@ my ($r, $req); # request objects ); # allow request - $applicable = $OK; + $applicable = 1; $r->{path} = '/table/action'; $r->parse_path; @@ -218,7 +223,7 @@ my ($r, $req); # request objects # decline request %called = (); - $applicable = $DECLINED; + $applicable = 0; $r->{path} = '/table/action'; $r->parse_path; @@ -255,7 +260,7 @@ my ($r, $req); # request objects # ... TODO view processing error handling } -# is_applicable() +# is_model_applicable() { $r->config->display_tables([qw(one two)]); $r->config->ok_tables(undef); @@ -264,19 +269,19 @@ my ($r, $req); # request objects $r->action('unittest'); my $is_public; $mock_model->mock('is_public', sub {0}); - my $status = $r->is_applicable; - is($status, $DECLINED, - '... return DECLINED unless model_class->is_public(action)'); + my $true_false = $r->is_model_applicable; + is($true_false, 0, + '... returns 0 unless model_class->is_public(action)'); $mock_model->mock('is_public', sub {$is_public = \@_; 1}); - $status = $r->is_applicable; - is($status, $OK, '... returns OK if table is in ok_tables'); + $true_false = $r->is_model_applicable; + is($true_false, 1, '... returns 1 if table is in ok_tables'); is_deeply($is_public, [$r->model_class, 'unittest'], '... calls model_class->is_public with request action'); is_deeply($r->config->ok_tables, {one => 1, two => 1}, '... config->ok_tables defaults to config->display_tables'); delete $r->config->ok_tables->{one}; - $status = $r->is_applicable; - is($status, $DECLINED, '... return DECLINED unless $r->table is in ok_tables'); + $true_false = $r->is_model_applicable; + is($true_false, 0, '... returns 0 unless $r->table is in ok_tables'); } my $mock_driver = new Test::MockModule($driver_class, no_auto => 1); @@ -367,6 +372,9 @@ my $mock_table = new Test::MockModule($table_class, no_auto => 1); is($r->action, 'index', '... action defaults to index'); } +# make_uri() and make_path() - see pathtools.t + + # get_template_root() { is(Maypole->get_template_root(), '.', '... returns "."');