CGI-Snapp

 view release on metacpan or  search on metacpan

t/run.modes.pl  view on Meta::CPAN

#!/usr/bin/env perl

use lib 't/lib';
use strict;
use warnings;

use CGI;

use CGI::Snapp::RunModes;

use Log::Handler;

use Test::Deep;
use Test::More tests => 11;

use Try::Tiny;

# ------------------------------------------------

sub test_1
{
	# Test 1. Various.

	my($logger) = Log::Handler -> new;

	$logger -> add
		(
		 screen =>
		 {
			 maxlevel       => 'debug',
			 message_layout => '%m',
			 minlevel       => 'error',
			 newline        => 1, # When running from the command line.
		 }
		);

	my($app)         = CGI::Snapp::RunModes -> new(logger => $logger, send_output => 0);
	my($mode_source) = 'r_m';
	my($run_mode)    = 'first_r_m';

	$app -> mode_param($mode_source);
	$app -> query(CGI -> new({$mode_source => $run_mode}) );
	$app -> run_modes({first_r_m => 'first_sub'});

	my($output) = $app -> run;

	ok($output =~ /first_sub/, 'Run mode first_sub returned its name');

	# Check run mode after run(). t/defaults.t checks run mode before run().

	is($app-> get_current_runmode, $run_mode, "Get run mode '$run_mode' using old CGI object");

	# Check a new CGI object does not reset the run mode.

	my($q) = CGI -> new;

	$app -> query($q);

	is($app -> get_current_runmode, $run_mode,    "Get run mode $run_mode using new CGI object");
	is($app -> _run_mode_source,    $mode_source, 'Get current mode source');

} # End of test_1.

# ------------------------------------------------

sub test_2
{
	# Test 2. Check a run mode of 0 works.

	my($logger) = Log::Handler -> new;

	$logger -> add
		(
		 screen =>
		 {
			 maxlevel       => 'debug',



( run in 0.552 second using v1.01-cache-2.11-cpan-d8267643d1d )