#!/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!