File: is_delegate_auto_runmode.t

package info (click to toggle)
libcgi-application-plugin-autorunmode-perl 0.18-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 148 kB
  • sloc: perl: 910; makefile: 2
file content (65 lines) | stat: -rw-r--r-- 1,785 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!perl -T
use Test::More tests => 7;
BEGIN { use_ok('CGI::Application::Plugin::AutoRunmode') };

#########################

# Test CGI::App class
{ 
	package MyTestApp;
	use base 'CGI::Application';
	use CGI::Application::Plugin::AutoRunmode 
		qw [ cgiapp_prerun];
		
	sub setup{
		my $self = shift;
		$self->param(
			'::Plugin::AutoRunmode::delegate' => 'MyTestDelegate'
		);
	}
	
	sub not_a_runmode{
        'not a runmode';
     }
}

# Test delegate
{
	package MyTestDelegate;
	
	 sub mode1  {
	 	my ($self, $delegate) = @_;
		die "expected CGI::App instance as first parameter" unless $self->isa('CGI::Application');
		die "expected delegate class or instance as second parameter" unless $delegate;
		'called mode1';
	 }
}

$ENV{CGI_APP_RETURN_ONLY} = 1;
$ENV{REQUEST_METHOD} = 'GET';
$ENV{QUERY_STRING} = 'rm=mode1';


use CGI;
my $q = new CGI;
{
    my $testname = "call with no runmode";
    my $app = new MyTestApp(QUERY=>$q);
    my $t = $app->run;
    ok( CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'mode1'),         "[$testname] mode1");
    ok(!CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'not_a_runmode'), "[$testname] not_a_runode");
    ok(!CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'non_existing'),  "[$testname] non_existing");
}

{
    my $testname = "call with mode1";
    $q->param(rm => 'mode1');
    my $app = new MyTestApp(QUERY=>$q);
    my $t = $app->run;
    ok( CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'mode1'),         "[$testname] mode1");
    ok(!CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'not_a_runmode'), "[$testname] not_a_runode");
    ok(!CGI::Application::Plugin::AutoRunmode::is_auto_runmode($app, 'non_existing'),  "[$testname] non_existing");
 }


1;