#!/usr/bin/perl
use Test::WWW::Mechanize::CGIApp;
# use HTML::TreeBuilder;
use Data::Dumper;
use strict;
use warnings;
use Test::More tests => 23; # use Test::More 'no_plan';
=begin # tests:
1) submit new error code
2) submit another new error code
3) submit new test with duplicate error code
4) change duplicate code to unique & submit
5) test for presence of all 3 error code entries
6) change 1st error code to another unique value
7) inactivate one error code
8) retrieve record and change error code to one in use - skipped (fatal) - tested in ajax.t
=cut
BEGIN {
require 't/test-lib.pl';
}
my $mech = get_mech();
do_login();
my $dbh;
eval {
$dbh = get_dbh() or die 'no database handle recieved from get_dbh';
};
warn $@ if $@;
# need to drop & re-create following tables:
foreach ( qw/error_codes/ ) {
drop_and_recreate($_);
}
$mech->get_ok('/config/error-codes'); # print_and_exit();
### check title:
$mech->content_contains(
'Admin » Error Codes',
'title matches',
); # print_and_exit();
# add 2 error_codes:
{
my %fields = (
description => 'data entry error',
is_unique => 'yes',
code => 'A', # enter uppercase so content_contains doesn't need uc
);
$mech->submit_form(fields => \%fields); # print_and_exit();
### check values found:
$mech->content_contains(
qq!$fields{code}!,
'new error code value correct',
);
$mech->content_contains(
qq!value="$fields{description}"!,
'new error code description correct',
);
} # print_and_exit();
{
my %fields = (
description => 'reporting error',
is_unique => 'yes',
code => 'B', # enter uppercase so content_contains doesn't need uc
);
$mech->submit_form(fields => \%fields); # print_and_exit();
### check values found:
$mech->content_contains(
qq!$fields{code}!,
'new error code value correct',
);
$mech->content_contains(
qq!value="$fields{description}"!,
'new error code description correct',
);
} # print_and_exit();
# try duplicate code:
{
my %fields = (
description => 'analytical error',
code => 'B', # enter uppercase so content_contains doesn't need uc
);
$mech->submit_form(fields => \%fields); # print_and_exit();
has_duplicate();
$mech->back();
# change to unique code:
$fields{code} = 'C';
$mech->submit_form(fields => \%fields); # print_and_exit();
}
# check all 3 error_codes detected:
{
foreach ('data entry', 'reporting', 'analytical') {
### check values found:
$mech->content_contains(
qq!value="$_ error"!,
'OK: expected error code description detected',
);
}
}
# edit 1st entry:
$mech->get_ok('/config/error-codes/edit/1'); # print_and_exit();
{
### check values found:
$mech->content_contains(
qq!value="A"!,
'OK: expected error code detected',
);
my $old_code = 'A';
my $new_code = 'D';
$mech->field('code',$new_code);
$mech->submit_form(); # print_and_exit();
### check section found:
$mech->content_contains(
qq!$new_code!,
'new entry value correct',
); # print_and_exit();
### check section found:
$mech->content_lacks(
qq!$old_code!,
'previous entry value not detected',
); # print_and_exit();
}
# inactivate 1st entry:
{
# 1st check for absence of inactive record:
$mech->content_lacks(
qq!