package Testcase; use base 'CGI::Application'; use CGI::Application::Plugin::DBH qw(dbh_config dbh); use CGI::Carp qw(warningsToBrowser fatalsToBrowser); use strict; use warnings 'all'; sub setup { my $self = shift; $self->run_modes( 'login_page' => 'show_login_page', 'validate_login' => 'validate_login', 'user_results' => 'show_user_results_page', 'logout' => 'show_logout_page', ); $self->start_mode('login_page'); $self->mode_param('run_mode'); } sub show_login_page { my $self = shift; my $q = $self->query(); my $title = 'Login Page'; my $output = ''; $output .= $q->start_html(-title => $title) . "

$title

\n"; $output .= $q->start_form(); $output .= "Email: " . $q->textfield(-name => 'entered_email', -size => 30, -maxlength => 50) . "
\n"; $output .= "Password: " . $q->password_field(-name => 'entered_password', -size => 20, -maxlength => 20) . "
\n"; $output .= $q->submit('Login'); $output .= $q->hidden(-name => 'run_mode', -value => 'validate_login'); $output .= $q->end_form; $output .= $q->end_html; return $output; } sub validate_login { my $self = shift; my $q = $self->query(); my $title = "Welcome"; my $output = ''; $output .= $q->start_html(-title => $title) . "

$title

\n"; $output .= $q->p(qq(Welcome! To view your results, click the button below)); $output .= $q->start_form(); $output .= $q->submit('Results'); $output .= $q->hidden(-name => 'run_mode', -value => 'user_results'); $output .= $q->end_form; $output .= $q->end_html; return $output; } sub show_user_results_page { } sub show_logout_page { } 1;